[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