46
Quote:
phppp wrote:
Quote:
Peekay wrote:
my question is, why has this method been changed and what benefits in terms of speed, efficiency and security are we gaining from that change?
It is not a good change and I also have the same question.
Unfortunately it is too late to revert or refactor many similar changes in 2.4*.
It seems at this moment the practical solution is to keep as it as and provide patches once bugs are discovered.
+1
Regarding the patches provided, I guess it would be easier to patch the module instead of patching the core.
In xhelp/servicemain.php, right after this lines:
le="color: #000000"><?php //Include XOOPS Global Includes error_reporting(E_ALL); //Enable Error Reporting $xoopsOption['nocommon'] = 1; require '../../mainfile.php';
you could add additional code required for 2.4.x class and files.
Example:
le="color: #000000"><?php //Include XOOPS Global Includes error_reporting(E_ALL); //Enable Error Reporting $xoopsOption['nocommon'] = 1; require '../../mainfile.php'; /*** ADDING CODE HERE ***/ if (version_compare(PHP_VERSION, '5.3.0', '<')) { set_magic_quotes_runtime(0); } global $xoops, $xoopsPreload, $xoopsLogger, $xoopsErrorHandler, $xoopsSecurity, $sess_handler; /** * YOU SHOULD NEVER USE THE FOLLOWING TO CONSTANTS, THEY WILL BE REMOVED */ defined('DS') or define('DS', DIRECTORY_SEPARATOR); defined('NWLINE')or define('NWLINE', "n"); /** * Include files with definitions */ include_once XOOPS_ROOT_PATH . DS . 'include' . DS . 'defines.php'; include_once XOOPS_ROOT_PATH . DS . 'include' . DS . 'version.php'; include_once XOOPS_ROOT_PATH . DS . 'include' . DS . 'license.php'; /** * Include XoopsLoad */ require_once XOOPS_ROOT_PATH . DS . 'class' . DS . 'xoopsload.php'; /** * YOU SHOULD BE CAREFUL WITH THE PRELOAD METHODS IN 2.4*, THEY WILL BE DEPRECATED AND IMPLEMENTED IN A DIFFERENT WAY */ /** * Create Instance of Preload Object */ XoopsLoad::load('preload'); $xoopsPreload =& XoopsPreload::getInstance(); $xoopsPreload->triggerEvent('core.include.common.start'); /** * YOU SHOULD BE CAREFUL WITH THE {@xos_kernel_Xoops2}, MOST METHODS WILL BE DEPRECATED */ /** * Create Instance of xos_kernel_Xoops2 Object * Atention, not all methods can be used at this point */ XoopsLoad::load('xoopskernel'); $xoops = new xos_kernel_Xoops2(); $xoops->pathTranslation(); $xoopsRequestUri =& $_SERVER['REQUEST_URI'];// Deprecated (use the corrected $_SERVER variable now)
This should solve the missing $xoops global and the preload class required by database class.
Not tested.