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_modules / articles [ view in CVS ]
| Date | Directory [filter] | File(s) [view] | Author [filter] |
| 10 Aug 2002 13:05:05 | postnuke_modules/articles | pnadminapi.php,1.11,1.12 | Mike |
| get rid of articlescolumn + much more flexible create/update API for Marcel :-) | |||
Update of /home/cvsroot/postnuke_modules/articles
In directory ns7.hostnuke.net:/tmp/cvs-serv31874
Modified Files:
pnadminapi.php
Log Message:
get rid of articlescolumn + much more flexible create/update API for Marcel :-)
Index: pnadminapi.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pnadminapi.php,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** pnadminapi.php 5 Aug 2002 01:46:02 -0000 1.11
--- pnadminapi.php 10 Aug 2002 13:05:02 -0000 1.12
***************
*** 26,38 ****
/**
* create a new articles item
! * @param $args['title'] name of the item
* @param $args['summary'] summary for this item
! * @param $args['bodytype'] type of input for this item
* @param $args['bodytext'] direct input text for this item
* @param $args['bodyfile'] file input text for this item
- * @param $args['langauge'] language of the item
* @param $args['notes'] notes for the item
* @param $args['status'] status of the item
* @param $args['ptid'] publication type ID for the item
* @returns int
* @return articles item ID on success, false on failure
--- 26,40 ----
/**
* create a new articles item
! * @param $args['title'] name of the item (this is the only mandatory argument)
* @param $args['summary'] summary for this item
! * @param $args['bodytype'] type of input for this item ('text' or 'file')
* @param $args['bodytext'] direct input text for this item
* @param $args['bodyfile'] file input text for this item
* @param $args['notes'] notes for the item
* @param $args['status'] status of the item
* @param $args['ptid'] publication type ID for the item
+ * @param $args['pubdate'] publication date in unix time format (or default now)
+ * @param $args['authorid'] ID of the author (default is current user)
+ * @param $args['language'] language of the item
* @returns int
* @return articles item ID on success, false on failure
***************
*** 43,58 ****
extract($args);
! // Argument check
! if ((!isset($title)) ||
! (!isset($summary)) ||
! (!isset($ptid)) ||
! // (!isset($cids)) ||
! (!isset($bodytype)) ||
! ((!isset($bodytext)) && (!isset($bodyfile))) ||
! (!isset($language))
! ) {
$msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)',
! 'parameters', 'admin', 'create',
! 'Articles');
pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM',
new SystemException($msg));
--- 45,52 ----
extract($args);
! // Argument check (all the rest is optional, and set to defaults below)
! if (empty($title)) {
$msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)',
! 'title', 'admin', 'create', 'Articles');
pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM',
new SystemException($msg));
***************
*** 60,63 ****
--- 54,87 ----
}
+ // Note : we use empty() here because we don't care whether it's set to ''
+ // or if it's not set at all - defaults will apply in either case !
+
+ // Default publication type is 1 (whatever that is for your site...)
+ if (empty($ptid) || !is_numeric($ptid)) {
+ // TODO: make this configurable in admin interface, and use pnModGetVar()
+ $ptid = 1;
+ // for security check below
+ $args['ptid'] = 1;
+ }
+
+ // Default author ID is the current user, or Anonymous (1) otherwise
+ if (empty($authorid) || !is_numeric($authorid)) {
+ $authorid = pnUserGetVar('uid');
+ if (empty($authorid)) {
+ $authorid = 1;
+ }
+ // for security check below
+ $args['authorid'] = $authorid;
+ }
+
+ // Default categories is none
+ if (empty($cids) || !is_array($cids) ||
+ // catch common mistake of using array('') instead of array()
+ (count($cids) > 0 && empty($cids[0])) ) {
+ $cids = array();
+ // for security check below
+ $args['cids'] = $cids;
+ }
+
// Security check
if (!pnModAPILoad('articles', 'user')) {
***************
*** 77,82 ****
}
// Get relevant text
! if ($bodytype == 'file') {
$body = join('', @file($bodyfile));
} else {
--- 101,141 ----
}
+ // Default publication date is now
+ if (empty($pubdate) || !is_numeric($pubdate)) {
+ $pubdate = time();
+ }
+
+ // Default status is Submitted (0)
+ if (empty($status) || !is_numeric($status)) {
+ $status = 0;
+ }
+
+ // TODO: Default language is ... ???
+ if (empty($language)) {
+ $language = '';
+ }
+
+ // Default summary is empty
+ if (empty($summary)) {
+ $summary = '';
+ }
+
+ // Default notes is empty
+ if (empty($notes)) {
+ $notes = '';
+ }
+
+ // Default body type is text (as opposed to file upload)
+ if (empty($bodytype) || !is_string($bodytype)) {
+ $bodytype = 'text';
+ }
+
+ // Default body text is empty
+ if (empty($bodytext) || !is_string($bodytext)) {
+ $bodytext = '';
+ }
+
// Get relevant text
! if ($bodytype == 'file' && !empty($bodyfile)) {
$body = join('', @file($bodyfile));
} else {
***************
*** 84,92 ****
}
! // Get datbase setup
list($dbconn) = pnDBGetConn();
$pntable = pnDBGetTables();
$articlestable = $pntable['articles'];
- $articlescolumn = &$pntable['articles_column'];
// Get next ID in table
--- 143,150 ----
}
! // Get database setup
list($dbconn) = pnDBGetConn();
$pntable = pnDBGetTables();
$articlestable = $pntable['articles'];
// Get next ID in table
***************
*** 95,108 ****
// Add item
$sql = "INSERT INTO $articlestable (
! $articlescolumn[aid],
! $articlescolumn[title],
! $articlescolumn[summary],
! $articlescolumn[body],
! $articlescolumn[authorid],
! $articlescolumn[pubdate],
! $articlescolumn[pubtypeid],
! $articlescolumn[notes],
! $articlescolumn[status],
! $articlescolumn[language])
VALUES (
$nextId,
--- 153,166 ----
// Add item
$sql = "INSERT INTO $articlestable (
! pn_aid,
! pn_title,
! pn_summary,
! pn_body,
! pn_authorid,
! pn_pubdate,
! pn_pubtypeid,
! pn_notes,
! pn_status,
! pn_language)
VALUES (
$nextId,
***************
*** 110,115 ****
'" . pnvarPrepForStore($summary) . "',
'" . pnvarPrepForStore($body) . "',
! '" . pnvarPrepForStore(pnUserGetVar('uid')) . "',
! " . pnVarPrepForStore(time()) . ",
'" . pnvarPrepForStore($ptid) . "',
'" . pnvarPrepForStore($notes) . "',
--- 168,173 ----
'" . pnvarPrepForStore($summary) . "',
'" . pnvarPrepForStore($body) . "',
! '" . pnvarPrepForStore($authorid) . "',
! '" . pnVarPrepForStore($pubdate) . "',
'" . pnvarPrepForStore($ptid) . "',
'" . pnvarPrepForStore($notes) . "',
***************
*** 127,160 ****
// Get aid to return
! $aid = $dbconn->PO_Insert_ID($articlestable, $articlescolumn['aid']);
// Call creation hooks
pnModCallHooks('item', 'create', $aid, 'aid');
! if (isset($cids))
{
! $res = Array ();
foreach ($cids as $cid)
{
! $res = array_merge ($res, $cid);
}
!
! $res = array_unique ($res);
!
! // Create the category Link
! if (!pnModAPILoad('categories', 'admin')) {
! $msg = pnML('Unable to load #(1) #(2) API',
! 'categories','admin');
! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'UNABLE_TO_LOAD',
! new SystemException($msg));
! return false;
}
- pnModAPIFunc('categories',
- 'admin',
- 'linkcat',
- Array('cids' => $res,
- 'iids' => Array($aid),
- 'modid' => pnModGetIDFromName('articles')
- ));
}
--- 185,222 ----
// Get aid to return
! $aid = $dbconn->PO_Insert_ID($articlestable, 'pn_aid');
// Call creation hooks
pnModCallHooks('item', 'create', $aid, 'aid');
! if (count($cids) > 0)
{
! $seencid = array();
foreach ($cids as $cid)
{
! if (empty($cid)) {
! continue;
! }
! $seencid[$cid] = 1;
}
! if (count($seencid) > 0) {
! $res = array_keys($seencid);
!
! // Create the category Link
! if (!pnModAPILoad('categories', 'admin')) {
! $msg = pnML('Unable to load #(1) #(2) API',
! 'categories','admin');
! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'UNABLE_TO_LOAD',
! new SystemException($msg));
! return false;
! }
! pnModAPIFunc('categories',
! 'admin',
! 'linkcat',
! Array('cids' => $res,
! 'iids' => Array($aid),
! 'modid' => pnModGetIDFromName('articles')
! ));
}
}
***************
*** 204,208 ****
$pntable = pnDBGetTables();
$articlestable = $pntable['articles'];
- $articlescolumn = &$pntable['articles_column'];
// Call deletion hooks
--- 266,269 ----
***************
*** 230,234 ****
// Delete item
$sql = "DELETE FROM $articlestable
! WHERE $articlescolumn[aid] = " . pnVarPrepForStore($aid);
$dbconn->Execute($sql);
--- 291,295 ----
// Delete item
$sql = "DELETE FROM $articlestable
! WHERE pn_aid = " . pnVarPrepForStore($aid);
$dbconn->Execute($sql);
***************
*** 246,251 ****
/**
* update articles item
! * @param $args['aid'] ID of the item
! * @param $args['title'] name of the item
* @param $args['summary'] summary of the item
* @param $args['bodytype'] type of input for this item
--- 307,312 ----
/**
* update articles item
! * @param $args['aid'] ID of the item (mandatory argument)
! * @param $args['title'] name of the item (mandatory argument)
* @param $args['summary'] summary of the item
* @param $args['bodytype'] type of input for this item
***************
*** 254,258 ****
* @param $args['notes'] notes for the item
* @param $args['status'] status of the item
! * @param $args['langauge'] language of the item
*/
function articles_adminapi_update($args)
--- 315,322 ----
* @param $args['notes'] notes for the item
* @param $args['status'] status of the item
! * @param $args['ptid'] publication type ID for the item (*cough*)
! * @param $args['pubdate'] publication date in unix time format
! * @param $args['authorid'] ID of the new author (*cough*)
! * @param $args['language'] language of the item
*/
function articles_adminapi_update($args)
***************
*** 262,274 ****
// Argument check
! if ((!isset($aid)) ||
! (!isset($title)) ||
! (!isset($summary)) ||
! // (!isset($cids)) ||
! (!isset($bodytype)) ||
! ((!isset($bodytext)) && (!isset($bodyfile))) ||
! (!isset($language))) {
$msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)',
! 'parameters', 'admin', 'update',
'Articles');
pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM',
--- 326,339 ----
// Argument check
! if (empty($aid) || !is_numeric($aid)) {
$msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)',
! 'article ID', 'admin', 'update',
! 'Articles');
! pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM',
! new SystemException($msg));
! return false;
! } elseif (empty($title)) {
! $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)',
! 'title', 'admin', 'update',
'Articles');
pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM',
***************
*** 276,283 ****
return false;
}
! if (!isset($cids)) {
! $cids = array();
! }
!
// Security check
if (!pnModAPILoad('articles', 'user')) {
--- 341,348 ----
return false;
}
!
! // Note : this will take care of checking against the current article values
! // too if nothing is passed as arguments except aid & title
!
// Security check
if (!pnModAPILoad('articles', 'user')) {
***************
*** 297,313 ****
}
! // Get relevant text
! if ($bodytype == 'file') {
! $body = join('', @file($bodyfile));
! } else {
! $body = $bodytext;
! }
!
! // Get datbase setup
list($dbconn) = pnDBGetConn();
$pntable = pnDBGetTables();
$articlestable = $pntable['articles'];
- $articlescolumn = &$pntable['articles_column'];
// Update the category link
--- 362,430 ----
}
! // Get database setup
list($dbconn) = pnDBGetConn();
$pntable = pnDBGetTables();
$articlestable = $pntable['articles'];
+ // Update the item
+ $sql = "UPDATE $articlestable
+ SET pn_title = '" . pnVarPrepForStore($title) . "'";
+
+ // Note : we use isset() here because we *do* care whether it's set to ''
+ // or if it's not set at all
+
+ if (isset($summary)) {
+ $sql .= ", pn_summary = '" . pnVarPrepForStore($summary) . "'";
+ }
+
+ if (isset($bodytype) && $bodytype == 'file' && !empty($bodyfile)) {
+ $body = join('', @file($bodyfile));
+ $sql .= ", pn_body = '" . pnVarPrepForStore($body) . "'";
+ } elseif (isset($bodytext)) {
+ $body = $bodytext;
+ $sql .= ", pn_body = '" . pnVarPrepForStore($body) . "'";
+ }
+
+ if (isset($notes)) {
+ $sql .= ", pn_notes = '" . pnVarPrepForStore($notes) . "'";
+ }
+
+ if (isset($status) && is_numeric($status)) {
+ $sql .= ", pn_status = '" . pnVarPrepForStore($status) . "'";
+ }
+
+ // not recommended
+ if (isset($ptid) && is_numeric($ptid)) {
+ $sql .= ", pn_pubtypeid = '" . pnVarPrepForStore($ptid) . "'";
+ }
+
+ if (isset($pubdate) && is_numeric($pubdate)) {
+ $sql .= ", pn_pubdate = '" . pnVarPrepForStore($pubdate) . "'";
+ }
+
+ // not recommended
+ if (isset($authorid) && is_numeric($authorid)) {
+ $sql .= ", pn_authorid = '" . pnVarPrepForStore($authorid) . "'";
+ }
+
+ if (isset($language)) {
+ $sql .= ", pn_language = '" . pnVarPrepForStore($language) . "'";
+ }
+
+ $sql .= " WHERE pn_aid = " . pnVarPrepForStore($aid);
+ $dbconn->Execute($sql);
+
+ if ($dbconn->ErrorNo() != 0) {
+ $msg = pnML('Database error for #(1) function #(2)() in module #(3)',
+ 'admin', 'update', 'Articles');
+ pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR',
+ new SystemException($msg));
+ return false;
+ }
+
+ if (!isset($cids)) {
+ $cids = array();
+ }
+
// Update the category link
***************
*** 339,361 ****
));
- // Update the item
- $sql = "UPDATE $articlestable
- SET $articlescolumn[title] = '" . pnVarPrepForStore($title) . "',
- $articlescolumn[summary] = '" . pnVarPrepForStore($summary) . "',
- $articlescolumn[body] = '" . pnVarPrepForStore($body) . "',
- $articlescolumn[notes] = '" . pnVarPrepForStore($notes) . "',
- $articlescolumn[status] = '" . pnVarPrepForStore($status) . "',
- $articlescolumn[language] = '" . pnVarPrepForStore($language) . "'
- WHERE $articlescolumn[aid] = " . pnVarPrepForStore($aid);
- $dbconn->Execute($sql);
-
- if ($dbconn->ErrorNo() != 0) {
- $msg = pnML('Database error for #(1) function #(2)() in module #(3)',
- 'admin', 'update', 'Articles');
- pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR',
- new SystemException($msg));
- return false;
- }
-
return true;
}
--- 456,459 ----
***************
*** 534,545 ****
$pubtypestable = $pntable['publication_types'];
! /*
! // Update the publication type
! $sql = "UPDATE $pubtypestable
! SET pn_pubtypename = '" . pnVarPrepForStore($name) . "',
! pn_pubtypedescr = '" . pnVarPrepForStore($descr) . "'
! WHERE pn_pubtypeid = " . pnVarPrepForStore($ptid);
! */
! // Update the publication type
$sql = "UPDATE $pubtypestable
SET pn_pubtypedescr = '" . pnVarPrepForStore($descr) . "',
--- 632,636 ----
$pubtypestable = $pntable['publication_types'];
! // Update the publication type (don't allow updates on name)
$sql = "UPDATE $pubtypestable
SET pn_pubtypedescr = '" . pnVarPrepForStore($descr) . "',
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 |