![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Klasa tagów.
Jako że tagi były zmorą programistów, pozwoliłem sobie napisać klasę, będę jej potrzebował do dalszych eksperymentów, więc daje do oceny Wam drodzy Forumowicze. Klasa tagów: http://www1.speedyshare.com/data/272766545...Cloud.Class.php Instancja i poziomy tagów Klasa nadaje poziomy (levele) słowom (tagom) które są ustanawiane przez użytkownika. Domyślnie jest 10 poziomów tagów. Możemy ustawić sobie 6 poziomów (chociażby dla nagłówków HTML). Ilość poziomów definiujemy w konstruktorze klasy, parametru nie musimy podawać, domyślnie posiada wartość 10):
Dodawanie tagów Do dodania tagów służą metody __set() (jako metoda magiczna z odwołaniem do klasy) oraz set(); Tagi zapisujemy jako NAZWA_TAGU => ILOŚĆ WYSTĘPOWAŃ W BAZIE. Pamiętajmy, że przy użyciu metody magicznej __set() tag musi spełniać normy nazw zmiennych (tylko litery i cyfry włączając znak _, nie zaczynając od liczby). Jeżeli mamy potrzebę nazwania tagu ze spacją, bądź jakimś znakiem, jesteśmy zmuszeni użyć metody set().
Przeglądanie tagów Możemy pobierać ilość występowań tagu (analogicznie do __set() i set()), jeżeli w metodzie get() nie podamy parametry, zwracana zostaje tablica ze wszystkimi tagami. Usuwanie tagów Usunąć tag możemy poprzez analogiczne użycie metody __get() z funkcją unset() lub poprez metodę remove().
Sprawdzanie istnienia tagów Sprawdzić tag możemy poprzez analogiczne użycie metody __get() z funkcją isset() lub poprzez metodę has(). Inicjowanie chmurki Całość inicjujemy metodą init() (initialize), metoda zwróci tagi z ich realną wagą w skali 1 - 10 (domyślnie) lub 1 - WYBRANA WAGA w konstruktorze klasy.
$aInitialized teraz posiada budowę TAG => WAGA Dostęp Klasa implementuje ArrayAccess, Iterator i Countable, jest klasą finalną, wykorzystuje wyjątki klasy VtagCloud Exception dziedziczącej po Exception Przykłady zastosowań:
Proszę o ocenę i podanie tego co Was gryzie, co by się przydało, co przeoczyłem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
Hm testuje właśnie, jest ciekawie, ale moim zdaniem wielkości czcionki tagów powinny być generowane w ustalonym zakresie bo teraz to nie ma sensu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mam 5 tagów o następujących występowaniach : 1,1,1,2,3 no i tych z występowaniem 1 nie widać po prostu - są tak małe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
A gdyby było ustalanie zakresu wielkości fontów to klasa by była super (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#3
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
@Balon, klasa ranguje tylko tagi, co z tymi rangami zrobisz - Twoja sprawa... ja na przykład wrzucam to do klas i css sie tym zajmuje (wielkość i kolor czcionki) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 225 Pomógł: 0 Dołączył: 1.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Klasa implementuje ArrayAccess, Iterator i Countable mógłbyś pokazać w przykładach po co to... Proponowałbym zmienienie (__)get-a tak, aby zwracał już levele tagów i tak samo przy pobraniu przez ArrayAccess, a ilość występowań tagu przez inną metodę np. getCount() albo coś takiego. Można by wtedy wywalić init, albo zmienić na private i żeby zapisywał wynik do pola w obiekcie, a odbywało by się to przy pierwszym wywołaniu (__)get-a albo którejś metody ArrayAccess-a |
|
|
![]()
Post
#5
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat mógłbyś pokazać w przykładach po co to... Rób z tym co chcesz... generalnie chodzi o to ze moze zdarzyc sie sytuacja, gdzie nie mamy juz dostepu do zrodla tagow (bo zamknelismy), a jakis odczyt musi byc... po to jest ArrayAccess (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Cytat Proponowałbym zmienienie (__)get-a tak, aby zwracał już levele tagów i tak samo przy pobraniu przez ArrayAccess, a ilość występowań tagu przez inną metodę np. getCount() albo coś takiego. Można by wtedy wywalić init, albo zmienić na private i żeby zapisywał wynik do pola w obiekcie, a odbywało by się to przy pierwszym wywołaniu (__)get-a albo którejś metody ArrayAccess-a Levele tagów MUSZĄ - podkreślam - wystapic PO metodzie inicjowania. Dlaczego? A po co inicjiować to samo przy kazdym dodaniu tagu ? Zbedny czas a innej symulacji nie ma. Więc uwagę porzucam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 225 Pomógł: 0 Dołączył: 1.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat A po co inicjiować to samo przy kazdym dodaniu tagu ? A czy ja mówię, że masz inicjować przy każdym dodaniu tagu? Wyraźnie chyba napisałem Cytat Można by wtedy wywalić init, albo zmienić na private i żeby zapisywał wynik do pola w obiekcie, a odbywało by się to przy pierwszym wywołaniu (__)get-a albo którejś metody ArrayAccess-a
|
|
|
![]()
Post
#7
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Można by wtedy wywalić init, albo zmienić na private i żeby zapisywał wynik do pola w obiekcie Tak, ale nie ma mozliwosci wyliczenia wagi tagu przed dodaniem ich wszystkich... tak czy siak, init musi być (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jak chcesz coś udowodnić to na form zazwyczaj pisze się swoje kody (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przykłady: http://forum.php.pl/index.php?s=&showt...st&p=367004 http://forum.php.pl/index.php?s=&showt...st&p=362528 @Hacker, Jak masz jakieś pomysły to śmiało wal i pokazuj kod (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) może będzie przydatne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 225 Pomógł: 0 Dołączył: 1.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
ok rzucę, więc kodem...
http://www.speedyshare.com/941383315.html Zmiany: init - private get - zwraca obliczony poziom tagu Dodanie private initOne - initializuje jedynie 1 tag public getCount - dawny get public addAll - dodaje wszystkie tagi z tablicy Edit: Kod już bez błędów Ten post edytował Hacker 12.06.2007, 17:42:50 |
|
|
![]()
Post
#9
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat ok rzucę, więc kodem... Faktycznie rzuciłeś, nawet nie raczyłeś sprawdzić, czy dobrze napisałeś... parse i undefined varibles - to jest to ;] Cytat get - zwraca obliczony poziom tagu I co? tak czy siak... i tak Initujesz (liczysz od nowa wszstkie tagi i jego poziom). A co gdy na przykład pobiorę sobie wage tagu potem dodam nowy i stare dane nie są aktualne? Hę? Od tego jest u mnie Init(). Tak więc nic nie wniosłeś do tematu, a wykłócałeś się klika postów... bez komentarza... Daj sobie chłopie siana. Nawet zmienne Ci się nie zgadzają (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam, Athlan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ------ Cytat Daj sobie chłopie siana. Bez takich (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) - tiraeth |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tak, tylko po co mi to? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Gdyby jakoś ciekawie to sortowało, to ja rozumiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A tak, to nie jest to przydatne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Pobiorę sobie kategorie i wyświetlenia, policzę 3 linijkami wagę (pętla-liczenie-koniec_petli) i wyswietle tak jak Ty wyświetlasz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Natchnęło mnie to, sam napisze coś takiego, ale będzie więcej bajerów (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod ciekawy, ale nie przydatne jak dla mnie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) - 4/6 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 3 Dołączył: 23.10.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Bardzo fajna zabawka (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) prosto i przyjemnie o i plus bo widzę ArrayAccess czyli fajnie by się na tym pracowało (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
konkretnych zastosowań nie widzę ale jako silniczek wspierający jakieś inne funkcje fajnie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) np do obliczania wagi słów kluczowych w szukajce przy analizie trafności zapytania ;P |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Athlan liczenie rangi nie działa u Ciebie prawidłowo.
Zerknij na moje rozwiązanie (ostatni post): http://forum.php.pl/index.php?showtopic=10...t=0#entry513167 --edit (@ociu) Powinieneś dostać ostrzeżenie, za odkopywanie starych tematów. To jest ostatnie moja taka wiadomość. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 22:51 |