Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

[userbar] Dynamicznie generowane userbary

Dziś napiszę o dynamicznie generowanych userbarach.

Plusy takiego rozwiązania to możliwość podania jednego linku do userbara, który będzie się zmieniał losowo.

Userbar generuje się na serwerze za pomocą skryptu w PHP z użyciem podstawowej biblioteki graficznej (GD). Działanie skryptu polega na wylosowanie elementu z tablicy, a następnie otworzeniu pliku o nazwie pobranej z tablicy i wyświetlenie go na wyjściu.

Aby skrypt był widziany jako plik "userbar.png" należy wpisać odpowiednią regułę do pliku ".htaccess" w folderze ze skryptem.

Przykładowe userbary (Example):

Example 1 Example 2 Example 3 Example 4 Example 5

Oraz wynik działania skryptu (wylosowany jeden z powyższych userbarów, odświeża się co odświeżenie strony w przeglądarce):

Example Script

Pliki:

Całość opiera się na dwóch plikach:
- userbar.php (to jest skrypt, który losuje i wyświetla wylosowany userbar)
- .htaccess (zawiera regułę, dzięki której plik "userbar.php" jest widziany jako "userbar.png")

Plik "userbar.php" (należy dodać tagi PHP): // content of table // zawartosc tablicy $table = array(1, 2, 3, 4, 5); // random number // losowy numer $rand = array_rand($table); // put the number to the code of the image // wlozenie wylosowanego numeru do kodu obrazu $im = imagecreatefrompng("$table[$rand].png"); // show script as image/png // pokazanie skryptu jako obraz/png header('Content-type: image/png'); // show image // pokazanie obrazu imagepng($im); imagedestroy($im);

Plik ".htaccess":RewriteEngine On RewriteRule userbar.png userbar.php

Paczka z przykładowym skryptem i userbarami jest dostępna do ściągnięcia z mojego serwera:example.zip

Skrypt w całości mojego autorstwa.
 

Komentarze

0 nowych
Wasacz   6 #1 15.10.2010 18:46

Zapomniałeś o tym, że przeglądarka będzie keszować obrazek, więc z rotowania nici.

A poza tym: .

Wasacz   6 #2 15.10.2010 18:47

Ech, nie ma jak wycinanie tagów na siłę.

Link: http://www.alistapart.com/articles/randomizer/

XeonBloomfield   5 #3 15.10.2010 21:43

Mowa tutaj o losowaniu, a nie rotacji obrazków.

Praktyka jest taka, że generowany userbar jest widziany jako strona w stronie, co sprawi, że za każdym odświeżeniem / wejściem na stronę otwierana jest ona od nowa co skutkuje nowym userbarem wprost z losowania.

Wasacz   6 #4 16.10.2010 11:16

Losowanie i rotowanie to jedno i to samo… A po kolejnym wejściu jest bardzo prawdopodobne, że nowy obrazek nie będzie pobierany, tylko będzie użyty ten zakeszowany (bo nie zapewniłeś odpowiednich nagłówków serwera).

  #5 16.10.2010 15:25

@Wasacz
jezeli zmieni sie rozmiar obrazka to przegladarka go pobierze <.< no chyba ze uzywasz jakiejs tandety

bart86   10 #7 16.10.2010 21:02

ważne że działa :)

XeonBloomfield   5 #8 16.10.2010 21:33

@Wasacz: Link jest ładowany jako strona to raz. Dwa, że za każdym razem otwiera się ona na nowo, kiedy wchodzisz na stronę lub ją odświeżasz... Sprawdź na forum przy moich wypowiedziach, że tak jest.
Rotacja to działanie według określonej pętli 1 > 2 > 3 > 4 > 5, losowanie to wylosowanie (w tym przypadku) danej liczby z przedziału, co daje: 2 > 5 > 3 > 1 > 4 > itd...

@bart86: Dokładnie.

@FXJ: Na blogu tagi [img] nie działają.

  #9 17.10.2010 09:18

Opisałeś to w tak wielkim skrócie, że nic człowiek z tego nie wie. w jakim programie się takie coś tworzy? Gdzie się wrzuca ów plik? Jak i co? Dosyć ogólnikowy opis.

XeonBloomfield   5 #10 17.10.2010 21:14

@Karolinah: Userbary tworzy się w programach graficznych (Paint, GIMP, itd.) lub ściąga z internetu (są strony z bazami Userbarów po kilkanaście tysięcy grafik). Jestem człowiekiem konkretnym, który piszę to w taki sposób, aby ktoś kto siedzi w temacie zrobił to w przeciągu 5 minut. Nie chce tłumaczyć tego laikom, ponieważ będą mieli z tym więcej problemów niż pożytku...

  #11 18.10.2010 18:12

@XeonBloomfield "aby ktoś kto siedzi w temacie zrobił to w przeciągu 5 minut. Nie chce tłumaczyć tego laikom, ponieważ będą mieli z tym więcej problemów niż pożytku..."

Ale nie każdy w temacie siedzi. No to nie ma najmniejszego sensu, byś takie "porady" dawał, skoro nie bierzesz pod uwagę laików.

XeonBloomfield   5 #12 19.10.2010 21:11

@satanus_85: Wiem, dziękuje. Zrobiłem to dokładnie w tym celu.

@Karolinah: Tego typu "porady" są bardzo pożyteczne. Jak myślisz, ile by zajął wpis (albo felieton) na temat "Userbara", jeżeli trzeba by było tłumaczyć jak się zakłada stronę, przesyła pliki przez FTP (bądź interfejs browserowy), zapisuje grafikę w formacie PNG (Portable Network Graphics), edytuje tablicę w PHP (modyfikacja, dodawanie, usuwanie - nie każdy ma 5 userbarów, jak w przykładowym kodzie, jak i czasem nie w takich nazwach - kwestia późniejszego rozpoznania np. przez FTP po nazwie pliku), a do tego jeszcze edycja / stworzenie / odnalezienie pliku ".htaccess" w którym jest reguła do mod_rewrite ?

  #13 20.10.2010 11:07

Taki wpis byłby o wiele bardziej wartościowszy.

XeonBloomfield   5 #14 20.10.2010 17:05

@Karolinah: Możliwe, że w przyszłości zamieszczę takie wpisy, jednak na razie są bardzo pożyteczne dla "ludzi w temacie"...

  #15 20.10.2010 20:20

Niestety... a dla laików nie.

[c4d]   2 #16 19.12.2010 18:10

Mi się przydało. Bardzo dobra sprawa.

Wielkie dzięki. Aż dodam do zakładek ten wpis :P

webnull   9 #17 08.01.2011 17:57

@Wasacz
A co jak by przekierowywać na inny obrazek?

header('Location: obrazek-' .rand(1,50). '.png');

RewriteRule ^obrazek-([0-9])$ userbar.php