Алексей
С нами с 25 декабря 2012; Место в рейтинге пользователей: #69Ошибка mysql sql_mode=only_full_group_by
В msProducts при включении includeTVs ошибка.
Прошу помощи, как решить эту проблему?
Прошу помощи, как решить эту проблему?
[[!msProducts?
&includeTVs=`Любое подключенное TV`
...
]]
(ERROR @ .../www/core/components/pdotools/model/pdotools/pdofetch.class.php : 171) [pdoTools] Error 42000: Expression #69 of SELECT list is not in GROUP BY clause and contains nonaggregated column '...TVpriceeur.value' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Вставка копирайтов при копировании текста на сайте
Головная боль многих новостных сайтов — копирование оригинального текста и его использование на других сайтах.
В качестве официального решения проблемы — предлагается автоматическое добавление копирайтов при копировании текста в буфер обмена. Копирайт может содержать ссылку на сайт-источник, что дает дополнительное SEO преимущество.
Ниже я предлагаю найденное мною и немного оптимизированное решение этого вопроса.
В качестве официального решения проблемы — предлагается автоматическое добавление копирайтов при копировании текста в буфер обмена. Копирайт может содержать ссылку на сайт-источник, что дает дополнительное SEO преимущество.
Ниже я предлагаю найденное мною и немного оптимизированное решение этого вопроса.
Регистрация пользователя с суммой на счёте
Простенький скрипт, который пробегает по массиву email => name, регистрирует пользователя в системе и кладёт ему определённую сумму на внутренний счёт miniShop2.
Запускать ровно один раз, результатом будет вывод списка имён, ящиков и паролей (если юзер еще не был зарегистрирован). При повторном запуске юзерам зачислится еще раз такая же сумма.
Можно использовать для раздачи рекламных аккаунтов в магазинах.
Запускать ровно один раз, результатом будет вывод списка имён, ящиков и паролей (если юзер еще не был зарегистрирован). При повторном запуске юзерам зачислится еще раз такая же сумма.
Можно использовать для раздачи рекламных аккаунтов в магазинах.
OnLoadWebDocument, как узнать, что ресурс из кеша?
Собственно нужно, чтобы код плагина не выполнялся, если ресурс из кеша. Есть какие-либо маркеры этого?
Удаление старых версий пакетов
Многие пользователи знают, что MODX хранит кучу старых версий дополнений, чтобы вы могли откатиться на них в любое время.
Но, это требуется крайне редко, а место пакеты занимают. Их можно удалять вручную, но это довольно утомительно, поэтому я набросал несложный консольный скрипт для автоматического удаления.
Скрипт нужно положить в корневую директорию и запустить. Он выберет все установленные версии, кроме самой последней, и корректно удалит их через родной процессор.
Судя по коду этого процессора, никак повредить системе он не может, потому что деинсталляцию самого пакета не делает, а только удаляет файлы версии. Но, в любом случае, использовать на свой страх и риск!
Но, это требуется крайне редко, а место пакеты занимают. Их можно удалять вручную, но это довольно утомительно, поэтому я набросал несложный консольный скрипт для автоматического удаления.
Скрипт нужно положить в корневую директорию и запустить. Он выберет все установленные версии, кроме самой последней, и корректно удалит их через родной процессор.
Судя по коду этого процессора, никак повредить системе он не может, потому что деинсталляцию самого пакета не делает, а только удаляет файлы версии. Но, в любом случае, использовать на свой страх и риск!
Как стать контрибьютором MODX
(Перевод руководства по отлову багов)
Это руководство написано для участников MODX Bug Hunt. Мероприятие уже завершено, если вы его пропустили, информацию можно найти на официальном сайте modxbughunt.com.
1. Инструменты
- Интерфейс с командной строкой (Терминал, iTerm и пр.)
- Git, установленный на вашей системе
- PHP Storm или другой клиент. Пожалуйста, убедитесь, что вы используете 4 пробела для отступов, а не табы.
- Любой веб-сервер. Желательно, чтобы на борту был Apache или NGINX. Мы используем Vagrant. Или можно взять на вооружение MAMP или XAMPP.
Номер телефона miniShop2 в профиль пользователя
Добрый вечер!
Нужно при оформлении заказа брать номер телефона из msOrderAddress и записывать его в профиль пользователя.
Написал такой плагин, но номер телефона записывается совсем не тот…
На этом этапе в переменную попадает id заказа, а не пользователя:
Нужно при оформлении заказа брать номер телефона из msOrderAddress и записывать его в профиль пользователя.
Написал такой плагин, но номер телефона записывается совсем не тот…
<?php
switch ($modx->event->name) {
case "msOnCreateOrder":
$msUserId = $msOrder->get('user_id');
$msAddress = $modx->getObject('msOrderAddress',$msUserId);
$msPhone = $msAddress->get('phone');
$user = $modx->getObject('modUser',$msUserId);
$profile = $user->getOne('Profile');
$profile->set('phone', $msPhone);
$profile->save();
break;
}
На этом этапе в переменную попадает id заказа, а не пользователя:
$msUserId = $msOrder->get('user_id');
Собственные модификаторы Fenom
Продолжаю разработку новой версии modstore.pro и хочу поделиться простым способом подключения своих модификаторов.
Обычный способ все знают: нужно создать сниппет, который будет принимать переменные $input и $options и вызвать его в чанке вот так:
Обычный способ все знают: нужно создать сниппет, который будет принимать переменные $input и $options и вызвать его в чанке вот так:
{$variable | snippet}
Но- Сниппеты бывают совсем небольшие и создавать их на каждый чих не хочется
- Вызов сниппета, это всё-таки дополнительная нагрузка
- Лично я уже полностью перешел на файлы, и создавать запись в БД для сниппета, только ради его связи с файлом мне совсем не хочется
Ссылки на сайты-магазины на minishop2
Привет всем. Кому не сложно, подкиньте в комментах ссылок на сайты-магазины на минишопе, а то мне ответить нечем на "что-то я не видел магазинов на modx, все нормальные фирмы делают на Битриксе". Ну и думаю будет многим интересно посмотреть.
[msPromoCode] Кейс. Вывод информации по промо-коду в письме
Часто слышу вопрос о выводе промо-кода и информации по скидке в письме пользователю/менеджеру. На самом деле такая возможность есть уже давно, хоть и не совсем явным образом бросается в глаза. Делается это в 2 простых шага, которые описаны ниже.