Simpleshare : besoin d'un coup de main

cfdevcfdev Member
août 2011 modifié dans Plugins
Bonjour,

je tente de créer mon premier plugin en m'appuyant sur le guide du dev et d'autre plugin.
Mon plugin est super simple, je voudrais afficher une barre de partage style j'aime facebook, googe+1 et tweeter.
J'ai trouver comment faire pour les pages...mais pas les articles :(

Plus embêtant, en local ça à lair de fonctionner...mais pas en ligne ? quelq'un peut me dire ou est l'erreur :)

//
Résolu merci
//

Version complète + aide: Téléchargement v0.3

Réponses

  • danielsandanielsan Member
    août 2011 modifié
    Salut,

    tu as demandé à ton plugin de s'afficher dans "plxShowStaticContent" soit seulement dans les pages statiques.
    Tu pourrais peut-être essayer de créer un hook "simpleshare" et faire appel à ce hook là où tu veux dans ton thème ?

    ton fichier simpleshare.php
    <?php
    class simpleshare extends plxPlugin {
    
    	public function __construct($default_lang) {
    	
    		# appel du constructeur de la classe plxPlugin (obligatoire)
    		parent::__construct($default_lang);
    		
    		# déclaration du hook
            $this->addHook('SimpleShare', 'SimpleShare');
    	}
    	
    		/* 
    	* Traitement du hook ShowInPage
    	*/
        public function SimpleShare() {
    		#start
    		echo "<div id=\"simpleshare\" style=\"padding-top:5px; padding-bottom:5px; clear:both; overflow:hidden;\">";
    		# ajout tweeter
    		echo "<div id=\"tw\" style=\"float:left;\"><a href=\"http://twitter.com/share\" class=\"twitter-share-button\" data-count=\"horizontal\">Tweet</a><script type=\"text/javascript\" src=\"http://platform.twitter.com/widgets.js\"></script></div>";
    		# ajout Google+1
    		echo "<div id=\"g1\" style=\"float:left;\"><script type=\"text/javascript\" src=\"https://apis.google.com/js/plusone.js\"></script><g:plusone size=\"medium\"></g:plusone></div>";
    		# ajout FB
    		echo "<div id=\"fb-root\" style=\"float:left;\"><script src=\"http://connect.facebook.net/en_US/all.js#xfbml=1\"></script><fb:like href=\"\" send=\"false\" layout=\"button_count\" width=\"200\" show_faces=\"true\" font=\"\"></fb:like></div>";
    		# end
    		echo "</div>";
    	}
    	
    }
    ?>
    
    puis sur tes pages tu appelles ce hook
    <?php $plxShow->callHook('SimpleShare'); ?>
    
    en faisant ça, cela s'affiche partout.

    Cordialement,

    _____
    D.San
  • cfdevcfdev Member
    août 2011 modifié
    salut danielsan,

    en effet, ici j'ai utilisé uniquement la fonction pour afficher dans les pages statiques, c'est bon il me faudrait la même technique pour afficher dans les articles maintenant.

    Ta méthode à l'air bien, mais comme c'est un truc vraiment simple, je voudrais que ce soit ready-to-use :D

    Ensuite j'ai un autre soucis en local ca fonctionne, mais en ligne j'ai cette erreur:
    Warning: Cannot modify header information - headers already sent by (output started at /xxx/main/plugins/simpleshare/simpleshare.php:2) in /xxx/main/core/admin/parametres_plugins.php on line 41
    
    une idée ?
  • Question en php d'un novice (c'est déjà arrivé avec un autre plugin) :D
    As-tu des espaces ou des retours de lignes, après ton dernier ?> ? :)
  • cfdevcfdev Member
    Bloody a écrit:
    Question en php d'un novice (c'est déjà arrivé avec un autre plugin) :D
    As-tu des espaces ou des retours de lignes, après ton dernier ?> ? :)
    Ho non je rêve :/ ... juste une histoire de retour de ligne après le ?>... merci Bloody

    Est-ce qu'il existe un "plxShowStaticContent" mais pour les articles ?
  • Lit un peu mieux la réponse de danielsan.

    Je ne pense pas que ton plugin puisse être "ready to use" à 100 % vu qu'on ne peut pas savoir où placer ta barre. Sa position peut varier en fonction du thème utilisé.
  • cfdevcfdev Member
    août 2011 modifié
    Oui effectivement vous avez raison, c'est qd même plus souple, c'est plus simple pour les articles du coup.
    Par contre si je veux afficher ma barre uniquement dans une certaines pages pas dans toutes ? comment je dois m'y prendre, car la fonction:
    <?php $plxShow->callHook('SimpleShare'); ?>
    
    ne s'appel pas dans un contenu ...

    merci
  • hello,

    ton "plugin" marche super bien,
    perso je l'ai placé dans tous les articles du blog ( template article.php )
    et seulement sur la page static accueil car j'ai un template static-home.php ;)

    En gros tu fais un template static-simpleshare.php attribué aux pages sur lesquelles tu souhaites le voir afficher.
    ( dans la création d'article tu peux choisir le modèle de mise en page ).

    Cordialement,

    _____
    D.San
  • cfdevcfdev Member
    danielsan a écrit:
    hello,

    ton "plugin" marche super bien,
    perso je l'ai placé dans tous les articles du blog ( template article.php )
    et seulement sur la page static accueil car j'ai un template static-home.php ;)

    En gros tu fais un template static-simpleshare.php attribué aux pages sur lesquelles tu souhaites le voir afficher.
    ( dans la création d'article tu peux choisir le modèle de mise en page ).

    Cordialement,

    _____
    D.San
    Encore merci danielsan et heureux qu'il te soit utile !!! ;)
  • Ho non je rêve ... juste une histoire de retour de ligne après le ?>... merci Bloody
    Je me suis fait avoir sur 2 plugins. :D Le message d'erreur est impressionnant par rapport au problème réel. :)
  • whitebird a écrit:
    Encore merci danielsan et heureux qu'il te soit utile !!! ;)
    de rien et merci à toi.
    Cependant je l'ai un peu simplifié:
    <?php
    class simpleshare extends plxPlugin {
    
    	public function __construct($default_lang) {
    
    		# appel du constructeur de la classe plxPlugin (obligatoire)
    		parent::__construct($default_lang);
    
    		# déclaration du hook
    	$this->addHook('SimpleShare', 'SimpleShare');
    	}
    
    
    	public function SimpleShare() {
    		echo "<ul id=\"simpleshare\">\n";
    			echo "<li>\n";
    				echo "<a href=\"http://twitter.com/share\" class=\"twitter-share-button\" data-count=\"horizontal\">Tweet</a><script type=\"text/javascript\" src=\"http://platform.twitter.com/widgets.js\"></script>\n";
    			echo "</li>\n";
    			echo "<li>\n";
    				echo "<script type=\"text/javascript\" src=\"https://apis.google.com/js/plusone.js\"></script><g:plusone size=\"medium\"></g:plusone>\n";
    			echo "</li>\n";
    			echo "<li>\n";
    				echo "<script src=\"http://connect.facebook.net/en_US/all.js#xfbml=1\"></script><fb:like href=\"\" send=\"false\" layout=\"button_count\" width=\"200\" show_faces=\"true\" font=\"\"></fb:like>\n";
    			echo "</li>\n";
    		echo "</ul>\n";
    	}
    
    }
    ?>
    
    et sa feuille de style:
    ul#simpleshare li{
    	display: inline;
    	list-style: none;
    }
    
    8)
Connectez-vous ou Inscrivez-vous pour répondre.