Url rewriting

Messagepar ZuckBin » Jeu 29 Déc 2005, 18:41

Bonjour,

J'ai instale ceci: Ultimate SEO URLs 2.1d

C'est pas tip top sur oscss, probleme de l'ajout du panier.

J'arrive pas a ajouter de nouvelles pages.

Quel contributions ou solution est conseillé sur oscss pour l'url rewritting ?

Merci de votre aide.
Cordialement.
_____________________
osCSS 1.0.1 + Full Rewriting + contribs...
ZuckBin
Membre actif
 
Messages: 18
Inscription: Sam 10 Sep 2005, 12:47

Messagepar MicaeL » Ven 30 Déc 2005, 00:17

Moi je dit qu'il faudrait l'intégrer a osCSS! Et la possibilité de l'activer ou pas dans configure.php (plutot que par mysql, car en cas de problème tout le site pourrait partir en erreur 500).
MicaeL
 

Messagepar sidarus » Ven 30 Déc 2005, 00:18

Salut Zuck

Ultimate SEO URLs me semble etre la contrib la plus approprié en terme d'url rewriting... s'appel pas SEO (Search Engine Optimization) pour rien ;)

J'ai pas vraiment le temps de m'en occuper vu que je passe le plus clair de mon temp sur notre wiki. En contre partie j'ai créé dans wiki un nouveau repository : osc:plugin

Pour l'instant je n'ai fais que ceci :
* un moteur de recherche vers les contrib OsC
* et une liste des contrib OsC que nous avons optimisées pour osCSS

Voila pour l'heure

MicaeL a écrit:Moi je dit qu'il faudrait l'intégrer a osCSS! Et la possibilité de l'activer ou pas dans configure.php

Bien entendu... vu que Apache comprend un mod_rewrite prévu à cet effet (cf httpd.conf) :
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

Pour autant que SEO n'apporte rien de plus (pas encore testé).
sidarus
Membre très actif
 
Messages: 396
Inscription: Mar 03 Mai 2005, 23:34
Localisation: Geneva (CH)

Messagepar ZuckBin » Ven 07 Avr 2006, 18:39

Salut,

Des nouvelles pour ce Seo ?

J'ai réussi à insérer d'autres pages, tout ce passe dans le fichier seo.class.php et ne pas oublier d'ajouter la regle dans le htaccess.Il faut aussi bien ajouter le nom des pages rajoutées dans le fichier filenames.php.

Je ne peux pas poster ici le code du fichier seo.class.php, car il pese 72ko, et le forum ne le prend pas.

Par contre toujours, un probleme avec le panier, lors d'un ajout de produit, le panier reste vide !

Je comprend pas.

++
_____________________
osCSS 1.0.1 + Full Rewriting + contribs...
ZuckBin
Membre actif
 
Messages: 18
Inscription: Sam 10 Sep 2005, 12:47

Messagepar stepibou » Dim 09 Avr 2006, 19:13

Salut,

tu as fais des modifications sur ce fichier?
Si oui, met ici que tes modifs. Sinon, completement inutile, vu que le code est disponible sur oscommerce et ici :
http://wiki.oscss.org/doku.php?id=osc:p ... e_seo_urls

Sur cette page du wiki, tu peux mettre tes observations, solutions ou meme questions ciblés...

Je vais bientot l'installer pour une boutique, je regarderai ca de plus pret...
Mais , à priorie c'est compatible...

T'as essayé de mettre utilisation de force des cookies sur false?

;)
--> osCSS inside <--
stepibou
Membre très actif
 
Messages: 274
Inscription: Dim 30 Oct 2005, 02:15
Localisation: Lyon

Messagepar ZuckBin » Lun 10 Avr 2006, 10:49

Bonjour,

J'ai essayer de mettre utilisation de force des cookies sur false, et ca change rien.

Sinon, voici le code pour ceux que ca intéresse, pour ajouter une page a seo ou plusieurs.

Il s'agit du fichier seo.class.php pris ici le 07/04/06:
http://forum.oscommerce-freelancers.com ... d.php?t=71

J'espere que c'est la derniere version.

On va ajouter 2 pages pour l'exemple: popup_image_2.php et popup_image_3.php.
Bien evidemment, c'est la meme technique pour vos pages, changer en fonction de vos noms de fichiers.

Vers la ligne 548
Code: Tout sélectionner
$seo_pages = array(FILENAME_DEFAULT,
                      FILENAME_PRODUCT_INFO,
               FILENAME_POPUP_IMAGE,
               FILENAME_POPUP_IMAGE_2,
               FILENAME_POPUP_IMAGE_3,
               FILENAME_PRODUCT_REVIEWS,
               FILENAME_PRODUCT_REVIEWS_INFO);

On ajoute FILENAME_POPUP_IMAGE_2, FILENAME_POPUP_IMAGE_3.

Vers la ligne 587
Code: Tout sélectionner
$this->reg_anchors = array('products_id' => '-p-',
                  'cPath' => '-c-',
                   'manufacturers_id' => '-m-',
                  'pID' => '-pi-',
                  'pID2' => '-pi2-',
                  'pID3' => '-pi3-',
                  'tPath' => '-t-',
                   'articles_id' => '-a-',
                   'products_id_review' => '-pr-',
                   'products_id_review_info' => '-pri-',
                   'info_id' => '-i-'
                  );

On ajoute 'pID2' => '-pi2-', 'pID3' => '-pi3-',

Vers la ligne 833
Code: Tout sélectionner
case 'pID':
         switch(true){
           case ($page == FILENAME_POPUP_IMAGE):
           $url = $this->make_url($page, $this->get_product_name($p2[1]), $p2[0], $p2[1], '.html', $separator);
            break;
          default:
            $container[$p2[0]] = $p2[1];
            break;
          } # end switch
          break;
        case 'pID2':
          switch(true){
           case ($page == FILENAME_POPUP_IMAGE_2):
           $url = $this->make_url($page, $this->get_product_name($p2[1]), $p2[0], $p2[1], '.html', $separator);
            break;
          default:
            $container[$p2[0]] = $p2[1];
            break;
          } # end switch
          break;
        case 'pID3':
          switch(true){
           case ($page == FILENAME_POPUP_IMAGE_3):
           $url = $this->make_url($page, $this->get_product_name($p2[1]), $p2[0], $p2[1], '.html', $separator);
            break;
          default:
            $container[$p2[0]] = $p2[1];
            break;
          } # end switch
          break;
        case 'tPath':
         switch(true){
           case ($page == FILENAME_ARTICLES):
              $url = $this->make_url($page, $this->get_topic_name($p2[1]), $p2[0], $p2[1], '.html', $separator);
              break;
            default:
              $container[$p2[0]] = $p2[1];
              break;
          } # end switch
          break;

On ajoute les cases pID2 et pID3

C'est fini pour ce fichier

Ne pas oublier d'ajouter les noms des 2 fichiers dans filenames.php
Code: Tout sélectionner
  define('FILENAME_POPUP_IMAGE_2', 'popup_image_2.php');
  define('FILENAME_POPUP_IMAGE_3', 'popup_image_3.php');

Et enfin dans le .htaccess

Code: Tout sélectionner
RewriteRule ^(.*)-pi2-(.*).html$ popup_image_2.php?pID=$2&%{QUERY_STRING}
RewriteRule ^(.*)-pi3-(.*).html$ popup_image_3.php?pID=$2&%{QUERY_STRING}

Voila, j'ai toujours mon probleme d'ajout au panier, et de symbole ''amp;" dans l'url.
J'espere que ca aidera certains d'entre vous.

Concernant mon fichier html_output.php, voici le contenu de la fonction HTML href link wrapper function:
Code: Tout sélectionner
// The HTML href link wrapper function
if (SEO_ENABLED == 'true') { //run chemo's code
  function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
        global $seo_urls;
                if ( !is_object($seo_urls) ){
                        if ( !class_exists('SEO_URL') ){
                                include_once(DIR_WS_CLASSES . 'seo.class.php');
                        }
                        global $languages_id;
                        $seo_urls = new SEO_URL($languages_id);
                }
        return $seo_urls->href_link($page, $parameters, $connection, $add_session_id);
  }
} else { //run original code
// The HTML href link wrapper function
  function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
    global $request_type, $session_started, $SID;

    if (!tep_not_null($page)) {
      die('<br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine the page link!<br><br>');
    }

    if ($connection == 'NONSSL') {
      $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
    } elseif ($connection == 'SSL') {
      if (ENABLE_SSL == true) {
        $link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
      } else {
        $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
      }
    } else {
      die('<br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine connection method on a link!<br><br>Known methods: NONSSL SSL</b><br><br>');
    }

    if (tep_not_null($parameters)) {
      $link .= $page . '?' . tep_output_string($parameters);
      $separator = '&';
    } else {
      $link .= $page;
      $separator = '?';
    }

    while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

// Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
    if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
      if (tep_not_null($SID)) {
        $_sid = $SID;
      } elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
        if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
          $_sid = tep_session_name() . '=' . tep_session_id();
        }
      }
    }

    if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
      while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);

      $link = str_replace('?', '/', $link);
      $link = str_replace('&', '/', $link);
      $link = str_replace('=', '/', $link);

      $separator = '?';
    }

    if (isset($_sid)) {
      $link .= $separator . $_sid;
    }

    return $link;
  }
}

Ca vous semble correct ?

++
Dernière édition par ZuckBin le Lun 10 Avr 2006, 11:19, édité 1 fois.
_____________________
osCSS 1.0.1 + Full Rewriting + contribs...
ZuckBin
Membre actif
 
Messages: 18
Inscription: Sam 10 Sep 2005, 12:47

Messagepar ZuckBin » Mer 12 Avr 2006, 11:09

Bonjour,

Je continu mes recherches concernant seo + oscss.

A présent, j'a plus de problemes de panier, ni de "amp;" dans l'url, il suffisait de commenter cette ligne:

Code: Tout sélectionner
// return str_replace('&', '&amp;', $get_url);

dans le fichier general.php dans la fonction
Code: Tout sélectionner
// Return all HTTP GET variables, except those passed as a parameter
  function tep_get_all_get_params($exclude_array = '')

On peu dire que c'est fonctionnel.

Maintenant, je voudrai m'attaquer à réecrire tout le site, donc tout les liens du site.

On a vu plus haut qu'on pouvait ajouter des adresses avec des paramètres.

Ca peu paraitre bete, mais je n'arrive pas à ajouter des adresses sans parametres, par exemple:

sitemap.php qui deviendrait plan-du-site.html

C'et facile du coté du .htaccess, mais je voudrais une fonction php qui fasse le boulot inverse par rapport au fichier .htaccess.

Je ne souhaite pas modifier tout mes liens du site sur toute les pages.

ll serait judicieux d'implémenter ces adresses directement dans la classe seo, en créant une nouvelle fonction.

Ainsi, le lien sera réecris automatiquement.

J'ai trouver une piste avec ce bout de code pris ici:
http://www.webmaster-experience.net/art ... cle-2.html

"Nous avons vu comment ça se passe du côté du serveur mais au niveau du code PHP il faut maintenant avoir les bonnes url, c'est à dire au format .HTML. Pour cela il y a deux manière, la première c'est que vous mettiez les bonnes url directement dans votre code, soit utiliser une fonction PHP inverse de celle du .htacces. Cet deuxième solution a l'avantage d'être extrêmement souple, si vous changez vos règles ou si le support de l'URL Rewriting est désactivé du serveur. Voici la fonction que j'utilise :"

Code: Tout sélectionner
function lienurlrewriting($url) {
if (eregi("(.*).php(.*)",$url,$regs)) {
$monurl = $regs[1];
$geturl = $regs[2];
while (eregi("(.*)(?|&)([^=]+)=([^=]*)(.*)",$geturl,$regs)) {
$geturl = $regs[1]."-".$regs[3]."-".$regs[4].$regs[5];
}
$url = $monurl.$geturl;
} elseif(eregi("(.*).php",$url,$regs)) {
$url = $regs[1];
}
return $url.".html";
}

Je ne sais pas trop comment implémenter ceci dans le fichier seo.class.php

Je pense que ca faciliterai pas mal le travail a tout ceux qui veulent utiliser l'url rewriting.

J'espere avoir ouvert une piste, je continu mes recherches de mon coté, en esperant que quelq'un de plus qualifié que moi s'intéresse à ce sujet.

Cordialement.
++
Dernière édition par ZuckBin le Mer 12 Avr 2006, 11:12, édité 1 fois.
_____________________
osCSS 1.0.1 + Full Rewriting + contribs...
ZuckBin
Membre actif
 
Messages: 18
Inscription: Sam 10 Sep 2005, 12:47

Messagepar fbparis » Sam 06 Mai 2006, 16:55

Bon, c resolu les amis et voila les modifs a faire dans la classe SEO_URL :

Ligne 549 dans le constructeur de la classe, ajouter FILENAME_PRODUCTS_NEW :

Code: Tout sélectionner
//ojp FILENAME_LINKS   
    $seo_pages = array(FILENAME_DEFAULT,
                      FILENAME_PRODUCT_INFO,
              FILENAME_PRODUCTS_NEW,
              FILENAME_POPUP_IMAGE,
               FILENAME_PRODUCT_REVIEWS,
               FILENAME_PRODUCT_REVIEWS_INFO);

Ligne 753 :
Code: Tout sélectionner
  function parse_parameters($page, $params, &$separator){
   $params = str_replace('&amp;','&',$params);

Ligne 766 ajouter ca :

Code: Tout sélectionner
            case ( $page == FILENAME_PRODUCTS_NEW && !$this->is_attribute_string($p2[1]) ):
             $url = $this->make_url($page, $this->get_product_name($p2[1]), $p2[0], $p2[1], '.html', $separator);
              break;

Pour infos, j'ai aussi modifier ca dans include/functions/general/ pour la fonction tep_get_all_get_params ligne 198, je sais pas si ca joue mais ca peut pas faire de mal...

Code: Tout sélectionner
    return str_replace('&', '&amp;', str_replace('&amp;', '&', $get_url));

Voila, ne me remerciez pas, et sinon bravo a la personne qui a lance le projet osCss meme si ca semble pas bouger depuiis qq temps... Toutes les tables de la BDD s'installent pas lors de la procedure d'installation, et ya un petit bug dans la page pour gerer les menus dans l'admin, mais tout ca se corrige facilement... C'est un super projet en tous cas en attendant osCommerce 3 !
fbparis
Membre inactif
 
Messages: 7
Inscription: Sam 06 Mai 2006, 16:45
Localisation: Paris

Messagepar fbparis » Sam 06 Mai 2006, 17:40

je viens de voir qu'il faut aussi ajouter FILENAME_ADVANCED_SEARCH_RESULT dans seo_pages

il semble sinon que la recherche fonctionne mal, je vais voir pour corriger ca :)
fbparis
Membre inactif
 
Messages: 7
Inscription: Sam 06 Mai 2006, 16:45
Localisation: Paris

Messagepar fbparis » Sam 06 Mai 2006, 18:39

Bon je trouve pas pour la recherche avancee, donc j'ai ajoute ca dans advanced_serach_result.php au debut, apres $error = false :

Code: Tout sélectionner
  $query_string = str_replace('&amp;','&',$_SERVER['QUERY_STRING']);
  parse_str($query_string,$output);
  foreach ($output as $k=>$v) $_GET[$k] = urldecode($v);

au fait si la personne qui s'occupe de osCss veut reprendre du service, je peux aider pour sortir une version avec les qqs bugs corriges, et j'ai aussi ajoute un systeme de generation de rss pour les categories de produits, nouveautés et promotions et je vais faire aussi pour les resultats de recherche, j'ai aussi pondu une generation automatique de sitemap google.

prochaine etape, un menu dynamique 100% css sans js pour l'affichage des categories de produits, mais ca ca concerne le template a priori.

j'aurais pas le temps de sortir des contribs mais je veux bien transmettre toutes mes modifs a la personne qui s'occupera de sortir la contrib ou la mise a jour de osCss...

toutes mes modifs sont en prod sur le site d'un client : http://www.editions-jpl.com , si vous trouvez des bugs dites le moi hein !
fbparis
Membre inactif
 
Messages: 7
Inscription: Sam 06 Mai 2006, 16:45
Localisation: Paris

Messagepar stepibou » Sam 06 Mai 2006, 21:33

Salut,

Merci pour l'explication sur l'integration de seo url..

return str_replace('&', '&amp;', str_replace('&amp;', '&', $get_url));
me semble une assez forte aberation :D

L'url rewriting de la recherche, ne present à priorie aucun interet vu que les moteur ne vont pas faire de recherche...

Sinon, pour les bugs, tu peux les presenter un à un dans le forum oscss rc1,
verifie bien qu'il n'est pas deja mensionné.

pour le rss, je comprend pas quel temps ca te prendrai de creer un poste ou tu met tes fichiers de création de rss prour categ, promo, nouveauté...
Après je pourrai le mettre dans le wiki , si ca te porte peine.

Regarde ce post : c'est quand meme un truc qui reste un plugin/contrib et qui est recherché par d'autres : http://forums.oscss.org/viewtopic.php?id=228
Si tu l'a fais, pourquoi ne pas partager?
regarde ici le peu de plugin dispo, et pourtant, il y en aurrai que deux , si je m'etais dis , ho j'ai pas le temps..., http://wiki.oscss.org/doku.php?id=osc:plugin
Donc , voila , merci de relier la parole aux actes, si possible.

J'ajouterai meme, que si manmachine, c'etait dit ha j'ai pas le temps de faire un site pour ma version , on serai pas là à faire des sites avec, ni discuter dessus... think about this!

a+
--> osCSS inside <--
stepibou
Membre très actif
 
Messages: 274
Inscription: Dim 30 Oct 2005, 02:15
Localisation: Lyon

Messagepar ZuckBin » Mer 10 Mai 2006, 17:43

Bonjour,

Pour mon cas, j'ai fini de rewriter tout mon site, je le test, et retest.

Dans mon post précédent, je disais que je n'arrivais pas à implémenter une page sans paramètres, c'est maintenant résolu.

Ceci est la méthode que j'utilise, si quelqu'un à trouvé mieux...

On va transformer le fichier suivant about.php en a-propos.html

Vous pourrez faire de mème pour d'autres pages.

Attention, pour reécrire tout votre site, certains paramètres doivent ètre pris en compte, et donc vous devez utilisez la premiere méthode cité plus haut.

Dans le fichier seo.class.php

Apres

Code: Tout sélectionner
  function href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true){

     $this->start($this->timestamp);
   $this->performance['NUMBER_URLS_GENERATED']++;
    if ( !in_array($page, $this->attributes['SEO_PAGES']) || $this->attributes['SEO_ENABLED'] == 'false' ) {

Rajouter ceci
Code: Tout sélectionner
if(eregi("(.*).php",$page,$regs)) {
$page = $regs[1];

$find[] = 'about';
$replace[] = 'a-propos';

$page = str_replace($find, $replace, $page);

return $page.'.html';
}

Dans le htaccess

Rajouter ceci
Code: Tout sélectionner
RewriteRule ^a-propos.html$ about.php [L]

Normalement, vous devez vous retrouver avec le lien a-propos.html à la place de about.php, c'est implémenter dans la function href_link.

Voila,
J'attends vos questions, remarques,... si vous en avez.

++
_____________________
osCSS 1.0.1 + Full Rewriting + contribs...
ZuckBin
Membre actif
 
Messages: 18
Inscription: Sam 10 Sep 2005, 12:47

Messagepar Av4t4r » Jeu 25 Mai 2006, 15:34

has anyone had any success with making this plugin fully osCSS compliant ?
Av4t4r
Membre inactif
 
Messages: 2
Inscription: Mar 25 Avr 2006, 16:34

Messagepar yozz » Mer 13 Déc 2006, 21:13

Bonjour à tous.

J'ai reussi a installer SEO sans difficulté grace aux infos de ce post, donc, deja, merci :)

Il me reste un probleme avec les menus deroulants qui permettent de changer la devise ou le fabricant : apres avoir choisi dans la drop-box, on se retrouve a chaque fois sur la page d'accueil avec l'url :

Code: Tout sélectionner
index.php?shop=index.php

(shop est le sous-dossier ou se trouve oscss)

Si quelqu'un a des infos :)

Merci d'avance.

yozz.
yozz
Membre inactif
 
Messages: 1
Inscription: Ven 20 Oct 2006, 18:22

Messagepar leksa » Sam 16 Déc 2006, 19:54

Salut,

Et bien de mon cote ceci fonctionne a moitié.

En effet les pages et les liens sont bien renommés cependant je tombe tout le temps sur une page "not found" ??!!

Si j'utilise des url sans variable ceci fonctionne bien, je pense donc que le mode rwrinting est ok sur le serveur.

Quelqu'un aurait-il une solution a ceci ?

Merci a + :)
leksa
Membre inactif
 
Messages: 6
Inscription: Jeu 07 Déc 2006, 16:35
Localisation: Montpellier

Messagepar Mali » Mer 03 Jan 2007, 16:15

Bonjour,

quand je suis sur la page product_info, qui me présente donc le produit, et que je souhaite changer de langue :

Fatal error: Cannot instantiate non-existent class: infobox in /home/WwwBSD/kellidenn.com/includes/content/product_info.php on line 15

Du à la modification du fichier includes/fucntions/general.php de Zuckbin :

Code: Tout sélectionner
// return str_replace('&', '&amp;', $get_url);

Avec cette modif, le panier se rempli ! cool. Mais impossible de changer de langue... Exemple :

Code: Tout sélectionner
http://www.kellidenn.com/product_info.php?products_id=77

je souhaite passer en allemand :

Code: Tout sélectionner
http://www.kellidenn.com/product_info.php?language=de

il perd le "products_id=77"... et m'affiche :

Code: Tout sélectionner
Fatal error: Cannot instantiate non-existent class: infobox in /home/WwwBSD/kellidenn.com/includes/content/product_info.php on line 15

Pour info : la ligne 15 du fichier product_info est :
<div class="infoText"><?php new infoBox(array(array('text' => TEXT_PRODUCT_NOT_FOUND))); ?></div>

quelqu'un peut m'aider ?
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar Mali » Mer 03 Jan 2007, 18:54

Bon, j'ai avancé... ca a l'air d'être OK...

j'ai remis valide le code dans general.php :

Code: Tout sélectionner
// return str_replace('&', '&amp;', $get_url);

mais en inversant deux valeurs comme ici :

Code: Tout sélectionner
return str_replace('&amp;', '&', $get_url);

Ne comprenant pas grand chose... est ce que cela peut porter atteinte au fonctionnement de la boutique ? car j'ai été sur le site faire plusieurs essais, et ca a l'air de fonctionner en pratique.

Mali
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar ZuckBin » Mer 03 Jan 2007, 23:14

Kikou,

Dans le fichier seo.class.php, j'ai ceci tout à la fin:

Code: Tout sélectionner
$url = preg_replace('/&amp;/','&',$url);

Je sais pas si ca va vous aidez.

Pour le multilangue, il à fallut que je fasse d'autre manipulations pour que cela fonctionne.

Quand vous avez une erreur de ce style:

Code: Tout sélectionner
Fatal error: Cannot instantiate non-existent class:

C'est que la class n'existe pas, et il faut la creer.

Si ca peu aider, voici mon fichier languages.php modifié, pour que cela fonctionne:

Code: Tout sélectionner
<?php
  if (!isset($lng) || (isset($lng) && !is_object($lng))) {
    include(DIR_WS_CLASSES . 'language.php');
    $lng = new language;
  }

  $languages_string = '';
  reset($lng->catalog_languages);
 
  if(strstr($_SERVER["REQUEST_URI"],'?language=')!=false)
  $_SERVER["REQUEST_URI"]=substr($_SERVER["REQUEST_URI"],0,strpos($_SERVER["REQUEST_URI"],'?language='));
elseif(strstr($_SERVER["REQUEST_URI"],'&language=')!=false)
  $_SERVER["REQUEST_URI"]=substr($_SERVER["REQUEST_URI"],0,strpos($_SERVER["REQUEST_URI"],'&language='));
 
  while (list($key, $value) = each($lng->catalog_languages)) {
 
    $amelyshack = tep_href_link_old(substr($_SERVER['REQUEST_URI'],strpos(substr($_SERVER['REQUEST_URI'],1),'/')+1), tep_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type);

    $amelyshack = 'http://'.str_replace('//','/',substr($amelyshack,7));

  if(count(explode('?',$amelyshack))>2)
  $amelyshack = str_replace('?language=','&language=',$amelyshack);
 
  $languages_string .= '<a href="' . $amelyshack . '">' . tep_image2(DIR_WS_LANGUAGES .  $value['directory'] . '/images/' . $value['image'], $value['name']) . '</a>';
   }
?>

Et une partie du code modifié de html_output.php

Code: Tout sélectionner
function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
 
    global $seo_urls;   
    if ( !is_object($seo_urls) ){
     if ( !class_exists('SEO_URL') ){
        include_once(DIR_WS_CLASSES . 'seo.class.php');
     }
     global $languages_id;
     $seo_urls = new SEO_URL($languages_id);
 }
 return $seo_urls->href_link($page, $parameters, $connection, $add_session_id);
  }


function tep_href_link_old($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
    global $request_type, $session_started, $SID;
 
    if (!tep_not_null($page)) {
      die('<p><br /><font color="#ff0000"><strong>Error!</strong></font><br /><br /><strong>Unable to determine the page link!</strong><br /></p>');
    }

    if ($connection == 'NONSSL') {
      $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
    } elseif ($connection == 'SSL') {
      if (ENABLE_SSL == true) {
        $link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
      } else {
        $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
      }
    } else {
      die('<p><br /><font color="#ff0000"><strong>Error!</strong></font><br /><br /><strong>Unable to determine connection method on a link!</strong><br />>Known methods: NONSSL SSL</p>');
    }

    if (tep_not_null($parameters)) {
      $link .= $page . '?' . tep_output_string($parameters);
      $separator = '&';
    } else {
      $link .= $page;
      $separator = '?';
    }

    while ( (substr($link, -1) == '&amp;') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

// Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
    if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
      if (tep_not_null($SID)) {
        $_sid = $SID;
      } elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
        if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
          $_sid = tep_session_name() . '=' . tep_session_id();
        }
      }
    }

    if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
      while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);

      $link = str_replace('?', '/', $link);
      $link = str_replace('&', '/', $link);
      $link = str_replace('=', '/', $link);

      $separator = '?';
    }

    if (isset($_sid)) {
      $link .= $separator . $_sid;
    }

    return $link;
  }

Si vous avez des remarques, questions...

++
Dernière édition par ZuckBin le Mer 03 Jan 2007, 23:22, édité 1 fois.
_____________________
osCSS 1.0.1 + Full Rewriting + contribs...
ZuckBin
Membre actif
 
Messages: 18
Inscription: Sam 10 Sep 2005, 12:47

Messagepar ZuckBin » Mer 03 Jan 2007, 23:27

yozz a écrit:Bonjour à tous.

J'ai reussi a installer SEO sans difficulté grace aux infos de ce post, donc, deja, merci :)

Il me reste un probleme avec les menus deroulants qui permettent de changer la devise ou le fabricant : apres avoir choisi dans la drop-box, on se retrouve a chaque fois sur la page d'accueil avec l'url :

Code: Tout sélectionner
index.php?shop=index.php

(shop est le sous-dossier ou se trouve oscss)

Si quelqu'un a des infos :)

Merci d'avance.

yozz.

Kikou,

Pour les menus déroulants, il faut modifier soit la fonction qui gere les a href, soit tu t 'en recreer une, soit tu modifies à la mano.

Code: Tout sélectionner
  <dl>
    <dt onMouseOver="javascript:montre();"><a href="<?php echo tep_href_link(FILENAME_PRODUCTS_NEW) ;?>" title="<?php echo BOX_HEADING_WHATS_NEW; ?>"><?php echo BOX_HEADING_WHATS_NEW; ?></a></dt>
 </dl>

ou comme ca par exemple:

Code: Tout sélectionner
  <dl>
    <dt onMouseOver="javascript:montre();"><a href="accueil.html" title="<?php echo HEADER_TITLE_TOP; ?>"><?php echo HEADER_TITLE_TOP; ?></a></dt>
  </dl>

++
_____________________
osCSS 1.0.1 + Full Rewriting + contribs...
ZuckBin
Membre actif
 
Messages: 18
Inscription: Sam 10 Sep 2005, 12:47

Messagepar stepibou » Jeu 04 Jan 2007, 01:13

Salut,

merci de ne pas utiliser de short tag

remplacer <? par <?php

Et bonne année a tous au passage!
--> osCSS inside <--
stepibou
Membre très actif
 
Messages: 274
Inscription: Dim 30 Oct 2005, 02:15
Localisation: Lyon

Suivante

Retourner vers Config

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

cron