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

Андрей
18 апреля 2013, 22:02
0
minishop2-2.0.0-beta-1
Проверил обновления — говорит что у меня последняя версия. А связи товаров все равно нет
Василий Наумкин
18 апреля 2013, 21:59
0
Версия какая?

Вроде давно добавлено.
Володя
18 апреля 2013, 20:02
0
да я уже понял что это мощная штука! Потихоньку разбираюсь с modx и со всем остальным… Третий месяц уже как засосало… интересно же)))
я все еще думаю как и куда условие проверки воткнуть, которое ты утром подсказал)))
P.s. не подсказывай!)
Василий Наумкин
18 апреля 2013, 19:56
0
Да, Вова, учи SQL.
Василий Наумкин
18 апреля 2013, 19:55
0
В miniShop такого нет.

Это кто-то уже дополнительно написал.
Володя
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
и зачем тогда спрашивать, если можно было сразу заглянуть.