Василий Наумкин
С нами с 08 декабря 2012; Место в рейтинге пользователей: #1Скидки 27 - 28 июля
Изо всех сил стараемся внедрить новую традицию скидок у нас в магазине. Врать не буду, пример берем в Playstation Store и Google Play.
Итак, сегодня распродаём компонент синхронизации товаров MS2 и 1С — МойСклад — всего за 990р. Заодно добавляем бонус — бесплатную загрузку компонента переоценки товаров msRevaluation.
Итак, сегодня распродаём компонент синхронизации товаров MS2 и 1С — МойСклад — всего за 990р. Заодно добавляем бонус — бесплатную загрузку компонента переоценки товаров msRevaluation.
Linode увеличили HDD в 2 раза
Я понимаю, что уже надоело, но деваться некуда — они опять сделали это.
Да, подлые Linode, как матерые наркобарыги, не дают нам слезть с иглы великолепного хостинга. На сей раз в ход пошёл особо гадкий приём — бесплатное увеличение HDD в 2 раза (ссылка на оригинальную новость). Причем, увеличивают уже с учетом предыдущих +20%.
Как и в прошлый раз, заходим в админку, кликаем справа на кнопку «Upgrade Available» и распределяем новое место, кликая на имеющийся HDD (нужно будет выключить сервер).
Лично я увеличил своп до 1024мб, на всякий случай, а все остальное отдал на основной раздел — на моём тарифе 1536 диск теперь 72Gb.
Да, подлые Linode, как матерые наркобарыги, не дают нам слезть с иглы великолепного хостинга. На сей раз в ход пошёл особо гадкий приём — бесплатное увеличение HDD в 2 раза (ссылка на оригинальную новость). Причем, увеличивают уже с учетом предыдущих +20%.
Как и в прошлый раз, заходим в админку, кликаем справа на кнопку «Upgrade Available» и распределяем новое место, кликая на имеющийся HDD (нужно будет выключить сервер).
Лично я увеличил своп до 1024мб, на всякий случай, а все остальное отдал на основной раздел — на моём тарифе 1536 диск теперь 72Gb.
Обновления в магазине
Распродажа дополнений на выходных прошла очень хорошо, так что мы решили продолжать эту новую традицию и пересмотреть ценовую политику.
Итак, изменения:
— Цены, которые были снижены на 30% — 50% в честь открытия магазина, стали постоянными. Товаров дороже 1990р нет.
— Цена на Uploadify временно снижена до 490р.
— Цена на MarkItUp теперь всего 490р.
— Практически каждые выходные мы будем устраивать распродажи дополнений со скидками до 50%.
С чем я всех и поздравляю. Посмотреть новые цены.
Итак, изменения:
— Цены, которые были снижены на 30% — 50% в честь открытия магазина, стали постоянными. Товаров дороже 1990р нет.
— Цена на Uploadify временно снижена до 490р.
— Цена на MarkItUp теперь всего 490р.
— Практически каждые выходные мы будем устраивать распродажи дополнений со скидками до 50%.
С чем я всех и поздравляю. Посмотреть новые цены.
Подавление ошибок php
Некоторое время назад мне сделали замечание, что использовать @ — «плохая привычка». На предложение доказать, что это именно так, я получил ссылку на Хабр, со статьей про управление ошибками.
Окей, наконец-то я узнал, как именно ими управлять, но чем же плоха привычка подавлять сообщения об ошибках, если ты знаешь, что делаешь?
На мой взгляд, плохого здесь нет и быть не может. Применение @ — это такое же управление ошибками, как и функция error_reporting() или директива в php.ini.
Однако, детальный разбор показал несколько иное.
Окей, наконец-то я узнал, как именно ими управлять, но чем же плоха привычка подавлять сообщения об ошибках, если ты знаешь, что делаешь?
На мой взгляд, плохого здесь нет и быть не может. Применение @ — это такое же управление ошибками, как и функция error_reporting() или директива в php.ini.
Однако, детальный разбор показал несколько иное.
Скрипт установки MODX для Ubuntu
После недавней статьи про настройку сервера было много вопросов, касающихся всяких мелочей. Поэтому я поднапрягся, и переделал скрипты jkenters для автоматической установки MODx.
Первичный ключ 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 API
Предлагаю всем желающим готовую функцию для установки компонентов через Api.
Можно делать из консоли, можно из сниппета — не важно. Собственно загрузка файла выделена в отдельную функцию, которая пытается работать через file_get_contents(), если это не запрещено. Иначе использует cUrl.
Параметров всего 2: имя компонента и id провайдера пакетов (по умолчанию — 1, то есть, modx.com).
Можно делать из консоли, можно из сниппета — не важно. Собственно загрузка файла выделена в отдельную функцию, которая пытается работать через file_get_contents(), если это не запрещено. Иначе использует cUrl.
Параметров всего 2: имя компонента и id провайдера пакетов (по умолчанию — 1, то есть, modx.com).
Ядерный апгрейд Linode
Было 4, стало 8. Никакой платы, просто апгрейд всех серверов. Ранее уже было увеличение HDD на 20% и лимита трафика в 10 раз
XSS уязвимость в Quip
Новость для всех пользователей компонента комментирования Quip. Если у вас включены теги, то ваш сайт уязвим перед XSS атаками через эти теги.
У всех, без исключений. Если вы, конечно, самостоятельно не фильтруете комментарии при сохранении.
Вот баг-репорт, благодарим за него, как обычно, Евгения Борисова.
У всех, без исключений. Если вы, конечно, самостоятельно не фильтруете комментарии при сохранении.
Вот баг-репорт, благодарим за него, как обычно, Евгения Борисова.
Динамические функции на замену фильтрам
Очередная модель от известного велосипедостроителя — меня.
Суть в следующем: заменить все фильтры в чанке на функции внутри сниппета, сделанного на pdoTools.
При этом, сами фильтры должны лежать как и раньше, сниппетами, а не быть жестко закодированы, чтобы их можно было удобно изменять и использовать также в в плагинах, или еще где.
Суть в следующем: заменить все фильтры в чанке на функции внутри сниппета, сделанного на pdoTools.
При этом, сами фильтры должны лежать как и раньше, сниппетами, а не быть жестко закодированы, чтобы их можно было удобно изменять и использовать также в в плагинах, или еще где.