Igor Ivanov

Igor Ivanov

С нами с 19 марта 2013; Место в рейтинге пользователей: #349

Облако тегов для miniShop2

UPDATE 20.03.2018: Сниппет обновлён на корректный и добавлен pdoTools для обработки чанка.

Появилась задача реализовать облако тегов для удобства поиска товаров в интернет-магазине. Для этого сделал простенький сниппет, где теги собираются со всех товаров на сайте.



Сниппет умеет принимать параметры базового размера(font), шага в пикселях(step), количества размеров(levels) и чанка для вывода(tpl).

Алгоритм работы прост:
1. Собираются теги со всех товаров сайта.
2. Подсчитывается количество товаров для каждого тега.
3. Рассчитываются размеры для каждого уровня и границы по количеству использования тега.
4. Если не указан шаблон вывода, то на экране также будет облако тегов, но без ссылок.
Евгений Шеронов
17 февраля 2016, 21:46
modx.pro
27
6 206
+9

Перенос фото товаров из TV в галерею miniShop2

Постановка задачи: был интернет магазин, где товары — обычные ресурсы, а изображения — TV поля (в моем примере 5 штук). Необходимо сделать товары типа msProduct, а изображения перенести в стандартную галерею miniShop2.

Небольшой скрипт, решающий вторую часть задачи, ниже. (первая часть задачи решается примерно так)

Что он делает? Скрипт берет все записи с типом msProduct, и копирует изображения из TV в галерею miniShop2.

Надеюсь кому-нибудь будет полезным (скрипт не 100% универсальный, подгоняйте под себя! и да, я запускаю его из Console, если у вас просто php файл, то необходимо сначала авторизоваться в админке через API).
Наумов Алексей
03 февраля 2016, 12:05
modx.pro
11
3 943
+5

Компонент modImporter. Настройка импорта на сайт.

Месяц назад мы обсуждали какие компоненты кому нужны. Тогда самым популярным запросом оказался импорт/экспорт минишоп-эксель. Задача эта конечно же не простая, тем не менее я готов сегодня представить первую версию компонента modImporter.

Компонент еще очень далек от конечной версии (хочется добавить в процессе гораздо больше ридеров (CSX, XLS (XLSX уже есть), просто файлы (для импорта статических сайтов) и прочее)). Но сам по себе общий механизм все-таки уже готов и пара кейсов у меня уже имеется. А всем прикупившим пакет я гарантирую свою личную помощь в первичной настройке.
Fi1osof
11 января 2016, 18:48
modx.pro
3
11 419
+8

[modPNotify] - сборщик PNotify для MODX

PNotify — плагин, предназначенный для красивых уведомлений.
В последнее время частенько его использую и для большего удобства собрал установщик в пакет.
Самих исходников в пакете нет, все скачивается и собирается во время установки пакета. Так же при установке доступен выбор необходимых модулей

таким образом всегда можно просто переустановить пакет и получить свежую версию PNotify.
Володя
08 января 2016, 20:05
modx.pro
8
4 965
+8

[customExtra] Создание кастомных объектов

Периодически мне приходится реализовывать на сайтах клиентов какой-то уникальный функционал. Часто требуется сохранять информацию в базу данных, выводить её оттуда, реализовывать возможность управления из админки. Раньше для этого приходилось писать кастомный компонент.

А значит, надо написать схему, сгенерировать модель, оформить интерфейс, написать процессоры и прочее, и прочее… Для начинающих разработчиков этот метод достаточно сложен. А мне, например, каждый раз та-а-ак лень это делать.

Недавно я все-таки решился собрать некий стандартный компонент, с большим количеством полей, которые можно использовать как угодно. Даже написал небольшую заметку о нем у себя в блоге и на какое-то время успокоился.

До тех пор, пока мне не понадобилось иметь два таких кастомных объекта…
Илья Уткин
22 декабря 2015, 01:21
modx.pro
19
7 484
+16

Отправка данных с формы на другой ресурс

Доброго времени суток! Срочно нужна помощь. Требуется, чтобы данные, введенные пользователем в форме на одном ресурсе, отправлялись на другой ресурс и там вызывались, а также одновременно — эти же данные отправлялись на email. С отправкой на email проблем не возникло, использую ajaxForm. Кто чем сможет — помогите!!!
Vladimir Kamenkov
18 декабря 2015, 05:39
modx.pro
2
1 307
0

[SkypeNotify] - уведомление в скайп для MODX

[SkypeNotify] — собственно уведомление в скайп для MODX.
подключить и инициализировать skypenotify
$skypenotify = $modx->getService('skypenotify')
$skypenotify->initialize();
подключить аккаунт скайп
$skypenotify->connect('login', 'password');
отправить сообщение
$skypenotify->sendMessage('login', 'Привет Боб, как дела?');
Володя
11 декабря 2015, 13:31
modx.pro
17
2 091
+11

pdoFetch поиск в TV-полях с разделителем ||

Наверняка много кто использовал в своей практике TV-поля типа «Список» (множественный, одиночный, не важно) или «Тег». Здесь важно именно то, в каком виде в базе данных хранятся данные таких полей, ведь они сохраняют множественные значения. А хранят они их одной общей строкой в той же самой таблице ТВшек (естественно, по одной записи на один документ). К примеру, если мы отметили три значения 100, 1005, 10, в БД это запишется 100||1005||10. И здесь возникает вопрос как потом выполнить поиск по таким полям? Простой LIKE здесь не поможет, так как LIKE %100%, к примеру, найдет и '100||1000' и '1001||1005'. Данного вопроса мы уже касались здесь и подобный вопрос опять возник здесь.
Fi1osof
06 декабря 2015, 10:14
modx.pro
37
6 358
+16

АнтиСео в MODX 2.4.0

Доброго времени суток, господа
Думаю не все в курсе (по крайней мере я не был) о том, что последние версии modx не корректно отрабатывают в связке в nginx ЧПУ (верней переадресацию при включении чпу).

В результате чего контент сайта целиком дублируется в глазах поисковика и вы уныло катитесь вниз в выдаче.
Приведу простой пример:
Ваш сайт доступен по ссылке */index.php?id=1 и /, */index.php?id=2 и по чпу документа с id 2 и т.д.

К сожалению на modhost установлен nginx и я совершенно случайно обнаружил этот факт.

Василий предложил использовать плагин

<?php
if ($modx->event->name == 'OnHandleRequest') {
	if (!empty($_GET['id'])) {
		$id = (int)$_GET['id'];
		if (!$modx->getCount('modResource', array('id' => $id, 'published' => 1, 'deleted' => 0))) {
			$id = $modx->getOption('error_page', null, $modx->getOption('site_start'));
		}
		$modx->sendRedirect($modx->makeUrl($id));
	}
}
На первый взгляд он закрывает эту дырку, но на практике получилось, что он ресолвит id и для страниц бэкенда, что убило его функционал.
Так же обратил внимание, что при включении этого плагина слетает выборка последних новостей (последние 3 дочерных документа у родителя по id).

Вот собственно вопрос:
как поставить проверку по содержанию /manager/ в url?
Почему может не работать pdoResources при включении этого плагина?
SaLacoste
03 декабря 2015, 22:39
modx.pro
11
7 057
+1

Упрощаем работу с TV

Продолжая тему, начатую Василием, предлагаю решение для упрощения работы с TV. Оно поможет тем, у кого логика сайта завязана на TV — запросы, фильтры и т.п.
Решается эта задача созданием полей в таблице ресурсов и копированием в них значений TV.
Сергей Шлоков
02 декабря 2015, 09:18
modx.pro
49
8 213
+7