इस विधि SQL/PostgreSQL
कट्टरपंथियों के लिए है। यह डेटाबेस में पूरी नौकरी करता है, और यह "slugified" लिंक के साथ पाठ मुद्रित करता है। यह सिर्फ एसक्यूएल कॉल के लिए सिद्धांत ORM
का उपयोग करता है, मैं वस्तुओं का उपयोग नहीं कर रहा हूं। मान लीजिए हम 10 आकार:
public function getAllForTagCloud($fontSizes = 10)
{
$sql = sprintf("SELECT count(tag) as tagcount,tag,slug,
floor((count(*) * %d)/(select max(t) from
(select count(tag) as t from magazine_tag group by tag) t)::numeric(6,2))
as ranking
from magazine_tag mt group by tag,slug", $fontSizes);
$q = Doctrine_Manager::getInstance()->getCurrentConnection();
return $q->execute($sql);
}
तो आप, कुछ सीएसएस वर्ग के साथ उन्हें प्रिंट .tagranking10 से (सर्वोत्तम) करने के लिए।tagranking1 (सबसे खराब):
<?php foreach ($allTags as $tag): ?>
<span class="<?php echo 'tagrank'.$tag['ranking'] ?>">
<?php echo sprintf('<a rel="tag" href="/search/by/tag/%s">%s</a>',
$tag['slug'], $tag['tag']
); ?>
</span>
<?php endforeach; ?>
और इस CSS
है:
/* put your size of choice */
.tagrank1{font-size: 0.3em;}
.tagrank2{font-size: 0.4em;}
.tagrank3{font-size: 0.5em;}
/* go on till tagrank10 */
इस विधि सभी टैग प्रदर्शित करता है। यदि आपके पास बहुत सारे हैं, तो शायद आप नहीं चाहते कि आपका टैग क्लाउड टैग तूफान बन जाए। उस मामले में आप अपने SQL क्वेरी के लिए एक HAVING TO
खंड संलग्न करेंगे:
-- minimum tag count is 8 --
HAVING count(tag) > 7
बस इतना ही
यह मेरे लिए एक अच्छा दृष्टिकोण लगता है में प्रयोग किया जाता है। यदि आपका डेटा किसी सरणी में है तो बस डेटाबेस भाग को छोड़ दें। मैं आपको कलाकार नाम का संग्रह करने और एक सहयोगी सरणी में गिनने की सलाह दूंगा। उपर्युक्त कोड के साथ यह काम करने के लिए कुछ ऐसा उपयोग करें: $ टैग = सरणी ("जड़ों" => 5, "माइकल जैक्सन" = 3, "बिली मूर्ति" => 9, "मैडोना" => 1); मैं सहमत हूं कि एच टैग का उपयोग न करें क्योंकि यह आपके अर्थशास्त्र को गड़बड़ कर देता है। स्पैन मेरी पसंद होगी। अंत में, ज़ेंडर फ्रेमवर्क में एक सहायक मौजूद है जो आपको केवल वही कर सकता है जो आपको चाहिए। Http://framework.zend.com/manual/en/zend.tag.html – simonrjones
क्षमा करें, उपर्युक्त टिप्पणी में कोई स्वरूपण ऐसा नहीं लगता है! – simonrjones