We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33071
    • 31 Posts
    Bonsoir à tous,


    Je suis en train de mettre en production mon premier "vrai" site réalisé sous modX.
    Concernant l’utilisation des URLs simples, tout s’est passé correctement moyennant quelques petits réglages d’Apache.

    Une problème subsiste concernant la génération automatique des Alias de document (ce qui est bien pratique)
    En effet, il semblerait que les caractères spéciaux soient tout simplement supprimés lors de la création des Alias, ce qui enlève quasiment tout l’intérêt du dispositif, censé être particulièrement adapté aux moteurs de recherche.

    Quelqu’un aurait-il une solution à ce petit désagrément ?
      • 20488
      • 353 Posts
      Bonjour Yass,

      il me semble que ce problème a déjà été traité. Cela dit, je ne trouve pas le topic adéquat. Je propose donc ici une solution. Attention ceci est un hack, il faudra modifier le core, c’est à dire un fichier sensible.

      Dans manager/processors/save_content.processor.php remplacer la fonction stripAlias par la suivante :

      function stripAlias($alias) {
          global $modx;
      
          if(strtoupper($modx->config['modx_charset'])=='UTF-8') $alias = utf8_decode($alias);
          $alias = strtr($alias, array(chr(196) => 'Ae', chr(214) => 'Oe', chr(220) => 'Ue', chr(228) => 'ae', chr(246) => 'oe', chr(252) => 'ue', chr(223) => 'ss'));
      	
      	$pattern = array("/é/", "/è/", "/ê/", "/ç/", "/à/", "/â/", "/î/", "/ï/", "/ù/", "/ô/");
          $rep_pat = array("e", "e", "e", "c", "a", "a", "i", "i", "u", "o");
          $alias = preg_replace($pattern, $rep_pat, $alias);
          
      	
      	$alias = strip_tags($alias); 
          //$alias = strtolower($alias); 
      	
      	
      	
          $alias = preg_replace('/&.+?;/', '', $alias); // kill entities 
          $alias = preg_replace('/[^\.%A-Za-z0-9 _-]/', '', $alias); 
          $alias = preg_replace('/\s+/', '-', $alias); 
          $alias = preg_replace('|-+|', '-', $alias); 
      	$alias = preg_replace('|-+|', '-', $alias); 
      	
      	
      	
          $alias = trim($alias, '-'); 
          return $alias;
      }


      Attention, je décline toute responsabilité, mais cela semble fonctionner chez moi... wink

      ++



        • 6726
        • 7,075 Posts
        Oui le sujet a été traité et tu as le plugin custom alias qui prend en compte ce souci normalement smiley
          .: COO - Commerce Guys - Community Driven Innovation :.


          MODx est l'outil id
          • 33071
          • 31 Posts
          Olivier, David,

          merci beaucoup !

          J’ai travaillé sur le code depuis hier et j’ai trouvé la même solution que celle que tu m’as proposée Olivier. celà semble fonctionner, reste maintenant à penser à le faire en cas de nouvelle installation de modX ou de mise à jour.
          J’ai également géré le remplacement des simples et double quotes par des tirets afin de rendre les urls encore plus compréhensibles aussi bien par les utilisateurs que par les moteurs de recherche !

          Merci pour votre aide smiley

          Bonne soirée !
            • 11975
            • 2,542 Posts
            Salut,

            si tu as amélioré le filtre pense à poster le code.
            ça peut toujours servir

            :-)
              Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
              • 23478
              • 133 Posts
              bonjour

              Je profite de ce sujet pour vous demander : il m’avait semblé comprendre que google indexait un poil mieux si on utilisait "_" au lieu de "-" pour séparer les mots.

              Ai-je mal compris ? est-ce vrai / faux / négligeable ?

              Je vous pose la question car je pensais remplacer le "-" par un "_" dans le trim ....
                • 20488
                • 353 Posts
                Non c’est l’inverse.
                Le underscore n’est pas considéré comme séparateur par GG. wink