Exemple du Guide du Dév

Je viens de reprendre l'exemple du guide du dév pour étendre mes catégories mais le nouveau champs ne s'enregistre pas dans le xml.
<?php

class plxNewCatField extends plxPlugin {

    public function __construct($default_lang) {
# appel du constructeur de la classe plxPlugin (obligatoire)
parent::__construct($default_lang);
# Ajoute des hooks
	$this->addHook('plxAdminEditCategoriesNew','plxAdminEditCategoriesNew');
	$this->addHook('plxAdminEditCategoriesUpdate','plxAdminEditCategoriesUpdate');
	$this->addHook('plxAdminEditCategoriesXml','plxAdminEditCategoriesXml');
	$this->addHook('plxMotorGetCategories','plxMotorGetCategories');
	$this->addHook('plxAdminEditCategory','plxAdminEditCategory');
	$this->addHook('AdminCategory','AdminCategory');
}
public function plxAdminEditCategoriesNew() {
	echo "<?php \$this->aCats[\$content['new_catid']]['urlcampagne']=''; ?>";
}
public function plxAdminEditCategoriesUpdate() {
	echo "<?php \$this->aCats[\$cat_id]['urlcampagne']=(isset(\$this->aCats[\$cat_id]['urlcampagne'])?\$this->aCats[\$cat_id]['urlcampagne']:'') ?>";
}
public function plxAdminEditCategoriesXml() {
	echo "<?php \$xml .= '<urlcampagne><![CDATA['.plxUtils::cdataCheck(\$cat['urlcampagne']).']]></urlcampagne>'; ?>";
}
public function plxMotorGetCategories() {
	echo "<?php \$this->aCats[\$number]['urlcampagne'] = isset(\$iTags['urlcampagne'][\$i])?\$values[\$iTags['urlcampagne'][\$i]]['value']:''; ?>";
}
public function plxAdminEditCategory() {
	echo "<?php \$this->aCats[\$content['id']]['urlcampagne'] = trim(\$content['urlcampagne']); ?>";
}
public function AdminCategory() {
$string = <<<END
	<?php
		echo '<p class="field"><label for="id_urlcampagne">URL de campagne&nbsp;:</label></p>';
		plxUtils::printInput('urlcampagne', plxUtils::strCheck(\$plxAdmin->aCats[\$id]['urlcampagne']), 'text', '50-255');
	?>
END;
echo $string;
}
}
?>

à moins qu'une erreur se soit glissée dans le code.

Avez vous une idée ?

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    voilà le code qui fonctionne
    <?php
    
    class plxNewCatField extends plxPlugin {
    
        public function __construct($default_lang) {
    		# appel du constructeur de la classe plxPlugin (obligatoire)
    		parent::__construct($default_lang);
    		# Ajoute des hooks
    		$this->addHook('plxAdminEditCategoriesNew','plxAdminEditCategoriesNew');
    		$this->addHook('plxAdminEditCategoriesUpdate','plxAdminEditCategoriesUpdate');
    		$this->addHook('plxAdminEditCategoriesXml','plxAdminEditCategoriesXml');
    		$this->addHook('plxMotorGetCategories','plxMotorGetCategories');
    		$this->addHook('plxAdminEditCategorie','plxAdminEditCategorie');
    		$this->addHook('AdminCategory','AdminCategory');
    	}
    
    	public function plxAdminEditCategorie() {
    		echo "<?php \$this->aCats[\$content['id']]['urlcampagne'] = trim(\$content['urlcampagne']); ?>";
    	}
    	public function plxAdminEditCategoriesNew() {
    		echo "<?php \$this->aCats[\$cat_id]['urlcampagne'] = ''; ?>";
    	}
    	public function plxAdminEditCategoriesUpdate() {
    		echo "<?php	\$this->aCats[\$cat_id]['urlcampagne'] = (isset(\$this->aCats[\$cat_id]['urlcampagne'])?\$this->aCats[\$cat_id]['urlcampagne']:''); ?>";
    	}
    	public function plxAdminEditCategoriesXml() {
    		echo "<?php \$xml .= '<urlcampagne><![CDATA['.plxUtils::cdataCheck(\$cat['urlcampagne']).']]></urlcampagne>'; ?>";
    	}
    	public function plxMotorGetCategories() {
    		echo "<?php \$this->aCats[\$number]['urlcampagne']=plxUtils::getValue(\$values[\$iTags['urlcampagne'][\$i]]['value']); ?>";
    	}
    	public function AdminCategory() {
    		$string = <<<END
    	<?php
    		echo '<p class="field"><label for="id_urlcampagne">URL de campagne&nbsp;:</label></p>';
    		plxUtils::printInput('urlcampagne', plxUtils::strCheck(\$plxAdmin->aCats[\$id]['urlcampagne']), 'text', '50-255');
    	?>
    END;
    	echo $string;
    	}
    }
    ?>
    

    L'erreur vient du nom du hook. ce n'est pas plxAdminEditCategory mais plxAdminEditCategorie

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • merci encore, tu es une machine. Cela dit il faudra corriger le Guide du dev du coup ;)
  • StéphaneStéphane Member, Former PluXml Project Manager
    c'est noté

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

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