Aleksandr Huz

Aleksandr Huz

С нами с 02 августа 2014; Место в рейтинге пользователей: #20
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 пустой.
Aleksandr Huz
31 мая 2018, 17:11
+2
Вам нужно написать модификатор, например вот:
$fenom->addModifier('svg', function ($input) use ($modx) {
    if( file_exists($input) ) {
        $info = new SplFileInfo($input);
        if( $info->getExtension() == 'svg' ) {
            $input = file_get_contents('./'.$input, FILE_USE_INCLUDE_PATH);
        }
    }
    return $input;
});
Aleksandr Huz
12 мая 2018, 18:15
+1
Ну, это точно не баг
Отправлю Василию pull request, посмотрим, что он скажет))
Aleksandr Huz
12 мая 2018, 14:41
3
+3
Кто знает, подскажите, почему так много запросов
Если распечатать содержимое ресурса, то можно увидеть, что к массиву добавляются все привязанные TV
{$_modx->resource | print}
Вот поэтому и разница в запросах.

можно ли что-то с этим сделать?
Можно заменить вот эту строчку:
$this->resource[$k] = $modx->resource->getTVValue($k)
на эту:
$this->resource[$k] = $v[1]
Aleksandr Huz
11 мая 2018, 12:15
+1
Попробуйте так:

1. Для начала нужно заменить эту строчку на
'priority' => $event_data['priority'] ?: 0,
2. Затем в пустой массив, что вы писали, добавить приоритет:
'priority' => -99
Aleksandr Huz
07 мая 2018, 19:31
+1
Это можно исправить так:
{$uri | replace: "index.html": ""}
или так:
{if $id == 1}{$link ~ $_modx->config.cultureKey ~ "/"}{else}{$uri}{/if}
Aleksandr Huz
07 мая 2018, 17:55
0
А если заменить $link на $uri?
Aleksandr Huz
01 мая 2018, 15:09
0
Вопрос был совсем не про штатный инструмент. И он генерирует точно такой же код, что я и написал выше. Тем более. что плагин можно сделать статичным и редактировать через свой любимый редактор.
Aleksandr Huz
30 апреля 2018, 18:24
0
Я узнал еще об одном способе)))
<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnDocFormPrerender':
        // Для ресурсов с индетификатором шаблона 2
        // а также для всех новых ресурсов ( $resource == null )
        if( $resource && $resource->get('template') == 2 || !$resource){
            $modx->regClientStartupHTMLBlock('<script>
        Ext.onReady(function() {
            	
             // Добавляем вкладку
                MODx.addTab("modx-resource-tabs",{title:"SEO",id:"seo"});
        
             // Прячем ненужные вкладки
        	MODx.hideRegion("modx-resource-tabs", "modx-panel-resource-tv");
        	MODx.hideRegion("modx-resource-tabs", "modx-resource-access-permissions");
            
             // Прячем ненужные поля
        	MODx.hideField("modx-panel-resource", ["modx-resource-content","description"]);
        	
             // Переносим TV на вкладку
        	MODx.moveTV(["tv32"], "seo");

        });
    </script>');
        }
        break;
}
Aleksandr Huz
05 апреля 2018, 15:38
0
Можно через плагин скрыть:
<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnDocFormPrerender':
        // Скрываем поле description, для ресурсов с индетификатором шаблона 2
        // а также скрываем поле для всех новых ресурсов ( $resource == null )
        if( $resource && $resource->get('template') == 2 || !$resource){
            $modx->regClientStartupHTMLBlock('
            <style>
                label[for=modx-resource-description],
                #modx-resource-description {
                    display:none!important
                }
            </style>');
        }
        break;
}
Aleksandr Huz
04 апреля 2018, 11:06
0
Основные поля лучше сохранять через событие OnBeforeDocFormSave
Получить поле контент:
$resource->getContent()
Сохранить:
$resource->setContent($output)
Aleksandr Huz
30 марта 2018, 14:10
0
Как вариант использовать pdoResources с использованием параметра &resources='5,6,7,8', а в чанке вызывать getImageList
Aleksandr Huz
30 марта 2018, 10:43
0
getTVValue — получение значения
setTVValue — запись нового значения