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 18:24:05 | postnuke_official/html/modules/categories | pnuserapi.php,1.4,1.5 | Mike |
| add a leftjoin function to return table, field and where clause | |||
Update of /home/cvsroot/postnuke_official/html/modules/categories
In directory ns7.hostnuke.net:/tmp/cvs-serv5572
Modified Files:
pnuserapi.php
Log Message:
add a leftjoin function to return table, field and where clause
Index: pnuserapi.php
===================================================================
RCS file: /home/cvsroot/postnuke_official/html/modules/categories/pnuserapi.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** pnuserapi.php 27 Jul 2002 23:48:59 -0000 1.4
--- pnuserapi.php 30 Jul 2002 18:24:02 -0000 1.5
***************
*** 591,593 ****
--- 591,655 ----
}
+ /**
+ * 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)
+ {
+ // Get arguments from argument array
+ 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));
+ return array();
+ }
+ // TODO: check this !
+ 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));
+ return array();
+ }
+ }
+
+ // Table definition
+ $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;
+ }
+
?>
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 |