06 сентября 2020, 18:13 А так? $sortdir == 'ASC' ? $order = SORT_ASC : $order = SORT_DESC; array_multisort($sort_array, $order, $arry_all); Вопросы / pdoPage не разбивает по страницам 12 +1
06 сентября 2020, 16:48 Ну вот как пример: <?php $array = array( 'item1' => array('name' => 'Борис', 'lastname' => 'Гришин', 'age' => 1980), 'item2' => array('name' => 'Василий', 'lastname' => 'Васильев', 'age' => 1982), 'item3' => array('name' => 'Геогрий', 'lastname' => 'Демидов', 'age' => 1981), 'item4' => array('name' => 'Дмитрий', 'lastname' => 'Александров', 'age' => 1983), 'item5' => array('name' => 'Алексей', 'lastname' => 'Белов', 'age' => 1984), ); $totalVar=$modx->getOption('totalVar', $scriptProperties, 'total'); $modx->setPlaceholder($totalVar, count($array)); $limit = $modx->getOption('limit', $scriptProperties, 10); $offset = $modx->getOption('offset', $scriptProperties, 0); function sorter($key) { return function ($a, $b) use ($key) { return strnatcmp($a[$key], $b[$key]); }; } usort($array, sorter($sortby)); // сортировка $sortdir == 'DESC' ? krsort($array) : ksort($array); // направление $array = array_slice($array, $offset, $limit); //обрезаем, сдвигаем foreach($array as $item){ $out .= $item['name'].' '.$item['lastname'].' '.$item['age'].'<br />'; // выводим } return $out;Вызов: [[!pdoPage? &element=`SnippetName` &sortby=`lastname` &sortdir=`ASC` &limit=`3` ]] [[!+page.nav]] Вопросы / pdoPage не разбивает по страницам 12 +1
06 сентября 2020, 14:01 У Вас в сниппете youtubeTest что именно перебирается? Если это объект, о котором MODX знает, то используйте просто getCollection. Там можно сразу все задать: //... $items= $modx->getCollection('Ваш_объект', array( 'limit'=>$limit, 'offset' => $offset, 'sortby'=> $sortby, 'sortdir'=> $sortdir, )); foreach($items as $item){ $output .= $modx->getChunk($tpl, array()); } //.... Вопросы / pdoPage не разбивает по страницам 12 +1
05 сентября 2020, 11:16 А как в сниппете youtubeTest (результат работы которого Вы пытаетесь разбить на страницы) обрабатываются переменные sort и limit, которые Вы ему передаете? pdoPage — это просто обертка. Сниппет, для вызова которого он используется, должен сам лимитировать вывод на основе входных параметров и иметь возможность сдвига (offset) для реализации пагинации. Вопросы / pdoPage не разбивает по страницам 12 +1
01 сентября 2020, 14:13 Переменная $profile должна быть объектом. Недавно же обсуждали. Вопросы / Почему выходит ошибка ModX? 1 0
31 августа 2020, 11:25 При клике по кнопке посредством JS подставляйте в поле recipient ID юзера. Вопросы / socialtools отправка сообщений заданному пользователю 5 0
30 августа 2020, 15:34 Это поле extended с массивом значений. Можно вывести, например, таким сниппетом: <?php if($profile = $modx->user->getOne('Profile')) $out = $profile->get('extended')[$field]; return $out; Ну и вызов: [[!SnippetName? &field=`usertype`]] Вопросы / Как вывести на страницу дополнительное поле в ModX? 5 +1
17 августа 2020, 20:17 Поправочка: ... $cats[] = $resource['category_id']; // тут category_id, а не id ... Вопросы / как вывести список категорий в которые включен товар в minishop2 в виде ссылок 8 +1
17 августа 2020, 19:57 Этот сниппет собирает все категории товара, которые у него отмечены на соответствующей вкладке. Если нужно выводить их по родителям, то можете в нем собирать только ID-шники категорий: <?php $modx->getService('miniShop2'); $docid = $modx->getOption('docid', $scriptProperties, $modx->resource->get('id')); $sql = "SELECT * FROM {$modx->getTableName('msCategoryMember')} WHERE `product_id` = $docid"; $q = $modx->prepare($sql); $q->execute(); $resources = $q->fetchAll(PDO::FETCH_ASSOC); foreach ($resources as $resource){ $cats[] = $resource['id']; } $out = implode(',', $cats); return $out; И его вызов подставлять уже в pdoResources: [[pdoResources? &parents=`123` // нужный родитель &resources=`[[getCategories:default=`9999999`]]` &tpl=`cat_tpl` ......... ]] Вопросы / как вывести список категорий в которые включен товар в minishop2 в виде ссылок 8 +1
17 августа 2020, 14:33 Сделайте сниппет getCategories: <?php $modx->getService('miniShop2'); $docid = $modx->getOption('docid', $scriptProperties, $modx->resource->get('id')); $sql = "SELECT * FROM {$modx->getTableName('msCategoryMember')} WHERE `product_id` = $docid"; $q = $modx->prepare($sql); $q->execute(); $resources = $q->fetchAll(PDO::FETCH_ASSOC); foreach ($resources as $resource){ $cat = $modx->getObject('modResource', $resource['category_id'])->toArray(); $out .= $modx->getChunk($tpl,$cat); } return $out; Вызывайте на странице товара [[getCategories? &tpl=`cat_tpl` ]] В чанках: [[getCategories? &tpl=`cat_tpl` &docid=`[[+id]]` ]] В чанке cat_tpl доступны все поля ресурса например: <a href="[[+uri]]">[[+pagetitle]]</a> Вопросы / как вывести список категорий в которые включен товар в minishop2 в виде ссылок 8 +1
14 августа 2020, 17:10 Чтобы в чанках учитывались типы вывода TV-шек, нужно в вызов mFilter2 добавить: &processTVs=`имена_tv-шек_через_запятую` Вопросы / Народ ,кто-нибудь знаком с модификаторами modx? 44 0
15 июля 2020, 10:13 Сделайте сниппет getProdField: <?php if(!$id) $id = $modx->resource->get('id'); if(!$pr = $modx->getObject('msProduct', $id)) return; return $pr->get($field); И используйте: Цена: [[getProdField? &id=`[[+id]]` &field=`price`]] Старая цена: [[getProdField? &id=`[[+id]]` &field=`old_price`]] Картинка: [[getProdField? &id=`[[+id]]` &field=`image`]] Превью: [[getProdField? &id=`[[+id]]` &field=`thumb`]] и т. д.Доступны все поля из таблицы modx_ms2_products: article, price, old_price, weight, image, thumb, vendor, made_in, new, popular, favorite, tags, color, size, source Вопросы / Медленная загрузка страницы PdoPage + phpthumbon 4 0
14 июля 2020, 20:04 Лучше так (там не включен Fenom на страницах ))): <base href="[[++site_url]]" /> Вопросы / "Кривое" отображение страниц сайта 5 0
13 июля 2020, 11:09 Сделайте сниппет: <?php $tv = $modx->resource->getTVValue('tvname'); // имя Вашей TV с типом вывода "разделитель" и запятой в качестве оного. $arr = explode(',',$tv); $count = count($arr); if($tv == '') $count = 0; $scriptProperties['limit'] = 10 - $count; $scriptProperties['returnIds'] = 1; $scriptProperties['resources'] = '-'.implode(',-',$arr); return $tv.','.$modx->runSnippet('pdoResources', $scriptProperties); Используйте его в качестве &resources в вызове (с указанием parents, sortby и templates, если нужно): [[pdoResources? &resources=`[[snippet? &parents=`12` &templates=`5` &sortby=`{ "menuindex":"ASC" }`]]` &sortby=`ids` //чтобы сортировались в соответствии с $resources // ..... ]] Вопросы / подсчет и вывод нужного количества ресурсов pdoresources 2 +2
07 июля 2020, 14:44 А в консоли браузера есть ошибки какие-то? Вопросы / выборка в migx из resourcelist 7 0
07 июля 2020, 13:00 К шаблонам и ресурсам ее прицеплять не нужно. Покажите, что в «Возможных значениях». Вопросы / выборка в migx из resourcelist 7 0
06 июля 2020, 09:05 Сделайте TV типа «Список (одиночный выбор)», в котором в поле «Возможные значения» получайте нужные ресурсы через @EVAL. Можно прямым запросом в базу, или (если хочется сортировки, настройки вывода, фильтрации) через сниппет, например: @EVAL return '---==||'.$modx->runSnippet('pdoResources',array( 'parents' => 13, 'templates' => 10, 'limit' => 0, 'sortby'=>'{ "parent":"ASC", "pagetitle":"ASC" }', 'tpl'=>'@INLINE [[#[[+parent]].pagetitle]] » [[+pagetitle]] ([[+id]])==[[+id]]', 'showUnpublished' => 1, 'outputSeparator'=>'||' )); И уже эту TV укажите в качестве источника MIGX: [ { "caption": "Заголовок", "fields": [ { "field": "document", "caption": "Статья", "inputTV":"tvname" } ] } ] Вопросы / выборка в migx из resourcelist 7 +1
10 июня 2020, 16:44 В TV category в возможных значениях нужно сделать так, чтобы у ресурса прописывался не голый ID категории, а с оберткой. К примеру: -44- Тогда Вы можете делать выборку так: 'tvFilters' => ('category==%-' ~ $_modx->resource.id~'-%') Вопросы / Как сделать обертку TV фильтра в Fenom? 2 0
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
Вызов:
pdoPage — это просто обертка. Сниппет, для вызова которого он используется, должен сам лимитировать вывод на основе входных параметров и иметь возможность сдвига (offset) для реализации пагинации.
Недавно же обсуждали.
Можно вывести, например, таким сниппетом:
Ну и вызов:
Если нужно выводить их по родителям, то можете в нем собирать только ID-шники категорий:
И его вызов подставлять уже в pdoResources:
Вызывайте на странице товара
В чанках:
В чанке cat_tpl доступны все поля ресурса например:
И используйте:
Доступны все поля из таблицы modx_ms2_products:
article, price, old_price, weight, image, thumb, vendor, made_in, new, popular, favorite, tags, color, size, source
Используйте его в качестве &resources в вызове (с указанием parents, sortby и templates, если нужно):
Покажите, что в «Возможных значениях».
Можно прямым запросом в базу, или (если хочется сортировки, настройки вывода, фильтрации) через сниппет, например:
И уже эту TV укажите в качестве источника MIGX:
К примеру:
Тогда Вы можете делать выборку так: