C'est pas faux , le peu que je connaisse de php c'est ce que j'en comprends par déduction logique, si tu veux sur le principe je comprends mais là j'ai l'impression qu'il en manque des bouts, là je comprends (sur la deuxieme partie) que si pluxml est en mode "hom" la variable catégorie devient "présentation", mais ca il faut que ça soit juste sur la page d'accueil, pas sur les autres, et la première partie, ce que je ne comprends pas c'est : "$pluxml->uCats....."
Je comprends que tu n'aies pas le temps en ce moment, ce n'est pas grave, je ne vais peut-être pas avoir besoin de faire ça tout de suite tout de suite, mais si tu peux y repenser quand tu auras le temps ... merci !
Bon en fait j'en ai besoin hyper vite de cette fonction, et je galère vraiment, je me suis dit tampis, je vais coder ça en dur et pas passer par un include, mais quel con je fais, effectivement, ça marche, mais le problème reste le même, sur la page d'accueil, ma variable "categorie" est toujours fonction du dernier article créé, et du coup si c'est un article de la catégorie vidéo, elle prend la valeur "vidéo" et pas "accueil"
J'ai pensé à autre chose, mais je sais pas si c'est faisable (facilement) et moi en tous cas, je ne saurais pas faire :
Est-il possible au moment de définir la variable, de faire examiner tous les articles de la catégorie plutôt que le premier seulement, et si il y a deux articles de catégories différentes, la variable prenne la valeur "accueil" ?
Merci d'avance si quelqu'un peut m'aider avec cette idée ou en m'expliquant le code que ma donné skyline un peu plus haut, ça urge vraiment (je démissionne de mon taf le 31 décembre et j'ai promis à mes patrons de terminer le site de la boite avant mon départ) et comme l'a fait remarquer skyline, mon gros problème c'est de ne pas connaitre php donc j'ai vraiment besoin d'aide.
<?php
# à ajouter au début du fichier template
if($pluxml->mode == 'cat'){ # Si on est en "mode catégorie" on se base sur le nom de la catégorie pour trouver le fichier à inclure
$categorie = $pluxml->cat_used[$pluxml->a_article['0']['cat_num']]['name'];
}
if($pluxml->mode == 'home'){ # Si on est en "mode home" (page d'accueil y compris) on se base sur le fichier présentation
$categorie = 'presentation'
}
?>
<?php
# à ajouter où l'on veux afficher le texte de présentation associé à chaque catégorie
include($categorie.'.txt');
?>
Ce script va inclure le fichier .txt qui porte le nom de la catégorie en cours, sinon il inclut le fichier 'presentation.txt'
Merci Skyline, je testerai ça demain matin au taf.
Cependant, avant d'avoir testé, je me permet d'emettre un doute, une interrogation disons que je me pose en lisant ton code Skyline.
Est-ce que ton code veut dire cela :
En mode catégorie, la variable categorie est déterminée par une analyse du premier article de la page dans laquelle on se trouve, et en mode "home" (mode ou accueil est une categorie, c'est à dire si on a créé un article auquel on a attribué la categorie "accueil", si j'ai bien compris) la variable categorie prend la valeur 'presentation' tout le temps, mais dans ce cas que se passe-t-il lorsqu'en mode catégorie on se trouve sur la page d'accueil?
La variable categorie va prendre la valeur déterminée par l'analyse du premier article de la page, c'est à dire le dernier publié sur le site, et cet article peut être de n'importe quelle catégorie, mais jamais accueil, non ? le problème reste donc le même.
Ou cela :
En mode catégorie, la variable categorie est déterminée par une analyse du premier article de la page dans laquelle on se trouve, et en mode "home" (c'est à dire quand on est sur la page d'accueil, même en mode catégorie) la variable catégorie prend la valeur 'presentation', auquel cas effectivement mon problème serait réglé, puisque le problème était justement de pouvoir "détecté" la page d'accueil, dans un mode comme dans l'autre (enfin surtout en mode catégorie)
???
En fait ce que je me demande c'est si j'ai bien compris le principe des mode catégorie et home, parce que pour moi le mode catégorie c'est quand la page d'accueil sert de page de "news" disons, je veux dire par là quand on retrouve sur l'accueil tous les articles, toutes catégories confondues, et le mode home c'est comme je le dit plus haut, c'est le mode ou accueil est une categorie, c'est à dire si on a créé un article auquel on a attribué la categorie "accueil".
Franchement, je dis rarement ça, mais j'éspère n'avoir pas tout bien compris, parce que si j'ai bien compris, mon problème n'est pas réglé
Si malheureusement j'ai bien compris et que mon problème reste inchangé, est-ce que tu peux me dire Skyline si mon idée de 3 replys plus haut est faisable ?
C'est à dire analyser tous les articles d'une catégorie plutôt que seulement le premier afin, si l'analyse montre plusieurs articles de catégories différentes, de définir la variable categorie avec la valeur "accueil" puisque seule la page d'accueil peut regrouper des articles de catégories différentes ?
Bon et ben, je le dis rarement aussi lol mais je suis content d'avoir été ignorant sur ce coup là, parce que je viens d'essayer et si ce n'est le fait que tu aies oublié un ";" ce qui m'a quand même fait tourné en bourique pendant un quart d'heure lol, CA MARCHE !!! Waou c'est génial, je suis trop content, merci Skyline
Si tu (et les autres aussi) veux voir ce que ça donne, le site est là:
Le header et l'intro (en image aussi pour aller plus vite et permettre à ma patronne de faire la mise en page qu'elle veut) qui change en fonction de la catégorie dans laquelle on se trouve.
C'est le site d'une boite, le résultat est ptet pas flagrant puisque les headers sont assez similaires, mais dans un autre cas, avec cette fonctionnalité là, on a des possibilités de malade pour le template, on peut vraiment faire ce qu'on veut, et ça c'est cool, genre changer la css en fonction de la categorie, ...
Merci encore Skyline, je pense que ça devrait faire l'objet d'un ajout dans la documentation, parce qu'à mon avis ça sera utile à pas mal de monde ce truc là.
tant que j'y suis, tu sais ce qui serais génial aussi Skyline ?
Ce serait que le fichier (ici une image) que j'inclue ou affiche au dessus des articles dans chaque catégorie (on va appeller ça intro de catégorie), ne soit pas visible en mode article, enfin je dis mode article, mais je ne suis pas sûr que c'est bien ça le mode article, je parles de quand tu suis le lien "lire : nom de l'article" et que tu te retrouve sur la page ou seul cet article est affiché dans son complet, chapô et contenu, là ce serait bien de ne pas avoir l'intro de catégorie qui n'a au final rien à y foutre puisque l'important ici c'est le contenu de l'article, pas la catégorie, tu vois ce que je veux dire ? c'est possible ?
Pour rebondir sur ce sujet, je trouves vraiment dommage de ne pas avoir conçu l'arborescence comme des pages parentes/pages enfants; plutôt que catégorie/page.
Cela aurait réglé directement ce problème de page d'accueil, non ?
Ce qu'on peut "includer" aujourd'hui dans une page d'accueil, c'est du contenu géré hors du CMS :
<?php
# à ajouter où l'on veux afficher le texte de présentation associé à chaque catégorie
include($categorie.'.txt');
?>
Si j'ai bien compris, Pluxml définit des catégories et des pages.
N'aurait-il pas été plus simple de concevoir que Pluxml ne gère seulement des pages, qui optionellement peuvent avoir des pages enfant ?
C'est à Skyline de se prononcer là, perso la solution qu'il m'a donné était suffisante pour ce site là, mais c'est vrai que c'est pas l'déal non plus puisque la présentation est aussi présente quand on affiche le contenu de l'article.
Comme quoi tu as bien d'insister stoopx , car ta démarche vient de me rendre bien service, et je suis sure de ne pas etre la seule
Pour ma part j'avais seulement besoin d'un texte d'accueil, un ptit édito en somme, eh bien ca marche nickel ^^
Donc merci stoopx et merci skyline biensur pour sa super disponibilité - et sa patience
J'ai installé le code pour afficher un texte différent par catégorie. Cela marche parfaitement pour la page d'accueil. Le fichier presentation.txt est localisé dans le dossier /core/template/defaut/
Je ne vois pas comment nommer les autres fichiers pour les autres catégories.
Si une catégorie s'appelle "Categorie" comment doit se nommer le fichier ?
- Categorie.txt ?
- 001/Categorie.txt ?
- 001.Categorie.txt ?
- 001Categorie.txt ?
- autrement ?
Merci, c'est ce qui me semblait logique... or le souci, c'est que...
... j'obtiens l'erreur suivante :
Warning: include(.txt) [function.include]: failed to open stream: No such file or directory in /foo/core/templates/foo/template.php on line 152
Warning: include() [function.include]: Failed opening '.txt' for inclusion (include_path='.:/usr/local/php5/lib/php') in /foo/core/templates/foo/template.php on line 152
J'ai glissé le fichier "Categorie.txt" dans le répertoire templates/foo (comme "presentation.txt" qui s'affiche sans problème en "home") puis à la racine : ça coince. Les droits sont à tout hasard en 777.
Pas d'accent et je respecte les majuscules/minuscules.
J'utilise ce code publié sur cette page :
<?php
# un texte specifique en tete de categorie
// error_reporting(0);
if($pluxml->mode == 'cat')
{ # Si on est en "mode catégorie" on se base sur le nom de la catégorie pour trouver le fichier à inclure
@$categorie = $pluxml->cat_used[$pluxml->a_article['0']['cat_num']]['name'];
}
if($pluxml->mode == 'home')
{ # Si on est en "mode home" (page d'accueil comprise) on se base sur le fichier présentation
$categorie = 'presentation';
}
?>
et ce code :
<?php
# à ajouter où l'on veut afficher le texte de présentation associé à chaque catégorie
include($categorie.'.txt');
?>
En mode home, le fichier presentation.txt est bien reconnu.
En mode cat (j'ouvre "Categorie" par exemple), le fichier Categorie.txt n'est pas trouvé. Est-ce le fait que j'ai ajouté une "@" à la variable $categorie ? (je suis sous PHP5 sur mon Mac).
Si je ne place pas d'arobase à @$categorie, j'obtiens ces deux messages d'erreur :
Notice: Undefined property: pluxml::$a_article in /foo/core/templates/lecocite/template.php on line 49
et
Notice: Undefined property: pluxml::$cat_used in /foo/core/templates/lecocite/template.php on line 49
En rajoutant l'arobase (pas très orthodoxe, mais bon...), j'obtiens :
Warning: include(.txt) [function.include]: failed to open stream: No such file or directory in /foo/core/templates/lecocite/template.php on line 153
et
Warning: include() [function.include]: Failed opening '.txt' for inclusion (include_path='.:/usr/local/php5/lib/php') in /foo/core/templates/lecocite/template.php on line 153
On constate que la variable $categorie est bien vide. Je suis sous Pluxml blog beta 02-07. Une idée ?
Je pense que c'est tout simplement du au fait que ce code a dû être écrit pour une version classique de Pluxml (vivement que je fusionne tout ça).
Les variables cat_used et a_article ont du changer de nom.
J'ai réussi à trouver la correspondance avec une ou deux variables, mais pas pour les autres... Je baisse les bras. Par manque de temps... et incompétence, surtout.
Comme je viens de me creuser un peu la tête pour trouver comment récupérer le nom de la catégorie en cours sur une page catégorie avec Pluxml 5.1.6, voici ce que j'ai mis dans mon fichier categorie.php :
Réponses
Je comprends que tu n'aies pas le temps en ce moment, ce n'est pas grave, je ne vais peut-être pas avoir besoin de faire ça tout de suite tout de suite, mais si tu peux y repenser quand tu auras le temps ... merci !
J'ai pensé à autre chose, mais je sais pas si c'est faisable (facilement) et moi en tous cas, je ne saurais pas faire :
Est-il possible au moment de définir la variable, de faire examiner tous les articles de la catégorie plutôt que le premier seulement, et si il y a deux articles de catégories différentes, la variable prenne la valeur "accueil" ?
Merci d'avance si quelqu'un peut m'aider avec cette idée ou en m'expliquant le code que ma donné skyline un peu plus haut, ça urge vraiment (je démissionne de mon taf le 31 décembre et j'ai promis à mes patrons de terminer le site de la boite avant mon départ) et comme l'a fait remarquer skyline, mon gros problème c'est de ne pas connaitre php donc j'ai vraiment besoin d'aide.
Ce script va inclure le fichier .txt qui porte le nom de la catégorie en cours, sinon il inclut le fichier 'presentation.txt'
Cependant, avant d'avoir testé, je me permet d'emettre un doute, une interrogation disons que je me pose en lisant ton code Skyline.
Est-ce que ton code veut dire cela :
En mode catégorie, la variable categorie est déterminée par une analyse du premier article de la page dans laquelle on se trouve, et en mode "home" (mode ou accueil est une categorie, c'est à dire si on a créé un article auquel on a attribué la categorie "accueil", si j'ai bien compris) la variable categorie prend la valeur 'presentation' tout le temps, mais dans ce cas que se passe-t-il lorsqu'en mode catégorie on se trouve sur la page d'accueil?
La variable categorie va prendre la valeur déterminée par l'analyse du premier article de la page, c'est à dire le dernier publié sur le site, et cet article peut être de n'importe quelle catégorie, mais jamais accueil, non ? le problème reste donc le même.
Ou cela :
En mode catégorie, la variable categorie est déterminée par une analyse du premier article de la page dans laquelle on se trouve, et en mode "home" (c'est à dire quand on est sur la page d'accueil, même en mode catégorie) la variable catégorie prend la valeur 'presentation', auquel cas effectivement mon problème serait réglé, puisque le problème était justement de pouvoir "détecté" la page d'accueil, dans un mode comme dans l'autre (enfin surtout en mode catégorie)
???
En fait ce que je me demande c'est si j'ai bien compris le principe des mode catégorie et home, parce que pour moi le mode catégorie c'est quand la page d'accueil sert de page de "news" disons, je veux dire par là quand on retrouve sur l'accueil tous les articles, toutes catégories confondues, et le mode home c'est comme je le dit plus haut, c'est le mode ou accueil est une categorie, c'est à dire si on a créé un article auquel on a attribué la categorie "accueil".
Franchement, je dis rarement ça, mais j'éspère n'avoir pas tout bien compris, parce que si j'ai bien compris, mon problème n'est pas réglé
Si malheureusement j'ai bien compris et que mon problème reste inchangé, est-ce que tu peux me dire Skyline si mon idée de 3 replys plus haut est faisable ?
C'est à dire analyser tous les articles d'une catégorie plutôt que seulement le premier afin, si l'analyse montre plusieurs articles de catégories différentes, de définir la variable categorie avec la valeur "accueil" puisque seule la page d'accueil peut regrouper des articles de catégories différentes ?
Si tu (et les autres aussi) veux voir ce que ça donne, le site est là:
http://cms.synthesevideo.com/pluxml0.3.1/index.php
Le header et l'intro (en image aussi pour aller plus vite et permettre à ma patronne de faire la mise en page qu'elle veut) qui change en fonction de la catégorie dans laquelle on se trouve.
C'est le site d'une boite, le résultat est ptet pas flagrant puisque les headers sont assez similaires, mais dans un autre cas, avec cette fonctionnalité là, on a des possibilités de malade pour le template, on peut vraiment faire ce qu'on veut, et ça c'est cool, genre changer la css en fonction de la categorie, ...
Merci encore Skyline, je pense que ça devrait faire l'objet d'un ajout dans la documentation, parce qu'à mon avis ça sera utile à pas mal de monde ce truc là.
Ce serait que le fichier (ici une image) que j'inclue ou affiche au dessus des articles dans chaque catégorie (on va appeller ça intro de catégorie), ne soit pas visible en mode article, enfin je dis mode article, mais je ne suis pas sûr que c'est bien ça le mode article, je parles de quand tu suis le lien "lire : nom de l'article" et que tu te retrouve sur la page ou seul cet article est affiché dans son complet, chapô et contenu, là ce serait bien de ne pas avoir l'intro de catégorie qui n'a au final rien à y foutre puisque l'important ici c'est le contenu de l'article, pas la catégorie, tu vois ce que je veux dire ? c'est possible ?
Pour rebondir sur ce sujet, je trouves vraiment dommage de ne pas avoir conçu l'arborescence comme des pages parentes/pages enfants; plutôt que catégorie/page.
Cela aurait réglé directement ce problème de page d'accueil, non ?
N'aurait-il pas été plus simple de concevoir que Pluxml ne gère seulement des pages, qui optionellement peuvent avoir des pages enfant ?
Pour ma part j'avais seulement besoin d'un texte d'accueil, un ptit édito en somme, eh bien ca marche nickel ^^
Donc merci stoopx et merci skyline biensur pour sa super disponibilité - et sa patience
J'ai installé le code pour afficher un texte différent par catégorie. Cela marche parfaitement pour la page d'accueil. Le fichier presentation.txt est localisé dans le dossier /core/template/defaut/
Je ne vois pas comment nommer les autres fichiers pour les autres catégories.
Si une catégorie s'appelle "Categorie" comment doit se nommer le fichier ?
- Categorie.txt ?
- 001/Categorie.txt ?
- 001.Categorie.txt ?
- 001Categorie.txt ?
- autrement ?
Merci pour votre aide et bonne journée
Brica
... j'obtiens l'erreur suivante :
Warning: include(.txt) [function.include]: failed to open stream: No such file or directory in /foo/core/templates/foo/template.php on line 152
Warning: include() [function.include]: Failed opening '.txt' for inclusion (include_path='.:/usr/local/php5/lib/php') in /foo/core/templates/foo/template.php on line 152
J'ai glissé le fichier "Categorie.txt" dans le répertoire templates/foo (comme "presentation.txt" qui s'affiche sans problème en "home") puis à la racine : ça coince. Les droits sont à tout hasard en 777.
Une idée ?
Merci !
brica
J'utilise ce code publié sur cette page : et ce code : En mode home, le fichier presentation.txt est bien reconnu.
En mode cat (j'ouvre "Categorie" par exemple), le fichier Categorie.txt n'est pas trouvé. Est-ce le fait que j'ai ajouté une "@" à la variable $categorie ? (je suis sous PHP5 sur mon Mac).
Si je ne place pas d'arobase à @$categorie, j'obtiens ces deux messages d'erreur :
et
En rajoutant l'arobase (pas très orthodoxe, mais bon...), j'obtiens :
et
On constate que la variable $categorie est bien vide. Je suis sous Pluxml blog beta 02-07. Une idée ?
Les variables cat_used et a_article ont du changer de nom.
Donc pour ceux qui voudraient encore faire ce que soulèvent ce thread, on pourrait adapter l'ancien:
par :
l'astuce de Samare: afficher le titre et la description de la catégorie
Cordialement,
C'est le boss qui l'a dit, moi je fais ^^^
Effectivement la fonction plxUtils::strCheck() protège l'affichage de l'injection de javascript pouvant créer des failles XSS
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)