Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
Bonjour à vous 2
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.
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
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 nonOK 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
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 ) 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...
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
.
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..
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
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
bonjour à tous,
Pas d'idée ? moi je sèche...
Merci
Hors ligne
Salut,
j'ai essayé cette nuit (tu me payeras en heures sup. ) 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
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
salut,
un petit up pour Jean-Paul.
résultats des tests (j'en ai fait un paquet ):
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
Bonsoir,
salut,
un petit up pour Jean-Paul.
résultats des tests (j'en ai fait un paquet ):
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.
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
->test2code 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 ...
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
(si tu n'aimes pas le css, en php, tu es un as mon jean-paul )
@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 ), 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
Dernière modification par davyk (21/09/2009 08:51:37)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
Merci à vous 2 pour votre aide +++
A Jean-Paul :
Super Jean-Paul, ça marche !!
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 ) ? Et j'aime bien comprendre les choses, plutôt que recopier bêtement un code...
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 !
Aux 2 :
Je vais pouvoir maintenant réfléchir définitivement à la structure du site.
Je vous tiens au courant...
Hors ligne
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
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
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
a+
jean-paul
Hors ligne
trop fort!
Dernière modification par davyk (22/09/2009 12:39:01)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
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
j'attends avec impatience de la tester..
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
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
j'attends avec impatience de la tester..
Encore un peu de patience, la sortie de la première alpha publique approche
Hors ligne
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
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
Merci encore à vous 2 !!!
A+
Cathy
Hors ligne
Pages : 1