GÉNÉRATION AUTOMATIQUE DE BOUTON

Utilisateur anonyme - 1 juin 2006 à 16:52
bobatheboss Messages postés 12 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 30 septembre 2008 - 24 juin 2008 à 18:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37894-generation-automatique-de-bouton

bobatheboss Messages postés 12 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 30 septembre 2008
24 juin 2008 à 18:25
Plus d'un an après, source toujours d'actualité et franchement parfaite !

Je génère des tas de png à la volé, rien à dire à part bravo !
neo8310 Messages postés 2 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 4 octobre 2007
4 oct. 2007 à 20:43
Super ! Bon boulot et présentation propre (ca change des pages en vrac )
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
23 déc. 2006 à 22:25
Salut les gars :)

Il ne tiens qu'à vous de changer les png, et de modifier les parametres de taille dans la classe.
wbarbry Messages postés 1 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 14 décembre 2006
14 déc. 2006 à 16:10
Super source !!!!!!!
si le bouton (image de fond) n'est pas blanc, la petite icone apparait sur un carré blanc. N'y a t'il pas moyen de se servir de la transparence des fichiers png?
Même souci avec bouton sur un fond de couleur autre que blanc...


Merci d'avance

William
steven777 Messages postés 1 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 14 septembre 2006
14 sept. 2006 à 17:07
super, mais peut-on remplacer le fond (png) par une couleur toute bete (pour faire des boutons bleus, jaunes, verts...) ?
Aussi, peut-on ne pas mettre d'icone sur le bouton ?
Enfin, peut-on regler la taille du bouton ?
chankalan Messages postés 16 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 17 décembre 2007
11 juil. 2006 à 17:54
super, ça marche du tonnerre... y'a pas moyen de choisir la typo ?
10/10
kiki2sirom Messages postés 153 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 23 décembre 2010
27 juin 2006 à 16:22
ok chui un peu à la bourre dans les avis, mais là c du bon !!
kiki
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
8 juin 2006 à 12:08
il semblerait que les robots lisent dans les images :/

Ceci dit ce n'est pas le but premier de cette classe :)
cs_guismo1er Messages postés 76 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 12 mars 2009
7 juin 2006 à 19:20
Excellent, je viens de tester, et c'est vraiment bien fait, un petit truc, contree le spam, c'est btn_env_xx_hotmail_com.png en exemple.

faudrait pas mettre autre chose, ou est ce que les robots lisent meme dans les images?

Ciao
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
2 juin 2006 à 18:48
bizarre, il fonctionne bien chez moi :s
cs_johann1 Messages postés 170 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 9 janvier 2008
2 juin 2006 à 17:03
Franquito,

Ton lien d'exemple est brisé: http://www.franquito.net/tutos/bouton.php
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
2 juin 2006 à 12:24
salut wiz !

Enfait je ne vois pas l'interet de ta fonction dans la mesure ou il suffit de bien ciblé le dossier à la base. Ta fonction va alourdir cette classe qui n'a pas besoin de cela tant la GD est deja friande en ressource.
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
2 juin 2006 à 11:36
Peut être vérifier l'existance du dossier cible non ? ^^'
Avec une petite fonction. Genre :

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function Is_dir_V( $DIR , $MODE )
{
if( is_dir( $DIR ) )
{
return true;
}
else
{
if( empty( $MODE ) )
{
$MODE = '0777';
}

if( @mkdir( $DIR , $MODE ) )
{
return Is_dir_V( $DIR , $MODE );
}
elseif( function_exists( 'system' ) )
{
@system( 'mkdir ' . $DIR . ' ' . $MODE );
return Is_dir_V( $DIR , $MODE );
}
else
{
return false;
}
}
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


non ? ¤¤'
mickaelpfr Messages postés 197 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 29 avril 2009 2
2 juin 2006 à 11:25
Yop salut :)
Je te conseille d'utiliser plutot une image de fond de 200px ( ou un peu plus petit ) mais pas 1px , car il te faudra faire une boucle pour parcourir toute l'image pour la remplir ( il n'existe pas de fonction spécifique en php pour remplir une image avec une image de fond :( )

Donc avec une image de fond de 200px pour une image généré de 500px, tu ne fera une boucle que de 3 fois et non 500 ==> optimisation du temps et ressource serveur.
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
2 juin 2006 à 10:36
Salut mickael ! :)

C'est un peu ce que je fait déjà dans ma classe, la largeur du bouton se fait en fonction de la largeur de la boucle, + les bords et le motif.

Mais j'aimerais utiliser un fond qui fait seulement 1 px, ce sera plus optimisé. Et au vu de la récente source "avancement de projet" avec le dégradé qui s'étire, je suis sur que cela doit être possible :)
cs_babid Messages postés 49 Date d'inscription dimanche 21 septembre 2003 Statut Membre Dernière intervention 17 décembre 2008
2 juin 2006 à 10:26
Exactement ce qu'il me fallait !! Merci

Très bon code, bonne continuation.

9/10
mickaelpfr Messages postés 197 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 29 avril 2009 2
2 juin 2006 à 10:25
ce que tu peux faire , c'est détecter la taille de la string en px , puis coller l'image de fond de 200px , sur toute la longueur ( via une boucle .... ) et finir par les 2 bords :)
si tu as besoins d'aide , n'hésite pas.
kool76 Messages postés 1 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 2 juin 2006
2 juin 2006 à 09:59
Pas mal du tout :)
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
2 juin 2006 à 09:48
Désolé pour l'orthographe, j'ai du mal le matin :/
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
2 juin 2006 à 09:47
Effectivement, le problême vien que mon image fond.png ne dépasse pas 200px de largeur, donc si le texte est trop long il y aura du blanc.

Bon je pourrai agrandire l'image png, mais j'en profite pour vous demandez s'il n'y a pas un moyen de l'étirer plutot ??? comme ca je reduirait mon image fond.png a 1px de l'argeur !
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
2 juin 2006 à 09:31
Apparement, il y a des problemes lors de la génération d'un image avec un text long

Sinon le code semble correct
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
2 juin 2006 à 08:20
Très sympa, simple et efficace :)
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
2 juin 2006 à 02:49
Voila la classe est améliorée ! ;)
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
2 juin 2006 à 01:15
On m'a aussi fait remarquer trés justement que php GD est tres friand en ressources serveur, et donc l'utilisation systématique de cette classe peut être lourd.

C'est pourquoi je parlais d'une utilisation offline, juste pour créer les boutons et les sauvegarder...

Mais peut etre qu'on pourrait aller plus loin. En effet, je pourrais ajouter un test dans ma classe qui verifierai si l'image existe déja ou non dans le repertoire /btn/. S'il existe deja, je n'ai qu'a retourner les parametre $hauteur, $largeur et $nom de l'image en question. Si l'image n'existe pas, alors que je la crée (ce sera la seule et unique fois).

Bref dés que j'ai le temps, je l'améliore =)
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
2 juin 2006 à 01:03
Effectivement, seulement quand j'ai concu cette classe, ce n'était que pour la création de boutons et donc je n'ai pas imaginé de texte alternatifs avec ":" ou bien "/".

Pour contourner ce probleme, tu peux ajouter ces caractere dans la variable $a de la fonction formateret ajouter 2 "_" dans $b ! :)

Mais il est vrai que cela peut permettre de creer des adresses email, avec un petit dessins mail, ca peut le faire wi !!! ;) mais dans ce cas la, il fait remplacer les caractere "@" et "." de la meme maniere qu'au dessus.

Bon, je vais arranger tout ca :D
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
1 juin 2006 à 22:03
Désolé de revenir à la charge ^^' mais je viens de m'apercevoir
que ton script ne gère pas certains caractères ( pour la création de l'image )

Bref il faudrait mieux remplacer les caractères qui empêchent la création
de l'image ( avec un str_replace(); ça le ferait je crois )
Car par exemple il ne marche pas avec la date
( oui je sais je suis chiant ^^' )
Ex.:
'22:00 31/05/2006' me revoie l'erreur suivante :

Warning: imagepng(): Unable to open 'img/btn/btn_sup_22:00_31/05/2006.png' for writing in \***\****\****\**\bouton.classe.php on line 59

( Encore désolé ^^' )
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
1 juin 2006 à 21:55
Je viens à peine d'y penser mais ta source peut aussi permettre
de protéger contre le spam. Enfin, je pense.
On peut s'en servire pour créer des images contenant des adresses mail, et
ainsi ça pourrait être un bon moyen contre le spam, non ?

Bref ta source peut avoir des utilisations multiples ( enfin pour moi ^^' )
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
1 juin 2006 à 20:39
quel belle source :)
que sa soit au niveau de la source ou au niveau du résultat ( image générer )
La class de la source est bien concu et l'image est belle....
Bref pour moi sa sera un 10/10 plus des félicitations ;)
tazmania37 Messages postés 46 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 10 novembre 2009
1 juin 2006 à 18:31
Génial, j'ai mis 10 !
mickaelpfr Messages postés 197 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 29 avril 2009 2
1 juin 2006 à 18:00
class propre et simple, corectement commenté ... j'ai noté 9
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
1 juin 2006 à 17:49
Oui il faut GD. Cela dit, cela peut trés bien être un script qui tourne seulement en local pour generer et sauvegarder tout ses boutons avant de les ftp.

C'est un gain de temps par rapport à toshop ou gimp =)
Andrei2006 Messages postés 7 Date d'inscription jeudi 13 avril 2006 Statut Membre Dernière intervention 22 septembre 2006
1 juin 2006 à 17:43
Il te faut GD pour ça non ?
Domage, mon hébergeur ne gère pas la bibliothèque GD :(
cs_Franquito Messages postés 61 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 23 décembre 2006
1 juin 2006 à 17:13
ils se trouvent dans $rep à savoir ./img/btn/

Peut être devrais je les mettre dans un zip avec la classe ?
Utilisateur anonyme
1 juin 2006 à 16:52
où se trouvent les png requis?
genre fond.png
Rejoignez-nous