Ejemplo n.º 1
0
     $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();
Ejemplo n.º 2
0
<?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;
 }