elec3c
С нами с 11 июля 2016; Место в рейтинге пользователей: #535Заготовка MODX RESTFull API для работы с магазином на основе miniShop2
Подготовил и выложил на Github полностью готовый компонент, который реализует RESTFull API на базе встроенного в MODX modRestService.
Вполне можно брать его как заготовку, допиливать свои нужды и использовать.
Ниже расскажу как с ним работать и на что обратить внимание.
Вполне можно брать его как заготовку, допиливать свои нужды и использовать.
Ниже расскажу как с ним работать и на что обратить внимание.
Шпаргалка на все случаи жизни
Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
modxNotes - Компонент для создания заметок
Короткий анонс компонента.
Исходя из ответов на вопрос нужен ли этот компонент, я сделал вывод, что как минимум он не будет никому мешать. После моего призыва на проект залетели @Pavel Zarubin и @Иван Бочкарев, предложили хорошие идеи и некоторые из них даже реализовали. Компонент стартует с версии 1.2.1-pl.
Исходя из ответов на вопрос нужен ли этот компонент, я сделал вывод, что как минимум он не будет никому мешать. После моего призыва на проект залетели @Pavel Zarubin и @Иван Бочкарев, предложили хорошие идеи и некоторые из них даже реализовали. Компонент стартует с версии 1.2.1-pl.
Плюс и минус в каунте корзины MS2
Досточно простой вопрос, который мучает начинающих разработчиков. Решил поделиться решением, как сделать кнопки плюс и минус в корзине MS2. Что бы все было «по-фуншую»
Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart
Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart
...
<td class="count">
<form method="post" class="ms2_form" role="form">
<input type="hidden" name="key" value="{$product.key}"/>
<div class="form-group">
<div class="input-group input-group-sm qty">
<span class="input-group-prepend">
<span class="input-group-text minus input_count_action">-</span>
</span>
<input type="number" name="count" value="{$product.count}" class="form-control"/>
<span class="input-group-append">
<span class="input-group-text plus input_count_action">+</span>
<span class="input-group-text">{'ms2_frontend_count_unit' | lexicon}</span>
</span>
</div>
<button class="btn btn-sm" type="submit" name="ms2_action" value="cart/change">
↻</button>
</div>
</form>
</td>
...
Разработка компонента без злосчастного ExtJS
Привет всем.
Во время выступления Steffan Blockx (Building a CMP without ExtJS) в этом году на митапе MODX AMSTERDAM я вдоволь насмеялся, потому, что для меня тема и содержание его выступления были не содержательными. Он 45 мин. говорил, что компонент для MODX можно написать и без ExtJS. Но как же я ошибался по поводу очевидности его слов. Для кого-то — да, а для некоторых оказывается, что не совсем.
Несколько причин очевидности:
Это была первая причина, а вторая поинтереснее. Как же устаешь от нытья в чате телеграм по поводу ExtJS. Каждый клянется, что он точно не является некрофилом и ему противно вступать в половые отношения с «мертвым» MODX.
Третья причина банальная, несколько людей попросили показать.
Во время выступления Steffan Blockx (Building a CMP without ExtJS) в этом году на митапе MODX AMSTERDAM я вдоволь насмеялся, потому, что для меня тема и содержание его выступления были не содержательными. Он 45 мин. говорил, что компонент для MODX можно написать и без ExtJS. Но как же я ошибался по поводу очевидности его слов. Для кого-то — да, а для некоторых оказывается, что не совсем.
Несколько причин очевидности:
- ExtJS всё еще JS и обходится без магии работая с процессорами
- На данный момент есть много компонентов (барабанная дробь) которые работают на чистом js или используя библиотеки. Shopkeeper3 (Angular), imgArea (частично jQuery), ModxMinify (jQuery)
- Об использовании vue писали и раньше
Это была первая причина, а вторая поинтереснее. Как же устаешь от нытья в чате телеграм по поводу ExtJS. Каждый клянется, что он точно не является некрофилом и ему противно вступать в половые отношения с «мертвым» MODX.
Третья причина банальная, несколько людей попросили показать.
[xParser] 1.8.0 Вспомогательный Node JS демон или ускоряем парсинг в 27 раз!
Встала задача ускорить, насколько это возможно, работу парсера, т.к. у клиента отработка задания на парсинг 7к ресурсов длилась в течение ~2-3 суток!
Первым делом я подумал, что проблема таится в получении данных со стороннего ресурса. 7 тысяч запросов к стороннему ресурсу только за текстовой информацией, а ещё у каждой записи по 5 картинок, в общей сложности получается 42к запросов к стороннему ресурсу.
Если в среднем запрос длится по 1 секунде, то получается 42 тысячи секунд, что эквивалентно 11 часам и ещё 40 минутам! А ведь ресурс ещё нужно сохранить, на что в среднем уходит по 1-2 секунды. Это ещё +22 часа работы. Итого ~34 часа на отработку задания на парсинг 7к ресурсов, в лучшем случае. Мда… не дело!
Скрипт подмены конфигов сайта на лету
Надоело каждый раз при переносе сайтов между серверами прописывать конфиги в нескольких местах. Каждый раз напрягаешься, чтобы не перепутать. Написал скрипт, который делает это автоматически в зависимости от $_SERVER['HTTP_HOST'] сервера на котором он запускается.
MODX, как сделать красиво для администратора сайта. Часть 2
В первой части я рассказал, как вынести весь код в шаблоны и чанки, чтобы в контенте остался только текст. Настала пора настроить ACL (Access Control Lists или Контроль доступа).
Отправляем данные из форм в AmoCrm
Поступил мне заказ от человека на отправку данных форм в AmoCrm и после небольших обсуждений как лучше поступить: купить пакет или разбираться самому вынесли совместно решение купить пакет amocrm на modstore так как все пакеты, конечно же, сделаны для того чтобы быстрее внедрить в жизнь определенные решения.
Пакет заказчик купил, я сделал на нем определенные простейшие вещи, но застрял на подключении доп полей по id-шникам в amocrm и создании события к сделке, о чем я попросил заказчика задать вопрос, так как он покупал пакет на свой аккаунт, и вот спустя 5 дней после обращения и неполучения до сих пор ответа выходит моя заметка.
Первое, что надо понять — это то, что без знания хотя бы основ самой AmoCrm, названий полей, порядка действий ничего сделать у вас не получится в принципе, ни с пакетом ни без него, поэтому, если вы не сталкивались с AmoCrm, то надо потратить пару часов и просто понять основы работы в AmoCrm, просто как менеджеру, как добавлять поля, сделки и контакты, как они отображаются, как их удалить или редактировать, и после этого можно переходить к работе с Api AmoCrm
Итак, отправляем данные из форм в Амо:
Пакет заказчик купил, я сделал на нем определенные простейшие вещи, но застрял на подключении доп полей по id-шникам в amocrm и создании события к сделке, о чем я попросил заказчика задать вопрос, так как он покупал пакет на свой аккаунт, и вот спустя 5 дней после обращения и неполучения до сих пор ответа выходит моя заметка.
Первое, что надо понять — это то, что без знания хотя бы основ самой AmoCrm, названий полей, порядка действий ничего сделать у вас не получится в принципе, ни с пакетом ни без него, поэтому, если вы не сталкивались с AmoCrm, то надо потратить пару часов и просто понять основы работы в AmoCrm, просто как менеджеру, как добавлять поля, сделки и контакты, как они отображаются, как их удалить или редактировать, и после этого можно переходить к работе с Api AmoCrm
Итак, отправляем данные из форм в Амо:
Внедряем webp без боли
Недавно начал работу над очередным проектом, и захотелось сразу добавить поддержку webp (раз такая поддержка уже есть в MODX из коробки). Задача несложная, но хотелось сделать все красиво, да так чтобы менеджеру не нужно было дополнительно эти изображения конвертировать.