All pastes #463213 Raw Edit

keywordsarticle

public php v1 · immutable
#463213 ·published 2007-04-28 21:03 UTC
rendered paste body
# # old_revision [52cc8b76f8fbcc16ced5ad79217a3bb0c3c0c7f9]# # patch "xarblocks/keywordsarticles.php"#  from [3d204e7eee7780b8176befbd5d8c9197dbcbf8ec]#    to [729e1bc08eaf13437fdd77cfe5115afc19e7a7a3]# ============================================================--- xarblocks/keywordsarticles.php      3d204e7eee7780b8176befbd5d8c9197dbcbf8ec+++ xarblocks/keywordsarticles.php      729e1bc08eaf13437fdd77cfe5115afc19e7a7a3@@ -94,25 +94,47 @@ function keywords_keywordsarticlesblock_             //for each keyword in keywords[]             $items = array();             $data['items'] = array();+            +            $keyword=array();             foreach ($keywords as $id => $word) {-               //$item['id'] = $id;-               //$item['keyword'] = xarVarPrepForDisplay($word);-               // get the list of items to which this keyword is assigned-               //TODO Make itemtype / modid dependant-                $items = $items + xarModAPIFunc('keywords','user','getitems',-                                   array('keyword' => $word,-                                        'itemtype' => $vars['ptid']));+               $keyword[] =  'xar_keyword =\'' .$word . '\'';             }-            //make itemid unique (worst ever code)-            $tmp = array();-            $itemsB = array();-            foreach ($items as $id => $item) {-                if (!in_array($item['itemid'], $tmp) ) {-                    $tmp[] = $item['itemid'];-                    $itemsB[] = $item;-                }-            }-             foreach ($itemsB as $id => $item) {+            $dbconn =& xarDBGetConn();+               $xartable =& xarDBGetTables();+                       $keywordstable = $xartable['keywords'];+            $wheres=implode(' OR ',$keyword);+            $query='SELECT xar_itemid, xar_moduleid, xar_itemtype, COUNT(xar_id) FROM '. $keywordstable.' WHERE ' . $wheres . 'GROUP BY xar_itemid ORDER BY COUNT(xar_id) DESC, xar_itemid DESC';+                       $result =& $dbconn->SelectLimit($query, 10,-1, array());+                       $items=array();+                       while (!$result->EOF) {+                               $item=array();+                               list($item['itemid'],+               $item['moduleid'],+               $item['itemtype']) = $result->fields;+               $result->MoveNext();+               $items[$item['itemid']] = $item;+                       }+                       $itemsB = $items;+                       $result->close();+//            foreach ($keywords as $id => $word) {+//               //$item['id'] = $id;+//               //$item['keyword'] = xarVarPrepForDisplay($word);+//               // get the list of items to which this keyword is assigned+//               //TODO Make itemtype / modid dependant+//                $items = $items + xarModAPIFunc('keywords','user','getitems',+//                                   array('keyword' => $word,+//                                        'itemtype' => $vars['ptid']));+//            }+//            //make itemid unique (worst ever code)+//            $tmp = array();+//            $itemsB = array();+//            foreach ($items as $id => $item) {+//                if (!in_array($item['itemid'], $tmp) ) {+//                    $tmp[] = $item['itemid'];+//                    $itemsB[] = $item;+//                }+//            }+             foreach ($itemsB as $itemid => $item) {                     if ($data['itemid'] != $item['itemid'] || $data['modid'] != $item['moduleid']                     || $data['itemtype'] != $item['itemtype']) {                     if ( $articles = xarModAPIFunc('articles','user','get',@@ -122,7 +144,6 @@ function keywords_keywordsarticlesblock_                         //if the related article already exist do not add it                         if (stristr($vars['status'], $articles['status'])) {                             $data['items'][] = array(-                                        'keyword' => $item['keyword'],                                         'modid' =>  $item['moduleid'],                                         'itemtype' => $item['itemtype'],                                         'itemid' => $item['itemid'],