Александр Мельник
С нами с 02 сентября 2016; Место в рейтинге пользователей: #64Хаотичное присвоение menuindex ресурсам
Добрый день.
Нужен совет более опытных.
Менеджеру нужно иметь возможность ручной сортировки ресурсов на странице.
Выводятся pdoResources в обертке pdoPage, сортировка стоит по menuindex и его убыванию.
Создаю три новых ресурса в каталоге и их menuindex 0,1,2
Соответственно, выводятся на странице они 2,1,0
Вроде бы отлично, хотя и честно говоря неудобно в том плане, что в дереве ресурсов в админке нет сортировки по menuindex и получается, что невозможно угадать, глядя на дерево как выведутся ресурсы на страницу.
Может кто знает, возможно ли рядом с идентификатором ресурса в админке вывести его menuindex?
Но это цветочки. При перемещении ресурсов мышкой в дереве, действительно меняются menuindex и соответственно порядок вывода на странице, но меняется несколько хаотически. Так к примеру после двух перемещений одного ресурса все индексы уже оказались переписаны на 4,3,2 вместо 2,1,0
Нужен совет более опытных.
Менеджеру нужно иметь возможность ручной сортировки ресурсов на странице.
Выводятся pdoResources в обертке pdoPage, сортировка стоит по menuindex и его убыванию.
Создаю три новых ресурса в каталоге и их menuindex 0,1,2
Соответственно, выводятся на странице они 2,1,0
Вроде бы отлично, хотя и честно говоря неудобно в том плане, что в дереве ресурсов в админке нет сортировки по menuindex и получается, что невозможно угадать, глядя на дерево как выведутся ресурсы на страницу.
Может кто знает, возможно ли рядом с идентификатором ресурса в админке вывести его menuindex?
Но это цветочки. При перемещении ресурсов мышкой в дереве, действительно меняются menuindex и соответственно порядок вывода на странице, но меняется несколько хаотически. Так к примеру после двух перемещений одного ресурса все индексы уже оказались переписаны на 4,3,2 вместо 2,1,0
Разные результат [[!pdoPage]] и $modx->runSnippet
Вопрос.
Вызываю в шаблоне
Вызываю в снипете
Но для меня важно чтобы пагинация работала без перезагрузки страницы.
Спасибо за ранее если кто то поможет.
Вызываю в шаблоне
[[!pdoPage?
&parents=`[[*id]]`
&ajaxMode=`default`
&element=`msProducts`
получаю как и ожидалось все товары этого родителя. Обратите внимание что вызываю с параметром &ajaxModeВызываю в снипете
$params['parents'] = $id;
$params['element'] = 'msProducts';
$params['ajaxMode'] = 'default';
$res = $modx->runSnippet('pdoPage', $params);
if ($res=='') {$res="Ничего не найдено";}
Тоесть тот же сниппет с теми же параметрами и получаю — ничего не найдено! Стоит заккоментировать строку $params['ajaxMode'] = 'default'; и сразу находятся все товары.Но для меня важно чтобы пагинация работала без перезагрузки страницы.
Спасибо за ранее если кто то поможет.
Пагинация при обновлении через Jquery.Ajax
Добрый день.
Уважаемые опытные коллеги, нужна Ваша помощь.
На сайте выводятся ресурсы через pdoPage.
В самом простом случае вот так
Уважаемые опытные коллеги, нужна Ваша помощь.
На сайте выводятся ресурсы через pdoPage.
В самом простом случае вот так
<div id="result">
[[!pdoPage?
&parents=`[[*id]]`
&sortby=`Data.price`
&sortdir=`desc`
&element=`msProducts`
&limit=`1`
]]
[[!+page.nav]]
</div>
Выборка того что вывести происходит через передачу данных через Jquery.ajax в снипет, где происходит обработка.// обработка ссылок если они служат для аякс загрузки
$('.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;
})
На странице вставлен снипет, вот его фрагмент//******************************************************************************
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;
Добавить index.php в URL при включенном ЧПУ
Добрый день.
После включения ЧПУ ссылки принимают вид
site/novaya.html
Можно ли настройками MODX добиться вот такого вида?
site/index.php/novaya.html
Спасибо!
После включения ЧПУ ссылки принимают вид
site/novaya.html
Можно ли настройками MODX добиться вот такого вида?
site/index.php/novaya.html
Спасибо!
Как использовать две ReCaptchaV2 на странице?
Господа и дамы.
Нужен совет и помощь.
Как Вы используете капчу, если на странице одновременно существует несколько форм?
Пользуюсь дополнением ReCaptcha, зарегистрировал ключи, внес хук и так далее — все работает.
Но у меня на странице одновременно может быть до 4 форм в модальных окнах а тут уже проблема. Капча отображается только в одной.
Попробовал это решение www.createit.ru/blog/modx/2017/recaptchav2-i-neskolko-form-na-odnoj-stranicze/
Не помогло.
Буду рад подсказкам очень.
Может подскажите другие приличные капчи, работающие в связке с FormIt AjaxForm?
На днях увидел, что гугл сделал новый вид капчи — невидимая.
Никто не пытался прикрутить ее к MODX? А то есть проект один, где внедрение любой капчи приводит к проблемам верстки, нужно только что-то невидимое. В форме используется пустое скрытое поле и идет проверка на его пустоту — не помогает. Видимо роботы научились обходить эту проверку.
Заранее спасибо.
Нужен совет и помощь.
Как Вы используете капчу, если на странице одновременно существует несколько форм?
Пользуюсь дополнением ReCaptcha, зарегистрировал ключи, внес хук и так далее — все работает.
Но у меня на странице одновременно может быть до 4 форм в модальных окнах а тут уже проблема. Капча отображается только в одной.
Попробовал это решение www.createit.ru/blog/modx/2017/recaptchav2-i-neskolko-form-na-odnoj-stranicze/
Не помогло.
Буду рад подсказкам очень.
Может подскажите другие приличные капчи, работающие в связке с FormIt AjaxForm?
На днях увидел, что гугл сделал новый вид капчи — невидимая.
Никто не пытался прикрутить ее к MODX? А то есть проект один, где внедрение любой капчи приводит к проблемам верстки, нужно только что-то невидимое. В форме используется пустое скрытое поле и идет проверка на его пустоту — не помогает. Видимо роботы научились обходить эту проверку.
Заранее спасибо.
PdoResources стал игнорировать where
Вот такое странное поведение заметил у PdoResources, он стал игнорировать условия из параметра where.
Вот такой вот вызов ранее прекрасно отбирал один элемент, у которого TV in_home равнялось Да.
Вот такой вот вызов ранее прекрасно отбирал один элемент, у которого TV in_home равнялось Да.
[[!pdoResources?
&parents=`14`
&depth=`1`
&limit=`1`
&sortby=`id`
&sortdir=`ASC`
&tpl=`tpl.mainVideo`
&includeTVs=`img,in_home`
&tvPrefix=``
&where=`{"in_home":"Да"}`
]]
Ничего не менялось, но теперь он совершенно игнорит условие. Сортирует по ID, выдает один вариант, но при этом плевать хотел на условие. К примеру при отключенном чанке выдает Поругайте код, мне будет полезно
Господа, буду рад любым предложениям по улучшению этого написанного мною кода.
Поскольку я дилетант, то наверняка делаю это топорно и не изящно.
Поставил себе цель написать сниппет, который будет выводить на экран значения MIGX TV для всех ресурсов, которые будут дочерними к ресурсу родителю, чей id будет задаваться как параметр сниппета.
Поскольку я дилетант, то наверняка делаю это топорно и не изящно.
Поставил себе цель написать сниппет, который будет выводить на экран значения MIGX TV для всех ресурсов, которые будут дочерними к ресурсу родителю, чей id будет задаваться как параметр сниппета.
<?php
// получаем id родительского каталога как параметр
$p=$parent;
// выборка всех ресурсов, у кого родитель имеет переданный id
// и формируем массив с id ресурсов-детей.
$g=$modx->getCollection('modResource',array('parent'=>$p));
foreach ($g as $g1){
$where[]=$g1->get('id');
}
// проходим по всем элементам нашего массива, делая выборку одного объекта
// значение contentid которого совпадает с id из массива
// поскольку я задался целью получить только MIGX то прописываю id этого объекта
foreach ($where as $nowhere){
$result=$modx->getObject('modTemplateVarResource',array('contentid'=>$nowhere,'tmplvarid'=>1));
// добавил сюда проверку на существование $result поскольку не все ресурсы могут иметь заполненные
// MIGX поля
if ($result){
// $res становится строкой, в которой лежит JSON
$res=$result->get('value');
//$r становится массивом
$r=$modx->fromJSON($res);
// перебираем все елементы массива, чтобы добраться до содержимого.
// У меня поле имеет название text
// в результате получаем вывод на экран перечня значений всех MIGX для всех ресурсов
// дочерних к тому, чей id мы передали в сниппет
foreach ($r as $r1){ echo $r1['text']."
";}
} //end if
} // end foreach
Спасибо. Проблемы с AjaxForm.
Буду рад помощи.
Организовываю отправку форм на почту на MODX. И решил воспользоваться FormIt в связке с AjaxForm. Проблема в следующем. FormIt отправляет на раз, AjaxForm — не отправляет совсем.
Вот вызов ajax
Сначала AjaxForm совсем не работал, по ошибкам в консоли я понял, что версия JQuery
не подходит, понизил версию с 3.1 до 1.7 и о чудо, ошибки в консоле пропали и стали появляться
Организовываю отправку форм на почту на MODX. И решил воспользоваться FormIt в связке с AjaxForm. Проблема в следующем. FormIt отправляет на раз, AjaxForm — не отправляет совсем.
Вот вызов ajax
[[!AjaxForm?
&snippet=`FormIt`
&hooks=`email`
&emailFrom=`noreply@mail.ru`
&form=`tpl.AjaxForm`
&emailTpl=`email_tpl`
&emailTo=`robota.melnik@yandex.ru`
&emailSubject=`Заказ звонка с сайта`
&validate=`name:required`
&validationErrorMessage=`Пожалуйста, заполните поля помеченные *`
&successMessage=`Сообщение успешно отправлено`
]]
Сама форма tpl.AjaxForm<form action="[[~[[*id]]]]" method="post" class="form">
<input type="text" name="name" id="name"/>
<button name="submit" class="form_btn">ПЕРЕЗВОНИТЕ МНЕ</button>
</form>
Шаблон письма email_tpl<p>От кого: [[+name]]</p>
Все упрощено чтобы понять в чем ошибка.Сначала AjaxForm совсем не работал, по ошибкам в консоли я понял, что версия JQuery
не подходит, понизил версию с 3.1 до 1.7 и о чудо, ошибки в консоле пропали и стали появляться
Как собрать MIGX с разных ресурсов?
Добрый вечер.
Подскажите пожалуйста, как решить такую задачку.
Есть группа ресурсов, для которых заданы дополнительные поля типа migx.
Данные из этих полей необходимы на всех страницах сайта, по ним калькулятор рассчитывает стоимости и так далее.
GetImageList позволяет получить эти записи не находясь непосредственно на этом ресурсе, при помощи docid.
Однако так можно получить данные лишь из одного ресурса. Ну пусть даже можно записать через запятую перечень ID (каюсь, не попробовал работает ли через запятую), но что если менеджер добавит новый ресурс, а данные из него не будут попадать в выборку, потому как его ID не указан.
Есть ли возможность указать родительский контейнер для getImageList?
И какая вообще есть в MODX возможность собрать данные TV из совершенно разных ресурсов в один сниппет для обработки?
Спасибо.
Подскажите пожалуйста, как решить такую задачку.
Есть группа ресурсов, для которых заданы дополнительные поля типа migx.
Данные из этих полей необходимы на всех страницах сайта, по ним калькулятор рассчитывает стоимости и так далее.
GetImageList позволяет получить эти записи не находясь непосредственно на этом ресурсе, при помощи docid.
Однако так можно получить данные лишь из одного ресурса. Ну пусть даже можно записать через запятую перечень ID (каюсь, не попробовал работает ли через запятую), но что если менеджер добавит новый ресурс, а данные из него не будут попадать в выборку, потому как его ID не указан.
Есть ли возможность указать родительский контейнер для getImageList?
И какая вообще есть в MODX возможность собрать данные TV из совершенно разных ресурсов в один сниппет для обработки?
Спасибо.
Время выполнения скрипта
Добрый день.
Буду рад подсказке.
Есть скрипт, который формирует прайс-лист для яндекс Маркета.
Когда задается ему на обработку часть каталога магазина, он справляется.
Когда весь товар, ему не хватает времени — выходит 504 ошибка. gateway time-out
Ровно через 60 секунд выскакивает.
Что я пытался сделать —
вписывал в скрипт -set_time_limit(0);
указывал вместо нуля большие значения;
в настройках хостинга указал время выполнения скриптов огромным — 1800 секунд.
И все совершенно безрезультатно — ровно через минуту выходит 504 ошибка.
Куда еще глянуть или где я протупил?
Спасибо.
Буду рад подсказке.
Есть скрипт, который формирует прайс-лист для яндекс Маркета.
Когда задается ему на обработку часть каталога магазина, он справляется.
Когда весь товар, ему не хватает времени — выходит 504 ошибка. gateway time-out
Ровно через 60 секунд выскакивает.
Что я пытался сделать —
вписывал в скрипт -set_time_limit(0);
указывал вместо нуля большие значения;
в настройках хостинга указал время выполнения скриптов огромным — 1800 секунд.
И все совершенно безрезультатно — ровно через минуту выходит 504 ошибка.
Куда еще глянуть или где я протупил?
Спасибо.