Максим

Максим

С нами с 24 июля 2014; Место в рейтинге пользователей: #255
Максим
27 июня 2016, 01:03
+1
Есть мнение, что проблема может быть в SQL_CALC_FOUND_ROWS.
Максим
19 ноября 2015, 16:08
-1
Не знал до сегодняшнего дня, а оказывается Василий придумал такой вот костыль с комментариями. Но работать этот костыль будет только если чанки обрабатывает pdoTools, а не парсер MODX. Вот и не работает, когда чанк в чанке.
Максим
19 ноября 2015, 15:09
0
Видимо я неправильно понял вопрос. Что должно выводиться?
Если
<span class="product__labels">[[+new]] [[+popular]] [[+favorite]]</span></p>
то все в порядке, оно и должно выводить
<span class="product__labels">1 0 0</span>
А если нужно с иконками в зависимости от значения [[+new]] и т.п., то надо или пользоваться модификаторами или параметром prepareSnippet или использовать fenom.

А идея плохая, потому что чем меньше работает родной парсер, тем лучше (:
Максим
19 ноября 2015, 14:52
0
Чанк в чанке это в самом деле плохая идея. А вообще можно попробовать сделать так:
[[$tpl.msProducts.row.my? &new=`[[+new]]`]]
Максим
16 ноября 2015, 13:35
1
+2
Поменяйте в словаре ключ ms2gallery_disabled_while_creating на что-нибудь нейтральное типа «Сохраните ресурс, чтобы добавить изображения в галерею», чтобы менеджеры не пугались.
Максим
07 октября 2015, 13:52
8
+2
Может быть кому-то пригодится простенький сниппет для вызова mFilter2, который дописывает в параметр filters имена назначенных для категории опций — эти опции выводятся в фильтре чекбоксами:
<?php
$catid = $modx->resource->id;
$q = $modx->newQuery('msCategoryOption');
$q->select(array(
    'msCategoryOption.category_id',
    'msCategoryOption.option_id',
    'mso.key'
    ));
$q->where(array(
    'msCategoryOption.category_id' => $catid
    )
    );
$q->leftJoin('msOption','mso','msCategoryOption.option_id = mso.id');
$q->prepare();
$q->stmt->execute();
$options = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
$_options = array();
foreach ($options as $option) {
    $_options[] = 'msoption|'.$option['key'];
}
$_options = implode(',',$_options);
$scriptProperties['filters'] = implode(',',array($scriptProperties['filters'],$_options));
return $modx->runSnippet('mFilter2',$scriptProperties);
Максим
21 сентября 2015, 12:12
0
Печаль будет: ): Такая привычка за более чем 15 лет сложилась, а почему так — уже не помню.
Максим
21 сентября 2015, 12:05
0
Да, так гораздо информативнее (:
Максим
20 сентября 2015, 23:42
0
Наверное минусуют, потому что не понятно в чем суть предложения. Предлагается администрировать, грубо говоря, серверы за 500 рублей с перспективой получить на этих серверах панель управления сайтами на MODX? Свой собственный modhost.pro то есть? (:
Максим
10 сентября 2015, 20:06
+3
Я не имел в виду, что готовые компоненты, пусть даже в большом количестве — зло (: Просто хвалебные статьи и уроки сводятся к тому, как легко натянуть верстку, но при этом из вида упускается, что делать сайт — это не только скачивать компоненты, расставлять тэги в шаблоне и нарезать чанки. Я когда начинал, то практически не знал PHP и толком не понимал, как работает MODX, однако те куски кода, которые я находил, очень легко встраивались в MODX через сниппеты и работали, это радовало и появлялся стимул изучать больше (: Писал ли кто-нибудь об этом в контексте «мой первый опыт в MODX» — не припомню.
Максим
10 сентября 2015, 18:16
+2
Просто кликаешь, добавляешь, вводишь и вуаля. Как LEGO собирать в режиме реального времени. Приятно.
Эта легкость на самом деле очень обманчива. Я не раз замечал, что новички испытывают, что ли, эйфорию, сделав первый сайт по каким-нибудь урокам. А потом возникают вопросы типа «нужно умножить 2 на 2, Василий, помоги» или конструкции "[[snippet? &param=`[[snippet &param=`[[snippet? &param=`[[snippet]]`]]` &param=`[[snippet]]`]]", а то и какие-то простыни из вложенных модификаторов. А как я часто переделываю или дорабатываю чужие сайты, так иногда просто руки опускаются от всего этого. Вроде и героем стали, и дракона победили, но только у победы какой-то странный запашок. Странно даже, что раньше периодически возникали темы «сделал сайт на Revo, тормозит, помогите», а сейчас что-то не видно.
Максим
03 сентября 2015, 22:57
0
Спасибо за такую быструю реализацию, действительно очень удобно стало писать мелкие сниппеты (: Вот еще одна идея — сделать запуск с параметрами: открывается окошко с текстовым полем в котором можно написать "&param=`value`" или даже "@parameters"; будет удобно возиться cо сниппетами из готовых компонентов (думаю, что уместно экранировать вывод результатов, чтобы была видна разметка).
Максим
01 сентября 2015, 01:47
+1
Было бы удобно еще и в сниппеты сохранять/загружать.
Максим
29 августа 2015, 12:41
+1
Есть небольшое замечание: «работа» здесь правильнее перевести как «job». Work — это более общее понятие, а job как раз подразумевает оплачиваемую работу.
Максим
23 августа 2015, 17:38
0
Единственное я скрыл поле с массивом json, наверное всё же нужно было оставить его для наглядности того, что оно есть?
Нет, такое поле точно лишнее (:
Максим
23 августа 2015, 07:40
+2
До галереи тут еще далеко, хотя задача «1 видео на странице» тоже имеет место быть. Выскажу свои соображения как разработчик двух видеогалерей для Evo (:

Не совсем понятно, зачем использовать два класса, которые решают одну и ту же задачу. Разница только в том, что videoThumb не умеет получать название, описание и другие характеристики видео, но зато он будет работать без ключа. А Panorama, как я помню, не понимал ссылки типа youtu.be, если не исправили уже, конечно.

«Не трогать! Заполняется автоматически» — лучше было бы не заполнять автоматически там, где заполнили вручную. Даже в примере пользователь, скорее всего, захочет убрать ссылку из описания. Если же данные запрашиваются и перезаписываются каждый раз при сохранении страницы, то это не очень хорошо.

А ссылку на embed нет смысла вообще показывать в админке, она необходима только при выводе. Вообще не представляю ситуацию, в которой пользователю нужна возможность менять это поле.
Максим
14 августа 2015, 21:47
0
и не совсем понятно, почему доп.параметры товара (размер, цвет) сделаны во время создания товара, а галерея и тд после
Потому что в галерее картинки привязаны к id ресурса, который известен только после сохранения.
Максим
14 августа 2015, 20:16
+1
Так там же дата и так timestamp? Или нужно что-то вроде:
SELECT DATE_FORMAT(FROM_UNIXTIME(`createdon`), '%e %b %Y') as createdon FROM modx_site_content
Максим
14 августа 2015, 19:46
0
Добавить в форму скрытый input name=«timestamp». Если менеджер открыл 2 вкладки, то будет два разных timestamp. Но у меня задача сохранять картинки в tv в папки типа assets/images/id.
С галереей такое делать нет никакой выгоды: создали документ — сохранили документ — залили картинки == создали документ — залили картинки — сохранили документ. Выигрыша по времени 0.