Всего 125 690 комментариев

Володя
18 апреля 2013, 18:54
0
эвона как))) и правда пашет)))
Юрий Эффа
18 апреля 2013, 18:45
0
Вот бы иметь под рукой полный список плейсхолдеров…
Василий Наумкин
18 апреля 2013, 18:10
0
msProduct — в данном случае и есть modResource.

Нужно всего лишь:
$q->select('`msProductFile`.`id`, `msProductFile`.`url`, `msProductFile`.`product_id`, `msProduct`.`pagetitle`');
Володя
18 апреля 2013, 17:30
0
if ($q->prepare() && $q->stmt->execute()) {
	while ($image = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
        $i = $image['product_id'];
        $res = $modx->getObject('modResource',$i);
        $title = $res->get('pagetitle');
		$output .= '<a href="'.$image['url'].'" rel="prettyPhoto['.$i.']" title="'.$title.'"></a>'."\n";
        
	}
вот таким образом получилось добавить title, но время обработки выросло раза в три...(
Василий Наумкин
18 апреля 2013, 11:30
0
Сам то как думаешь?

Давай уже, дальше сам.
Володя
18 апреля 2013, 10:48
0
Спасибо!!! наглость будет с моей стороны если я еще спрошу как вот такое добавить
title="'.$pagetitle['product_id'].'"
? )))
Василий Наумкин
18 апреля 2013, 09:38
0
Проверка на опубликованность и не удалённость:

$q->where(array('published' => 1, 'deleted' => 0));
Володя
18 апреля 2013, 09:02
0
Крутяк!)))
вот тут только поменял на 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";
        
	}
}
Осталось придумать как сделать проверку на опубликованность.
Спасибо!!!
Василий Наумкин
18 апреля 2013, 06:37
0
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, для лимиторавания по категориям, иначе будет выводить отовсюду.
Виталий Князь
18 апреля 2013, 01:46
0
Если заменить:
if (in_array($modx->resource->template, $tpls)) {
на
if ($modx->resource->template == $tpls)   {
и убрать условие:
if ($action == 'returnViewed')
то все работает, почему?
Володя
17 апреля 2013, 23:55
0
добрый вечер. написал вот такой снипет
<?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;
выводит все картинки из галереи товаров. Подскажите как мне задать выборку по категории товаров,
спасибо!
Сергей Щерба
17 апреля 2013, 22:56
0
Да, возможно не по феншую, но когда товаров 700 уже заполнено и надо внезапно поменять отображение товара для отдельно взятой подкатегории, то создавать шаблон для отдельной подкатегории товара и потом для каждого товара из этой подкатегории менять шаблон будет долго и нудно.
Сергей Щерба
17 апреля 2013, 22:54
0
Этот вариант подойдет если мало страниц. А если много, то другой вариант лучше.
Я вот так сделал:
<body class="[[getResourceField? &id=`[[UltimateParent]]` &field=`alias`]] [[*alias]]">
Для этого установил getResourceField и UltimateParent — Возвращает «самый верхний родительский документ» а
[[*alias]] для подкатегорий, и тогда если в магазине куча категорий и подкатегорий, то можно для них разные стили прописывать.
Александр Донский
17 апреля 2013, 22:40
0
и зачем тогда спрашивать, если можно было сразу заглянуть.
Василий Наумкин
17 апреля 2013, 21:36
0
Загляни в системные настройки.
Олег
17 апреля 2013, 21:13
0
Опережу вопросы типа «А сервер рабочий?»
Сервер рабочий, успешно крутится 2 экземпляра revo
Василий Наумкин
17 апреля 2013, 17:36
0
Там php-apc был включен — отключил.

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

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

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

Спасибо за помощь, Алексей!
Алексей
17 апреля 2013, 16:44
0
Если я правильно понял, то речь идет про комментарии :)

Вообще для такой цели надо использовать параметр thread, задав его в первом случае reviews-[[*id]], во втором questions-[[*id]], где [[*id]] — соответственно id ресурса.



Ну а вкладки организовать просто на javascript.
Иван
17 апреля 2013, 16:17
0
Василий, я решил свою проблему, но практически методом тыка, поглядывая на Ваш компонент weather.

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

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

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

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

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

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