appliquer un attribut title="" au menu catégorie ?

Messagepar yhugo » Mar 04 Avr 2006, 22:59

Bonjour tout le monde !

J'aimerais mettre un title au liens du menu des catégories ...

C'est dans ce fichier je crois ...

catalog/includes/boxes/categories_dropdown.php

Et voici la ligne que je dois changer ... en ajoutant l'attribut tilte à la balise <a> :
Code: Tout sélectionner
$categories_string .= $prefix . '<li><a title="" href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $new_path) . '">'. addslashes($tree[$entry]['name']) . $pinc .'</a>';

Mais qu'est-ce que je dois mettre à l'intérieur pour que les noms des catégories y apparaissent ?


Merci !


yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar stepibou » Mer 05 Avr 2006, 00:57

hello,

Code: Tout sélectionner
$categories_string .= $prefix . '<li><a title="'. addslashes($tree[$entry]['name']) .'" href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $new_path) . '">'. addslashes($tree[$entry]['name']) . $pinc .'</a>';

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

Messagepar yhugo » Mer 05 Avr 2006, 15:40

A big thanx brother ...

Je vais de ce pas l'essayer !


Merci encore



yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar yhugo » Mer 05 Avr 2006, 16:09

Oups ... ça ne marche pas ...

j'applique le changement ... je passe mon curseur au-dessus de l'hyperlien, rien ... je suis donc allé voir dans le code source html et php n'a pas ajouté l'attribut title ?!

VOilà mon fichier categories_dropdown.php avec l'ajout de l'attribut title :

Code: Tout sélectionner
<?php
/*
  $Id: categories_dropdown.php,v 1.1.1.1 2005/05/03 15:20:34 manmachine Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

   function tep_build_tree($entry, $last_member = false, $level = 0, $path = '') {
    global $tree, $categories_string;

 $prefix = '';
    for ($i = 0; $i <= $level; $i++) {
      $prefix .= ' ';
    }

    if (SHOW_COUNTS == 'true') {
      $products_in_category = tep_count_products_in_category($entry);
      if ($products_in_category > 0) {
        $pinc = '&nbsp;(' . $products_in_category . ')';
      } else {
      $pinc = '';
   }
    }

    if ($path == '') {
      $new_path = $entry;
    } else {
   $new_path = $path . '_' . $entry;
    }

    $categories_string .= $prefix . '<li><a title="'. addslashes($tree[$entry]['name']) .'" href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $new_path) . '">'. addslashes($tree[$entry]['name']) . $pinc .'</a>';

  $array_size = sizeof($tree[$entry]['children']);
    if ($array_size > 0) {
    $categories_string .= "n" . '<ul class="1">' . "n";
   $children = $tree[$entry]['children'];
    reset($children);
   end($children);
   $end_key = key($children);
    reset($children);
   while (list($key, $new_entry) = each($children)) {
      $new_last_member = ($key == $end_key) ? true : false;
        tep_build_tree($new_entry, $new_last_member, $level + 1, $new_path);
   }
      $categories_string .= $prefix;
   $categories_string .= ($last_member == true) ? '</li>'. "n" . '</ul>' : '</li>';
    $categories_string .= "n";
    } else {
    $categories_string .= ($last_member == true) ? '</li>'. "n" . '</ul>' : '</li>';
    $categories_string .= "n";
    }
  }


  $tree = array();
  $categories_string = '';
  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id, c.sort_order from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id='" . $languages_id ."' ");
  $last_root = 0;
  $first_root = 0;
  while ($categories = tep_db_fetch_array($categories_query)) {
    $current_id = $categories['categories_id'];
  $parent_id = $categories['parent_id'];

  if (!isset($tree[$current_id])) {
   $tree[$current_id] = array();
   $tree[$current_id]['children'] = array();
   $tree[$current_id]['next'] = 0;
 }

 $tree[$current_id]['name'] = $categories['categories_name'];
    $tree[$current_id]['parent'] = $parent_id;
  $tree[$current_id]['order'] = $categories['sort_order'];

  if ($parent_id != 0) {
      if (!isset($tree[$parent_id])) {
      $tree[$parent_id] = array();
      $tree[$parent_id]['children'] = array();
    }

   $tree[$parent_id]['children'][] = $current_id;
  } else {
    if ($last_root == 0) {
      $last_root = $current_id;
   $first_root = $current_id;
    } else {
      $tree[$last_root]['next'] = $current_id;
    $last_root = $current_id;
   }
 }
  }

  if ($first_root != 0) {
    $categories_string = '' . "n";
    $root = $first_root;

    do {
   $last_member = ($tree[$root]['next'] == 0) ? true : false;
      tep_build_tree($root, $last_member);
    $root = $tree[$root]['next'];
 } while ($root != 0);
 
  $categories_string .= '';
  }
?>
<div class="boxes">
   <h4 class="<?php echo $language ;?>"><?php echo BOX_HEADING_CATEGORIES ;?></h4>

 
<ul id="categoriesDropDown">
   <?php echo $categories_string ; ?>
   </ul>


</div>
<!-- categories_eof //-->

Et voici l'adresse du site : http://www.royalairweb.net/yhugo//catalog/


Merci



yhugo
Dernière édition par yhugo le Mer 05 Avr 2006, 16:30, édité 1 fois.
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar j4k » Mer 05 Avr 2006, 16:57

je pense tout simplement à un problème de cache qu'il faut vider.
c'est dans le dossier oscss_data
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar yhugo » Mer 05 Avr 2006, 17:33

j4k a écrit:je pense tout simplement à un problème de cache qu'il faut vider.
c'est dans le dossier oscss_data

Malheureusement ça ne fonctionne pas non plus :( ...

J'ai même supprimer les fichiers sur le serveur, puis je les ai rechargés à nouveau, rien non plus ... Vidé la cache avec firefox et directement sur le serveur, toujours rien ?!


:/ Anguille sous roche ...



Merci



yhugo
Dernière édition par yhugo le Mer 05 Avr 2006, 17:34, édité 1 fois.
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar j4k » Mer 05 Avr 2006, 18:10

oui il faut supprimer les fichiers qui se trouve dans le dossier oscss_data. notament le fichier categorie_tree
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar yhugo » Mer 05 Avr 2006, 18:14

j4k a écrit:oui il faut supprimer les fichiers qui se trouve dans le dossier oscss_data. notament le fichier categorie_tree

C'est ce que je te confirmais dans mon message précédant ... j'ai tout effacé ...

Mais ça ne marche pas non plus :(



merci



yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar j4k » Mer 05 Avr 2006, 18:22

et tu es bien sur que c'est la categorie_dropdown que tu utilise? essai de mettre un caractère spécial pour voir si il s'affiche bien (par exemple un petit &nbsp; avant les parenthèses de quantités)

perso, j'ai installé le morceau de code sur mon menu (mais c'est pas le drop_down) et après vidage du cache oscss tout fonctionne bien !
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar stepibou » Mer 05 Avr 2006, 18:34

D'un autre coté un title sur un lien texte, ... Je sais pas si ca se fait bien..
j'ai jamais trop vu ca, sur des images oui, mais dui text..

Il faudrai peut etre un style avec display: block;
ou autre.
:/
--> osCSS inside <--
stepibou
Membre très actif
 
Messages: 274
Inscription: Dim 30 Oct 2005, 02:15
Localisation: Lyon

Messagepar j4k » Mer 05 Avr 2006, 18:43

oui je suis bien d'accord pour le title sur lien texte .. ou alors pour afficher autre chose que la catégorie en cours
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar yhugo » Mer 05 Avr 2006, 19:19

Mais ce n'est pas toujours le dropDown ?

Dans categories.php où insères-tu la ligne suivante, je ne la vois pas :

Code: Tout sélectionner
$categories_string .= $prefix . '<li><a title="'. addslashes($tree[$entry]['name']) .'" href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $new_path) . '">'. addslashes($tree[$entry]['name']) . $pinc .'</a>';

Je ne la vois pas ? Y'a pas de balise <a>


J'étais sûr qu'on utilisait toujours le dropDown ... quand on utilise categories.php c'est le menu classique alors ?


Oh, y'a vraiment quelquechose que j'ai pas compris :/ (??!) Car j'utilise bien le menu classique.


Merci de votre patience les gars


yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar j4k » Mer 05 Avr 2006, 19:49

il faut que tu regarde dans ton template pour savoir quel est le menu que tu utilise. en fonction tu applique les modifs dans celui la ;)

au bsoin tu change et tu prend le categorie_dropdown

et si ça peut t'aider, voila mon categorie_under.php je l'ai crée en modifiant un categorie.php précédent.
il créé 2 id différent suivant qi c'est une categorie parente ou fille et j'ai supprimé le cache oscss et j'y ai intégré le title

Code: Tout sélectionner
<?php
/*
  $Id: categories_under.php,v 1.2 2005/05/13 19:07:34 j4k Exp $
+-----------------------------------------------------------------------+
|                  osCSS Open Source E-commerce                         |
+-----------------------------------------------------------------------+
| Copyright (c) 2005 The osCSS developers                               |
|                                                                       |
| http://www.counteractdesign.com                                       |
|                                                                       |
| Portions Copyright (c) 2003 osCommerce                                |
+-----------------------------------------------------------------------+
| This source file is subject to version 2.0 of the GPL license,        |
| available at the following url:                                       |
| http://www.counteractdesign.com/license/2_0.txt.                      |
+-----------------------------------------------------------------------+
*/

  function tep_show_category($counter) {
    global $tree, $categories_string, $cPath_array;
 
  $categories_string .= '<li>';
 
  if (isset($cPath_array) && in_array($counter, $cPath_array)) { $class_active='active'; }
 
  if ($tree[$counter]['level'] > 0 ) {
      $categories_string .= '<a title="'. addslashes($tree[$counter]['name']) .'" class="under '.$class_active.'" href="';   
    } else {
    $categories_string .= '<a title="'. addslashes($tree[$counter]['name']) .'" class="maincat '.$class_active.'" href="';
 }
   
 
  if ($tree[$counter]['parent'] == 0) {
      $cPath_new = 'cPath=' . $counter;
    } else {
      $cPath_new = 'cPath=' . $tree[$counter]['path'];
    }

    $categories_string .= tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">';

 
  if (isset($cPath_array) && in_array($counter, $cPath_array)) {
      $categories_string .= '<strong>';
    }

// display category name
    $categories_string .= $tree[$counter]['name'];

    if (isset($cPath_array) && in_array($counter, $cPath_array)) {
      $categories_string .= '</strong>';
    }

    if (tep_has_category_subcategories($counter)) {
      $categories_string .= '-&gt;';
    }

    if (SHOW_COUNTS == 'true') {
      $products_in_category = tep_count_products_in_category($counter);
      if ($products_in_category > 0) {
        $categories_string .= '&nbsp;(' . $products_in_category . ')';
      }
    }
   
 
 
  $categories_string .= '</a>';
 
  $categories_string .= '</li>'."n";
   
  if ($tree[$counter]['next_id'] != false) {
      tep_show_category($tree[$counter]['next_id']);
    }
 
  }
?>
<div class="boxes">   
   
   <h4 class="<?php echo $language ;?>"><?php echo BOX_HEADING_CATEGORIES ;?></h4>

<?php
  $categories_string = '';
  $tree = array();

  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name");
  while ($categories = tep_db_fetch_array($categories_query))  {
    $tree[$categories['categories_id']] = array('name' => $categories['categories_name'],
                                                'parent' => $categories['parent_id'],
                                                'level' => 0,
                                                'path' => $categories['categories_id'],
                                                'next_id' => false);

    if (isset($parent_id)) {
      $tree[$parent_id]['next_id'] = $categories['categories_id'];
    }

    $parent_id = $categories['categories_id'];

    if (!isset($first_element)) {
      $first_element = $categories['categories_id'];
    }
  }

  //------------------------
  if (tep_not_null($cPath)) {
    $new_path = '';
    reset($cPath_array);
    while (list($key, $value) = each($cPath_array)) {
      unset($parent_id);
      unset($first_id);
      $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$value . "' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name");
      if (tep_db_num_rows($categories_query)) {
        $new_path .= $value;
        while ($row = tep_db_fetch_array($categories_query)) {
          $tree[$row['categories_id']] = array('name' => $row['categories_name'],
                                               'parent' => $row['parent_id'],
                                               'level' => $key+1,
                                               'path' => $new_path . '_' . $row['categories_id'],
                                               'next_id' => false);

          if (isset($parent_id)) {
            $tree[$parent_id]['next_id'] = $row['categories_id'];
          }

          $parent_id = $row['categories_id'];

          if (!isset($first_id)) {
            $first_id = $row['categories_id'];
          }

          $last_id = $row['categories_id'];
        }
        $tree[$last_id]['next_id'] = $tree[$value]['next_id'];
        $tree[$value]['next_id'] = $first_id;
        $new_path .= '_';
      } else {
        break;
      }
    }
  }
  tep_show_category($first_element);
?>
 
 <ul>
     <?php echo $categories_string ; ?>
 </ul>
</div>
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar yhugo » Mer 05 Avr 2006, 21:11

Merci J4K et Stepibou,

Ouf ... c'est un peu frustrant de pas comprendre tout ... le Php c'est vraiment génial, mais faut savoir s'y prendre. J'ai vraiment des croutes à manger pour arriver à saisir toutes les subtilités ... :)

Est-ce que qu'il y a un document qui explique la structure et la logique d'osCSS, un arborescence expliquatif ou un truc du genre ... J'ai lu la documentation d'osCommerce, mais il n'y a rien qui nous dresse un portrait technique là-dedans, c'est plus des conseils ...

Je comprends les principes généraux, mais peut-être que c'est justement mes carences en Php qui me bloquent ?


Des conseils messieurs ?


Merci !



yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar yhugo » Ven 10 Nov 2006, 19:49

Bon j'ai enfin troouvé ! :P Ouf !

C'est dans la class category_tree.php ligne 98 ...

Code: Tout sélectionner
$result .= str_repeat($this->spacer_string, $this->spacer_multiplier * $level) . '<a title="'. $category['name'] .'" href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $category_link ) . '">';

J'aime bien mettre des attributs title partout ... Et il parraît que c'est bon pour le référencement.

Voilà ... Résolu donc !

À bientôt ...
Dernière édition par yhugo le Mer 29 Nov 2006, 02:12, édité 1 fois.
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar cynic- » Mar 20 Jan 2009, 17:57

Alors là je fais un gros up suite à la suite de cet article :
http://blog.axe-net.fr/attribut-title-l ... rencement/

Visiblement l'impact sur le référencement serait inexistant ! J'en suis le premier surpris. Après, cela apporte sans doute quelque chose au niveau accessibilité, ce qui est au moins aussi important
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Messagepar Louis_Cypher » Mer 25 Nov 2009, 14:48

Ouh là, un très vieux topic !
Bon, je le complète (parce que la balise title dans les liens est indispensable pour les boutiques de petite et moyenne envergure, mais totalement inutile pour les très grosses boutiques (+1000 références))

Alors, je complète en ajoutant le code pour la class category_tree

on va s'intéresser à ce qui se passe après la ligne 98
$result .= str_repeat($this->spacer_string, $this->spacer_multiplier * $level) . '<a href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $category_link ) . '">';

On a ensuite toutes les manières d'afficher le nom de la categorie.
Pou commencer, on enlève >' à la fin de la ligne ci-dessus (on ne ferme plus la balise a)

Chacun des result.= qu isuit va se compléter de la manière suivante :
$result .= ' title="'.$category['name'].'">'.
on ne touche pas à ce qui suit
Et voilà
oscss 1.2 + qpbpp + qtpro + gestion pointue des stocks + appros + export clients + export commandes sur ebp + liaison avec apisoft + module personnalisation + calcul des prix à la surface + ultra pics + import via csv + resize auto des images via imagemagik + plein d'autres trucs + intégration dans joomla
Louis_Cypher
Site Admin
 
Messages: 82
Inscription: Ven 22 Sep 2006, 18:08

Messagepar oscim » Jeu 26 Nov 2009, 13:44

Salut Louis_Cypher,

Pour faire la suite , pourquoi ne pas ajouter aussi la référence à la langue, ca devient assez courant le lang="" dans les liens des moteur multi-langue ?
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar Louis_Cypher » Jeu 26 Nov 2009, 18:12

Bah, je donnais la méthode générale !! Une fois le principe expliqué, on rajoute ce qu'on veut après la balise title.
oscss 1.2 + qpbpp + qtpro + gestion pointue des stocks + appros + export clients + export commandes sur ebp + liaison avec apisoft + module personnalisation + calcul des prix à la surface + ultra pics + import via csv + resize auto des images via imagemagik + plein d'autres trucs + intégration dans joomla
Louis_Cypher
Site Admin
 
Messages: 82
Inscription: Ven 22 Sep 2006, 18:08

Messagepar oscim » Jeu 26 Nov 2009, 18:40

Toutafaittoutafait! :)

En fait la reponse etait plus la mise en avant de la pertinence ou non d'ajouter la référence à la langue
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33


Retourner vers Design

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron