[suggestion] hook "action-bar"

danielsandanielsan Member
janvier 2016 modifié dans Discussions générales
hello,

sur la dernière version de pluXml (en tout cas celle en développement),
il y a une bar d'action en haut de la fenêtre d'action :P là où il y a les boutons aperçu/enregistrer/mettre hors-ligne/supprimer
c'est très pratique !

Hors pour le développement des plugins, on ne peut pas aller y mettre les boutons de formulaire ... :(

Pensez-vous qu'il serait utile d'y réfléchir ?

Réponses

  • danielsandanielsan Member
    janvier 2016 modifié
    re,

    pour les pages d'administration des plugins
    j'ai modifié le fichier core/admin/plugin.php pour voir :P

    ligne 23 :
    [== PHP ==]
    echo '
    <div class="inline-form action-bar">
    	<h2>'.plxUtils::strCheck($plugin).'</h2>
    </div>';
    
    deviendrait :
    [== PHP ==]
    # Hook Plugins
    if(eval($plxAdmin->plxPlugins->callHook('actionBarBegin'))) return;
    	echo '
    	<div class="inline-form action-bar">
    		<h2>'.plxUtils::strCheck($plugin).'</h2>
    		<p>'.plxUtils::strCheck($plxPlugin->getInfo('description')).'</p>';
    # Hook Plugins
    if(eval($plxAdmin->plxPlugins->callHook('actionBar'))) return;
    	echo '
    	</div>';
    
    (note : j'ai rajouté une ligne de la description du plugin sous le titre ... )

    puis dans le plugin, déclaration des hooks
    [== PHP ==]
    $this->addHook('actionBarBegin', 'actionBarBegin'); // ajoute le début du formulaire
    $this->addHook('actionBar', 'actionBar'); // ajoute les boutons d'action du formulaire dans la barre d'action
    

    et écriture dans les hooks
    [== PHP ==]
    	/**
    	 * Méthode qui écrit AVANT la barre d'action (pour le token du formulaire et l'ouverture du formulaire)
    	 **/
    	public function actionBarBegin() { // ajoute le début du formulaire
    		if($_GET['p']=='extendTags'){
    			$string ='<?php plxToken::validateFormToken($_POST); ?>'; # Control du token du formulaire
    			echo $string;
    			echo '<form method="POST" id="form_extendTags" action="plugin.php?p=extendTags">'."\n";
    		}
    	}
    
    	/**
    	 * Méthode qui écrit DANS la barre d'action (pour ajouter les boutons d'action)
    	 **/
    	public function actionBar() { // ajoute les boutons d'action du formulaire dans la barre d'action
    		if($_GET['p']=='extendTags'){
    			echo "\t".'<input type="submit" value="Envoyer">'."\n";
    		}
    	}
    
    ça donne ça :
    1xheyz.png

    qu'en pensez-vous ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut

    C'est possible sans hook, suffit d'utiliser la classe css in-action-bar au niveau d'une balise <p> par exemple et le contenu ira tout seul dans la barre d'action
    <p class="in-action-bar">
    	<?php echo plxToken::getTokenPostMethod() ?>
    	<input type="submit" name="submit" value="<?php $plxPlugin->lang('L_SAVE') ?>" />
    </p>
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • danielsandanielsan Member
    janvier 2016 modifié
    oui j'ai vu cela via plxMyContact mais pourquoi utiliser cette technique ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    si tu trouves + plus simple et plus performant.... ;)

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Stéphane a écrit:
    si tu trouves + plus simple et plus performant.... ;)
    ah pour le coup c'est sûr que c'est simple là ! :D
    plus performant, je sais pas, j'étais content de ma technique :lol:
Connectez-vous ou Inscrivez-vous pour répondre.