Внутреннее устройство ffcms

 

Сейчас начальный этап формирования CMS, но общий принцип следующий: создать XML документ и отдать на обработку XSLT процессору. Тоесть имея различные типа данных, например post - стаья, menu - список постов, другие ссылки, user - информация о пользователе, history - история sql запросов, tag - облако ключевыех слов и т.д. мы формируем XML документ вида

<doc> <menu> <rows> ... </rows> </menu> <post> ... </post> <tag> ... </tag> <...> ... <...> </doc>

затем отдавая его XSLT процессору мы можем получить любой HTML документ на выходе. Тоесть для генерации нужного контент необходимо иметь

  1. источники данных - таблицы
  2. объекты генерирующие куски XML документов
  3. сборщик конечного XML документа и XSLT процессор

затем для возможно добавление системы кеширования контента, но это позже Сейчас система имеет 4 стабильных модуля:

  1. ffcgi - единый модуль, имеет функции фильтрацию CGI запросов, закачки файлов, проверки переменных, систему обработчиков, централизует  CGI запросы
  2. user - модуль отвечающий за авторизацию, данные хранит в 3 таблицах users,groups,sessoin. пока просто являет заглушкой, далее может контролировать другие модули
  3. base - единый модуль, отвечающий за подключение к базе, предоставляет функцию для генерации кусков XML документа, отвечает за подключение
  4. xslt_proc - XSLT процессор, содержит функци преобразования XML документов, работает как с файлами так и с текстовыми массивами

Сейчас необходимо нарабатывать модули вставки в таблицы, например необходимо механизм закачки файлов на сервер, генератор облака тегов и тд. Что бы не было разногласий с закачкой, я предлогаю сделать много способов закачки, потому что все они нужны. Например, часто бывает необходимо просто добавить маленькую фотку, без всяких ссылок, возможно даже без изменения размера и генерации превьющки. Но так же необходимо, чтобы например Катя могла выложить оригинал работы в Gimp, при том он должен иметь превьющку и оригинал, ведь ей за это платят. Мы можем просто сделать форму на табах, как главная на эксмаше. Для этого в базе есть таблица: files она имеет поля FILENAME и WWWNAME и некоторые другие, я предпологаю что имея данных в этой таблице мы сможем полностью контролировать закачанные файлы, например если при закачке файла выбран простой вариант то имя файла, например, картинки находится в поле WWWNAME, тогда программа просто даёт ссылку на него или вставляет как картинку, если имеется оригинал в  FILENAME и превьюшка в WWWNAME то CMS генерирует картинку ссылку на файл оригинал.  После картинок модуль можно расширить работой с архивами и др.

Я не делаю пока централизованного места настройки, так как пока не совсем ясно как сделать лучше, возможно нам придётся сделать много блогововую CMS, тоесть например у нас 1 общая страница, но в зависимости от автора разная компоновка и оформление и тд. По этому пока из конфига беру только данные для подключения.

Для доработки модуля уплоада необходима функция генерации превьщки вида: def image_resize(fullname,x,y,save_dir): тут возможны параметры по умолчанию например x=100,y=100,save_dir="/images/" функция может возвращать не 1 значение, а не сколько, например return filename,path,sizeX,sizeY,размер_картинки_в_кб единственное что она должна сделать, это

  1. преобразовать картинку
  2. вернуть имя позволяющее работать с этой картинкой
  3. чтобы в других кусках кода не заниматься обработкой имени разделить его на имя файла/путь к файлу
  4. если не получилось вернуть None

Linux games

похожие страницы

  1. Восстановление удалённого из CVS файла
  2. Пример использования mod_rewrite
  3. Исправление битых ссылок с помощью mod_rewrite
  4. Пример использование apache2 mod_rewrite в Ubuntu
  5. Wi-Fi-роутер TP-Link TL-MR3020