[PLUGIN] champArt: ajouter, gérer et grouper des champs personnalisés

24

Réponses

  • krockroc Member
    novembre 2012 modifié
    Bonjour,


    Comment faire pour supprimer un champ créé avec ChampArt ?


    D'avance merci !
  • bonsoir, disons que lorsqu'on crée un champ avec champArt, cela rajoute une entrée dans l'article.
    Si le champ est supprimé, l'entrée dans l'article ne sera plus exploitable, donc on peut rajouter/modifier mais pas supprimé.
    Pour forcer la chose, suffit d'aller dans le fichier parameters.xml du plugin, il y a 4 lignes associées à un seul champ. Reste à les supprimer ( faire une copie avant au cas où ... )
  • zakar!zakar! Member
    février 2013 modifié
    Salut Danielsan,

    Je rencontre des soucis moi aussi avec le plugin.

    Si tu n'ajoute aucun champ et que tu fais 'enregistrer', le champ vide ce créer tout de même qui par conséquent, si je veux éditer un champ et que je le sauvegarde, l'édition et bien prise en compte mais en + ca me rajoute un nouveau champ vide.

    Je fait des tests actuellement en localhost.
  • Mon avis personnel

    Ton plugin est certainement efficace et certains CMS comme CmsMs intègre directement dans les articles un champ extra et la possibilité de créer comme le tien d'autres champs extra.

    Le Hic, c'est que dans la doc du plugin il n'y a pas grand chose; on voit pas comment faire ni comment l'utiliser surtout qu'on ne peut pas mettre de code php directement dans ces champs ?
    Comme je le disais avant, j'ai déjà utilisé ces champs extras avec d'autres Cms pour uploader des images ou des vignettes en dynamique ou trier certains articles de catégories.

    Mais ici à part: créer un nouveau champ, je ne vois rien d'autre
    donc moi perso avec pluxml j'ai pas compris et c'est dommage.
  • Re,

    C'est vrai que ce plugin est utile pour rajouter un bloc de content supplémentaire ou éventuellement une image OK.

    Mais est-ce que quelqu'un a une idée pour récupérer le bloc contenu d'un champ d'une autre page sans copier coller le contenu

    Exemple je veux créer des "pages" ou des "articles" dans lesquels j'incluerais un même bloc commun d'infos
    pour ce faire je créerais une page statique avec un champ "extra-infos" et je pourrais récupérer la valeur de ce champ
    <?php eval($plxShow->('ma-page-static001', 'monchamp')); ?>

    si quelqu'un a une idée
  • crée une page static et utilise la fonction staticInclude ou insérer ce bloc en dur dans un template dédié.
  • philou87philou87 Member
    février 2013 modifié
    hello Daniel san

    Oui aprés tout c'est la solution les <include> reviennent à la mode

    Merci à toi
  • Salut,

    Je test ton plugin pour l'intégrer dans un des miens (Static Galerie). Sur la page admin.php de mon plugin je voudrais intégrer un champ libre mais lorsque j'ajoute ce code :
    [== PHP ==]
    $slideJs = $plxShow->callHook('champArt', 'slidejs_R');
    

    en début de fichier j'ai l'erreur :
    [== HTML ==]
    Fatal error: Call to a member function callHook() on a non-object in /www/.../plugins/staticgaleries/admin.php on line 6
    

    Je galère régulièrement avec les appels d'objets suivant ou je me trouve. Est-ce que tu a une idée ?

    J'ai un string de l'array

  • C'est que l'objet $plxShow n'est pas chargé dans ta page admin du plugin. Je pense qu'il faut utiliser $plxMotor->plxPlugins->callHook('champArt', 'slidejs_R') à la place
  • Salut, merci Jerry pour ta bonne réponse. L'appel est bien pris en compte mais maintenant j'ai cette erreur :
    [== PHP ==]
    Fatal error: Call to a member function f() on a non-object in /.../plugins/champArt/champArt.php on line 119
    

    J'ai un string de l'array

  • C'est que Danielsan n'a pas prévu l'utilisation du plugin comme tu le fais. Il aurait fallu qu'il teste l'existence de l'objet avant d'en appeler une autre instance dans sa méthode, ou qu'il lui donne le même nom ($plxMotor à la place de $plxMotor_inst).
    J'ai pas testé mais je pense que ça doit venir de là.


    Si tu veux que ça fonctionne, il faut corriger toi-même le code de Danielsan. Renomme toutes les variables $plxMotor_inst en $plxMotor dans le code du plugin de champArt et dis nous si ça fonctionne.
  • Pourtant DanielSan le dit lui même :
    danielsan a écrit:
    Si vous devez réutiliser ( sans l'afficher ) ce champ pour un autre plugin, vous l'appelez de la sorte ( en rajoutant _R au nom de votre champ ):

    :)

    Je lui ai envoyé un petit message par son site, je vais attendre son retour avant de tout casser dans son plugin.

    J'ai un string de l'array

  • danielsandanielsan Member
    avril 2013 modifié
    ok ... en fait, c'est récupérer la variable grâce à champArt pour l'utiliser dans un autre plugin ... à partir du thème !
    il y a une ligne de code "en dur" pour récupérer une variable via un plugin :
    $mavar = $plxMotor_inst->plxRecord_arts->f('champArt_'.$param);
    
    ou $param est la variable à chercher
    note : adapter $plxMotor_inst au nom du clone de plxMotor donné dans son plugin
  • flipflipflipflip Member
    avril 2013 modifié
    Mince à partir du thème.
    En fait c'est pour le plugin StaticGalerie, pour la création d'une galerie je donne la possibilité d'ajouter un texte comme sur une page statique, l'idée était de pouvoir ajouter des champs paramètre par exemple pour intégrer un slideshow. De cette manière si l'utilisateur se sert d'un éditeur type tinymce par de soucis, par exemple :

    Pour qu'un slideshow définit créé avec le plugin de Stéphane j'utilise l'appel :
    [== PHP ==]
    <?php
    global $plxShow;
    eval($plxShow->callHook("SlideJs")); 
    ?>
    

    Forcement une fois modifié vec Tinymce ça ressemble à plus rien.

    J'ai un string de l'array

  • et avec la ligne de code sus-donnée, ça ne marche pas ?
  • J'ai pas encore eu le temps de tester.

    J'ai un string de l'array

  • DanjoeDanjoe Member
    Bonjour,

    Question idiote sans doute, mais à quel niveau du fichier article doit-on intégrer le code pour faire apparaître les champs?
    J'ai fait des essais mais cela a juste généré une erreur...

    merci pour l'aide.
  • Bonjour,
    Qu'as-tu fait exactement ?
    Cordialement,
  • DanjoeDanjoe Member
    Bonsoir,

    Merci pour la réactivité voilà ma démarche:

    J'ai paramétré le plugin en faisant un choix de titre le champ s'affiche effectivement en mode création.

    Puis comme indiqué dans l'aide j'ai copié le code qui me convient soit :

    <?php
    $monchamp = $plxShow->callHook('Auteurs', 'Auteurs_L'));
    if($monchamp!="") {
    echo "il existe une valeur";
    }
    ?>

    C'est peut-être la modification qui pose problème car ensuite j'ai inséré ce code dans les pages concernées au bas de l'article mais cela provoque une erreur qui empêche l'affichage de la page.
  • et avec un truc du genre
    <?php
    $monchamp = $plxShow->callHook('champArt', 'Auteurs_L'));
    if($monchamp!="") {
    echo "il existe une valeur";
    }
    ?>
    
    ça donne quoi ?
  • aruhunoaruhuno Member
    Bonjour,

    Je me sert depuis pas mal de temps de ce plugin et en suis hyper content.
    Actuellement, je développe un site web sur lequel ce plugin fonctionne bizarrement.

    Je m'explique ; lors de l'ajout d'un champ, celui-ci en créer trois (1 valide et deux vides).
    J'utilise la compression Gzip et la redirection d'URL.

    Merci encore pour ce plugin.
  • bdube30bdube30 Member
    Moi aussi j'ai le même «problème», ou des champs vides sont générés automatiquement.
  • DanjoeDanjoe Member
    Après essai avec le nouveau code j'ai toujours cette erreur :

    Parse error: syntax error, unexpected
  • flipflipflipflip Member
    mai 2013 modifié
    Salut,

    Je viens d'installer le plugin sur un pluxml 5.1.7 que j'ai même pas bricolé ;) et je me retrouve avec un comportement bizarre du plugin. Lorsque j'ajoute le premier champ, après avoir enregistré les valeurs de label et champ ne s'affiche pas dans l'écran d'admin et encore moins dans l'édition d'un article et pourtant j'ai bien une ligne qui s'affiche correspondant à cette entré dans l'admin du plugin.

    J'ai été voir le fichier champArt.xml et voila le contenue :
    <?xml version='1.0' encoding='UTF-8'?>                                      
    <document>
             <parameter name="label1.25" type="string">test</parameter>
             <parameter name="champ1.25" type="string">test</parameter>
             <parameter name="type1.25" type="string">ligne</parameter>
             <parameter name="groupe1.25" type="string">Divers</parameter>
    </document>
    

    Etonnant les 1.25, j'ai viré les .25 et pouf ça marche. Je pense que le problème vient de la ligne
    <?php $nbchamp = sizeof($plxPlugin->getParams())/4; ?>
    
    Dans le fichier config.php du plugin.

    Je pense que tu devrais t'inspirer de la façon de faire dans le core de pluxml, par exemple pour l'ajout/édition d'un user :
    (...)
    		# On récupère le dernier identifiant
    		$a = array_keys($plxAdmin->aUsers);
    		rsort($a);
    	} else {
    		$a['0'] = 0;
    	}
    	$new_userid = str_pad($a['0']+1, 3, "0", STR_PAD_LEFT);
    

    Ou alors
    <?php $nbchamp = floor(sizeof($plxPlugin->getParams())/4); ?>
    

    Maintenant autre problème, la valeur du champ ne s'affiche pas côté front malgré ça présence dans le xml de l'article :(

    J'ai un string de l'array

  • hummm, je me doutais d'un truc comme ça. Je vais regarder ça de plus près.
  • J'ai continué à creuser un peu.
    Dans le fichier champArt.php dans la fonction champArt($param) la ligne :
    echo $plxMotor_inst->plxRecord_arts->f('champArt_'.$param);
    

    Renvoie les valeurs du premier article trouvé et non celui en cours de visualisation. Pour tester j'ai remplacé 'champArt_'.$param par title.

    J'ai un string de l'array

  • euh, j'comprends pas ce que tu veux dire là ...
  • euh, j'comprends pas ce que tu veux dire là ...
    En fait oublie c'est une connerie ce que j'ai dis et bizarrement maintenant ça marche...

    J'ai un string de l'array

  • je me disais aussi ... ]:D
  • Bonjour,

    Je reviens sur mon problème d'affichage de la valeur d'un champ créé par champArt pour un article. Sur mon thème je n'utilise pas la boucle qu'on trouve dans home.php mais lastArt() avec en paramètre le nombre d'article et la catégorie des articles à afficher. En parallèle j'ai créé autant de catégorie que nécessaire.

    Pour un article si je le met dans une de mes catégories la valeur de mon champ ne s'affiche pas, mais si je coche "Page d'accueil" sur l'article la valeur de mon champ s'affiche.

    J'ai un string de l'array

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