• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

cms/pagesettings.lib.php

Go to the documentation of this file.
00001 <?php
00002 if(!defined('__PRAGYAN_CMS'))
00003 { 
00004         header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden');
00005         echo "<h1>403 Forbidden<h1><h4>You are not authorized to access the page.</h4>";
00006         echo '<hr/>'.$_SERVER['SERVER_SIGNATURE'];
00007         exit(1);
00008 }
00026 function getCreatablePageTypes($userid, $pageid) {
00027         $moduleQuery = "SELECT `page_module` FROM `" . MYSQL_DATABASE_PREFIX . "permissionlist` WHERE `perm_action` = 'create'";
00028         $moduleResult = mysql_query($moduleQuery);
00029         $creatableModules = array();
00030 
00031         while ($moduleResultRow = mysql_fetch_row($moduleResult))
00032                 if (getPermissions($userid, $pageid, "create", $moduleResultRow[0]))
00033                         $creatableModules[] = $moduleResultRow[0];
00034         return $creatableModules;
00035 }
00036 
00043 function getSettingsForm($pageId, $userId) {
00044         $pageId=escape($pageId);
00045         $page_query = "SELECT `page_name`, `page_title`, `page_displaymenu`, `page_displayinmenu`, `page_displaysiblingmenu` , `page_module`, `page_displaypageheading`,`page_template`,`page_modulecomponentid`, `page_menutype`, `page_menudepth` , `page_displayinsitemap` ,`page_displayicon`" .
00046         "FROM `" . MYSQL_DATABASE_PREFIX . "pages` WHERE `page_id`=" . $pageId;
00047         $page_result = mysql_query($page_query);
00048         $page_values = mysql_fetch_assoc($page_result);
00049         
00050         
00051         
00052         $chkquery="SELECT `value` FROM `".MYSQL_DATABASE_PREFIX."global` WHERE `attribute`='allow_pagespecific_template'";
00053         $row=mysql_fetch_row(mysql_query($chkquery));
00054         $allow_pagespecific_templates=$row[0]; // 0 if disabled, 1 if enabled
00055         
00056         if (!$page_values) {
00057                 return '';
00058         }
00059         global $ICONS;
00060         $modifiers = '';
00061         $showInMenuBox = '';
00062         $showInSiteMap = '';
00063         if ($pageId == 0) {
00064                 $modifiers = 'disabled="disabled" ';
00065                 $showInMenuBox = '<tr><td ><label for="showinmenu">Show page in menu bar</td></label><td><input type="checkbox" name="showinmenu" id="showinmenu" ' . ($page_values['page_displayinmenu'] == 1 ? 'checked="checked" ' : '') . '/></td></tr>';
00066                 $showInSiteMap = '<tr><td ><label for="showinsitemap">Show page in site map</td></label><td><input type="checkbox" name="showinsitemap" id="showinsitemap" ' . ($page_values['page_displayinsitemap'] == 1 ? 'checked="checked" ' : '') . '/></td></tr>';
00067         }
00068 
00069         $showmenubar = ($page_values['page_displaymenu'] == 1 ? 'checked="checked" ' : '');
00070         $showsiblingmenu = $page_values['page_displaysiblingmenu'] == 1 ? 'checked="checked" ' : '';
00071         $showheading = ($page_values['page_displaypageheading'] == 1 ? 'checked="checked"' : '');
00072         $dbPageTemplate = $page_values['page_template']; 
00073         $modulecomponentid=$page_values['page_modulecomponentid'];
00074         $displayicon = ($page_values['page_displayicon'] == 1 ? 'checked="checked" ' : '');
00075         $templates = getAvailableTemplates();
00076         $page_query = "SELECT * FROM `" . MYSQL_DATABASE_PREFIX . "pages` WHERE `page_parentid` = $pageId AND `page_parentid` != `page_id` ORDER BY `page_menurank` ASC  ";
00077         $page_result = mysql_query($page_query) or die(mysql_error());
00078         $childList ="";
00079         $isLeaf = false;
00080         if(mysql_num_rows($page_result)==0){
00081             $isLeaf = true;
00082                 $childList = "There are no child pages associated with this page.";
00083         }
00084         else
00085                 $childList = "<table border=\"1\" width=\"100%\"><tr><th>Child Pages</th><th>Display in menu bar</th><th>Display in Sitemap</th><th>Display Icon in menu</th><th>Move page up</th><th>Move page down</th><th>Delete</th></tr>";
00086         while ($page_result_row = mysql_fetch_assoc($page_result)) {
00087                 $childList .= '<tr><td><a href="./'.$page_result_row['page_name'].'+settings">' . $page_result_row['page_title'] . '</a></td>' .
00088                                 '<td><input type="checkbox" name="menubarshowchildren[]" id="'.$page_result_row['page_name'].'" value="' . $page_result_row['page_name'] . '" ' . ($page_result_row['page_displayinmenu'] == 1 ? 'checked="yes" ' : '') . '/></td>'.
00089                                 '<td><input type="checkbox" name="sitemapshowchildren[]" id="'.$page_result_row['page_name'].'" value="' . $page_result_row['page_name'] . '" ' . ($page_result_row['page_displayinsitemap'] == 1 ? 'checked="yes" ' : '') . '/></td>'.
00090                                 '<td><input type="checkbox" name="childrenshowicon[]" id="'.$page_result_row['page_name'].'" value="' . $page_result_row['page_name'] . '" ' . ($page_result_row['page_displayicon'] == 1 ? 'checked="yes" ' : '') . '/></td>'.
00091                                 '<td align="center"><input type="submit" name="moveUp" onclick="this.form.action+=\''.$page_result_row['page_name'].'\'" value="Move Up" /></td>' .
00092                                 '<td align="center"><input type="submit" name="moveDn" onclick="this.form.action+=\''.$page_result_row['page_name'].'\'" value="Move Down" /></td>' .
00093                                 '<td align="center"><input type="submit" name="deletePage" onclick="return checkDelete(this,\''.$page_result_row['page_name'].'\')"  value="Delete" /></td></tr>';
00094         }
00095         if(!mysql_num_rows($page_result)==0)
00096                 $childList .= "</table>";
00097 
00098 /* PAGE INHERITED INFO */
00099         $inheritedInfo = $inheritedPagePath = $inheritedInfoEncoded = '';
00100         $inheritedPageId = getPageInheritedInfo($pageId, $inheritedInfo);
00101         if($inheritedPageId == $pageId)
00102                 $inheritedInfoEncoded = htmlentities($inheritedInfo);
00103         if($inheritedPageId >= 0) {
00104                 $inheritedPagePath = getPagePath($inheritedPageId);
00105                 global $urlRequestRoot;
00106                 $inheritedPagePath = "<a href=\"$urlRequestRoot$inheritedPagePath+settings\">$inheritedPagePath</a>";
00107                 if($inheritedPageId != $pageId)
00108                         $inheritedPagePath .= ' (Browse to this page to edit the inherited information.)';
00109         }
00110         $inheritedInfoText = <<<INHERITEDINFO
00111         <a name="inheritinfoform"></a>
00112                 <fieldset style="padding: 8px">
00113                         <legend>{$ICONS['Page Inherited Info']['small']}Inherited Information</legend>
00114                         
00115                         <form name="pagesettings" action="./+settings&subaction=editinheritedinfo" method="POST">
00116                                 <table>
00117                                         <tr>
00118                                                 <td>Inherited Information:</td>
00119                                                 <td>
00120                                                         <div>
00121                                                                 $inheritedInfo
00122                                                         </div>
00123                                                 </td>
00124                                         </tr>
00125                                         <tr>
00126                                                 <td>Inherited From:</td>
00127                                                 <td>$inheritedPagePath</td>
00128                                         </tr>
00129                                         <tr>
00130                                                 <td>Add/Edit inherited information for this page:</td>
00131                                                 <td>
00132                                                         <textarea name="txtInheritedInfo" style="width:98%;" rows="8" cols="80" wrap="virtual">$inheritedInfoEncoded</textarea>
00133                                                 </td>
00134                                         </tr>
00135                                 </table>
00136                                 <input type="submit" name="btnSubmit" value="Submit" />
00137                         </form>
00138                 </fieldset>
00139 INHERITEDINFO;
00140 
00141 
00142 /* PAGE CREATE TEXT*/
00143         $createdPageSettingsText = "";
00144         $dbPageTemplateDisabled="";
00145         $dbPageDefTemplate="";
00146         if($dbPageTemplate==DEF_TEMPLATE)
00147         {
00148                 $dbPageDefTemplate="checked";
00149                 $dbPageTemplateDisabled="disabled=true";
00150         }
00151 
00152         if(getPageModule($pageId)=="link") {
00153                 $dereferencePagePathIds = array();
00154                 parseUrlDereferenced($pageId, $dereferencePagePathIds);
00155                 $dereferencePagePath = "";
00156                 foreach ($dereferencePagePathIds as $page) {
00157                         $info = getPageInfo($page);
00158                         $dereferencePagePath .= $info['page_name']."/";
00159                 }
00160                 global $urlRequestRoot;
00161                 $createdPageSettingsText = "Please use the <a href='".$urlRequestRoot."/".$dereferencePagePath."+settings'>linked page settings</a> to create a child page.";
00162         }
00163         else if(getPageModule($pageId)=="external") {
00164                 $createdPageSettingsText = "You cannot create a child page of a page of type \"external link\".";
00165         }
00166         else {
00167                 $generatedTree = generateDirectoryTree($userId, "page", "settings", 0)->toHtml('childPageTreeContainer', 'childPageTree', 'childpagelink');
00168                 $creatableTypesText = '<option value=""> </option><option value="menu">Menu</option><option value="link">Link</option><option value="external">External Link</option>';
00169                 $createblePageTypes = getCreatablePageTypes($userId, $pageId);
00170                 foreach ( $createblePageTypes as $creatableType) {
00171                         $creatableTypesText .= "<option value=\"$creatableType\">".ucfirst($creatableType)."</option>";
00172                 }
00173                 
00174                 $createdPageSettingsText =<<<CREATE
00175                     <form name="pagesettings" action="./+settings&subaction=create" onsubmit="return childOnSubmit();" method="POST">
00176                     <script type="text/javascript" language="javascript">
00177                         <!--
00178                                 function childOnSubmit(){
00179                                         if(document.getElementById("childpagetype").selectedIndex==0) { alert("Please select a page type."); return false;}
00180                                         if(document.getElementById("childpagename").value=="") {alert("Please fill the page name"); return false;}
00181                                         if(document.getElementById("childpagelink").value=="" && document.getElementById("childpagetype").selectedIndex==2) {alert("Please select the linked page path"); return false;}
00182                                         if(document.getElementById("externallink").value=="" && document.getElementById("childpagetype").selectedIndex==3) {alert("Please enter the external page path"); return false;}
00183                                 }
00184                                 function childShowTree(obj) {
00185 
00186                                         if(obj.selectedIndex==2) {
00187                                                 document.getElementById("childlinktree").style.display="";
00188                                                 document.getElementById("childlinkentry").style.display="";
00189                                                 document.getElementById("childlinkentry1").style.display="";
00190                                         }
00191                                         else {
00192                                                 document.getElementById("childlinktree").style.display="none";
00193                                                 document.getElementById("childlinkentry").style.display="none"; 
00194                                                 document.getElementById("childlinkentry1").style.display="none";
00195                                         }
00196                                         if(obj.selectedIndex==3) {
00197                                                 document.getElementById("externallinktr").style.display="";
00198                                                 document.getElementById("externallinktr1").style.display="";
00199                                         }
00200                                         else {
00201                                                 document.getElementById("externallinktr").style.display="none";
00202                                                 document.getElementById("externallinktr1").style.display="none";
00203                                         }
00204 
00205                                         if(obj.selectedIndex==2 || obj.selectedIndex==3)
00206                                         {
00207                                                 document.getElementById("fieldsetTemplate").style.display="none";       
00208                                         }
00209                                         else document.getElementById("fieldsetTemplate").style.display="";
00210                                 }
00211                                 function toggleSelTemplate1()
00212                                 {
00213                                         var obj=document.getElementsByName('page_template')[1];
00214                                         obj.disabled=(obj.disabled==true?false:true);
00215                 
00216                                 }
00217                         -->
00218                 </script>
00219                   <a name="childpageform"></a>
00220          <fieldset>
00221         <legend>{$ICONS['Create New Page']['small']}Create Child Page</legend>
00222       
00223         <table>
00224                 <tr>
00225                         <td valign="top">
00226                                         <table border="1">
00227                                         <tr><td>Page type:</td><td><select name="childpagetype" id="childpagetype" onchange="childShowTree(this);">$creatableTypesText</select></td></tr>
00228                                         <tr><td>Page name:</td><td><input type="text" name="childpagename" id="childpagename" /></td></tr>
00229                                         <tr id="childlinkentry" style="display:none"><td>Page link:</td><td><input type="text" name="childpagelink" id="childpagelink" /></td></tr>
00230                                                 <tr id="childlinkentry1" style="display:none"><td>Open the child page in:</td><td><select name="linkselect" id="linktype"><Option>Same Tab</option><option>New Tab</option></select></td></tr>
00231                                         <tr id="externallinktr" style="display:none"><td>External link:</td><td><input type="text" name="externallink" id="externallink" /></td></tr>
00232                                                 <tr id="externallinktr1" style="display:none"><td>Open the child page in:</td><td><select name="linkselectex" id="linktypeex"><Option>Same Tab</option><option>New Tab</option></select></td></tr>
00233                                         </table>
00234                                 </td>
00235                                 <td id="childlinktree" style="display:none">Click to select link path :
00236                                         $generatedTree
00237                                 </td>
00238                         </tr>
00239                 </table>
00240 CREATE;
00241         
00242                 
00243                         $createdPageSettingsText.=<<<CREATE
00244                         <fieldset id="fieldsetTemplate">
00245                         <legend>Template</legend>
00246 CREATE;
00247         if($allow_pagespecific_templates==1)
00248         {
00249                 $createdPageSettingsText.=<<<CREATE
00250                         <table>
00251                         <tr>
00252                         <td>Use Default Template ?</td>
00253                         <td><input type='checkbox' name='default_template' value='yes' onchange="toggleSelTemplate1()" $dbPageDefTemplate /></td>
00254                         </tr>
00255                         <tr>
00256                         <td>Select Template</td>
00257                         <td><select name='page_template' $dbPageTemplateDisabled>
00258 CREATE;
00259                         for($i=0; $i<count($templates); $i++)
00260                         {
00261                                 if($templates[$i]==$dbPageTemplate)
00262                                 $createdPageSettingsText.="<option value='".$templates[$i]."' selected >".ucwords($templates[$i])."</option>";
00263                                 else
00264                                 $createdPageSettingsText.="<option value='".$templates[$i]."' >".ucwords($templates[$i])."</option>";
00265                         }
00266                         $createdPageSettingsText.="
00267                         </select>
00268         
00269                         </tr>
00270         
00271                         </table>";
00272         }
00273         else 
00274         $createdPageSettingsText.="Page-specific templates are disabled. Please enable it from Global Settings in Admin or click <a href='./+admin&subaction=global'>here</a>";
00275                         
00276                 
00277                 
00278                 
00279                 $createdPageSettingsText.=<<<CREATE
00280                 </fieldset><br/>
00281                 <input type="submit" name="btnSubmit2" value="Submit" />&nbsp;&nbsp;<input type="reset" name="btnReset" value="Reset" />
00282       </fieldset>
00283       </form>
00284 CREATE;
00285         }
00286 /* PAGE CREATE TEXT ENDS*/
00287 
00288 
00289 /* PAGE MOVE COPY TEXT BEGINS */
00290         $generatedTree = generateDirectoryTree($userId, "page", "settings", 0)->toHtml('fileCopyTreeContainer', 'fileCopyTree', "parentpagepath");
00291         $movecopyPageSettingsText =<<<MOVECOPY
00292                 <script type="text/javascript" language="javascript">
00293                         function moveOnSubmit(){
00294                                 if(document.getElementById("parentpagepath").value=="") {alert("Please fill the page path"); return false;}
00295                                 if(document.getElementById("destinationpagetitle").value=="") { alert("Please select a page title."); return false;}
00296                                 if(document.getElementById("destinationpagename").value=="") {alert("Please fill the page name"); return false;}
00297                         }
00298                         function movecopyChange(obj){
00299                                 if(obj.checked==true)
00300                                         document.getElementById("recursivelycopypage").disabled=true;
00301                                 else
00302                                         document.getElementById("recursivelycopypage").disabled=false;
00303                         }
00304                 -->
00305         </script>
00306         <form name="pagesettings" action="./+settings&subaction=move" onsubmit="return moveOnSubmit()" method="POST">
00307           <a name="copymovepageform"></a>
00308          <fieldset>
00309         <legend>{$ICONS['Copy or Move Page']['small']}Copy or Move Page</legend>
00310       
00311                 <table border="1">
00312                         <tr>
00313                                 <td valign="top">
00314                                 <table border="1" cellpadding="2px" cellspacing="2px">
00315                                         <tr><td colspan="2">Click on the generated page tree to select the parent page path : </td></tr>
00316                                   <tr><td>Path of the distination parent page :</td><td><input type="text" id="parentpagepath" name="parentpagepath"/></td></tr>
00317                                   <tr><td>Destination page title:</td><td><input type="text" name="destinationpagetitle" id="destinationpagetitle" value="{$page_values['page_title']}"/></td></tr>
00318                                   <tr><td>Destination page name:</td><td><input type="text" name="destinationpagename" id="destinationpagename" value="{$page_values['page_name']}"/></td></tr>
00319                                   <tr><td><label for="deleteoriginalpage">Delete original entry (Move instead of Copy)</label></td><td><input type="checkbox" name="deleteoriginalpage" id="deleteoriginalpage" checked="true" onclick="movecopyChange(this);"/></td></tr>
00320                                   <tr><td><label for="recusivelycopypage">Copy recursively? (in case of Copy)</label></td><td><input type="checkbox" name="recursivelycopypage" id="recursivelycopypage" disabled="true" /></td></tr>
00321                                 </table>
00322                                 Legend:
00323                                 <table cellpadding="2px" cellspacing="2px">
00324                                         <tr><td style="border: 1px solid black; width: 18px; background-color: #E8FFE8"></td><td>Accessible Items</td></tr>
00325                                         <tr><td style="border: 1px solid black; width: 18px; background-color: #FFE8E8"></td><td>Inaccessible Items</td></tr>
00326                                 </table>
00327                             </td>
00328                             <td valign="top">
00329                                         <div id="pathtree">Click to select destination path : $generatedTree</div>
00330                             </td>
00331                         </tr>
00332                 </table>
00333 
00334                 <input type="submit" name="btnSubmit2" value="Submit" />&nbsp;&nbsp;<input type="reset" name="btnReset" value="Reset" />
00335       </fieldset>
00336       </form>
00337 
00338 MOVECOPY;
00339 /* PAGE MOVE COPY TEXT ENDS */
00340 
00341         global $pageFullPath;
00342         global $STARTSCRIPTS;
00343         $STARTSCRIPTS.="toggleMenuType();";
00344         $parentPath = ($pageId==0?'':'<a href="../+settings">Parent page link.</a>');
00345         $pageType=ucfirst($page_values['page_module']);
00346         $menuType=$page_values['page_menutype'];
00347         $menudepth=$page_values['page_menudepth'];
00348         $classictype="";
00349         $multidepthtype="";
00350         $completetype="";
00351         if($menuType=="classic") $classictype="selected";
00352         else if($menuType=="multidepth") $multidepthtype="selected";
00353         else $completetype="selected";
00354         
00355         $row = mysql_fetch_array(mysql_query("SELECT `allowComments` FROM `article_content` WHERE `page_modulecomponentid` = '{$modulecomponentid}'"));
00356         $allowComments = $row['allowComments'] == 1 ? 'checked="checked" ' : '';
00357         
00358         $formDisplay =<<<FORMDISPLAY
00359 
00360         <div id="page_settings">
00361     <form name="pagesettings" action="./+settings&subaction=pagesettings&pageName=" method="POST" onsubmit="return settingsOnSubmit();">
00362                 <script type="text/javascript" language="javascript">
00363                         function settingsOnSubmit(){
00364                                 if(!document.getElementById("pagename").disabled) {
00365                                         if(document.getElementById("pagename").value=="") {alert("Please fill the page name."); return false;}
00366                                 }
00367                                 if(document.getElementById("pagetitle").value=="") { alert("Please fill the page title."); return false;}
00368                         }
00369                         function checkDelete(butt,fileName)
00370                         {
00371                                 if(confirm('Are you sure you want to delete '+fileName+'?'))
00372                                 {
00373                                         butt.form.action+=fileName;
00374                                         butt.form.submit();
00375                                 }
00376                                 else return false;
00377                         }
00378                         function toggleSelTemplate2()
00379                                 {
00380                                         var obj=document.getElementsByName('page_template')[0];
00381                                         obj.disabled=(obj.disabled==true?false:true);
00382                 
00383                                 }
00384                         function toggleMenuType()
00385                                 {
00386                                         var obj=document.getElementById('menutype');
00387                                         if(obj.value=="classic")
00388                                         {
00389                                                 document.getElementById('showsiblingmenu').disabled=false;
00390                                                 document.getElementById('menudepth').disabled=true;
00391                                         }
00392                                         else 
00393                                         {
00394                                                 document.getElementById('showsiblingmenu').disabled=true;
00395                                                 document.getElementById('menudepth').disabled=false;
00396                                         }
00397                                 }
00398                 </script>
00399 
00400 
00401                 <br />
00402         <a name="topquicklinks"></a>
00403         <fieldset>
00404         <legend>{$ICONS['Page Settings']['small']}Page Settings</legend>
00405         <table class='iconspanel'>
00406         <tr>
00407         <td><a href='#pageinfoform'><div>{$ICONS['Page Information']['large']}<br/>Page Information</div></a></td>
00408         <td><a href='#childpageform'><div>{$ICONS['Create New Page']['large']}<br/>Create New Page</div></a></td>
00409         <td><a href='#copymovepageform'><div>{$ICONS['Copy or Move Page']['large']}<br/>Copy or Move Page</div></a></td>
00410         <td><a href='#inheritinfoform'><div>{$ICONS['Page Inherited Info']['large']}<br/>Page Inherited Information</div></a></td>
00411         </tr>
00412         </table>   
00413         </fieldset>
00414         
00415         <a name="pageinfoform"></a>
00416         <fieldset>
00417                 <legend>{$ICONS['Page Information']['small']}Page Information</legend>
00418                 
00419                 <table border="1" cellpadding="2px" cellspacing="2px">
00420                                 <tr><td>Page path:</td><td>$pageFullPath</td></tr>
00421                         <tr><td>Page name:</td><td><input type="text" id="pagename" name="pagename" value="{$page_values['page_name']}" $modifiers/></td></tr>
00422                                 <tr><td>Page title:</td><td><input type="text" id="pagetitle" name="pagetitle" value="{$page_values['page_title']}" $modifiers/></td></tr>
00423                                 <tr><td >Page type: </td><td>$pageType</td></tr>
00424                                 <tr><td>Allow comments: </td><td><input type='checkbox' id='allowComments' name='allowComments' $allowComments></td></tr>
00425                                 $showInMenuBox
00426                         <tr><td><label for="showheading">Show page heading</label></td><td><input type="checkbox" id="showheading" name="showheading" $showheading /></td></tr>
00427                                         
00428                                 $showInSiteMap  
00429                                 
00430                 </table>
00431                 <fieldset><legend>Menu Settings</legend>
00432                 <table border="1" cellpadding="2px" cellspacing="2px">
00433                 
00434                         
00435                                 <tr>
00436                                         <td><label for='menutype'>Menu type</label></td>
00437                                         <td>
00438                                         <select name="menutype" id="menutype" onchange="toggleMenuType();">
00439                                                 <option value='classic' $classictype>Classic</option>
00440                                                 <option value='complete' $completetype>Complete</option>
00441                                                 <option value='multidepth' $multidepthtype>Multi-Depth</option>
00442                                         </select>
00443                                         </td>
00444                                         <td rowspan="4"><input type="checkbox" name='menustyle_propogate' value='yes' checked="checked" />Propogate Menu settings to all child pages <br /><br /> Menu Depth = -1 : Generate Complete Menu till the last child page.</td>
00445                                 <tr>
00446                                         <td><label for='showmenubar'>Show menu bar in page</label></td>
00447                                         <td><input type='checkbox' id='showmenubar' name='showmenubar' $showmenubar/></td>
00448                                 </tr><tr>
00449                                         <td><label for='showsiblingmenu'> Show sibling menu in page</label></td>
00450                                         <td><input type='checkbox' name='showsiblingmenu' id='showsiblingmenu' $showsiblingmenu /></td>
00451                                 </tr>
00452                                 <tr>
00453                                         <td><label for='menudepth'>Menu Depth</label></td>
00454                                         <td><input type='text' name='menudepth' id='menudepth' value='$menudepth'/>  </td>
00455                                 </tr><tr>
00456                                         <td><label for='displayicon'> Show icon in menu </label></td>
00457                                         <td><input type='checkbox' name='displayicon' id='displayicon' $displayicon /></td>
00458                                         <td rowspan="4"><input type="checkbox" name='icon_propogate' value='yes' />Propogate Icon settings to all child pages </td>
00459                                 </tr>
00460                                 
00461                 </table>
00462                 </fieldset>
00463                 <fieldset><legend>Template</legend>
00464 FORMDISPLAY;
00465         if($allow_pagespecific_templates==1)
00466         {
00467                 $formDisplay.=<<<FORMDISPLAY
00468                 <table border="1" cellpadding="2px" cellspacing="2px">
00469                                 
00470                                 <tr>
00471                                         <td>Use Default Template ?</td>
00472                                         <td><input type='checkbox' name='default_template' value='yes' onchange="toggleSelTemplate2()" $dbPageDefTemplate /></td>
00473                                         <td rowspan=2><input type="checkbox" name='template_propogate' value='yes' />Propogate Template setting to all child pages
00474                                         </td>
00475                                         </tr>
00476                                         <tr>
00477                                         <td>Select Template</td>
00478                                         <td><select name='page_template' $dbPageTemplateDisabled>
00479 FORMDISPLAY;
00480                                         for($i=0; $i<count($templates); $i++)
00481                                         {
00482                                                 if($templates[$i]==$dbPageTemplate)
00483                                                 $formDisplay.="<option value='".$templates[$i]."' selected >".ucwords($templates[$i])."</option>";
00484                                                 else
00485                                                 $formDisplay.="<option value='".$templates[$i]."' >".ucwords($templates[$i])."</option>";
00486                                         }
00487                                         $formDisplay.="
00488                                         </select>
00489         
00490                                 </tr>
00491                 </table>";
00492         }
00493         else $formDisplay.="Page-specific templates are disabled. Please enable it from Global Settings in Admin or click <a href='./+admin&subaction=global'>here</a>";
00494         
00495         $formDisplay.=<<<FORMDISPLAY
00496                 </fieldset>
00497                 
00498                 <fieldset><legend>Child Pages</legend>
00499                 Child pages: (Click on links for children's settings.) $parentPath <br />
00500                 $childList
00501                 </fieldset>
00502              
00503 
00504                 <input type="submit" name="btnSubmit" value="Submit"/>&nbsp;&nbsp;<input type="reset" name="btnReset" value="Reset" />
00505         </fieldset>
00506         <a href="#topquicklinks">Top</a>
00507     </form>
00508         <br/><br/>
00509                 $createdPageSettingsText
00510                 <a href="#topquicklinks">Top</a>
00511         <br/><br/>
00512                 $movecopyPageSettingsText
00513                 <a href="#topquicklinks">Top</a>
00514 <br/><br/>
00515         $inheritedInfoText
00516         <a href="#topquicklinks">Top</a>
00517         </div>
00518 FORMDISPLAY;
00519         return $formDisplay;
00520 }
00521 
00532 function updateSettings($pageId, $userId, $pageName, $pageTitle, $showInMenu, $showHeading, $showMenuBar, $showSiblingMenu, $visibleChildList,$visiblesChildList, $visibleiChildList, $page_template, $template_propogate, $menu_type, $menu_depth, $menu_propogate, $showInSiteMap, $displayicon,$icon_propogate) {
00533 
00534         $updateQuery = '';
00535         $updates = array ();
00536         $errors = '';
00537         $pageId=escape($pageId);
00538         $userId=escape($userId);
00539         $pageName=escape($pageName);
00540         $pageTitle=escape($pageTitle);
00541         $page_template=escape($page_template);
00542         
00543         if ($pageId == 0) {
00544                 if (is_bool($showInMenu)) {if($template_propogate==true)
00545         {
00546                 setChildTemplateFromParentID($pageId,$page_template);   
00547         }
00548                         $updates[] = '`page_displayinmenu` = ' . ($showInMenu == true ? 1 : 0);
00549                 }
00550         }
00551 
00552         if (is_bool($showMenuBar)) {
00553                 $updates[] = '`page_displaymenu` = ' . ($showMenuBar == true ? 1 : 0);
00554         }
00555 
00556         if (is_bool($showInSiteMap)) {
00557                 $updates[] = '`page_displayinsitemap` = ' . ($showInSiteMap == true ? 1 : 0);
00558         }
00559 
00560         if (is_bool($showHeading)) {
00561                 $updates[] = '`page_displaypageheading` = ' . ($showHeading == true ? 1 : 0);
00562         }
00563         if (is_bool($displayicon)) {
00564                 $updates[] = '`page_displayicon` = ' . ($displayicon == true ? 1 : 0);
00565         }
00566 
00567         if ($pageId != 0 && isset ($pageName) && $pageName!="" && isset ($pageTitle) && $pageTitle!="") {
00568                 if(preg_match('/^[a-zA-Z][\_a-zA-Z0-9]*$/', $pageName)) {
00569                         $query = "SELECT `page_id` FROM `" . MYSQL_DATABASE_PREFIX . "pages` WHERE `page_name` = '$pageName' AND `page_id` != $pageId AND `page_parentid` = " .
00570                                                                 "(SELECT `page_parentid` FROM `" . MYSQL_DATABASE_PREFIX . "pages` WHERE `page_id` = $pageId)";
00571                         $result = mysql_query($query);
00572                         if (mysql_num_rows($result) > 0) {
00573                                 $errors = 'A page with the same name already exists in the folder.<br />';
00574                         } else {
00575                                 $updates[] = "`page_name` = '$pageName'";
00576                         }
00577                 }
00578                 else {
00579                         $errors = 'Page name can contain only alphabets (a-z, and A-Z), digits (0-9) and underscores.';
00580                 }
00581                 $updates[] = "`page_title` = '$pageTitle'";
00582         }
00583 
00584         if($page_template!=NULL)
00585         {
00586                 $updates[] = "`page_template` = '$page_template'";
00587         }
00588         if($template_propogate==true)
00589         {
00590                 setChildTemplateFromParentID($pageId,$page_template);   
00591         }
00592         if($menu_propogate==true)
00593         {
00594                 setChildMenuStyleFromParentID($pageId,$menu_type,$showMenuBar,$showSiblingMenu,$menu_depth);    
00595         }
00596         if($icon_propogate==true)
00597         {
00598                 setChildIconFromParentID($pageId,$displayicon); 
00599         }
00600         if($menu_type!=NULL)
00601         {
00602                 $updates[] = "`page_menutype` = '$menu_type'";
00603                 
00604                 if(($menu_type=="multidepth" || $menu_type=="complete")&& $menu_depth!=NULL)
00605                 {
00606                         $updates[] = "`page_menudepth` = $menu_depth";
00607                 }
00608                 else if($menu_type=="classic" && is_bool($showSiblingMenu))
00609                 {
00610                         $updates[] = '`page_displaysiblingmenu` = ' . ($showSiblingMenu == true ? 1 : 0);
00611                 }
00612         }
00613         if (count($updates) > 0) {
00614                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET ' . join($updates, ', ') . " WHERE `page_id` = $pageId;";
00615                 mysql_query($updateQuery);
00616         }
00617 
00618         if (is_array($visibleChildList) && count($visibleChildList) > 0) {
00619                 $visibleChildList = "'" . join($visibleChildList, "', '") . "'";
00620                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayinmenu` = 1 WHERE ' .
00621                 "`page_name` IN ($visibleChildList) AND `page_parentid` = $pageId AND `page_parentid` != `page_id`";
00622                 mysql_query($updateQuery);
00623                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayinmenu` = 0 WHERE ' .
00624                 "`page_name` NOT IN ($visibleChildList) AND `page_parentid` = $pageId AND `page_parentid` != `page_id`";
00625         } else {
00626                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayinmenu` = 0 WHERE ' .
00627                 "`page_parentid` = $pageId AND `page_parentid` != `page_id`";
00628         }
00629         mysql_query($updateQuery);
00630         if (is_array($visiblesChildList) && count($visiblesChildList) > 0) {
00631                 $visiblesChildList = "'" . join($visiblesChildList, "', '") . "'";
00632                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayinsitemap` = 1 WHERE ' .
00633                 "`page_name` IN ($visiblesChildList) AND `page_parentid` = $pageId AND `page_parentid` != `page_id`";
00634                 mysql_query($updateQuery);
00635                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayinsitemap` = 0 WHERE ' .
00636                 "`page_name` NOT IN ($visiblesChildList) AND `page_parentid` = $pageId AND `page_parentid` != `page_id`";
00637         } else {
00638                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayinsitemap` = 0 WHERE ' .
00639                 "`page_parentid` = $pageId AND `page_parentid` != `page_id`";
00640         }
00641         if(!$icon_propogate)
00642         {
00643         if (is_array($visibleiChildList) && count($visibleiChildList) > 0) {
00644                 $visibleiChildList = "'" . join($visibleiChildList, "', '") . "'";
00645                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayicon` = 1 WHERE ' .
00646                 "`page_name` IN ($visibleiChildList) AND `page_parentid` = $pageId AND `page_parentid` != `page_id`";
00647                 mysql_query($updateQuery);
00648                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayicon` = 0 WHERE ' .
00649                 "`page_name` NOT IN ($visibleiChildList) AND `page_parentid` = $pageId AND `page_parentid` != `page_id`";
00650         } else {
00651                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_displayicon` = 0 WHERE ' .
00652                 "`page_parentid` = $pageId AND `page_parentid` != `page_id`";
00653         }
00654         }
00655         mysql_query($updateQuery);
00656 
00657         return $errors;
00658 }
00659 function setChildTemplateFromParentID($parentId,$page_template)
00660 {
00661         $parentId=escape($parentId);
00662         $query= "SELECT `page_id` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=".$parentId." AND NOT `page_id`=0";
00663         $result=mysql_query($query);
00664         while($row=mysql_fetch_row($result))
00665         {
00666                 $childPageId=$row[0];
00667                 $query="UPDATE `".MYSQL_DATABASE_PREFIX."pages` SET `page_template`='$page_template' WHERE `page_id`=$childPageId";
00668                 mysql_query($query);
00669                 setChildTemplateFromParentID($childPageId,$page_template);
00670         }
00671 }
00672 function setChildMenuStyleFromParentID($parentId,$menu_type,$showMenuBar,$showSiblingMenu,$menu_depth)
00673 {
00674         $parentId=escape($parentId);
00675         $menu_type=escape($menu_type);
00676         $menu_depth=escape($menu_depth);
00677         $bshowMenuBar=($showMenuBar==true)?1:0;
00678         $bshowSiblingMenu=($showSiblingMenu==true)?1:0;
00679         $query= "SELECT `page_id` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=".$parentId." AND NOT `page_id`=0";
00680         $result=mysql_query($query);
00681         $menu="";
00682         $sibling="";
00683         if($menu_depth!=NULL)
00684                 $menu=", `page_menudepth`=$menu_depth ";
00685         
00686         if(is_bool($showSiblingMenu))
00687                 $sibling=", `page_displaysiblingmenu`=$bshowSiblingMenu ";
00688         
00689         while($row=mysql_fetch_row($result))
00690         {
00691                 $childPageId=$row[0];
00692                 $query="UPDATE `".MYSQL_DATABASE_PREFIX."pages` SET `page_displaymenu`=$bshowMenuBar, `page_menutype`='$menu_type' $sibling  $menu WHERE `page_id`=$childPageId";
00693                 mysql_query($query);
00694                 
00695                 setChildMenuStyleFromParentID($childPageId,$menu_type,$showMenuBar,$showSiblingMenu,$menu_depth);
00696         }
00697 }
00698 function setChildIconFromParentID($parentId,$displayicon)
00699 {if($displayicon=='')$displayicon=0;
00700         $parentId=escape($parentId);
00701         $query= "SELECT `page_id` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=".$parentId." AND NOT `page_id`=0";
00702         $result=mysql_query($query);
00703         while($row=mysql_fetch_row($result))
00704         {
00705                 $childPageId=$row[0];
00706                 $query="UPDATE `".MYSQL_DATABASE_PREFIX."pages` SET `page_displayicon`=$displayicon WHERE `page_id`=$childPageId";
00707                 mysql_query($query);
00708                 setChildIconFromParentID($childPageId,$displayicon);
00709         }
00710 }
00711 
00712 
00719 function pagesettings($pageId, $userId) {
00720         
00721         $pageId=escape($pageId);
00722         $userId=escape($userId);
00723         global $sourceFolder;
00724         $chkquery="SELECT `value` FROM `".MYSQL_DATABASE_PREFIX."global` WHERE `attribute`='allow_pagespecific_template'";
00725         $row=mysql_fetch_row(mysql_query($chkquery));
00726         $allow_pagespecific_templates=$row[0]; // 0 if disabled, 1 if enabled
00727         
00728         require_once($sourceFolder."/tree.lib.php");
00729 
00730         if(isset($_GET['displayinfo'])) {
00731                 displayinfo(safe_html($_GET['displayinfo']));
00732         }
00733         if(isset($_GET['displayerror'])) {
00734                 displayerror(safe_html($_GET['displayerror']));
00735         }
00736         if (isset ($_GET['subaction']))  {
00737                 if($_GET['subaction']=="pagesettings") {
00738 
00739                         $childPageName=escape($_GET['pageName']);
00740                         if(isset($_POST['btnSubmit'])) {
00741                                 $visibleChildList = array();
00742                                 $visibleiChildList = array();
00743                                 $visiblesChildList = array();
00744                                 if(isset($_POST['menubarshowchildren']) && is_array($_POST['menubarshowchildren'])) {
00745                                         for($i = 0; $i < count($_POST['menubarshowchildren']); $i++) {
00746                                                 $visibleChildList[] = escape($_POST['menubarshowchildren'][$i]);
00747                                         }
00748                                 }
00749                                 if(isset($_POST['sitemapshowchildren']) && is_array($_POST['sitemapshowchildren'])) {
00750                                         for($i = 0; $i < count($_POST['sitemapshowchildren']); $i++) {
00751                                                 $visiblesChildList[] = escape($_POST['sitemapshowchildren'][$i]);
00752                                         }
00753                                 }
00754                                 if(isset($_POST['childrenshowicon']) && is_array($_POST['childrenshowicon'])) {
00755                                         for($i = 0; $i < count($_POST['childrenshowicon']); $i++) {
00756                                                 $visibleiChildList[] = escape($_POST['childrenshowicon'][$i]);
00757                                         }
00758                                 }
00759 
00760                                 $pageInfoRow = getPageInfo($pageId);
00761                                 if(isset($_POST['default_template']) || $allow_pagespecific_templates==0)
00762                                         $page_template=DEF_TEMPLATE;
00763                                 else $page_template=escape($_POST['page_template']);
00764         
00765                                 $template_propogate=isset($_POST['template_propogate'])?true:false;
00766                                 $menu_propogate=isset($_POST['menustyle_propogate'])?true:false;
00767                                 $icon_propogate=isset($_POST['icon_propogate'])?true:false;
00768                                 $_POST['pagename']=isset($_POST['pagename'])?$_POST['pagename']:"";
00769                                 $_POST['pagetitle']=isset($_POST['pagetitle'])?$_POST['pagetitle']:"";
00770                                 $var = (isset($_POST['allowComments'])?1:0);
00771                                 $modulecomponentid = mysql_fetch_array(mysql_query("SELECT `page_modulecomponentid` FROM `" . MYSQL_DATABASE_PREFIX . "pages` WHERE `page_id` = '{$pageId}'"));
00772                                 $modulecomponentid = $modulecomponentid['page_modulecomponentid'];
00773                                 mysql_query("UPDATE `article_content` SET `allowComments` = $var WHERE `page_modulecomponentid` = '{$modulecomponentid}'");
00774                                 $updateErrors = updateSettings($pageId, $userId, escape($_POST['pagename']), escape($_POST['pagetitle']), isset($_POST['showinmenu']), isset($_POST['showheading']), isset($_POST['showmenubar']), isset($_POST['showsiblingmenu']), $visibleChildList,$visiblesChildList,$visibleiChildList, $page_template, $template_propogate, escape($_POST['menutype']),isset($_POST['menudepth'])?escape($_POST['menudepth']):NULL,$menu_propogate,isset($_POST['showinsitemap']),isset($_POST['displayicon']),$icon_propogate);
00775 
00776                                 
00777 
00778                                 $pageInfoRow = getPageInfo($pageId);
00779                                 if($updateErrors == '') {
00780                                         //disconnect();
00781                                         //header("Location: ../{$pageInfoRow['page_name']}+settings&displayinfo=".rawurlencode('Page settings updated successfully!'));
00782                                         displayinfo("Page settings updated successfully!");
00783                                 }
00784                                 else {
00785                                         //disconnect();
00786                                         //header("Location: ../{$pageInfoRow['page_name']}+settings&displayerror=".rawurlencode($updateErrors));
00787                                         displayerror("Could not update page settings : ".$updateErrors);
00788                                 }
00789                         }
00790                         if(isset($_POST['moveUp'])||isset($_POST['moveDn'])) {
00791                                 if(isset($_POST['moveUp']))
00792                                 {
00793                                         $comparison="<=";
00794                                         $sortOrder="DESC";
00795                                 }
00796                                 else
00797                                 {
00798                                         $comparison=">=";
00799                                         $sortOrder="ASC";
00800                                 }
00801                                 $childPageName=escape($_GET['pageName']);
00802                                 $query="SELECT `page_menurank`,`page_id` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=$pageId AND `page_name`='$childPageName' AND `page_id` != $pageId ORDER BY `page_menurank` $sortOrder LIMIT 0,1 ";
00803                                 $result=mysql_query($query);
00804                                 $temp=mysql_fetch_assoc($result);
00805                                 $childPageId=$temp['page_id'];
00806                                 $query="SELECT `page_menurank`,`page_id` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=$pageId AND `page_menurank` $comparison(SELECT `page_menurank` FROM  `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=$pageId AND `page_name`='$childPageName') AND `page_id` != $childPageId  AND `page_parentid` != `page_id` ORDER BY `page_menurank` $sortOrder LIMIT 0,1 ";
00807                                 $result=mysql_query($query) or displayinfo(mysql_error());
00808                                 if(mysql_num_rows($result)==0){
00809                                         displayerror("You cannot move up/down the first/last page in menu");
00810 
00811                                 }
00812                                 $tempTarg=mysql_fetch_assoc($result);
00813                                 $query="SELECT `page_menurank`,`page_parentid` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=$childPageId";
00814                                 $result=mysql_query($query);
00815                                 $tempSrc=mysql_fetch_assoc($result);
00816                                 if(($tempTarg['page_menurank'])==($tempSrc['page_menurank']))
00817                                 {
00818                                         $query="UPDATE `".MYSQL_DATABASE_PREFIX."pages` SET `page_menurank` = `page_id` WHERE `page_parentid`=$tempSrc[page_parentid]";
00819                                         mysql_query($query);
00820                                         displayinfo("Error in menu rank corrected. Please reorder the pages");
00821                                 }
00822                                 else{
00823                                 $query="UPDATE `".MYSQL_DATABASE_PREFIX."pages`  SET `page_menurank` =$tempSrc[page_menurank] WHERE `page_id` = $tempTarg[page_id] ";
00824                                 mysql_query($query);
00825                                 $query="UPDATE `".MYSQL_DATABASE_PREFIX."pages`  SET `page_menurank` =$tempTarg[page_menurank] WHERE `page_id` = $childPageId ";
00826                                 mysql_query($query);
00827                                 }
00828                         }
00829                         if(isset($_POST['deletePage']))
00830                         {
00831                                 if(isset($_GET['pageName']) || $_GET['pageName']=="") {
00832                                         $childPageName=escape($_GET['pageName']);
00833                                         $query="SELECT `page_id` FROM  `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=$pageId AND `page_name`='$childPageName'";
00834                                         $result=mysql_query($query);
00835                                         $temp=mysql_fetch_assoc($result);
00836                                         $childPageId=$temp['page_id'];
00837                                         if(deletePage($childPageId,$userId))
00838                                                 displayinfo("Page deleted successfully.");
00839                                 }
00840                                 else
00841                                         displayerror("Not enough information available");
00842                         }
00843                 }
00844                 elseif($_GET['subaction']=="move") {
00845 
00846                         if ($_POST['parentpagepath'] == '')
00847                                 $updateErrors = "Null page id";
00848                         else {
00849                                 global $sourceFolder;
00850                                 require_once($sourceFolder."/parseurl.lib.php");
00851                                 $pageIdArray = array();
00852                                 $parentId = parseUrlReal(escape($_POST['parentpagepath']), $pageIdArray);
00853                                 $updateErrors = move_page($userId,$pageId, $parentId, escape($_POST['destinationpagetitle']), escape($_POST['destinationpagename']),isset( $_POST['deleteoriginalpage']));
00854                         }
00855 
00856                         if ($updateErrors != '') {
00857                                 displayerror($updateErrors);
00858                         }
00859                 }
00860                 elseif($_GET['subaction']=="create") {
00870                         if(isset($_POST['childpagetype'])&&isset($_POST['childpagename'])) {
00871 
00872                                 if(isset($_POST['default_template']) || $allow_pagespecific_templates==0)
00873                                         $page_template=DEF_TEMPLATE;
00874                                 else $page_template=escape($_POST['page_template']);
00875 
00876                                 $maxquery="SELECT MAX( page_id ) AS MAX FROM ".MYSQL_DATABASE_PREFIX."pages";
00877                                 $maxqueryresult = mysql_query($maxquery);
00878                                 $maxqueryrow = mysql_fetch_array($maxqueryresult);
00879                                 $maxpageid = $maxqueryrow[0]+1;
00880 
00881                                 $alreadyexistquery="SELECT page_name FROM ".MYSQL_DATABASE_PREFIX."pages WHERE page_parentid='$pageId' AND page_name='".escape($_POST['childpagename'])."'";
00882                                 $alreadyexistqueryresult = mysql_query($alreadyexistquery);
00883                                 $alreadyexistquerynumrows = mysql_num_rows($alreadyexistqueryresult);
00884                                 $childPageName = str_replace(' ', '_', escape(strtolower($_POST['childpagename'])));
00885                                 $childPageTitle = escape($_POST['childpagename']);
00886                                 if(!preg_match('/^[a-z][\_a-z0-9]*$/',  $childPageName))
00887                                         displayerror("Invalid page name.");
00888                                 elseif($alreadyexistquerynumrows>=1)
00889                                         displayerror("A page with the given name already exists at this location.");
00890                                 elseif($_POST['childpagetype']=="menu") {
00891                                         $menuquery = "INSERT INTO `".MYSQL_DATABASE_PREFIX."pages` (`page_id` ,`page_name` ,`page_parentid` ,`page_title` ,`page_module` ,`page_modulecomponentid` , `page_template`, `page_menurank`) " .
00892                                                         "VALUES ('$maxpageid', '".$childPageName."', '$pageId', '".$childPageTitle."', '".escape($_POST['childpagetype'])."', '0', '$page_template', '$maxpageid')";
00893                                         mysql_query($menuquery);
00894                                                 if (mysql_affected_rows() != 1)
00895                                                         displayerror( 'Unable to create a new page');
00896                                                 else displayinfo("Menu successfully created! <a href='./$childPageName+settings'>Click here</a> to go to its page-settings and start creating links in the menu.");
00897                                 }
00898                                 elseif($_POST['childpagetype']=="link") {
00899                                         global $sourceFolder;
00900                                         require_once($sourceFolder."/parseurl.lib.php");
00901                                         $pageIdArray = array();
00902                                         $parentId = parseUrlReal(escape($_POST['childpagelink']), $pageIdArray);
00903                                         if(getPermissions($userId, $parentId, "settings")) {
00904                                         if($_POST['linkselect']=="Same Tab"){
00905                                         $parentId = parseUrlReal(escape($_POST['childpagelink']), $pageIdArray);
00906                                         $linkquery = "INSERT INTO `".MYSQL_DATABASE_PREFIX."pages` (`page_id` ,`page_name` ,`page_parentid` ,`page_title` ,`page_module` ,`page_modulecomponentid` , `page_template`, `page_menurank`, `page_openinnewtab`) " .
00907                                                         "VALUES ('$maxpageid', '$childPageName', '$pageId', '$childPageTitle', '".escape($_POST['childpagetype'])."', '$parentId', '$page_template', '$maxpageid', '0')";
00908                                         mysql_query($linkquery);
00909                                                 if (mysql_affected_rows() != 1)
00910                                                         displayerror( 'Unable to create a new page');
00911                                         }
00912                                         if ($_POST['linkselect']=="New Tab"){
00913                                         $parentId = parseUrlReal(escape($_POST['childpagelink']), $pageIdArray);
00914                                         $linkquery = "INSERT INTO `".MYSQL_DATABASE_PREFIX."pages` (`page_id` ,`page_name` ,`page_parentid` ,`page_title` ,`page_module` ,`page_modulecomponentid` , `page_template`, `page_menurank`, `page_openinnewtab`) " .
00915                                                         "VALUES ('$maxpageid', '$childPageName', '$pageId', '$childPageTitle', '".escape($_POST['childpagetype'])."', '$parentId', '$page_template', '$maxpageid', '1')";
00916                                         mysql_query($linkquery);
00917                                                 if (mysql_affected_rows() != 1)
00918                                                         displayerror( 'Unable to create a new page');
00919                                         }
00920                                         }
00921                                         else
00922                                                 displayerror("Not enough permission to create a link for that location.");
00923                                 }
00924                                 elseif($_POST['childpagetype']=="external") {
00925                                         $extquery="SELECT MAX( page_modulecomponentid ) AS MAX FROM ".MYSQL_DATABASE_PREFIX."external";
00926                                         $extqueryresult = mysql_query($extquery);
00927                                         $extqueryrow = mysql_fetch_array($extqueryresult);
00928                                         $extpageid = $extqueryrow[0]+1;
00929                                         $query="INSERT INTO `".MYSQL_DATABASE_PREFIX."external` (`page_modulecomponentid`,`page_extlink`) " .
00930                                                         "VALUES('$extpageid','".escape($_POST['externallink'])."')";
00931                                         if(!($result = mysql_query($query))) {
00932                                                 displayerror("Unable to create an external link.");
00933                                                 return false;
00934                                         }
00935                                         
00936                                         if($_POST['linkselectex']=="New Tab") 
00937                                         {
00938                                                 $linkquery = "INSERT INTO `".MYSQL_DATABASE_PREFIX."pages` (`page_id` ,`page_name` ,`page_parentid` ,`page_title` ,`page_module` ,`page_modulecomponentid` , `page_template`, `page_menurank`,`page_openinnewtab`) " .
00939                                                         "VALUES ('$maxpageid', '".escape($_POST['childpagename'])."', '$pageId', '".escape(ucfirst(escape($_POST['childpagename'])))."', '".escape($_POST['childpagetype'])."', '$extpageid', '$page_template' ,'$maxpageid','1')";
00940                                                 
00941                                                 mysql_query($linkquery);
00942                                                 if (mysql_affected_rows() != 1)
00943                                                 {
00944                                                         displayerror( 'Unable to create a new page');
00945                                                         return false;
00946                                                 }
00947                                         }
00948                                         else {
00949                                                 
00950                                         $linkquery = "INSERT INTO `".MYSQL_DATABASE_PREFIX."pages` (`page_id` ,`page_name` ,`page_parentid` ,`page_title` ,`page_module` ,`page_modulecomponentid` , `page_template`, `page_menurank`,`page_openinnewtab`) " .
00951                                                 "VALUES ('$maxpageid', '".escape($_POST['childpagename'])."', '$pageId', '".escape(ucfirst(escape($_POST['childpagename'])))."', '".escape($_POST['childpagetype'])."', '$extpageid', '$page_template' ,'$maxpageid','0')";
00952                                         mysql_query($linkquery);
00953                                         if (mysql_affected_rows() != 1)
00954                                                 {
00955                                                 displayerror( 'Unable to create a new page');
00956                                                 return false;
00957                                                 }
00958                                         }
00959                                         displayinfo("External link has been created!");
00960                                 }
00961                                 else {
00962                                         $moduleType = escape($_POST['childpagetype']);
00963                                         global $sourceFolder;
00964                                         global $moduleFolder;
00965                                         require_once($sourceFolder."/".$moduleFolder."/".$moduleType.".lib.php");
00966                                         $page = new $moduleType();
00967                                         $newModuleComponentId=-1;
00968                                         $page->createModule($newModuleComponentId);
00969                                         if($newModuleComponentId==-1)
00970                                                 displayerror("Unable to create a new page of type $moduleType");
00971                                         else {
00972                                                 $createquery = "INSERT INTO `".MYSQL_DATABASE_PREFIX."pages` (`page_id` ,`page_name` ,`page_parentid` ,`page_title` ,`page_module` ,`page_modulecomponentid` , `page_template`, `page_menurank`) " .
00973                                                         "VALUES ('$maxpageid', '$childPageName', '$pageId', '$childPageTitle', '".escape($_POST['childpagetype'])."', '$newModuleComponentId', '$page_template', '$maxpageid')";
00974                                                 mysql_query($createquery);
00975                                                         if (mysql_affected_rows() != 1)
00976                                                                 displayerror( 'Unable to create a new page.');
00977                                         }
00978                                 }
00979                         }
00980                         else
00981                                 displayerror("One or more parameters not set.");
00982                 }
00983                 else if($_GET['subaction'] == 'editinheritedinfo') {
00984                         updatePageInheritedInfo($pageId, escape($_POST['txtInheritedInfo']));
00985                 }
00986         }
00987         if ($settingsForm = getSettingsForm($pageId, $userId))
00988                 return $settingsForm;
00989         else {
00990                 displayerror('Could not find page settings for the requested page.');
00991                 return '';
00992         }
00993 }
00994 
00995 
00996 
01007 function deletePage($pageId,$userId){
01008         $query="SELECT `page_id` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=$pageId AND `page_id`!=`page_parentid` ";
01009         $result=mysql_query($query);
01010         $deleteAll = true;
01011         while($temp=mysql_fetch_assoc($result))
01012         {
01013 
01014                 if(getPermissions($userId,$pageId,"settings"))
01015                         $deleteAll = deletePage($temp['page_id'],$userId);
01016                 else
01017                         $deleteAll = false;
01018         }
01019 
01020         if($deleteAll == true) {
01021                 $pageInfo = getPageInfo($pageId);
01022                 $moduleType = $pageInfo['page_module'];
01023                 $deleted = true;
01024                 if($moduleType!="menu" && $moduleType != "link") {
01025                         if($moduleType!="external") {
01026                                 global $sourceFolder;
01027                                 global $moduleFolder;
01028                                 require_once($sourceFolder."/".$moduleFolder."/".$moduleType.".lib.php");
01029                                 $page = new $moduleType();
01030                                 $deleted = $page->deleteModule($pageInfo['page_modulecomponentid']);
01031                                 if(!$deleted)
01032                                         displayerror("There was an error in deleting the page at module level.");
01033                         }
01034                         else {
01035                                 $query="DELETE FROM `".MYSQL_DATABASE_PREFIX."external` WHERE `page_modulecomponentid`=".$pageInfo['page_modulecomponentid'];
01036                                 mysql_query($query);
01037                                 if (mysql_affected_rows()>0) $deleted=true;
01038                                 else {
01039                                         $deleted=false;
01040                                         displayerror("There was an error in deleting the external link");
01041                                 }
01042 
01043                         }
01044                 }
01045                 //query to delete page row itself
01046                 if($deleted) {
01047                         $query="DELETE FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=$pageId";
01048                         mysql_query($query);
01049                         if (mysql_affected_rows()>0) return true;
01050                         else return false;
01051                 }
01052                 else return false;
01053         }
01054         else {
01055                 displayerror("You don't have permission to delete one or more of the children pages.");
01056                 return false;
01057         }
01058 
01059 
01060 
01061  }
01062 
01063 function generateDirectoryTree($userId, $module, $action, $pageId = 0) {
01064         global $sourceFolder;
01065         require_once("$sourceFolder/tree.lib.php");
01066         $dirTree = new DirectoryTree($pageId, $userId, $action, $module);
01067 
01068         return $dirTree;
01069 }
01070 
01071 
01072 
01073 function move_page($userId,$pageId, $parentId, $pagetitle,$pagename,$deleteoriginalentry) {
01080         //var_dump($str);
01081         $query = "SELECT `page_id` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid` = $parentId AND `page_name` = '$pagename'";
01082         $result = mysql_query($query);
01083         if(mysql_num_rows($result) > 0)
01084                 return "Error: There exists a page with the same name in the destination path.";
01085         $parentInfo = getPageInfo($parentId);
01086         if(!getPermissions($userId, $parentId, "settings"))
01087                 return "Error: You do not have permission to copy or move to the destination page.";
01088         if($parentInfo['page_module']=="link")
01089                 return "Error: Cannot move or copy a page to a page of the type link.";
01090         $str = array();
01091         parseUrlDereferenced($parentId,$str);
01092         $arrlen = count($str);
01093         for($i = 0; $i<count($str);$i++){
01094                 if($pageId==$str[$i])
01095                         return 'Error : You are trying to copy a parent to a child page. This will create a loop';
01096         }
01097         //if the deleteoriginal entry is set then the page is MOVED from the original location to the new location.
01098         if ($deleteoriginalentry == true) {
01099                 if ($pageId != 0) {
01100                         $query = "UPDATE `" . MYSQL_DATABASE_PREFIX . "pages` SET `page_parentid` = '" . $parentId . "' , `page_title` = '" . $pagetitle . "' , `page_name` = '" . $pagename . "' WHERE `page_id` =$pageId ;";
01101                         $result = mysql_query($query);
01102                                 if (mysql_affected_rows() != 1)
01103                                         return 'Unable to perform the required action';
01104                         global $urlRequestRoot;
01105                         header("location:".$urlRequestRoot.getPagePath($pageId)."+settings&displayinfo=".rawurlencode("The page has been successfully moved."));
01106                 } else
01107                         return 'Error : You do not have permission to move the root page.';
01108         }
01109 //if the deleteoriginal entry is not set then the page is COPIED from the original location to the new location.
01110         else {
01111                 $recursive= false;
01112                 if(isset($_POST['recursivelycopypage'])) $recursive = true;
01113                 if(copyPage($userId,$pageId,$parentId,$pagetitle,$pagename,$recursive))
01114                         displayinfo("Page copied successfully!");
01115         }
01116 }
01117 
01118 function copyPage($userId,$pageId,$parentId, $pagetitle,$pagename,$recursive) {
01119         if(!getPermissions($userId, $parentId, "settings"))
01120                 return false;
01121         $parentInfo = getPageInfo($parentId);
01122         $parentmoduleType =$parentInfo['page_module'];
01123         if($parentmoduleType=="link")
01124                 return false;
01125         $pageInfo = getPageInfo($pageId);
01126         $moduleType =$pageInfo['page_module'];
01127         if($moduleType=="link")
01128                 return false;
01129         $newmodulecomponentid = 0;
01130         if($moduleType!="menu" && $moduleType!="external") {
01131                 global $sourceFolder;
01132                 global $moduleFolder;
01133                 require_once($sourceFolder."/".$moduleFolder."/".$moduleType.".lib.php");
01134                 $page = new $moduleType();
01135                 $newmodulecomponentid=$page->copyModule($pageInfo['page_modulecomponentid']);
01136                 if($newmodulecomponentid===false) {
01137                         displayerror("Unable to copy the page ".$pageId);
01138                         return false;
01139                 }
01140         }
01141         if($moduleType=="external"){
01142                 $extquery="SELECT MAX( page_modulecomponentid ) AS MAX FROM ".MYSQL_DATABASE_PREFIX."external";
01143                 $extqueryresult = mysql_query($extquery);
01144                 $extqueryrow = mysql_fetch_array($extqueryresult);
01145                 $extpageid = $extqueryrow[0]+1;
01146                 $linkquery="SELECT page_extlink FROM ".MYSQL_DATABASE_PREFIX."external WHERE page_modulecomponentid=".$pageInfo['page_modulecomponentid'];
01147                 $linkqueryresult = mysql_query($linkquery);
01148                 $linkqueryrow = mysql_fetch_array($linkqueryresult);
01149                 $link = $linkqueryrow[0];
01150 
01151                 $query="INSERT INTO `".MYSQL_DATABASE_PREFIX."external` (`page_modulecomponentid`,`page_extlink`) " .
01152                                 "VALUES('$extpageid','$link')";
01153                 if(!($result = mysql_query($query))) {
01154                         displayerror("Unable to copy the page.");
01155                         return false;
01156                 }
01157         }
01158 
01159         $maxquery="SELECT MAX( page_id ) AS MAX FROM ".MYSQL_DATABASE_PREFIX."pages";
01160         $maxqueryresult = mysql_query($maxquery);
01161         $maxqueryrow = mysql_fetch_array($maxqueryresult);
01162         $maxpageid = $maxqueryrow[0]+1;
01163 
01164         $query = "INSERT INTO `".MYSQL_DATABASE_PREFIX."pages` (`page_id`,`page_name`,`page_title`,`page_parentid`,`page_module`,`page_modulecomponentid`,`page_displayinmenu`, `page_displaymenu`, `page_displaysiblingmenu`,`page_menurank`) " .
01165                         "VALUES('$maxpageid','$pagename','$pagetitle','$parentId','{$pageInfo['page_module']}','$newmodulecomponentid','{$pageInfo['page_displayinmenu']}','{$pageInfo['page_displaymenu']}','{$pageInfo['page_displaysiblingmenu']}','$maxpageid')";
01166         if(!($result = mysql_query($query))) {
01167                 displayerror("Unable to copy the page.");
01168                 return false;
01169         }
01170         if($recursive) {
01171                 $childrenquery="SELECT `page_id`,`page_name`,`page_title` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_parentid`=$pageId ";
01172                 $childrenresult=mysql_query($childrenquery);
01173                 while($temp=mysql_fetch_assoc($childrenresult))
01174                 {
01175                         copyPage($userId,$temp['page_id'],$maxpageid, $temp['page_title'],$temp['page_name'],$recursive);
01176                 }
01177         }
01178         return true;
01179 }
01180 
01181 function updatePageInheritedInfo($pageId, $inheritedInfo) {
01182         $prevInheritedInfo = '';
01183         $inheritedPageId = getPageInheritedInfo($pageId, $prevInheritedInfo);
01184 
01185         if($inheritedPageId == $pageId) {
01186                 if($inheritedInfo == '') {
01187                         $deleteQuery = 'DELETE FROM `' . MYSQL_DATABASE_PREFIX . 'inheritedinfo` WHERE `page_inheritedinfoid` = (SELECT `page_inheritedinfoid` FROM `' . MYSQL_DATABASE_PREFIX . 'pages` WHERE `page_id` = ' . $pageId . ')';
01188                         mysql_query($deleteQuery);
01189                         $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_inheritedinfoid` = -1 WHERE `page_id` = ' . $pageId;
01190                         if(!mysql_query($updateQuery))
01191                                 displayerror('Could not remove the current page\'s inherited information. Database error.');
01192                 }
01193                 else {
01194                         $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'inheritedinfo` SET `page_inheritedinfocontent` = \'' . $inheritedInfo . '\' WHERE `page_inheritedinfoid` = (SELECT `page_inheritedinfoid` FROM `' . MYSQL_DATABASE_PREFIX . 'pages` WHERE `page_id` = ' . $pageId . ')';
01195                         if(!mysql_query($updateQuery))
01196                                 displayerror('Could not update the current page\'s inherited information. Database error.');
01197                 }
01198         }
01199         else if($inheritedInfo != '' && $inheritedInfo != $prevInheritedInfo) {
01201                 $newIdQuery = 'SELECT MAX(`page_inheritedinfoid`) FROM `' . MYSQL_DATABASE_PREFIX . 'inheritedinfo`';
01202                 $newIdResult = mysql_query($newIdQuery);
01203                 $newIdRow = mysql_fetch_row($newIdResult);
01204                 $newId = 1;
01205                 if(!is_null($newIdRow[0]))
01206                         $newId = $newIdRow[0] + 1;
01207 
01208                 $insertQuery = 'INSERT INTO `' . MYSQL_DATABASE_PREFIX . 'inheritedinfo`(`page_inheritedinfoid`, `page_inheritedinfocontent`) VALUES (' . $newId . ', \'' . $inheritedInfo . '\')';
01209                 if(!mysql_query($insertQuery))
01210                         displayerror('Could not add inherited information to the current page. Database error.');
01211                 $updateQuery = 'UPDATE `' . MYSQL_DATABASE_PREFIX . 'pages` SET `page_inheritedinfoid` = ' . $newId . ' WHERE `page_id` = ' . $pageId;
01212                 if(!mysql_query($updateQuery))
01213                         displayerror('Could not add inherited information to the current page. Database error.');
01214         }
01215 }
01216 
01217 function getPageInheritedInfo($pageId, &$inheritedInfoBuf) {
01218         if($pageId < 0) return $pageId;
01219 
01220         $curPageId = $pageId;
01221         $inheritedInfoBuf = '';
01222 
01223         do {
01224                 $inheritedInfoIdQuery = 'SELECT `page_inheritedinfoid`, `page_parentid` FROM `' . MYSQL_DATABASE_PREFIX . 'pages` WHERE `page_id` = ' . $curPageId;
01225                 $inheritedInfoIdResult = mysql_query($inheritedInfoIdQuery);
01226                 if(!$inheritedInfoIdResult) echo mysql_error() . '<br />' . $inheritedInfoIdQuery . '<br />';
01227                 $inheritedInfoIdRow = mysql_fetch_row($inheritedInfoIdResult);
01228                 if(!is_null($inheritedInfoIdRow[0]) && $inheritedInfoIdRow[0] >= 0) {
01229                         $inheritedInfoQuery = 'SELECT `page_inheritedinfocontent` FROM `' . MYSQL_DATABASE_PREFIX . 'inheritedinfo` WHERE `page_inheritedinfoid` = ' . $inheritedInfoIdRow[0];
01230                         $inheritedInfoResult = mysql_query($inheritedInfoQuery);
01231                         $inheritedInfoBuf = mysql_fetch_row($inheritedInfoResult);
01232                         $inheritedInfoBuf = $inheritedInfoBuf[0];
01233                         return $curPageId;
01234                 }
01235                 if($curPageId == 0) $curPageId = -1;
01236                 else $curPageId = $inheritedInfoIdRow[1];
01237         } while($curPageId >= 0);
01238 
01239         return -1;
01240 }
01241 

Generated on Sun Jan 2 2011 04:55:32 for Pragyan CMS by  doxygen 1.7.1