mirror of
https://github.com/e107inc/e107.git
synced 2025-08-13 01:54:12 +02:00
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
This commit is contained in:
@@ -6686,9 +6686,10 @@ class e_admin_ui extends e_admin_controller_ui
|
||||
protected function parseAliases()
|
||||
{
|
||||
// parse table
|
||||
if(strpos($this->table, '.') !== false)
|
||||
$tableName = $this->getTableName();
|
||||
if(strpos($tableName, '.') !== false)
|
||||
{
|
||||
$tmp = explode('.', $this->table, 2);
|
||||
$tmp = explode('.', $tableName, 2);
|
||||
$this->table = $tmp[1];
|
||||
$this->tableAlias = $tmp[0];
|
||||
unset($tmp);
|
||||
@@ -7443,7 +7444,7 @@ class e_admin_form_ui extends e_form
|
||||
$vars = $this->getController()->getQuery();
|
||||
$vars['from'] = '[FROM]';
|
||||
|
||||
$paginate = http_build_query($vars, null, '&');
|
||||
$paginate = http_build_query($vars, '', '&');
|
||||
|
||||
e107::js('footer-inline', "
|
||||
\$('#admin-ui-list-filter a.nextprev-item').on('click', function() {
|
||||
@@ -7517,7 +7518,7 @@ class e_admin_form_ui extends e_form
|
||||
$gridAction = $this->getController()->getAction() === 'grid' ? 'list' : 'grid';
|
||||
$gridQuery = (array) $_GET;
|
||||
$gridQuery['action'] = $gridAction;
|
||||
$toggleUrl = e_REQUEST_SELF. '?' .http_build_query($gridQuery, null, '&');
|
||||
$toggleUrl = e_REQUEST_SELF. '?' .http_build_query($gridQuery, '', '&');
|
||||
$gridIcon = ($gridAction === 'grid') ? ADMIN_GRID_ICON : ADMIN_LIST_ICON;
|
||||
$gridTitle = ($gridAction === 'grid') ? LAN_UI_VIEW_GRID_LABEL : LAN_UI_VIEW_LIST_LABEL;
|
||||
$gridToggle = "<a class='btn btn-default' href='".$toggleUrl."' title=\"".$gridTitle. '">' .$gridIcon. '</a>';
|
||||
@@ -8082,10 +8083,10 @@ class e_admin_form_ui extends e_form
|
||||
$parms['__options'] = $fopts;
|
||||
}
|
||||
|
||||
|
||||
if(!is_array(varset($parms['__options'])))
|
||||
if (!isset($parms['__options'])) $parms['__options'] = null;
|
||||
if(!is_array($parms['__options']))
|
||||
{
|
||||
parse_str($parms['__options'], $parms['__options']);
|
||||
parse_str((string) $parms['__options'], $parms['__options']);
|
||||
}
|
||||
$opts = $parms['__options'];
|
||||
if(!empty($opts['multiple']) && $type === 'batch')
|
||||
|
Reference in New Issue
Block a user