Анатолий
С нами с 20 марта 2018; Место в рейтинге пользователей: #443Вывод ресурсов на fenom без сниппета
Вывожу ресурсы через microModx:
{var $resources = $_modx->getResources(
['published' => 0, 'deleted' => 0],
['parents' => 2],
['sortby' => 'id', 'sortdir' => 'ASC', 'limit' => 0]
)}
{foreach $resources as $resource}
{$_modx->getChunk('@INLINE <a href="#{$id}">{$pagetitle}</a>', $resource)}
{/foreach}
Понадобилось добавить ресурс и поместить его между существующих. Упорядочил ресурсы по menuindex. Теперь когда заменил 'sortby' => 'id' на 'sortby' => 'menuindex' то ничего не изменилось: добавленный ресурс вывелся последним как будто отсортировано по id. Более того, заметил что если менять сортировку на DESC тоже ничего не происходит, как будто этот код закэшировался… В чем может быть причина? Fenom и json_decode
Есть многомерный массив полученный из migx который я декодирую:
{set $rows = json_decode($_modx->resource.device,true)}
На выходе получается массив, но вложенные массивы второго уровня остаются не декодированными и снова к ним приходится применять функцию json_decode.array(1) {
[0]=>
array(3) {
["MIGX_id"]=>
string(1) "1"
["device"]=>
string(6) "iPhone"
["vendor"]=>
string(86) "[{"MIGX_id":"9","model":"7","img":"","services":""},{"MIGX_id":"10","model":"7 Plus","img":"","services":""}]"
}
}
Есть ли способ за один прогон получить декодированный массив в fenom? Обернуть каждые N элементов массива в Fenom
Здравствуйте уважаемые друзья! Вопрос в том как вывести элементы массива с учетом того что каждые четыре должны быть обернуты в тег? Например вот стандартный чанк ms2gallery:
{if $files?}
<div class="slider">
{foreach $files as $file}
<div class="slide">
<img src="{$file['url']}">
</div>
{/foreach}
</div>
{/if}
А нужно (просто привожу схематично структуру):{if $files?}
<div class="slider">
<div class="slide">
<img src="{$file['url']}">
<img src="{$file['url']}">
<img src="{$file['url']}">
<img src="{$file['url']}">
</div>
{/foreach}
</div>
{/if}
Понимаю что нужен какой-то цикл for 1..4 но как его реализовать не решу… Вывод ошибки в AjaxForm
Друзья, проверяю форму на заполненность одного поля из двух. Вот вызов сниппета:
{'!AjaxForm' | snippet : [
'snippet'=>'FormIt'
'hooks'=>'spam,email'
'emailFrom'=>'noreply@test.loc'
'form'=>'tpl.callBack'
'emailTpl'=>'tpl.callBackMail'
'emailTo'=>'inbox@mail.local'
'emailSubject'=>'Обратная связь с сайта'
'validate'=>'name:required,phone:oneOfTwoFields,email:email:oneOfTwoFields,link:blank'
'customValidators' => 'oneOfTwoFields'
'validationErrorMessage'=>'Пожалуйста, заполните необходимые поля.'
'successMessage'=>'Ваше обращение отправлено. Мы свяжемся с вами!'
]}
А вот сниппет кастомного валидатора:<?php
$success = true;
$phone = trim($_POST['phone']);
$email = trim($_POST['email']);
if (empty($phone) && empty($email)) {
$success = false;
$validator->addError($key, 'Заполните поле Телефон или Email.');
}
return $success;
Валидация работает, но не могу понять как выводить во всплывающем окне эту ошибку (когда не заполнены оба поля)? Всегда выводится 'Пожалуйста, заполните необходимые поля.' Получить Option в плагине
Пишу fenom модификатор который должен получить значение опции и далее ее обработать.
Опция создана в ClientConfig.
Опция создана в ClientConfig.
$fenom->addModifier('phonelink', function ($input, $class = 'phonelinks') {
if (!empty($input)) {
$el = $modx->getOption($input);
return $el;
}
});
Это вызывает ошибку: Fatal error: Uncaught Error: Call to a member function getOption() on null in… Вопрос по $options
Обратил внимание что в сниппете dateAgo есть такой код:
Или этот код позволяет использовать параметры сниппета в качестве модификатора?
if (!empty($options) && $options = $modx->fromJSON($options)) {
$scriptProperties = array_merge($scriptProperties, $options);
}
Вопрос что это за переменная $options, чем она отличается от $scriptProperties?Или этот код позволяет использовать параметры сниппета в качестве модификатора?
Тернарный оператор
Друзья, не пойму простого, как в чанке вывести longtitle в теге если longtitle заполнен?
{$longtitle ? '<small>({$longtitle})</small>' :'' }
Так выводятся пустые скобки… Убрать элемент из массива
Есть массив $files содержащий в себе другие элементы-массивы.
Вопрос, как на fenome удалить любой элемент из этого массива?
Например первый. Или разобрать массив $files со второго элемента с помощью {foreach}?
Вопрос, как на fenome удалить любой элемент из этого массива?
Например первый. Или разобрать массив $files со второго элемента с помощью {foreach}?
Перебор массива в fenom
Друзья, сломал голову, как обернуть определенным тегом только первый элемент массива?
{foreach $files as $file}
{if $file@first} <i>{$file['id']}</i>{/if}
<b>{$file['id']}</b>
{/foreach}
Но так в теге <i> оказываются все элементы. Fenom. Вынос сниппетов в файлы
Подскажите, если выносить шаблоны, чанки в файлы, то как поступать с родными сниппетами дополнений? Оставлять их в БД? В файлы писать только свои сниппеты? В документации к феному пишут делать все в файлах и ничего не создавать в админке. А как быть со сниппетами pdotools, msgallery, например? Каковы правила хорошего тона в таком случае?