OsCommerce et paramètres url

WRInaute impliqué
Ce n'est pas une réponse, mais pourais-tu expliquer ce genre de notation ???

Pour moi c'est du chinois ...

C'est quoi cette notation : un nom de fichier index.php puis des répertoires cPath/

C'est le monde à l'envers ...

Enfin c'est la première fois que je vois ça :oops:
 
WRInaute accro
je sais pas au juste mais pour OSCOMMERCE, à la différence de toutes les solutions commerece en ligne que j'ai déjà vérifié, GG indexe les pages.
 
Nouveau WRInaute
briceleblanc a dit:
Ce n'est pas une réponse, mais pourais-tu expliquer ce genre de notation ???

Pour moi c'est du chinois ...

C'est quoi cette notation : un nom de fichier index.php puis des répertoires cPath/

C'est le monde à l'envers ...

Enfin c'est la première fois que je vois ça :oops:

Le monde à l'envers, mais Google ne le sait peut-être pas ! C'est une fonction osCommerce qui reprend les paramètres dans les liens, les transforme en répertoire et dans les pages la fonction inverse rétablit la chose.
A la différence de l'url rewriting, ça permet d'avoir les paramètres dans un ordre indifférent, et autant qu'on veut sans avoir à réécrire ses rewriting rules.
L'idée est donc à priori très intéressante, d'autant plus qu'elle fonctionne indépendemment du module rewriting d'Apache pas forcément présent sur tous les serveurs.
OsCommerce reprend d'ailleurs ce code dans la MS3 à venir (voir les CVS)

tous les liens dans les pages sont appelés ainsi:
Code:
<a href="<?php echo tep_href_link(FILENAME_LA_PAGE); ?>">lien</a>
la fonction de mise en forme du lien:
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('</td></tr></table></td></tr></table><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('</td></tr></table></td></tr></table><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)) {
      // $parameters_coded = str_replace('&', '&', $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 . tep_output_string($_sid);
    }

    $link = str_replace('&', '&', $link);
    return $link;
  }
la partie intéressante est après :
Code:
if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
enfin la fonction inverse en début de chaque page (dans un include général):
Code:
  if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {
		if (isset($_SERVER['ORIG_PATH_INFO']) && (strlen($_SERVER['ORIG_PATH_INFO']) > 1)) {
      $GET_array = array();
      $PHP_SELF = str_replace($_SERVER['ORIG_PATH_INFO'], '', $PHP_SELF);
      $parameters = explode('/', substr($_SERVER['ORIG_PATH_INFO'], 1));
      for ($i=0, $n=sizeof($parameters); $i<$n; $i++) {
        if (strpos($parameters[$i], '[]')) {
          $GET_array[substr($parameters[$i], 0, -2)][] = $parameters[$i+1];
        } else {
          $_GET[$parameters[$i]] = $parameters[$i+1];
        }
        $i++;
      }

      if (sizeof($GET_array) > 0) {
        while (list($key, $value) = each($GET_array)) {
          $_GET[$key] = $value;
        }
      }
    }
  }
ça marche très bien (selon le serveur il faut remplacer 'ORIG_PATH_INFO' par 'PATH_INFO'.
 
Nouveau WRInaute
ybet a dit:
je sais pas au juste mais pour OSCOMMERCE, à la différence de toutes les solutions commerece en ligne que j'ai déjà vérifié, GG indexe les pages.
je ne comprends pas le sens de ta phrase 'à la différence de ' ? veux-tu dire que toutes les solutioins de web commerce que tu connais avec catalogue en paramètre sont correctement indexées par GG ou au contraire que seules les pages osCommerce sont correctemnet indexées, même avec les produits passés en paramètre?
 
WRInaute impliqué
Merci pour ce cours de php :lol: (et pour le tuyau :wink: )

Très intéressant :!:

Je me mets ça dans mes favoris et quand j'aurai le temps j'essaie de le faire fonctionner sur mon site :lol:

A+
 
WRInaute impliqué
Tes menus dynamiques ne fonctionnent pas bien, mais ça c'est embêtant pour les visiteurs, pas pour google ... vu qu'il ne lit pas le javascript ...

Tu vois où je veux en venir ?

Je me demande en effet si les liens incorporés dans les menus dynamiques sont lus ...

Peut-être des membres plus confirmés de WRI pourraient apporter une confirmation de ce fait ( ou un démenti )

Donc je résume : si toutes tes pages ne sont pas indexées, n'est-ce pas à cause du menu dynamique ( mais là, peut-être que je délire ... ) ?

A+
 
Nouveau WRInaute
briceleblanc a dit:
Tes menus dynamiques ne fonctionnent pas bien, mais ça c'est embêtant pour les visiteurs, pas pour google ... vu qu'il ne lit pas le javascript ...

Tu vois où je veux en venir ?

Je me demande en effet si les liens incorporés dans les menus dynamiques sont lus ...

Peut-être des membres plus confirmés de WRI pourraient apporter une confirmation de ce fait ( ou un démenti )

Donc je résume : si toutes tes pages ne sont pas indexées, n'est-ce pas à cause du menu dynamique ( mais là, peut-être que je délire ... ) ?

A+

de quels menus dynamiques parles-tu (sur quel site) et quel est ton os, ton navigateur, ta version ?
merci de me contacter en privé si tu as le temps.
 
Nouveau WRInaute
briceleblanc a dit:
Donc je résume : si toutes tes pages ne sont pas indexées, n'est-ce pas à cause du menu dynamique ( mais là, peut-être que je délire ... ) ?

je ne sais pas!
 
WRInaute impliqué
en effet ! :lol: :lol: :lol:

j'ai déjà répondu en privé à ta question comme tu me l'as demandé

A+
 
WRInaute accro
dca a dit:
ybet a dit:
je sais pas au juste mais pour OSCOMMERCE, à la différence de toutes les solutions commerece en ligne que j'ai déjà vérifié, GG indexe les pages.
je ne comprends pas le sens de ta phrase 'à la différence de ' ? veux-tu dire que toutes les solutioins de web commerce que tu connais avec catalogue en paramètre sont correctement indexées par GG ou au contraire que seules les pages osCommerce sont correctemnet indexées, même avec les produits passés en paramètre?

Je cherche justement une solution ecommerce. Chaque fois que je tombe sur un exemple disons public (lis pas acheté à prix forts), je fais bêtement un cache de GG et rarement la page apparaît dans le cache. En clair, GG indexe pas la page.
 
Nouveau WRInaute
ybet a dit:
Je cherche justement une solution ecommerce. Chaque fois que je tombe sur un exemple disons public (lis pas acheté à prix forts), je fais bêtement un cache de GG et rarement la page apparaît dans le cache. En clair, GG indexe pas la page.

Pour ce qui est d'une solution ecommerce, sans nul doute, vas voir osCommerce, mais attends la sortie de la MS3 (compatible php5 à priori, par rapport à la ms2, l'implémentation des classes d'objet est bcp plus étendue).
 
WRInaute discret
dca a dit:
ybet a dit:
Je cherche justement une solution ecommerce. Chaque fois que je tombe sur un exemple disons public (lis pas acheté à prix forts), je fais bêtement un cache de GG et rarement la page apparaît dans le cache. En clair, GG indexe pas la page.

Pour ce qui est d'une solution ecommerce, sans nul doute, vas voir osCommerce, mais attends la sortie de la MS3 (compatible php5 à priori, par rapport à la ms2, l'implémentation des classes d'objet est bcp plus étendue).

ce serait bien qu'elle arrive cette MS3, depuis le temps que les gens l'attendent :(
 
Discussions similaires
Haut