Aleksandr Huz

Aleksandr Huz

С нами с 02 августа 2014; Место в рейтинге пользователей: #12
Aleksandr Huz
28 июня 2018, 13:06
0
Артем, я ошибся, нужно не только поменять функцию ready, а и удалить анонимную функцию, которая оборачивает весь код или удалить параметр jQuery из функции.
Aleksandr Huz
27 июня 2018, 19:13
0
Ну конечно можно))))
{'pdoResources' | snippet: [
    'parents' => 7,
    'includeTVs' => 'migx_tv',
    'tpl' => '@INLINE {set $output = $_modx->getPlaceholder("output")?:[]}{set $output[$id] = $_pls["tv.migx_tv"]}{$_modx->setPlaceholder("output", $output)}'
]}
И получаем плейсхолдер с готовым массивом
{$_modx->getPlaceholder('output')}

Обратите внимание, что ключи полученного массива — это id ресурса. Но можно и не указывать ключ))
set $output[$id] = ...
Aleksandr Huz
27 июня 2018, 12:28
0
Круто. Спасибо)
Aleksandr Huz
27 июня 2018, 11:31
0
Артем, привет.
Есть несколько вопросов.

1. Зачем 2 раза регистрировать скрипт?
$modx->regClientScript($js);
if (preg_match('/\.js$/i', $js)) {
	$js .= '?v=' . substr(md5($version), 0, 10);
}
$modx->regClientScript($js);

2. Если jquery загружать асинхронно(defer), то код не сработает.
Если поменять функцию ready то все будет работать.
$(document).ready(function ($) {
     modAlertify.initialize();
});
на
document.addEventListener('DOMContentLoaded', function(){
     modAlertify.initialize();
});

Aleksandr Huz
27 июня 2018, 11:01
0
Для вывода ресурсов можно воспользоваться сниппетом pdoResources
В чанке получаем tv каждого ресурса, для этого прописываем название tv в параметре includeTVs
Aleksandr Huz
25 июня 2018, 11:42
+2
Поздравляю!
Очень интересно, сколько же действительно в магазине дополнений))
Картинка кликабельна.
Aleksandr Huz
25 июня 2018, 11:36
+1
Покажите исходный код.
Вы поменяли $item на $galItem?
Aleksandr Huz
24 июня 2018, 14:41
1
+1
Потому что, нужно так:
'id' => $id,
Aleksandr Huz
24 июня 2018, 14:36
0
Кстати, если включить сортировку
&sortby :'{"parent":0}',
то сначала будут выводиться ресурсы с родителем 0, а затем уже все дочерние.
Aleksandr Huz
24 июня 2018, 14:28
0
Все потому, что сортировка идет по menuindex
Дочерние ресурсы начинают отчет заново с 0, поэтому и выводиться сначала все ресурсы с menuindex = 0
Aleksandr Huz
22 июня 2018, 13:28
+1
Как вывести MIGX через Fenom с другой страницы
{var $gallery = 7 | resource: 'gallery' | fromJSON}
7 = id нужно страницы.

а вот хотелось бы на главной вывести 6 результатов, как это сделать?
{set $limit = 6}
{foreach $gallery as $idx => $item}
    {if $idx < $limit}
     ...
    {/if}
{/foreach}
Aleksandr Huz
21 июня 2018, 12:33
1
+1
Можно через модификатор:
$fenom->addModifier('tvname', function ($tvname) {
    // Получаем объект TV по имени
    $tv = $modx->getObject('modTemplateVar',array('name' => $tvname));
    // id текущего ресурса
    $id = $modx->resource->id;
    // значение tv
    $value = $tv->renderOutput($id);
    
    // Ищем необходимое значение и возвращаем навазние
    $tvlist = explode('||', $tv->get('elements'));
    foreach ($tvlist as $item) {
        $arr = explode('==',$item);
        if($arr[1] == $value) {
            return $arr[0];
        }
    }
    return $tvname;
});

В чанке:
{'name TV' | tvname}
Aleksandr Huz
19 июня 2018, 14:33
0
Спасибо))
Aleksandr Huz
19 июня 2018, 13:51
0
Подскажите, как разместить код по катом?
Aleksandr Huz
19 июня 2018, 12:06
0
Вы указали для каждой формы свой FormSelector?
Форма должна иметь уникальный класс, который прописан в FormSelector.
Aleksandr Huz
19 июня 2018, 10:45
+1
Укажите для каждой формы formSelector
Aleksandr Huz
15 июня 2018, 18:01
0
Попробуйте поменять событие на OnBeforeDocFormSave
Aleksandr Huz
15 июня 2018, 11:37
0
Попробуйте CustomUrls
Aleksandr Huz
13 июня 2018, 13:29
+1
Сделайте свой модификатор:
// array_chunk
$fenom->addModifier('array_chunk', function ($arr, $opt = 1) {
    if( is_array($arr) ) {
        $arr = array_chunk($arr, $opt);
    }
    return $arr;
});
И тогда можно разбить массив:
{set $newArr = $arr | array_chunk : '3'}
Aleksandr Huz
09 июня 2018, 20:13
0
Сергей, добрый день. Как получить значение группы?
Файл группы core/components/minifyx/config/groups.php:
return array(
    'lightgalleryCss' => '/assets/frontend/module/lightgallery/css/lightgallery.min.css',
    'lightgalleryJs' => '/assets/frontend/module/lightgallery/js/lightgallery.min.js'
);
В прехуке, хочу получить значение lightgalleryJs
$url = $MinifyX->getJsGroup('lightgalleryJs');
$url пустой.