Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Klasa tagów, VtagCloud.Class.php
Athlan
post
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):

  1. <?php
  2. $oTagCloud = new VtagCloud();
  3. // lub
  4. $oTagCloud = new VtagCloud(6);
  5. ?>


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().

  1. <?php
  2. $oTagCloud->set('php', 90);
  3. $oTagCloud->php = 90;
  4. ?>


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().

  1. <?php
  2. $oTagCloud->remove('Uncategorized');
  3. ?>


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.

  1. <?php
  2. $aInitialized = $oTagCloud->init();
  3. ?>


$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ń:

  1. <?php
  2.  
  3. include 'VtagCloud.Class.php';
  4.  
  5. $oTagCloud = new VtagCloud();
  6. $oTagCloud->set('php', 90);
  7. $oTagCloud->set('oop', 30);
  8. $oTagCloud->set('php.pl', 60);
  9. $oTagCloud->set('mysql', 115);
  10. $oTagCloud->set('php5', 60);
  11. $oTagCloud->set('SEO', 70);
  12. $oTagCloud->set('linux', 50);
  13. $oTagCloud->set('athlan', 5);
  14. $oTagCloud->set('vgroup.pl', 50);
  15. $oTagCloud->set('Internet', 100);
  16. $oTagCloud->set('wykop', 40);
  17. $oTagCloud->set('Uncategorized', 5);
  18.  
  19. $aInitialized = $oTagCloud->init();
  20.  
  21. /**
  22.  * Sample of use
  23.  */
  24.  
  25. echo '<div style="width: 200px; border: 1px solid #eaeaea; background: #f9f9f9; padding: 15px
    ; font-family: Tahoma;">'
    ;
  26.  
  27. foreach($aInitialized as $sTagName => $iTagRange)
  28. echo '<span style="font-size: '.($iTagRange * 3).'px">'.$sTagName.'</span> ';
  29.  
  30. echo'</div>';
  31.  
  32. ?>


  1. <?php
  2. foreach($aInitialized as $sTagName => $iTagRange)
  3. echo '<span class="tag_' . $iTagRange . '">'.$sTagName.'</span> ';
  4. ?>


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)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:26