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 |