kgb3000

kgb3000

С нами с 30 октября 2016; Место в рейтинге пользователей: #821

Вывод списка категорий для товаров через сниппет сильно тормозит сайт

Имеется база товаров, входящие в различные категории
Необходимо вывести список товаров с категориями (основной и дополнительными)

Всего примерно 50 категорий. У товара назначены от 1 до 3 категорий
Вывод 18 карточек товаров на странице с выводом категорий занимает 12секунд, при отключении сниппета 1с

Помогите привести сниппет в божеский вид или может есть другой вариант вывода?

Код Сниппета mscat.php
<?php
if (empty($limit)) {$limit = 10;}
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);
$count = 1;
$result = array();

if ($q->prepare() && $q->stmt->execute()) {
    while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
    	if ($count <= $limit){
        $url = $modx->makeUrl($row['id'], '', '', $scheme);
        $result[] = '<a href="'.$url.'">'.$row['pagetitle'].'</a>';
        $count++;
    	}
    }
}
return implode($delimeter, $result);
В чанке карточки товара вызываю сниппет:
{$_modx->runSnippet("@FILE snippets/mscat.php", [
				'rid' => $id,
				'pid' => $parent,
				'delimeter' => ' / '
			])}
kgb3000
18 октября 2021, 01:35
modx.pro
596
0

Подключение к базе данных из сниппета

Первый раз пытаюсь самостоятельно обратиться к базе данных через сниппет.

$result = dbquery('SELECT name FROM test_table WHERE id="1"');
	if (dbrows($result) != '') {
		$data = dbarray($result);
		$name =$data['name'];
		echo $name;
	}

Выдает ошибку

Fatal error: Call to undefined function dbquery() in /home/адрес сайта/core/cache/includes/elements/modsnippet/51.include.cache.php on line 2
kgb3000
04 ноября 2016, 08:43
modx.pro
1
2 833
0

pdoCrumbs - Выделить Родителя

Возникла сложность с решением следующей задачи.
Необходимо создать хлебные крошки с выделением Родителя, а не текущего документа.
Home не должен отображаться

В конечном результате необходимо получить:

<h1> Родитель1 <span> >  дочь1  >  дочь2  >  текущий документ </span></h1>
как расставить span ума не приложу

[[pdoCrumbs?
&showHome=`0`
&tpl=`@INLINE [[+menutitle]]`
&tplCurrent=`@INLINE [[+menutitle]]`
&outputSeparator =`> `
&tplWrapper=`@INLINE <h1>[[+output]]</h1>`
]]
kgb3000
30 октября 2016, 12:05
modx.pro
863
0