Dimush
Guest
Движок сайта без базы данных.
Хочу сделать движок сайта работающего без базы данных. Структура страниц следующая.
Есть возможность создавать неограниченное количество разделов. Разделы сами по себе одноуровневые(т.е. внутри раздела других быть не может) и существует 5-ть типов разделов:
1. Индексная страница – весь раздел состоит из одной странички
2. Индексная страница + вложенные страницы – аналогично первому, + раздел содержит вложенные странички, т.е. на странице индексной странице раздела помимо текста, будут располагаться ссылки на странички.
3. Индексная страница + вложенные страницы с описанием – аналогичен разделу №2 с той разницей, что позволяет добавлять описание для каждой ссылки на вложенную страницу раздела.
4. Индексная страница + вложенные страницы с описанием и изображением – аналогичен разделу №3, с той разницей, что помимо описания для каждой ссылке на вложенную страницу раздела есть возможность добавить графическое изображение.
5. Модуль – в данном случае будет подключаться модуль, например гостевая книга.
Так же нужно организовать хранение мета-информации и индексов для реализации поиска по сайту.
Собственно говоря нужно как-нибудь организовать реализацию всего выше описанного с помощью текстовых файлов.
Как посоветуете сделать?
-~{}~ 12.12.04 19:34:
Есть такая идея:
Информация о типе раздела храниться в файле ./structure/types.inf
ид раздела^!^имя ссылки^!^заголовок страницы^!^тип раздела^!^
Текстовое содержание страниц храниться в ./structure/pages/id.html
хтмл содержание страницы
Для обратной связи страниц с разделами + наименование ./strucrure/conected/№.cnd
здесь связываются страницы с разделами
Индексы страниц хранятся аналогично файлам ./structure/page_inx/id.html
индексы
Мета-описание страниц хранится ./structure/meta_inf/id.html
метаописание
Страница вложенная в раздел ./structure/ид_раздела.inc
так для раздела первого типа, она будет пустой:
для раздела второго типа она будет содержать ссылки на страницы данного раздела
ид_страницы_в_которой_храниться_html_содержание страницы принадлежащей разделу \n
для раздела третьего типа она будет следующего вида:
ид_страницы_в_которой_храниться_html_содержание страницы принадлежащей разделу^!^ид_страницы в которой храниться описание \n
для раздела четвертого типа:
ид_страницы_в_которой_храниться_html_содержание страницы принадлежащей разделу ^!^ид_страницы в которой храниться описание^!^наименование изображения\n
для раздела пятого типа
ид_модуля^!^наименование модуля
Т.е. весь текст не зависимо от того, страница это или просто описание ссылки храниться в /pages
Информация для «связи» страница-раздел, а так же наименования страниц хранятся в ./strucrure/conected/№.cnd
В каждом файле хранится по 10-ть записей для страниц, так для описания страниц с идентификаторами от 1 до 10 информация храниться в файле 1.cnd, от 11 до 20 в 2.cnd
Методика работы с cnd файлами.
Берем ид_страницы = 15, делим на 10 округляем до целых в большую строну = 2 – номер cnd файла в котором хранится ид_раздела которому принадлежит файл, и наименование страницы. Далее открываем полученный файл и напрямую обращаемся к заданной строке массива.
Хочу сделать движок сайта работающего без базы данных. Структура страниц следующая.
Есть возможность создавать неограниченное количество разделов. Разделы сами по себе одноуровневые(т.е. внутри раздела других быть не может) и существует 5-ть типов разделов:
1. Индексная страница – весь раздел состоит из одной странички
2. Индексная страница + вложенные страницы – аналогично первому, + раздел содержит вложенные странички, т.е. на странице индексной странице раздела помимо текста, будут располагаться ссылки на странички.
3. Индексная страница + вложенные страницы с описанием – аналогичен разделу №2 с той разницей, что позволяет добавлять описание для каждой ссылки на вложенную страницу раздела.
4. Индексная страница + вложенные страницы с описанием и изображением – аналогичен разделу №3, с той разницей, что помимо описания для каждой ссылке на вложенную страницу раздела есть возможность добавить графическое изображение.
5. Модуль – в данном случае будет подключаться модуль, например гостевая книга.
Так же нужно организовать хранение мета-информации и индексов для реализации поиска по сайту.
Собственно говоря нужно как-нибудь организовать реализацию всего выше описанного с помощью текстовых файлов.
Как посоветуете сделать?
-~{}~ 12.12.04 19:34:
Есть такая идея:
Информация о типе раздела храниться в файле ./structure/types.inf
ид раздела^!^имя ссылки^!^заголовок страницы^!^тип раздела^!^
Текстовое содержание страниц храниться в ./structure/pages/id.html
хтмл содержание страницы
Для обратной связи страниц с разделами + наименование ./strucrure/conected/№.cnd
здесь связываются страницы с разделами
Индексы страниц хранятся аналогично файлам ./structure/page_inx/id.html
индексы
Мета-описание страниц хранится ./structure/meta_inf/id.html
метаописание
Страница вложенная в раздел ./structure/ид_раздела.inc
так для раздела первого типа, она будет пустой:
для раздела второго типа она будет содержать ссылки на страницы данного раздела
ид_страницы_в_которой_храниться_html_содержание страницы принадлежащей разделу \n
для раздела третьего типа она будет следующего вида:
ид_страницы_в_которой_храниться_html_содержание страницы принадлежащей разделу^!^ид_страницы в которой храниться описание \n
для раздела четвертого типа:
ид_страницы_в_которой_храниться_html_содержание страницы принадлежащей разделу ^!^ид_страницы в которой храниться описание^!^наименование изображения\n
для раздела пятого типа
ид_модуля^!^наименование модуля
Т.е. весь текст не зависимо от того, страница это или просто описание ссылки храниться в /pages
Информация для «связи» страница-раздел, а так же наименования страниц хранятся в ./strucrure/conected/№.cnd
В каждом файле хранится по 10-ть записей для страниц, так для описания страниц с идентификаторами от 1 до 10 информация храниться в файле 1.cnd, от 11 до 20 в 2.cnd
PHP:
1.cnd--------------------
1^!^1^!^name //где первое значение до разделителя, идентификатор страницы, второе значение
2^!^1^!^name //после разделителя идентификатор раздела которому принадлежит страница
3^!^2^!^name
4^!^1^!^name
#^!^#^!^# //если страница не существует, то она заменяется #-ом
#^!^#^!^# //это необходимо для ускорения доступа к информации, т.к. в этом случае мы просто
#^!^#^!^# //воспользуемся функцией file, и безо всяких сверок обратимся к file[$i]
8^!^4^!^name
9^!^4^!^name
10^!^2^!^name
---------------------------
Берем ид_страницы = 15, делим на 10 округляем до целых в большую строну = 2 – номер cnd файла в котором хранится ид_раздела которому принадлежит файл, и наименование страницы. Далее открываем полученный файл и напрямую обращаемся к заданной строке массива.