Mise en place de fiches

PatrikGCPatrikGC Member
avril 2013 modifié dans Entraide
Bonjour à toutes et à tous


Je suis un petit nouveau ici et je débute avec Pluxml que je trouve bien fait pour les petits et moyens sites web. Je lui trouve une certaine similarité avec WordPress, ce qui n'est pas un mal en soit, mais sans le côté usine à gaz de celui-ci. Bref, une heureuse surprise !

J'essaye de réaliser un petit site web comportant des fiches de jeux de société. Je pourrais utiliser un plugin ajoutant des champs supplémentaires et les faire s'afficher dans le template, c'est un fait. J'avais imaginé une autre façon de faire : écrire la fiche d'une certaine façon figée et déléguer à un plugin de redisposer les textes autrement.

Imaginons l'exemple suivant :

1:Auchon Paul
2:1989
3:2
4:damier 5x5, 5 pions par joueur


Blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla

Se transforme en :

Auteur : Auchon Paul
Année : 1989
Joueurs : 2
Matériel : damier 5x5, 5 pions par joueur


Blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla

Ici, je suppose les codes "1: 2: etc." en début de ligne afin d'indiquer mes champs.
Bien sûr, il y a d'autres logiques... Du moment que ça fonctionne, c'est le principal :)


Que pensez-vous de cette façon de faire ?
Est-ce raisonnable ?
Merci d'avance pour vos avis et conseils :)
«1

Réponses

  • JosJos Member
    Bonjour et bienvenue sur PluXml,


    Pour ajouter des champs à un article, tu peu utiliser ce petit plugin :


    http://forum.pluxml.org/viewtopic.php?id=3090


    En espérant qu'il te permettra de faire ce que tu veux.
  • Bonjour


    Merci pour l'info, mais je connaissais déjà ce plugin.
    Je pense d'ailleurs l'utiliser si je ne trouve pas de solution selon ce que je souhaite. C'est d'ailleurs à lui que je songeais quand j'ai écrit : "Je pourrais utiliser un plugin ajoutant des champs supplémentaires et les faire s'afficher dans le template, c'est un fait."


    Bonne journée :)
  • JosJos Member
    Je pense que c'est une bonne solution ce que tu avais pensé. Chaque champ correspondrait à une info, ce qui évite de retaper tes intitulées à chaque fois. Ce plugin me semble pas mal pour çà.


    Tu peu aller sur le Wiki pour voir si un autre plugin te conviendrai mais je pense que c'est le mieux pour l'instant.
  • danielsandanielsan Member
    avril 2013 modifié
    ayant déjà fait ce genre de fiche, le plugin sus-cité a été créé pour l'occasion ]:D
    Enjoy
  • PatrikGCPatrikGC Member
    avril 2013 modifié
    Bonjour


    ChampArt est un bon plugin qui fonctionne et qui correspond assez bien à ce que je recherche, quant au résultat final. Félicitations à DanielSan pour celui-ci. Au fait, le suffixe "san" du pseudo doit qqchose au japonais ? ;)


    Néanmoins, je continue à creuser dans la direction des champs écrits directement dans le contenu, et non dans des zones de saisie séparées.


    Bonne journée :)
  • merci :P
    PatrikGC a écrit:
    Au fait, le suffixe "san" du pseudo doit qqchose au japonais ? ;)
    oui : lustrer, frotter, ... avis aux amateurs ]:D
  • Bonjour

    A mon humble avis que je partage sans réserve :D, le plugin ChampArt devrait être intégré directement dans Pluxml ; il offre une bonne souplesse et tire ce CMS vers le haut. Peu d'autres CMS de la même catégorie proposent ce genre de champ personnalisé.

    Pour l'instant, mon petit blog stagne un peu car je me suis mis à écrire un petit moteur de CMS, afin de tester certaines idées. Quelque part, ce mini moteur est une sorte de ChampArt généralisé, avec un soupçon de logique POO dedans :) Après, j'évaluerai le fait d'utiliser ChampArt ou de me fabriquer un plugin selon mon idée de base.

    Bon we !
  • Merci ;)
    J'avoue n'y rien comprendre à la POO ]:D
  • Bonjour
    J'essaye de mettre en place un petit plugin dont le but est de scanner le "content" d'un article afin qu'une regexp fasse un chercher-remplacer mais pour l'instant, je bloque... La fonction $plxShow->artContent() affiche le contenu, or je désire le manipuler avant affichage.
    Suite à diverses recherches, j'ai déniché la fonction $plxShow->plxMotor->plxRecord_arts->f('xyz') dont je n'arrive pas à trouver la doc.
    Quelqu'un aurait une solution svp ?
  • bonjour,
    une piste que j'ai pratiqué (pas sur pluXml), tu peux te faire un système genre bbcode, tu insères un certain code dans ton article (une syntaxe à toi, à connaitre, par exemple <?php #--#information à traiter ?>) et tu les scrutes pour les mettre en forme avant l'affichage, dans le header.php.
    un commentaire en php te permet de ne jamais les faire afficher dans le code html
    c'est rustique, mais peut-être plus simple que de pratiquer POO.
    sinon, faut ouvrir pour regarder les fonctions des diverses librairies /core/lib/*.php mais ça demande un investissement pour comprendre tout çà
  • danielsandanielsan Member
    avril 2014 modifié
    il n'y a pas de doc sur ça ... mais tu peux afficher le contenu du tableau pour voir où taper :D
    [== PHP ==]
    print_r($plxShow->plxMotor->plxRecord_arts);
    $content = $plxShow->plxMotor->plxRecord_arts->f('content');
    $chapo = $plxShow->plxMotor->plxRecord_arts->f('chapo');
    
  • Merci pour cette réponse.
    C'est un peu la piste que je souhaite explorer, mais il me faut bien la syntaxe qui me permette de mettre mon nez dans le content d'un article.
    J'ai des doutes quant à mettre un appel PHP dans un texte stocké dans un fichier XML...
  • je parle de récuperer des codes propres à toi, APRES que pluXml ait fait le travail d'extraction, via un script dans le template, AVANT affichage
    je dis pas que c'est propre, mais fonctionnel.
    PatrikGC a écrit:
    J'ai des doutes quant à mettre un appel PHP dans un texte stocké dans un fichier XML...
    exact, php ne sera pas exécuté dans un article, donc le mettre dans le commentaire php ne sert à rien.
    par contre, tu peux le récupérer par un script php que tu mets dans ton template, donc il s'affichera ce que tu veux faire voir.
  • En effet, ce n'est pas ultra propre...
    De plus, il faut aller modifier tous les templates utilisés.
    Mais ça reste néanmoins jouable...
    Je pense d'un plugin hook serait une solution + adéquate :)
  • je pense que tu es passé à côté de mon message ...
  • Ah oui en effet, au vu de l'heure, nous avons écrit nos billets quasiment en même temps...
    Je vais aller tester ça au plus vite.
    Merci Danielsan :)

    La fonction que tu proposes est en lecture.
    Une fois mon traitement fini, je réinjecte par quelle fonction mon texte modifié afin que + tard la fonction artContent puisse rester utilisable dans un template ?
  • si ce que tu veux faire est ce que tu expliques en début du sujet,
    utilise champArt va, il est fait pour ça et tu te prendras moins là tête
  • Et on peut mettre les champs remplis avec ChampArt dans le corps du texte de l'article sans devoir trafiquer le template ?
  • danielsandanielsan Member
    avril 2014 modifié
    suffit d'appeler le plugin et le nom du champ en paramètre, d'une manière aussi simple que l'appel du chapo/contenu/titre/Etc.

    Extrait de l'aide :

    Pour afficher sur votre site la valeur de votre champ:
    [== PHP ==]
    <?php eval($plxShow->callHook('champArt', 'monchamp')); ?>
    

    Vous pouvez aussi récupérer cette valeur sans l'afficher ( utile pour faire des tests etc ... ), pour cela rajoutez _R à la fin du paramètre: ex:
    [== PHP ==]
    <?php $monchamp = $plxShow->callHook('champArt', 'monchamp_R')); ?>
    

    Un exemple d'application: si la valeur existe, j'affiche du texte:
    [== PHP ==]
    <?php
    $monchamp = $plxShow->callHook('champArt', 'monchamp_R'));
    if($monchamp!="") {
    echo "il existe une valeur";
    }
    ?>
    
    Enfin, si vous souhaitez afficher votre valeur précédée de son label, rajoutez _L à la fin du paramètre: ex:
    [== PHP ==]
    <?php eval($plxShow->callHook('champArt', 'monchamp_L')); ?>
    
    Cela affichera:
    monlabel : ma valeur


    Tu peux appeler les champs dans les pages article, home, catégorie, tags, archive ...
    Pas de traficotage spécifique, juste un appel du plugin

    Tu crées un groupe de champ "fiche jeux" avec autant de champs que tu as besoin.
    Dans l'édition d'un article tu retrouveras tous tes champs dans un cadre correspondant à "Fiche jeux"
  • Et où dois-je écrire le code : <?php eval($plxShow->callHook('champArt', 'monchamp')); ?>
    J'imaginais plutôt qqchose comme [ChampArt monChamp] pour afficher le contenu du champ.

    Ex :
    Dans ChampArt : ville=Lille
    Dans l'article : Nous habitons à [ChampArt ville] depuis 5 ans.
    A l'écran : Nous habitons à Lille depuis 5 ans.
  • danielsandanielsan Member
    avril 2014 modifié
    dans le template article, là où tu veux que ça s'affiche, tu écris
    [== PHP ==]
    <?php
    $ville = $plxShow->callHook('champArt', 'ville_R'));
    if($ville!="") {
    echo "Nous habitons à ".$ville." depuis 5 ans";
    }
    ?>
    
  • Oui, ça fonctionne
    mais je cherche à afficher les infos des champs sans devoir aller mettre du code PHP dans le template.
    D'où mon désir de fabriquer un plugin utilisant les RegExps
  • qu'est-ce qui gène dans l'ajout de script dans le template ?
    je ne comprends pas très bien ce que tu veux faire là ... tu veux écrire une fiche dans le "content" de l'article et via un plugin parser ce contenu afin d'extraire les données et reformater le contenu pour l'afficher sans changer le template ..?
    y'a un truc qui m'échappe ...
  • Perso, ça ne me dérange pas trop.
    Mais je rechch à mettre qqchose d'assez simple.
    Mon but : faire en sorte que des "champs" puissent s'afficher dans le "content" afin de normaliser au mieux la présentation des pages.
    Peu importe si les champs soient dans le "content" ou externes à celui-ci.
  • si tu veux normaliser l'affichage des pages, alors le mieux est de séparer les types de contenu, donc l'utilisation de champs spécifiques.

    De plus, rien ne t'empêche de créer une catégorie "fiche", avec un template spécifique qui n'affiche que les champs concernant la fiche ... l'avantage de séparer les données et que tu peux les exploiter à ta guise (genre générer un catalogue PDF ;) )
  • Le fameux MVC :)
    Mais voila, il n'y a pas vraiment un seul template rigide.
    Et je rechch une solution assez souple...
  • danielsandanielsan Member
    avril 2014 modifié
    t'as toutes les infos pour faire ton choix, y compris la solution la plus souple :D
  • Pas tout à fait :)
    Il me manque comment réinjecter un texte dans le content...
  • désolé mais je comprends rien à ce que tu fais ... ni ce que tu veux faire.
    Je pense que tu cherches plutôt à complexifier la chose, même en cherchant une solution souple, simple et efficace.

    Créer des champs personnalisés pour les réinjecter dans le "content" ... autant directement écrire dans le content et tu encadre tes données d'une balise pour la retrouver avec le CSS ...
  • Je vais essayer d'expliquer les choses.
    Imaginons la fiche suivante écrite ainsi :

    Joueurs:2
    Durée:2h
    Matériel:xx, yy, zz
    Comment jouer:
    Blabla blabla...

    Je souhaite la métamorphoser automatiquement avec des regexps afin d'obtenir qqchose comme :

    Joueurs: (2 petits bonhommes)
    Durée: (une horloge avec l'indication 2h)
    Matériel:xx, yy, zz (sous forme de liste)


    Comment jouer (titre avec filet bas)

    Blabla blabla...

    On écrit un texte d'une certaine façon et il est formaté, sachant qu'il y a divers formatages possibles. Donc on ne peut pas tjrs passer par un template figé.
Connectez-vous ou Inscrivez-vous pour répondre.