web-dev-qa-db-fra.com

Virtuemart -De Racine parcourir les catégories afficher les catégories de produits

Virtuemart 3.0.4 Joomla 3.3.6.

J'essaie de comprendre quel est le moyen de configurer les éléments suivants dans virtuemart.

J'ai le vue du magasin principal avec un élément de menu de type: Disposition de la catégorie de VM. Il est configuré pour afficher toutes les catégories avec la catégorie de niveau supérieur la catégorie racine.

La page affiche toutes les catégories. Maintenant, en cliquant sur une catégorie, je veux l'ouvrir Voir les produits de la catégorie.

Mais ce n'est pas le cas.


Indice 1:
Le problème est que les deux vues ci-dessus sont contrôlées par le même élément de menu. Et cet élément de menu a une option appelée "Mise en page", avec les options: Catégories, ou par défaut.

Catégories affichera les catégories enfants d'une catégorie parente, tandis que Par défaut affichera les produits d'une catégorie.

Sur mon élément de menu, cette catégorie est définie pour afficher toutes les catégories.


Indice 2:
Toutes les catégories pour lesquelles un élément de menu ne leur est pas dédié s’ouvriront sous ce même identifiant. Toutefois, la vue semble hériter des paramètres de mise en page de cet élément de menu (défini pour afficher les catégories) et n'affiche pas la vue de navigation des produits d'une catégorie sélectionnée.



Je voudrais éviter de créer des éléments de menu pour chaque catégorie, cela aiderait le propriétaire du magasin à modifier facilement les catégories et celles-ci seront automatiquement mises à jour dans le système frontal, sans toucher aux éléments de menu. .

Je pense créer des contournements pour régler ce problème, mais je voudrais d’abord faire en sorte de ne rien manquer d’évident.

Avez-vous déjà rencontré cette situation avec VM? Ou est-il possible qu'il s'agisse d'un paramètre "stupide" quelque part?

1
FFrewin

En fait, il est assez simple de suivre l’idée de substitution, et je ne comprends pas pourquoi les développeurs VM) ont laissé cela tel qu’il est actuellement.

Dans le fichier de modèle Catégories de la vue Présentation de la catégorie:

(components/com_virtuemart/views/category/tmpl/categories.php)  

tout ce qui est nécessaire pour créer une continuité dans le flux de travail de navigation consiste à ajouter une ligne de code comme celle-ci:

else { include ('template') } 

Actuellement, le modèle de catégories vérifie si une catégorie a d'autres catégories enfants et si oui, elle les chargera. Mais il n'y a rien pour le cas que la catégorie n'a pas de catégories d'enfants.

Ainsi, dans les catégories remplaçant le fichier de modèle, nous pouvons poursuivre l'instruction if avec un autre élément, et inclure le modèle par défaut, pour afficher les produits de la catégorie, si la catégorie n'a plus de catégories enfants.

Le modèle deviendra comme ceci:

if ($this->category->haschildren) {

    // Calculating Categories Per Row
    //$categories_per_row = VmConfig::get ( 'categories_per_row', 3 );

    // Start the Output
    echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=> $this->category->children));

} 

 // Add these lines to include the default template.
else {
    include('default.php');
}

Assurez-vous de copier les deux fichiers dans le dossier de substitution de votre modèle.

Enfin, ajustez les paramètres de l’élément de menu pour afficher les produits avec la présentation souhaitée.

2
FFrewin