$data['pageSubpageTemplates'] = ''; } $error = false; // Move page? if (isset($_POST['move']) && $_POST['move'] == '1') { $Pages->find_site_path(); $new_path = $data['pagePath']; list($move_result, $move_message) = $Page->move_file($new_path); if (!$move_result) { $Alert->set('error', PerchLang::get($move_message)); $error = true; } } if (!$error) { if (PERCH_RUNWAY) { $PageTemplate = $PageTemplates->find($data['templateID']); if ($PageTemplate) { $data['pageTemplate'] = $PageTemplate->templatePath(); } else { $data['pageTemplate'] = ''; } } $Page->update($data); if (isset($_POST['pageParentID'])) { $parentID = (int) $_POST['pageParentID']; if ($parentID != $Page->pageParentID()) { $Page->update_tree_position($parentID, false, $cascade = true); } } // update regions on this page $Regions = new PerchContent_Regions();
<?php $Templates = new PerchContent_PageTemplates(); $Pages = new PerchContent_Pages(); $Form = new PerchForm('edit'); $message = false; // Check permissions if (!$CurrentUser->has_priv('content.templates.delete')) { PerchUtil::redirect(PERCH_LOGINPATH . '/core/apps/content/pages/templates/'); } if (isset($_GET['id']) && is_numeric($_GET['id'])) { $templateID = (int) $_GET['id']; $Template = $Templates->find($templateID); } else { PerchUtil::redirect(PERCH_LOGINPATH . '/core/apps/content/page/templates/'); } $Form = new PerchForm('rm'); if ($Form->posted() && $Form->validate()) { $Template->delete(); PerchUtil::redirect(PERCH_LOGINPATH . '/core/apps/content/page/templates/'); } $details = $Template->to_array();
/** * Create a new page, either from an existing page, or just as a nav link * * @param string $data * @return void * @author Drew McLellan */ public function create_without_file($data) { $create_folder = false; if (isset($data['create_folder'])) { $create_folder = $data['create_folder']; unset($data['create_folder']); } $link_only = false; // is this a URL or just local file? if (isset($data['file_name'])) { $url = parse_url($data['file_name']); if ($url && is_array($url) && isset($url['scheme']) && $url['scheme'] != '') { $link_only = true; $url = $data['file_name']; unset($data['file_name']); } } // Find the parent page $ParentPage = $this->find($data['pageParentID']); if ($link_only) { $data['pagePath'] = $url; $data['pageNavOnly'] = '1'; // Insert into the DB $Page = $this->create($data); // Set its position in the tree if (is_object($Page)) { if (is_object($ParentPage)) { $Page->update_tree_position($ParentPage->id()); } return $Page; } } else { // use the file name given (if stated) or create from the title. Sans extension. if (isset($data['file_name'])) { $file_name = $data['file_name']; unset($data['file_name']); } else { $file_name = PerchUtil::urlify($data['pageTitle']); } $this->find_site_path(); // Find the parent page $ParentPage = $this->find($data['pageParentID']); if (is_object($ParentPage)) { if (PERCH_RUNWAY) { $pageSection = $ParentPage->pageSortPath(); } else { if ($ParentPage->pageSubpagePath()) { $pageSection = $ParentPage->pageSubpagePath(); } else { $pageSection = PerchUtil::strip_file_name($ParentPage->pagePath()); } } // Copy subpage info $data['pageSubpageRoles'] = $ParentPage->pageSubpageRoles(); $data['pageSubpageTemplates'] = $ParentPage->pageSubpageTemplates(); $parentPageID = $ParentPage->id(); $data['pageDepth'] = $ParentPage->pageDepth() + 1; } else { $pageSection = '/'; $parentPageID = 0; $data['pageParentID'] = '0'; $data['pageDepth'] = '1'; } if (!isset($data['templateID']) || $data['templateID'] == '') { $data['templateID'] = 0; } $dir = PERCH_SITEPATH . str_replace('/', DIRECTORY_SEPARATOR, $pageSection); // Get the new file path $new_url = $pageSection . '/' . str_replace($dir, '', $file_name); $r = str_replace(DIRECTORY_SEPARATOR, '/', $new_url); while (strpos($r, '//') !== false) { $r = str_replace('//', '/', $r); } $data['pagePath'] = $r; // Insert into the DB $Page = $this->create($data); // Set its position in the tree if (is_object($Page)) { $Page->update_tree_position($parentPageID); if (PERCH_RUNWAY) { // Grab the template this page uses $Templates = new PerchContent_PageTemplates(); $Template = $Templates->find($Page->templateID()); if (is_object($Template)) { // Add to nav groups if ($Template->templateNavGroups() != '') { $Page->update_navgroups(explode(',', $Template->templateNavGroups())); } // Copy page options? if ($Template->optionsPageID() != '0') { $CopyPage = $this->find($Template->optionsPageID()); if (is_object($CopyPage)) { $sql = 'INSERT INTO ' . PERCH_DB_PREFIX . 'content_regions ( pageID, regionKey, regionPage, regionHTML, regionNew, regionOrder, regionTemplate, regionMultiple, regionOptions, regionSearchable, regionEditRoles ) SELECT ' . $this->db->pdb($Page->id()) . ' AS pageID, regionKey, ' . $this->db->pdb($r) . ' AS regionPage, "<!-- Undefined content -->" AS regionHTML, regionNew, regionOrder, regionTemplate, regionMultiple, regionOptions, regionSearchable, regionEditRoles FROM ' . PERCH_DB_PREFIX . 'content_regions WHERE regionPage!=' . $this->db->pdb('*') . ' AND pageID=' . $this->db->pdb((int) $CopyPage->id()); $this->db->execute($sql); } } } } return $Page; } } return false; }