[TYPO3-core] RFC #13649: Deprecated function sql_regcase in cms/tslib/class.tslib_pagegen.php
Martin Müller
bugreporters at gmx.de
Wed Jun 16 09:07:54 CEST 2010
Hi,
I searching for an option to set an reminder on this topic.
Where can i find them?
Could anyone explain please.
Best whishes
Martin
Am 07.05.2010 17:36, schrieb Martin Müller:
> This is an SVN patch request.
>
> Type: bugfix
>
> Bugtracker references:
> http://bugs.typo3.org/view.php?id=13649
>
> Branches: trunk
>
> Problem:
>
> The function pagegenInit() in typo3/sysext/cms/tslib/class.tslib_pagegen.php is using the function sql_regcase() which is deprecated in PHP 5.3.
>
> The default front-end search form is using this function. At least if a link in the result set is clicked.
>
>
> Solution:
>
> On file class.tslib_pagegen.php function "sql_regcase()" is used for front-end search form only.
> The intent is to produce a Regex with case insensitiv characters.
>
> My proposal is to cut off additional functions for that case.
> The patch 0010231 / Revision 5574 replaced split() to preg_split() on class.tslib_content.php. Now we can use the regex-modifier on regex-pattern to achieve that.
>
> My patch cut off sql_regcase() without adding an additional function but using the regex-modifier on class.tslib_content.php to get a case sensitive/insensitive result ;-)
>
> Notes: No
>
> Regards Martin
> --
> GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
> Jetzt freischalten unterhttp://portal.gmx.net/de/go/maxdome01
> -------------- next part --------------
> Index: typo3/sysext/cms/tslib/class.tslib_content.php
> ===================================================================
> --- typo3/sysext/cms/tslib/class.tslib_content.php (Revision 7559)
> +++ typo3/sysext/cms/tslib/class.tslib_content.php (Arbeitskopie)
> @@ -4998,7 +4998,11 @@
> if ($GLOBALS['TSFE']->no_cache&& $conf['sword']&& is_array($GLOBALS['TSFE']->sWordList)&& $GLOBALS['TSFE']->sWordRegEx) {
> $newstring = '';
> do {
> - $pieces = preg_split('/' . $GLOBALS['TSFE']->sWordRegEx . '/', $data, 2);
> + $pregSplitMode = 'i';
> + if (isset($GLOBALS['TSFE']->config['config']['sword_noMixedCase'])&& !empty($GLOBALS['TSFE']->config['config']['sword_noMixedCase'])) {
> + $pregSplitMode = '';
> + }
> + $pieces = preg_split('/' . $GLOBALS['TSFE']->sWordRegEx . '/'.$pregSplitMode, $data, 2);
> $newstring.=$pieces[0];
> $match_len = strlen($data)-(strlen($pieces[0])+strlen($pieces[1]));
> if (strstr($pieces[0],'<') || strstr($pieces[0],'>')) {
> Index: typo3/sysext/cms/tslib/class.tslib_pagegen.php
> ===================================================================
> --- typo3/sysext/cms/tslib/class.tslib_pagegen.php (Revision 7559)
> +++ typo3/sysext/cms/tslib/class.tslib_pagegen.php (Arbeitskopie)
> @@ -163,17 +163,11 @@
> $GLOBALS['TSFE']->sWordRegEx='';
> $GLOBALS['TSFE']->sWordList = t3lib_div::_GP('sword_list');
> if (is_array($GLOBALS['TSFE']->sWordList)) {
> - $standAlone = trim(''.$GLOBALS['TSFE']->config['config']['sword_standAlone']);
> - $noMixedCase = trim(''.$GLOBALS['TSFE']->config['config']['sword_noMixedCase']);
> + $space = (!empty($GLOBALS['TSFE']->config['config']['sword_standAlone'])) ? '[[:space:]]' : '';
>
> - $space = ($standAlone) ? '[[:space:]]' : '';
> foreach ($GLOBALS['TSFE']->sWordList as $val) {
> - if (trim($val)) {
> - if (!$noMixedCase) {
> - $GLOBALS['TSFE']->sWordRegEx.= $space.sql_regcase(quotemeta($val)).$space.'|';
> - } else {
> + if (strlen(trim($val))> 0) {
> $GLOBALS['TSFE']->sWordRegEx.= $space.quotemeta($val).$space.'|';
> - }
> }
> }
> $GLOBALS['TSFE']->sWordRegEx = preg_replace('/\|$/','',$GLOBALS['TSFE']->sWordRegEx);
>
More information about the TYPO3-team-core
mailing list