Роман Воропаев (Volk) · 19 октября 2016, 10:20 Да, у меня точно так же, нужно просто перегенерировать превью. Кстати все возможные ключи для массива и их значения, чтоб было понятно, что можно получить, можете глянуть, добавив в чанк следующий код: {foreach $_pls as $key => $value} <p>{$key} => {$value}</p> {/foreach} Вопросы / Вывод thumb определенного размера на fenom 4 +1 2
Илья Уткин · 11 октября 2016, 15:08 У меня есть вот такой файлик, который позволяет большие числа переводить в 60-ричную систему для сокращения количества символов: <?php class SixtyCoder { public $table = '0123456789abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ'; public function to60($number = 0) { $number = (int) $number; $output = ''; return $this->divide($number); } public function from60($letters = '0') { $length = strlen($letters); $number = 0; for ($i = 0; $i < $length; $i++) { $pos = strpos($this->table, $letters[$i]); if ($pos === false) { return 0; } $pow = $length - ($i+1); $number = $number + $pos * pow (60, $pow); } return $number; } public function divide($number = 0, $letters = '') { if ($number < 60) { $letters = $this->getLetter($number) . $letters; } else { $rest = $number % 60; $letters = $this->getLetter($rest) . $letters; $number = ($number - $rest) / 60; $letters = $this->divide($number, $letters); } return $letters; } public function getLetter($number) { return substr($this->table, $number, 1); } } $coder = new SixtyCoder(); $time = time(); echo 'Long: ' . $time; $short = $coder->to60($time); echo ' Short: ' . $short; echo ' Long from short: ' . $coder->from60($short); Пошаговые инструкции / Короткие ссылки средствами modx 9 +3 2
Сергей Шлоков · 01 октября 2016, 10:11 Как-то так [[!pdoUsers? &tpl=`@INLINE <p>[[+username]] - [[+views]].</p>` &loadModels=`sitestatistics` &innerJoin=`{ "UserStat":{"class":"UserStatistics","on":"modUser.id=UserStat.uid"}, "PageStat":{"class":"PageStatistics","on":"UserStat.user_key=PageStat.user_key"} }` &select=`{ "PageStat": "IFNULL(SUM(PageStat.views),0) as views" }` &groupby=`UserStat.uid` &where=`["UserStat.uid = 1 AND PageStat.date BETWEEN '2016-01-01' and '2016-06-31' "]` ]]В параметре where указывается id пользователя и период. Новые дополнения и их версии / [siteStatistics] ip, referer и user-agent 34 +2 1
Василий Наумкин · 29 сентября 2016, 08:30 Просто форма с одним email, без пароля — вот так: <form action="" method="post"> <input type="hidden" name="action" value="auth/formLogin"/> <h4>Вход</h4> <div class="form-group"> <input type="email" name="email" placeholder="email"> </div> <button class="btn btn-success">Отправить</button> </form> Новые дополнения и их версии / Office 1.1.0 - улучшения авторизации 110 +1 1
Павел Романов · 27 сентября 2016, 16:41 Поправочка (всё-таки ошибся))): {var $av = $_pls['tv.aviable']} {if $av == 0} Нет в наличии {else} {if $av > 1 && $av < 10} <i class="fa fa-circle"></i> {else} {if $av >= 10 && $av < 30} <i class="fa fa-circle"></i> <i class="fa fa-circle"></i> {else} {if $av >= 30} <i class="fa fa-circle"></i> <i class="fa fa-circle"></i> <i class="fa fa-circle"></i> {/if} {/if} {/if} {/if} Вопросы / Вопрос о phx 4 +1 2
Сергей Шлоков · 23 сентября 2016, 13:25 Не так. Любые плейсхолдеры откладываются. По-умолчанию парсер делает 10 циклов. На первом цикле не нашел, отложил на второй цикл и т.д. А вот с фильтрами ситуация другая. Парсер на первом же цикле проверит его и вернет соответствующее значение из then или else. Вот почему в данном топике не работало. Так как на втором цикле этого плейсхолдера уже нет, вместо него значение «false». П.С. А кэшированные плейсхолдеры сработают только первый раз. Вопросы / Ошибка setPlaceholder 19 +1 1
Павел Гвоздь · 19 сентября 2016, 21:49 {$_modx->runSnippet('!pdoResources', [ 'parents' => $_modx->config.cities, 'sortby' => 'menuindex', 'sortdir' => 'ASC', 'limit' => 0, 'tpl' => '@INLINE <option {($id == ' ~ $from ~ ') ? \'selected="selected"\' : \'\'} value="{$id}">{$pagetitle}</option>', ])} Вопросы / Передать переменную в $_modx->runSnippet 3 +4 1
Николай · 16 сентября 2016, 14:07 Вот шаблон, которым я всегда пользуюсь. В первой строке количество dirname должно соответствовать вложенности файла. require dirname(dirname(dirname(__FILE__)))."/config.core.php"; if(!defined('MODX_CORE_PATH')) require_once '../../../config.core.php'; require_once MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php'; require_once MODX_CORE_PATH.'model/modx/modx.class.php'; $modx = new modX(); $modx->initialize('web');Далее можно писать код как в любом сниппете. Вопросы / Как добавить класс $modx в свой php файл? 5 0 1
Василий Наумкин · 14 сентября 2016, 08:24 При обычном вызове в where передаётся массив, закодированный в JSON. При вызове через Fenom кодировать его нет нужды: {$_modx->runSnippet('!pdoResources', [ 'parents' => 0, 'includeTVs' => 'test', 'where' => ["1 = 1 AND FIND_IN_SET("~$_modx->resource.id~", replace(test, '||', ','))"], 'showLog' => 1 ])} Вопросы / Запись на Fenom 3 +2 2
Василий Наумкин · 13 сентября 2016, 18:51 Более оптимальный код для добавления опции товара в поисковый индекс: <?php switch ($modx->event->name) { case 'mse2OnBeforeSearchIndex': $key = 'tags'; // имя опции товара $mSearch2->fields[$key] = 1; $q = $modx->newQuery('msProductOption', array( 'product_id' => $resource->id, 'key' => $key, )); $q->select('value'); if ($q->prepare() && $q->stmt->execute()) { $value = $q->stmt->fetchAll(PDO::FETCH_COLUMN); if (!empty($value[0])) { $resource->set($key, $value); } } break; } Новые дополнения и их версии / [mSearch2] 1.5.2 - произвольные слова в индексе 12 +2 2
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Для начала перейдем на Markdown, а дальше будет видно
MaxNotify3 Вышло обновление 1.3.0-pl (20.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет maxNotify3FormIt; — добавлены уведомления о заявках SendIt через hook-с...
Кстати все возможные ключи для массива и их значения, чтоб было понятно, что можно получить, можете глянуть, добавив в чанк следующий код:
В параметре where указывается id пользователя и период.
П.С. А кэшированные плейсхолдеры сработают только первый раз.
Далее можно писать код как в любом сниппете.