Virtuemart et menujoomla

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Virtuemart et menujoomla

    Bonjour,
    j'ai parcouru forums et autres et testé pas mal de solution mais je n'en trouve pas qui fonctionnent !
    je suis sous joomla 1.5 + virtuemart 1.1.4

    J'utilises le module superfish pour avoir un menu sympa
    ça fonctionne trés bien pour les menus intégrés !
    Par contre j'aimerais pouvoir affecter cette présentation au menu virtuemart permettant ainsi d'afficher les catégories puis sous catégories au survol....

    je pourrais créer les menus un par un mais j'aimerais avoir quelques chose d'automatique,
    j'ai testé les mod VirtueMart Full Category List et VirtueMart XHTML Product Categories mais ils ne me permettent pas d'ajouter d'autres entrées de menu et je n'arrive pas a les faire tourner avec superfish.

    Y'a t'il un module ou un hack permettant d'affecter directement les menus complets et sous menu dans la gestion des menus de joomla 1.5 ??

    merci d'avance !
    Dernière édition par mat24 à 28/10/2009, 07h54

  • #2
    J'ai vu que pas mal de gens avaient le meme probleme
    en fouillant un peu dans les codes le module mod_virtuemart_product_categories semble interressant
    il fonctionne bien avec superfish, le code est propre
    seul probleme, il recupere l'id de la categorie en cours pour afficher les sous categories
    Donc il affiche seulement les sous categories quand l'element est selectionné
    il faudrait arriver a le modifier pour qu'il affiche toutes les categories et sous categories.

    je fouille
    si un bon developpeur en php pouvait aidé ça ferais un module sympa a utiliser !

    il faudrait réussir a modifier les requetes pour qu'ils ne se limite pas a category_id
    mais à l'ensemble des enregistrements de la base
    Code PHP:
    <?php
    if( !defined'_VALID_MOS' ) && !defined'_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
    /**
    * mambo-phphop Product Categories Module
    * NOTE: THIS MODULE REQUIRES AN INSTALLED VirtueMart Component!
    *
    * @version $Id: mod_virtuemart_product_categories.php
    * @package VirtueMart
    * @subpackage modules

    * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
    *
    * VirtueMart is Free Software.
    * VirtueMart comes with absolute no warranty.
    *
    * www.virtuemart.net
    */
    global $jscook_type$jscookMenu_style$jscookTree_style;

    // Load the virtuemart main parse code
    if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
        require_once( 
    dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
        
    $mosConfig_absolute_path realpathdirname(__FILE__).'/../..' );
    } else {
        require_once( 
    dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
    }
    if (!
    function_exists(getXhtmlList)){
      function 
    getXhtmlList($category_id=0$rankmin$rankmax$params$only_published=true$keyword "" ) {
        if (empty(
    $category_id)) {
          
    $category_id="0";
        }
        
    $db = &JFactory::getDBO();  
        
    $parent_id=$category_id;
        
    $menus_table=array();
        if (
    $rows getKidos($parent_id)) {
          
    $menus_table[]=$rows;
        }
        if (
    $category_id>0) {
          do {
            
    $child_id=$parent_id;
            
    $parent_id=getDady($parent_id);
            
    $rows getKidos($parent_id);
            for (
    $n=0$n<count($rows); $n++) {
                if (
    $rows[$n]['id']==$child_id){
                  
    $rows[$n]['active']=1;
                }
                if (
    $rows[$n]['id']==$category_id){
                  
    $rows[$n]['active']=2;
                }
              }
            
    $menus_table[] = $rows;
          } while (
    $parent_id>0);
        }   
        
    $menus_table array_reverse($menus_table);
        
    // output
        
    return getRowMenu ($menus_table,$rankmin$rankmaxtrue$params);
      }
      function 
    getRowMenu ($rows,$rankmin$rankmax$firstPass=false$params) {
        global 
    $sess ;
        
    $class_sfx $params->get'class_sfx'"" );
        
    $Itemidmod JRequest::getVar('Itemid''');
        if (!empty(
    $Itemidmod)) {
          
    $Itemidmod='&Itemid='.$Itemidmod;
        }  
        if (isset(
    $rows[$rankmin])) {
          
    $html='<ul'.($firstPass?' class="vmLinkMenu'.$class_sfx.'"':'').'>';
          
    $numLi=0;
          foreach (
    $rows[$rankmin] as $menu_element) {
              
    $texte shopMakeHtmlSafe ($menu_element['name']);
              
    $link JFilterOutput::ampReplace(JURI::base()."index.php?option=com_virtuemart&page=shop.browse&category_id=".$menu_element['id'].$Itemidmod);
              if (
    $menu_element['active']==1) {
                
    $class ' class="active item'.$numLi.'"';
              } elseif (
    $menu_element['active']==2) {
                
    $class ' class="active item'.$numLi.'" id="active_menu"';
              } else {
                
    $class ' class="item'.$numLi.'"';
              }
              
    $html.= '<li'.$class.'><a href="'.$link.'" title="'.$texte.'" ><span>'.$texte.'</span></a>';
              if (
    $menu_element['active']>&& $rankmin<$rankmax && isset($rows[$rankmin+1])) {
                
    $html.=getRowMenu ($rows,$rankmin+1$rankmax,false$params);
              }
              
    $html.= '</li>';
              
    $numLi++;
          }
          
    $html.="</ul>";
          return 
    $html;
        }
      }
      function 
    getDady($catpid$only_published=true$keyword "") {
        
    $db = &JFactory::getDBO();
        
    $query="SELECT category_parent_id FROM #__vm_category_xref WHERE category_child_id=".$catpid;
        
    $db->setQuery($query);  
        return 
    $db->loadResult();
      }
      function 
    getKidos ($catpid$only_published=true$keyword "") {
        
    $db = &JFactory::getDBO();
        
    $query "SELECT category_id AS id, category_parent_id AS parent, category_name AS name, 0 AS active ".
        
    "FROM #__vm_category_xref, #__vm_category  ".
        
    "WHERE category_parent_id = ".$catpid.
        
    " AND #__vm_category.category_id=#__vm_category_xref.category_child_id ";
        if( 
    $only_published ) {
                  
    $query .= " AND #__vm_category.category_publish='Y' ";
              }
        if( !empty( 
    $keyword )) {
          
    $query .= "AND ( category_name LIKE '%$keyword%' ";
          
    $query .= "OR category_description LIKE '%$keyword%' ";
          
    $query .= ") ";
          }
        
    $query .= "ORDER BY #__vm_category.list_order ASC, #__vm_category.category_name ASC";
          
    $db->setQuery($query);
          
    $db->query();
        if (
    $db->getNumRows()>0) {
          return 
    $db->loadAssocList();
        } else {
          return 
    false;
        }   
      }
    }
    $category_id vmGet$_REQUEST'category_id');
    global 
    $VM_LANG$sess;
    $rankmin $params->get'link_list_min_rank','0');
    $rankmax $params->get'link_list_max_rank''10' );

    echo 
    '
    <div class="vmlinklist'
    .$params->get('moduleclass_sfx','').'">'.
    getXhtmlList($category_id$rankmin$rankmax$params).
    '
    </div>'
    ;
    ?>

    Commentaire


    • #3
      au final j'ai utilisé le mod_vm_vertical_menu
      qui fonctionne bien !
      il a fallui rajouté des références dans le code mais j'obtien un menu fonctionnant avec superfish

      Commentaire

      Annonce

      Réduire
      1 sur 2 < >

      C'est [Réglé] et on n'en parle plus ?

      A quoi ça sert ?
      La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

      Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

      Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
      Comment ajouter la mention [Réglé] à votre discussion ?
      1 - Aller sur votre discussion et éditer votre premier message :


      2 - Cliquer sur la liste déroulante Préfixe.

      3 - Choisir le préfixe [Réglé].


      4 - Et voilà… votre discussion est désormais identifiée comme réglée.

      2 sur 2 < >

      Assistance au forum - Outil de publication d'infos de votre site

      Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

      Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

      Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

      UTILISER À VOS PROPRES RISQUES :
      L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

      Problèmes connus :
      FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

      Installation :

      1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

      Archive zip : https://github.com/AFUJ/FPA/zipball/master

      2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

      3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

      4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

      5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

      6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
      et remplacer www. votresite .com par votre nom de domaine


      Exemples:
      Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
      Télécharger le script fpa-fr.php dans: /public_html/
      Pour executer le script: http://www..com/fpa-fr.php

      Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
      Télécharger le script fpa-fr.php dans: /public_html/cms/
      Pour executer le script: http://www..com/cms/fpa-fr.php

      En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

      Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
      Voir plus
      Voir moins
      Travaille ...
      X