2009-11-06 7 views
0

J'essaie de créer les mêmes solutions que ci-dessous, mais en utilisant une simple requête MySQL (au lieu de la version statique utilisée ci-dessous où les mots/tags sont implémentés dans le code). Le nom de la table MySQL est "tags" et il a 2 colonnes "id" & "tag".Marquage avec Zend Framework

Malheureusement, je suis débutant et je n'ai pas été capable de résoudre ce problème. Est-ce que quelqu'un peut m'aider?

/* Zend_Tag_Item version*/ 

$list = new Zend_Tag_ItemList(); 

$list[] = new Zend_Tag_Item(array('title' => 'Code', 'weight' => 50)); 
$list[] = new Zend_Tag_Item(array('title' => 'Zend Framework', 'weight' => 1)); 
$list[] = new Zend_Tag_Item(array('title' => 'PHP', 'weight' => 5)); 

$list->spreadWeightValues(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); 

foreach ($list as $item) { 
    $this->view->tagtitle = $item->getTitle(); 
    $this->view->tagweight = $item->getParam('weightValue'); 
} 


/* Zend_Tag_Cloud version*/ 

$cloud = new Zend_Tag_Cloud(array(
    'tags' => array(
     array('title' => 'Code', 'weight' => 50, 
       'params' => array('url' => '/tag/code')), 
     array('title' => 'Zend Framework', 'weight' => 1, 
       'params' => array('url' => '/tag/zend-framework')), 
     array('title' => 'PHP', 'weight' => 5, 
       'params' => array('url' => '/tag/php')), 
    ) 
)); 

$formdata->pagecontent->tagging = $cloud; 

Répondre

0

Vous pouvez faire un fetchAll sur un modèle DbTable qui implémente votre table MySQL, et puis juste boucle et ajouter les éléments, ou créer le tableau, par exemple:

$tags = array(); 
foreach($TagTable->fetchAdd() as $tag) { 
    $tags[] = array('title' => $tag['tag'], 'weight' => $tag['weight']); 
} 

$cloud = new Zend_Tag_Cloud(array('tags' => $tags)); 
+0

id pourrait ne pas être la bonne façon d'implémenter le poids :) mieux serait de faire une requête avec groupe par étiquette et compte (tag) comme poids –

+0

Je voudrais upvote mais le truc 'weight' devrait être édité! – RageZ

+0

Je pense que c'est à l'utilisateur, elle dit qu'elle a seulement id & tag :) – Chris