Création de plugin, erreurs.

DrakenDraken Member
Bonjour,

Je cherche à créer un plugin pour joindre un fichier à un article.
Dans la même idée que l'image d'accroche je l'ai donc repris comme base.

Mon plugin se charge bien, j'ai bien compris le système de hooks.

Mais j'ai un problèmes le gestionnaire des médias ne s'ouvre pas.

Voici mon code :
[== PHP ==]
<?php
class attachedFile extends plxPlugin {

	public function __construct($default_lang){
		parent::__construct($default_lang);
		//Ajout des hooks
		$this->addHook('AdminArticleContent','AdminArticleContent');
		$this->addHook('AdminArticlePreview','AdminArticlePreview');
		$this->addHook('AdminArticlePostData','AdminArticlePostData');
		$this->addHook('AdminArticleParseData','AdminArticleParseData');
		$this->addHook('AdminArticleInitData','AdminArticleInitData');
	}

	public function AdminArticlePreview(){
		echo "<?php <\$art['attached_file'] = \$_POST['attached_file'];?>";
	}

	public function AdminArticlePostData(){
		echo "<?php \$attached_file = \$_POST['attached_file']?>";
	}

	public function AdminArticleParseData(){
		echo "<?php \$attached_file = \$result['attached_file']?>";
	}

	public function AdminArticleInitData(){
		echo "<?php \$attached_file = ''?>";
	}

	public function AdminArticleContent(){
		echo '<div class="grid gridthumb">
				<div class="col sml-12">
					<label for="attached_file">
						' . $this->getLang("L_ATTACHED_FILE") . '&nbsp;:&nbsp;
						<a title="' . $this->getLang("L_ATTACHED_FILE_SELECTION") . '" id="toggler_attached_file" href="javascript:void(0)" onclick="mediasManager.openPopup("attached_file", true)" style="outline:none; text-decoration: none">+</a>
					</label>
					<?php plxUtils::printInput("attached_file",plxUtils::strCheck($attached_file),"text","255-255",false,"full-width"); ?>
				</div>
			</div>';
	}
}
?>

Réponses

  • il faut échapper les guillemets dans les valeurs d'attributs comme ça :
    onclick="mediasManager.openPopup(&quot;attached_file&quot;, true)"
    
    avec cette modification le gestionnaire de fichier s'ouvre.
    par contre la sélection du fichier ne fonctionne pas encore mais pour ça je vous laisse continuer ;)
  • Merci !
    J'ai trouver la suite de mes erreurs (id_attached_file entre autres).
    Je viens de finir ma premier version.

    Par contre j'ai du ajouter une fonction dans class.plx.show.php pour afficher le lien dans un article.
    Car je n'ai pas trouver de hook pouvant faire cela... (Il est possible que j'ai mal chercher, mais dans ce de plx show je n'ai rien trouver qui y ressemble de près ou de loin)
    Si vous avez un conseil pour changer cela.
    Je pourrez le publier si une alternative est trouver.
  • vous souhaitez afficher ce lien sur une page publique qui présente un article ?
    pour cela il vaut mieux faire des modifications dans le thème que ce soit dans le modèle par défaut de l'article ou avec un modèle supplémentaire

    montrez-nous ce que vous avez modifié dans plx.show ça pourra nous aider à mieux vous aider
  • DrakenDraken Member
    août 2016 modifié
    J'ai ajouter une méthode du même type que plxshow->artThumbnail();
    [== Indéfini ==]
    	public function attachedFile($format='<ul><li><a href="#file_url">#file_url</a></li></ul>', $echo=true) {
    
    		$fileUrl = $this->plxMotor->plxRecord_arts->f('attached_file');
    		if($fileUrl) {
    			$row = str_replace('#file_url', $this->plxMotor->urlRewrite($fileUrl), $format);
    			if($echo)
    				echo $row;
    			else
    				return $row;
    		} else {
    			if(!$echo) return false;
    		}
    	}
    

    Après l'utilisation ce fait bien depuis le thème.
Connectez-vous ou Inscrivez-vous pour répondre.