THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 plusieurs pages rubriques ?

(17-06-2009 13:00:54)


Bonjour,

comment faire pour que dans le menu vertical on est un affichage différent selon les rubriques, ou au moins, un affichage différent pour la rubrique 1 et un affichage normal pour les autres, à l'instar de ce que fait Spip, par exemple à savoir : rubrique-1.html etc …

==> est-ce possible avec thelia de créer pour ce cas là une page rubrique1 qui aurait une mise en page et des codes différents de la page rubrique normale ?

Merci pour vos aides

Offline


je me réponds tt seul smile j'avais loupé une conversation !
je viens de trouver une solution d'alfouine que j'ai essayé et qui va : je mets le code pour ceux que ça intéresse

dans rubrique.php :

<?php
     switch($_GET['id_rubrique'])
     {
        case '1' :$fond="rubrique1.html";
                    break;
      
        default : $fond="rubrique.html";
    }
   
    $pageret=1;
    $parsephp=1;
    include("fonctions/moteur.php");
?>

@+

Offline


salut,

ca marchait bien sauf quand j'ai demandé (et vérifié) un affichage différent pour les rubriques 3 et 4 qui sont des sous-rubriques de ma rubrique 1 ...

donc apparemment cela ne marcherait pas pour les sous-rubriques ??

voici le code de rubrique.php :

<?php
     switch($_GET['id_rubrique'])
     {
        	case '1' :$fond="rubrique1.html"; // la rubrique principale
		 case '3' :$fond="rubriquesecteur1.html"; // sous-rubrique de 1
		  case '4' :$fond="rubriquesecteur1.html"; // sous-rubrique de 1
		   
			  
                    break;
      
        default : $fond="rubrique.html";
    }
   
    $pageret=1;
    $parsephp=1;
    include("fonctions/moteur.php");
?>

==> dans mon cas, case '1' :$fond="rubrique1.html"; affiche  rubriquesecteur1.html …

est-ce qqn voit où est le problème …

Merci pour votre aide

Offline


Bonjour,

Après chaque case, il faut un break quand le fond est différent, sinon tu prends toujours le même.

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


merci Alfouine smile

Offline


Bonjour,

Si je comprends bien il faut faire un lien en dur pour pointer sur rubrique1.html dans le menu.html et de dupliquer la partie correspondant à la rubrique dans le CSS.

Last edited by Baxter89 (08-06-2010 08:53:00)

Offline


Baxter89 wrote:

Bonjour,

Si je comprends bien il faut faire un lien en dur pour pointer sur rubrique1.html dans le menu.html et de dupliquer la partie correspondant à la rubrique dans le CSS.

La je suis largué lol

Je sais pas si tu as bien compris mais j'ai un doute.

Le principe énoncé est que pour des rubriques spécifiques tu gères une présentation différente via une page html différente.

Alfouine,

Last edited by alfouine (08-06-2010 09:01:43)


Au royaume des aveugles, les borgnes sont mal vus.

Offline


Bonjour,

Cette méthode étant incompatible avec le rewrite url il me semble, j'ai opté pour une variante qui teste l'url courante et cherche le nom de la rubrique dans la chaine :

rubrique.php

<?php
$test   = 'test';
$pos = strpos($_SERVER['REQUEST_URI'], $test);
if($pos === false){ 
 	$fond="rubrique.html";
}
else{
	$fond="rubriquetest.html";
}

$pageret=1;
$parsephp=1;
include("fonctions/moteur.php");
?>

Viens t'outiller chez le quincailler car chez le quincailler tout y est

Offline


theliaste wrote:

Bonjour,

Cette méthode étant incompatible avec le rewrite url il me semble, j'ai opté pour une variante qui teste l'url courante et cherche le nom de la rubrique dans la chaine :

Cette méthode est totalement compatible avec le rewrite, je ne vois pas en quoi elle ne le serait pas ?

On ne change pas l'appel en php, on change juste le fond html.

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


ben oui mais la requete porte sur le get id_rubrique qui n'existe plus quand lurl est réécrite non ?


Viens t'outiller chez le quincailler car chez le quincailler tout y est

Offline


J'utilise que 2 rubrique principal différents qui on chacune plusieurs produits, je voulais savoir comment faire pour que ma rubrique exemple :

Rub Voiture : affiche mes produits  en carré comme d'origine sur 2 colonnes
et
Rub Moto : affiche mes produits en rectangle sur une colonne

Je pensai que j’étais sur le bon poste.

Offline


theliaste wrote:

ben oui mais la requete porte sur le get id_rubrique qui n'existe plus quand lurl est réécrite non ?

Ben si, l'id de rubrique est toujours là, sinon on ne pourrait pas réécrire les urls.

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


Baxter89 wrote:

J'utilise que 2 rubrique principal différents qui on chacune plusieurs produits, je voulais savoir comment faire pour que ma rubrique exemple :

Rub Voiture : affiche mes produits  en carré comme d'origine sur 2 colonnes
et
Rub Moto : affiche mes produits en rectangle sur une colonne

Je pensai que j’étais sur le bon poste.

<?php
     switch($_GET['id_rubrique'])
	 {
	    case 'id de la rubrique voiture' : $fond="affichage en carre.html";
					break;
	    case 'id de la rubrique moto' : $fond="affichage en rectangle.html";
					break;
		default : $fond="rubrique.html";
	}
		$parsephp=1;
		$pageret=1;
  	include("fonctions/moteur.php");
?>

N'oublie pas de mettre les bonnes valeurs.

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


ouaip mais comment dire, la requete porte sur le terme "id_rubrique" qui n'apparait pas dans ladresse réécrite (enfin je le vois pas) comment il peut interpréter le "$_GET['id_rubrique']" si le terme n'existe pas dans l'url ?
(ps : tu vois ce que je te disais concernant les compétences de rédaction de plugin big_smile)


Viens t'outiller chez le quincailler car chez le quincailler tout y est

Offline


Je test sa.

Merci alfouine

Encore Merci Alfouine ces exactement ce que je voulais.

Last edited by Baxter89 (08-06-2010 11:33:53)

Offline


theliaste wrote:

ouaip mais comment dire, la requete porte sur le terme "id_rubrique" qui n'apparait pas dans ladresse réécrite (enfin je le vois pas) comment il peut interpréter le "$_GET['id_rubrique']" si le terme n'existe pas dans l'url ?
(ps : tu vois ce que je te disais concernant les compétences de rédaction de plugin big_smile)

L'id de rubrique est dans l'adresse réécrite, c'est la base de la réécriture d'url, il faut un élément qui permette de différencier chaque page et dans le cas d'une rubrique, c'est son id.

Regarde la règle de réécriture :
RewriteRule   ^([a-z0-9-]*)_([0-9]*)_\.html  /rubrique.php?id_rubrique=$2  [NC,QSA,L]

Tu vois bien que l'on utilise l'id de la rubrique et si tu vois pas, je t'invite à potasser sur internet .htacces et les règles de réécritures.

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


D'accord,
je pensais pas que l'url véritable se cachait derrière le rewrite, j'avais zappé la partie .htaccess
je vais aller tester la méthode get id_rubrique de ce pas,
merci beaucoup pour les précisions !

--> Impek, merci encore !

Last edited by theliaste (08-06-2010 11:45:16)


Viens t'outiller chez le quincailler car chez le quincailler tout y est

Offline


Bonjour alfouine,

Encore merci pour la solution des rubriques, par contre si on rajoute des sous rubrique et quand je clic dessus elle point sur rubrique.html. et du coup je perd la mise en page de ma rubrique principale que j'ai modifier, pour reveinir comme d'origine.

Exemple :

Rub rectangle:
- Sous rub rectangle : si je clic dans la sous rub sa m'ouvre rubrique.html
Rub 2 colonnes :
- Sous rub 2 colonnes :

j'espère avoir été assé claire dans mais explication.

Offline


Bonjour,

J'avoue que c'est pas très clair roll

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


Vais essayé d'être le plus clair possible, voila tu ma donné la soluce pour mes rubriques voici le code :

<?php
     switch($_GET['id_rubrique'])
     {
        case 'id de la rubrique voiture' : $fond="affichage en carre.html";
                    break;
        case 'id de la rubrique moto' : $fond="affichage en rectangle.html";
                    break;
        default : $fond="rubrique.html";
    }
        $parsephp=1;
        $pageret=1;
      include("fonctions/moteur.php");
?>

En plus dans ces rubriques j'ai créé des sous rubrique, le pb ces quand je clic sur ma rubrique affichage en rectangle elle est bonne mais si je clic dans une sous rubrique de d'affichage rectangle elle s'affiche en 2 colonnes qui correspond au fichier d'origine rubrique.html au lieu de garder mon affichage en rectangle ouff pas simple a expliquer.

Voici la boucle que j'ai dans mais deux fichier rectangle et carré html de base, qui me sert à appeler mais sous rubriques.

  <div id="choixrubrique">
          <THELIA_MENU_RUBRIQUES type="RUBRIQUE" id="#RUBRIQUE_ID" ligne="1" >
  <!--- <ul class="rub"><li class="rub"><a href="#URL" class="ruba">#TITRE</a></li></ul> --->
        <THELIA_BLOC_SOUS_MENU type="RUBRIQUE" parent="#ID">
        <THELIA_SOUS_MENU_RUBRIQUE type="RUBRIQUE" id="#ID" courante="0">
        <div id="choixrubriqueinterne" class="menubox_border_idle" onMouseOver="this.className='menubox_border_active';" onMouseOut="this.className='menubox_border_idle';">
        <a href="#URL" ><strong>#TITRE</strong></a></div>
        </THELIA_SOUS_MENU_RUBRIQUE>
        <THELIA_SOUS_MENU_RUBRIQUE_SELECTION type="RUBRIQUE" id="#ID" courante="1">
        <div id="choixrubriqueinterne" class="menubox_border_idle" onMouseOver="this.className='menubox_border_active';" onMouseOut="this.className='menubox_border_idle';"><a href="#URL" ><strong>#TITRE</strong></a></div>
        <THELIA_SSOUS_MENU_RUBRIQUE_SELECTION type="RUBRIQUE" id="#ID" courante="1">
        <div id="choixrubriqueinterne" class="menubox_border_idle" onMouseOver="this.className='menubox_border_active';" onMouseOut="this.className='menubox_border_idle';"><a href="#URL" ><strong>#TITRE</strong></a></div>
        <THELIA_SSSOUS_MENU_RUBRIQUE_SELECTION type="RUBRIQUE" id="#ID" courante="1">
        <div id="choixrubriqueinterne" class="menubox_border_idle" onMouseOver="this.className='menubox_border_active';" onMouseOut="this.className='menubox_border_idle';"><a href="#URL" ><strong>#TITRE</strong></a></div>
        </THELIA_SSSOUS_MENU_RUBRIQUE_SELECTION>
        </THELIA_SSOUS_MENU_RUBRIQUE_SELECTION>
        </THELIA_SOUS_MENU_RUBRIQUE_SELECTION>
        </THELIA_BLOC_SOUS_MENU>
        </ul>
        </THELIA_MENU_RUBRIQUES>
  </div>

Offline


Bonjour,

L'affectation de l'affichage se fait en dur via rubrique.php, donc à chaque fois que tu crées une nouvelle rubrique, c'est le fond rubrique.html qui est appelé si tu ne modifies pas le fichier php.

Cette solution est ingérable si la création de rubrique se fait par le vendeur, mais si les rubriques sont figées, il faut rajouter dans le php pour chaque rubrique créé le fond appelé.

<?php
     switch($_GET['id_rubrique'])
     {
        case 'id de la rubrique voiture' : 
        case 'id de la sous-rubrique que tu veux' : 
        case 'id de la sous-rubrique que tu veux' : 
        case 'id de la sous-rubrique que tu veux' : 
                                                       $fond="affichage en carre.html";
                    break;
        case 'id de la rubrique moto' : 
        case 'id de la sous-rubrique que tu veux' : 
        case 'id de la sous-rubrique que tu veux' : 
                                                       $fond="affichage en rectangle.html";
                    break;
        default : $fond="rubrique.html";
    }
        $parsephp=1;
        $pageret=1;
      include("fonctions/moteur.php");
?>

Et si toutes les nouvelles rubriques sont par exemple en rectangle, c'est plus simple, tu fais :

<?php
     switch($_GET['id_rubrique'])
     {
        case 'id de la rubrique voiture' : $fond="affichage en carre.html";
                    break;
        case 'id de la rubrique moto' : $fond="affichage en rectangle.html";
                    break;
        default : $fond="affichage en rectangle.html";
    }
        $parsephp=1;
        $pageret=1;
      include("fonctions/moteur.php");
?>

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


Merci alfouine,

Sa marche nikel.