Note: this list is kept only as a demonstration for CVSNotice. For the latest CVS notices, see the Xaraya and Postnuke sites
View Statistics - Next Notice - Previous NoticeDirectory filter : [ all ] / postnuke_official / html / modules / categories [ view in CVS ]
Date | Directory [filter] | File(s) [view] | Author [filter] |
30 Jul 2002 22:14:21 | postnuke_official/html/modules/categories | pnuserapi.php,1.5,1.6 | Mike |
generalise leftjoin function |
Update of /home/cvsroot/postnuke_official/html/modules/categories In directory ns7.hostnuke.net:/tmp/cvs-serv6533 Modified Files: pnuserapi.php Log Message: generalise leftjoin function Index: pnuserapi.php =================================================================== RCS file: /home/cvsroot/postnuke_official/html/modules/categories/pnuserapi.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pnuserapi.php 30 Jul 2002 18:24:02 -0000 1.5 --- pnuserapi.php 30 Jul 2002 22:14:19 -0000 1.6 *************** *** 592,609 **** /** ! * return the correct values for joining on categories table ! * example : SELECT ... * FROM ... * LEFT JOIN $table ! * ON $field = <name of itemid field> * WHERE ... ! * AND $where = <module ID> * ! * @param $args['cids'] array of cids that we are selecting on * @returns array ! * @return array('table' => 'categories_linkage', ! * 'field' => 'categories_linkage.pn_iid', ! * 'where' => 'categories_linkage.pn_cid IN (...) ! * AND categories_linkage.pn_modid' */ function categories_userapi_leftjoin($args) --- 592,612 ---- /** ! * return the field names and correct values for joining on categories table ! * example : SELECT ..., $cid, ... * FROM ... * LEFT JOIN $table ! * ON $field = <name of itemid field in your module> * WHERE ... ! * AND $modid = <module ID> // this is *required* for categories ! * AND $where * ! * @param $args['cids'] optional array of cids that we are selecting on * @returns array ! * @return array('table' => 'nuke_categories_linkage', ! * 'field' => 'nuke_categories_linkage.pn_iid', ! * 'where' => 'nuke_categories_linkage.pn_cid IN (...)', ! * 'cid' => 'nuke_categories_linkage.pn_cid', ! * ... ! * 'modid' => 'nuke_categories_linkage.pn_modid') */ function categories_userapi_leftjoin($args) *************** *** 612,626 **** extract($args); ! // Required argument (otherwise you don't need this stuff) ! if (!isset($cids) || !is_array($cids) || count($cids) == 0) { ! $msg = pnML('Required parameter #(1) missing','cids'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'BAD_PARAM', ! new SystemException($msg)); ! return array(); } // Security check if (!pnSecAuthAction(0, 'categories::category', '::', ACCESS_OVERVIEW)) { ! $msg = pnML('Not authorized to view categories'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); --- 615,627 ---- extract($args); ! // Optional argument ! if (!isset($cids)) { ! $cids = array(); } // Security check if (!pnSecAuthAction(0, 'categories::category', '::', ACCESS_OVERVIEW)) { ! $msg = pnML('Not authorized to view #(1)', ! 'categories'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); *************** *** 630,635 **** foreach ($cids as $cid) { if (!pnSecAuthAction(0, 'categories::category', 'ID::$cid', ACCESS_OVERVIEW)) { ! $msg = pnML('Not authorized to view category #(1)', ! pnVarPrepForStore($cid)); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); --- 631,636 ---- foreach ($cids as $cid) { if (!pnSecAuthAction(0, 'categories::category', 'ID::$cid', ACCESS_OVERVIEW)) { ! $msg = pnML('Not authorized to view #(1) #(2)', ! 'category',pnVarPrepForStore($cid)); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); *************** *** 641,652 **** $pntable = pnDBGetTables(); $categorieslinkagetable = $pntable['categories_linkage']; - $categorieslinkagecolumn = &$pntable['categories_linkage_column']; $leftjoin = array(); $leftjoin['table'] = $categorieslinkagetable; ! $leftjoin['field'] = $categorieslinkagecolumn['iid']; ! $allcids = join(', ', $cids); ! $leftjoin['where'] = "$categorieslinkagecolumn[cid] IN (" . pnVarPrepForStore($allcids) . ")"; ! $leftjoin['where'] .= " AND $categorieslinkagecolumn[modid] "; return $leftjoin; --- 642,664 ---- $pntable = pnDBGetTables(); $categorieslinkagetable = $pntable['categories_linkage']; $leftjoin = array(); + + // Specify LEFT JOIN ... ON ... [WHERE ...] parts $leftjoin['table'] = $categorieslinkagetable; ! $leftjoin['field'] = $categorieslinkagetable . '.pn_iid'; ! if (count($cids) > 0) { ! $allcids = join(', ', $cids); ! $leftjoin['where'] = $categorieslinkagetable . '.pn_cid IN (' . ! pnVarPrepForStore($allcids) . ')'; ! } else { ! $leftjoin['where'] = ''; ! } ! ! // Add available columns in the categories table ! $columns = array('cid','iid','modid'); ! foreach ($columns as $column) { ! $leftjoin[$column] = $categorieslinkagetable . '.pn_' . $column; ! } return $leftjoin;
View Statistics - Next Notice - Previous Notice
Visit Developer Site - Browse CVS Repository |
Syndicate via backend.rss (max. once per hour please) | Powered by CVSNotice 0.1.3 |