Source for file function.phpinc
Documentation is available at function.phpinc
* @project Open CSP-Management
* @author Peter Krebs (pk) <p.krebs@lvus.at>
* @copyright (c) 2002-2005 by LVUS <http://www.lvus.at>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
if (!isset
($GLOBALS['OCSP_CMS']['PAG_DEFAULT_CLASS'])) $GLOBALS['OCSP_CMS']['PAG_DEFAULT_CLASS']=
"CMS_PAGE_V2";
* first selects a the page from T_CMS_PAGE
* and returns OCSPFUNC_getPageObjFromRow($row)
* @returns mixed PAGE_* object or NULL in case of now row
if ($debug) echo
"<p><b>CMSPAG_loadFromDB(&\$DB,$projId,$pageId,$langId....)</b>(PROJROOT/php/cms/page/function.phpinc)</p>";
$query =
"SELECT * FROM T_CMS_PAGE WHERE PROJ_ID=".
intval($projId);
$query.=
" AND PAG_ID=".
intval($pageId);
$query.=
" AND LANG_ID=".
intval($langId);
if ($debug) {echo
"<blockquote>$query\n";echo
"</blockquote>";}
if ($row=
$DB->quickQuery($query)) {
* creates a page object out of a given row array
* by useing OCSPFUNC_newPageObject() and populates it with
* @returns mixed PAGE* object
if ($debug) echo
"<p><b>OCSPFUNC_getPageObjFromRow(\$row,...)</b> (PROJROOT/php/cms/page/function.phpinc)</p>";
if (empty($row['PAG_OBJCLASS'])) $row['PAG_OBJCLASS']=
$GLOBALS['OCSP_CMS']['DEFAULTPAGETYPE'];
$s_srcFile=
$GLOBALS['OCSP_CMS']['PAGETYPE'][$row['PAG_OBJCLASS']]['OBJINC'];
if ((!empty($s_srcFile)) &&
(file_exists($s_srcFile))) {
if ($debug) echo
"<p>Source File: $s_srcFile NOT FOUND</p>";
* creates a page object of type $classpageV2
* @returns mixed PAGE* object
if ($debug) echo
"<p><b>OCSPFUNC_newPageObject($class,...)</b> (PROJROOT/php/cms/page/function.phpinc)</p>";
if (empty($class) ||
empty($GLOBALS['OCSP_CMS']['PAGETYPE'][$class]['OBJINC'])) {
if ($debug) echo
"<p>USING DEFAULT (\$class=$class,ObjInc: ".
$GLOBALS['OCSP_CMS']['PAGETYPE'][$class]['OBJINC'].
")</p>";
if (!file_exists($GLOBALS['OCSP_CMS']['PAGETYPE'][$class]['OBJINC'])) {
$GLOBALS['OCSP_CMS']['PAGETYPE'][$class]['OBJINC']=
$GLOBALS['OCSP']['PHPINCPATH'].
$GLOBALS['OCSP_CMS']['PAGETYPE'][$class]['OBJINC'];
if (file_exists($GLOBALS['OCSP_CMS']['PAGETYPE'][$class]['OBJINC'])) {
if ($debug) {echo
"<blockquote>$class CONFIG ARRAY:<pre>";print_r($GLOBALS['OCSP_CMS']['PAGETYPE'][$class]);echo
"</pre></blockquote>";}
echo
"<p><b>DEFAULT CLASS USED</b> instead of: $class<br /></p> CONFIG ARRAY:<pre>";print_r($GLOBALS['OCSP_CMS']['PAGETYPE'][$class]);echo
"</pre>";
echo
"<p>PAGETYPES</p><pre style=\"font-size:10px;\">".
print_r($GLOBALS['OCSP_CMS']['PAGETYPE'],TRUE).
"</pre>";
$class=
$GLOBALS['OCSP_CMS']['PAG_DEFAULT_CLASS'];
//if ($debug) echo "<h2>\$class: $class</h2><pre>".print_r($GLOBALS['OCSP_CMS']['PAGETYPE'],TRUE)."</pre>";
require_once $GLOBALS['OCSP_CMS']['PAGETYPE'][$class]['OBJINC'];
$cmd=
"\$pageObj=new ".
$class.
"();";
* checks if a page (as DB-ROW) is online
* @param boolean $directCall
if ($debug) echo
"<p><b>OCSPFUNC_checkRowOnline(\$pArr,$directCall,...)</b> (PROJROOT/php/cms/page/function.phpinc)</p>";
if (!$GLOBALS['OCSP_CMS']['PAGESTATE'][intval($pArr['PAG_STATE'])]['SHOW']) {
// page is not to show automaticaly due to editor setting
if (!($directCall &&
$GLOBALS['OCSP_CMS']['PAGESTATE'][intval($pArr['PAG_STATE'])]['DIRECTSHOW'])) {
// page is not to show online
echo
"<blockquote><pre>".
print_r($pArr,TRUE).
"</pre>";
echo
"STATE:<pre>".
print_r($GLOBALS['OCSP_CMS']['PAGESTATE'][intval($pArr['PAG_STATE'])],TRUE).
"</pre>";
echo
"<p><b>PAGE NOT TO SHOW DUE TO STATE</b></p></blockquote>";
// check show from till dates
require_once $GLOBALS['PHPINCPATH'].
"common/pcf_Date.phpclass";
$aDate->setDateStr($pArr['PAG_SHOWFROM']);
if ($aDate->isInFutur()) { // the page show from is greater then now() -> don't show
if ($debug) echo
"<blockquote><p>".
$pArr['PAG_SHOWFROM'].
" is in future</p></blockquote>";
$aDate->setDateStr($pArr['PAG_SHOWTILL']); // check if the show from date is in futur
if ($aDate->isInPast()) { // the page show till is in past -> don't show
if ($debug) echo
"<blockquote><p>".
$pArr['PAG_SHOWTILL'].
" is in past</p></blockquote>";
if (intval($pArr['PAG_SHOWGROUP'])) {
if ($debug) echo
"<blockquote><p>You are not member of GRP_ID ".
$pArr['PAG_SHOWGROUP'].
"</p></blockquote>";
* finds the page to show online
* - first checks if a page with $pParams['PAG_ID'] is to show
* - if $pParams['PAG_ID']=0 the first page of the menu with $pParams['MEN_ID'] is returned
* - if $pParams['MEN_ID'] has no page and $searchInMenu == TRUE the menparents are searched for
* a page to show with the current user rights or if $enableLogin the user is asked to login
* $pParams is a array with the following keys:
* - PROJ_ID: the currentproject id
* - MEN_ID: the id of the current menu
* - LANG_ID: the language id
* @param boolean $searchInMenu
* @param boolean $enableLogin
* @todo show login when enableLogin is TRUE
* @todo language support not fully implemented
if ($debug) echo
"<p><b>OCSPFUNC_findPageOnline(</b>".
print_r($pParams,TRUE).
",$searchInMenu,$enableLogin ...<b>)</b>)<blockquote>";
if (intval($pParams['PAG_ID'])) {
if ($pArr=
$GLOBALS['USRDB']->quickQuery("SELECT * FROM T_CMS_PAGE WHERE PAG_ID=".
intval($pParams['PAG_ID']))) {
// set pParams according to the found page for the case they arn't set
$pParams['MEN_ID'] =
intval($pArr['MEN_ID']);
$pParams['PROJ_ID']=
intval($pArr['PROJ_ID']);
$pParams['PAG_ID']=
0; // unset the PAG_ID as it does not exist
$query =
"SELECT * FROM T_CMS_PAGE ";
$query.=
" WHERE PROJ_ID=".
intval($pParams['PROJ_ID']);
$query.=
" AND MEN_ID=".
intval($pParams['MEN_ID']);
$query.=
" AND PAG_SHOWFROM <= ".
$GLOBALS['USRDB']->qs_getNowStmt();
$query.=
" AND PAG_SHOWTILL >= ".
$GLOBALS['USRDB']->qs_getNowStmt();
$query.=
" ORDER BY PAG_SORTORDER";
if ($cursor=
$GLOBALS['USRDB']->query($query)) {
while($pArr=
$cursor->fetchArrayFld()) {
require_once $GLOBALS['OCSP_CMS']['PHPINCPATH'].
"menu/CMS_MENU_NODE.phpclass";
$query =
"SELECT * FROM T_CMS_MENU ";
$query.=
" WHERE PROJ_ID=".
intval($pParams['PROJ_ID']);
$query.=
" AND MEN_PARENT=".
intval($pParams['MEN_ID']);
$query.=
" AND MEN_SHOW=1";
$query.=
" AND MEN_SHOWFROM <= ".
$GLOBALS['USRDB']->qs_getNowStmt();
$query.=
" AND MEN_SHOWTILL >= ".
$GLOBALS['USRDB']->qs_getNowStmt();
$query.=
" ORDER BY MEN_SORTORDER";
if ($cursor=
$GLOBALS['USRDB']->query($query)) {
while($mArr=
$cursor->fetchArrayFld()) {
$pParams['MEN_ID']=
$mObj->getId();
* generates a comma seperated string with page states to show online
foreach($GLOBALS['OCSP_CMS']['PAGESTATE'] as $key =>
$sArr) { // get a comma sep list of states to show
Documentation generated on Thu, 08 Jan 2009 17:44:16 +0100 by phpDocumentor 1.4.0a2