LINUX.ORG.RU
ФорумTalks

[?]CMS, которую было бы удобно дописывать под свои нужды


0

2

Подскажите CMS, которую было бы удобно дописывать под свои нужды? Т.е. пожелания такие:
* документированность кода,
* хорошая архитектура кода,
* отсутствие NIH-синдрома у разработчиков cms,
* активный public форум,
* не php (в том числе и потому, что у предполагаемых разработчиков знаний php нет).

заранее спасибо

★★

Последнее исправление: bik (всего исправлений: 3)

Юзай фреймворки, turbogears или django (на питоне), например. форум придётся писать самому, на питоне полноценных готовых решений нет. Был PyBB (на django написано), но он рипнулся

OramahMaalhur
()

а зачем делать именно CMS? сам же написал, что не пхп.

по делу: pylons+sqlalchemy+jinja2+wtforms=счастье(!)

Donnie_Darko
()
Ответ на: комментарий от demmsnt

>и вообще не стиле ROR

что такое стиль ROR, и чем он плох?

не django (и вообще не стиле ROR)


django вроде не в стиле ROR сделан, на ROR больше pylons похож, неа?

Donnie_Darko
()
Ответ на: комментарий от Donnie_Darko

Они все в стиле ROR.

Twisted не в стиле ROR, но он несколько для других вещей, хотя и под Web писать можно.

Z не в стиле ROR.

Стилем ROR я называю (Наличие URLMap)+(маршрутизация до VIEW)+(View подымает всю фигню и пихает в шаблон).

Не стиль ROR когда у меня совершенно независимые контент объекты. Я их положил в context. При запросе любым образом (можно URLMap но лучше траверз) я получаю view который сам по себе шаблон. Он внутри себя дергает для каждого тега render, что-то в стиле <replace object-value=«pull»/>. Теги сами из запроса или из context берут данные и рисуются.

Звучит несколько сумбурно, но чтоб добавить голосовалку достаточно положить в context объект и вставить тег отрисовки. Всё.

Для небольшого бложика SQL база не нужна. ALChemy тоже. Джинджа может использоваться внутри каждого объекта для render но не обязательно.

demmsnt
()
Ответ на: комментарий от demmsnt

Вообще считаю чем рисует автор компоненты HTML мне пофиг. Я хочу визуальны редактор, подключаю его и в путь. Не мучаюсь с копированием static и прочее. Хочу подсветку синтаксиса - подключил и в путь.

Может это и приведет к тому, что в рабочем проекте будет Cheetah, Jinja2 и TALes. Но я не хочу думать об этом вначале. При большой нужде я могу переписать 1, 2 компоненты. Более того я думаю темплейт машина должна быть доступна по интерфейсу

 
ITemplateRenderrer(interface.interfaces) 
        def render(template_name,vars): 
            """Return rendered unicode string""" 
demmsnt
()
Ответ на: комментарий от demmsnt

>Стилем ROR я называю (Наличие URLMap)+(маршрутизация до VIEW)+(View подымает всю фигню и пихает в шаблон).

т.е. model-template-view ?

Не стиль ROR когда...


не уверен, что правильно вас понял. вот, к примеру, возьмем «но чтоб добавить голосовалку достаточно положить в context объект и вставить тег отрисовки. Всё.»

что у вас будет в urlmap-e, что в view, а что в темплейте? а где будет описана модель?

Donnie_Darko
()
Ответ на: комментарий от Donnie_Darko

что у вас будет в urlmap-e, что в view, а что в темплейте? а где будет описана модель?

Урлмапа в таком случае не надо вообще.

У меня страница лежит в /posts/post_name

Это folder. В folderе лежит index_html Не обязательно названия объектов такие....

Когда вы делаете GET /posts/post_name То он будет разбирать структуру ну пусть такого примерно вида

SITE={'posts':{
               'post1':{
                        'index_html':TemplateObject(context),
                        'content':u"Страница и весь её текст",
                        'pull':PullObject(context)
                          }
                ................
              }

будет вызван TemplateObject(context) в качестве контекста и будет весь dict SITE['posts']['post1']

У него есть поле template вида

<html>
<body>
<object value='content'/>
<object value='pull'/>
</body>
<html>

И он отрисуется.

Я не хочу писать фреймворк. Можно использовать BlueBream, но там я не разобрался с пейджлетами и безопасностью. Потому WSGI + ZCA. Как тренировки. Можно BFG но яб лучше голый ZCA всетаки у BFG будущего нет, все кинули на пирамиду.

demmsnt
()
Ответ на: комментарий от demmsnt

>Урлмапа в таком случае не надо вообще.

Заказчик завтра попросит расположить страницу по другому адресу. А послезавтра — по третьему. I like to move it, move it? :) А ещё заказчик попросит, чтобы старые адреса тоже работали. Начнём обвешивать систему редиректами? А за 5 лет эксплуатации проекта во что это выльется?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Заказчик завтра попросит расположить страницу по другому адресу. А послезавтра — по третьему. I like to move it, move it? :) А ещё заказчик попросит, чтобы старые адреса тоже работали. Начнём обвешивать систему редиректами? А за 5 лет эксплуатации проекта во что это выльется?

Во первых зачем? Во вторых что мы делаем в Linux? Правильно мы делаем ссылку. В третьих я не сказал, что URLmap не нужны вообще. Тот-же BFG поддерживает смешанные Траверз Урлмап системы. Только если честно, кроме сумасшествия заказчика я себе плохо представляю зачем.

demmsnt
()
Ответ на: комментарий от KRoN73

Заказчик завтра попросит расположить страницу по другому адресу.

Вопрос на засыпку:

STRUCT = {'a':{1:2,3:4}}
STRUCT['b'] = STRUCT['a']
STRUCT['b'][1]=u'Hello world'
print STRUCT['a'][1]

Что будет?

demmsnt
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.