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

  • Shema Ramiro

    Que faire pour que ce plugin marche sur spip 2.3 ???? Je ne peux pas modifier une campagne, je ne peux pas non plus uploader une banniere/images. Que faire ?

    Répondre à ce message

  • 1

    Bonjour,

    J’ai envoyé une version de banniere, fonctionnelle avec spip 3, en test. Pour le moment pas de paquet c’est dispo sur svn accessible dans le /bannieres /trunk sur la zone.

    j’ai corrigé
    -  l’installe qui ne passait plus sur une installation fraiche
    -  cosmétique du privé , les pages étaient un peut en vrac
    -  datepiker sur les choix de dates

    pas testé avec geographie/localisation pour le moment.

    A++

    • Alors pour info : un plugin qui rassemble les fonctionalitées des deux plugins Bannieres et PubBan est dispo sur la zone : CAMPAGNES.

    Répondre à ce message

  • 3

    Bonjour,

    Est-ce que quelqu’un travaille sur l’adaptation de ce plugin à SPIP 3.0 ?
    Comme vous vous en doutez, je suis très impatient de retrouver mes bannieres sur mon site fraichement migré.

    Cordialement

    • Salut,
      J’ai trouvé une solution en attendant. Plus complexe, mais fonctionnelle.
      Pub Banner
      Il faut évidemment changer la balise, comprendre comment il fonctionne, il offre au moins les mêmes possibilités , + une documenation, mais j’aimais la simplicité de Bannières 2.
      En attendant Bannière 3...
      A+

    • Il semble qu’on puisse créer de nouvelles campagnes en accédant a l’admin via http://www.nantesfloorball.fr/ecrire/?exec=bannieres

    • badidon

      J’avais bannieres2 installé sur un site en SPIP 2.

      J’ai installé à la main banniere2 sur un spip 3.0.16 en modifiant le fichier plugin.xml comme suit :

      necessite id=« SPIP » version=« [2.0.9 ;3.1.99] »

      et cela semble fonctionner...

      Il y a plutôt des pb de css mais je récupère mes bannières. à suivre...

    Répondre à ce message

  • Bonjour,
    Je viens de mettre spip à jour en version 3. Dommage que ce plugin« bannière » ne fonctionne plus.
    Très facile à utiliser, une adaptation est-elle prévue pour cette nouvelle version de Spip ?
    Merci pour tout ton travail.

    Répondre à ce message

  • 7

    Bonjour,

    Lorsque je crée une campagne et que je fais enregistrer j’ai cette erreur dans l’administration. Et la bannière ne s’affiche pas. Qu’elle est le problème d’après vous ? Merci.

    Erreur SQL 1054
    Unknown column ’atwoprixpromo.atprix_documents.extension’ in ’field list’
    SELECT spip_documents.extension, spip_documents.id_document, spip_documents.titre, spip_documents.descriptif FROM spip_documents AS spip_documents INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = spip_documents.id_document ) WHERE (L1.id_objet = 2) AND (L1.objet = ’banniere’) GROUP BY spip_documents.id_document

    • Bonjour,
      Je viens de tester le plugin Version : 0.28.0 [53112]sur SPIP 2.1.12 tout semble fonctionne parfaitement

      Unknown column ’atwoprixpromo.atprix_documents.extension’ in ’field list’

      Quel est votre configuration de SPIP ? pourquoi votre table ne s’appelle pas spip_ ? êtes vous sur un SPIP mutualisé ? il faudrait regarder via votre gestionnaire mysql si votre table xx_documents possède la colonne extension.

    • Bonjour,

      Merci pour votre réponse ! Non j’ai installé spip moi même et j’ai changé le préfixe de la table quand j’ai installé.

      J’ai réinstallé le module depuis et cela m’affiche une nouvelle erreur :

      Erreur SQL 1054
      Unknown column ’bannieres.debut’ in ’field list’
      SELECT bannieres.id_banniere, ’’, bannieres.debut, bannieres.fin, bannieres.nom, bannieres.position, bannieres.rayon, bannieres.diffusion FROM spip_bannieres AS bannieres ORDER BY bannieres.id_banniere DESC

    • J’ai la version spip 2.1.10 sur un hébergement ovh.

    • votre erreur me semble bizarre. ... je viens de re-tester sur un site OVH, aucun soucis

      1. désinstaller le plugin (ou effacer à la main en cas d’échec la table_banniere depuis phpmymadmin)
      2. relancer l’installation du plugin.

      Normalement si le plugin est bien installé vous devriez voir, la structure de la table suivante

      CREATE TABLE IF NOT EXISTS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9iYW5uaWVyZXM8L2NvZGU+"></span> (
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfYmFubmllcmU8L2NvZGU+"></span> bigint(21) NOT NULL AUTO_INCREMENT,
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tPC9jb2RlPg=="></span> varchar(100) NOT NULL DEFAULT '',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> varchar(100) NOT NULL DEFAULT '',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c2l0ZTwvY29kZT4="></span> varchar(255) NOT NULL DEFAULT '',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVidXQ8L2NvZGU+"></span> date NOT NULL DEFAULT '0000-00-00',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZmluPC9jb2RlPg=="></span> date NOT NULL DEFAULT '0000-00-00',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2xpY3M8L2NvZGU+"></span> int(11) NOT NULL DEFAULT '0',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YWZmaWNoYWdlczwvY29kZT4="></span> int(11) NOT NULL DEFAULT '0',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29tbWVudGFpcmVzPC9jb2RlPg=="></span> text NOT NULL,
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y3JlYXRpb248L2NvZGU+"></span> date NOT NULL DEFAULT '0000-00-00',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+cG9zaXRpb248L2NvZGU+"></span> tinyint(2) NOT NULL DEFAULT '1',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+cmF5b248L2NvZGU+"></span> varchar(50) NOT NULL DEFAULT 'int',
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGlmZnVzaW9uPC9jb2RlPg=="></span> text NOT NULL,
        <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bWFqPC9jb2RlPg=="></span> timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
        PRIMARY KEY (<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfYmFubmllcmU8L2NvZGU+"></span>)
      ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    • Re Bonjour,

      J’ai désinstallé le plugin depuis et réinstallé avec suppression de la table atprix-bannière sur phpmyadmin. J’ai réinstallé le plugin cette fois la table est bien installé dans phpmyadmin . Je crée une bannière, je remplis les champs je fais enregistrer et là cette erreur :

      Erreur SQL 1054
      Unknown column ’atwoprixpromo.atprix_documents.extension’ in ’field list’
      SELECT spip_documents.extension, spip_documents.id_document, spip_documents.titre, spip_documents.descriptif FROM spip_documents AS spip_documents INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = spip_documents.id_document ) WHERE (L1.id_objet = 2) AND (L1.objet = ’banniere’) GROUP BY spip_documents.id_document

      ensuite je retourne sur le plugin bannière et la bannière est bien crée (dans ma table sql aussi) par contre ça me met campagne échue alors que j’ai mis la date d’aujourd’huis et date de fin dans un mois, aussi je ne trouve pas le moyen de modifier une bannière existante.

      Désolé de vous embête avec ça mais je trouve ce plug in vraiment intéressant d’où mon insistance sur ce problème.
      Merci.

    • il y a du changement... j’ai vidé le cash et la bannière apparait bien en campagne active par contre j’ai mis la balise bannière dans mon squelette comme ceci #BANNIERE1 et cela m’affiche sur ma page aucune bannière mais juste 1 tout seul.

    • vérifier

      • que le code est bien #BANNIERE{1} (avec les accolades)
      • que la campagne est dans une date valide par ex 2000-01-01 / 2015-01-01
      • possède une image
      • en position 1

    Répondre à ce message

  • 1
    Dominique Lafond

    Bonjour,

    J’ai le même problème que le post du 31 janvier à 19:50 dans le forum...
    Et la même situation : à savoir que ma base de données contenant deux sites SPIP, le second (celui qui a le pb) utilise un préfixe de table qui n’est pas SPIP.
    J’ai essayé le plugin sur l’autre et ça fonctionne parfaitement.

    Bon. Pas grave : dans mon cas, il s’agit d’une démo de travail uniquement (sinon, j’utiliserais deux bases distinctes).
    Néammoins si cela peut vous intéresser...

    • Dominique Lafond

      Et comme souvent... Je me réponds : la bannière est apparue toute seule (j’ai fait autre chose entre temps). Donc peut-être un pb d’horloge ou d’impatience...
      Bref ça fonctionne très bien. Je vais pouvoir essayer de mettre un FLASH !!
      Merci pour tous ces plugins drôlement utiles pour la communauté SPIP.

    Répondre à ce message

  • 1

    Bonjour,
    Quand je cree une publicité, je la place dans une bannière comme il se doit, mais apres avoir enregistré, la pub existe mais n’est affectée a aucune bannière.
    La modification pour revalider une bannière n’aboutit à rien.
    Jusque là j’ai modifié les pub existantes en exemple mais j’en ai maintenant besoin de plus ...
    Une idée ?
    SPIP 2.1.12 / Sarkaspip 3

    • Je ne comprends pas bien la question ... la bannière ne s’affiche pas à cause d’un bug (bien vérifier si la date de campagne est bonne) OU il n’y a pas assez de positions disponibles ? Actuellement le plugin propose 10 positions.

    Répondre à ce message

  • 1

    Bonjour,
    J’utilise ce plugin qui est hyper intéressant, je vous en remercie, j’aimerai savoir pourquoi l’image n’est pas cliquable si c’est uniquement l’email de contact qui est renseigné et non l’url ?
    y’a t’il un moyen de le corrigé ? Comme ca, si le site n’existe pas et qu’on a mis une adresse email, on peut cliqué sur la bannière et pouvoir envoyer un mail. Merci de votre réponse

    • cela me semble dangereux ... laisser un email en clair pour se faire spammer ?
      Je ne connais pas de sites sérieux dont les bannières pointent vers un email.

    Répondre à ce message

  • J’ai comme deux bug...

    -  le premier : quand on fait [avant(#BANNIERE{5})après] on obtient « avant après » (avec l’espace) quand il n’y a aucune bannière définie en position 5. De la même façon, [(#BANNIERE{5}|oui) mon code ... ] exécutera toujours « mon code ... » parce-que la balise renvoie un espace (et donc ne vaut jamais vide/faux)

    -  le second est qu’on ne peut pas appliquer de filtre à la balise qui produit une image... (je n’ai essayé que le courant et indispensable |image_reduire{} pour s’assurer que le squelette ne cassera pas...) C’est assez fâcheux  :-S

    Répondre à ce message

  • 4

    Bonjour,

    Je voudrais pouvoir afficher une bannière précise en renseignant son id_banniere. Comment puis-je procéder ?
    Il existe bien le modèle, mais le paramètre (ou la variable) pris en compte par la balise #BANNIERE est la position et aussi le rayon et l’id du département…
    Il n’est pas possible de passer en paramètre l’id_banniere.

    Pour ceux qui vont me demander le pourquoi du comment :
    Un partenaire peut avoir acheté un espace publicitaire pour un article donné et uniquement celui là. Donc, le numéro de position en paramètre ne correspond pas car il appelle toutes les bannières de la position X. Alors que je ne désire faire appel qu’à la bannière ayant l’id_banniere=XX

    • bonjour teddy,

      je comprends ton problème, je n’ai fait que mettre à jour le plugin et ne suis pas à l’origine de sa logique de fonctionnement.
      est qu’une simple condition sur le squelette, ne pourrait-il pas résoudre ton problème ?
      ex.

      [(#ID_ARTICLE|=={15}|oui)#BANNIERE{9}]
      [(#ID_ARTICLE|=={15}|non)#BANNIERE{6}]

      sinon, il faut reprendre le plugin et y ajouter un 4e critère conditionnel id qui s’il est présent, écrase les précédents.

    • ceci me refait penser à une question la première fois que j’ai lu la doc : pourquoi lier les bannières à la gestion des documents ?

    • Jeannot

      Bonjour,

      Cela permet d’utiliser les fonctionnalités de spip (inutile de re-coder ce qui existe déjà). La gestion des documents permet de gérer les images des bannières.

      Jeannot

    • bonjour.
      je vais regarder cela plus attentivement : c’est juste que je ne voyais pas à quel niveau la médiathèque était utilisée :)

    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