1
0
mirror of https://github.com/e107inc/e107.git synced 2025-01-18 21:18:04 +01:00

10734 Commits

Author SHA1 Message Date
Nick Liu
8a675021ff
Hybrid e_tree_model flat lists or parent-children
e_tree_model is apparently used for flat lists as well as parent-child
relationships (trees). Trees are expected to be far smaller than possible flat
lists. Very large flat lists (10,000+ rows or greater) are rendered very slowly
because of the tree computation overhead.

This change figures out whether a flat list or a tree is requested and chooses
the appropriate code to run based on what is requested. Trees run the more
expensive code while flat lists are returned as-is.

In addition, the tree rendering code has been optimized. Optimizations:

* Unchanging tree node ID is set once instead of inside a foreach() loop
* The parent-child query is now sorted by the sort parent ID so that each move
  rows to tree nodes iteration doesn't have to run through every remaining row

Fixes: #3062
2018-03-06 16:08:11 -06:00
Cameron
1494c18660 Admin-UI: Added "Is Empty" option to type=number when filter is true. 2018-03-05 17:15:49 -08:00
Cameron
48b3318ecb Admin-UI: $field 'filter' attribute now accepts 'future' and 'both', defaults to 'past' when set to true. ie. search future dates, past/future dates or past dates. 2018-03-05 14:37:56 -08:00
Cameron
f1460787a1 Admin-ui Fix date filter. 2018-03-05 13:45:11 -08:00
Cameron
a96049c88c Date issue work-around. 2018-03-04 20:01:55 -08:00
Cameron
9ff191f6cb Hide admin navigation when printing. 2018-03-04 18:50:53 -08:00
Cameron
6490b6d315 Added missing 'd' (day of the month - no leading zero) mask to date handler. 2018-03-04 16:41:35 -08:00
Cameron
c377050945 Make sure livestamp' is only active when 'relative' is selected in toDate(). 2018-03-04 13:03:29 -08:00
Cameron
82c7598b74
Merge pull request #3050 from yesszus/patch-2
Loading plupload lan.js
2018-03-04 12:00:38 -08:00
Cameron
56ffaad39e Fixed 'after submit' default. Added writeParm['empty'] for type 'dropdown' when a default value on empty is required. 2018-03-04 11:59:59 -08:00
Gábor
1b6fca5a85
Update header.php 2018-03-04 09:24:22 +01:00
Gábor
0afc53f2b2
Update header.php
Now loading lang.js file.
2018-02-27 14:04:35 +01:00
Cameron
15bce75ce5
Merge pull request #3046 from Deltik/fix-3044
Code Climate fix: e_tree_model::multiFieldCmp()
2018-02-24 10:40:39 -08:00
Deltik
80a209cbae
Code Climate fix: e_tree_model::multiFieldCmp()
Reduced cognitive complexity
2018-02-23 16:39:52 -06:00
Cameron
5036dfec1e
Merge pull request #3045 from Deltik/fix-3044
e_tree_model::multiFieldCmp() string sort fields
2018-02-23 14:26:55 -08:00
Deltik
840859a32f
e_tree_model::multiFieldCmp() string sort fields
An untested oversight in e_tree_model::multiFieldCmp() where $sort_field
could be a string has now been corrected.

$sort_field now accepts a string to prevent infinite recursion.

Fixes: #3044
2018-02-23 15:48:23 -06:00
Cameron
d462a1bfa2 Fix formhandler flipswitch defaults. 2018-02-23 12:01:08 -08:00
Cameron
e92c6789c5 Fix path of e_SYSTEM_BASE and e_MEDIA_BASE 2018-02-19 13:46:09 -08:00
Cameron
7ffb60c60b Make sure <option> has a value. 2018-02-16 13:34:54 -08:00
Cameron
fd7b9e352e
Merge pull request #3041 from Deltik/fix-3039
e_tree_model private methods are now protected
2018-02-15 12:18:54 -08:00
Deltik
0bbaaf4c6c
Loose false check for e_tree_model sim. pagination
e_tree_model::prepareSimulatedPagination() did not correctly handle the
count-only condition because of an incorrectly written emptiness check.

Fixes: #3034
2018-02-15 13:59:13 -06:00
Deltik
a4b972cb9f
e_tree_model private methods are now protected
Fixes: #3039
2018-02-15 13:45:40 -06:00
Cameron
2f62a522b7 Issue #3034 - Fix language-file not loading. 2018-02-14 14:13:37 -08:00
Cameron
be062da64d
Merge pull request #3037 from Deltik/fix-3033
Fixes: #3033 Defers setting the SITEURL constant and dependencies until MySQL is connected
2018-02-13 08:23:52 -08:00
Deltik
d1a69b0c16
Defers SITEURL and dependencies until SQL loaded
This is the least intrusive solution I could come up with.

Anything else I tried to reduce technical debt would break the very
tangled dependency web, so I settled for this.

Fixes: #3033
2018-02-12 06:54:15 -06:00
Cameron
de7fb1d1a0
Merge pull request #3032 from Deltik/fix-3029
Fixed critical regression introduced in b3a2740
2018-02-09 12:41:22 -08:00
Deltik
05c418cbda
Fixed critical regression introduced in b3a2740
Oops.
2018-02-09 14:39:21 -06:00
Cameron
2823087d46
Merge pull request #3031 from Deltik/fix-3029
Implemented custom sorting for e_tree_model
2018-02-09 10:15:01 -08:00
Cameron
42b7121347 Issue #3030 NewForumPosts "main" BC Fix for top/bottom position. 2018-02-09 10:08:36 -08:00
rica-carv
c7083ef16f
Merge pull request #49 from e107inc/master
.
2018-02-09 14:51:36 +00:00
Deltik
b3a274010e
Refactored e_tree_model for Code Climate 2018-02-09 05:40:53 -06:00
Deltik
2167a69a50
Record count no longer depends on subclass impl.
Subclasses may forget to run code to do a total record count, which
leads to output showing "Total Records: 0" on some pages with lists,
like `/e107_admin/links.php`.

This commit cuts out the record counting from the getList() method of
any e_admin_form_ui subclasses and the base class so that subclasses do
not have to reimplement record counting.

The caveat with this implementation is that it violates the Law of
Demeter, as evidenced by the new chained method call:

    $this->getController()->getTreeModel()->getTotal()

Jumping through two objects to get a value is not ideal, but this is the
code we have to work with at the moment.
2018-02-09 04:57:01 -06:00
Deltik
511bb9eae9
Implemented custom sorting for e_tree_model
In #3025, e_tree_model sorting was reimplemented in pure PHP, but this
broke custom sorting (like `?field=cat_name&asc=desc`).

This commit introduces a hack that simulates a subset of MySQL/MariaDB
ORDER BY clauses, which should be sufficient for all known custom
sorting that can be requested.

Tree formatting is always preserved, but custom sorting will apply for
all items at a certain depth under the same parent.

This commit also contains some minor formatting fixes and makes a minor
change to some regex to make use of non-capturing groups.

Fixes: #3029
2018-02-09 04:37:48 -06:00
Cameron
e045c6c91c Social plugin now provides social share links in admin after creating/updating a news item. 2018-02-08 15:44:08 -08:00
Cameron
986aabb062
Merge pull request #3028 from Deltik/fix-3027
Fixes #3026. PHP 7.2 consistency hack in xmlClass::xml2array()
2018-02-06 11:24:15 -08:00
Deltik
ee19eac05d
PHP 7.2 consistency hack in xmlClass::xml2array()
This is a workaround to make the output of xmlClass::xml2array() in PHP
7.2 equal to that of prior PHP versions.

Consider this fix to be a part 2 of #3026.

PHP 7.2 changed the behavior of how we extract tags from
SimpleXMLElement resources.  This hack adds a toleration for either the
PHP 7.2 behavior and the past behavior, which allows consistent parsing
of XML files.

One side effect of this change is the fixing of an innocuous bug that
provided blank values in some "@value" keys that should not have existed
in the first place.  This should hopefully have no practical effect on
current uses of the modified method.

Fixes: #3027
2018-02-05 09:28:57 -06:00
Cameron
21215da3b8 define e_ROOT early in class2.php and remove extra realpath() calls. 2018-02-04 18:43:20 -08:00
Cameron
499712f351
Merge pull request #3026 from Deltik/fix-3018
Fixes: #3018 Sanity check in xmlClass::xml2array() for PHP 7.2
2018-02-04 12:33:32 -08:00
Deltik
b0f6cc8aa1
Sanity check in xmlClass::xml2array() for PHP 7.2
Since PHP 7.2, running get_object_vars() on a SimpleXMLElement object
may return sequential arrays rather than nothing if there were no
children.

This commit introduces a sanity check in xmlClass::xml2array() that
ensures child tags are processed rather than sequential array keys.

This sanity check does not affect past major versions of PHP.

Fixes: #3018
Supersedes: #3019
2018-02-04 05:57:54 -06:00
Cameron
203a2423be
Merge pull request #3025 from Deltik/fix-3015
Reimplement e_tree_model sorting in pure PHP (with pagination)
Fixes: #3015
Supersedes: #2929
Supersedes: #3016
2018-02-03 11:58:34 -08:00
Cameron
3b909bd4f5 LandingZero tweaks 2018-02-03 10:34:39 -08:00
Cameron
83622aece3 PHP 7 Fix. 2018-02-03 10:34:18 -08:00
Deltik
6d4d7ff688
Added pagination to pure PHP e_tree_model sorting
Implementation parses db_query parameter and extracts the offset and/or
count from `LIMIT {offset} OFFSET {count}` or syntactically similar

Fixes: #3015
Supersedes: #3016
2018-02-03 11:02:28 -06:00
Cameron
2469e7c177
Merge pull request #3022 from Deltik/fix-3021
e_pref::update() accepts existing keys with NULL
2018-02-02 13:42:00 -08:00
Cameron
9048c5a3eb
Merge pull request #3023 from Deltik/gitignore_for_vim
Added Vim swap files to .gitignore
2018-02-02 13:40:56 -08:00
Cameron
744a713dd8 Issue #3019, Issue #3018 Disable Theme caching when running installation in debug mode. 2018-02-02 13:35:11 -08:00
Deltik
8bfa29d2cc
Refactored e_tree_model::setCacheString() 2018-02-02 11:04:21 -06:00
Deltik
6df1a18d9f
Merge branch 'gitignore_for_vim' into fix-3015 2018-02-02 10:38:41 -06:00
Deltik
b6e1abe450
Added Vim swap files to .gitignore 2018-02-02 10:36:26 -06:00
Nick Liu
fbd1283d6e
e_pref::update() accepts existing keys with NULL
e_pref::update() will now update keys' values where the keys have a value of
NULL

Fixes: #3021
2018-02-02 08:24:31 -06:00