Денис Богдановский

Денис Богдановский

С нами с 24 февраля 2013; Место в рейтинге пользователей: #245
Андрей
06 февраля 2018, 16:40
3
+3
{'pdoResources' | snippet : ['class' => 'msDelivery', 'sortby' => 'id','where' => 'active = 1','tpl'=>'']}

Пустой tpl отдаст массив с доступными плейсхолдерами, там уже оформляйте как нужно. Со способами оплаты не пробовал, но думаю что по аналогии, указать class — msPayment.
Сергей Фещуков
04 марта 2016, 06:02
3
0
Для товаров miniShop2 упрощённый вариант плагина:
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;
$resource->set('article', substr($resource->get('alias'),0,2).'-'.$resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Максим Кузнецов
29 ноября 2015, 14:47
1
+2
Если вы выводите структуру при помощи pdoMenu, то в вашем распоряжении есть параметры шаблонов, которые позволяют кастомизировать меню на нужном уровне — например &tplCategoryFolder.

Количество комментариев в нужном разделе:
[[!TicketCommentsCount:default=`0`? &id=`[[+id]]`]]

Количество записей:
— пишем сниппет, например CatalogItemsCount:
<?php
	if (empty($parent)) {
		return;
	}

	$pids = array_merge(array($parent), $modx->getChildIds($parent));
	$ids = array();

	$q = $modx->newQuery('modResource');
	$q->where(array('parent:IN' => $pids,'published' => 1,'deleted' => 0));
	//здесь можно переписать на простое получение count-запроса, но оставил так на случай, если потребуется использовать где-то список id потомков
	$q->select('`modResource`.`id`');
	if ($q->prepare() && $q->stmt->execute()) {
		$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
		return count($ids);
	}
	else {
		return '0';
	}

— вызываем в нужном месте
[[!CatalogItemsCount? &parent=`[[+id]]`]]
Алексей Карташов
11 сентября 2014, 16:17
1
+1
Не всегда подход
прямые руки + голова + уникальный контент
даёт нужные результаты.
Ты смотришь с позиции 2х сайтов (modx.pro и bezumkin.ru), которые дефакто являются сообществами, у которых, по большому счёту, нет конкурентов.
Поэтому modx.pro (а до этого bezumkin.ru)
стал самым посещаемым сообществом по MODX в СНГ.
А если взять ВК-тематику (в которой счёт сайтов-конкурентов идёт на сотни и тысячи), а у первой сотни конкурентов, которые входят в топы по всем нужным запросам из данной тематики, тоже есть данный набор характеристик:
прямые руки + голова + уникальный контент
, то всё становится гораздо, гораздо сложнее.
И это не ситуация в вакууме, а вполне себе рабочая обстановка для опытного оптимизатора.

Не поймите меня не правильно.
Подход — «прямые руки + голова + уникальный контент» — должен быть стандартом (просто многие даже этого не делают, а хотят маны небесной). И если это работает и даёт результаты — то не нужно всё усложнять и лезть в дебри. Что, в принципе, ты со своей позиции и выбираешь. И это нормально.

Но бывают же ситуации сложнее.
И вот когда этих трёх составляющих недостаточно и полоток довольно ощутимо бьёт по затылку, то нужно включать в этот список другие компоненты.

Т.е. смысл в том, что у поисковых систем есть сотни параметров, по которым они оценивают сайты (думаю все это знают).
И когда твой сайт по, допустим, 25 параметрам, обходит конкурентов на голову, то этого достаточно. Смысла напрягаться действительно нет.
А если конкуренты по 65 параметрам выше тебя на голову, то тут уже надо работать и над этими 65, чтобы их догнать, и ещё над десятком, чтобы их обогнать.
Всё это утрировано, конечно, но от сути не далеко.
Т.е. тяжелую артиллерию нужно включать тогда, когда она действительно нужна. Нет смысла стрелять из пушки по воробьям.

Просто люди подменяют понятия, по незнанию. Люди думают, что seo — это накрутка и это нечестно.
Но seo бывает разным — бывает накрутка (закупка ссылок, сетки сателлитов), а бывают вполне себе честные методы, которые (внимание!) являются рекомендациями самих поисковиков — гугла и яндекса. И вот это уже лично я называю не seo, а оптимизацией. И это не шаманство, вычитанное на блогах 5летней давности. Здесь и рекомендации самих поисковиков, и математические обоснования и формулы, и эксперименты, и личный опыт. И это исключительно работа над сайтом и его структурой, которая приносит вполне ощутимые плоды.

Меня всегда умиляли люди, которые говорят фразы типа «seo головного мозга». Понятное дело, что человек совершенно не разбирается в вопросе. Я вот финансовые рынки не знаю (хотя очень хочу), но это же не значит, что на профильных и смежных форумах в обсуждениях надо писать «аналитик головного мозга», правильно?
Те, кто говорит фразы «seo головного мозга», — статистически просто работяги (как сейчас модно говорить — «слесари от IT»). А те, кто воспринимает seo как инструмент маркетинга, — зарабатывают деньги, а часто и не малые. Вот и вся разница.

p.s. прошу простить, если задел чьи-то чувства. Цель моя проста — чтобы люди смотрели на вещи объективно. Вот и всё.
Василий Наумкин
27 мая 2013, 06:37
2
0
Оттого, что vendor в таблице msProductData — это и есть число.

Если хочешь выводить имена производителей — есть 2 способа.
Первый, побыстрее: нужно создать дополнительное поле (или ТВ параметр) и сохранять туда плагином это имя. Ну а потом фильтровать по этому полю.

Второй, погибче: выбирать и выдавать данные собственным сниппетом. Его нужно указать параметру через двоеточие, вот так:
&includeMSList=`vendor:extra_filter_vendor`

Вот кож сниппет extra_filter_vendor, для вывода производителей товаров:
$ids = $scriptProperties['ids'];
$param = $scriptProperties['param'];
if (empty($ids) || empty($param)) {return false;}

$q = $modx->newQuery('msVendor');
$q->leftJoin('msProductData', 'Data', 'Data.vendor = msVendor.id');
$q->select('Data.id,msVendor.name');
$q->where(array('Data.id:IN' => $ids));

if ($q->prepare() && $q->stmt->execute()) {
	$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
	$arr = array(
		'name' => 'Производитель'
		,'type' => 'text'
		,'values' => array()
	);
	foreach ($res as $v) {
		$arr['values'][$v['name']][] = $v['id'];
	}
	return json_encode($arr);
}

Таким образом можно выдать любую информацию в фильтр.