Константин Обухов
С нами с 03 марта 2016; Место в рейтинге пользователей: #333mixedImage - custom TV
mixedImage — modx custom TV
Версия 2.0:
— Изменен внешний вид
— Добавлены новые возможности:
Возможность руками вписать путь к файлу
Новая настройка при создании TV: Удаление файла, если выставлено «Да», то при очистке поля файл физически удаляется с сервера
Открывает сразу папку указаную в настройках TV (от корня источника файлов)
— Поправлено несколько небольших багов:
работа системной настройки «Загружать только при редактировании»
опечатки в лексиконах
правильный текст ошибок
ошибка транслитерации если файл уже существует
_______________________________ _________________________________
Добавлена опция для ресайза загружаемого изображения
Добавляет новый тип TV поля: Смешанная загрузка файла/Mixed Image Input
Является сместью FastUploadTV и стандартной загрузки файлов, часть кода взята из FastUploadTV
Версия 2.0:
— Изменен внешний вид
— Добавлены новые возможности:
Возможность руками вписать путь к файлу
Новая настройка при создании TV: Удаление файла, если выставлено «Да», то при очистке поля файл физически удаляется с сервера
Открывает сразу папку указаную в настройках TV (от корня источника файлов)
— Поправлено несколько небольших багов:
работа системной настройки «Загружать только при редактировании»
опечатки в лексиконах
правильный текст ошибок
ошибка транслитерации если файл уже существует
_______________________________ _________________________________
Добавлена опция для ресайза загружаемого изображения
Добавляет новый тип TV поля: Смешанная загрузка файла/Mixed Image Input
Является сместью FastUploadTV и стандартной загрузки файлов, часть кода взята из FastUploadTV
Работа с MODX из IDE без админки
Привет друзья!
Прямо сейчас проходит MODXpo 2017 и я хочу поделиться с вами своим, только что показанным, докладом.
Идея в том, чтобы разрабатывать сайты без логина в админку, прямо из PhpStorm.
Я предлагаю делать это через свой пакет, который установит нужные ресурсы, настройки, шаблоны и вообще что угодно. Это не для разработки дополнений, это для разработки сайтов.
Прямо сейчас проходит MODXpo 2017 и я хочу поделиться с вами своим, только что показанным, докладом.
Идея в том, чтобы разрабатывать сайты без логина в админку, прямо из PhpStorm.
Я предлагаю делать это через свой пакет, который установит нужные ресурсы, настройки, шаблоны и вообще что угодно. Это не для разработки дополнений, это для разработки сайтов.
modHelpers 3.0. Обработка запросов, контексты
Всем привет! Сегодня выпустил новую версию библиотеки modHelpers. Вот основные изменения:
- Добавлено пространство имен для всех классов.
- Добавлена функция request().
- Добавлена функция switch_context().
- В класс Object добавлен метод «object».
- В класс Object добавлен метод «parent».
- В класс Query добавлен метод «first».
- В класс Query добавлен метод «toString».
Эмулятор посредников для MODX
Всем привет! Хочу представить вам моё новое дополнение под названием Middlewares. Это эмулятор посредников. Как вы знаете MODX построена по концепции событийно-ориентированного программирования. Т.е. взаимодействие с системой происходит по наступлению события. Но большинство современных фреймворков используют механизм посредников. Да и разработчики MODX добавили этот функционал в 3-ю версию. Но увидим ли мы её когда-нибудь, вопрос.
Minishop2 количество товаров в корзине
Доброго времени дня!
Необходимо вывести в мини корзине количество товаров (кол-во строк в корзине).
Как вывести на странице разобрался:
Плейсхолдер {$total_count} видел, не подходит. Он выводит общее количество товара. В моем случае товар продается метрами.
Например: кладем в корзину 5 метров одного товара и 3 метра другого. Плейсхолдер
{$total_count} выведет 8, а надо 2 (т.к. в корзине 2 товара)
Решение:
1) Расширил класс корзины:
2) Что бы при добавлении в корзину у нас мини корзина сразу обновлялась дописал колбеки:
Необходимо вывести в мини корзине количество товаров (кол-во строк в корзине).
Как вывести на странице разобрался:
count(($miniShop2->cart->get()));
А как сделать что бы при добавлении нового товара автоматически обновлялось не знаю.Плейсхолдер {$total_count} видел, не подходит. Он выводит общее количество товара. В моем случае товар продается метрами.
Например: кладем в корзину 5 метров одного товара и 3 метра другого. Плейсхолдер
{$total_count} выведет 8, а надо 2 (т.к. в корзине 2 товара)
Решение:
1) Расширил класс корзины:
<?php
if(!class_exists('msCartHandler')) {
require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/mscarthandler.class.php';
}
class myCartHandler extends msCartHandler implements msCartInterface{
public function status($data = array())
{
$status = array(
'total_count' => 0,
'total_cost' => 0,
'total_weight' => 0,
'total_num' => 0,
);
foreach ($this->cart as $item) {
if (empty($item['ctx']) || $item['ctx'] == $this->ctx) {
$status['total_count'] += $item['count'];
$status['total_cost'] += $item['price'] * $item['count'];
$status['total_weight'] += $item['weight'] * $item['count'];
$status['total_num']++;
}
}
return array_merge($data, $status);
}
}
— теперь у нас появился новый плейсхолдер — total_num2) Что бы при добавлении в корзину у нас мини корзина сразу обновлялась дописал колбеки:
/* Добавление твоаров в корзине */
miniShop2.Callbacks.Cart.add.response.success = function(response) {
//console.log(response.data['total_num']);
miniShop2.Cart.totalNum = '.ms2_total_num';
$(miniShop2.Cart.totalNum).text(response.data['total_num']);
};
/* Изменение твоаров в корзине */
miniShop2.Callbacks.Cart.change.response.success = function(response) {
miniShop2.Cart.totalNum = '.ms2_total_num';
$(miniShop2.Cart.totalNum).text(response.data['total_num']);
};
3) Добавляем в чанк с мини корзиной плейсхолдер и класс.<span class="ms2_total_num">{$total_num}</span>
П.с. за наводку спасибо пользователю — Алексей [msOrderAnalytics] Отправляем заказы в Google Analytics
Небольшой пакет, позволяет слать данные заказов вместе с товарами в Электронную коммерцию Google Analytics. Написан по следам статьи о том, как слать данные в Google Analytics средствами PHP. За идею благодарим Алексея.
Отправляем данные заказа в Google Analytics (PHP)
Добрый день.
Чаще всего данные в GA отправляются через JS. По опыту это не лучший вариант и ну совсем не удобный.
Поэтому, при поступлении новой заявки решено было сделать через Measurement Protocol. Полезная информация есть, например, здесь (за что ребятам спасибо).
Набросал простой класс и снабдил его подробными комментариями, думаю кому-то пригодиться.
Использовать можно где угодно: в своём сниппите или в плагине на событие «msOnCreateOrder».
Пример использования:
Код: ga.class.php
Важно: у меня этот класс гораздо шире (особенности проекта), это усечённый вариант и я его особо не тестировал, но должен работать нормально.
UPD: Посмотрел на более свежую голову: исправил 1 ошибку + немного оптимизировал код. По ссылке — обновлённый файл.
Чаще всего данные в GA отправляются через JS. По опыту это не лучший вариант и ну совсем не удобный.
Поэтому, при поступлении новой заявки решено было сделать через Measurement Protocol. Полезная информация есть, например, здесь (за что ребятам спасибо).
Набросал простой класс и снабдил его подробными комментариями, думаю кому-то пригодиться.
Использовать можно где угодно: в своём сниппите или в плагине на событие «msOnCreateOrder».
Пример использования:
if(include_once($modx->getOption('core_path').'/ga.class.php')) {
$GA = new GA($modx,$orderID);
$GA->action();
}
Код: ga.class.php
Важно: у меня этот класс гораздо шире (особенности проекта), это усечённый вариант и я его особо не тестировал, но должен работать нормально.
UPD: Посмотрел на более свежую голову: исправил 1 ошибку + немного оптимизировал код. По ссылке — обновлённый файл.
Канал OpenModx
Прокачиваем навык программирования на Fenom
Информация для разработчиков. Сложность средняя.
Практически все разработчики MODX используют тот или иной шаблонизатор. Большинство в рунете сделали свой выбор в пользу Fenom. Благодаря Василию конечно. Этот шаблонизатор достаточно простой и лёгкий. И его функционала хватает для решения практически всех своих задач. В этой статье мы посмотрим на него немного под другим углом и попробуем его возможности расширения.
Практически все разработчики MODX используют тот или иной шаблонизатор. Большинство в рунете сделали свой выбор в пользу Fenom. Благодаря Василию конечно. Этот шаблонизатор достаточно простой и лёгкий. И его функционала хватает для решения практически всех своих задач. В этой статье мы посмотрим на него немного под другим углом и попробуем его возможности расширения.
[modHelpers] Контейнер, фильтрация данных, планшет
Новость для разработчиков. В библиотеку добавлено несколько новых функций:
- is_tablet()
- is_desktop()
- app()
- filter_data()
- null_if()