Хочу сделать что-то типа такого. Но я не знаю, где это должно рендериться. Сейчас у меня есть шаблон, который на сервере парсится, и получаем что-то типа: HTML: <div id="modal-delete" class="msgBox popup ui-draggable"> <div class="msgBox-body confirm-m"> <div class="caption">Подтверждение удаления</div> <div class="text">Вы действительно хотите удалить <span class="item">USD</span>?</div> <div class="buttons"> <input type="button" class="button" value="Да" id="btYes"/> <input type="button" class="button" value="Нет" id="btNo"/> </div> </div> </div> .msgBox - display: none; Когда нужно - это показывается и центрируется. Однако закрадываются сомнения в том, что это нужно делать на сервере. Да и ExtJS рендерит это жабаскриптом. Возможно стоит просто передавать список параметров типа caption, text, buttons+actions for it. Но: сейчас можно через шаблоны настроить все для этих msg-box'ов. А если сделаю через JS, то это будет как-то не так. Что посоветуете?
Я считаю, что рендерить такое на сервере не желательно. Раз уж это клиентская часть, пусть их рендерит клиент. Я делаю так: передаю для таких диалогов данные в JSON формате, а клиентская часть уже решает чего с этими данными делать. Такое разделение удобно тем, что если у тебя поменялось что-то в клиентском интерфейсе, то нужно менять только клиентский JS, и не лезть в серверные скрипты. Хранить это можно в template`ах на клиентской стороне. Для JQuery такой плагин точно есть, наверное и для ExtJS есть. Серверную сторону тоже можно автоматизировать через создание слоя для ajax-общения с клиентским скриптом.
да я чувствую, что протупил, когда решил на сервере рендерить это дело. Думал просто, что это ж типа я на сервере подставлю весь необходимый текст (читай нужные переводы) и верну их клиенту. Но: передать нужные переводы можно и через <script> var translation = {caption: [:tr|caption:], text: [:tr|text:]}... короче буду переделывать. Cron только подтвердил мои опасения.
Дело стиля, имхо. Ну или командных "правил", если пишешь не сам. Особенно, когда серверная и клиентская часть разделены не только логически, но и между программистами (что часто бывает).
дело в том, что мы же должны как-то отделять код от шаблонов. Ладно, если внутри этого msg-box'а будет текст и 1-2 кнопки. Кномки я отрендерю через js. А что если там будет не текст а какой-нить input или форма? Нужно наверно создавать для нее шаблон и передавать его в js-переменную. В этом плане хорош Ext, но он мне нифига не подходит.