Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 145 комментариев

Володя
Володя
Крутяк!)))
вот тут только поменял на id категории, вроде работает, только незнаю правильно это или нет
$q->select('`msProductFile`.`id`, `msProductFile`.`url`, `msProductFile`.`product_id`');
if (!empty($parents)) {
	$q->where(array('`msProduct`.`parent`:IN' => $parents));
}
if ($q->prepare() && $q->stmt->execute()) {
	while ($image = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
        
		$output .= '<a href="'.$image['url'].'" rel="prettyPhoto['.$image['product_id'].']"></a>'."\n";
        
	}
}
Осталось придумать как сделать проверку на опубликованность.
Спасибо!!!
Василий Наумкин
Василий Наумкин
getCollection при выборе 100 записей работает медленнее в 1000 раз, чем выборка напрямую из таблиц.

Лучше так:
if (!empty($parents) && $parents > 0) {
	if (empty($depth)) {$depth = 10;}
	$pids = array_map('trim', explode(',', $parents));
	$parents = $pids;
	foreach ($pids as $v) {
		if (!is_numeric($v)) {continue;}
		$parents = array_merge($parents, $modx->getChildIds($v, $depth));
	}
}

$output = null;

$q = $modx->newQuery('msProductFile', array('type' => 'image', 'parent' => 0));
$q->innerJoin('msProduct', 'msProduct', '`msProductFile`.`product_id` = `msProduct`.`id`');
$q->select('`msProductFile`.`id`, `msProductFile`.`url`');
if (!empty($parents)) {
	$q->where(array('`msProduct`.`parent`:IN' => $parents));
}
if ($q->prepare() && $q->stmt->execute()) {
	while ($image = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		$output .= '<a href="'.$image['url'].'" rel="prettyPhoto['.$image['id'].']"></a>'."\n";
	}
}

return $output;
Нужно указывать параметр parents, для лимиторавания по категориям, иначе будет выводить отовсюду.
Володя
Володя
добрый вечер. написал вот такой снипет
<?php
$properties = implode("-", $scriptProperties);
$cache_key = "gallery".$properties;
$output = $modx->cacheManager->get($cache_key);

if ($output) return $output;
$images = $modx->getCollection('msProductFile', array('type' => 'image', 'parent' => 0));
foreach ($images as $image) {
    //print_r($image->get('url'));
    //print_r($image->get('product_id'));
    $url = $image->get('url');
    $id = $image->get('product_id');
     $output .= $before.'<a href="'.$url.'" rel="prettyPhoto['.$id.']"></a>'.$after."\n";
    }
$modx->cacheManager->set($cache_key,$output);
return $output;
выводит все картинки из галереи товаров. Подскажите как мне задать выборку по категории товаров,
спасибо!
Сергей Щерба
Сергей Щерба
Да, возможно не по феншую, но когда товаров 700 уже заполнено и надо внезапно поменять отображение товара для отдельно взятой подкатегории, то создавать шаблон для отдельной подкатегории товара и потом для каждого товара из этой подкатегории менять шаблон будет долго и нудно.
Сергей Щерба
Сергей Щерба
Этот вариант подойдет если мало страниц. А если много, то другой вариант лучше.
Я вот так сделал:
<body class="[[getResourceField? &id=`[[UltimateParent]]` &field=`alias`]] [[*alias]]">
Для этого установил getResourceField и UltimateParent — Возвращает «самый верхний родительский документ» а
[[*alias]] для подкатегорий, и тогда если в магазине куча категорий и подкатегорий, то можно для них разные стили прописывать.
Василий Наумкин
Василий Наумкин
Там php-apc был включен — отключил.

Вообще, я не пробовал, но по идее должны работать несколько вызовов. Только придётся переписать javascript фронтенда, ибо сейчас всё завязано на id элементов.

В закрытой, пока, бета-версии 1.0.0 есть возможность подключать свои скрипты из произвольного файла без всяких ухищрений.
Виталий Князь
Виталий Князь
[[!TicketComments? &thread=`comments-[[*id]]`]]
[[!TicketComments? &thread=`reviews-[[*id]]`]]
Ветки в панели управления создаются, но при нажатии на кнопку «Отправить» появляется сообщение: «Комментарий не может быть пустым».

Странно, так Tickets ведет себя на s2823.modx-test.com даже без указания собственного &thread.
Попытаюсь немного позже на другом хостинге.

Спасибо за помощь, Алексей!
Алексей
Алексей
Иван
Иван
Василий, я решил свою проблему, но практически методом тыка, поглядывая на Ваш компонент weather.

В самом начале после работы генератора xml-схемы я получал:

(modx_lead_service — это название моей таблицы)

1. Саму xml-ку.
2. файл service.class.php — с классом Service
+то, что в папке mysql

И я писал свой код прямо в этот класс Service…

В итоге я создал новый файл my.class.php, в нем создал class My, воткнул в него такой же конструктор…
В сниппете делаю getService() для класса My… и — все работает! методы из класса My с newQuery('Service') — пожалуйста, сколько угодно…

Я понимаю, что Вы наверняка занятой человек, а мой вопрос может показаться слегка туповатым… но, если найдете минутку, то я попросил бы Вас объяснить, почему именно так… или подсказать, в какую сторону подумать… Потому что хочется придти к какому-то более фундаментальному понимаю…