1
0
mirror of https://github.com/e107inc/e107.git synced 2025-10-12 13:34:39 +02:00
Commit Graph

5330 Commits

Author SHA1 Message Date
Deltik
a4b972cb9f e_tree_model private methods are now protected
Fixes: #3039
2018-02-15 13:45:40 -06: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
Deltik
05c418cbda Fixed critical regression introduced in b3a2740
Oops.
2018-02-09 14:39:21 -06: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
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
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
Deltik
8bfa29d2cc Refactored e_tree_model::setCacheString() 2018-02-02 11:04:21 -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
Nick Liu
b58eac839a Merge branch 'master' into fix-3015 2018-02-01 10:06:49 -06:00
Cameron
0ab3485a84 Fix for [img] class in TinyMce. 2018-01-31 14:10:41 -08:00
Cameron
3b049fefd5 Fixes #3009 new e_gsitemap addon. 2018-01-29 12:03:15 -08:00
Nick Liu
0a88fd1194 PR #3016: Reduced Cognitive Complexity 2018-01-29 02:47:38 -06:00
Cameron
28d70da8e6 Revert #3016 2018-01-28 13:41:16 -08:00
Cameron
d8ba5b8a3e Merge pull request #3016 from Deltik/fix-3015
Fixes: #3015 Reimplement e_tree_model sorting in pure PHP
2018-01-28 13:31:32 -08:00
Nick Liu
8102917903 PR #3016: Refactored for Code Climate
Some code improvements to pass Code Climate checks that failed in e5a0935726
2018-01-28 14:42:49 -06:00
Nick Liu
e5a0935726 Reimplement e_tree_model sorting in pure PHP
Eliminated e107 dependency on the MySQL/MariaDB CREATE PROCEDURE permission

As a bonus, any attempt to use e107's native custom sorting (e.g.
`?field=cat_name&asc=desc`) will preserve the correct tree hierarchy.  The past
behavior was to sort as requested but keep showing depth, even though the
apparent tree hierarchy would be wrong.

Fixes: #3015
Supercedes: #2929
2018-01-28 12:54:20 -06:00
Nick Liu
1c75486642 Permissive numeric field validation in db_verify
db_verify::diffStructurePermissive() now checks for all MySQL/MariaDB numeric
types and permissively allows the expected and actual default values to be
strings rather than numerical.

Fixes: #3011
Related: #2998
2018-01-28 05:59:51 -06:00
Cameron
1dc294114d Debug Mode: Highlight slow table performance. 2018-01-27 11:59:27 -08:00
Cameron
c375b632bd More highlighting of possible performance bottlenecks in debugging "Time" mode. 2018-01-27 11:49:28 -08:00
Cameron
d0d4bcc1cd Use static URLs in compressed CSS when enabled. 2018-01-26 18:12:12 -08:00
Cameron
c162981fbd Cleaned up the Default Image Size in Media-Manager Preference area. Remove 'width=' from [img] when it matches the default size. 2018-01-26 15:54:54 -08:00
Cameron
4d3ef86bb7 Fix for TinyMce image resize. Also disabled static URLs in the admin area. 2018-01-26 14:10:15 -08:00
Cameron
318a849b77 Extra Debug Performance Markers added for e_module includes. 2018-01-25 16:10:51 -08:00
Cameron
573ea978b7 Cleaned empty $_POST values. Additional options for log file creation added. 2018-01-25 13:38:29 -08:00
Cameron
c4e3fdb515 Merge pull request #3007 from Deltik/fix-3006
Fixes: #3006 Allow spaces in passwords system-wide by default
2018-01-24 12:55:35 -08:00
Nick Liu
516d4ce1c6 Passwords can't begin or end with whitespace
https://github.com/e107inc/e107/pull/3007#issuecomment-360229501
2018-01-24 14:15:01 -06:00
Cameron
b74e291f70 Merge pull request #3004 from Deltik/fix_3003
Fixes: #3003 Improvements to Preferences form validation for SMTP credentials
2018-01-24 10:25:06 -08:00
Nick Liu
6f40129cfc Allow spaces in passwords system-wide by default
Some e107 users and admins may use whitespace in their passwords, but the
client-side HTML validation currently prohibited them by default.

The server accepts passwords with whitespace if this client-side validation is
disabled, so there does not appear to be a technical reason for this
restriction.

This commit allows whitespaces in passwords by default.

Fixes: #3006
2018-01-24 05:27:38 -06:00
Nick Liu
02d026a28f Improvements to Preferences SMTP form validation
SMTP server max string length increased from 50 to 128
SMTP username max string length increased from 50 to 128
SMTP password max string length increased from 50 to 128

SMTP password is actually optional now, as intended

SMTP password now accepts spaces

SMTP password needs to be at least 4 characters long

Autocomplete disabled for Firefox 38+, Chrome 34+, and Internet Explorer 11+

Fixes: #3003
2018-01-24 04:40:09 -06:00
Cameron
1e71ab72e2 Merge pull request #3000 from Deltik/remove_cruft_comments_by_deltik
Removed some old comments
2018-01-23 12:13:41 -08:00
Nick Liu
a397b80640 Fixed regression: db_verify distinguish results
Regression in #2999 prevents db_verify from distinguishing fields from indices

This prevents database migrations where both the fields and the indices of a
field need to be updated in one migration.

This commit fixes that.

Fixes: #3001
2018-01-23 14:09:48 -06:00
Nick Liu
3e2cdd5c9e Refactored away duplicate code in db_verify
Hopefully Code Climate likes this one better
2018-01-23 10:46:39 -06:00
Nick Liu
c959610f7d Fixed regression from 9a5ac5b
Regression fixed: Diff wasn't being set
2018-01-23 08:59:39 -06:00
Nick Liu
583d63620b Removed some old comments
Sorry about the cruft
2018-01-23 08:14:26 -06:00
Nick Liu
9a5ac5b21a Permissive field validation in db_verify
Even if it's a new installation of e107, `db_verify` will be too strict in
validating database field defaults that are equivalent to each other.

This can happen on some MySQL or MariaDB servers that correct the field
definitions, which were not strictly correct in the table structures built into
e107 in the first place.

This commit introduces db_verify::validateFieldPermissive(), a
backwards-compatible way to validate database field defaults.  It works
regardless of whether the MySQL server stores a corrected representation of the
schema and does not require fixing the schema in any existing table structure
files.

Fixes: #2998
2018-01-23 07:48:24 -06:00
Cameron
7764d6a378 Fix for staticUrl() conflict. 2018-01-19 14:16:15 -08:00
Cameron
b22b1c49cd staticUrl() parser method now converts media folder URLs also. 2018-01-19 14:05:02 -08:00
Cameron
3ef44e3d91 Issue #2984 - online tracking disabled and login issue. 2018-01-19 11:47:52 -08:00
Cameron
3b5b64195e Issue #2678 - Fix merging of theme plugin template when a key is provided. 2018-01-18 16:19:40 -08:00
Cameron
fb7e9668e7 Prevent clickjacking. Remove js/css query string when e_HTTP_STATIC is active. 2018-01-18 14:16:43 -08:00
Cameron
c2048c1c2f Use news_class on print page. 2018-01-16 14:41:51 -08:00
Cameron
4d6825dc51 Issue #1725 - Experimental Bootstrap 4 (CDN) library added. 2018-01-16 13:03:23 -08:00
Cameron
b50677d50a Issue #2860 - Additional Mark-Time added for 'Online' for reviewing performance. 2018-01-13 14:11:46 -08:00