[Plugin] ChamPlus ou comment rajouter des champs

2

Réponses

  • Bonjour,

    Avec une nouvelle installation pluxml et ChamPlus je n'y arrive pas.
    J'ai bien coché la case et renseigné les champs.
    Dans les xml des articles j'ai bien le champs supplémentaire "lien" dans mon cas.
    Cette page (static.php) fonctionne sauf le champs lien :
    [== PHP ==]
    
    <?php include(dirname(__FILE__).'/header.php'); ?>
    
    	<main class="main grid" role="main">
    
    		<section class="col sml-12 med-8">
    
    			<article class="article static" role="article" id="static-page-<?php echo $plxShow->staticId(); ?>">
    
    				<header>
    					<h1>
    						<?php $plxShow->staticTitle(); ?>
    					</h1>
    				</header>
    
    				<section>
    					<?php $plxShow->staticContent(); ?>
    					<?php $plxShow->lastArtList('<a href=#art_url>
    	<h2>#art_title</h2>
    	<p>#art_chapo(150)</p>
    	<h1>#cps_lien</h1>
    	</a>',0,'1','','sort');
    	 ?>
    
    				</section>
    
    			</article>
    
    		</section>
    
    		<?php include(dirname(__FILE__).'/sidebar.php'); ?>
    
    	</main>
    
    <?php include(dirname(__FILE__).'/footer.php'); ?>
    
    


    Cette page ne fonctionne pas, il y a une erreur "public" :

    Parse error: syntax error, unexpected 'public' (T_PUBLIC) in blablabla on line 19
    [== PHP ==]
    <?php include(dirname(__FILE__).'/header.php'); ?>
    
    	<main class="main grid" role="main">
    
    		<section class="col sml-12 med-8">
    
    			<article class="article static" role="article" id="static-page-<?php echo $plxShow->staticId(); ?>">
    
    				<header>
    					<h1>
    						<?php $plxShow->staticTitle(); ?>
    					</h1>
    				</header>
    
    				<section>
    					<?php $plxShow->staticContent(); ?>
    
    	<?php $plxShow->lastArtList('<li>#cps_lien <a class="#art_status" href="#art_url">#art_title</a></li>'."\n"); ?>
    				</section>
    
    			</article>
    
    		</section>
    
    		<?php include(dirname(__FILE__).'/sidebar.php'); ?>
    
    	</main>
    
    <?php include(dirname(__FILE__).'/footer.php'); ?>
    
    
    

    Merci
  • @jeronicoz,

    Il me semble que dans un échange précèdent, tu m'avais dit utiliser PHP 5.4.
    C'est toujours le cas ?
  • bazooka07bazooka07 Membre
    janvier 2016 modifié
    @jeronicoz,

    Effectivement, il y avait une petite erreur de frappe qui empêchait chamPlus de fonctionner correctement avec #art_chapo(150).

    J'ai mis une nouvelle version en ligne (0.77) - Voir le lien pour télécharger en début du fil de discussion.
    J'ai fait les essais sous Debian/Wheezy et PHP 5.4

    N'oublie pas de corriger tes chaines de format. (valeur de href entre guillemets, h1 remplacé par h3, ...)
    A++
  • jeronicozjeronicoz Membre
    janvier 2016 modifié
    Bonjour @bazooka07

    Eurêka, ça fonctionne, les ChamPlus sont dans la boucle.
    Pour info, je suis maintenant en PHP Version 5.5.26 et j'ai essayé en 5.6.10, ça fontionne aussi.

    Par contre (et oui ça serait trop beau sinon) j'ai remarqué un truc qui est bizarre.
    Je vous en fait part car je trouve ça déroutant :

    J'ai ajouté deux champs, un lien et une illustration et j'ai remarqué qu'un champs dont le contenu est une image est interprété différemment :
    Au départ, j'avais mis "lien" en type ligne et "illustration" en type média
    Idem quand j'ai mis illustration en type ligne

    Dans mon résultat j'ai un problème car "illustration" ne fonctionnait pas, et à la place d'avoir
    <img src="chemin/monillustration.jpg"/> j'ai <img src=<img src="chemin/monillustration.jpg" alt="illustration" title="monillustration.jpg" />/>

    Des éléments : src="" alt"" et title="" sont crée automatiquement quand une image est détectée ?
    J'ai contourné ce problème comme cela :
    <img src="cps_illustration" /> en #cps_illustration
    [== PHP ==]
    <?php include(dirname(__FILE__).'/header.php'); ?>
    
    	<main class="main grid" role="main">
    
    		<section class="col sml-12 med-8">
    
    			<article class="article static" role="article" id="static-page-<?php echo $plxShow->staticId(); ?>">
    
    				<header>
    					<h1>
    						<?php $plxShow->staticTitle(); ?>
    					</h1>
    				</header>
    
    				<section>
    					<?php $plxShow->staticContent(); ?>
    					<?php $plxShow->lastArtList('<a href=#art_url>
    	<h2>#art_title</h2>
            #cps_illustration
    	<p>#art_chapo(150)</p>
    	<a href=#cps_lien>Lien
    	</a>',0,'1','','sort');
    	 ?>
    
    				</section>
    
    			</article>
    
    		</section>
    
    		<?php include(dirname(__FILE__).'/sidebar.php'); ?>
    
    	</main>
    
    <?php include(dirname(__FILE__).'/footer.php'); ?>
    

    Peut-on contourner ce "balisage" des images ?
    Merci

    Jeronicoz
  • bazooka07bazooka07 Membre
    janvier 2016 modifié
    Non, ce n'est pas un truc bizarre.
    Le plugin est codé pour renseigner automatiquement les attributs alt et title dans la balise img qu'il crée, quand le champ est déclaré comme média.
    C'est expliqué quelque part dans l'aide.
    On doit normalement renseigné l'attribut alt (alternate text ou texte alternatif) qui s'affichera si le visiteur ne parvient pas à afficher l'image. De plus cela améliore le référencement.
    Note qu'il en fait plus que toi !!
    Pour l'instant, je ne modifie pas cette fonctionnalité.

    A++
  • @bazooka07

    Me voilà rassuré !
    Par contre si j'ai bien lu l'aide les attributs ne sont déclarés que si le champ est de type média et si la valeur du champ finit par l'extension d'un fichier image, comme "jpg", "jpeg", "png" ou "gif".
    Donc si je suis en type ligne ou bloc-texte même si la valeur du champ finit par l'extension d'un fichier image les attributs ne devraient pas être déclarés ?
    Merci

    Jeronicoz
  • Oui et non.
    C'est que j'avais prévu pour le hook chamPlus qui permet de n'afficher qu'un seul champ.
    Par contre, j'ai zappé le truc pour lastArtPlus. Je vais corriger cela dès que possible.
  • bazooka07bazooka07 Membre
    janvier 2016 modifié
    Bonjour,

    Mise en ligne de la version 0.80 du plugin avec les améliorations suivantes :
    Prise en compte du nouveau hook plxShowLastArtListContent dans la version 5.5 de Pluxml
    possibilité de désactiver l'intégration automatique des médias dans la chaine de format de la fonction $plxShow->lastArtList($format).
    Si on a créé un champ de type media, avec comme nom vignette par exemple, et dont le contenu dans un article est égal à data/medias/mon_fichier.jpg et qu'on peut obtenir la taille de l'image, alors l'appel de la fonction dans le template :
    [== PHP ==]
    <?php $plxShow->lastArtList('#cps_vignette'); ?>
    
    donnera le rendu suivant dans la page HTML généré :
    [== HTML ==]
    <img src="data/medias/mon_fichier.jpg" height="xxxx" width="yyyy" 
      title="Mon_fichier" alt="vignette" />
    
  • Bonjour,

    Avec la version 0.80, j'ai une disparition des #art_chapo et des #art_content...
    En revenant à la version 0.77 les contenus apparaissent.
    Je reviens sur mon post précédent, cela fonctionne en local, php 5.6.10 mais pas sur le serveur OVH qui est en php 5.6.15
    @bazooka07, tu parles de la version 5.5 de pluxml, c'est une béta ?
    Merci
  • @jeronicoz,

    Je vais vérifier cela.
    #art_chapo et #art_content utilisent un paramètre optionnel de longueur entre parenthèses

    La version 5.5 est la version en cours de développement.
    Comme pour Debian, elle sortira quand elle sera prête.
    Pas mal de gens commencent à jouer mais il faut savoir qu'elle bouge fréquemment. Il faut aller sur Github si tu veux jouer.
  • @jeronicoz,

    Effectivement il y avait la même erreur de frappe que précèdemment. J'ai dû me mélanger un peu dans les versions.
    Nouvelle version qui corrige le bug :0.81
    J'ai fait un rapide test chez OVH. A priori pas de souci.
  • @bazooka07,

    Tout fonctionne maintenant, le problème d'ovh venait de la nouvelle politique de configuration de la version php, le .ovhconfig à la racine court-circuite les versions demandées dans les .htaccess des dossiers.
    Bravo et merci pour ta réactivité.
  • bonjour et merci pour ce plug-in,
    je me demandais : il n'est pas possible d'éditer du HTML dans un champ ajouté avec ChamPlus ? C'est uniquement pour du texte brut ou une image ?
  • RingRing Membre
    Bonjour Bazooka07,

    Merci pour ce plugin.
    J'ai créé 2 champs supplémentaires pour les articles : Sous-titre et Préface.
    Après avoir investigué pendant 3 heures parce qu'il ne fonctionnait pas, j'ai relevé 2 "bugs" dans l'aide pour la mise en place du plugin :

    A la place de :
    [== PHP ==]
    <p>
    	Pour afficher des champs supplémentaire sur votre site, utiliser le hook champlus dans vos gabarits (<i>template</i>) article.php ou static.php ou categorie.php comme ci-dessous. Vous pouvez bien sûr dupliquer et renommer vos gabarits.
    </p>
    <pre><code><?php eval($plxShow->callHook('champlus', $params); ?>
    </code></pre>
    <p>
    
    

    Il manque une fermeture de parenthèse à la fonction eval et, encore plus vicieux, le hook s'appelle chamPlus et non champlus !
    Ce qui donne :
    [== PHP ==]
    <p>
    	Pour afficher des champs supplémentaires sur votre site, utiliser le hook chamPlus dans vos gabarits (<i>template</i>) article.php ou static.php ou categorie.php comme ci-dessous. Vous pouvez bien sûr dupliquer et renommer vos gabarits.
    </p>
    <pre><code><?php eval($plxShow->callHook('chamPlus', $params)); ?>
    </code></pre>
    <p>
    
    

    Autrement, j'ai du "bidouiller" un peu pour la présentation des champs dans l'article de admin.

    En effet, 2 cas (pour les articles car je n'ai pas abordé ce plugin pour les pages statics) :
    - le type de champ est une ligne => le champ est placé dans la sidebar (champ court)
    - le champ est du type textarea => le champ est placé en bas du formulaire (après les vignettes)

    Or, logiquement, j'ai voulu replacer mes nouveaux champs dans le bon ordre comme ceci :
    * Titre de l'article
    * Sous-titre de l'article
    * Préface de l'article
    * Chapô
    * Article

    Comme c'est le plugin qui modifie le formulaire admin/article et ne sachant pas comment le modifier, je suis allé directement dans le fichier admin/article faire mes modifs. Le seul problème rencontré est dans la déclaration de class="full-width" que je n'ai pas pu reconstituer pour le champ sous-titre, mais c'est du détail.

    Je ne sais pas si ma remarque est pertinente et si elle pose problème pour des modifs ultérieures du plugin. En tous cas, c'est un plugin très utile.

    Ma config :
    - PluXml 5.5 Beta 3
    - Plucss
    - Hébergement OVH, PHP 5.6
  • esandoesando Membre
    merci @ring et @bazooka07

    j'ai pu m'en sortir avec le code modifié issu de l'aide en ligne :
    [== php==]
    <?php
    $params = array(
      'price',
      'le #label# est à <strong>#value#</strong> !'
    );
    eval($plxShow->callHook('chamPlus', $params));
    ?>
    

    mais comment faire pour ne rien afficher si la #value# n'est pas renseignée ?
  • Est-il possible d'avoir un champ bloc avec l'éditeur ckeditor pour gérer les retours chariot par exemple ?
  • bazooka07bazooka07 Membre
    avril 2016 modifié
    Nouvelle version du plugin 0.85 :

    @esando,
    Pour répondre à ta demande, j'ai modifié le plugin pour le cas où le champ vide.
    Par défaut, on affiche rien. J'ai ajouté la possibilité de passer une chaine de format comme 3ème paramètre à utiliser quand le champ est vide. Ce paramètre n'est pas obligatoire.
    [== PHP ==]
    <?php
    $params = array(
      'price',
      'le #label# est à <strong>#value#</strong> !',
      'le #label# est vide'
    );
    eval($plxShow->callHook('chamPlus', $params));
    ?>
    

    @Ring,
    Effectivement, il y a quelques coquilles dans l'aide.
    Dans la configuration du plugin, j'ai ajouté la possiblité pour les champs d'article de type <input type="text" .../> de les placer soit dans la side bar, soit dans le contenu principal. (voir liste déroulante pour chaque champ dans le panneau de config.
    En ce qui concerne l'ordre des champs, la méthode employée par Pluxml pour créer l'interface de saisie d'un article ne permet pas de le modifier. Il faut modifier à la main le fichier article.php comme tu l'as fait.
    Cela sera possible quand Pluxml acceptera de reprendre le principe que j'emploie dans la plupart des panneaux de config de mes plugins. A savoir une liste de champs avec leurs types qu'on parcoure pour créer l'affichage.

    @esando,
    Je ne connais pas Ckeditor. Il faut regarder où changer le query selector
    config de ckeditor la librairie, pas le plugin
    C'est comme cela que marche tinyMCE en tout cas

    Merci pour vos retours
  • esandoesando Membre
    avril 2016 modifié
    Je vais de ce pas mettre à jour ChamPlus,
    puis regarder Ckeditor et TinyMCE alors.

    Autre question pour les champs,
    puis-je tester en <?php if(...) ?> le contenu d'un champlus ?
    Ceci pour afficher une mise en page et un codage plus particulier qui serait, donc, induit par la présence ou par l'absence (merci!) d'un contenu champlus spécifique ?
  • Tu peux obtenir la valeur d'un chamPlus comme ceci :
    [== PHP ==]
    <?php
    $params = array( 'price', true);
    $a = $plxShow->callHook('chamPlus', $params);
    ?>
    
  • RingRing Membre
    Merci bazooka07 pour les modifs.
    Je vais tester le nouveau plugin dès que j'aurai un peu de temps.
  • Cool !

    Il me semble que la nouvelle url du download soit cassée :
    http://kazimentou.fr/pluxml-plugins2/plugins/chamPlus-0_85.zip
  • Pour prendre la dernière version du plugin, c'est par là :
    http://kazimentou.fr/pluxml-plugins2/index.php?plugin=chamPlus&download

    Il y a un bug sur mon gestionnaire de plugins. Je verrais cela ce week-end
    A++
  • :( archive à 0 octet
  • Je n'ai pas corrigé le problème de mise à jour du catalogue mais tu peux télécharger la dernière version du plugin.
  • :) merci bcp sa fonctionne. Merci pour toutes vos contributions.
  • cpalocpalo Membre
    Bonjour,

    Sur un Pluxml "tout neuf" lorsque j'active le plugin (version 0.86) :

    Warning: array_keys() expects parameter 1 to be array, boolean given in E:\htdocs\nuxitCahue\myPluxml\plugins\chamPlus\chamPlus.php on line 92

    Warning: array_filter() expects parameter 1 to be array, null given in E:\htdocs\nuxitCahue\myPluxml\plugins\chamPlus\chamPlus.php on line 94

    Warning: array_map(): Argument #2 should be an array in E:\htdocs\nuxitCahue\myPluxml\plugins\chamPlus\chamPlus.php on line 95

    Warning: Invalid argument supplied for foreach() in E:\htdocs\nuxitCahue\myPluxml\plugins\chamPlus\config.php on line 168
  • cpalocpalo Membre
    et également un message d'erreur dans TinyMce:

    Notice: Undefined index: cdn in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: article in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: statique in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: comment in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: user in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: codemirror in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: selector in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: styleformats in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: plugins0 in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: plugins1 in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: plugins2 in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: plugins3 in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526

    Notice: Undefined index: plugins4 in E:\htdocs\nuxitCahue\myPluxml\core\lib\class.plx.plugins.php on line 526
  • cpalocpalo Membre
    Je viens de télécharger à nouveau la dernière version de Pluxml, et de refaire une installation neuve et j'ai bien encore ces messages d'erreur.
  • cpalocpalo Membre
    avril 2016 modifié
    Bonsoir,

    Je viens de faire l'installation chez mon hébergeur et le message d'erreur pour TinyMce n'apparait plus. Je ne l'ai donc qu'n local ( j'utilise Xampp). Par contre pour ChamPlus c'est toujours pareil.

    Mise à jour de Xampp et tout est rentré dans l'ordre pour TinyMce en local.
  • cpalo a écrit:
    Bonjour,

    Sur un Pluxml "tout neuf" lorsque j'active le plugin (version 0.86) :

    Warning: array_keys() expects parameter 1 to be array, boolean given in E:\htdocs\nuxitCahue\myPluxml\plugins\chamPlus\chamPlus.php on line 92

    Warning: array_filter() expects parameter 1 to be array, null given in E:\htdocs\nuxitCahue\myPluxml\plugins\chamPlus\chamPlus.php on line 94

    Warning: array_map(): Argument #2 should be an array in E:\htdocs\nuxitCahue\myPluxml\plugins\chamPlus\chamPlus.php on line 95

    Warning: Invalid argument supplied for foreach() in E:\htdocs\nuxitCahue\myPluxml\plugins\chamPlus\config.php on line 168

    Effectivement à l'activation du plugin, PlxPlugins->getParams() renvoie la valeur booléenne false au lieu de renvoyer un tableau vide.
    C'est pris en compte dans la version 0.87 du plugin.
    Warning veut dire avertissement. Ce n'est pas une erreur. Inutile de faire la mise à jour si le plugin est déjà installé

    Merci pour ton retour.

    A++
Connectez-vous ou Inscrivez-vous pour répondre.