Embarquer une config realurl par défaut dans une extension TYPO3

Posté le 19-11-2009

Lorsque l’on développe une extension, il peut être intéressant de prendre en charge la réécriture des paramètres passés en $_GET. Pour cela, sous TYPO3, on utilise généralement l’extension realurl. Cette extension fonctionne à l’aide d’une configuration particulière (sous forme de tableau) que l’on fait dans un fichier PHP. Ce fichier peut devenir vite volumineux si jamais beaucoup de développements spécifiques sont présents sur votre site.
Dans une logique de « refactoring », il peut être intéressant d’embarquer directement cette configuration realurl dans le répertoire de votre extension, pour qu’elle soit active à l’installation. Pour cela, vous avez juste à renseigner les mêmes lignes que celle placées dans le fichier global sauf que vous les placerez dans le fichier « ext_localconf.php » de votre extension. Voici un exemple de configuration placée à la fin du fichier « ext_localconf.php » (avec un développement maison) :

if (t3lib_extMgm::isLoaded('realurl')) {
    $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['postVarSets']['_DEFAULT']['univers'] = 
    array(
        array(
            'GETvar' => 'ycboutique[category]',
            'lookUpTable' => array(
                'table' => 'tx_ycboutique_categorie',
                'id_field' => 'uid',
                'alias_field' => 'libelle',
                'addWhereClause' => ' AND NOT deleted',
                'useUniqueCache' => 1,
                'useUniqueCache_conf' => array(
                    'strtolower' => 1,
                    'spaceCharacter' => '-',
                ),
            ),
        ),
    );
    $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['postVarSets']['_DEFAULT']['famille'] = 
    array(
        array(
            'GETvar' => 'ycboutique[subcategory]',
            'lookUpTable' => array(
                'table' => 'tx_ycboutique_souscategorie',
                'id_field' => 'uid',
                'alias_field' => 'libelle',
                'addWhereClause' => ' AND NOT deleted',
                'useUniqueCache' => 1,
                'useUniqueCache_conf' => array(
                    'strtolower' => 1,
                    'spaceCharacter' => '-',
                ),
            ),
        ),
    );
    $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT']['postVarSets']['_DEFAULT']['produit'] = 
    array(
        array(
            'GETvar' => 'ycboutique[product]',
            'lookUpTable' => array(
                'table' => 'tx_ycboutique_produit',
                'id_field' => 'uid',
                'alias_field' => 'libelle',
                'addWhereClause' => ' AND NOT deleted',
                'useUniqueCache' => 1,
                'useUniqueCache_conf' => array(
                    'strtolower' => 1,
                    'spaceCharacter' => '-',
                ),
            ),
        ),
    );
}

L’avantage de cette méthode est que la configuration n’est active que si realrul est installé sur votre site.

comments powered by Disqus