2009-11-06 7 views
0

Я пытаюсь создать те же решения, что и ниже, но используя простой запрос MySQL (вместо статической версии, используемой ниже, где слова/теги реализованы в коде). Имя таблицы MySQL является «тегами» и имеет 2 столбца «id» & «tag».Пометка с Zend Framework

К сожалению, я новичок, и я не смог это решить. Кто-нибудь может мне помочь?

/* 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; 

ответ

0

Вы могли бы сделать fetchAll на DbTable модели, которая реализует таблицу MySQL, а затем просто петлю и добавить элементы, или создать массив, например:

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

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

идентификатор не может быть правильный способ реализовать вес :) лучше было бы делать запрос с группой по тегу и счету (тегу) как вес –

+0

Я бы поднял, но материал 'weight' должен быть отредактирован! – RageZ

+0

Я думаю, что это зависит от пользователя, она говорит, что у нее только id & tag :) – Chris