Наши скрипты > Sanitarium WebLoG
SANITARIUM 2 ToDo List
Green Kakadu:
--- Цитировать ---ListZone.Ru:
О комментариях. По-моему было бы удобнее, если вместе с уведомлением на email о новых комментариях, в тексте письма будут прямые ссылки на удаление или добавление данного комментария.
--- Конец цитаты ---
ок. комментарии песня отдельная я, если честно, ими еще не занимался, так что все предложения принимаю на заметку. Вообще, это вещь спорная: с одной, обратная связь с посетителями и иногда комментарии читать интереснее статьи, с другой, часто они без модерирования превращаются в помойку. Поэтому:
1. система комментариев будет делаться как "независимая" часть системы
2. скорее всего при статическом режиме комментарии на отдельных страницах (думаю их тоже можно в статике распечатывать)
3. если есть идеи борьбы со спамом в комментариях на уровне скрипта - поделитесь мыслями.
Например, как я понял вебскрипт.ру от комментариев к статьям отказался из-за кучи помоев (спама различного рода) которые туда регулярно выливались.
--- Цитировать ---R.V.:
Green Kakadu Такой вопрос: под какой лицензией будет распространяться скрипт?
--- Конец цитаты ---
какая-нибудь открытая лицензия (GPL или что-то типа того) -это 100%
скрипт делался с учетом того, чтоб у него была открытая понятная архитектура с широкими возможностями по расширению сторонними разработчиками (вот бы мне еще разродиться нормальной документацией).Проблема санитара 1 в том, что его работа завязана на один модуль с довольно запутанным/невнятным интерфейсом.
В новой версии я попытался реализовать модную ныне модель MVC - model-view-controller
В качестве контроллера выступают модули построенные на основе CGI::Application
View - система, работающая с шаблонами расширенного синтаксиса HTML::Template (причем синтаксис проверяется HTML::Template)
Модель хранения данных - система модулей на создание которой меня вдохновила работа с пакетом SPOPS + апгрейженный мною модуль SQL::Abstract. Пока работает только с MySQL но для перехода на Pg надо будет внести лишь небольшие изменения в один модуль который отвечает за то что называется object mapping (не знаю как по-русски).
Из каких-либо особенных модулей ничего не использовалось, т.е. подойдет обычный хостинг с CGI (все необходимые модули будут в составе дистрибутива они чисто перловые). Единственное что не помешает - наличие ImageMagic чтоб делать к картинкам превьюшки.
упреждаю ваши вопрос "Когда"?
Скоро. Хочется выпустить в свет его если уж не полностью готовым, то максимально законченным с неким базовым набором функций.
Поэтому довожу до ума.
На каком этапе разработка? Что уже есть?
Есть система которая:
1. имеет уже полностью функциональный, в меру симпатичный и удобный админский интерфейс, система авторизации (пока сессионная, планирую добавить воз-ть использования базовой апачевской авторизации)
2. Визуальный HTML редактор для статей и превьюшек (пока подключил наименее громоздкий RTE) планирую добавить поддержку других более навороченных, типа TinyMCE
3. работает с неограниченным кол-вом категорий, выстраивает деревья категорий, строит по ним меню. Соотв. удаление, изменение, создание, просмотр категорий.
Планирую: систему работу с меню. Пока сортирует по алфавиту.Воз-ть использования различных шаблонов для меню. Хотелось бы дать воз-ть устанавливать порядок следования + добавлять в меню ссылки не относящиеся к системе. (это уже после выхода альфы)
4. работа с документами. Краткие новости, многостраничные статьи (все документы - это что-то вроде плагинов,дефолтный, вшитый в систему - это один тип документа, краткие новости. Из расширенных есть пока только статьи. Создание, удаление. Добавление страниц, просмотр, сортировка по разным параметрам.
5. авторы (создание, изменение, удаление)
6. пользователи, система доступа с разными правами (+доступ привязан к категориям) : создание пользователя, изменение прав (не все авторы - пользователи). Какие группы пользователей:
------ "вируальный автор". Болванчик/заполнитель от имени которого пишут статью, доступа не имеет никакого и ни к чему и вообще не входит в число зарегистрированных пользователей.
------- "автор" - написание статей в разрешенные категории (рубрики). Редактирование своих статей.
-------- "редактор". Написание, редактирование, удаление статей из разрешенных рубрик. Управление "виртуальными авторами" (создает виртуалов, удаляет, пишет от их имени статьи).Публикация статей. Генерация страниц: отдельной категории, отдельной статьи, за последние nn дней.
---------"админ". может все.
(такая сисетма мне показалась наиболее разумной. Авторы, редакторы могут иметь/не иметь доступ в определенные категории)
7. система генерирует статичные страницы. (индексные страницы категорий могут быть двух типов: последниее NN статей на MM страницах или дайджест: последние т статей категории и ее подкатегорий на одной странице)
8. компилирует шаблоны (пользовательские/админские) (теперь шаблон после изменения должен обязательно компилироваться - после этого он превращается в полноценный перл-модуль, не требующий каких-либо библиотек шаблонизатора).
Что делаю сейчас: редактирование конфига через веб-интерфейс (довольно скучное и занудное занятие).
Что надо сделать к альфе:
- печать ленты новостей
- проверить систему с большим кол-вом докуметов (пока там у меня около 7 категорий, 3-х авторов и десяток документов)
- вывести часть данных из конфига в настройки категорий (типа кол-во статей на странице, кол-во страниц - все это имеет смысл настраивать для каждой категории индивидуально)
- календарь.
+ написать установщик
+ сделать более менее "перевариваемые пользовательские шаблоны" (пока там все скромно на уровне HTML 0.9b)
+разродиться минимальо-необходимым объемом документации.
и получается альфа для тестирования
-----------------------------
а потом добавлять все то что я считаю нужным и не хватает для беты - поиск... жду не дождусь когда приступлю к этому. Очень интересно. Уже достал кучу словарей для генерации словоформ, обчитался статей о морфоанализе, разных вариантах индексации документа .. но при этом вопрос производительности и скорости будет главным (может придется особо без наворотов обойтись)
- привинтить почтовые функции (sendmail,SMTP) проблем в этом не вижу, поэтому пока и не делал
- комментарии :)
- рейтингование (тоже отдельной системой)
- динамический режим и кеширование (довольно интересная задача).
- сделать поудобнее работу с менеджером файлов (написал системку на CGI::Uploader, довольно неплохая получилась, только надо будет расширить функциональность)
- родить парочку нестандартных плагинов-типов документов для того, чтоб продемонстрировать широкие воз-ти (например плагин для публикации FAQов или докуметов-фотоальбомов).
+ поправить те баги, которые кто-то из энтузиастов найдет и внести те предложения которые окажутся разумными.
-----------------------------------------
получается beta :)
ну а дальше видно будет. Надо будет нормальную документацию по программной части написать, написать конвертер со старого санитара в новую систему (+ ряд штук, которые мне кажется не помешают ,но о них рано пока говорить).
вот примерно план таков. Тружусь в меру своих воз-тей, забил на работу (уволился, а новую пока еще не искал и до выхода альфы не буду) так что стараюсь.
Если интересно, список используемых системой сторонних модулей на данный момент (будут поставляться в дистрибутиве, к сожалению, некоторые пришлось изменить).
CGI/CGI::Simple - на выбор
CGI::Application (переопределена часть методов), ф-ции контроллера
CGI::Application::Dispatch - ф-ции контроллера
CGI::Uploader (изменен мною) - основа менеджера файлов
Data::FormValidator (урезан мною) - проверка данных при постинге статей и т.д.
DBI :) dbd::mysql
Digest::MD5 - шифрование,, генерация id сессий
File::MMagic - используется файловым менеджером
File::Temp - используется файловым менеджером
File::Path - работа с каталогами категорий
HTML::Template - используется лишь при компиляции шаблонов и проверки их синтексиса.
Image::Size - используется файловым менеджером для определения размеров загружаемой картинки (Высота - Ширина)
ImageMagic - для генерации превьюшек к картинкам (опционально)
MIME::Type - используется файловым менеджером
MIME::Types - используется файловым менеджером
Params::Validate - используется файловым менеджером (думал убрать, но решил оставить)
SQL::Abstract (изменен) - генерация SQL запросов
----------------
+ кол-во файлов-шаблонов для админ интерфейса - 28
Но особо не пугайтесь (+ к этому еще 15 моих модулей ), все грузится только по мере необходимости и в основном при работе админа (проверки данных, загрузка файлов и т.д.)
[off]P.S.читаю, прям как Остап Бендер про Васюки-Москву..[/off]
Сергей К.:
А как насчет конвертации из первой версии во вторую? Очень бы хотелось:-)
NAS:
Сергей К.
Читаем внимательно:
--- Цитировать ---Green Kakadu:
Надо будет нормальную документацию по программной части написать, написать конвертер со старого санитара в новую систему (+ ряд штук, которые мне кажется не помешают ,но о них рано пока говорить).
--- Конец цитаты ---
majix:
Еще надо добавить возможность, перемещение нескольких материалов из одной категории (под-категории ...) в другую, в независимости от ее вложенности.
Green Kakadu:
--- Цитировать ---majix:
добавить возможность, перемещение нескольких материалов из одной категории (под-категории ...) в другую, в независимости от ее вложенности.
--- Конец цитаты ---
все перемещается без проблем, как сами документа, так и категории (и целые ветки категорий)
--- Цитировать ---Сергей К.:
А как насчет конвертации из первой версии во вторую? Очень бы хотелось:-)
--- Конец цитаты ---
конечно, только надо вначале получить более менее стабильную, законченную 2-ю версию :)
Об урлах.
сейчас для статики урлы такие:
http://site.ru/Название Категории/Подкатегория/2005/06/22/id_page-номер страницы.расширение
:) есть большое желание вообще уйти к урлам без названй категорий
http://site.ru/2005/06/22/id_page-номер.расширение
на а индексы категорий в папках типа
http://site.ru/MyCategory/
есть ряд плюсов:
1 основной, что при смене категорий урлы статей остаются прежнимим
2 в построении урла (названии файла) не нужно использовать информацию объекта "Категория"
Навигация
Перейти к полной версии