Алексей Карташов
С нами с 04 февраля 2013; Место в рейтинге пользователей: #58ExtJs для новичков. Админка загрузилась. ч.2
В первой части познакомились с методом Ext.getCmp() для работы с компонентами ExtJs. Он позволяет взаимодействовать с виджетами ExtJs — панелями, таблицами, формами, окнами, запрашивать и обрабатывать данные с сервера и т.д. Но иногда требуется просто поработать с обычными HTML элементами. А для этого метод Ext.getCmp() совсем не подходит. Можно, конечно, пользоваться обычным javascript. Но уж очень хочется иметь такой же удобный инструмент как jQuery. И ExtJs предоставляет нам такой функционал. Для работы с элементами DOM у него есть несколько методов.
Принцип загрузки админки на ExtJs. Для новичков
В этой статье хочу немного развеять тучи над механизмом работы админки, логика которой основана на ExtJs. Для людей, далеких от php и javascript, это будет набором непонятных слов. А вот те, кого уже не пугают такие термины как ООП, наследование, конструкторы, поймут о чем я тут буду говорить. Это не курс. Я просто попытаюсь систематизировать информацию для понимания общего принципа работы админки.
В сети достаточно много различной информации об ExtJs. Есть отличный курс Василия, по которому многие из нас учились делать свои дополнения. В нем он разбирает тему создания различных ExtJs объектов. Я не буду повторять, то что у него уже разобрано, а постараюсь на простом языке сделать короткую выжимку. Начнем.
В сети достаточно много различной информации об ExtJs. Есть отличный курс Василия, по которому многие из нас учились делать свои дополнения. В нем он разбирает тему создания различных ExtJs объектов. Я не буду повторять, то что у него уже разобрано, а постараюсь на простом языке сделать короткую выжимку. Начнем.
[Console] Сохраняем код в сниппет
[modExtra] Update таблиц своего компонента
Добрый день!
Все мы знаем, что MODX прекрасен мощью решений с помощью компонентов. Я, например, всегда отдаю заказчику сайт в виде компонента, содержащего нужные элементы, зависимости от других компонентов, инициализацию нужных опций и т.д. В этом мне всегда помогал modExtra.
Но вот в один прекрасный момент я задумался, как сделать пользовательские таблицы в своём компоненте таким образом, чтобы при апдейте компонента они были способны расширяться, да и вообще поддерживаться в актуальном состоянии.
Итак задача:
Все мы знаем, что MODX прекрасен мощью решений с помощью компонентов. Я, например, всегда отдаю заказчику сайт в виде компонента, содержащего нужные элементы, зависимости от других компонентов, инициализацию нужных опций и т.д. В этом мне всегда помогал modExtra.
Но вот в один прекрасный момент я задумался, как сделать пользовательские таблицы в своём компоненте таким образом, чтобы при апдейте компонента они были способны расширяться, да и вообще поддерживаться в актуальном состоянии.
Итак задача:
- У нас есть файл схемы mycomponent.mysql.schema.xml, который поставляется вместе с компонентом (или его новой версией) и содержит актуальную информацию о структуре пользовательских таблиц.
- У нас есть БД в которой может не быть наших таблиц (установка с нуля), а могут быть (как правильной, так и неправильной структуры).
AjaxForm + FormIt и отдача файла
Всем привет!
Возникла задача:
«После заполнения полей и прохождения валидации, стартует скачка файла.»
логично, что нужно использовать хуки FormIt (download_hook)
хук:
Возникла задача:
«После заполнения полей и прохождения валидации, стартует скачка файла.»
логично, что нужно использовать хуки FormIt (download_hook)
[[!AjaxForm?
&snippet=`FormIt`
&form=`down_price.tpl`
&emailTpl=`zvonok.sent`
&hooks=`spam,email,download_hook`
&emailSubject=`Скачали прайс-лист`
&emailTo=`[[++emailsender]]`
&validate=`phone:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение отправлено!`
]]
хук:
$file = 'file.zip';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
return true;
}
toggleTVSet
Доброе утро, в свободное время ищу интересные дополнения и готовые решения к MODx.
Вот, роясь на гитхабе, нашла приложение toggleTVSet.
Его смысл: в зависимости от значения определенного ТВ должны показываться необходимые нам ТВшки.
Из минусов:
Вот, роясь на гитхабе, нашла приложение toggleTVSet.
Его смысл: в зависимости от значения определенного ТВ должны показываться необходимые нам ТВшки.
Из минусов:
- плагин и сниппеты надо устанавливать вручную
- в плагине прописать Id TV-параметра (одного), от значения которого будут скрываться\показываться другие Тв-шки.
[UserFiles] - Файлы пользователя.
[UserFiles] — Компонент реализует функцию загрузки файлов (загрузчик Plupload) пользователями с фронта сайта.
Особенности:
— добавление файлов к любому виду ресурса
— добавление файлов к пользователю
— интеграция с [UserProfile2]
— поддержка списков файлов
Особенности:
— добавление файлов к любому виду ресурса
— добавление файлов к пользователю
— интеграция с [UserProfile2]
— поддержка списков файлов
[myCalendar] Календарь для MODX
Есть прикольный календарик на javascript — fullCalendar. Много настроек, красивый вид, поддерживается разработчиками. Но он расчитан только на рендеринг событий. Лично мне он понравился и поэтому я решил познакомить его с MODX Revolution.
Создание тикета без регистрации [Tickets]
Как известно для создания тикетов пользователь должен авторизоваться на сайте, но не всегда это бывает необходимо. Порывшись на форуме понял что из коробки этого не сделать.
Если кому интересно мое решение прошу подкат.
Если кому интересно мое решение прошу подкат.