22 июня 2017, 09:46 Хотя похоже проблему можно было решить и подключением отдельного сниппета через &formatSnippet Вопросы / Предложение по улучшению Comparison 1 0
16 июня 2017, 08:26 Спасибо, что Вы так ответственно подошли. Сложно сказать, что это был за глюк. Оказывается, как ответил Василий Наумкин, то и where должно работать с TV полями. Я на следующий день раскоментировал вызов сниппета с условиями where? который ничего не находил и вдруг о чудо — он стал возвращать результаты. Хотя ничего на сайте не менялось. Я уже сталкивался с подобным полгода назад на одном проекте, который делали другие люди. Это вот описано в моем вопросе modx.pro/help/11402/ Проект этот делал не я, он проработал несколько лет и вдруг начал выдавать ерунду в страницы. Перестало работать where. Прошло несколько дней и все само вернулось назад. Вопросы / условие where для TV 9 0
15 июня 2017, 23:03 Спасибо, перед тем как писать вопрос читал документацию эту однако раздел с операторами обошел, считая что это только больше меньше и так далее. Еще раз спасибо. Вопросы / проверить тип переменной, используя Fenom 2 0
15 июня 2017, 16:34 Когда знаний мало, то все кажется мистикой) Вчера pdoResources упорно игнорировал условие where, мне посоветовали пользоваться &tvFilters, но тоже не работало. Сегодня раскоментировал сниппет, который вчера ничего не находил, а он все прекрасно фильтрует, даже по where, хотя я ничего не изменял. Вопросы / Не работают модификаторы или pdoTools или я ) 6 0
15 июня 2017, 16:26 спасибо! Попробую. Хотя как можно догадаться что значения по умолчанию в базу не попадают… А откуда же их получил getResources… Ну и плюс передавалось 5 разных TV полей, со значениями по умолчанию и без них и не шла выборка ни по одному. Но это так, лишь глупые размышления. Ну и уж совсем понаглею, подскажите еще как изменять тип поля ввода стандартных свойств в minishop2? Если не сложно, конечно. Более детально здесь — modx.pro/help/12510/ Вопросы / Не работают модификаторы или pdoTools или я ) 6 0
15 июня 2017, 16:01 Я не сомневаюсь что Вы знаете все тонкости и нюансы, но нам, простым обывателям часто приходится сталкиваться с неизвестным, а потом долго искать решение. Кстати не подскажите, как разработчик pdoTools что вот в этом случае пошло не так — modx.pro/help/12493/ pdoResources возвращал 0 строк а простая замена на getResources при тех же настройках решила проблему? Спасибо. Вопросы / Не работают модификаторы или pdoTools или я ) 6 0
14 июня 2017, 22:12 Вынес tplCurrent в отдельный чанк, там работает. Странно это, но нужно будет запомнить что вызывать модификаторы и фильтры нельзя в строке @INLINE Вопросы / Не работают модификаторы или pdoTools или я ) 6 0
14 июня 2017, 21:28 Это какие-то глюки pdoResources getResources прекрасно фильтрует. Вопросы / условие where для TV 9 0
14 июня 2017, 21:15 Ни по одному из передаваемых TV фильтрация не идет, возвращает ноль строк. При всем при этом tv поля отлично отображаются в шаблоне. Вопросы / условие where для TV 9 0
14 июня 2017, 19:56 вот полный showlog 0.0001380: pdoTools loaded 0.0000291: xPDO query object created 0.0000350: Added TVs filters 0.0004351: Included list of tvs: warehouse_for_collection, prestig_collection, img_block_collection, country_collection, price_collection, old_price_collection 0.0002379: leftJoined modTemplateVarResource as TVwarehouse_for_collection 0.0002091: leftJoined modTemplateVarResource as TVprestig_collection 0.0003119: leftJoined modTemplateVarResource as TVimg_block_collection 0.0002148: leftJoined modTemplateVarResource as TVcountry_collection 0.0002050: leftJoined modTemplateVarResource as TVprice_collection 0.0002019: leftJoined modTemplateVarResource as TVold_price_collection 0.0004241: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties` 0.0000112: Added selection of modTemplateVarResource: IFNULL(`value`, 'На заказ') AS `tv.warehouse_for_collection` 0.0000081: Added selection of modTemplateVarResource: IFNULL(`value`, 'Бизнес-класс') AS `tv.prestig_collection` 0.0000069: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.img_block_collection` 0.0000072: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.country_collection` 0.0000072: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.price_collection` 0.0000069: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.old_price_collection` 0.0000410: Replaced TV conditions 0.0002632: Processed additional conditions 0.0005989: Added where condition: 0=`TVwarehouse_for_collection`.`value` LIKE 'На заказ', modResource.parent:IN(30), modResource.published=1, modResource.deleted=0 0.0000360: Replaced TV conditions 0.0001481: Sorted by modResource.publishedon, DESC 0.0000019: Limited to 9, offset 0 0.0002871: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`, IFNULL(`TVwarehouse_for_collection`.`value`, 'На заказ') AS `tv.warehouse_for_collection`, IFNULL(`TVprestig_collection`.`value`, 'Бизнес-класс') AS `tv.prestig_collection`, IFNULL(`TVimg_block_collection`.`value`, '') AS `tv.img_block_collection`, IFNULL(`TVcountry_collection`.`value`, '') AS `tv.country_collection`, IFNULL(`TVprice_collection`.`value`, '') AS `tv.price_collection`, IFNULL(`TVold_price_collection`.`value`, '') AS `tv.old_price_collection` FROM `office_site_content` AS `modResource` LEFT JOIN `office_site_tmplvar_contentvalues` `TVwarehouse_for_collection` ON `TVwarehouse_for_collection`.`contentid` = `modResource`.`id` AND `TVwarehouse_for_collection`.`tmplvarid` = 7 LEFT JOIN `office_site_tmplvar_contentvalues` `TVprestig_collection` ON `TVprestig_collection`.`contentid` = `modResource`.`id` AND `TVprestig_collection`.`tmplvarid` = 5 LEFT JOIN `office_site_tmplvar_contentvalues` `TVimg_block_collection` ON `TVimg_block_collection`.`contentid` = `modResource`.`id` AND `TVimg_block_collection`.`tmplvarid` = 9 LEFT JOIN `office_site_tmplvar_contentvalues` `TVcountry_collection` ON `TVcountry_collection`.`contentid` = `modResource`.`id` AND `TVcountry_collection`.`tmplvarid` = 10 LEFT JOIN `office_site_tmplvar_contentvalues` `TVprice_collection` ON `TVprice_collection`.`contentid` = `modResource`.`id` AND `TVprice_collection`.`tmplvarid` = 11 LEFT JOIN `office_site_tmplvar_contentvalues` `TVold_price_collection` ON `TVold_price_collection`.`contentid` = `modResource`.`id` AND `TVold_price_collection`.`tmplvarid` = 12 WHERE ( `TVwarehouse_for_collection`.`value` LIKE 'На заказ' AND `modResource`.`parent` IN (30) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY modResource.publishedon DESC LIMIT 9 " 0.0006509: SQL executed 0.0000570: Total rows: 0 0.0000091: Rows fetched 0.0000181: Prepared and processed TVs 0.0000012: Returning processed chunks 0.0044119: Total time 6 553 600: Memory usageВыполнение данного SQL запроса в PMA вернул MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.0009 сек.) Вопросы / условие where для TV 9 0
14 июня 2017, 19:20 Кирилл, ну что-то совсем у меня руки не оттуда. Сделал фильтрацию по &tvFilters и снова ничего. Вот результат вызова pdoResources без фильтрации и с пустым tpl [content_type] => 1 [uri] => kabinetyi-rukovoditelya/kabinet-4/ [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [tv.warehouse_for_collection] => На заказТо есть лежит в warehouse_for_collection строка На заказ Вызываю тот же pdoResources с условием [[!pdoResources? &parents=`[[*id]]` &depth=`0` &tpl=`tpl.products_office_collection` &includeTVs=`warehouse_for_collection` &limit=`9` &tvFilters=`warehouse_for_collection==На заказ` ]]и результат 0 строк. Ткните носом где я еще туплю. Строковые значения на складе и на заказ заменял на числовые 0 и 1, не помоголо. Вопросы / условие where для TV 9 0
14 июня 2017, 18:28 А с обычным TV как быть не подскажите? modx.pro/users/4812/tickets/ Уже пробовал и заменить строковую переменную на число, попробовал метод с LIKE и совершенно пустой результат приходит. Спасибо. Вопросы / фильтр для pdoResources и полю MIGX 4 0
14 июня 2017, 14:34 спасибо, делал так. Разве это сортировка по menuindex? Я этого не увидел, но еще раз попробую. Вопросы / Хаотичное присвоение menuindex ресурсам 2 0
08 июня 2017, 22:53 Использовал такой же подход, он не единажды описан на просторах интернета. А вот кто-то пробовал работать с новой невидимой каптчей гугла? Есть опыт относительно MODX, AjaxForm и FormIt? Пошаговые инструкции / Множетственная ReCaptcha2 на 1 стр + Ajaxform 21 0
08 июня 2017, 20:58 Спасибо за направление, но уж простите не профессионала. Помогите и дальше, если не сложно. Вот относительно моей ситуации. Есть страница, в шаблоне которой есть div#result Попадая на нее в первый раз внутри дива лежит вызов pdoPage, который выводит ну скажем 1 товар используя msProducts и пагинацию <div id="result"> [[!pdoPage? &parents=`[[*id]]` &sortby=`Data.price` &sortdir=`desc` &element=`msProducts` &limit=`1` ]] [[!+page.nav]] </div>Попадаем на страницу и все отлично. На странице есть ссылки, позволяющие отсортировать результаты и это происходит через JQuery.post При клике на ссылку считываем из нее параметры, передаем их в сниппет и там через switch выбираем что запустить и что вернуть. К примеру так // обработка ссылок если они служат для аякс загрузки $('.ajax_link').click(function() { var action = $(this).data('action'); var id_resource = $(this).data('id'); alert('Action '+action); $.post(document.location.href, {action: action, id_resource: id_resource}, function(data) { $('#result').html(data); }) return false; })при клике на ссылку получаем из нее id текущего ресурса и «указание» что делать и ajax ом передаем без перезагрузки на эту же страницу. На странице есть снипет который ловит ajax запросы, получает значение и через свитч вызывает тот или иной сниппет с нужными параметрами. К примеру так //****************************************************************************** case 'show_price_down': // показ товаров по цене от большей к меньшей $params['element'] = 'msProducts'; $params['parents'] = $id; $params['sortby'] = 'Data.price'; $params['sortdir'] = 'DESC'; $params['limit'] = 1; $res = $modx->runSnippet('pdoPage', $params); if ($res=='') {$res="Ничего не найдено";} break;Тоесть получили с сылки значение show_price_down и вызвали сниппет pdoPage с настройками, которые вернут нам товары, отсортированные по убыванию цены. Мой сниппет возвращает $res как строку. В ней лежит код выводящий товары. И этот код заменяет собой содержимое div#result В случае если работать без pdoPage все работает чудно. Я задаю ссылкам нужные мне значения атрибутов, ловлю их в сниппете. вызываю либо msProducts или pdoResorces с нужными настройками, передаваемыми в массиве $params и все работает как часики. Но без пагинации. Вызов pdoPage вызывает сложности. Пагинация по умолчанию выводится в плейсхолдер [[!+page.nav]] Если я указываю его за пределами div#result то пагинация корректно выводится только в первый заход на страницу, что логично. Когда я через аякс меняю выборку и вывожу уже не 100 товаров а 5, то я отлично переписываю содержимое div#result новыми пятью товарам, а строка с пагинацей остается не изменной. Она ведь за пределами контейнера и не сменилась при аякс запросе. Вношу плейсхолдер [[!+page.nav]] внутрь контейнера и ожидаемый результат. При аякс запросе пагинация просто исчезает. Что логично ведь она не содержится в переменной $res, в которой лежит результат отработки вызова снипета pdoPage. Делаю свой снипет на основе pdoPage и в return кроме отработки снипета методом конкатенации добавляю значение переменной $pagination в которой как раз и лежит код пагинации. Почти радуюсь ибо теперь с каждый аякс запросом моим возвращаются и товары и новая пагинация. Чудно! НО. При переходе по пагинации начинается вполне прогнозируемый сбой. Ведь URL не изменяется когда я получаю данные через аякс и страница называется www.site.ru/collection независимо от того выведео у меня сейчас все 100 товаров коллекции или 5, которые отобраны по аякс запросу которые есть на складе. И стоит перейти по пагинации я попадаю на URL типа www.site.ru/collection?page=2 То есть пагинация идет по гет запросу и я вижу соверщенно не нужный мне результат. Я вижу вторую страницу не товаров которыя я отобрал а вторую страницу ВСЕХ товаров. Надеюсь я понятно поясняю, простите за длину. А вот попытка передать параметр ajaxMode при вызове снипета pdoPage внутри моего снипета приводит к тому, что он ничего не находит. Стоит убрать указание параметра ajaxMode и все работает чудно, но приводит к ошибкам указанным выше. Я вижу по коду снипета pdoPage что при передаче значения в него ajaxMode он просто вызывает пустой return? но пока не могу понять как с этим бороться. Как сделать чтобы на одном URL менялось содержимое тега div#result по моему запросу а пагинация перемещала по отобранным результатам. Спасибо всем, кто хотя бы прочел это до конца. Вопросы / Разные результат [[!pdoPage]] и $modx->runSnippet 5 0
08 июня 2017, 18:17 Вечно я какие-то «не те» вопросы задаю) Вопросы / Разные результат [[!pdoPage]] и $modx->runSnippet 5 0
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин 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, сервис-ориентированная архит...
Сложно сказать, что это был за глюк.
Оказывается, как ответил Василий Наумкин, то и where должно работать с TV полями.
Я на следующий день раскоментировал вызов сниппета с условиями where? который ничего не находил и вдруг о чудо — он стал возвращать результаты. Хотя ничего на сайте не менялось.
Я уже сталкивался с подобным полгода назад на одном проекте, который делали другие люди.
Это вот описано в моем вопросе modx.pro/help/11402/
Проект этот делал не я, он проработал несколько лет и вдруг начал выдавать ерунду в страницы. Перестало работать where. Прошло несколько дней и все само вернулось назад.
Еще раз спасибо.
Вчера pdoResources упорно игнорировал условие where, мне посоветовали пользоваться &tvFilters, но тоже не работало.
Сегодня раскоментировал сниппет, который вчера ничего не находил, а он все прекрасно фильтрует, даже по where, хотя я ничего не изменял.
Хотя как можно догадаться что значения по умолчанию в базу не попадают…
А откуда же их получил getResources…
Ну и плюс передавалось 5 разных TV полей, со значениями по умолчанию и без них и не шла выборка ни по одному.
Но это так, лишь глупые размышления.
Ну и уж совсем понаглею, подскажите еще как изменять тип поля ввода стандартных свойств в minishop2? Если не сложно, конечно. Более детально здесь — modx.pro/help/12510/
Кстати не подскажите, как разработчик pdoTools что вот в этом случае пошло не так — modx.pro/help/12493/
pdoResources возвращал 0 строк а простая замена на getResources при тех же настройках решила проблему?
Спасибо.
Странно это, но нужно будет запомнить что вызывать модификаторы и фильтры нельзя в строке @INLINE
getResources прекрасно фильтрует.
При всем при этом tv поля отлично отображаются в шаблоне.
Выполнение данного SQL запроса в PMA вернул MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.0009 сек.)
Сделал фильтрацию по &tvFilters и снова ничего.
Вот результат вызова pdoResources без фильтрации и с пустым tpl
То есть лежит в warehouse_for_collection строка На заказ
Вызываю тот же pdoResources с условием
и результат 0 строк.
Ткните носом где я еще туплю. Строковые значения на складе и на заказ заменял на числовые 0 и 1, не помоголо.
Спасибо.
modx.pro/users/4812/tickets/
Уже пробовал и заменить строковую переменную на число, попробовал метод с LIKE и совершенно пустой результат приходит.
Спасибо.
А вот кто-то пробовал работать с новой невидимой каптчей гугла?
Есть опыт относительно MODX, AjaxForm и FormIt?
Вот относительно моей ситуации.
Есть страница, в шаблоне которой есть div#result
Попадая на нее в первый раз внутри дива лежит вызов pdoPage, который выводит ну скажем 1 товар используя msProducts и пагинацию
Попадаем на страницу и все отлично.
На странице есть ссылки, позволяющие отсортировать результаты и это происходит через JQuery.post
При клике на ссылку считываем из нее параметры, передаем их в сниппет и там через switch выбираем что запустить и что вернуть.
К примеру так
при клике на ссылку получаем из нее id текущего ресурса и «указание» что делать и ajax ом передаем без перезагрузки на эту же страницу.
На странице есть снипет который ловит ajax запросы, получает значение и через свитч вызывает тот или иной сниппет с нужными параметрами.
К примеру так
Тоесть получили с сылки значение show_price_down и вызвали сниппет pdoPage с настройками, которые вернут нам товары, отсортированные по убыванию цены.
Мой сниппет возвращает $res как строку.
В ней лежит код выводящий товары.
И этот код заменяет собой содержимое div#result
В случае если работать без pdoPage все работает чудно. Я задаю ссылкам нужные мне значения атрибутов, ловлю их в сниппете. вызываю либо msProducts или pdoResorces с нужными настройками, передаваемыми в массиве $params и все работает как часики. Но без пагинации.
Вызов pdoPage вызывает сложности.
Пагинация по умолчанию выводится в плейсхолдер [[!+page.nav]]
Если я указываю его за пределами div#result то пагинация корректно выводится только в первый заход на страницу, что логично. Когда я через аякс меняю выборку и вывожу уже не 100 товаров а 5, то я отлично переписываю содержимое div#result новыми пятью товарам, а строка с пагинацей остается не изменной. Она ведь за пределами контейнера и не сменилась при аякс запросе.
Вношу плейсхолдер [[!+page.nav]] внутрь контейнера и ожидаемый результат. При аякс запросе пагинация просто исчезает. Что логично ведь она не содержится в переменной $res, в которой лежит результат отработки вызова снипета pdoPage. Делаю свой снипет на основе pdoPage и в return кроме отработки снипета методом конкатенации добавляю значение переменной $pagination в которой как раз и лежит код пагинации. Почти радуюсь ибо теперь с каждый аякс запросом моим возвращаются и товары и новая пагинация. Чудно! НО.
При переходе по пагинации начинается вполне прогнозируемый сбой.
Ведь URL не изменяется когда я получаю данные через аякс и страница называется www.site.ru/collection независимо от того выведео у меня сейчас все 100 товаров коллекции или 5, которые отобраны по аякс запросу которые есть на складе. И стоит перейти по пагинации я попадаю на URL типа www.site.ru/collection?page=2
То есть пагинация идет по гет запросу и я вижу соверщенно не нужный мне результат. Я вижу вторую страницу не товаров которыя я отобрал а вторую страницу ВСЕХ товаров.
Надеюсь я понятно поясняю, простите за длину.
А вот попытка передать параметр ajaxMode при вызове снипета pdoPage внутри моего снипета приводит к тому, что он ничего не находит. Стоит убрать указание параметра ajaxMode и все работает чудно, но приводит к ошибкам указанным выше. Я вижу по коду снипета pdoPage что при передаче значения в него ajaxMode он просто вызывает пустой return? но пока не могу понять как с этим бороться.
Как сделать чтобы на одном URL менялось содержимое тега div#result по моему запросу а пагинация перемещала по отобранным результатам.
Спасибо всем, кто хотя бы прочел это до конца.