1
0
mirror of https://github.com/e107inc/e107.git synced 2025-10-09 03:56:24 +02:00
Commit Graph

917 Commits

Author SHA1 Message Date
Jimmi08
64dcf0c056 #4665 load bbcode buttons only if HTML is allowed for user
CLOSES #4665

Tested scenarios:

- site wysiwyg on, html access  -  result tinymce
- site wysiwyg on,  no html access  - result bbcodes
- site wysiwyg off,  forum wysiwyg on,  no html access  - result bbcodes
- site wysiwyg off,  forum wysiwyg on,  html access  - result tinymce

It worked like this before too, but bbcodes were always rendered (not visible with tinymce)
2022-03-31 12:22:04 +02:00
Cameron
3d3b2ec85d PHP Notice fix. 2022-03-15 13:48:32 -07:00
Cameron
748fd4b9b6 Fixes #4700 - linkwords inconsistencies. 2022-03-12 11:50:27 -08:00
Nick Liu
169efa09b9 e_parse::toAttributes(): New API to concatenate HTML attributes
`e_parse::toAttributes()` is an expansion of the formerly private method
`e_form::attributes()`. Now, all client code can use
`e_parse::toAttributes()` to make it easy to concatenate variable-length
HTML attributes. Values are guaranteed to be encoded so that they cannot
escape an HTML attribute value.

All client code usages are encouraged to build HTML tags with this new
method to prevent cross-site scripting (XSS) attacks and prevent
breaking the HTML validity due to improperly escaped HTML attributes.

This new method is an extension to `e_parse::toAttribute()`, which
escaped one single HTML attribute value.
2022-02-06 16:49:56 +01:00
Nick Liu
754c29d230 #4661: Don't double-encode ampersand in e_form::thead()
I guessed the `filter_var(…, FILTER_SANITIZE_STRING)` intention
mentioned in 20882920a0.  I guessed wrong.
This fixes the guess to be just HTML tag removal.

Fixes: https://github.com/e107inc/e107/issues/4661
2022-01-17 13:20:34 +01:00
Cameron
d8ce385929 Fixes #4631 - Edit button modal caption and submit button issue. 2021-12-15 11:52:46 -08:00
Cameron
0d8f3e9086 PHPDoc fixes and code optimization. 2021-12-03 14:58:33 -08:00
Cameron
2c9afc83ee More PHP 8.1 fixes. 2021-11-26 12:36:25 -08:00
Nick Liu
fb420ccfb1 PHP 8.1: Fix some more null value issues
* `e_form::attributes()`
* `e_parse::toImage()`
2021-11-23 13:57:38 -06:00
Cameron
fea46ed7ee Fixes #4605 - Custom home icon support and fallback icon for non-FontAwesome breadcrumbs. 2021-11-17 15:21:10 -08:00
Cameron
35808e5eb9 Issue #4609 - Was still failing in earlier PHP versions. More tests added. 'empty' attribute added to news_render_type 2021-11-04 13:58:05 -07:00
Cameron
7930aba4ca Fixes #4609 - Quick fix for inconsistent drop-down behavior PHP7 -> PHP8. 2021-11-01 14:41:40 -07:00
Cameron
d6b0391a2d Fixed corruption of carousel attributes and other 'data-' keys. Test added. 2021-10-14 08:08:43 -07:00
Nick Liu
840e818f40 e_form: Allow HTML attribute "value" keys with blank values
Otherwise, something like `<option>Nope</option>` will get a value of
"Nope" instead of "" as in `<option value=''>Nope</option>`.
2021-10-08 18:03:44 -05:00
Nick Liu
2fa9d10c57 e_form: Handle attribute HTML entities properly for most form elements
The result is a much more consistent form experience with less fear that
some values put into an `e_form` method will break the web page.

This commit covers the most common uses of `e_form` with HTML attribute
quoting via `e_form::attributes()`.
2021-10-06 20:14:51 -05:00
Nick Liu
2080c772c1 Simplify e_form::get_attributes()
Reduce code duplication without changing behavior

Introduce helper `e_form::attributes()` to generate HTML attributes
2021-10-06 13:07:30 -05:00
Nick Liu
45bce2a7aa #4572: e_form: No htmlspecialchars() on "other" attributes
Fixes: #4572

Discussion:
https://github.com/e107inc/e107/pull/4554#issuecomment-926113601
2021-09-23 16:12:52 -05:00
Cameron
4747ad3c6e Merge pull request #4547 from Deltik/fix/4546
Deprecate `e_parse::toJS()`
2021-09-15 12:18:41 -07:00
Cameron
632f33526f Admin-ui: Fix for delete confirmation popup alert. 2021-09-14 14:15:30 -07:00
Nick Liu
20882920a0 Fix all PHP 8.1 test failures
* `strftime()` has been replaced with a polyfill based on `DateTime`.
* Explicit type casts/assertions added where required by PHP 8.1
* `filter_var(…, FILTER_SANITIZE_STRING)` replaced with `strip_tags()`
  or HTML entity encoding of quotation marks, depending on a guess of
  what the intended "sanitization" was
* `http_build_query()` usage type mismatches fixed
* Removed usages of the `FILE_TEXT` constant
* To avoid breaking PHP 5.6 compatibility (function return types),
  `e_session_db` no longer implements `SessionHandlerInterface`.
  Instead, the alternative non-OOP invocation of
  `session_set_save_handler()` is used instead to apply the session
  handler.
* The shim for `strptime()` still calls the native function if available
  but now suppresses the deprecation warning.

* `e_db_pdo` explicitly asks for `PDO::ATTR_STRINGIFY_FETCHES` to
  maintain consistent behavior with past versions of PHP.
* `e_db_mysql` explicitly sets `mysqli_report(MYSQLI_REPORT_OFF)` to
  maintain consistent behavior with past versions of PHP.

* Removed pointless random number generator seed from `banner` plugin
* Workaround for `COUNT(*)` SQL query in
  `validatorClass::dbValidateArray()` without a proper API for avoiding
  SQL injection
2021-09-04 15:06:19 +02:00
Nick Liu
f6d6d1b185 Deprecate e_parse::toJS()
`e_parse::toJS()`, documented with the description

> Convert text blocks which are to be embedded within JS

, does not protect strings from injections, which appears to be its
primary use.  Additionally, it performs multiple unrelated string
modifications:

* Replace Windows line breaks with a literal `\\n` (which would later be
  parsed as `\n` in JavaScript/JSON)
* Does not modify Unix line breaks (`\n`), which is inconsistent with
  the Windows line break behavior
* Removes HTML tags
* Replaces HTML entities as `htmlentities()` does

This method cannot be fixed because its usages are inconsistent.  Most
notably, some usages surround the method's output in single quotes while
others surround it with double quotes.  Strings cannot be JSON-encoded
without confounding quotation mark styles.

All core usages of `e_parse::toJS()` have been replaced with
alternatives, which are also documented in the method's DocBlock.

Fixes: #4546
2021-08-31 00:11:14 +02:00
Cameron
32618817d1 Character counting display added to meta description on admin News and Page inputs. 2021-08-12 11:51:55 -07:00
Cameron
6d0810af0d Fixes #4468 - quick debugging of json data using type: 'text' and hidden() field fix. 2021-03-31 15:14:58 -07:00
Cameron
c33b91ee5c Issue #4368 Fixed hardcoded string for 'related' content. Now uses tablerender(). Shortcode processing of {---CAPTION---} added. 2021-03-22 11:26:51 -07:00
Jimako
467d3c968f Correct pagination for frontend Admin UI 2021-03-02 17:32:18 +01:00
Cameron
cb95b4b243 Hero cleanup for Bootstrap5. Switched to placeholder images. Admin-ui type 'image' now loads remote URLs correctly. 2021-02-26 10:13:07 -08:00
Jimako
ba28818003 #275 fix for empty link in home icon for WAVE 2021-02-21 19:24:43 +01:00
Cameron
cae8cf1345 Fixes #4398 - Page breadcrumb. Disabled breadcrumb on frontpage. 2021-02-18 17:02:37 -08:00
Cameron
2bf5ee3909 Admin area tool tips simplified to a single location. Pref simplified to Enable/Disable. Fixed flip-switch 'e-expandit' failures in Admin > Prefs. 2021-02-12 12:19:58 -08:00
Cameron
7133d4bb6f Closes #4228 TinyMce can now load the frontend theme in the editor when 'wysiwyg' is found in the scope of a declared css file within theme.xml
Fixes #4371 - FontAwesome5 is now loaded in the TinyMce editor when detected in the frontend theme.
2021-02-11 16:39:50 -08:00
Cameron
a1faa5d08b Bootstrap5 styling 2021-02-10 09:03:17 -08:00
Cameron
1f3e70d40a Fixes #4374 help() form method fix. 2021-02-09 14:36:40 -08:00
Cameron
5842e51f15 Prevent tooltip visibility during page load. 2021-02-09 11:07:58 -08:00
Cameron
72c54371cc e107::getSession()->set will now accept multi-dimensional key format. Test added. Form-handler PHP8 fix. 2021-02-08 11:59:04 -08:00
Cameron
c32e5bf1e2 e107::unserialize() will now return the array if the input is an array. Additional form-handler tests added for type: media, file and files. Admin-ui can now manage a change of field type from 'array' to 'json' without additional changes needed. 2021-02-08 08:44:44 -08:00
Cameron
7698773f0e Left-align tooltip text in new admin skins/styles. 2021-02-07 12:20:57 -08:00
Cameron
e4f8082d37 Theme Manager for Admin area, now displays previews of each admin skin. 2021-02-04 16:22:25 -08:00
Cameron
5870fbdb84 "<div class='field-help'>" etc has been replaced by the $frm->help() method and is also used by the admin-ui. 2021-02-04 08:45:10 -08:00
Cameron
82fbeab43c Tool-tip placement options added to admin prefs. (Applies to Admin-ui areas only)
Admin styling tweaks.
2021-02-03 20:38:31 -08:00
Cameron
e4f6d502b9 Admin style tweaks 2021-02-03 08:10:23 -08:00
Cameron
eee039b616 PHP8/Bootstrap5 Fixes 2021-01-29 20:11:49 -08:00
Cameron
a6e341274e Admin template clean up. 2 new admin styles added. (to be improved). Left admin panel collapse improved. (still needs a cookie to 'stick' . 2021-01-29 09:27:38 -08:00
Cameron
296bc650a7 Keep button class in a logical order e107::getForm()->button(); and admin_button() modified. Test added.
'button' has been removed when the action == 'button' in order to avoid BC css conflict. Use button[type="button"] if needed.
2021-01-28 09:36:27 -08:00
Cameron
71b3729341 Admin-ui createForm now uses the internal tabs() method. 2021-01-26 17:46:48 -08:00
Cameron
835e477147 Bootstrap 5 styling. (data-bs-toggle)
Signup shortcodes now automatically load the required template.
2021-01-26 15:08:58 -08:00
Cameron
876212d518 Make sure admin icons are loaded during testing and when initializing form handler. 2021-01-25 12:04:59 -08:00
Cameron
dfddca2e24 Added Media-Manager loading indicator. Use deftrue() for checking admin area in form handler. 2021-01-25 09:35:08 -08:00
Cameron
8f27be1150 Added e_user.php 'settings' method to define additional (extended) user fields dynamically. See _blank/e_user.php 2021-01-18 18:42:03 -08:00
Cameron
f8f40a23fe Missing page-subtitle field added. 2021-01-04 12:48:37 -08:00
Cameron
81634d5f5a Issue #4332 Carousel fixes. Newsfeed now uses json to store data. 2021-01-01 09:33:51 -08:00