Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 14/09/2009 11:58:53

cathy
Membre
Inscription : 17/04/2009
Messages : 56

Pages publiées et non publiées

Bonjour
(encore moi...)

J'ai relu le manuel sur ce point, mais j'aimerai comprendre le fonctionnement des pages publiées et non publiées.

Je souhaite avoir des promos pour des locations d'appartements de vacances.
Ces promos, ne sont pas forcément les mêmes pour tous les appartements, et il n'y en a pas toute l'année.

Donc, j'ai créé des pages non publiées (car pas besoin d'être visibles dans le menu) : promo-apt1, promo-apt2... pour que le webmaster y saisisse du contenu textuel uniquement, en fonction du besoin.
Ces pages sont ensuite appelées par mon template, elles sont affichées selon la page en cours, si je suis sur la page apt1, j'affiche le contenu de ma page promo-apt1, si je suis sur la page apt2, la page promo-apt2...
Jusqu'ici, cela fonctionne très bien, seulement, je voudrais, s'il n'y a pas de promo sur un apt, que le template n'affiche pas son contenu.
D'où l'utilité, je pense de dépublier cette page. Seulement que la page soit publiée ou non publiée, elle est visible. Est-ce normal ?

Merci d'avance,

Hors ligne

#2 14/09/2009 14:09:02

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

salut,
elle est visible où? si c'est dans la liste des pages en mode admin, oui c'est normal.
avec quel utilisateur? admin? webmaster?

++ vYk


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#3 14/09/2009 14:45:22

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Pages publiées et non publiées

cathy a écrit :

Bonjour
(encore moi...)

J'ai relu le manuel sur ce point, mais j'aimerai comprendre le fonctionnement des pages publiées et non publiées.

Je souhaite avoir des promos pour des locations d'appartements de vacances.
Ces promos, ne sont pas forcément les mêmes pour tous les appartements, et il n'y en a pas toute l'année.

Donc, j'ai créé des pages non publiées (car pas besoin d'être visibles dans le menu) : promo-apt1, promo-apt2... pour que le webmaster y saisisse du contenu textuel uniquement, en fonction du besoin.
Ces pages sont ensuite appelées par mon template, elles sont affichées selon la page en cours, si je suis sur la page apt1, j'affiche le contenu de ma page promo-apt1, si je suis sur la page apt2, la page promo-apt2...
Jusqu'ici, cela fonctionne très bien, seulement, je voudrais, s'il n'y a pas de promo sur un apt, que le template n'affiche pas son contenu.
D'où l'utilité, je pense de dépublier cette page. Seulement que la page soit publiée ou non publiée, elle est visible. Est-ce normal ?

Merci d'avance,

Oui, c'est tout à fait normal car actuellement tu passes outre la notion de pages publiées.

Il faudrait que tu modifies un peu ton code de manière, justement, à prendre en compte le fait que la page est publiée ou non

a+
jean-paul

Hors ligne

#4 14/09/2009 17:31:33

cathy
Membre
Inscription : 17/04/2009
Messages : 56

Re : Pages publiées et non publiées

Bonjour à vous 2

davyk a écrit :

salut,
elle est visible où? si c'est dans la liste des pages en mode admin, oui c'est normal.
avec quel utilisateur? admin? webmaster?
++ vYk

Alors, effectivement un peu plus de détails de ma part serait la bienvenue....
Je suis en mode admin pour l'instant, pour la conception du site.
Mes pages appelées par mon template, sont non publiées : carré rouge.
Lorsque je suis déconnectée et visite le site, ces pages sont interprétées, donc visibles.

jpg a écrit :

Oui, c'est tout à fait normal car actuellement tu passes outre la notion de pages publiées.
Il faudrait que tu modifies un peu ton code de manière, justement, à prendre en compte le fait que la page est publiée ou non

OK super ! Mais une idée de code ?
Pour l'instant, j'ai qq chose du genre :

<?php 
$pageactuelle = $_SERVER['REQUEST_URI'];
if ($pageactuelle == '/monsite/index.php?perma=appartements-vacances-bretagne-apt3') {echo $zite->get_content('promotions-apt3', true);}
else if ($pageactuelle == '/monsite/index.php?perma=appartements-vacances-bretagne-apt4') {echo $zite->get_content('promotions-apt4', true);
....
else {...} ?>

Et je ne sais pas comment prendre en compte si la page est publiée ou non.

Merci

Dernière modification par cathy (14/09/2009 17:32:09)

Hors ligne

#5 14/09/2009 19:29:44

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Pages publiées et non publiées

cathy a écrit :
jpg a écrit :

Oui, c'est tout à fait normal car actuellement tu passes outre la notion de pages publiées.
Il faudrait que tu modifies un peu ton code de manière, justement, à prendre en compte le fait que la page est publiée ou non

OK super ! Mais une idée de code ?
Pour l'instant, j'ai qq chose du genre :

<?php 
$pageactuelle = $_SERVER['REQUEST_URI'];
if ($pageactuelle == '/monsite/index.php?perma=appartements-vacances-bretagne-apt3') {echo $zite->get_content('promotions-apt3', true);}
else if ($pageactuelle == '/monsite/index.php?perma=appartements-vacances-bretagne-apt4') {echo $zite->get_content('promotions-apt4', true);
....
else {...} ?>

Et je ne sais pas comment prendre en compte si la page est publiée ou non.

Merci

Une solution:
En mettant tes pages promotions-apt3, promotions-apt4 en pages filles filles des pages appartements-vacances-bretagne-apt3 et appartements-vacances-bretagne-apt4.

Pour fixer les idées, tu auras une arborescence du style:

   appartements-vacances-bretagne-apt3
          promotions-apt3
   appartements-vacances-bretagne-apt4
          promotions-apt4
   appartements-vacances-bretagne-apt5
          promotions-apt5
   
Ces pages filles étant non visibles dans les menus et publiées s'il y a un contenu, non publiées sinon.
Ensuite, je mettrais dans le template une solution dérivée de celle que je t'avais proposé dans cette discussion http://www.zitecms.org/zite/forum/viewtopic.php?id=372
A savoir un code du style:

<?php
define('cPageIdent',0);
define('cPageOn',4);
$mapage = $zite->struct[$zite->truepage];
switch($mapage[cPageIdent]) {
  case 'appartements-vacances-bretagne-apt3':
  case 'appartements-vacances-bretagne-apt4':
  case 'appartements-vacances-bretagne-apt5':
      if ($zite->struct[$zite->truepage+1][cPageOn]) {
        echo $zite->get_content($zite->struct[$zite->truepage+1][cPageIdent], true );   
      break;         
      }
default: { .... }
}
?>

je n'ai pas testé le code, mais cela ne devrait pas être très loin du code fonctionnel.

a+
jean-paul

ps: on peut voir à quoi ressemble le site final en production ?

Hors ligne

#6 15/09/2009 10:23:40

cathy
Membre
Inscription : 17/04/2009
Messages : 56

Re : Pages publiées et non publiées

Merci Jean-Paul
Ce code marche impeccable.
Seulement, je suis pas développeur et j'ai dû mal à comprendre ton code...
Et j'ai besoin d'intercaler du texte entre, notamment le titre de l'appartement, car quand c'est par défaut, c'est toutes les promos des appartements qu'il faut afficher par exemple.

En plus, plus basiquement, je pourrais avoir besoin d'un code de ce style (compte tenu de mon niveau wink ) pour ces promos mais aussi pour d'autres "modules" à afficher :
Si je disais :
si ma page en cours s'appelle "apt-1", j'affiche ou pas un texte "titre apt1" selon le contexte + le contenu de la page "promo-1" mais uniquement si le statut publié est "on"
si ma page en cours s'appelle "apt-2", j'affiche ou pas un texte "titre apt2" selon le contexte + le contenu de la page "promo-2" mais uniquement si le statut publié est "on"
...

Alors si tu peux m'aider, en ce sens...

jpg a écrit :

ps: on peut voir à quoi ressemble le site final en production ?

Bien sûr, avec plaisir ! Quand je l'aurai fini, j'ai prévu de faire un post ! Mais il faut attendre encore un peu, car je développe pour une amie à mes heures perdues...

Dernière modification par cathy (15/09/2009 10:25:42)

Hors ligne

#7 15/09/2009 13:27:05

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

jpg a écrit :

.
Ensuite, je mettrais dans le template une solution dérivée de celle que je t'avais proposé dans cette discussion http://www.zitecms.org/zite/forum/viewtopic.php?id=372

je me disais aussi que cette discussion m'en rappelait une autre..

cathy a écrit :

Et j'ai besoin d'intercaler du texte entre, notamment le titre de l'appartement, car quand c'est par défaut, c'est toutes les promos des appartements qu'il faut afficher par exemple.

excuses-moi mais cette phrase, je ne l'ai pas comprise.

Dernière modification par davyk (15/09/2009 13:35:30)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#8 15/09/2009 14:30:58

cathy
Membre
Inscription : 17/04/2009
Messages : 56

Re : Pages publiées et non publiées

davyk a écrit :

excuses-moi mais cette phrase, je ne l'ai pas comprise.

Bonjour Davyk,

En fait, j'ai des pages promos par appt, avec juste un texte du style -20% du... au ... soit x €. Ensuite, je souhaite avoir 2 "modules" promotions différent :

- le 1er : visible sur toutes les pages du site est une concaténation de toutes les promos des pages en statut publiées uniquement :
Promotions :
Appt 1
-20% du.....
Appt 2
-10 % du...
...
j'ai donc besoin d'intercaler le titre du module "promotions" et le nom des appartements.

- le 2ème : présent uniquement sur les pages des appartements, qui affiche la promo de l'appartement concerné s'il y en a une (=page publiée) :
Promotion actuellement sur cet appartement :
- 20% du...
là je n'ai pas besoin du nom de l'appartement mais du titre du module.

Bon je ne sais pas si c'est la meilleure façon de faire ?
Mais voilà où j'en suis...

Dernière modification par cathy (15/09/2009 14:32:06)

Hors ligne

#9 16/09/2009 11:56:46

cathy
Membre
Inscription : 17/04/2009
Messages : 56

Re : Pages publiées et non publiées

bonjour à tous,

Pas d'idée ? moi je sèche...
Merci

Hors ligne

#10 16/09/2009 12:55:15

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

Salut,
j'ai essayé cette nuit (tu me payeras en heures sup. wink ) sans succès; ce que j'ai essayé de faire c'est un include conditionnel des pages filles: si page fille publiée alors l'afficher (grâce à [cPageOn]) en essayant de détourner le code de Jean-Paul  if ($zite->struct[$zite->truepage+1][cPageOn].

d'où ma question pour Jean-Paul:
j'ai testé (hou la honte) 

if ($zite->struct['promotions-apt1'][cPageOn]) {echo $zite->get_content('promotions-apt1', true);}

mais ça marche pas, quelle est la syntaxe (si tant est que mon exemple est compréhensible)?

++ vYk

Dernière modification par davyk (19/09/2009 15:13:59)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#11 17/09/2009 12:38:55

cathy
Membre
Inscription : 17/04/2009
Messages : 56

Re : Pages publiées et non publiées

Salut Davyk
Merci pour tes efforts, ça ve me coûter cher !!!
J'ai essayé différentes choses aussi, mais je ne connais pas la syntaxe pour dire telle page avec statut publié.

alors si JP est parmi nous....

Hors ligne

#12 20/09/2009 14:44:02

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

salut,

un petit up pour Jean-Paul.
résultats des tests (j'en ai fait un paquet wink ):
ton code conditionnel avec truepage ne fonctionne uniquement lorqu'on est sur la page qui l'appelle.
explications (au cas où j'aurais pas été clair)
fil:
->promos
    ->page non publiée pour cacher les promos (testé avec et sans cette page)
         ->test
         ->test2

code promos:
<h1>Promos appart</h1><br />
<h1>appart1</h1>
<?php
define('cPageIdent',0);  define('cPageOn',4);
$mapage = $zite->struct[$zite->truepage];
switch($mapage[cPageIdent]) {   
case 'promos':       
if ($zite->struct[$zite->truepage+2][cPageOn]) {         
echo $zite->get_content('test', true );}  } ?>
{.. + code similaire pour page test2..}

tout s'affiche bien lorsqu'on va sur la page promos
mais lorsqu'on crée un panneau latéral
qui appelle la page promos grâce à get_content le contenu des pages test et test2 ne vient pas.

re-ma question: peut-on afficher directement le contenu d'une page avec statut publié mais sans passer par truepage (qui doit être le coupable)?

merci pour ta réponse

++ vYk

Dernière modification par davyk (20/09/2009 14:45:38)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#13 20/09/2009 23:41:50

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Pages publiées et non publiées

Bonsoir,

davyk a écrit :

salut,

un petit up pour Jean-Paul.
résultats des tests (j'en ai fait un paquet wink ):
ton code conditionnel avec truepage ne fonctionne uniquement lorqu'on est sur la page qui l'appelle.

C'est normal, c'était la demande initiale de cathy, d'ou la réponse. truepage est la page (centrale) en cours.

davyk a écrit :

explications (au cas où j'aurais pas été clair)
fil:
->promos
    ->page non publiée pour cacher les promos (testé avec et sans cette page)
         ->test
         ->test2

code promos:
<h1>Promos appart</h1><br />
<h1>appart1</h1>
<?php
define('cPageIdent',0);  define('cPageOn',4);
$mapage = $zite->struct[$zite->truepage];
switch($mapage[cPageIdent]) {   
case 'promos':       
if ($zite->struct[$zite->truepage+2][cPageOn]) {         
echo $zite->get_content('test', true );}  } ?>
{.. + code similaire pour page test2..}

tout s'affiche bien lorsqu'on va sur la page promos
mais lorsqu'on crée un panneau latéral
qui appelle la page promos grâce à get_content le contenu des pages test et test2 ne vient pas.

re-ma question: peut-on afficher directement le contenu d'une page avec statut publié mais sans passer par truepage (qui doit être le coupable)?

merci pour ta réponse

++ vYk

On peut ... mais ... c'est le tarif de nuit, pas moins  ... roll

Plus sérieusement, tu peux afficher ce que tu veux avec get_content.
Le problème est de trouver la page que tu veux afficher !

tu peux utiliser le code suivant à mettre dans zite.php avant le } final:

	function page_from_ident($idpage) {
	  $z=false;
		foreach ($this->struct as $k => $v) if ($v[cPageIdent]==$idpage) $z=$k;
		return $z;
	}

Pour reprendre l'exemple d'un précédent message, si ta page a pour nom "promotions-apt1" tu vas le coder ainsi:
    if ($zite->struct[$zite->page_from_ident('promotions-apt1')][cPageOn]) {echo $zite->get_content('promotions-apt1', true);}

a+
jean-paul

Hors ligne

#14 21/09/2009 08:47:14

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

cool (si tu n'aimes pas le css, en php, tu es un as mon jean-paul wink )

@cathy:     voilà qui devrait résoudre ton problème :

1. tu crées (orthographe approximative) une page cachée (non-publiée) appelée "promotions"  (qui cachera tes promotions dans le menu)
2. tu lui crées une page fille nommée "toutes-promotions" et des pages filles appelées par exemple "promo-apt1", "promo-apt2" etc.
3. pour chacune de ces pages filles, tu édites la source (à droite de "EDITER") et dans la case 'Nom en clair du fichier:" tu lui mets le même non que sa page, à savoir "toutes-promotions" et "promo-apt1" etc..
4. Comme Jean-Paul nous l'a gentiment suggéré, tu mets dans zite.php avant le } final:

    function page_from_ident($idpage) {
      $z=false;
        foreach ($this->struct as $k => $v) if ($v[cPageIdent]==$idpage) $z=$k;
        return $z;
    }

5. dans chacune de tes pages des apparts, tu édites le source et tu y rajoutes:
<?php if ($zite->struct[$zite->page_from_ident('promo-apt1')][cPageOn]) {echo $zite->get_content('promo-apt1', true);} ?>
en veillant bien à l'adapter pour chaque page!
6. tu crées édites la source de la page "toutes-promotions", effaces le contenu et insères tous les includes vers tes pages de promo:
<?php if ($zite->struct[$zite->page_from_ident('promo-apt1')][cPageOn]) {echo $zite->get_content('promo-apt1', true);} ?>
<?php if ($zite->struct[$zite->page_from_ident('promo-apt2')][cPageOn]) {echo $zite->get_content('promo-apt2', true);} ?>
etc..
7. 2 solutions: soit tu crées une div dans ton template:
<div id="promos"> <?php echo $zite->get_content('toutes-promotions', true) ?></div>
et tu la places où tu veux grâce au css
                     soit tu crées un panneau latéral (grâce à la fonction de rajout de page, merci Jean-Paul wink ), tu édites la source, tu effaces tout et tu mets:
<?php echo $zite->get_content('toutes-promotions', true) ?>

voilà, tu testes et ça devrait faire ce que tu veux.

++ vYk

@jpg   PS: merci pour cathy wink

Dernière modification par davyk (21/09/2009 08:51:37)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#15 21/09/2009 09:27:02

cathy
Membre
Inscription : 17/04/2009
Messages : 56

Re : Pages publiées et non publiées

Merci à vous 2 pour votre aide +++

A Jean-Paul :
Super Jean-Paul, ça marche !!

jpg a écrit :

tu peux utiliser le code suivant à mettre dans zite.php avant le } final:

	function page_from_ident($idpage) {
	  $z=false;
		foreach ($this->struct as $k => $v) if ($v[cPageIdent]==$idpage) $z=$k;
		return $z;
	}

Est-ce que je peux te demander encore un service ? Peux-tu m'expliquer ce code (compte tenu de mon niveau débutant en php... je ne comprends pas tout big_smile ) ? Et j'aime bien comprendre les choses, plutôt que recopier bêtement un code... wink

A Davyk :
En même temps que j'écris, je viens de voir ta réponse, donc pas testé encore !!
Wahoou, tu m'as écris un "tuto" ! Géant ! smile

Aux 2 :
Je vais pouvoir maintenant réfléchir définitivement à la structure du site. cool
Je vous tiens au courant...

Hors ligne

#16 21/09/2009 10:01:37

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

dis -moi, Jean-Paul, tu pourrais pas rajouter cette fonction de 5 lignes au futur ziteplus, car ça m'a l'air bien pratique quand même!

++ vYk


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#17 21/09/2009 13:17:57

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

re salut,

jai amélioré la partie 6:

6. tu crées édites la source de la page "toutes-promotions", effaces le contenu et insères tous les includes vers tes pages de promo:
<?php if ($zite->struct[$zite->page_from_ident('promo-apt1')][cPageOn]) {echo $zite->get_content('promo-apt1', true);} ?>
<?php if ($zite->struct[$zite->page_from_ident('promo-apt2')][cPageOn]) {echo $zite->get_content('promo-apt2', true);} ?>
etc..
remplaces par:

<h1>Promotions</h1>
<p><?php
$promo=0;
if ($zite->struct[$zite->page_from_ident('promo-apt1')][cPageOn])  echo $zite->get_content('promo-apt1', true); else $promo++; ?>
<?php if ($zite->struct[$zite->page_from_ident('promo-apt2')][cPageOn])  echo $zite->get_content('promo-apt2', true); else $promo++; ?>
<?php  if ( $promo == 2 ) echo 'Pas de promos';?>
</p>

explications rapides:
à chaque fois qu'une page n'est pas publiée la variable $promo est incrémentée de 1
ensuite on appelle $promo et si elle a la valeur 2 (dans l'exemple) on renvoie "Pas de promos"

donc il te faudra remplacer 2 dans <?php  if ( $promo == 2 ) echo 'Pas de promos';?> par le nombre de page promo que tu as.

voilou

++ vYk

Dernière modification par davyk (21/09/2009 21:22:35)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#18 22/09/2009 12:27:44

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Pages publiées et non publiées

davyk a écrit :

dis -moi, Jean-Paul, tu pourrais pas rajouter cette fonction de 5 lignes au futur ziteplus, car ça m'a l'air bien pratique quand même!

++ vYk

Question: d'ou vient cette fonction d'après toi ?

Réponse: de la dernière version alpha de ziteplus, la 0.9.0.a5  big_smile

a+
jean-paul

Hors ligne

#19 22/09/2009 12:38:29

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

trop fort! big_smile

Dernière modification par davyk (22/09/2009 12:39:01)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#20 27/09/2009 03:14:00

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

jpg a écrit :

Question: d'ou vient cette fonction d'après toi ?

Réponse: de la dernière version alpha de ziteplus, la 0.9.0.a5  big_smile

j'attends avec impatience de la tester.. wink


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#21 28/09/2009 18:11:15

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Pages publiées et non publiées

davyk a écrit :
jpg a écrit :

Question: d'ou vient cette fonction d'après toi ?

Réponse: de la dernière version alpha de ziteplus, la 0.9.0.a5  big_smile

j'attends avec impatience de la tester.. wink

Encore un peu de patience, la sortie de la première alpha publique approche  smile

Hors ligne

#22 28/09/2009 21:35:04

davyk
Membre
Inscription : 09/09/2008
Messages : 819
Site Web

Re : Pages publiées et non publiées

big_smile


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

#23 14/10/2009 17:18:59

cathy
Membre
Inscription : 17/04/2009
Messages : 56

Re : Pages publiées et non publiées

Hello !!
Après quelques temps d'absences... me revoilà...
Je viens de tester avec toutes les infos que vous m'avez transmises. C'est OK !
Y'a plus qu'à faire un beau site avec tout ça wink

Merci encore à vous 2 !!!

A+
Cathy

Hors ligne

Pied de page des forums