示例#1
0
 protected static function updateChildUrls($sitemap)
 {
     $child = Sitemap_Sample::selectChild($sitemap['id']);
     foreach ($child as $row) {
         self::restoreOne($row['id'], $sitemap);
         Sitemap_History::add($row['id'], $row['name']);
     }
 }
示例#2
0
文件: move.php 项目: gudwin/extasy
 public function move($id, $to)
 {
     try {
         $aDocument = Sitemap_Sample::get($id);
         if (empty($aDocument['document_name'])) {
             throw new Exception('Requested id isn`t document');
         }
         Sitemap::updatePage($aDocument['document_name'], $aDocument['document_id'], $aDocument['name'], $aDocument['url_key'], $to);
         Sitemap::updateParentCount($aDocument['parent']);
         Sitemap::updateParentCount($to);
         // Если у переносимого документа есть дочерние элементы
         $child = Sitemap_Sample::selectChild($aDocument['id']);
         if (!empty($child)) {
             foreach ($child as $row) {
                 Sitemap_RestoreUrl::restoreOne($row['id'], $aDocument);
             }
         }
         $this->addAlert('Документ перемещен');
     } catch (Exception $e) {
         $this->addError('Ошибка при перемещении документа');
     }
     $this->jumpBack();
 }
示例#3
0
文件: manager.php 项目: gudwin/extasy
 /**
  *   Сортирует документы дочерние к $nParentId в указанном порядке
  * @return
  */
 public static function order($parentId)
 {
     // Защищаем данные
     $parentId = intval($parentId);
     // Рутовый раздел автоматической сортировке пока что не поддается
     if (empty($parentId)) {
         return;
     }
     $page = SiteMap_Sample::getRowFromBD($parentId);
     // Получаем дочерние объекты
     $children = Sitemap_Sample::selectChild($page['id']);
     // В зависимости от сортировки делаем так
     usort($children, create_function('$a,$b', 'return ($a["order"] > $b["order"]);'));
     // Записываем результат
     self::storeOrderResult($page['id'], $children);
     return;
 }
示例#4
0
 protected function returnByLevel($parentId, $level)
 {
     if ($level <= 0) {
         return array();
     }
     $result = array();
     $childList = Sitemap_Sample::selectChild($parentId);
     foreach ($childList as $row) {
         $result[] = $row['full_url'];
         if (!empty($row['count'])) {
             $result = array_merge($result, $this->returnByLevel($row['id'], $level - 1));
         }
     }
     return $result;
 }
示例#5
0
文件: model.php 项目: gudwin/extasy
 /**
  * (non-PHPdoc)
  * @see parent::delete()
  */
 public function delete()
 {
     // store current id
     $id = $this->getId();
     if ($this->withSitemap) {
         try {
             $this->needSitemapData();
             // Вызываем удаление
             $aChild = Sitemap_Sample::selectChild($this->sitemapInfo['id']);
             foreach ($aChild as $row) {
                 Sitemap::remove($row['id']);
             }
         } catch (SiteMapException $e) {
         }
     }
     $result = parent::delete();
     if ($this->withSitemap) {
         try {
             Sitemap::remove($this->sitemapInfo['id']);
         } catch (SitemapException $e) {
         }
     }
     // Удаляем данные
     return $result;
 }
示例#6
0
 /**
  * Выводит селект для выбора предка
  */
 protected static function outputChangeParentFormFields()
 {
     // Формируем список урлов
     $aSitemapUrl = array(array('id' => '-2', 'name' => 'Никуда не переносить'));
     // Добавляем parent, предка текущего элемента (если он есть)
     if (!empty(self::$sitemap['parent'])) {
         $aParent = Sitemap_Sample::get(self::$sitemap['parent']);
         $aSitemapUrl[] = array('id' => $aParent['parent'], 'name' => '<< Перенести на уровень выше');
     }
     // Переносим в дочерние элементы к соседям данного скрипта
     $aSibling = Sitemap_Sample::selectChild(self::$sitemap['parent']);
     if (!empty($aSibling)) {
         $aSitemapUrl[] = array('id' => -1, 'name' => 'Перенести на в дочерние страницы к соседям');
         foreach ($aSibling as $row) {
             $aSitemapUrl[] = array('id' => $row['id'], 'name' => ' >> ' . $row['name']);
         }
     }
     //
     $design = CMSDesign::getInstance();
     $control = new CSelect();
     $control->name = 'sitemap_move_id';
     $control->style = 'width:99%';
     $control->size = '10';
     $control->current = -2;
     $control->values = $aSitemapUrl;
     $design->row2cell('Перенести скрипт', $control->generate());
 }