Bannières 2

Gérer des campagnes d’information composées d’images ou animations.

Ce plugin permet d’afficher et de gérer des campagnes d’information composées d’images ou animations. La balise #BANNIERE permet de positionner facilement cet objet dans vos squelettes. Plusieurs objets peuvent être placés sur la page et gérés en fonction de leur position (ex. : #BANNIERE{1}). Si vous lui faites passer des informations de localisation, vous pourrez choisir l’objet à afficher en conséquence. Un lien est placé sur les images et le clic est comptabilisé. Enfin, la campagne s’affiche pendant la période que vous définissez dans l’espace privé.

Remerciements

Ce plugin est une réécriture du plugin bannières de François de Montlivault et basé sur le plugin exemple de Matthieu Marcillaud.

Installation

Comme tous les plugins SPIP. Le mieux est de se référer à la documentation officielle.

Les dépendances : plugin bonux, plugin saisies, disponibles sur la zone. Le plugin géographie est nécessaire si on veut placer des bannières « geolocalisées ». Il n’est plus obligatoire depuis la révision 33692.

2 tables sont ajoutées dans la base : spip_bannieres et spip_bannieres_suivi. Le plugin utilise la gestion des documents de spip en y ajoutant un nouvel objets (banniere).

Mise à jour à partir du plugin bannieres_2.0 de FdM :

Ce plugin met à jour la table spip_bannières et ajoute la nouvelle spip_bannieres_suivi. Les bannières qui se trouvent dans le dossier IMG anciennement nommées ban_xx.ext sont renommées en banniereonxx.ext, permettant ainsi un fonctionnement immédiat du plugin.

Les nouvelles bannières utiliseront le système de chargement de documents de spip. Vous pourrez alors supprimer vos bannières situées directement à la racine du dossier IMG (par FTP). Les nouvelles seront stockées dans les sous dossiers en fonction de leur extension (voir système de documents de spip). L’ancien champ alt et ext ne sont plus utiles. Si le champ alt (texte alternatif) contient quelque chose, vous pourrez le supprimer. Une fois vidé, ce champ n’apparaitra plus, vous devrez alors utiliser le champ « titre » associé au document.

Support des campagnes google analytics

Depuis la version 0.29, il est possible d’activer un mode expérimental qui ajoute aux URLs destinations, les paramètres de suivi de campagnes personnalisées de google analytics

Pour activer ce mode, ajouter dans votre fichier config/mes_options.php

define('_BANNIERE_TRACKING_GOOGLE', true);

Les URLs seront du type :

http://www.site.tld/?utm_medium=banner&utm_source=dragon%20rouge&utm_campaign=hiver2012

Avec :

  • utm_medium : pour l’instant toujours banner
  • utm_source : le nom de votre site Spip
  • utm_campaign : le nom de votre campagne

Utilisation Webmaster : la balise #BANNIERE

Il suffit simplement de placer la balise #BANNIERE à l’endroit souhaité dans le squelette. Si vous voulez afficher plusieurs balises différentes dans la page, vous devrez passer l’info dans les paramètres : #BANNIERE{position}, position étant un numéro de 1 à 9 et géré dans l’espace privé.

Vous pouvez aussi passer un paramètre de localisation de la façon suivante : #BANNIERE{position, code_postal, numero_pays}. Ce fonctionnement est basé sur le plugin géographie qui contient les codes postaux, les départements et régions de France, ainsi qu’une liste de pays. numero_pays doit correspondre au numéro du pays de la table spip_geo_pays.

Une noisette avec un cache de 0 est fournie dans le plugin. Cela peut-être utile pour les campagnes de courtes durée ou pour l’affichage aléatoire. Pour l’utiliser il faut remplacer la balise par <INCLURE {fond=inc_banniere}{position=valeur}{code_postal=valeur}{numero_pays=valeur}>.

Utilisation Rédacteur : le modèle <banniere>

Depuis la version 0.26, il est possible d’intégrer la bannière dans le texte d’un article en utilisant le modèle <banniereXX> où XX est le numéro de position de 1 à 9.

Administration

Vous pouvez gérer vos campagnes (ou bannières) depuis l’espace privé. Une liste des campagnes est visible. Vous pouvez trier les colonnes pour faciliter vos recherches. Cette liste vous informe si une campagne est active ou pas et si l’image ou document est présent (c’est l’objet principal :) !).

Pour créer une nouvelle campagne, et si le plugin géographie est présent, il faut choisir son type de diffusion : internationale (pour un affichage par défaut, c’est cette option qu’il faut choisir), nationale, régionale, départementale ou locale.

La recherche se fera bien sûr en partant du local. Si plusieurs campagnes sont configurées avec la même diffusion, un choix aléatoire sera fait par le système.

Les clics sur les bannières de type image sont comptabilisées.

Gestion du Flash

Pour les campagnes Flash, en général le lien est défini dans le fichier swf,
par défaut le plugin ne comptera pas les clics de votre campagne sur ce fichier.

Si vous souhaitez utiliser le compteur de clic et les données des campagnes, il faut programmer votre fichier flash de la façon suivante
Le plugin insère votre flash en transmettant les données de la campagne via le paramètre FlashVars

<object type='application/x-shockwave-flash' data='IMG/swf/pub.swf' id='bandeau' width='400' height='200'>
              <param name='movie' value='IMG/swf/pub.swf' />
              <param name='quality' value='high' />
              <param name='menu' value='false' />          
              <param name='wmode' value='transparent' />
              <param name='FlashVars' value='url_site=http%3A%2F%2F127.0.0.1&amp;action=visit_url&amp;banniere=5&amp;url=http%3A%2F%2Fwww.wikivin.org' />
            </object>

FlashVars transmet les variables : url_site, action, banniere, url que vous pouvez ensuite exploiter dans votre flash

Par exemple en actionscript 3, voici le code d’un bouton qui utilise les variables précédentes

but_callback.addEventListener(MouseEvent.CLICK,actionButCallback); 


function actionButCallback(evt:MouseEvent){ 
 var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
 var url_site =  paramObj["url_site"];
 var action =  paramObj["action"];
 var url  = paramObj["url"];
 var banniere = paramObj["banniere"];
 debug.text = "url:" + url;
 var urlRequest=new URLRequest(url_site+"/spip.php?action="+action+"&banniere="+banniere+"&url="+url); 
 navigateToURL(urlRequest,"_self"); 
}

Voici un exemple de bannière flash (avec son code source) mettant en oeuvre les deux types de boutons : télécharger un exemple de bannière flash

Evolutions...

Quelques améliorations possibles à étudier ou à faire...

  • Utilisation de CFG pour :
    • Utiliser ou pas les bannières localisées (dépendance plugin géographie)
    • Configurer l’utilisation ou pas du suivi des clics (table ou fichier log ou rien)
  • Utiliser les modèles de spip
  • Utiliser le filtre image_reduire
  • Suivi des clics sur les objets multimedia
  • Statistiques de clics ou export des données
  • Revoir les icones et le logo

Discussion

39 discussions

  • 4

    bonjour,
    je suis novice sur spip et le plugin ne marche pas du tout sur ma version Spip 2.1

    que dois-je faire ?

    ya t’il une url pour télécharger et installé ce plugin sur spip 2.1 ?

    merci

    • bonjour,
      je suis novice sur spip et le plugin ne marche pas du tout sur ma version Spip 2.1

      que dois-je faire ?

      Que se passe-t-il ? Qu’est-ce qui a été fait ? Quels symptomes ?... Il faut en dire en peu plus.

      ya t’il une url pour télécharger et installé ce plugin sur spip 2.1 ?

      merci

      Le lien est sur cette même page... pour une installation manuelle.

      Pour savoir comment s’y prendre, il y a un mode d’emploi ici. On trouve également dans cet article des explications pour une installation automatique.

      Jeannot

    • bonjour, merci de me repondre.
      en fait il n’y a aucun symptôme car rien ne ce passe. l’instalation du pligin via l’espace privé « configuration » m’indique « installation ok » mais je n’est rien dans l’onglet « édition »
      et aucun message d’erreur.
      squelette ZPIP
      plugin CFG installé mais peut être que le soucis vient de la car il n’a pas l’air de fonctionner correctement (le seul plugin paramétrable est « contact »)

      malheureusement j’ai des difficultés à vous en dire plus car je maitrise très peut les fonction type : balises, boucles,etc...

      si vous me donnez une adresse mail je peux vous faire passer des copies d’ecran ou meme faire une assistance via « team viewer »

      Merci d’avance

    • Je ne sais pas si c’est le cas, mais lorsque le plugin bandeau est activé, le bouton ne s’affiche pas. Pour l’afficher, il faut ajouter ceci dans plugin.xml :

      <bouton id='bannieres21' parent='bando_edition'>
      	<icone>images/bannieres-16.png</icone>
      	<titre>bannieres</titre>
      	<url>bannieres</url>
      </bouton>

      (il faut aussi rajouter l’image de l’icone, mais ce n’est pas indispensable)

      Sinon, le lien pour l’accès à la page de gestion est le suivant : www.nomdomaine.tld/ecrire/?exec=bannieres

    • Génial merci c’est ce qu’il me manquait !!

      merci pour l’info

    Répondre à ce message

  • 6

    Serait-il possible/intéressant d’ajouter la possibilité d’un petit texte associé à la bannière, pas l’image seule.

    Le test que j’ai fait, qui semble fonctionner, c’est d’exploiter les infos de l’image/document spip : le tître (pour attribut « alt ») et la description pour le texte.

    Dans le code, ce serait me semble-t-il assez simple. Dans le fichier balise/banniere.php, ce serait vers la ligne 206 :

    	// rechercher l'url de destination
    	if($url = sql_getfetsel ('site', 'spip_bannieres', 'id_banniere='.$id)) {
    		// luc $lien = '<a href="'.generer_url_action('visit_url','banniere='.$id.'&url='.rawurlencode($url)).'" title="">';
    		$lien = '<a href="'.generer_url_action('visit_url','banniere='.$id.'&url='.rawurlencode($url)).'" title="'.$document['titre'].'">';
    		//luc $lien .= $logo_banniere.'</a>';
    		$lien .= $logo_banniere.$document['descriptif'].'</a>';
    	} else {
    		$lien = $logo_banniere;
    	}

    Qu’en pensez-vous ?

    • Bonjour,

      Pas de problème en ce qui me concerne. Par contre je n’en vois pas bien l’intérêt, mais ça ne me gêne pas. En ce qui concerne le title, vide il n’a aucun sens, il faut donc le remplir. C’est plutôt une bonne chose.

      Je te laisse commiter... Il faudrait rajouter une petite explication dans la doc.

      Merci
      Jeannot

    • Petite précision, je ne sais pas si ça peut intéresser ceux qui utilisent déja le plugin, car cela change le comportement...
      Voir peut-être si il y a d’autres réactions avoir de le mettre en ligne.
      Jeannot

    • Effectivement, cela peut avoir un impact sur ceux qui utilisent tître et description de l’image sans vouloir que cela apparaisse sur le site public.

      On se donne combien de temps pour recueillir les réactions ?

      Si c’est adopté, il va me falloir me mettre au svn… ce sera une première.

    • J’ai pas eu de retour, à toi de voir...

    • C’est fait. Mon 1er svn. J’espère n’avoir rien cassé...

    Répondre à ce message

  • 1

    Bonjour,

    Un des sites qu’on m’a confié utiliser Bannieres 2 et Bonux.
    Le site utilise la balise PUB sous la forme <pub43> qui permet d’afficher
    dans le corps d’un article (lors de la rédaction dans l’espace privé) la bannière dont l’ID est 43.

    Je ne trouve nulle part où cette balise est déclarée. Quelqu’un pourrait-il
    me mettre sur la piste ?

    Merci d’avance !

    • Bonjour,

      Ce n’est pas dans le plugin. Si la bannière est appelée depuis un article, peut-être s’agit-t-il d’un modèle dans lequel la balise #BANNIERE est appelée ?

      Jeannot

    Répondre à ce message

  • Petebowling

    Bonjour,
    Y a t-il une solution à mon problème. Le plugin n’installe pas la table « spip_bannieres_suivi ». J’ai copier/coller les instructions que « Jeannot » fait mention et voici ce que la base de données me donne comme erreur :
    MySQL a répondu:Documentation
    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ’CURRENT_TIMESTAMP,
    KEY id_banniere (id_banniere)
    ) ENGIN

    Merci de m’éclairer,
    PierreD.

    Répondre à ce message

  • 11

    Bonjour,

    Je viens d’installer Spip 2.0.10 en miuse à jour de SPIP 1.9.2.
    Une fois le plugin Bannières 2 installé, mes bannières s’afichent bien mais j’ai perdu toutes les statistiques de la précédente version et le message suivant s’affiche quand je cherche à afficher les statistiques.

    BOUCLE_clics>()
    Erreur SQL
    bannieres_suivi.id_banniere FROM spip_bannieres_suivi AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YmFubmllcmVzX3N1aXZpPC9jb2RlPg=="></span> WHERE (bannieres_suivi.id_banniere = 5) ORDER BY bannieres_suivi.id_banniere
    Table 'Guide.spip_bannieres_suivi' doesn't exist
    </BOUCLE_clics>   

    Apparemment spip_bannieres_suivi n’a pas été créé dans la base de données.

    Que faire ?

    Merci

    • Bonjour,

      Concernant les stats, le principe de fonctionnement diffère de l’ancienne version : Les clics ne sont pas additionnés dans la base et comportent des informations différentes. Ils ne sont plus stockés dans la table bannieres mais bannieres_suivi. Il faudra donc récupérer les anciennes informations autrement.

      Ensuite, si la table bannieres_suivi n’existe pas, c’est qu’il y a certainement eu un problème à la mise à jour. Essaie de désactiver/réactiver le plugin. Peut-être te faudra-t-il modifier le numéro de version de la base de la table spip_meta (bannieres_base_version : 0.20 par exemple) pour forcer la réinstallation des tables.

      Jeannot

    • Merci pour la réponse rapide. J’ai désactivé et réactivé le plugin à plusieurs reprises mais pas de changement.

      Je ne suis pas expert en base de données, aussi comment faire pour modifier le numéro de version de la base de la table spip_meta

      Merci d’avance

    • J’ai finalement réussi à modifier le numéro de version de spip_meta mais sans effet.je suis également passé sur spip 2.1 et j’ai toujours le même problème.
      N’est-il pas possible de créer la table bannieres_suivi directement dans la base de données. Et si oui, combien faut il lui attribuer de champs ?

      Merci

      JMR

    • Je reviens à la charge avec une copie d’écran du bug. Si ça peut aider...

      Merci

    • Bonjour,

      En utilisant phpmyadmin par exemple, onglet sql, exécuter le code que voici :

      CREATE TABLE IF NOT EXISTS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9iYW5uaWVyZXNfc3Vpdmk8L2NvZGU+"></span> (
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfYmFubmllcmU8L2NvZGU+"></span> bigint(21) NOT NULL,
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfYXV0ZXVyPC9jb2RlPg=="></span> bigint(21) NOT NULL,
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aXA8L2NvZGU+"></span> varchar(50) NOT NULL,
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+cGFnZTwvY29kZT4="></span> varchar(255) NOT NULL default '',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGF0ZTwvY29kZT4="></span> timestamp NOT NULL default CURRENT_TIMESTAMP,
        KEY <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfYmFubmllcmU8L2NvZGU+"></span> (<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfYmFubmllcmU8L2NvZGU+"></span>)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

      Jeannot

    • Merci

      Désolé, mais quand j’exécute le code, j’ai le message suivant :
      #1064 - You have an error in your SQL syntax near ’CURRENT_TIMESTAMP,
      KEY id_banniere (id_banniere)
      ) ENGINE=InnoDB DEFAULT ’ at line 6

      Merci pour votre aide

      Jean-Marc

    • Bonjour,

      Je me permets de vous relancer concernant l’erreur lors de l’exécution de la requête que vous m’avez indiquée.

      Merci

    • Bonjour,
      Je viens de vérifier avec ma version de phpmyadmin et il fonctionne. Si ce code ne marche pas (version de phpmyadmin ?), il faut peut être essayer manuellement en créant la table puis créer les champs un par un avec les caractéristiques que tu retrouves dans le code : par exemple

      champ : id_banniere
      type : bigint
      null : décoché
      etc.

      Jeannot

    • Merci pour ta réponse.

      ma version de phpmyadmin est 2.8.2.4 et MySQL : 4.1.18 et ça ne fonctionne pas.

      Je vais essayer manuellement, j’ai juste un doute sur les points suivants :
      page varchar(255) NOT NULL default ’’,
      Que dois-je mettre dans la case défaut pour ce champ ?

      date timestamp NOT NULL default CURRENT_TIMESTAMP,
      Dois-je mettre CURRENT_TIMESTAMP dans la case default ?

      KEY id_banniere (id_banniere)
      Est-ce que cela veut dire que je dois mettre le champ id_banniere en clé primaire ?

      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
      Comment et ou je choisis l’ENGINE et DEFAULT CHARSET ?

      Encore merci pour ton soutien précieux !

    • page : laisser vide

      date : CURRENT_TIMESTAMP

      key : oui

      Au niveau de la table : moteur de stockage InnoDB et interclassement utf8_general_ci

      Bon courage
      Jeannot

    • Merci !!!

      Tout fonctionne. J’ai juste pas réussi à trouver comment mettre l’interclassement utf8_general_ci, mais ça a l’air de fonctionner. Est-ce important ?

      Sinon merci pour ce support efficace et réactif et bien sûr pour ce plugin fort utile.

      jean-marc

    Répondre à ce message

  • bonjour
    apparemment on ne peut pas lier d’image à une bannière quand le plugin mediathèque est installé !!
    Y a t’il une solution pour garder le plugin médiathèque et en même temps pouvoir lier une image à une bannière ?

    Répondre à ce message

  • 3
    tarentaise

    Bonjour,

    merci pour ce plugin.

    Je voudrais savoir si il est possible de faire en sorte que l’affichage de la bannière change toutes les xx secondes afin de pouvoir l’utiliser comme un diaporama d’image.

    Le but est de l’utiliser pour créer un affichage d’images provenant du site et que lorsqu’on clique sur l’image affichée celle-ci s’ouvre avec le plugin thickbox.

    D’avance merci

    • Bonjour,
      Il faut peut-être chercher du coté de JavaScript / Ajax quelque chose qui puisse recharger un <inclure> qui contiendrait la balise.
      Pour thickbox, je crois qu’il faut rajouter la class thickbox : à rajouter au même endroit que l’exemple target (voir plus loin dans le forum).

    • tarentaise

      merci pour la réponse,

      je vais essayer la solution pour la class thickbox car je vois maintenant ou agir

      plus dure sera la solution pour recharger l’image toutes les xx secondes car je vois pas trop ou aller

    • Salut,

      tu peux aussi regarder du coté des plugins pour Jquery.

      En voici un que j’ai utilisé pour faire la même chose que toi sur un ancien site.

      Plugin jQuery InfiniteCarousel2.

      Regardes les exemples, il est très configurable et skinnable avec des CSS.

      Voilà pour l’info

      @+ REM

    Répondre à ce message

  • Je viens de l’installer sur un spip 2.1 ... la table bannieres n’était pas correctement créée, il manquait les champs position, rayon et diffusion.

    J’ai créé ça à la main pour que ça fonctionne, mais je le signale pour les gentils créateurs de ce plugin.

    Et j’en profite, dans les évolutions, des bannières non cliquables ça serait pas mal aussi. Et oui, ça existe ;-)

    Répondre à ce message

  • 3

    Bonjour,
    j’ai mis en place ce plugin sur un site qui est actuellement en développement. Régulièrement lorsque celui-ci charge est charger à partir des infos du cache, j’ai une erreur comme quoi la fonction sql_quote n’est pas définit et que l’erreur ce produit à la ligne 137 du fichier /plugins/bannieres/bannieres_2/balise/banniere.php.

    Y-a-t’il une solution ?

    Merci

    • Bonjour,
      Il me semble que la rev 35982 réglait ce problème. Est-ce bien la dernière révision qui est intallée ?

    • Merci pour la réactivité =)
      C’était la rev 33714 qui été installer. J’ai fais la mise à jour, on va bien voir si le soucis se repose.

      Sinon petite question en passant, pourquoi avoir un plugin bannieres_2 et un plugin bannieres_2.0 ?

    • Je ne suis pas l’auteur de bannieres_2.0. Je m’en suis inspiré et assuré la compatibilité dans sa version pour SPIP 2. Je n’ai simplement pas osé l’écraser, même si son auteur est d’accord. Par contre, il faudrait que je vois comment créer un zip pour cette version, histoire qu’il se charge bien depuis la 2.1...

    Répondre à ce message

  • Bonjour et bravo pour ce plugin. Je l’ai installé et il focntionne très bien. Seule question : je n’ai pas compris si les stats de clic étaient déjà implémentées ou non... Si oui, je ne trouve pas où les consulter. Merci de ta réponse.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom