Dmytro Bochkov

Dmytro Bochkov

С нами с 12 апреля 2019; Место в рейтинге пользователей: #2575

Как сделать оглавление страниц сгенерированных при помощи pdoPage из полей MIGX?

Привет всем!
Есть ресурс. У ресурса есть дополнительное поле «chapter» с типом MIGX в строках которого храню:
  • заголовок (field: set);
  • картинку (field: image);
  • длинный текст (field: description).
Моя задача: вывести значения строк полей MIGX постранично и сделать навигацию по страницам в виде списка (аля оглавление).

Делаю вывод полей MIGX при помощи pdoPage таким образом, чтобы на одной странице были значения одной строки поля MIGX (limit=1).
Dmytro Bochkov
15 мая 2019, 15:39
modx.pro
659
0

Как подружить PageBreaker и makeContents для автоматической генерации оглавлений?

Всем привет.
Есть такой плагин для разбивки длинных текстов на виртуальные страницы — PageBreaker.
А еще есть сниппет для автоматической генерации оглавлений — makeContents.
Dmytro Bochkov
14 мая 2019, 13:33
modx.pro
474
0

Не работает плагин PageBreaker

Всем привет. Прошу помочь.
Установил плагин PageBreaker. При этом в редакторе TinyMCE не появляются кнопки добавления разделителей. При ручной вставке разделителя ссылки не генерируются (разделитель просто выводится в составе контента на страницу).
Версия MODX 2.7.1.pl
Версия TinyMCE последняя 4.3.4-pl
Помогите умной мыслёй кто сможет: куда бежать, куда смотреть? От проблемы с этим плагином весь проект под угрозой(
Dmytro Bochkov
13 мая 2019, 16:24
modx.pro
454
0

Вывод списка мультикатегорий в пределах нужного "родителя"

Привет друзья.
Прошу помочь советом.
Имеем:
MS2
Созданы категории и подкатегории:
Категория товаров 1
— Подкатегория 1.1
— Подкатегория 1.2
Категория товаров 2
— Подкатегория 2.
1

В "Подкатегории 1.1" есть товары, которым присвоены мультикатегории — "Подкатегория 1.2", "Подкатегория 2.1".

Вопрос: как вывести для указанного товара список мультикатегорий (включая родительскую категорию) ограничив его родителем "Категория товаров 1 "??

Полный список всех мультикатегорий я вывел сниппетом авторства Василия Наумкина, но при выводе захватываются и мультикатегории, родителем которого является "Категория товаров 2", а как модернизировать сниппет ограничив вывод категорией "Категория товаров 1" я не могу понять.
Вот сам сниппет:
<?php
if (empty($rid)) {$rid = $modx->resource->id;}
if (empty($pid)) {$pid = $modx->resource->parent;}
if (empty($delimeter)) {$delimeter = ', ';}
$scheme = $modx->getOption('link_tag_scheme', null, 'full', true); 

$q = $modx->newQuery('msCategory');
$q->leftJoin('msCategoryMember', 'msCategoryMember', array(
	'`msCategory`.`id` = `msCategoryMember`.`category_id`'
));
$q->sortby('pagetitle','ASC');
$q->groupby('id');
$q->select(array('id','pagetitle'));
$q->where('`msCategoryMember`.`product_id` = '.$rid.' OR `id` = '.$pid);

$result = array();
if ($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		$url = $modx->makeUrl($row['id'], '', '', $scheme);
		$result[] = '<a href="'.$url.'">'.$row['pagetitle'].'</a>';
	}
}
return implode($delimeter, $result);

Частично решил вопрос применением вот этого сниппета:
<?php
$id = $modx->resource->id;
$parentID = $modx->resource->parent;
$tpl = '@INLINE <a href="[[~[[+id]]]]">[[+pagetitle]]</a>';
$pdo = $modx->getService('pdoFetch');
$options = array(
	'innerJoin' => array(
		'msCategory' => array('on' => 'msCategoryMember.category_id = msCategory.id')),
	'select' => array('msCategory' => 'all'),
	'sortby' => 'msCategory.id');
$conditions = array('product_id' => $id, 'msCategory.template' => 4,);
$rows = $pdo->getCollection('msCategoryMember', $conditions, $options);
$output = '';
foreach ($rows as $row) {
	$output .= $pdo->getChunk($tpl, $row);}
return $output;
В этом сниппете можно указать шаблон (в $conditions), который должны иметь мультикатегории для их вывода. Мне такое решение подходит, но этот сниппет не выводит родительскую категорию.
Как можно добавить вывод родителя в этот сниппет?
Dmytro Bochkov
09 мая 2019, 21:22
modx.pro
607
0