Bonjour,
le code de ce post a subi quelques corrections depuis le début
en attendant ModX 0.9.5, nous pouvons être tenté d’insérer les nouvelles API proposées dans les forums à la classe DocumentParser (qui est la classe de la variable $modx).
Une méthode pour ne pas tout perdre lors de la prochaine mise à jour (qui ne saurait tarder

) est de mettre toutes ses nouvelles fonctions dans le répertoire assets et de faire un include à l’intérieur de la classe DocumentParser.
Mais lorsque l’on veut modifier le comportement par défaut d’une fonction, bien souvent, on modifie directement son code ce qui le rend difficile à maintenir.
Je pense pouvoir proposer une solution avec php5. Je crée une classe MyDocumentParser. Celle-ci fera référence à la variable globale $modx (oui ce n’est pas terrible mais je pense être obligé d’utiliser cette variable), elle implémente de nouvelles fonctions ou en redéfinit des anciennes. Pour pouvoir l’utiliser comme la variable $modx, j’utilise les fonctions magiques __call(), __set() et __get() :
class MyDocumentParser{
//placez ici définition des nouvelles variables
//placez ici l'implémentation des nouvelles fonctions
//placez ici la réimplémentation des anciennes fonctions
public function __call($name, $arguments){
global $modx;
if(count(arguments==1)) return $modx->$name($arguments[0]);
else return $modx->$name($arguments);
}
public function __set($var, $value){
global $modx;
$modx->$var=$value;
}
public function __get($var){
global $modx;
return $modx->$var;
}
}
puis on crée l’objet :
$modx2=new MyDocumentParser();
et l’on a accès a toute l’API de modx sur $modx2.
Si vous voulez utiliser les anciennes implémentations des fonctions, vous utilisez $modx, sinon vous utilisez $modx2.