pages db

Основная таблица cтраниц сайта и для каждого сайта она имеет свое название по идентификатору сайта, например pages_1 (1 - идентификатор сайта).

В таблицу входят следующие поля (красным цветом выделены обязательные):

page_id - идентификатор страницы

parent_id - идентификатор родительской страницы по отношению к page_id т.е. page_id  является "сыном" по отношению к "отцу" parent_id

parents_id - идентификаторы родительских страниц (через запятую)

nesting - уроверь вложенности (иными словами глубина страницы)

name - имя страницы(имя должно быть указано обязательно, иначе страница не создается)

access - права доступа к текущей странице или разделу, распространяется и на дочерние страницы, подстраницы и т.д.

access_inherited -  права доступа к текущей странице или разделу, с учетом наследуемости от родительских разделов.

Прежде чем описать права, нужно сказать о ролях и их возможностях:

Посетитель - любой зашедший на страницу, обычно может читать страницу, оставлять сообщения и принимать участие в голосованиях..

Зарегистрированный пользователь - пользователь прошедший регистрацию на сайте и по-умолчанию и может читать страницу, оставлять и редактировать собственные сообщения, принимать участие в голосованиях и редактировать свои голоса в голосованиях.

Модератор - зарегистрированный пользователь имеющий повышенные привилегии и может читать страницу, редактировать и удалять сообщения посетителей и зарегистрированных пользователей, создавать собственные подстраницы любой вложенности, редактировать и удалять их при желании.

Теперь о доступе:

0. Публичный - свой полный доступ имеют все.

1. Зарегистрированный - посетители видят ссылку на страницу и могут только читать страницу. Зарегистрированные пользователи и модераторы имеют свой полный доступ.

2. Модераторы - посетители и зарегистрированные пользователи видят ссылку на страницу и могут только читать страницу, но не имеют других прав. Модераторы имеют свой полный доступ.

3. Зарегистрированный [Приватный] - посетители не видят ссылку на страницу но, могут только читать страницу если знают к ней URL. Зарегистрированные пользователи и модераторы имеют свой полный доступ.

4. Зарегистрированный [Спрятанный] - посетители не видят ссылку на страницу и не могут читать данную страницу. Зарегистрированные пользователи и модераторы имеют свой полный доступ.

5. Модераторы [Приватный] - посетители и зарегистрированные пользователи не видят ссылку на страницу но, могут только читать страницу если знают к ней URL. Модераторы имеют свой полный доступ.

6. Модераторы [Спрятанный] - никто не видит и не может читать данную страницу. Модераторы имеют свой полный доступ.

7. Спрятанный - никто не видит ссылку на данную страницу, но любой может зайти на данную страницу и она может быть проиндексирована.

7. Спрятанный [Заголовок 404] - тоже самое что и Спрятанный, но не может быть проиндексирована.

9. Нет доступа - доступ на любые действия запрещен всем. Аналог - страница в "мусорной корзине".

position - позиция страницы среди своих сестринских страниц, т.е. позиция среди страниц имеющих одинаковую родительскую страницы.

time_created - дата создания страницы (в базе данные хранятся в формате UNIX timestamp) (при добавлении через класс pages данные должны быть в формате d.m.Y H:i:s)

time_modified - дата изменения данных в страницы

title - метатег заголовка страницы

template - шаблон страницы (необязателен для внутренних страниц раздела, т.к. может наследоваться у родительских)

template_kids - шаблон дочерних страниц (задается в параметрах раздела, для своих дочерних страниц)

article - содержание страницы (может содержать pagebreak, который разделяет страницу на анонс и текст страницы, а так же возможные другие участки текста)

img - изображение (обычно анонса, но может и служить для других целей)

url - адрес страницы без окончания (расширения страницы)*

url_type - тип страницы.

0 - Обычный - к странице можно обратиться только по url с окончанием .html и учитываю родительские url как директории.
Примеры:
/page.html - в поле url указано page
/parent/child.html - в поле url указано child, но у страницы есть родительская страница у которой в поле url указано parent
/grandfather/parent/child.html - в поле url указано child, но у страницы есть родительская страница у которой в поле url указано parent, а у родительской страницы есть своя родительская страница у которой в поле url указано grandfather

1 - Разрешать метки - это url_type = 0 но с возможностью дописывать GET-данные или что угодно после знака точка.
Примеры:
/page.html?name=Shekspir&....
/page.12345words

2 - Уникальный - к странице можно обратиться только по url и никак иначе.
Примеры:
/unique - в поле url указано /unique
/unique/ - в поле url указано  /unique/
/unique/page.xml - в поле url указано  /unique/page.xml

3 - Прямая ссылка, это ссылка на какую-то страницу, на другой сайт или даже javascript-код.
Примеры:
/other-page.html
http://yandex.ru/
#" onclick="alert(12345); return false;

notice - заметка к странице (какая-то текстовая информаци о странице для себя или др. модераторов)

blog - пометка о том, что данная страница относится к блогу

tags - тэги относящиеся к странице

comment_id - идентификатор последнего комментария размещенного на странице

comment_time - дата времени размещения последнего комментария на странице

comments - количество комментариев размещеных на данной странице

Внимание: при работе с страницами при помощи библиотеки /inner/libraries/pages.php ни одно из полей не является обязательным, т.к. в случае отсутствия значения оно создается автоматически.

Заметка

Если вы решили написать скрипт, который изменяет родительсткую директории, а следовательно и урл, то советую это делать так:

$r['parent_id'] = 123;// ИД новой родительской директории

// для изменения урл мы должны определить имя директории (то что после последнего / слэша )
$dir = array_reverse(explode('/',$r['url']));
$r['url'] = $dir['0'];// директория найдена
$r['url'] = $GLOBALS['pages']-> url_uniq($r);// cоздаю уникальный урл

if(!$GLOBALS['pages']-> update($r)){// обновляю данные
        echo 'error UPDATE'; exit;
}


14.03.2009 17:52