Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Generator przycisku w php
Forum PHP.pl > Forum > Przedszkole
free
Mam skrypt generujacy mi przyciski na stronie w dziale menu.

przycisk.php :
  1. <?
  2. if (isset($_GET['tekst'])) $tekst=$_GET['tekst']; else $tekst="";
  3.  
  4. $przycisk=imagecreatefrompng("tlo.png");
  5.  
  6. $x = ImageSX($przycisk);
  7. $y = ImageSY($przycisk);
  8.  
  9. $ramka = 5;
  10. $rozmiar_czcionki = 11;
  11. $czcionka = 'arial.ttf';
  12.  
  13. do {
  14. $rozmiar_czcionki--;
  15.  
  16. $rozmiar = imagettfbbox ($rozmiar_czcionki, 0 , $czcionka, $tekst); 
  17. $wys_txt = $rozmiar[7] - $rozmiar[1];
  18. $szer_txt = $rozmiar[2] - $rozmiar[0];
  19.  
  20. } while ($rozmiar_czcionki>&& ($wys_txt>($y-2*$ramka) || $szer_txt>($x-2*$ramka)));
  21.  
  22.  
  23. $srodek_x = ($x-$szer_txt) / 2;
  24. $srodek_y = ($y-$wys_txt) / 2;
  25.  
  26.  
  27. $kolor = Imagecolorallocate($przycisk, 50,143,77);
  28. ImageTTFText ($przycisk, $rozmiar_czcionki, 0, $srodek_x, $srodek_y, $kolor, $czcionka, $tekst);
  29.  
  30. Header("Content_type: image/png");
  31. ImagePNG($przycisk);
  32.  
  33. ImageDestroy($przycisk);
  34.  
  35. ?>


Krotki opis dzialania : w katalogu ze strona umieszczamy dany plik przycisk.php + plik z czciaonka np ariel.ttf + obrazek tla z rozszezeniem *.png.

I wpliku menu.php lub lista.php umieszczam
  1. <a href="http://www.php.pl"><img border="0" src="przycisk.php?tekst=Link do php"></a>

Chcialbym aby ten generator generowal takze drugi obrazek po najechaniu myszka cos w rodzaju on mouse over.
strife
No to albo dodajesz nowe konstrukcje do tego pliku generującego tekst albo tworzysz nowy z obrazkiem jaki ma być po hover.
  1. <a href="#" onMouseOver='document.images.dance.src="przycisk.php?tekst=A teraz Hover tongue.gif"' onMouseOut='document.images.dance.src="przycisk.php?tekst=Link bez Hover"'>
  2. <img  name='dance' alt="dance" src="przycisk.php?tekst=Link bez Hover" />
  3. </a>

Coś mniej więcej takiego?
free
Mógłbys wytłumaczyc co to za
  1. document.images.dance.src
?

Myslalem by stworzyc kolejny plik przycisk2.php, ktory zawieralby kod z pliku przycisk.php wyswietlajacy inny przycisk pojawiajacy sie po najechaniu myszka.

w kodzie strony dalbym np
  1. <img border="0" src="przycisk.php?tekst=Link do php">
+ komenda onMouseOver onMouseOut z opcja
src="przycisk2.php?tekst=Link

Nie sprawdzalem tego, to bardzo okrezny sposob.
tiraeth
Kod JS:
Kod
function _hoverImage(txt)
{
   document.getElementById('obrazek').src = 'picture2.php?tekst=txt';
}

function _normalImage(txt)
{
   document.getElementById('obrazek').src = 'picture.php?text=txt';
}


_hoverImage - zmienia src obrazka o id=obrazek na picture2.php?....
_normalImage - zmienia src obrazka o id=obrazek na picture.php?....

  1. <a href="http://php.pl"><img id="obrazek" src="picture.php?tekst=Wortal php"  border="0" onmouseover="_hoverImage('Wortal php')" onmouseout="_normalImage('Wortal php')" /></a>
free
Nadal mam swiateczny metlik w glowie.
Jak polaczyc to z moim kodem przycisk.php
tiraeth
Najlepiej użyj kleju i zlep je ze sobą.... myślisz czasem? Czy potrzebujesz odpowiedzi "na tacy" ? (eh... i tak ci podałem na tacy!)

Utwórz plik przycisk2.php, wrzuć mu zawartość pliku przycisk.php, tylko zmień w linijce jedenastej wartość zmiennej na 9

Kod JS wrzuć do <script type="text/javascript"></script> w sekcji head dokumentu html

Kod tego durnego obrazka (HTML) wrzuć gdzieś na stronie i zobacz efekt... jeżeli dalej nie rozumiesz to ręce opadają i radzę Ci poszukać innego forum...
free
Strone testuje na www

plik index.php :
  1. <?php
  2. <html>
  3. <head>
  4.  
  5. &#60;script type="text/javascript">
  6.  
  7. function _hoverImage(txt)
  8. {
  9. document.getElementById('obrazek').src = 'przycisk2.php?tekst=txt';
  10. }
  11.  
  12. function _normalImage(txt)
  13. {
  14. document.getElementById('obrazek').src = 'przycisk.php?text=txt';
  15. }
  16.  
  17. </script>
  18. </head>
  19. <body>
  20.  
  21.  
  22. <a href="http://php.pl"><img id="obrazek" src="przycisk.php?tekst=Strona php" border="0" onmouseover="_hoverImage('Strona php')" onmouseout="_normalImage('Strona php')" /></a>
  23.  
  24. <br>
  25. <a href="http://php.pl"><img id="obrazek" src="przycisk.php?tekst=Strona 2" border="0" onmouseover="_hoverImage('Strona 2')" onmouseout="_normalImage('Strona 2')" /></a>
  26. </body>
  27. </html>
  28.  
  29. ?>
zmieniłem w nim src = 'picture2.php?tekst=txt' na src = 'przycisk2.php?tekst=txt' by pasowalo do reszty skryptu

stworzylem plik przycisk2.php
Dziala przy jednym obrazku ale juz przy 2 i wiecej glupieje
LBO
o mamusiu... biggrin.gif gdy chcesz chcesz uzywac funckcji "hoverującej" zdjęcia dla więcej niż jednego img musisz stworzyć bardziej elastyczne funkcje:
Kod
function _hoverImage(txt, id)
{
  document.getElementById(id).src = 'przycisk2.php?tekst=' + txt;
}

function _normalImage(txt, id)
{
  document.getElementById(id).src = 'przycisk.php?text=' + txt;
}


a potem w HTML:

  1. <a href="http://php.pl"><img id="obrazek" src="przycisk.php?tekst=Strona php"  border="0" onmouseover="_hoverImage('Strona php', this.id)" onmouseout="_normalImage('Strona php', this.id)" /></a>


edit: i jeszcze podpowiem mały feature: cache'uj te zdjęcia (zapisuj już utworzone na dysku). Znacznie przyspieszysz skrypt.
fre
Niestety to tez nie wnosi poprawy w funkcjonalnosci skryptu.
tiraeth
Tylko może w każdym <img> zmień id na jakieś inne....
free
Dodalem inne ID do kazdego obrazka i nic nie pomogło.
bim2
Pomoglo, mi dziala
free
Podeslij link lub wklej dzialajacy kod
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.