Afficher en permanence les sous-cat d'une cat principale

10 messages dans ce sujet

Posté(e) · Signaler ce message

Bonsoir,

dans la version premium 5.5, lorsqu'on clique sur une catégorie, on affiche les photos et liens de toutes ses sous-catégories.

Par exemple, la catégorie musique affiche le piano et le violon.

Mais si je clique sur piano, la sous-catégorie violon ne s'affiche plus.

Le fichier du répertoire modèles sous_categorie.php permet cet affichage.

Faut-il modifier le fichier categorie.php, et notamment sa ligne :

if (!empty($rowCat[0])) {

echo '<p style="text-align:center"><img src="'. $wwwroot.'/upload/thumbs/'. thumbs($rowCat[0], $small_width, $small_height, $method = "fit").'" alt="'. html_entity_decode($rowCat[2]).'" title="'. html_entity_decode($rowCat[2]).'" /></p>

';

}

ou intégrer le tableau du fichier sous_categorie.php dans le fichier categorie.php ?

Si vous avez idée... je suis preneuse ... car je tourne en rond depuis un moment

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Il me semble qu'il faut modifier seulement la page achat/index.php ?

la page modeles/standard/categorie.php ne renvoie qu'une ligne, celle de la sous-catégorie concernée, d'où l'affichage de la seule image de la sous-catégorie

donc il faut modifier la page achat/index.php pour renvoyer toutes les lignes des parent_id pour afficher toutes les images des sous-catégories?

est-ce correct ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Après plusieurs essais, la modification devrait intervenir au niveau de :

function recupere_sous_categorie($catid = 0)

{

$qid = mysql_query("SELECT id, nom_" . $_SESSION['langue'] . ", description_" . $_SESSION['langue'] . ", parent_id, image

FROM peel_categories

WHERE parent_id = '$catid' AND id > '0' AND etat = '1'

ORDER BY position")

puisque si l'on change la valeur de parent_id = '$catid' en parent_id = '1' par exemple, il est possible d'afficher toutes les sous-catégories du même parent

mais je piétine...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pour faire fonctionner l'affichage "manuellement", une solution bricolage est :

if (($catid ==1)|($catid ==2)|($catid ==3))

{ $qid = mysql_query("SELECT id, nom_" . $_SESSION['langue'] . ", description_" . $_SESSION['langue'] . ", parent_id, image FROM peel_categories WHERE parent_id = '1'

etc... pour catid == 4, etc

serait il possible d'automatiser en indiquant que pour tous les $catid qui ont le même parent_id,

on affiche ledit parent_id ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Serait-il envisageable d'obtenir une réponse ?

quelle soit négative ou positive ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Est-ce la question qui n'est pas claire ?

ou la réponse pas simple ?

ou ça n'intéresse personne ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonsoir Serial Mother,

Navré pour ce sujet qui n'a pas eu de réponse.

Je vous propose que je m'y mette d'ici ce mercredi.

Relancez-moi en cas d'oubli !

Cordialement,

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonsoir Serial Mother,

Navré pour ce sujet qui n'a pas eu de réponse.

Je vous propose que je m'y mette d'ici ce mercredi.

Relancez-moi en cas d'oubli !

Cordialement,

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonsoir Serial Mother,

Navré pour ce sujet qui n'a pas eu de réponse.

Je vous propose que je m'y mette d'ici ce mercredi.

Relancez-moi en cas d'oubli !

Cordialement,

Bonjour Jean-Hervé.... c'est bon pour ce mercredi là ?

cordialement

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Serial Mother,

Voici finalement une réponse à votre question, qui je l'espère vous permettre de résoudre votre problématique.

Le fichier /achat/index.php permet l'affichage de la page relative à une catégorie PEEL (que la réécriture d'URL soit activée ou non).

Ce fichier intègre une fonction recupere_sous_categorie(), et en réalise l'appel afin de récupérer toutes les sous-catégories associées à la catégorie "courante".

L'appel au fichier sous_categorie.php exploite les infos renvoyées par recupere_sous_categorie() et les met en page (image de chaque sous catégorie + lien cliquable sous forme de tableau).

Si on regarde le code de recupere_sous_categorie(), on a :

function recupere_sous_categorie($catid = 0)

{

$qid = query('SELECT id, nom_' . $_SESSION['langue'] . ', description_' . $_SESSION['langue'] . ', parent_id, image

FROM peel_categories

WHERE parent_id="' . intval($catid) . '" AND id>"0" AND etat="1"

ORDER BY position') ;

return $qid;

}

---> En fait, on ne récupère et l'on affiche bien que les sous-catégories de la catégorie courante : WHERE parent_id="' . intval($catid) . '"

Donc si on veut, quelle que soit la catégorie courante, afficher toutes les sous-catégories de la catégorie mère de la catégorie courante, définir la fonction suivante pour connaître la plus haute catégorie mère d'une catégorie donnée :

function getParentCategorieId($catid = 0){

$qid = mysql_query("SELECT parent_id, id

FROM peel_categories

WHERE id = '" . intval($catid) . "' AND etat = '1' LIMIT 1");

if($r = mysql_fetch_assoc($qid)){

if ($r['parent_id'] != 0) {

return getParentCategorieId($r['parent_id']);

} else{

return $r['id'];

}

}else{

return '0';

}

}

puis modifier recupere_sous_categorie et écrire :

function recupere_sous_categorie($catid = 0)

{

$qid = query('SELECT id, nom_' . $_SESSION['langue'] . ', description_' . $_SESSION['langue'] . ', parent_id, image

FROM peel_categories

WHERE parent_id="' . getParentCategorieId(intval($catid)) . '" AND id>"0" AND etat="1"

ORDER BY position') ;

return $qid;

}

Mon code n'est pas testé, il faut donc le faire pour moi ;)

Enfin, il ne me semble pas optimal (car getParentCategorieId est une fonction récursive qui fait une requête SQL), il y a donc certainement moyen de l'améliorer :(

Cordialement,

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping