Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
4 Feb 2009, 13:44
Message
#1
|
|
|
Ceinture blanche+ OSC 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. |
|
|
4 Feb 2009, 14:49
Message
#2
|
|
![]() Ceinture noire OSC 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 [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."
|
|
|
4 Feb 2009, 14:58
Message
#3
|
|
![]() 2eme dan OSC 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 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 |
|
|
4 Feb 2009, 15:01
Message
#4
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
[EDIT] et hop coupage d'herbe sous le pied, shoprun, c'est moi pour une fois Excellent C'est qu'il m'a littéralement doubler le bougre -------------------- 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 |
|
|
4 Feb 2009, 15:18
Message
#5
|
|
|
Ceinture marron OSC 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. |
|
|
4 Feb 2009, 16:33
Message
#6
|
|
![]() Ceinture noire OSC 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."
|
|
|
4 Feb 2009, 18:00
Message
#7
|
|
|
Ceinture marron OSC 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) |
|
|
4 Feb 2009, 18:27
Message
#8
|
|
|
Ceinture blanche+ OSC 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. |
|
|
4 Feb 2009, 18:52
Message
#9
|
|
![]() 2eme dan OSC 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. 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 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 |
|
|
5 Feb 2009, 18:31
Message
#10
|
|
![]() Ceinture noire OSC 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."
|
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 22nd May 2013 - 16:01 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |