Алексей
С нами с 25 декабря 2012; Место в рейтинге пользователей: #69Расширение формы Tickets
Здравствуйте!
Столкнулся с проблемой, необходимо в существующую форму создания тикета добавить загрузку изображения.
В чем заключается трудность. Для того, чтобы передавать файлы через форму, атрибут формы enctype должен быть равен multipart/form-data. После этого, файл помещается в глобальный массив $_FILES, и информация о файле доступна в $_FILES['имя-поля-с-типом-file'] -> name,size,tmp_name.
Сейчас у формы создания тикетов не задан атрибут enctype и по умолчанию он равен application/x-www-form-urlencoded. Если изменить значение enctype у формы создания тикета на multipart/form-data, тогда данные теряются и ничего не создается.
Пытался вытащить значение в функции saveTicket из массива $_FILES — но ничего не вышло.
Столкнулся с проблемой, необходимо в существующую форму создания тикета добавить загрузку изображения.
В чем заключается трудность. Для того, чтобы передавать файлы через форму, атрибут формы enctype должен быть равен multipart/form-data. После этого, файл помещается в глобальный массив $_FILES, и информация о файле доступна в $_FILES['имя-поля-с-типом-file'] -> name,size,tmp_name.
Сейчас у формы создания тикетов не задан атрибут enctype и по умолчанию он равен application/x-www-form-urlencoded. Если изменить значение enctype у формы создания тикета на multipart/form-data, тогда данные теряются и ничего не создается.
Пытался вытащить значение в функции saveTicket из массива $_FILES — но ничего не вышло.
Первичный ключ xPDOObject
Как известно, при создании собственных таблиц в MODX принято наследовать или xPDOSimpleObject, или xPDOObject.
Отличие между ними ровно одно — в SimpleObject уже прописан первичный ключ id, а в Object — нет. То есть, если вы хотите, чтобы у вашей таблицы создавалось поле id с становилось primary key — нужно наследовать SimpleObject.
Я, однако, люблю простые таблицы ключ-значение, в которые добавляю первичным ключом два и более полей сразу. Например, в репозитории пакет может быть в нескольких категориях, значит нужно создать таблицу extraCategoryMember из двух полей category_id и package_id.
Ключ id мне здесь совершенно не нужен, ведь он будет расти при каждой операции добавления пакета в категорию, а таких операций может быть очень много. Конечно, вряд ли INT(10) скоро закончится, но зачем хранить лишнее?
Отличие между ними ровно одно — в SimpleObject уже прописан первичный ключ id, а в Object — нет. То есть, если вы хотите, чтобы у вашей таблицы создавалось поле id с становилось primary key — нужно наследовать SimpleObject.
Я, однако, люблю простые таблицы ключ-значение, в которые добавляю первичным ключом два и более полей сразу. Например, в репозитории пакет может быть в нескольких категориях, значит нужно создать таблицу extraCategoryMember из двух полей category_id и package_id.
Ключ id мне здесь совершенно не нужен, ведь он будет расти при каждой операции добавления пакета в категорию, а таких операций может быть очень много. Конечно, вряд ли INT(10) скоро закончится, но зачем хранить лишнее?
Перезагрузить страницу при сохр. ресурса в админке
Добрый день!
Подскажите, как можно перезагрузить страницу при сохранении ее в админке, также как это происходит при первом сохранении ресурса.
Т.е. при первом сохранении ресурса MODx перегружает страницу, а при последующих — только лишь отправляет ajax запрос на ее обновление. Вот тут мне и нужно при определенных условиях заставить MODx перезагрузить страницу, так как я в плагине в этот момент изменяю поля ресурса и эти изменения не видны.
Подскажите, как можно перезагрузить страницу при сохранении ее в админке, также как это происходит при первом сохранении ресурса.
Т.е. при первом сохранении ресурса MODx перегружает страницу, а при последующих — только лишь отправляет ajax запрос на ее обновление. Вот тут мне и нужно при определенных условиях заставить MODx перезагрузить страницу, так как я в плагине в этот момент изменяю поля ресурса и эти изменения не видны.
Работа с phpThumb
Не многие задумывались, что вместе с MODX Revolution поставляется и phpThumb. Это, фактически, единственная и самая крутая библиотека для работы с изображениями на PHP.
В MODX принято работать с ней через сниппет phpThumbOf, однако у него есть существенные недостатки, например серьёзные тормоза и странное кэширование. Поэтому, верным способом будет работа с библиотекой напрямую.
При разработке "Файлохранилища" мне пришлось покопаться в том, как устроен phpThumb и как он интегрирован в MODX, в результате чего появился универсальный рецепт использования этой библиотеки для генерации изображений.
Заодно решил известную проблему с генерацией уменьшенной копии, с обрезкой из левой верхней части картинки.
Formit, hook и setPlaceholder
Всем добрый день!
При оформлении заказа потребовалось сделать оформление заказана на нескольких страницах (шагах), в итоге на последней странице я пишу в параметрах Formit вызов hook-а:
При оформлении заказа потребовалось сделать оформление заказана на нескольких страницах (шагах), в итоге на последней странице я пишу в параметрах Formit вызов hook-а:
Про xPDO
Эта заметка назревала уже очень давно, полгода минимум. Вокруг замечательного MODX Revolution сломано много копий. Ходят слухи, что он «тормозной», «прожорливый» и «неповоротливый». И главным виновником всегда называют xPDO.
Конечно, это чушь и цель заметки — развенчание мифов. Закрыть, наконец, вопрос с «тормозами» и «прожорливостью». Показать, насколько Revolution удобен и гибок, что он позволяет работать как через ORM xPDO, так и без него — через обычный PDO.
Конечно, это чушь и цель заметки — развенчание мифов. Закрыть, наконец, вопрос с «тормозами» и «прожорливостью». Показать, насколько Revolution удобен и гибок, что он позволяет работать как через ORM xPDO, так и без него — через обычный PDO.
Похожие товары
Есть 30 товаров, два производителя по 15 товаров. Есть 5 групп похожих товаров по 5 штук в группе.
Есть желание добавить на страницу товара блок «похожие товары». Как бы это все сделать попроще?
1) использовать теги товаров или указать группе похожих товаров например tv.similar=1
2) вызвать на странице товара все подходящие под условие товары кроме текущего.
Может кто подсказать где бы подсмотреть примеры или «ткнуть» что почитать?
Есть желание добавить на страницу товара блок «похожие товары». Как бы это все сделать попроще?
1) использовать теги товаров или указать группе похожих товаров например tv.similar=1
2) вызвать на странице товара все подходящие под условие товары кроме текущего.
Может кто подсказать где бы подсмотреть примеры или «ткнуть» что почитать?
Как не хакать сторонние классы
Бывает, что вы используете какой-то сниппет или компонент, и он немного вас не устраивает. Вам нужно поправить буквально пару строк, но вы понимаете, что при обновлении эти измения пропадут.
Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.
Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.