En visitant ce site, vous acceptez l'utilisation de cookies afin de vous proposer les meilleurs services possibles.

??? Surcharge Override Categories, Pourquoi, Comment ???

Plus d'informations
il y a 8 ans 9 mois #1 par Melix
Bonjour, Je viens de faire le grand plongeon : migration virtuemart 1.1.9 vers virtuemart 3.2.2 ... c'est tout neuf, il faut tout réapprendre.
J'ai un peu galéré avec les tables Mysql pour le gros oeuvre et j'en suis aux finitions : L'OVERRIDE (la surcharge)
Dans le Backend, Configuration : Templates : Templates et mise en page
Je n'arrive pas à faire apparaitre la surcharge que j'ai customisé "categories_custom.php" pour "Mise en page des categories".

1) J'ai enregistré "categories_custom.php" direct dans .../components/com_virtuemart/sublayouts/ = Rien
2) J'ai enregistré "categories_custom.php" dans .../templates/MONTEMPLATE/html/com_virtuemart/sublayouts/ = Nada
Note, ici j'ai un "product_custom.php" qui s'affiche bien dans "Mise en page des produits dans leur catégorie"
3) Un peu plus long celui qui est dans "views":
[echo ShopFunctionsF::renderVmSubLayout('categories_custom',array('categories'=> $this->category->children));] du fichier catgories.php
enregistré, celui-ci sous ce schéma : .../templates/MONTEMPLATE/html/com_virtuemart/category/ = Que-dalle

J'ai surement dû louper un paragraphe dans le 1), le 2), le 3) ou l'ensemble ...

Le "product_custom.php" fonctionne bien, mais pas le "categories_custom.php".

Comment faire ? et accessoirement pourquoi ???

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 8 ans 9 mois - il y a 8 ans 9 mois #2 par studio42
categories_custom.php n'est pas un nom valide pour le fichier principal.
Voici des noms de fichiers valides :
custom.php
surcharge.php
nom.php
...

A partir du moment ou vous utiliser nom_xxx.php, cela est considéré comme un sous fichier qui est chargé depuis nom.php avec la fonction Joomla de cette façon.
<?php
echo $this->loadTemplate('xxx');
?>
Si nom_xxx.php n'existe pas alors Joomla essaye de charger default_xxx.php

Vous trouverez d'autres informations sur cette page : st42.fr/astuce-joomla/29-surcharge-joomla-3

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!
Dernière édition: il y a 8 ans 9 mois par studio42.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 9 mois #3 par Melix
Merci pour les infos.
Grace a vous j'ai réussi, après le pourquoi expliqué ci dessus, voici le comment j'ai fait pour modifier l'existant:

création des dossiers :
.../templates/MONTEMPLATE/html/com_virtuemart/category
.../templates/MONTEMPLATE/html/com_virtuemart/sublayouts

copie de default.php (.../components/com_virtuemart/views/category/tmpl/) vers .../templates/MONTEMPLATE/html/com_virtuemart/category
renomme default.php -> customdefault.php

copie de categories.php (.../components/com_virtuemart/sublayouts/) vers .../templates/MONTEMPLATE/html/com_virtuemart/sublayouts
renomme categories.php -> customcategories.php

On trouve dans customdefault.php ligne 67 :
echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=>$this->category->children, 'categories_per_row'=>$this->categories_per_row));
que l'on change par cela :
echo ShopFunctionsF::renderVmSubLayout('customcategories',array('categories'=>$this->category->children, 'categories_per_row'=>$this->categories_per_row));

J'ai bon là ?

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 8 ans 9 mois #4 par studio42
Oui, cela a l'air bon à première vue.
Lorsque j'ai un doute, j'affiche une valeur temporaire pour confirmer que les bons fichiers sont utilisés.

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 8 mois #5 par Melix
Hors sujet :
Je viens d'avoir l'occasion de vous lire version Briton au sujet des quantités décimales insolubles créé selon un schéma "mentalement muré" ...
Je tiens particulièrement à vous remercier car mon site VM 1.1.9 tourne encore avec un router.php modifié dont vous êtes en grande partie à l'origine... c'était le bon temps.

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 8 ans 8 mois #6 par studio42
Le routeur de VM2/3 est aussi mon oeuvre à l'origine ;)

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 8 mois #7 par Melix
Oui, j'ai vu aussi quelques commentaires que vous avez signé dans d'autres fichiers.
A votre avis pour les décimales des quantités, il faudrait tout réécrire ?

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 8 ans 8 mois - il y a 8 ans 8 mois #8 par studio42
Pour les décimales, avec des surcharges dans le template et en utilisant comme unité la plus petite pour le stock, c'est faisable mais pas pratique.
Donc si vous vendez au kilo, mais que des articles peuvent avoir 0,125 kilo dans le panier la quantité sera 125 mais il est possible d'afficher en vérifiant l'unité renseigné dans le produit (gramme) le prix au KG.
Enfin bref c'est pas clair à expliqué et cela demande de modifier le code du template(pour le prix).

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!
Dernière édition: il y a 8 ans 8 mois par studio42.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 8 mois - il y a 8 ans 8 mois #9 par Melix
Oui, je comprends la situation, virtuemart gèrerait donc les produits en Grammes, prix et (eventuellement) stock en grammes (dans ses tables Mysql).
Le template pourrait ainsi afficher le prix au kilo, et les quantités saisies au kilo : 1.7 pour 1kg700gr en faisant un tour de passepasse via le template lui faisant croire que 1.7 == 1700 .... Après va falloir broder ...
Décontrasté...
J'ai testé le changement (int) par (float) :

forum.virtuemart.net/index.php?topic=135821.0

cela semble bien fonctionner sous Firefox.
Par contre, Catastrophe avec Chrome >>> edit >>> ça marche aussi sous Chrome en rafraichissant le cache avant ...
J'ai pas testé sous IE (trop galère à installer sous Linux).
Il semblerait que le changement (int) par (float) ne soit pas la bonne solution. <<< edit /// peut être que si finalement ///>>>
Dernière édition: il y a 8 ans 8 mois par Melix.

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 8 ans 8 mois #10 par studio42
Il y a trop de changement à faire et trop de bug possible pour utiliser les décimales corectement.
En dehors du template, il y a plusieurs table mysql + les vérifications des quantités en javascript et plugin ...

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!

Connexion ou Créer un compte pour participer à la conversation.