expressionEngine safecracker загружает ненужные виджеты - PullRequest
0 голосов
/ 25 июня 2011

У меня есть пустой шаблон с формой Safecracker, состоящий из 2 пользовательских полей.Когда я пытаюсь загрузить его в браузере, загрузка занимает около 2-3 секунд.Глядя в firebug, я вижу следующее: GET

http://localhost/ee1/?ACT=7&ui=core,widget,mouse,position,draggable,resizable,button,dialog,datepicker&plugin=scrollable,scrollable.navigator,ee_filebrowser,ee_fileuploader,markitup,thickbox,toolbox.expose,overlay,tmpl&v=1308711156&use_live_url=y&include_jquery=y

Мне не нужно загружать большинство вещей, показанных в URL выше.Как я могу контролировать то, что загружается с формой Safecracker.Я буду загружать jQuery / UI напрямую из Google, поэтому мне не нужен Safecracker для его загрузки.Я могу удалить jQuery и DatePicker из формы Safecracker, выполнив datepicker="no" include_jquery="no", но как насчет удаления других вещей, упомянутых в URL, таких как прокручиваемый, перетаскиваемый, Thickbox и другие вещи.

enter image description here

Ответы [ 2 ]

2 голосов
/ 25 июня 2011

Краткий ответ:

К сожалению, нет способа отключить многие из включенных JavaScripts SafeCracker.

Длинный ответ:

SafeCracker разработан как общийцель, насколько это возможно, и удовлетворить потребности самой большой аудитории.

С этим компромиссом SafeCracker объединяет в себе jQuery, jQuery UI Widgets, jQuery Tools и различные другие плагины и функции jQuery для облегчения проверки на стороне клиента и представления формынастраиваемые типы полей.

Как вы показали, вы можете отключить автоматический вывод jQuery с помощью SafeCracker - скажем, если вы хотите использовать более новую версию, чем та, которая доступна из панели управления EE -и можете ли вы отключить DatePicker, но, насколько мне известно, вы не можете предотвратить вывод остальных скриптов JavaScripts без взлома базовой библиотеки SafeCracker .

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

Тем не менее, очевидно, что конструктивное решение заключается в том, что SafeCracker был построен так, чтобы включать все скрипты Java, которые он выводит, так как нет 'т утвержденный способ их удаления.Таким образом, мы, по сути, застряли с ними в непредвиденном будущем.

Если вы сильно настроены по этому поводу, я бы посоветовал подать Запрос функций в EllisLab , чтобыбольше возможностей конфигурирования для неаккуратного способа SafeCracker выводить больше JavaScripts, чем то, что действительно необходимо.


Для любопытных возьмите пик вокруг строки 887 в следующем файле, чтобы увидеть, сколько виджетов jQuery UI UI виджетыв паре тегов SafeCracker.

/system/expressionengine/modules/safecracker/libraries/safecracker_lib.php


Примечание. Если вы хотите взять дело в свои руки, вы можете закомментировать некоторые элементы вмассив $js_defaults и $ui, который удалит JavaScripts из вывода.Однако при этом вы берете на себя всю ответственность и риск за работу SafeCracker.

0 голосов
/ 01 марта 2012

Я предполагаю, что это изменилось с момента ответа rjb, но SafeCracker предоставляет два параметра, которые я считаю полезными для существенного сокращения времени загрузки страницы:

include_jquery="no" safecracker_head="no"

Соответствующий документация

...