Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Auteur : Vincent Garnier (vin100)
Permet de gérer facilement et simplement les smilies et leurs images. Ajouter, supprimer, ordonner etc. Contrairement aux autres mods similaire celle-ci stock les information dans la base de données mais génère un fichier cache afin de rendre le tout léger dans l'esprit PunBB.
Hors ligne
Dans AP_Smilies.php, ligne 53, remplacer
require_once PUN_ROOT.'include/cache_puntoolbar.php';par
require_once PUN_ROOT.'include/cache_smilies.php';
Hors ligne
et merde
merci 
Hors ligne
vin100, j'ai téléchargé la puntoolbar1.5 ce matin et la version de Smilies Manager incluse a également cette erreur
Hors ligne
pourtant je croyais l'avoir corrigé hier soir 
Hors ligne
Moi c'est bon dans l'archive de maintenant 
Hors ligne
Heu, quelle différence avec la 1.3 ?
Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?
Pas de support si pas d'adresse de forum !
Hors ligne
si je me souviens bien Romain, j'ai passé une après midi entière à t'expliquer comment utiliser intelligemment Winmerge, c'est donc à ça que cela a servi 
mais bon...
- la façon d'inclure le fichier cache a changée, maintenant on test si le fichier existe et on l'inclus si c'est le cas, sinon on le génère et on l'inclus (avant on faisaient systématiquement l'inclusion en cachant l'erreur si il n'existait pas)
- lors d'une première installation la liste des smilies est enregistré dans la base de donnée (ça évitera les multiples question "j'ai plus de smilies")
et c'est tout
c'est parce que j'avais une nouvelle version de PunToolBar et comme les deux sont liées j'en ai profité pour faire ça
Hors ligne
si je me souviens bien Romain, j'ai passé une après midi entière à t'expliquer comment utiliser intelligemment Winmerge, c'est donc à ça que cela a servi
Oui, et d'ailleurs je t'en remercie encore, je l'utilise presque tout le temps...
mais bon...
Mais bon c'est toujours mieux quand l'auteur de la mod nous l'explique... 
- la façon d'inclure le fichier cache a changée, maintenant on test si le fichier existe et on l'inclus si c'est le cas, sinon on le génère et on l'inclus (avant on faisaient systématiquement l'inclusion en cachant l'erreur si il n'existait pas)
- lors d'une première installation la liste des smilies est enregistré dans la base de donnée (ça évitera les multiples question "j'ai plus de smilies")
Merci. 
Je n'avais pas le temps de télécharger la mod, merci pour ces explications.
c'est parce que j'avais une nouvelle version de PunToolBar et comme les deux sont liées j'en ai profité pour faire ça
Ca je m'en doutais.
Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?
Pas de support si pas d'adresse de forum !
Hors ligne
Quand j'essaye d'installer smilies manager j'ai ce message qui apparraît:
ichier : /home.10.2/cryptosey/www/forum/upload/install_mod_fr.php
Ligne : 62PunBB a rapporté : Impossible de créer la table pun_smilies. Veuillez vérifier votre configuration et essayer à nouveau.
La base de données a rapporté : Table 'pun_smilies' already exists (Errno: 1050)
C'est normal? Est-ce que ça veut dire que je peux tout de même installer la puntoolbar?
Merci
Hors ligne
ça veut dire que la table dans la base de données existe déjà, que tu as déjà lancé le fichier ou que tu as déjà installé cette mod ; donc oui ça ne devrait pas poser de problème, à moins que ce soit une autre mod qui as installé cette table là tu va avoir des problèmes
Hors ligne
En fait j'avais déjà installé smilies manager lors d'une précédente version de puntoolbar.
Mais c'est que quand je suis dans la partie admin de mon forum ça me met toujours que la version de smilies manager est la 1.2. Je me demandais donc si ça pouvait causer problème ou est-ce qu'il y a un moyen de mettre à jour le numéro de la version?
Merci
Hors ligne
non ça ne pose pas de problème
pour mettre à jour il faut aussi remplacer les fichiers, parce que si ça te met smilies manager 1.2 c'est que tu as un ancien fichier plugin
Hors ligne
Merci, la bonne version est maintenant affichée 
Hors ligne
En voulant ajouter un smiley qui pleure:
[c]:'([/c]
J'ai eu une erreur de BDD... 
J'ai ajouté un anti-slash devant l'apostrophe et tout a passé 
Je ne sais pas si c'est un de mes mods qui a modifier un truc qui fallait pas où si c'est une erreur de smilies manager, mais je la signale quand même 
Hors ligne
Je viens d'essayer, en fait ça fonctionne quand on ajoute les smilies, mais ça ne fonctionne pas quand on le modifie, cela n'est pas lié aux caractères utilisés
Hors ligne
je propose l'amélioration suivante :
pour créer un nouveau smiley au lieu de taper le nom de l'image à la main (toujours source d'erreur
) on peut choisir dans une liste déroulante des images disponibles triée par ordre alphabétique. cela évite aussi si on a beaucoup d'images d'aller chercher tout au bout de la page le nom exact pour ensuite remonter au milieu.
j'espère que cela sera utile à au moins une autre personne que moi 
remplacer la ligne 355 c'est à dire :
<input type="text" name="smiley_image" size="25" tabindex="1" />par le bloc suivant :
<!-- modification proposée par erick_g -->
<!-- crée une liste déroulante des images disponibles -->
<select name="smiley_image" tabindex="1" >
<option>Choisir une image</option>
<?php
$tab_smilies = array();
$chemin = dir(PUN_ROOT.'img/smilies');
while (( $ligne = $chemin->read() ) !== false ) {
if (($ligne != '.') && ($ligne != '..') && ($ligne != 'index.html')) { $tab_smilies[] = $ligne; }
}
$chemin->close();
@natsort($tab_smilies);
foreach ( $tab_smilies as $image) { echo "<option>$image</option>"; }
?>
</select>
<!-- fin de la modif -->Il ne savait pas que c'était impossible, alors il l'a fait !
Hors ligne
Une capture d'écran peut-être ?
Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?
Pas de support si pas d'adresse de forum !
Hors ligne
pas de problème 

chouette non ?
et indispensable pour les fainéants comme moi 
ps: c'est juste un effet d'optique, le costaud avec les altères ne porte pas la liste !!!
Dernière modification par erick_g (28-05-2007 20:26:48)
Il ne savait pas que c'était impossible, alors il l'a fait !
Hors ligne
bonne idée 
Hors ligne
Chouette 
Team-BoNoBo Team CS qui tourne sous Punbb, Puntal & DFSS
Trouvailles et cadeaux du web gratuits chez la dénicheuse
Besoin d'aide, visitez le groupe Developpeur
Hors ligne
pour les curieux qui veulent savoir combien ils ont d'images disponibles
remplacer le bloc précédemment évoqué par
<!-- modification proposée par erick_g -->
<!-- crée une liste déroulante des images disponibles -->
<select name="smiley_image" tabindex="1" >
<?php
$tab_smilies = array();
$chemin = dir(PUN_ROOT.'img/smilies');
while (( $ligne = $chemin->read() ) !== false ) {
if (($ligne != '.') && ($ligne != '..') && ($ligne != 'index.html')) { $tab_smilies[] = $ligne; }
}
$chemin->close();
@natsort($tab_smilies);
$nbr_img = count($tab_smilies);
echo "<option>Choisir une image parmi les $nbr_img disponibles</option>";
foreach ( $tab_smilies as $image) { echo "<option>$image</option>"; }
?>
</select>
<!-- fin de la modif -->cela donne :

Il ne savait pas que c'était impossible, alors il l'a fait !
Hors ligne
Bonjour,
Très bien l'idée, en espérant qu'il n'y a pas 200 images
.
Par contre faire apparaitre l'image une fois sélectionnée ce serait pas mal non plus - histoire de ne pas se tromper, avant de valider.
Ou encore ajouter une liste ne répertoriant que les images qui ne possèdent pas encore de "code texte" ?
Hors ligne
une fois que je suis lancé ... 
si en plus de savoir combien d'images sont disponibles vous voulez un aide-mémoire qui affiche à côté du nom de l'image le (ou les) code(s) associé(s) et tout cela dans la liste déroulante, j'ai ce qu'il vous faut :
ligne 247 (ou pas loin) il y a :
$smiley_image = trim($_POST['smiley_image']);laissez-la intacte et ajouter juste après :
// modification par erick_g
// suppression de l'information [code-texte] associée au nom du fichier image
if ( strpos($smiley_image,"[") > 0 ) { $smiley_image = substr($smiley_image,0, strpos($smiley_image,"[")-1);
// fin de modificationensuite vers la ligne 370/380, trouvez :
<input type="text" name="smiley_image" size="25" tabindex="1" />supprimez-la et remplacez par :
<!-- ancienne ligne <input type="text" name="smiley_image" size="25" tabindex="1" /> -->
<!-- modification proposée par erick_g -->
<!-- crée une liste déroulante des images disponibles -->
<!-- avec leur code-texte associé (plusieurs sont possibles) -->
<select name="smiley_image" tabindex="1" >
<?php
$result = $db->query('SELECT * FROM '.$db->prefix.'smilies ORDER BY disp_position') or error('Unable to retrieve smilies', __FILE__, __LINE__, $db->error());
$num_db_smilies = $db->num_rows($result);
if ($num_db_smilies > 0) {
while ($db_smilies = $db->fetch_assoc($result)) {
if ( isset($mon_tableau[$db_smilies['image']])) { $mon_tableau[$db_smilies['image']] = $mon_tableau[$db_smilies['image']]."[".$db_smilies['text']."]"; }
else { $mon_tableau[$db_smilies['image']] = "[".$db_smilies['text']."]"; }
}
}
$tab_smilies = array();
$chemin = dir(PUN_ROOT.'img/smilies');
while (( $ligne = $chemin->read() ) !== false ) {
if (($ligne != '.') && ($ligne != '..') && ($ligne != 'index.html')) { $tab_smilies[] = $ligne; }
}
$chemin->close();
@natsort($tab_smilies);
$nbr_img = count($tab_smilies);
echo "<option>Choisir une image parmi les $nbr_img disponibles</option>";
foreach ( $tab_smilies as $image) {
$code_texte = $mon_tableau[$image];
echo "<option>$image $code_texte</option>"; }
?>
</select>
<!-- fin de la modification -->une capture ?
à côté de chaque nom de fichier il y a [entre crochet] le ou les codes associés .
si il n'y a rien c'est que ... (je vous laisse deviner)
d'un coup d'oeil on maitrise les doublons et/ou les oublis (voulus ou pas).
[---]
et pour terminer :
trois boutons pour trier la liste des smileys actuels selon votre bon-vouloir :
voici les deux modifications nécessaires :
vers la ligne 298 trouvez :
$result = $db->query('SELECT * FROM '.$db->prefix.'smilies ORDER BY disp_position') or error('Unable to retrieve smilies', __FILE__, __LINE__, $db->error());remplacez-la par :
// ancienne ligne $result = $db->query('SELECT * FROM '.$db->prefix.'smilies ORDER BY disp_position') or error('Unable to retrieve smilies', __FILE__, __LINE__, $db->error());
// modification par erick_g
// change la requète pour trier selon le bouton pressé
if ( isset($_POST['tri_par']) ) { $tri_par = $_POST['tri_par']; } else { $tri_par = "disp_position"; }
if ( $tri_par == "Tri par Image" ) { $result = $db->query('SELECT * FROM '.$db->prefix.'smilies ORDER BY image') or error('Unable to retrieve smilies', __FILE__, __LINE__, $db->error()); }
if ( $tri_par == "Tri par Texte" ) { $result = $db->query('SELECT * FROM '.$db->prefix.'smilies ORDER BY text') or error('Unable to retrieve smilies', __FILE__, __LINE__, $db->error()); }
if ( $tri_par == "Tri par Position" ) { $result = $db->query('SELECT * FROM '.$db->prefix.'smilies ORDER BY disp_position') or error('Unable to retrieve smilies', __FILE__, __LINE__, $db->error()); }
if ( $tri_par == "disp_position" ) { $result = $db->query('SELECT * FROM '.$db->prefix.'smilies ORDER BY disp_position') or error('Unable to retrieve smilies', __FILE__, __LINE__, $db->error()); }
// fin de la modificationet enfin !!!
ligne 341 juste après :
<p class="submitend"><input name="reord" type="submit" value="<?php echo $lang_smiley['Edit smilies']; ?>" /> <input name="remove" type="submit" value="<?php echo $lang_smiley['Remove Selected']; ?>" /></p>ajouter :
<!-- modification par erick_g -->
<!-- Ajoute des boutons pour trier les smileys actuels -->
<fieldset>
<legend> Trier les Smileys actuels </legend>
<div class="infldset">
<p class="submitend">
<input name="tri_par" type="submit" value="par Position" />
<input name="tri_par" type="submit" value="par Nom de l'Image" />
<input name="tri_par" type="submit" value="par Code Texte" />
</p>
<div>
</fieldset>
<!-- fin de la modification -->[---]
pour ceux qui ont peur de se tromper, le fichier zippé :
AP_Smilies.zip
Il ne savait pas que c'était impossible, alors il l'a fait !
Hors ligne