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):
<?php $oTagCloud = new VtagCloud(); // lub $oTagCloud = new VtagCloud(6); ?>
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().
<?php $oTagCloud->set('php', 90); $oTagCloud->php = 90; ?>
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().
<?php $oTagCloud->remove('Uncategorized'); ?>
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.
<?php $aInitialized = $oTagCloud->init(); ?>
$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ń:
<?php include 'VtagCloud.Class.php'; $oTagCloud = new VtagCloud(); $oTagCloud->set('php', 90); $oTagCloud->set('oop', 30); $oTagCloud->set('php.pl', 60); $oTagCloud->set('mysql', 115); $oTagCloud->set('php5', 60); $oTagCloud->set('SEO', 70); $oTagCloud->set('linux', 50); $oTagCloud->set('athlan', 5); $oTagCloud->set('vgroup.pl', 50); $oTagCloud->set('Internet', 100); $oTagCloud->set('wykop', 40); $oTagCloud->set('Uncategorized', 5); $aInitialized = $oTagCloud->init(); /** * Sample of use */ echo '<div style="width: 200px; border: 1px solid #eaeaea; background: #f9f9f9; padding: 15px
; font-family: Tahoma;">'; foreach($aInitialized as $sTagName => $iTagRange) ?>
<?php foreach($aInitialized as $sTagName => $iTagRange) ?>
Proszę o ocenę i podanie tego co Was gryzie, co by się przydało, co przeoczyłem
