Константин Обухов

Константин Обухов

С нами с 03 марта 2016; Место в рейтинге пользователей: #333

mixedImage - custom TV

mixedImage — modx custom TV

Версия 2.0:



— Изменен внешний вид

— Добавлены новые возможности:

Возможность руками вписать путь к файлу
Новая настройка при создании TV: Удаление файла, если выставлено «Да», то при очистке поля файл физически удаляется с сервера
Открывает сразу папку указаную в настройках TV (от корня источника файлов)

— Поправлено несколько небольших багов:

работа системной настройки «Загружать только при редактировании»
опечатки в лексиконах
правильный текст ошибок
ошибка транслитерации если файл уже существует

_______________________________ _________________________________

Добавлена опция для ресайза загружаемого изображения

Добавляет новый тип TV поля: Смешанная загрузка файла/Mixed Image Input




Является сместью FastUploadTV и стандартной загрузки файлов, часть кода взята из FastUploadTV
Евгений Webinmd
15 марта 2018, 12:09
modx.pro
8
14 025
+13

Работа с MODX из IDE без админки

Привет друзья!

Прямо сейчас проходит MODXpo 2017 и я хочу поделиться с вами своим, только что показанным, докладом.
Идея в том, чтобы разрабатывать сайты без логина в админку, прямо из PhpStorm.



Я предлагаю делать это через свой пакет, который установит нужные ресурсы, настройки, шаблоны и вообще что угодно. Это не для разработки дополнений, это для разработки сайтов.
Василий Наумкин
11 ноября 2017, 12:15
modx.pro
71
8 788
+30

modHelpers 3.0. Обработка запросов, контексты

Всем привет! Сегодня выпустил новую версию библиотеки modHelpers. Вот основные изменения:
  • Добавлено пространство имен для всех классов.
  • Добавлена функция request().
  • Добавлена функция switch_context().
  • В класс Object добавлен метод «object».
  • В класс Object добавлен метод «parent».
  • В класс Query добавлен метод «first».
  • В класс Query добавлен метод «toString».
Звучит суховато. Давайте разберёмся поподробнее.
Сергей Шлоков
27 сентября 2017, 17:33
modx.pro
5
1 428
+18

Эмулятор посредников для MODX

Всем привет! Хочу представить вам моё новое дополнение под названием Middlewares. Это эмулятор посредников. Как вы знаете MODX построена по концепции событийно-ориентированного программирования. Т.е. взаимодействие с системой происходит по наступлению события. Но большинство современных фреймворков используют механизм посредников. Да и разработчики MODX добавили этот функционал в 3-ю версию. Но увидим ли мы её когда-нибудь, вопрос.
Сергей Шлоков
09 сентября 2017, 14:39
modx.pro
8
2 459
+18

Minishop2 количество товаров в корзине

Доброго времени дня!
Необходимо вывести в мини корзине количество товаров (кол-во строк в корзине).
Как вывести на странице разобрался:
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_num

2) Что бы при добавлении в корзину у нас мини корзина сразу обновлялась дописал колбеки:
/* Добавление твоаров в корзине */
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>
П.с. за наводку спасибо пользователю — Алексей
Руслан Сафин
04 сентября 2017, 14:06
modx.pro
6
7 587
0

[msOrderAnalytics] Отправляем заказы в Google Analytics


Небольшой пакет, позволяет слать данные заказов вместе с товарами в Электронную коммерцию Google Analytics. Написан по следам статьи о том, как слать данные в Google Analytics средствами PHP. За идею благодарим Алексея.
Павел Гвоздь
31 августа 2017, 18:58
modx.pro
2
3 019
+9

Отправляем данные заказа в Google Analytics (PHP)

Добрый день.

Чаще всего данные в 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 ошибку + немного оптимизировал код. По ссылке — обновлённый файл.
Алексей Шумаев
31 августа 2017, 08:55
modx.pro
5
4 375
+6

Канал OpenModx

Всем привет!

В сети есть достаточно много уроков по MODX Revolution, но кроме Василия и Николая никто углубленно про MODX не рассказывал.
Теперь все изменилось, и уже достаточно продолжительное время Артем Зернов трудится над созданием уроков по MODX Revolution.


Михаил
30 августа 2017, 05:23
modx.pro
8
2 859
+19

Прокачиваем навык программирования на Fenom

Информация для разработчиков. Сложность средняя.
Практически все разработчики MODX используют тот или иной шаблонизатор. Большинство в рунете сделали свой выбор в пользу Fenom. Благодаря Василию конечно. Этот шаблонизатор достаточно простой и лёгкий. И его функционала хватает для решения практически всех своих задач. В этой статье мы посмотрим на него немного под другим углом и попробуем его возможности расширения.
Сергей Шлоков
25 августа 2017, 07:32
modx.pro
43
5 047
+24

[modHelpers] Контейнер, фильтрация данных, планшет

Новость для разработчиков. В библиотеку добавлено несколько новых функций:
  • is_tablet()
  • is_desktop()
  • app()
  • filter_data()
  • null_if()
И ещё немного доработана функция pls() для работы с плейсхолдерами и logout().
Сергей Шлоков
22 августа 2017, 14:03
modx.pro
5
1 232
+12