Attention, ce blog est en mode archive. Il n'est plus alimenté et consultable en lecture seulement. Il se peut que certaines informations ne soient plus à jour.
Si vous souhaitez continuer à me suivre, je continuerai à bloguer d'ici quelques semaines sur le blog de SEObserver.

Descriptions uniques pour les annuaires avec Informenter

by 512banque on 16 décembre 2008

Inscrire le site dans des annuaires ciblés peut être une opération rentable sur le long terme… A condition de varier les descriptions tous les 10 annuaires par exemple. Pour ce faire, rien de tel qu’un script de cadavre exquis faisant varier un ou deux mots sur une description, couplé à un outil de pré-remplissage des champs.

D’abord, il faut que vous ayez installé le formidable InformEnter.

Ensuite, vous allez générer une dizaine de profils différents avec le script ci-dessous et vous aller les enregistrer dans les fichiers de config de informenter.

Les fichiers de config se trouvent ici :

C:\Documents and Settings\Utilisateur\Application Data\Mozilla\Firefox\Profiles\go5pxcbg.default\

Modifiez utilisateur et go5pxcbg par votre nom d’utilisateur et nom de profil.

Là, vous trouvez un fichier nommé « prefs.js », c’est toutes vos préférences de Firefox. Faîtes une sauvegarde avant toute chose, on ne sait jamais.

Les 10 premières lignes commencent par : « user_pref(« InFormEnter…. » ce sont les fichiers de config de Informenter. Le script PHP ci-dessous vous crée autant de profils que de possibilités avec les morceaux que vous allez y rentrer. Il vous suffit donc simplement de les remplacer par ceux générés par le fichier PHP.

Pour une explication du principe de cadavre exquis : cf ce lien.

Et voici le script, simple comme bonjour.

  1. <?php
  2. //avant tout, pour sécuriser
  3. if(isset($_GET) && is_array($_GET))
  4.     foreach($_GET as $key => $value){
  5.         if(ini_get(register_globals))$value=stripslashes($value);
  6.         $value=htmlentities($value,ENT_QUOTES);
  7.         $_GET[$key]=$value;
  8.         ${$key}=$value;
  9.     }
  10.  
  11. if(isset($_POST) && is_array($_POST))
  12.     foreach($_POST as $key => $value){
  13.         if(ini_get(register_globals))$value=stripslashes($value);
  14.         $value=htmlentities($value,ENT_QUOTES);
  15.         $_POST[$key]=$value;
  16.         ${$key}=$value;
  17.     }
  18. //définition de fonctions
  19. function creuse($tableaux,$a,$b,$c,$d,$e,$ligne){
  20.         static $compteur=1;
  21.     $suite=$tableaux;
  22.     array_shift($suite);
  23.     $criteres=$GLOBALS[$tableaux[0]];
  24.  
  25.     foreach($criteres as $crit){
  26.         if(count($tableaux)==1)
  27.                 { echo ‘user_pref("InFormEnter.’.$compteur.‘.MenuSet", "’.$a.‘%0A’.$b.‘%0A’.$c.‘%0A’.$d.‘%0A’. ltrim($ligne).‘ ‘.$crit.‘");
  28. ;
  29.                 echo ‘user_pref("InFormEnter.’.$compteur.‘.ShowSize", 1);
  30. ;
  31.                         $compteur++;
  32.                 }
  33.         else creuse($suite,$a,$b,$c,$d,$e, $ligne.‘ ‘.$crit);
  34.     }
  35. }
  36.  
  37. //met en place le compteur pour compter le nombre total de profils, qui sera incrémenté dans la boucle
  38. $compte_les_profils = 1;
  39.  
  40. if(!empty($_POST))
  41. {
  42.         $TableauDesTableaux = array();
  43.  
  44.         for($i=1;$i<=$nb_champs;$i++)
  45.         {
  46.                 $champ = "champ".$i;
  47.                 if (strlen(ltrim($_POST[$champ])) > 0) {
  48.                         $TableauDesTableaux[]=$champ;
  49.                        
  50.                         //crée l’array des url
  51.                         ${$champ} = array();
  52.  
  53.                         //explode les champs par le retour à la ligne
  54.                         $tableau_champ = explode("\r\n", $_POST[$champ]);
  55.                                 foreach ($tableau_champ as $value) {
  56.                                         if(!in_array($value, ${$champ})) //si l’url n’est pas déjà dans le tableau des URL
  57.                                         {
  58.                                                         ${$champ}[]=$value;
  59.                                                         $compte_les_profils++; //compte le nombre de profils générés (pour sortir les titres correspondants
  60.                                         }
  61.                                 }
  62.                        
  63.                 } // sinon c’est que le champ est vide
  64.         }
  65. echo "<pre>";
  66. //creuse les tableaux
  67. creuse($TableauDesTableaux,$titre_du_site,$votre_nom,$email,$adressehttp,$adressesanshttp,$vide);
  68.  
  69. //sort le block de base
  70. echo <<<END
  71. user_pref("InFormEnter.ColorizeItems2", 1);
  72. user_pref("InFormEnter.MarkerRightClick", 0);
  73. user_pref("InFormEnter.MarkersMode", 1);
  74. user_pref("InFormEnter.On", 0);
  75. user_pref("InFormEnter.Options", 0);
  76. user_pref("InFormEnter.OptionsPlacement", 0);
  77. user_pref("InFormEnter.ProfileCurrent", 1);
  78. user_pref("InFormEnter.ProfileNext", 4);
  79. user_pref("InFormEnter.Profiles", "
  80. END;
  81.  
  82. //sort l’index pour les profils
  83. for($i=1;$i<=$compte_les_profils;$i++) {
  84.         $chaine .= $nom_profil.$i."&#09;".$i.’\n’;
  85.         }
  86.  
  87. //supprimer le retour à la ligne final qui crée un profil vide
  88. $chaine = substr($chaine,0,-2);
  89.  
  90.         echo $chaine.‘");
  91. ;
  92. echo "</pre>"; }
  93. ?>
  94. <?php if(empty($nb)) { ?>
  95. <select name="nb" onchange=‘location=this.options[this.selectedIndex].value’>
  96. <option>Selectionner un nombre de morceaux</option>
  97. <option value="informomatic.php?nb=2">2</option>
  98. <option value="informomatic.php?nb=3">3</option>
  99. <option value="informomatic.php?nb=4">4</option>
  100. <option value="informomatic.php?nb=5">5</option>
  101. </select>
  102. <?php } else { ?>
  103. <h1>Données générales (qui ne bougent pas)</h1>
  104. <form method="post" action="informomatic.php">
  105. <input type="text" value="Nom type des profils" name="nom_profil" onfocus="if (this.value == ‘Nom type des profils’) {this.value =  »;}" onblur="if (this.value ==  ») {this.value = ‘Nom type des profils’;}" />
  106. <input type="text" value="Titre du site" name="titre_du_site" onfocus="if (this.value == ‘Titre du site’) {this.value =  »;}" onblur="if (this.value ==  ») {this.value = ‘Titre du site’;}" />
  107. <input type="text" value="Votre nom" name="votre_nom" onfocus="if (this.value == ‘Votre nom’) {this.value =  »;}" onblur="if (this.value ==  ») {this.value = ‘Votre nom’;}" />
  108. <input type="text" value="Adresse email" name="email" onfocus="if (this.value == ‘Adresse email’) {this.value =  »;}" onblur="if (this.value ==  ») {this.value = ‘Adresse email’;}" />
  109. <input type="text" value="http://www.adresse.com" name="adressehttp" onfocus="if (this.value == ‘http://www.adresse.com’) {this.value =  »;}" onblur="if (this.value ==  ») {this.value = ‘http://www.adresse.com’;}" />
  110. <input type="text" value="www.adresse.com" name="adressesanshttp" onfocus="if (this.value == ‘www.adresse.com’) {this.value =  »;}" onblur="if (this.value ==  ») {this.value = ‘www.adresse.com’;}" />
  111.  
  112.  
  113. <h1>Phrase 1 : <?php echo $nb; ?> morceaux </h1>
  114. <p>Consignes : pas d‘espace avant, pas d’espace après. N‘oubliez pas la ponctuation à la dernière phrase.</p>
  115. <?php
  116. for($i=1;$i<=$nb;$i++)
  117. {
  118. echo ‘<textarea name="champ’.$i.’" rows="10"></textarea>
  119. ‘;
  120. }
  121. ?>
  122.  
  123.  
  124. <input type="hidden" value="<?php echo $nb; ?>" name="nb_champs" />
  125. <input type="submit" class="submit" />
  126. </form><?php } ?>

{ 2 comments }

Si vous avez trouvé ce blog via une liste de blogs dofollow, ne perdez pas votre temps, je refuse systématiquement tous les commentaires sauf ceux en valent réellement la peine ;)

Comments on this entry are closed.

Previous post:

Next post: