osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Ultimate SEO URL : mettre les ' en - ?
DowChao
posté 4 Feb 2009, 13:44
Message #1


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 25
Inscrit : 14-October 06
Membre no 12648



Bonjour,

Je viens d'installer avec succès la contrib Ultimate SEO URL, mais quelque chose ne me va pas dans la réécriture :

Ma catégorie "Huile d'Argan" se retrouve sous le format "../huile-dargan-c-27.html"

Comment faire pour avoir un tiret entre le d et le a, comme ceci : "/huile-d-argan-c-27.html" ?

De même, comme mes titres de produits sont très longs, pour les rendre plus esthétiques je les mets sur 2 lignes, en faisant le saut de ligne avec <br>. Sauf que ce <br> se retrouve dans l'url :
"../lotion-demaquillante-breclat-beaute-p-51.html"

Est-il possible de l'enlever, ou juste de le caler entre deux tirets ?


Merci pour votre aide.
Go to the top of the page
 
NoZic
posté 4 Feb 2009, 14:49
Message #2


Ceinture noire OSC
Icône de groupe

Groupe : Membres
Messages : 2871
Inscrit : 27-June 07
Lieu : Elancourt (78)
Membre no 18127



Bonjour,

Selon la version de SEO, un outil est prévu pour la conversion des caractères dans l'admin : "Configuration > SEO URLs > Enter specials caracters conversion" à remplir comme dans l'exemple.

Je dis selon les versions car cette fonctionnalité ne marche pas toujours très bien...
Ryu007 y a paré en changeant la fonction split() de la classe SEO dans "\catalog\includes\classes\seo.class.php" le message est dans ce post très intéressant :
[Ultimate SEO] Categorie dans l'URL, Ajouter les categories dans l'URL
Le sujet qu'il traite est intéressant aussi, tu y viendras, crois moi.

Bon courage

[EDIT] et hop coupage d'herbe sous le pied, shoprun, c'est moi pour une fois biggrin.gif
[EDIT 2] sinon pour ton br qui reste dans l'url, bah la solution est dans la fonction split aussi, un petit str_replace bien pensé devrait te le changer en tirets ou ce que tu veux.... inspire toi de celle de Ryu007 pour ce changement

Ce message a été modifié par NoZic - 4 Feb 2009, 14:52.


--------------------
"Les solutions existent toujours depuis longtemps, il suffit de les trouver."
Go to the top of the page
 
shoprun
posté 4 Feb 2009, 14:58
Message #3


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3712
Inscrit : 11-April 07
Lieu : Ile de la Réunion
Membre no 16487



Salut

Pas d'bol, j'ai aucune solution à ton problème ... ça commence mal mrgreen.gif
Mias je te dire franchement ... il vaudrait mieux abandonner cette idée de vouloir mettre des tirets comme séparateur aussi à la place des apostrophes, etc ...


En faite SEO remplace en premier les caractères spéciaux comme les àéèçù... et supprime tout le reste, donc ne conserve que les 26 lettres de l'alphabet. C'est bien mieux ainsi, ça évite les mauvaises surprises.

Ensuite le tiret fait partie prenante des règles de réécriture qu'exploite SEO :
RewriteRule ^(.*)-p-(.*).html$ -> pour une page produit
RewriteRule ^(.*)-c-(.*).html$ -> pour une page catégories
etc ...

Vouloir changer tout ça, pour permettre les tirets c'est surement possible, mais je ne suis pas certain que le coup vaut la chandelle ...
A chaque nouvelle version/mise à jour de SEO va falloir se taper toutes les modifs, rien que ça suffit pour s'en passer.


Après il y a une réflexion à avoir, se poser la question : A quoi sert ces réécriture ?

Bien souvent on se focalise à vouloir obtenir une URL compréhensible, bien faite, lisible comme sur du papier.
Et bien là je dirait que l'on fait erreur, car si on regarde les utilisateurs lambda (les clients en faites), et bien ils en ont rien affaire de cette URL dans la barre d'adresse, mais alors rien du tout ... (ou franchement pas grand monde, pour mettre une réserve)
C'est bien souvent une lobby que l'on fait soit même, car on a un oeil averti sur ce point ...

Les règles d'écriture sont avant tout faites pour les moteurs de recherche (du moins, surtout), et les URLs dynamiques du genre :
ma_page.php?id=machin&truc=bidule causent problèmes.
Ce n'est pas du tout conforme pour stocker ces URLs dans un fichier XML (ou pour en produire), ça plante méchamment.
Créer un siteMap XML bien structuré par exemple.
Créer des flux RSS (XML encore) bien fait, bien construit aussi, etc ...

Après il y a toute une histoire sur l'unicité des pages, duplicate contente, etc ...


--------------------
Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet.
Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums
Prés-Requis -> Les compétences requises pour réussir avec osCommerce
Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US
Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer
Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla
Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com
Go to the top of the page
 
shoprun
posté 4 Feb 2009, 15:01
Message #4


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3712
Inscrit : 11-April 07
Lieu : Ile de la Réunion
Membre no 16487



Citation (NoZic @ 4 Feb 2009, 17:49) *
[EDIT] et hop coupage d'herbe sous le pied, shoprun, c'est moi pour une fois biggrin.gif
Excellent laugh.gif
C'est qu'il m'a littéralement doubler le bougre tongue.gif biggrin.gif


--------------------
Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet.
Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums
Prés-Requis -> Les compétences requises pour réussir avec osCommerce
Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US
Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer
Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla
Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com
Go to the top of the page
 
Phocea
posté 4 Feb 2009, 15:18
Message #5


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1447
Inscrit : 12-March 05
Lieu : Chuiche
Membre no 5120



Pour le BR remplace les fonctions de la classe seo.class.php avec les suivantes, il me semble qu'il n'y a pas plus à faire:

Pour les ' il y a moyens mais c'est vraiment pas la peine de t'embeter avec ca, aucune valeur ajoutée sur tes mots clefs


Code
    function get_product_name($pID){
        switch(true){
            case ($this->attributes['USE_SEO_CACHE_GLOBAL'] == 'true' && defined('PRODUCT_NAME_' . $pID)):
                $this->performance['CACHE_QUERY_SAVINGS']++;
                $return = constant('PRODUCT_NAME_' . $pID);
                $this->cache['PRODUCTS'][$pID] = $return;
                break;
            case ($this->attributes['USE_SEO_CACHE_GLOBAL'] == 'true' && isset($this->cache['PRODUCTS'][$pID])):
                $this->performance['CACHE_QUERY_SAVINGS']++;
                $return = $this->cache['PRODUCTS'][$pID];
                break;
            default:
                $this->performance['NUMBER_QUERIES']++;
                $sql = "SELECT products_name as pName
                        FROM ".TABLE_PRODUCTS_DESCRIPTION."
                        WHERE products_id='".(int)$pID."'
                        AND language_id='".(int)$this->languages_id."'
                        LIMIT 1";
                $result = $this->DB->FetchArray( $this->DB->Query( $sql ) );
                
                
                $pName = preg_replace( "/\\<.*\\>/U", " ", $result['pName']);
                $pName = $this->strip($pName);
                $this->cache['PRODUCTS'][$pID] = $pName;
                $this->performance['QUERIES']['PRODUCTS'][] = $sql;
                $return = $pName;
                break;                                
        } # end switch        
        return $return;
    } # end function



Code
/**
* Function to generate products cache entries
* @author Bobby Easland
* @version 1.0
*/    
    function generate_products_cache(){
        $this->is_cached($this->cache_file . 'products', $is_cached, $is_expired);      
        if ( !$is_cached || $is_expired ) {
        $sql = "SELECT p.products_id as id, pd.products_name as name
                FROM ".TABLE_PRODUCTS." p
                LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd
                ON p.products_id=pd.products_id
                AND pd.language_id='".(int)$this->languages_id."'
                WHERE p.products_status='1'";
        $product_query = $this->DB->Query( $sql );
        $prod_cache = '';
        while ($product = $this->DB->FetchArray($product_query)) {
            $pName = $product['name'];
            $pName = preg_replace( "/\\<.*\\>/U", " ", $pName);
            $pName = $this->strip($pName);
            $define = 'define(\'PRODUCT_NAME_' . $product['id'] . '\', \'' . $pName . '\');';
            $prod_cache .= $define . "\n";
            eval("$define");
        }
        $this->DB->Free($product_query);
        $this->save_cache($this->cache_file . 'products', $prod_cache, 'EVAL', 1 , 1);
        unset($prod_cache);
        } else {
            $this->get_cache($this->cache_file . 'products');        
        }
    } # end function


Ce message a été modifié par Phocea - 4 Feb 2009, 15:20.
Go to the top of the page
 
NoZic
posté 4 Feb 2009, 16:33
Message #6


Ceinture noire OSC
Icône de groupe

Groupe : Membres
Messages : 2871
Inscrit : 27-June 07
Lieu : Elancourt (78)
Membre no 18127



Re,

Ah ouais, ça fonctionne aussi le truc de Phocea, mais je trouvais plus propre de changer la fonction strip(), ce qui reviendra strictement au même en fait, vu qu'elle est reprise dans la mise en cache.
Ca me semblait plus simple de ne rajouter qu'une ligne en fait.
Mais je peux me tromper.


--------------------
"Les solutions existent toujours depuis longtemps, il suffit de les trouver."
Go to the top of the page
 
Phocea
posté 4 Feb 2009, 18:00
Message #7


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1447
Inscrit : 12-March 05
Lieu : Chuiche
Membre no 5120



Bein honnetement strip je n'y ai jamais touché la conversion des caractères par défaut aillant toujours était suffisante et que je préfére avoir la main sur les lettres qui change.

En plus dans le cas de DowChao c'est un tag HTML qui le gène, mais on pourrait prendre la fonction de Ryu et ajouter la ligne preg_replace( "/\\<.*\\>/U", " ", $result['pName']); dedans (en adaptant). Ca devrait aussi marcher.

Pour l'apostrophe c'est un peu plus compliqué (ca touche au code de nb de lettre minimum)
Go to the top of the page
 
DowChao
posté 4 Feb 2009, 18:27
Message #8


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 25
Inscrit : 14-October 06
Membre no 12648



J'ai utilisé le code de Phocea, c'est nickel, plus de br, merci.

Concernant le ', si ça ne vaut pas la peine, ça restera comme ça. Mais je croyais que le but de l'URL rewriting c'était d'optimiser le référencement, et le fait d'avoir des mots clefs corrects dedans, ça doit jouer non ? Car "dargan" n'existe pas, mais "argan" oui. unsure.gif
Go to the top of the page
 
shoprun
posté 4 Feb 2009, 18:52
Message #9


2eme dan OSC
Icône de groupe

Groupe : Membres VIP
Messages : 3712
Inscrit : 11-April 07
Lieu : Ile de la Réunion
Membre no 16487



Citation (DowChao)
Mais je croyais que le but de l'URL rewriting c'était d'optimiser le référencement, et le fait d'avoir des mots clefs corrects dedans, ça doit jouer non ? Car "dargan" n'existe pas, mais "argan" oui. unsure.gif
Il ne faut pas confondre la "réécriture" des URLs qui est le but 1er de la contribution SEO_urls et tout ce qui touche les mots clés, etc ... dont la contribution Header_Tags est très connue pour ça, ça n'a pas grand rapport (j'ai tendance à dire : aucun).

Certes, ici ça va aider au référencement, mais le but n'est pas du tout le même.
Comme je te l'ai dis, la réécriture est plus (sinon uniquement) un mécanisme pour résoudre des problèmes purement techniques dû aux URLs produites par osC (et beaucoup d'autres Soft d'ailleurs), des incompatibilités à cause de certaines normes, pour une meilleur "portabilité".
Les fichiers XML ne supportent pas ces types d'urls (par exemple).

Les mots clés c'est une tout autre histoire, c'est directement lié au contenu d'une page Web.
Donc vouloir des tirets à la place des apostrophes dans la barre d'adresse (url) n'apportera rien de plus, n'améliora rien.
Sauf erreur blush.gif

Pour le référencement en ce qui concerne les mots clés et tout l'toutim, il faut se concentrer sur les titres, sous titres, les meta, sur le bon usage des bonnes balises pour le bon contenu, etc, etc ... bref, d'avoir du contenu pertinent (un exercice quelque peu ingrat).


--------------------
Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet.
Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums
Prés-Requis -> Les compétences requises pour réussir avec osCommerce
Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US
Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer
Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla
Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com
Go to the top of the page
 
NoZic
posté 5 Feb 2009, 18:31
Message #10


Ceinture noire OSC
Icône de groupe

Groupe : Membres
Messages : 2871
Inscrit : 27-June 07
Lieu : Elancourt (78)
Membre no 18127



Bonsoir,

shoprun+1

Mais sinon pour ton truc avec les simple quote retouche juste la fonction strip() comme j'indiquais.

Bon, je fais le test, ok...

Bon comme je pensais ça fonctionne (et ça aurait fonctionner avec le br qui trainait aussi), le truc c'est que j'obtiens huile-argan au lieu de huile-d-argan (même avec le réglage "Filter Short Words" à 1). mais j'ai beaucoup retoucher SEO donc mon test n'est peut-être pas des plus "convenient" in english.
Mais bon ça fonctionne quand même.

Donc juste rajouter cette ligne :
Code
        $anchor = str_replace('\'', $separator, $anchor);
dans la fonction strip() de seo.class.php juste avant celle-ci (la dernière de la fonction) :
Code
        return $this->short_name($anchor); // return the short filtered name


Sinon juste mettre
Code
'=>-
dans les "specials caracters conversion" devrait fonctionner aussi (avec la fonction strip d'origine, pas celle de Ryu007).

Bon courage



--------------------
"Les solutions existent toujours depuis longtemps, il suffit de les trouver."
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 25th May 2013 - 14:44
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)