Forums / National / Russian / Модули и плагины / формы ответов для форума и комментариев

<<<123

esclkm
#31 2009-03-22 01:31
ув. Ratibor я ее решил! так но ты не принимаешь этого решения. так как оно тебе не нравится
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Trustmaster
#32 2009-03-22 14:21
Попрошу без грубостей и матюгов. Кстати, по поводу кэша в IE, советую обратить внимание на утилитку rc.php, которая идёт в поставке с Cotonti.

А вот о сути вопроса, дело вот чём: совсем вытравить html из движка не так уж и просто. Больше всего это видно как раз на элементах управления. Вот еще один пример: многочисленные selectbox'ы. Попробуйте вынести их формирование в шаблоны, и у вас получится как минимум по два вложенных блока сразу (хотя с новыми логическими конструкциями будет немного проще это реализовать) на каждый такой выпадающий список.

Но если взглянуть на это с другой стороны, не всё так страшно, дело только в привычках и совместимости со старым кодом (не учитывать последнее - ошибка большинства успешно провалившихся революционеров). К примеру, задача о 4 редакторах для блондинки. Без плагина, который будет управлять логикой, не обойтись - аксиома. Необходимость управления выводом тэга - гипотеза. Опровергаем: добавляем в шаблон логические блоки для вывода соответствующего HTML в зависимости от того, какие условия в плагине выполнились; для textarea так же можно управлять атрибутом class. В общем, очень даже решается задача, но шаблоны выходят очень громоздкими, много повторяющегося кода в разных шаблонах. Как это устранить? Вынести редактор в отдельный шаблон, результат рендеринга которого выводится по привычному тэгу. У этого способа тоже свои минусы есть, но есть они у любого способа вообще.

Будем считать, мы неплохо поупражнялись. Теперь чтобы было и нашим, и вашим, лучше всего подходит последнее предложение Ратибора (если ошибочку исправить сначала, конечно). А вот если вести речь об удалении всех контролов из кода и выноса их в шаблоны, то надо открывать отдельную тему и готовиться писать кучу стандартных шаблонов для таких вещей.

ЗЫ: не встречал ни одной MVC-CMS, в которой M, V и C разделены на 100%; как правило идут на уступки, либо вообще пускаются во все тяжкие.
May the Source be with you!
This post was edited by Trustmaster (2009-03-22 14:26, 15 years ago)
esclkm
#33 2009-03-22 16:33
Trustmaster. Можно сделать логику 1 раз в хедере и по классу пользователя подключить те или иные библиотеки.
по поводу редактора ratibora -1. можно подключить скриптом - чтобы за 1 раз перебрать все ид реакторов. 2. Можно подключить к любому тегу выше- и опять все выполняется как надо. 3. можно через Jquery подключить по классу.
По поводу задачи от ратибора:
1. написать маленький плугин который будет загружать в шапке те или иные скрипты в зависимости от наших желаний. Имхо плагины смотрятся приятнее когда там 2-3 файла а не бордат файлов с абсолютно одинаковым содержанием.
2. взять логику от медара и сделать все тоже самое.
(в итоге выходов море)
Зато так я могу как пароноик вместо формы ответа вставить хоть селекта хоть инпута.? жестоко? а возможность то такая сейчас есть.
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Ratibor
#34 2009-03-22 16:44
# esclkm : Зато так я могу как пароноик вместо формы ответа вставить хоть селекта хоть инпута.? жестоко? а возможность то такая сейчас есть.
Элементарно, перехватываешь FORUMS_POSTS_NEWPOST_TEXTBOXER и вместо textarea выводишь что душе угодно и как угодно. Это раз.
А два - это то что мой вариант исправлений ядра включает и твой вариан,
так что не пойму в чем притензии ?

А в тех двух вариантах что ты описал, придется наворачивать либо плагин, либо шаблон.
И в том и в другом случае это неоправдано лишний код и тормоза.
А также это не будет универсальным решением, а будет привязано к конкретному скину.

Я же тебе не указываю как плагины писать, а вот почему ты другим указываешь как их писать ?

Еще раз специально для тебя:
я не против выноса textarea из ядра,
мне вообще до фонаря что выводится по FORUMS_POSTS_NEWPOST_TEXTBOXER,
главное чтоб этот тэг был.

Но я категорически против включени в скин textarea.
В скине должно быть только:
<!-- BEGIN: FORUMS_POSTS_NEWPOST -->
<form action="{FORUMS_POSTS_NEWPOST_SEND}" method="post" name="newpost">
<div style="width:100%;">{FORUMS_POSTS_NEWPOST_TEXTBOXER}</div>
<div class="valid"><input type="submit" value="{PHP.skinlang.forumspost.Reply}" /></div>
</form>
<!-- END: FORUMS_POSTS_NEWPOST -->

и ничего более.
Не задавай глупых вопросов, не услышишь вранья.
This post was edited by Ratibor (2009-03-22 17:07, 15 years ago)
Trustmaster
#35 2009-03-22 17:45
Неоправданно лишний код и тормоза - это плагин из 30 частей, реализующих одно и то же.

Мне это напоминает кое-что, с чем периодически сталкиваюсь со времен первого публичного проекта: нежелание менять привычки. Регулярно встречаю людей, выступающих категорически против JavaScript, CSS и т.д. где-либо, аргументируя это тем, что все это можно реализовать с помощью PHP и без всяких модных штучек. То же самое касается шаблонов, MVC, СУБД, чего угодно в принципе. Зачем придумывать новый костыль, если можно сделать по-старинке? Но стоит приобрести небольшой опыт, и консерватизм улетучивается.

Что я хочу сказать: Богу богово, Кесарю кесарево. Немного логики.

Формировать комплексную разметку в коде - это приемлемо только если такое понятие как "скин" или "тема" в проекте отсутствует напрочь. Формировать простую разметку в коде - это типичное решение для движков на CSS шаблонах. Но ни Seditio, ни Cotonti к ним не относится. В принципе, я не против CSS-шаблонов, особенно если в разметке выдержан принцип семантической верстки, а скинмейкер - гуру в CSS, но на практике это встречается очень редко. Так что вынести всю разметку из ядра и отдать весь контроль над HTML и стилями скинмейкеру - для Cotonti не такая уж блажь.

Но с другой стороны, если принять во внимание, что редактор - это не всегда textarea и не всегда с одним набором атрибутов, то можно прийти к тому, что формирование HTML кода будет переложено с плеч PHP-плагина на плечи JS-плагина, предварительно снабженного данными с сервера. Некрасиво?

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

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

Если бы был универсальный хук editor, реализующий необходимое взаимодействие между плагином редактора и целевым шаблоном, всего этого спора вообще не было бы. А вот каким образом организовать такой хук, учитывая сотню мелочей - это другой вопрос.
May the Source be with you!
This post was edited by Trustmaster (2009-03-22 17:54, 15 years ago)
Ratibor
#36 2009-03-22 18:12
# Trustmaster : Но с другой стороны, если принять во внимание, что редактор - это не всегда textarea и не всегда с одним набором атрибутов, то можно прийти к тому, что формирование HTML кода будет переложено с плеч PHP-плагина на плечи JS-плагина, предварительно снабженного данными с сервера. Некрасиво?
Красиво пишешь :-)
Я не против "модных штучек", я против бездумного их применения.
Конкретно маркитап подгружается бездумно где надо и не надо,
причем это сказывается на конечном пользователе.
Дайте мне хотябы один вменяемый ответ зачем к примеру вот здесь грузится маркитап ?
А как подключен fckeditor, на конечном пользователе не сказывается,
т.к. он грузится ровно там где он нужен.
И конечному пользователю не важно из скольки частей состоит плагин редактора,
тем более что из файлов подключения fckeditior можно выкинуть попторяющийся код и потом просто его инклюдить. В общем важен сам принцип, а не конкретная реализация.

# Trustmaster : Если бы был универсальный хук editor, реализующий необходимое взаимодействие между плагином редактора и целевым шаблоном, всего этого спора вообще не было бы. А вот каким образом организовать такой хук, учитывая сотню мелочей - это другой вопрос.
Так как вывод редактора организован сейчас, это и является фактически хуком.
И сейчас не важно каким методом реализовано подключение редактора,
важно что любой редактор пользователь может лекго подключить не правя скина.

Если есть более красивое и действительно универсальное решение я не против,
но то что предлагает esclkm это как раз уничтожение всей универсальности и гибкости.
Не задавай глупых вопросов, не услышишь вранья.
This post was edited by Ratibor (2009-03-22 18:53, 15 years ago)
esclkm
#37 2009-03-22 18:56
ладно. я все пытаюсь в асю к трасту достучаться не получается увы. ( я хотел спросить по поводу выноса в международ ветку данной беседы)

Давайте плюсы и минусы каждого из способов
А. способ в выносом техтареа в скин
1. можно изменить textarea на любой из input быстро и безболезненно
2. Практически любой редактор кроме textboxer2 можно подключить (textboxer2 после долгой научной мысли и его обновления думаю тоже можно сделать)
3. можно менять атибуты textarea
4. можно изменить класс ( ну допустим у нас сейчас эдитор на форуме - а мне вообще не надо чтобы пользователи а форуме строили таблицы - я поставлю спокойно миниэдитор)
5. при правке скина текстбоксер спокойно пойдет.
6. редакторов для нашей системы не так и много : маркитап текстбоксер (но он уже практически был не совместим -в связи с тем что теги многие поменялись, да и проблем внутренних у него очень много было - класса 2 маркитапа на страницу - верный признак того что 1 из них работать не будет), fckeditor - от ув. ратибора(который при помощи соответствующего плагина можно подключить по классу) - поэтому стандарт мы делаем сами.
7. для внесения изменений достаточно дизайнера ("дизайнеров" по жизни как-то больше чем программистов)
8. дизайнер сам решает где ему нужен редактор а где нет. хоть это было расписано немного выше

Б. Способ "по-старинке"
1. кажущаяся унифицированность. Можно включить текстбоксер просто установкой.
2. к нему как к способу уже привыкли (хотя не знаю как это привычкой назвать - когда был всего 1 редактор - а остальные народ мучался и подключить не мог - кто спорит - привет от neocrome.ru - читайте там - не одна дискуссия была по этому поводу)
3. в изначальной комплектации идет плагин созданный ув. Ratibor
4. для внесения любых изменений нужен программист

---------------------------------
P.S. Интересных дакторов в сети не так много: но вот самые интересные ссыылки:
http://www.ecardmax.com/index.php?step=Hoteditor
http://tinymce.moxiecode.com/examples/example_09.php#
http://www.neocrome.ru/forums.php?m=posts&p=8624
http://www.neocrome.ru/forums.php?m=posts&p=19552#19552
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
This post was edited by esclkm (2009-03-22 20:42, 15 years ago)
Ratibor
#38 2009-03-22 19:08
esclkm
Будь объективным :-)

А. способ в выносом техтареа в скин
1. Только правкой скина, в итоге никакой универсальности.
2. Нет желания даже комментировать.
3. опятьже, только правкой скина, никакой универсальности.
4. опятьже, только правкой скина, никакой универсальности.
5. И конечно же каждый скинмейкер это в состоянии зделать :-)
6. Нет желания даже комментировать.
7. Нет желания даже комментировать.

Б. Способ "по-старинке"
1. Полная унифицированность. Можно включить абсолютно любой редактор просто установкой.
2. к нему как к способу уже привыкли, т.к. он является универсальным стандартом.
3. без комментариев
4. бред сивой кобылы.

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

Существующий метод вывода текстового редактора позволяет реализовать каждому свое "я хочу".
Трастмастер хочет через шапку яваскриптом подключать редактор,
я хочу подключать, так как подключил fckeditor.
Оба метода не противоречат друг другу и позволяют пользователю лекго сменить редактор один на другой.

Если хочешь изменить этот метод, то придумай чтоб при этом также каждый смог реализовать свое "я хочу" и при этом этот метод должен быть универсальным.
Не задавай глупых вопросов, не услышишь вранья.
This post was edited by Ratibor (2009-03-22 20:35, 15 years ago)
Trustmaster
#39 2009-03-22 20:51
Совершенно согласен, что нехорошо markitup подключается в шапке, но это наименьшее зло, которое я мог сделать. Делать по куску плагина на каждую вставку - это расточительно, это меня раздражало в textboxer и раздражает в fckeditor. Когда я говорю о хуке, я говорю о исполнении целевого кода в текущем окружении и возврате его вывода в шаблон, а не о переписывании стандартного тэга. То есть редактор надо вызывать там где он нужен, а не ждать, пока он сам всавится туда, где у него получится. Примитивно это можно выразить так:
'FORUMS_POSTS_NEWPOST_EDITOR' => editor_display()
О конкретной реализации editor_display() я не говорю, это может быть и нечто другое. Я хотел бы об этом говорить, когда мы доберемся до изменений в системе плагинов (мультихуки и т.п.) и, возможно, инклюды будут заменены на обратные вызовы. Но сейчас рано об этом говорить.
May the Source be with you!
Ratibor
#40 2009-03-22 21:24
Trustmaster
Я не против этого, это фактически правильная реализация существующего метода.
Не задавай глупых вопросов, не услышишь вранья.

<<<123