Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
01 марта 2015, 17:14
0
Без правки исходников — никак.

Гости и авторы тикетов видят рейтинги, а авторизованные юзеры — нет, чтобы голосовать непредвзято.
Василий Наумкин
01 марта 2015, 12:35
0
Да, зловредный код может быть в сниппетах — они в БД.
Василий Наумкин
28 февраля 2015, 15:15
1
0
Это потому, что там еще дофига условий присоединяется. Нужно включать showLog и смотреть в запрос.

Вот так работает — условия во вложенном массиве, поэтому берутся в скобки:
[[!pdoMenu?
	&parents=`0`
	&level=`1`
	&context=`en`
	&where=`[{"template":1,"OR:template:=":2}]`
	&showLog=`1`
]]

Выходит такое условие выборки:
WHERE  (  ( `modResource`.`template` = 1 OR `modResource`.`template` = 2 )  AND  ( `modResource`.`parent` IN (0) OR `modResource`.`id` IN (0) )  AND `modResource`.`published` = 1 AND `modResource`.`hidemenu` = 0 AND `modResource`.`deleted` = 0 AND `modResource`.`context_key` = 'web' ) 

Не стесняйтесь использовать &showLog.
Василий Наумкин
28 февраля 2015, 14:48
0
Почему LIKE то? По шаблону то нужно точное совпадение.

Вот так должно работать без проблем:
&where=`{"template":16,"OR:template:=":13}`
Василий Наумкин
28 февраля 2015, 13:37
0
Если работает — то правильно.

Но мне больше нравится расширять классы магазина.
Василий Наумкин
28 февраля 2015, 12:51
0
Без ошибок в логе сайта или админки можно только гадать.

Я о таком глюке MS2 с пропадающими товарами в категории не слышал. Если пропали — где-то что-то сломалось Нужно искать, где именно, для этого логи и нужны.

Если ошибок нет — значит они подавляются.
Василий Наумкин
28 февраля 2015, 12:44
0
Ну всё, пипец, эпидемия.

Раз ошибок нет — помочь нечем.
Василий Наумкин
28 февраля 2015, 12:43
0
А, ну да. Для INLINE чанков нужен pdoTools, а я там забыл его использовать.

Вот так работает:
return $found
	? $pdo->getChunk($tplIn1, $found)
	: $pdo->getChunk($tplOut1);
Василий Наумкин
28 февраля 2015, 12:32
0
А вообще, в буквах?

У тебя в начале сниппета определяются $tplIn и tplOut. Откуда ты взял $tplIn1 и $tplOut1?

Давай уже повнимательнее, тут кода на 10 строк, а вопросов на неделю.
Василий Наумкин
28 февраля 2015, 12:29
0
Ну ты хоть логи с ошибками покажи, у меня телепатическая сила иссякла уже.
Василий Наумкин
28 февраля 2015, 12:01
0
Давай, проведи аудит кода — github.com/bezumkin/miniShop2
Василий Наумкин
28 февраля 2015, 11:56
0
if ($value['id'] == $idd) {
Должно быть
if ($product['id'] == $idd) {
Я же говорю — не проверял на опечатки.

$modx->getChunk('tplIn1', 'found')
Ты разницу между переменными $tplIn $found и строками 'tplIn' и 'found' вообще не понимаешь?
Василий Наумкин
28 февраля 2015, 08:07
0
Проблема сейчас в том, что файлы от чистой установки сайта, а БД от рабочего сайта.
В БД находятся всякие сниппеты, плагины, настройки и даже подключение моделей сторонних дополнений, таких как Articles, Tickets и т.п.

Конечно, если не установить эти файлы на сайт, то админка нормально работать не будет. Нужно смотреть в логи ошибок и доустанавливать, что просят.
Василий Наумкин
28 февраля 2015, 07:55
0
Нужно работать напрямую с таблицами Gallery, чтобы выбирать картинки списком, без посредников.

pdoResources умеет присоединять любые таблицы. Попробуй разобраться на этих примерах с ms2Gallery.
Василий Наумкин
28 февраля 2015, 07:48
0
Оказалось, что значение seminarDatestart хранится в базе строкой вида 2015-02-20 23:31:00.

Что за бред?! Зачем вообще хранить в базе дату в виде отличном от timestamp — строку ни отсортировать, ни отфильтровать нормально не получится?! Если я в этом не прав, приведите примеры почему.
Это формат называется, как ни странно, datetime.

Он отлично сортируется и в начальном варианте твой сниппет NowTime должен был просто делать так:
<?php
return date('Y-m-d H:i:s', time());

Ну а в pdoResources его нужно вызывать вот так:
[[!pdoResources?
	&parents=`7`
	&tpl=`tpl.seminar`
	&sortby=`seminarDatestart`
	&sortdir=`ASC`
	&depth=`3`
	&limit=`0`
	&hideContainers=`1`
	&includeTVs=`seminarDatestart,seminarDateend,seminarCity`
	&where=`{"seminarDatestart:>":"[[NowTime]]"}`
]]
Обрати внимание, что в условии seminarDatestart:>, то есть дата больше, а сам pdoResources должен быть некэшрованным, потому что текущее время непостоянно.

Вот и всё, вопрос решен.

Свой велосипед, понятно, всегда приятнее и лучше, но уж что даты сортируются — нужно знать. В последней версии pdoTools даже появился параметр &sortbyTVType с вариантами decimal, integer, string и datetime.
Василий Наумкин
27 февраля 2015, 16:40
0
Вот здесь ошибка
$found != false 
    ?   $result = $modx->getChunk('tplIn', 'found')
    :	$result = $modx->getChunk('tplOut');
Ты передаёшь строку 'found', а я передавал переменную $found. Это позволило бы использовать в чанке данные о товаре из корзины: количество и цену.

Соотвественно мне непонятно, зачем у тебя
$found = $value['id'];
когда в $found должен быть просто не false — так уж лучше в него записать true.

В общем, если не хочешь в чанке использовать данные корзины, то убери вообще 'found', потому что строку вторым параметром метод pdoTools::getChunk() не ожидает — это ошибка.

Если же хочешь — то перепиши как у меня в примере, чтобы на кнопке можно было вывести «Оформить 5 этих товаров на сумму 300 руб»
Василий Наумкин
27 февраля 2015, 13:38
0
Как только этот кто-то переведёт всю доступную информацию на английский — сразу разместим.

Про наши разработки многие знают или слышали, но языковой барьер мешает их как следует использовать.
Если планируешь собирать деньги с западной аудитории — сразу готовься отчитываться перед ней на её родном языке и отвечать на все вопросы.

Есть желающие взвалить на себя этот труд на постоянной основе, бесплатно? Нет? Ну вот и ладушки.
Василий Наумкин
26 февраля 2015, 16:43
0
Ну тогда отредактируй create.class.php.

Блин, варианта всего 2 — изменить что есть, или приспособиться к тому, что есть. Выбирай, как тебе «проще».
Василий Наумкин
26 февраля 2015, 16:05
0
А нет способа чуть «проще»?
Ну а здесь то что сложного?
Василий Наумкин
26 февраля 2015, 13:50
0
но так как эти файлы уже находятся в папке "/0/", то Tickets их не примет, ведь так?
Прочитай заметку по ссылке, я же на для красоты её дал.

Цитата:
Сразу после загрузки файлам присваивается пользователь-владелец и нулевой документ-родитель. Пока вы не сохраните тикет вместе с загруженным файлом — он считается новым и показывается вам в окошке создания и редактирования тикета.
То есть, ничего повторно грузить не нужно.

Как-то можно узнать, что эти файлы в папке "/0/" уже не используются и их пора удалить? Кроме того, что можно чистить папку от файлов загруженных раньше суток.
Пойти и спросить у их хозяина, собирается ли он их использовать, или можно удалять?