예제 #1
0
파일: cms.php 프로젝트: gudwin/extasy
    /**
     * Возвращает список путей, куда может быть перемещен данный документ
     */
    public static function whereToMove($documentName)
    {
        $validator = new \Extasy\Validators\ModelConfigValidator($documentName, array('sitemap', RegisteredDocument::ParentsConfigName));
        $result = array();
        if ($validator->isValid()) {
            $documents = $validator->getData();
            if (!empty($documents)) {
                foreach ($documents as $key => $row) {
                    $documents[$key] = sprintf('"%s"', \Faid\DB::escape($row));
                }
            } else {
                $documents = array(-1);
            }
            $scripts = self::selectDocumentScriptParents($documentName);
            if (!empty($scripts)) {
                foreach ($scripts as $key => $row) {
                    $scripts[$key] = sprintf('"%s"', \Faid\DB::escape($row['script']));
                }
            } else {
                $scripts = array(-1);
            }
            $sql = <<<SQL
\tSELECT * FROM `%s` WHERE `script` IN (%s) or `document_name` IN (%s) ORDER by `name` ASC;
SQL;
            $sql = sprintf($sql, SITEMAP_TABLE, implode(',', $scripts), implode(',', $documents));
            $result = DB::query($sql);
        }
        $documents = self::getRootDocuments();
        foreach ($documents as $row) {
            if ($row['name'] == $documentName) {
                array_unshift($result, array('id' => 0, 'name' => 'Корень сайта', 'script' => 'root', 'full_url' => ''));
            }
        }
        return $result;
    }
예제 #2
0
파일: data-list.php 프로젝트: gudwin/extasy
 protected function isCanHaveChildren()
 {
     $aInfo = Sitemap_Sample::get($this->nParent);
     // Если это скрипт, то получаем дочерние документы
     if (!empty($aInfo['script'])) {
         $aChild = Sitemap_Sample::selectScriptChild($aInfo['script']);
         return !empty($aChild);
     } else {
         // Иначе, это документ. Получаем его дочерние элементы
         $validator = new \Extasy\Validators\ModelConfigValidator($aInfo['document_name'], array('sitemap', RegisteredDocument::ChildrenConfigName));
         return $validator->isValid();
     }
 }