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 / example [ view in CVS ]
Date | Directory [filter] | File(s) [view] | Author [filter] |
13 Aug 2002 12:19:22 | postnuke_official/html/modules/example | pnadmin.php,1.1,1.2 pnadminapi.php,1.1,1.2 pninit.php,1.2,1.3 pnuser.php,1.2,1.3 pnuserapi.php,1.1,1.2 | Marco Canini |
Nicer exception handling. Need to work more on it, just a start! |
Update of /home/cvsroot/postnuke_official/html/modules/example In directory ns7.hostnuke.net:/tmp/cvs-serv4523 Modified Files: pnadmin.php pnadminapi.php pninit.php pnuser.php pnuserapi.php Log Message: Nicer exception handling. Need to work more on it, just a start! Index: pnadmin.php =================================================================== RCS file: /home/cvsroot/postnuke_official/html/modules/example/pnadmin.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pnadmin.php 7 Aug 2002 01:30:22 -0000 1.1 --- pnadmin.php 13 Aug 2002 12:19:20 -0000 1.2 *************** *** 1,3 **** ! <?php // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System --- 1,4 ---- ! <?php ! // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System *************** *** 41,46 **** // for administration depends on the particular module, but it is generally // either 'edit' or 'delete' ! if (!pnSecAuthAction(0, 'Example::Item', '::', ACCESS_EDIT)) { ! return _EXAMPLENOAUTH; } --- 42,51 ---- // for administration depends on the particular module, but it is generally // either 'edit' or 'delete' ! if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_EDIT)) { ! $msg = pnML('Not authorized to access to #(1)', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; } *************** *** 92,98 **** // Specify some labels for display ! $data['namelabel'] = pnVarPrepForDisplay(_EXAMPLENAME); ! $data['numberlabel'] = pnVarPrepForDisplay(_EXAMPLENUMBER); ! $data['optionslabel'] = pnVarPrepForDisplay(_EXAMPLEOPTIONS); $data['pager'] = ''; --- 97,103 ---- // Specify some labels for display ! $data['namelabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLENAME')); ! $data['numberlabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLENUMBER')); ! $data['optionslabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLEOPTIONS')); $data['pager'] = ''; *************** *** 100,119 **** // potential security holes or just too much wasted processing if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_EDIT)) { ! // Fill in some status variable to be shown in the blocklayout template ! $data['status'] = _EXAMPLENOAUTH; ! // Return the template variables defined in this function ! return $data; } // Load API. Note that this is loading the user API, that is because the // user API contains the function to obtain item information which is the ! // first thing that we need to do. If the API fails to load an appropriate ! // error message is posted and the function returns ! if (!pnModAPILoad('example', 'user')) { ! // Fill in the status variable with the status to be shown ! $data['status'] = _LOADFAILED; ! // Return the template variables defined in this function ! return $data; ! } // The user API function is called. This takes the number of items --- 105,119 ---- // potential security holes or just too much wasted processing if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_EDIT)) { ! $msg = pnML('Not authorized to access to #(1)', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; } // Load API. Note that this is loading the user API, that is because the // user API contains the function to obtain item information which is the ! // first thing that we need to do. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'user')) return; // throw back // The user API function is called. This takes the number of items *************** *** 127,163 **** 'numitems' => pnModGetVar('example', 'itemsperpage'))); ! ! // The return value of the function is checked here, and if the function ! // failed then an appropriate message is posted here. Note that if the ! // API function gave an error, then it should raise an exception that ! // you can handle here... ! if ($items == false) { ! // Throw back any system exceptions (e.g. database failure) ! if (pnExceptionMajor() == PN_SYSTEM_EXCEPTION) { ! return; // throw back ! } ! // Handle the user exceptions yourself ! $data['status'] = pnML('No items available'); ! // Possibly handle different exception IDs in specific ways : ! // if (pnExceptionId() == 'BAD_PARAM') { ! // /* do something */ ! // } elseif (pnExceptionId() == 'NO_PERMISSION') { ! // /* do something else */ ! // } elseif (pnExceptionId() == 'MyException1') { ! // /* do some other thing */ ! // } else { ! // /* default handling */ ! // } ! // Get the information about the exception (in HTML or string format) ! // $reason = pnExceptionValueHTML(); ! $reason = pnExceptionValueString(); ! if (!empty($reason)) { ! $data['status'] .= '<br /><br />'. pnML('Reason') .' : '. $reason; ! } ! // Free the exception to tell PostNuke that you handled it ! pnExceptionFree(); ! // Return the template variables defined in this function ! return $data; ! } // Check individual permissions for Edit / Delete --- 127,132 ---- 'numitems' => pnModGetVar('example', 'itemsperpage'))); ! // Check for exceptions ! if (!isset($item) && pnExceptionMajor() != PN_NO_EXCEPTION) return; // throw back // Check individual permissions for Edit / Delete *************** *** 191,197 **** // Specify some labels for display ! $data['namelabel'] = pnVarPrepForDisplay(_EXAMPLENAME); ! $data['numberlabel'] = pnVarPrepForDisplay(_EXAMPLENUMBER); ! $data['optionslabel'] = pnVarPrepForDisplay(_EXAMPLEOPTIONS); // TODO : add a pager (once it exists in BL) --- 160,166 ---- // Specify some labels for display ! $data['namelabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLENAME')); ! $data['numberlabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLENUMBER')); ! $data['optionslabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLEOPTIONS')); // TODO : add a pager (once it exists in BL) *************** *** 225,232 **** // potential security holes or just too much wasted processing if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_EDIT)) { ! // Fill in some status variable to be shown in the blocklayout template ! $data['status'] = _EXAMPLENOAUTH; ! // Return the template variables defined in this function ! return $data; } --- 194,202 ---- // potential security holes or just too much wasted processing if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_EDIT)) { ! $msg = pnML('Not authorized to access to #(1)', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; } *************** *** 235,241 **** // Specify some labels for display ! $data['namelabel'] = pnVarPrepForDisplay(_EXAMPLENAME); ! $data['numberlabel'] = pnVarPrepForDisplay(_EXAMPLENUMBER); ! $data['addbutton'] = pnVarPrepForDisplay(_EXAMPLEADD); // Return the template variables defined in this function --- 205,211 ---- // Specify some labels for display ! $data['namelabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLENAME')); ! $data['numberlabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLENUMBER')); ! $data['addbutton'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLEADD')); // Return the template variables defined in this function *************** *** 284,296 **** // Load API. All of the actual work for the creation of the new item is // done within the API, so we need to load that in before we can do ! // anything. If the API fails to load an appropriate error message is ! // posted and the function returns ! if (!pnModAPILoad('example', 'admin')) { ! $msg = pnML('Unable to load #(1) admin API', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; ! } // The API function is called. Note that the name of the API function and --- 254,259 ---- // Load API. All of the actual work for the creation of the new item is // done within the API, so we need to load that in before we can do ! // anything. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'admin')) return; // throw back // The API function is called. Note that the name of the API function and *************** *** 308,323 **** // function did not succeed then the API function should have already // posted a failure message so no action is required ! if ($exid == false) { ! // $msg = pnML('Unable to create #(1) item', ! // 'Example'); ! // pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! // new SystemException($msg)); ! // return; ! } else { // Success ! //TODO replace with no exception? ! pnSessionSetVar('statusmsg', _EXAMPLECREATED); ! } // This function generated no output, and so now it is complete we redirect --- 271,278 ---- // function did not succeed then the API function should have already // posted a failure message so no action is required ! if (!isset($exid) && pnExceptionMajor() != PN_NO_EXCEPTION) return; // throw back // Success ! pnSessionSetVar('statusmsg', pnMLByKey('EXAMPLECREATED')); // This function generated no output, and so now it is complete we redirect *************** *** 368,377 **** // Load API. Note that this is loading the user API, that is because the // user API contains the function to obtain item information which is the ! // first thing that we need to do. If the API fails to load an appropriate ! // error message is posted and the function returns ! if (!pnModAPILoad('example', 'user')) { ! return pnML('Unable to load #(1) user API', ! 'Example'); ! } // The user API function is called. This takes the item ID which we --- 323,328 ---- // Load API. Note that this is loading the user API, that is because the // user API contains the function to obtain item information which is the ! // first thing that we need to do. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'user')) return; // throw back // The user API function is called. This takes the item ID which we *************** *** 383,391 **** 'get', array('exid' => $exid)); ! ! if ($item == false) { ! return pnML('Unable to find #(1) item #(2)', ! 'Example', pnVarPrepForDisplay($exid)); ! } // Security check - important to do this as early as possible to avoid --- 334,339 ---- 'get', array('exid' => $exid)); ! // Check for exceptions ! if (!isset($item) && pnExceptionMajor() != PN_NO_EXCEPTION) return; // throw back // Security check - important to do this as early as possible to avoid *************** *** 395,400 **** // do the check if (!pnSecAuthAction(0, 'Example::Item', "$item[name]::$exid", ACCESS_EDIT)) { ! return pnML('Not authorized to modify #(1) item #(2)', 'Example', pnVarPrepForDisplay($exid)); } --- 343,351 ---- // do the check if (!pnSecAuthAction(0, 'Example::Item', "$item[name]::$exid", ACCESS_EDIT)) { ! $msg = pnML('Not authorized to modify #(1) item #(2)', 'Example', pnVarPrepForDisplay($exid)); + pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', + new SystemException($msg)); + return; } *************** *** 405,411 **** // Return the template variables defined in this function return array('authid' => pnSecGenAuthKey(), ! 'namelabel' => pnVarPrepForDisplay(_EXAMPLENAME), ! 'numberlabel' => pnVarPrepForDisplay(_EXAMPLENUMBER), ! 'updatebutton' => pnVarPrepForDisplay(_EXAMPLEUPDATE), 'item' => $item); } --- 356,362 ---- // Return the template variables defined in this function return array('authid' => pnSecGenAuthKey(), ! 'namelabel' => pnVarPrepForDisplay(pnMLByKey('EXAMPLENAME')), ! 'numberlabel' => pnVarPrepForDisplay(pnMLByKey('EXAMPLENUMBER')), ! 'updatebutton' => pnVarPrepForDisplay(pnMLByKey('EXAMPLEUPDATE')), 'item' => $item); } *************** *** 470,482 **** // Load API. All of the actual work for the update of the new item is done // within the API, so we need to load that in before we can do anything. ! // If the API fails to load an appropriate error message is posted and the ! // function returns ! if (!pnModAPILoad('example', 'admin')) { ! $msg = pnML('Unable to load #(1) admin API', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; ! } // The API function is called. Note that the name of the API function and --- 421,426 ---- // Load API. All of the actual work for the update of the new item is done // within the API, so we need to load that in before we can do anything. ! // If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'admin')) return; // throw back // The API function is called. Note that the name of the API function and *************** *** 489,493 **** // function did not succeed then the API function should have already // posted a failure message so no action is required ! if(pnModAPIFunc('example', 'admin', 'update', --- 433,437 ---- // function did not succeed then the API function should have already // posted a failure message so no action is required ! if(!pnModAPIFunc('example', 'admin', 'update', *************** *** 495,502 **** 'name' => $name, 'number' => $number))) { ! // Success ! //TODO make it an exception? ! pnSessionSetVar('statusmsg', _EXAMPLEUPDATED); } // This function generated no output, and so now it is complete we redirect --- 439,445 ---- 'name' => $name, 'number' => $number))) { ! return; // throw back } + pnSessionSetVar('statusmsg', pnMLByKey('EXAMPLEUPDATED')); // This function generated no output, and so now it is complete we redirect *************** *** 557,569 **** // Load API. Note that this is loading the user API, that is because the // user API contains the function to obtain item information which is the ! // first thing that we need to do. If the API fails to load an appropriate ! // error message is posted and the function returns ! if (!pnModAPILoad('example', 'user')) { ! $msg = pnML('Unable to load #(1) user API', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; ! } // The user API function is called. This takes the item ID which we --- 500,505 ---- // Load API. Note that this is loading the user API, that is because the // user API contains the function to obtain item information which is the ! // first thing that we need to do. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'user')) return; // throw back // The user API function is called. This takes the item ID which we *************** *** 575,586 **** 'get', array('exid' => $exid)); ! ! if ($item == false) { ! $msg = pnML('Unable to find #(1) item #(2)', ! 'Example', pnVarPrepForDisplay($exid)); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; ! } // Security check - important to do this as early as possible to avoid --- 511,516 ---- 'get', array('exid' => $exid)); ! // Check for exceptions ! if (!isset($item) && pnExceptionMajor() != PN_NO_EXCEPTION) return; // throw back // Security check - important to do this as early as possible to avoid *************** *** 614,618 **** $data['confirmtext'] = pnML('Confirm deleting this item ?'); $data['itemid'] = pnML('Item ID'); ! $data['namelabel'] = _EXAMPLENAME; $data['namevalue'] = pnVarPrepForDisplay($item['name']); $data['confirmbutton'] = pnML('Confirm'); --- 544,548 ---- $data['confirmtext'] = pnML('Confirm deleting this item ?'); $data['itemid'] = pnML('Item ID'); ! $data['namelabel'] = pnMLByKey('EXAMPLENAME'); $data['namevalue'] = pnVarPrepForDisplay($item['name']); $data['confirmbutton'] = pnML('Confirm'); *************** *** 641,653 **** // Load API. All of the actual work for the deletion of the item is done // within the API, so we need to load that in before before we can do ! // anything. If the API fails to load an appropriate error message is ! // posted and the function returns ! if (!pnModAPILoad('example', 'admin')) { ! $msg = pnML('Unable to load #(1) admin API', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; ! } // The API function is called. Note that the name of the API function and --- 571,576 ---- // Load API. All of the actual work for the deletion of the item is done // within the API, so we need to load that in before before we can do ! // anything. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'admin')) return; // throw back // The API function is called. Note that the name of the API function and *************** *** 660,671 **** // function did not succeed then the API function should have already // posted a failure message so no action is required ! if (pnModAPIFunc('example', 'admin', 'delete', array('exid' => $exid))) { ! // Success ! //TODO make this an exception? ! pnSessionSetVar('statusmsg', _EXAMPLEDELETED); } // This function generated no output, and so now it is complete we redirect --- 583,594 ---- // function did not succeed then the API function should have already // posted a failure message so no action is required ! if (!pnModAPIFunc('example', 'admin', 'delete', array('exid' => $exid))) { ! return; // throw back } + pnSessionSetVar('statusmsg', pnMLByKey('EXAMPLEDELETED')); + // This function generated no output, and so now it is complete we redirect *************** *** 692,700 **** // potential security holes or just too much wasted processing if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_ADMIN)) { ! // Fill in some status variable to be shown in the blocklayout template ! $data['status'] = pnML('Not authorized to modify #(1) configuration settings', 'Example'); ! // Return the template variables defined in this function ! return $data; } --- 615,623 ---- // potential security holes or just too much wasted processing if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_ADMIN)) { ! $msg = pnML('Not authorized to modify #(1) configuration settings', 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; } *************** *** 703,709 **** // Specify some labels and values for display ! $data['boldlabel'] = pnVarPrepForDisplay(_EXAMPLEDISPLAYBOLD); $data['boldchecked'] = pnModGetVar('example','bold') ? 'checked' : ''; ! $data['itemslabel'] = pnVarPrepForDisplay(_EXAMPLEITEMSPERPAGE); $data['itemsvalue'] = pnModGetVar('example', 'itemsperpage'); $data['updatebutton'] = pnVarPrepForDisplay(pnML('Update Configuration')); --- 626,632 ---- // Specify some labels and values for display ! $data['boldlabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLEDISPLAYBOLD')); $data['boldchecked'] = pnModGetVar('example','bold') ? 'checked' : ''; ! $data['itemslabel'] = pnVarPrepForDisplay(pnMLByKey('EXAMPLEITEMSPERPAGE')); $data['itemsvalue'] = pnModGetVar('example', 'itemsperpage'); $data['updatebutton'] = pnVarPrepForDisplay(pnML('Update Configuration')); *************** *** 787,793 **** // Specify the menu labels to be used in your blocklayout template ! $menu['menulabel_new'] = _NEWEXAMPLE; ! $menu['menulabel_view'] = _VIEWEXAMPLE; ! $menu['menulabel_config'] = _EXAMPLEMODIFYCONFIG; // Preset some status variable --- 710,716 ---- // Specify the menu labels to be used in your blocklayout template ! $menu['menulabel_new'] = pnMLByKey('NEWEXAMPLE'); ! $menu['menulabel_view'] = pnMLByKey('VIEWEXAMPLE'); ! $menu['menulabel_config'] = pnMLByKey('EXAMPLEMODIFYCONFIG'); // Preset some status variable Index: pnadminapi.php =================================================================== RCS file: /home/cvsroot/postnuke_official/html/modules/example/pnadminapi.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pnadminapi.php 7 Aug 2002 01:30:22 -0000 1.1 --- pnadminapi.php 13 Aug 2002 12:19:20 -0000 1.2 *************** *** 1,3 **** ! <?php // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System --- 1,4 ---- ! <?php ! // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System *************** *** 57,63 **** $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', join(', ',$invalid), 'admin', 'create', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return false; } --- 58,64 ---- $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', join(', ',$invalid), 'admin', 'create', 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return; } *************** *** 67,73 **** $msg = pnML('Not authorized to add #(1) items', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return false; } --- 68,74 ---- $msg = pnML('Not authorized to add #(1) items', 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return; } *************** *** 104,122 **** $dbconn->Execute($sql); ! // Check for an error with the database code, and if so set an ! // appropriate error message and return if ($dbconn->ErrorNo() != 0) { ! // Hint : for debugging SQL queries, you can use $dbconn->ErrorMsg() ! // to retrieve the actual database error message, and use e.g. the ! // following message : ! // $msg = pnML('Database error #(1) in query #(2) for #(3) function ' . ! // '#(4)() in module #(5)', ! // $dbconn->ErrorMsg(), $sql, 'admin', 'create', 'Example'); ! // Don't use that for release versions, though... ! $msg = pnML('Database error for #(1) function #(2)() in module #(3)', ! 'admin', 'create', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException($msg)); ! return false; } --- 105,115 ---- $dbconn->Execute($sql); ! // Check for an error with the database code, and if so raise an ! // appropriate exception if ($dbconn->ErrorNo() != 0) { ! $msg = pnMLByKey('DATABASE_ERROR', $sql); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } *************** *** 159,165 **** $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', 'item ID', 'admin', 'delete', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return false; } --- 152,158 ---- $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', 'item ID', 'admin', 'delete', 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return; } *************** *** 167,179 **** // the administration API, that is because the user API contains // the function to obtain item information which is the first thing ! // that we need to do. If the API fails to load an appropriate error ! // message is posted and the function returns ! if (!pnModAPILoad('example', 'user')) { ! $msg = pnML('Unable to load #(1) #(2) API', ! 'Example','user'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return false; ! } // The user API function is called. This takes the item ID which --- 160,165 ---- // the administration API, that is because the user API contains // the function to obtain item information which is the first thing ! // that we need to do. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'user')) return; // throw back // The user API function is called. This takes the item ID which *************** *** 186,196 **** array('exid' => $exid)); ! if ($item == false) { ! $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', ! 'item ID', 'user', 'get', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM', ! new SystemException($msg)); ! return false; ! } // Security check - important to do this as early on as possible to --- 172,177 ---- array('exid' => $exid)); ! // Check for exceptions ! if (!isset($item) && pnExceptionMajor() != PN_NO_EXCEPTION) return; // throw back // Security check - important to do this as early on as possible to *************** *** 202,208 **** $msg = pnML('Not authorized to delete #(1) item #(2)', 'Example', pnVarPrepForStore($exid)); ! pnExceptionSet(PN_USER_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return false; } --- 183,189 ---- $msg = pnML('Not authorized to delete #(1) item #(2)', 'Example', pnVarPrepForStore($exid)); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return; } *************** *** 228,246 **** $dbconn->Execute($sql); ! // Check for an error with the database code, and if so set an ! // appropriate error message and return if ($dbconn->ErrorNo() != 0) { ! // Hint : for debugging SQL queries, you can use $dbconn->ErrorMsg() ! // to retrieve the actual database error message, and use e.g. the ! // following message : ! // $msg = pnML('Database error #(1) in query #(2) for #(3) function ' . ! // '#(4)() in module #(5)', ! // $dbconn->ErrorMsg(), $sql, 'admin', 'delete', 'Example'); ! // Don't use that for release versions, though... ! $msg = pnML('Database error for #(1) function #(2)() in module #(3)', ! 'admin', 'delete', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException($msg)); ! return false; } --- 209,219 ---- $dbconn->Execute($sql); ! // Check for an error with the database code, and if so raise an ! // appropriate exception if ($dbconn->ErrorNo() != 0) { ! $msg = pnMLByKey('DATABASE_ERROR', $sql); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } *************** *** 288,294 **** $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', join(', ',$invalid), 'admin', 'update', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return false; } --- 261,267 ---- $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', join(', ',$invalid), 'admin', 'update', 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return; } *************** *** 296,308 **** // the administration API, that is because the user API contains // the function to obtain item information which is the first thing ! // that we need to do. If the API fails to load an appropriate error ! // message is posted and the function returns ! if (!pnModAPILoad('example', 'user')) { ! $msg = pnML('Unable to load #(1) #(2) API', ! 'Example','user'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return false; ! } // The user API function is called. This takes the item ID which --- 269,274 ---- // the administration API, that is because the user API contains // the function to obtain item information which is the first thing ! // that we need to do. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'user')) return; // throw back // The user API function is called. This takes the item ID which *************** *** 315,325 **** array('exid' => $exid)); ! if ($item == false) { ! $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', ! 'item ID', 'user', 'get', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM', ! new SystemException($msg)); ! return false; ! } // Security check - important to do this as early on as possible to --- 281,286 ---- array('exid' => $exid)); ! // Check for exceptions ! if (!isset($item) && pnExceptionMajor() != PN_NO_EXCEPTION) return; // throw back // Security check - important to do this as early on as possible to *************** *** 337,350 **** $msg = pnML('Not authorized to edit #(1) item #(2)', 'Example', pnVarPrepForStore($exid)); ! pnExceptionSet(PN_USER_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return false; } if (!pnSecAuthAction(0, 'Example::Item', "$name::$exid", ACCESS_EDIT)) { $msg = pnML('Not authorized to edit #(1) item #(2)', 'Example', pnVarPrepForStore($exid)); ! pnExceptionSet(PN_USER_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return false; } --- 298,311 ---- $msg = pnML('Not authorized to edit #(1) item #(2)', 'Example', pnVarPrepForStore($exid)); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return; } if (!pnSecAuthAction(0, 'Example::Item', "$name::$exid", ACCESS_EDIT)) { $msg = pnML('Not authorized to edit #(1) item #(2)', 'Example', pnVarPrepForStore($exid)); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return; } *************** *** 375,390 **** // appropriate error message and return if ($dbconn->ErrorNo() != 0) { ! // Hint : for debugging SQL queries, you can use $dbconn->ErrorMsg() ! // to retrieve the actual database error message, and use e.g. the ! // following message : ! // $msg = pnML('Database error #(1) in query #(2) for #(3) function ' . ! // '#(4)() in module #(5)', ! // $dbconn->ErrorMsg(), $sql, 'admin', 'update', 'Example'); ! // Don't use that for release versions, though... ! $msg = pnML('Database error for #(1) function #(2)() in module #(3)', ! 'admin', 'update', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException($msg)); ! return false; } --- 336,343 ---- // appropriate error message and return if ($dbconn->ErrorNo() != 0) { ! $msg = pnMLByKey('DATABASE_ERROR', $sql); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } Index: pninit.php =================================================================== RCS file: /home/cvsroot/postnuke_official/html/modules/example/pninit.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** pninit.php 11 Aug 2002 16:51:03 -0000 1.2 --- pninit.php 13 Aug 2002 12:19:20 -0000 1.3 *************** *** 1,3 **** ! <?php // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System --- 1,4 ---- ! <?php ! // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System *************** *** 42,51 **** // modules $exampletable = $pntable['example']; ! $examplecolumn = &$pntable['example_column']; // adodb does not provide the functionality to abstract table creates // across multiple databases. Postnuke offers the pnCreateTable function // contained in the following file to provide this functionality. ! include ('pnadodb/pnTableDDL.php'); // Define the table structure in this associative array --- 43,53 ---- // modules $exampletable = $pntable['example']; ! // FIXME: <marco> Isn't it obselete? ! //$examplecolumn = &$pntable['example_column']; // adodb does not provide the functionality to abstract table creates // across multiple databases. Postnuke offers the pnCreateTable function // contained in the following file to provide this functionality. ! include ('includes/pnTableDDL.php'); // Define the table structure in this associative array *************** *** 97,115 **** // Create the Table - the function will return the SQL is successful or ! // FALSE if it fails to build the SQL $sql = pnDBCreateTable($exampletable,$fields); ! if ($sql == FALSE) { ! pnSessionSetVar('errormsg', _CREATETABLEFAILED); ! return false; ! } // Pass the Table Create DDL to adodb to create the table $dbconn->Execute($sql); ! // Check for an error with the database code, and if so set an ! // appropriate error message and return if ($dbconn->ErrorNo() != 0) { ! pnSessionSetVar('errormsg', _CREATETABLEFAILED); ! return false; } --- 99,116 ---- // Create the Table - the function will return the SQL is successful or ! // raise an exception if it fails, in this case $sql is empty $sql = pnDBCreateTable($exampletable,$fields); ! if (empty($sql)) return; // throw back // Pass the Table Create DDL to adodb to create the table $dbconn->Execute($sql); ! // Check for an error with the database code, and if so raise the ! // appropriate exception if ($dbconn->ErrorNo() != 0) { ! $msg = pnMLByKey('DATABASE_ERROR', $query); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } *************** *** 195,212 **** $exampletable = $pntable['example']; ! // Add a column to the table - the formatting here is not ! // mandatory, but it does make the SQL statement relatively easy ! // to read. Also, separating out the SQL statement from the ! // Execute() command allows for simpler debug operation if it is ! // ever needed ! $sql = "ALTER TABLE $exampletable ! ADD pn_number int(5) NOT NULL default 0"; $dbconn->Execute($sql); ! // Check for an error with the database code, and if so set an ! // appropriate error message and return if ($dbconn->ErrorNo() != 0) { ! pnSessionSetVar('errormsg', _UPDATETABLEFAILED); ! return false; } --- 196,224 ---- $exampletable = $pntable['example']; ! // Add a column to the table ! ! // adodb does not provide the functionality to abstract table creates ! // across multiple databases. Postnuke offers the pnCreateTable function ! // contained in the following file to provide this functionality. ! include ('includes/pnTableDDL.php'); ! ! // $sql = "ALTER TABLE $exampletable ! // ADD pn_number INTEGER NOT NULL DEFAULT '0'"; ! ! $sql = pnDBAlterTable(array('table' => $exampletable, ! 'command' => 'add', ! 'field' => 'pn_number', ! 'type' => 'integer', ! 'null' => false, ! 'default' => '0')); $dbconn->Execute($sql); ! // Check for an error with the database code, and if so raise the ! // appropriate exception if ($dbconn->ErrorNo() != 0) { ! $msg = pnMLByKey('DATABASE_ERROR', $query); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } *************** *** 246,265 **** // across multiple databases. Postnuke offers the pnDropeTable function // contained in the following file to provide this functionality. ! include ('pnadodb/pnTableDDL.php'); // Generate the SQL to drop the table using the API $sql = pnDBDropTable($pntable['example']); ! if ($dbconn->ErrorNo() != 0) { ! // Report failed deletion attempt ! return false; ! } // Drop the table $dbconn->Execute($sql); ! // Check for an error with the database code, and if so set an ! // appropriate error message and return if ($dbconn->ErrorNo() != 0) { ! // Report failed deletion attempt ! return false; } --- 258,276 ---- // across multiple databases. Postnuke offers the pnDropeTable function // contained in the following file to provide this functionality. ! include ('includes/pnTableDDL.php'); // Generate the SQL to drop the table using the API $sql = pnDBDropTable($pntable['example']); ! if (empty($sql)) return; // throw back // Drop the table $dbconn->Execute($sql); ! // Check for an error with the database code, and if so raise the ! // appropriate exception if ($dbconn->ErrorNo() != 0) { ! $msg = pnMLByKey('DATABASE_ERROR', $query); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } *************** *** 268,271 **** --- 279,287 ---- pnModDelVar('example', 'bold'); pnModDelVar('example', 'mastercid'); + + pnModDelVar('example', 'SupportShortURLs'); + + pnBlockTypeUnregister('example', 'first'); + pnBlockTypeUnregister('example', 'others'); // Deletion successful Index: pnuser.php =================================================================== RCS file: /home/cvsroot/postnuke_official/html/modules/example/pnuser.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** pnuser.php 11 Aug 2002 16:51:03 -0000 1.2 --- pnuser.php 13 Aug 2002 12:19:20 -0000 1.3 *************** *** 1,3 **** ! <?php // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System --- 1,4 ---- ! <?php ! // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System *************** *** 41,45 **** // generally either 'overview' or 'read' if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_OVERVIEW)) { ! return _EXAMPLENOAUTH; } --- 42,50 ---- // generally either 'overview' or 'read' if (!pnSecAuthAction(0, 'Example::', '::', ACCESS_OVERVIEW)) { ! $msg = pnML('Not authorized to access to #(1)', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; } *************** *** 96,100 **** // Specify some other variables for use in the function template ! $data['someheader'] = _EXAMPLENAME; $data['pager'] = ''; --- 101,105 ---- // Specify some other variables for use in the function template ! $data['someheader'] = pnMLByKey('EXAMPLENAME'); $data['pager'] = ''; *************** *** 102,121 **** // potential security holes or just too much wasted processing if (!pnSecAuthAction(0, 'Examples::', '::', ACCESS_OVERVIEW)) { ! // Fill in some status variable to be shown in the blocklayout template ! $data['status'] = _EXAMPLENOAUTH; ! // Return the template variables defined in this function ! return $data; } // Load API. All of the actual work for obtaining information on the items // is done within the API, so we need to load that in before we can do ! // anything. If the API fails to load an appropriate error message is ! // posted and the function returns ! if (!pnModAPILoad('example', 'user')) { ! // Fill in the status variable with the status to be shown ! $data['status'] = _LOADFAILED; ! // Return the template variables defined in this function ! return $data; ! } // The API function is called. The arguments to the function are passed in --- 107,121 ---- // potential security holes or just too much wasted processing if (!pnSecAuthAction(0, 'Examples::', '::', ACCESS_OVERVIEW)) { ! $msg = pnML('Not authorized to access to #(1)', ! 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', ! new SystemException($msg)); ! return; } // Load API. All of the actual work for obtaining information on the items // is done within the API, so we need to load that in before we can do ! // anything. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'user')) return; // throw back // The API function is called. The arguments to the function are passed in *************** *** 129,165 **** 'numitems' => pnModGetVar('example', 'itemsperpage'))); ! ! // The return value of the function is checked here, and if the function ! // failed then an appropriate message is posted here. Note that if the ! // API function gave an error, then it should raise an exception that ! // you can handle here... ! if ($items == false) { ! // Throw back any system exceptions (e.g. database failure) ! if (pnExceptionMajor() == PN_SYSTEM_EXCEPTION) { ! return; // throw back ! } ! // Handle the user exceptions yourself ! $data['status'] = _EXAMPLEITEMFAILED; ! // Possibly handle different exception IDs in specific ways : ! // if (pnExceptionId() == 'BAD_PARAM') { ! // /* do something */ ! // } elseif (pnExceptionId() == 'NO_PERMISSION') { ! // /* do something else */ ! // } elseif (pnExceptionId() == 'MyException1') { ! // /* do some other thing */ ! // } else { ! // /* default handling */ ! // } ! // Get the information about the exception (in HTML or string format) ! // $reason = pnExceptionValueHTML(); ! $reason = pnExceptionValueString(); ! if (!empty($reason)) { ! $data['status'] .= '<br /><br />'. pnML('Reason') .' : '. $reason; ! } ! // Free the exception to tell PostNuke that you handled it ! pnExceptionFree(); ! // Return the template variables defined in this function ! return $data; ! } // TODO: check for conflicts between transformation hook output and --- 129,133 ---- 'numitems' => pnModGetVar('example', 'itemsperpage'))); ! if (!isset($items) && pnExceptionMajor() != PN_NO_EXCEPTION) return; // throw back // TODO: check for conflicts between transformation hook output and *************** *** 227,231 **** // Specify some other variables for use in the function template ! $data['someheader'] = _EXAMPLENAME; // Return the template variables defined in this function --- 195,199 ---- // Specify some other variables for use in the function template ! $data['someheader'] = pnMLByKey('EXAMPLENAME'); // Return the template variables defined in this function *************** *** 292,303 **** // Load API. All of the actual work for obtaining information on the items // is done within the API, so we need to load that in before we can do ! // anything. If the API fails to load an appropriate error message is ! // posted and the function returns ! if (!pnModAPILoad('example', 'user')) { ! // Fill in the status variable with the status to be shown ! $data['status'] = _LOADFAILED; ! // Return the template variables defined in this function ! return $data; ! } // The API function is called. The arguments to the function are passed in --- 260,265 ---- // Load API. All of the actual work for obtaining information on the items // is done within the API, so we need to load that in before we can do ! // anything. If the API fails to load the raised exception is thrown back to PostNuke ! if (!pnModAPILoad('example', 'user')) return; // throw back // The API function is called. The arguments to the function are passed in *************** *** 309,345 **** 'get', array('exid' => $exid)); ! ! // The return value of the function is checked here, and if the function ! // failed then an appropriate message is posted here. Note that if the ! // API function gave an error, then it should raise an exception that ! // you can handle here... ! if ($item == false) { ! // Throw back any system exceptions (e.g. database failure) ! if (pnExceptionMajor() == PN_SYSTEM_EXCEPTION) { ! return; // throw back ! } ! // Handle the user exceptions yourself ! $data['status'] = _EXAMPLEITEMFAILED; ! // Possibly handle different exception IDs in specific ways : ! // if (pnExceptionId() == 'BAD_PARAM') { ! // /* do something */ ! // } elseif (pnExceptionId() == 'NO_PERMISSION') { ! // /* do something else */ ! // } elseif (pnExceptionId() == 'MyException1') { ! // /* do some other thing */ ! // } else { ! // /* default handling */ ! // } ! // Get the information about the exception (in HTML or string format) ! // $reason = pnExceptionValueHTML(); ! $reason = pnExceptionValueString(); ! if (!empty($reason)) { ! $data['status'] .= '<br /><br />'. pnML('Reason') .' : '. $reason; ! } ! // Free the exception to tell PostNuke that you handled it ! pnExceptionFree(); ! // Return the template variables defined in this function ! return $data; ! } // Security check 2 - if your API function does *not* check for the --- 271,275 ---- 'get', array('exid' => $exid)); ! if (!isset($item) && pnExceptionMajor() != PN_NO_EXCEPTION) return; // throw back // Security check 2 - if your API function does *not* check for the *************** *** 370,376 **** // whether or not parts of the item information should be displayed in // bold type or not ! $data['name_label'] = _EXAMPLENAME; $data['name_value'] = pnVarCensor($item['name']); ! $data['number_label'] = _EXAMPLENUMBER; $data['number_value'] = $item['number']; --- 300,306 ---- // whether or not parts of the item information should be displayed in // bold type or not ! $data['name_label'] = pnMLByKey('EXAMPLENAME'); $data['name_value'] = pnVarCensor($item['name']); ! $data['number_label'] = pnMLByKey('EXAMPLENUMBER'); $data['number_value'] = $item['number']; *************** *** 424,431 **** // Specify the menu title to be used in your blocklayout template ! $menu['menutitle'] = _EXAMPLE; // Specify the menu items to be used in your blocklayout template ! $menu['menulabel_view'] = _EXAMPLEVIEW; $menu['menulink_view'] = pnModURL('example','user','view'); --- 354,361 ---- // Specify the menu title to be used in your blocklayout template ! $menu['menutitle'] = pnMLByKey('EXAMPLE'); // Specify the menu items to be used in your blocklayout template ! $menu['menulabel_view'] = pnMLByKey('EXAMPLEVIEW'); $menu['menulink_view'] = pnModURL('example','user','view'); Index: pnuserapi.php =================================================================== RCS file: /home/cvsroot/postnuke_official/html/modules/example/pnuserapi.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pnuserapi.php 7 Aug 2002 01:30:22 -0000 1.1 --- pnuserapi.php 13 Aug 2002 12:19:20 -0000 1.2 *************** *** 1,3 **** ! <?php // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System --- 1,4 ---- ! <?php ! // $Id$ // ---------------------------------------------------------------------- // PostNuke Content Management System *************** *** 64,70 **** $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', join(', ',$invalid), 'user', 'getall', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return false; } --- 65,71 ---- $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', join(', ',$invalid), 'user', 'getall', 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return; } *************** *** 76,82 **** $msg = pnML('Not authorized to access #(1) items', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return false; } --- 77,83 ---- $msg = pnML('Not authorized to access #(1) items', 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return; } *************** *** 114,122 **** // $dbconn->ErrorMsg(), $sql, 'user', 'getall', 'Example'); // Don't use that for release versions, though... $msg = pnML('Database error for #(1) function #(2)() in module #(3)', 'user', 'getall', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', new SystemException($msg)); ! return false; } --- 115,130 ---- // $dbconn->ErrorMsg(), $sql, 'user', 'getall', 'Example'); // Don't use that for release versions, though... + /* $msg = pnML('Database error for #(1) function #(2)() in module #(3)', 'user', 'getall', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', new SystemException($msg)); ! return; ! */ ! // This is the API compliant way to raise a db error exception ! $msg = pnMLByKey('DATABASE_ERROR', $sql); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } *************** *** 166,172 **** $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', 'item ID', 'user', 'get', 'Example'); ! pnExceptionSet(PN_USER_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return false; } --- 174,180 ---- $msg = pnML('Invalid #(1) for #(2) function #(3)() in module #(4)', 'item ID', 'user', 'get', 'Example'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'BAD_PARAM', new SystemException($msg)); ! return; } *************** *** 203,217 **** // $dbconn->ErrorMsg(), $sql, 'user', 'get', 'Example'); // Don't use that for release versions, though... $msg = pnML('Database error for #(1) function #(2)() in module #(3)', 'user', 'get', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', new SystemException($msg)); ! return false; } ! // Check for no rows found, and if so, close the result set and return if ($result->EOF) { $result->Close(); ! return false; } --- 211,235 ---- // $dbconn->ErrorMsg(), $sql, 'user', 'get', 'Example'); // Don't use that for release versions, though... + /* $msg = pnML('Database error for #(1) function #(2)() in module #(3)', 'user', 'get', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', new SystemException($msg)); ! return; ! */ ! // This is the API compliant way to raise a db error exception ! $msg = pnMLByKey('DATABASE_ERROR', $sql); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } ! // Check for no rows found, and if so, close the result set and return an exception if ($result->EOF) { $result->Close(); ! $msg = pnML('This item does not exists'); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'ID_NOT_EXIST', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; } *************** *** 231,237 **** $msg = pnML('Not authorized to access #(1) item #(2)', 'Example', pnVarPrepForStore($exid)); ! pnExceptionSet(PN_USER_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return false; } --- 249,255 ---- $msg = pnML('Not authorized to access #(1) item #(2)', 'Example', pnVarPrepForStore($exid)); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'NO_PERMISSION', new SystemException($msg)); ! return; } *************** *** 285,293 **** // $dbconn->ErrorMsg(), $sql, 'user', 'countitems', 'Example'); // Don't use that for release versions, though... $msg = pnML('Database error for #(1) function #(2)() in module #(3)', 'user', 'countitems', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', new SystemException($msg)); ! return false; } --- 303,318 ---- // $dbconn->ErrorMsg(), $sql, 'user', 'countitems', 'Example'); // Don't use that for release versions, though... + /* $msg = pnML('Database error for #(1) function #(2)() in module #(3)', 'user', 'countitems', 'Example'); pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', new SystemException($msg)); ! return; ! */ ! // This is the API compliant way to raise a db error exception ! $msg = pnMLByKey('DATABASE_ERROR', $sql); ! pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR', ! new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); ! return; }
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 |