Серый

Серый

С нами с 17 марта 2016; Место в рейтинге пользователей: #206
Серый
17 марта 2021, 13:24
0
И в .htassecc нужно еще вот такое прописать:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(en|it)/resourceimages(.*)$ resourceimages$2 [L,QSA]
Серый
16 марта 2021, 16:50
0
Коллега, я возможно не правильно применяю ваш код, мне нужно получить массив через запятую ID оригинальных ресурсов. Возможно я по неопытности что-то не так настроил в плагине (я создал плагин и проставил галки OnDocFormRender, OnDocFormSave. Назвал его Babel-Array. Затем сделал сниппет и назвал его getBabelAliasId.
Ни [[getBabelAliasId?&input=`15`]] ни [[+id_15]] ничего мне не дают. Что я могу в теории не так делать?
Я полагал, что вызывая [[getBabelAliasId?&input=`1, 2, 3`]] получу массив ID переведенных ресурсов (11,12,13), возможно что-то делаю не так?
Сам я дизайнер, обратиться особо с этим не к кому((
Серый
16 марта 2021, 13:04
0
Таки нет, работает. Но есть грабли: в настройках всех TV, где используется migxResourceMediaPath нужно для нового контекста выбрать Медиа-Источник, там по умолчанию почему-то выставляют FileSystem, игнорируя установки основного контекста.
А вот Collections не пашут, ибо там рендерер. Вот такие я использую:
collections.renderer.image_migx_path = function(value, metaData, record, rowIndex, colIndex, store) {
    if (value != '' && value != null) {
        var imgPath = MODx.config['collections.renderer_image_path'];
        return '<img src="' + MODx.config.base_url + 'resourceimages/' + record.id + '/' + imgPath + value + '" style="max-width:100%">';
    }
};


Collections.renderer.imageplusmigx = function(value, metaData, record, rowIndex, colIndex, store) {
    if (value != '' && value != null) {
        var data = Ext.decode(value);
        var url = MODx.config.connectors_url + 'system/phpthumb.php?imageplus=1';
        
        var params = {};
        params.src = 'resourceimages/' + record.id + '/' + data.sourceImg.src;
        params.w = 200;
        if (data.sourceImg.src.indexOf('.png') !== -1) {
            params.f = 'png';
        }
        params.sw = data.crop.width;
        params.sh = data.crop.height;
        params.sx = data.crop.x;
        params.sy = data.crop.y;
        for (var i in params) {
            url += '&' + i + '=' + params[i];
        }
        
        return '<img alt="" src="' + url + '" width="' + (params.w || 80) + '" style="max-width:100%">';
    }
}
Если кто подскажет, как туда Бабеля внедрить, буду признателен.
Серый
12 марта 2021, 13:17
0
А есть возможность скрывать от контент-менеджера во вкладке «Файлы» только папку Filesystem, но что бы ResouceImages (MIGX) был доступен?
Серый
05 марта 2021, 12:43
0
И что б совсем по кашруту:
<img src="[[!pthumb? &input=`/resourceimages/[[+id]]/[[+tv.simpleImage:file-name]]` &options=`w=310`]]">
:-D
Серый
05 марта 2021, 12:33
1
0
Помог фильтрик от Василия отсюда.
Сделал сниппет
<?php
$tmp = explode('/', $input);
return end($tmp);
назвал его «file-name», и в чанке вывода карточки публикации на странице-списке использую конструкцию
<img src="/resourceimages/[[+id]]/[[+tv.simpleImage:file-name]]">
Жить стало лучше, жить стало веселее!)))
Серый
05 марта 2021, 12:14
0
Однажды, наверное и дозрею, но вот прям щас нужно тупо получить имя файла из TV, наверняка такая функция есть, просто мне о ней неизвестно((
Серый
05 марта 2021, 12:08
0
Допускаю, что нет решения, но возможен изящный костыль.
Сам по себе путь к MIGX ResourceMediaPath строится относительно именно текущего ID
[[!migxResourceMediaPath? &pathTpl=`resourceimages/{id}/` &createFolder=`1`]]
Соответственно, если бы как-то можно было из tv.image выделить только имя файла, может как-то типа [[+tv.image:givemeyourname]], то тогда можно было бы для pdoResources построить конструкцию для чанка типа
<img src="resourceimages/[[+id]]/[[+tv.image:givemeyourname]]">
Гуглю, пытаюсь найти как вычленить из tv.image только имя, без переключения параметров самого TV в «Текст», ибо хочется иметь более универсальные TV, пока не могу найти((
Серый
10 ноября 2020, 19:47
+5
Василий, спасибо за то что ты сделал, это титанический вклад в развитие MODX, и особенно его русского сегмента. Если бы не это всё, я бы никогда не смог стать вебдевом. Именно modx.pro и pdoTools стали тем инструментом, который лег в руку и позволил реализовывать задуманное. Ну, конечно еще MIGX, но ты, Бруно и Жако — это те прометеи, которых я всякий раз мысленно благодарю, когда работаю с MODX.
Здоровья и вдохновения!
Серый
02 ноября 2020, 09:55
0
Добрый день, с радостью!)
Вот конфигурация MIGX (я в JSON её писать еще не научился, поэтому тыкаю вкладочки):
{
  "formtabs":[
    {
      "MIGX_id":1,
      "caption":"Main",
      "print_before_tabs":"0",
      "fields":[
        {
          "MIGX_id":6,
          "field":"price",
          "caption":"\u0426\u0435\u043d\u0430",
          "description":"",
          "description_is_code":"0",
          "inputTV":"",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":1
        },
        {
          "MIGX_id":7,
          "field":"description",
          "caption":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
          "description":"",
          "description_is_code":"0",
          "inputTV":"",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":2
        },
        {
          "MIGX_id":8,
          "field":"doctors",
          "caption":"\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b",
          "description":"",
          "description_is_code":"0",
          "inputTV":"doctorsList",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":3
        },
        {
          "MIGX_id":9,
          "field":"type",
          "caption":"\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f",
          "description":"",
          "description_is_code":"0",
          "inputTV":"serviceType",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":4
        }
      ],
      "pos":1
    }
  ],
  "contextmenus":"",
  "actionbuttons":"",
  "columnbuttons":"",
  "filters":"",
  "extended":{
    "migx_add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443",
    "disable_add_item":"",
    "add_items_directly":"",
    "formcaption":"",
    "update_win_title":"",
    "win_id":"",
    "maxRecords":"",
    "addNewItemAt":"bottom",
    "media_source_id":"",
    "multiple_formtabs":"",
    "multiple_formtabs_label":"",
    "multiple_formtabs_field":"",
    "multiple_formtabs_optionstext":"",
    "multiple_formtabs_optionsvalue":"",
    "actionbuttonsperrow":4,
    "winbuttonslist":"",
    "extrahandlers":"",
    "filtersperrow":4,
    "packageName":"",
    "classname":"",
    "task":"",
    "getlistsort":"",
    "getlistsortdir":"",
    "sortconfig":"",
    "gridpagesize":"",
    "use_custom_prefix":"0",
    "prefix":"",
    "grid":"",
    "gridload_mode":1,
    "check_resid":1,
    "check_resid_TV":"",
    "join_alias":"",
    "has_jointable":"yes",
    "getlistwhere":"",
    "joins":"",
    "hooksnippets":"",
    "cmpmaincaption":"",
    "cmptabcaption":"",
    "cmptabdescription":"",
    "cmptabcontroller":"",
    "winbuttons":"",
    "onsubmitsuccess":"",
    "submitparams":""
  },
  "columns":[
    {
      "MIGX_id":1,
      "header":"\u0426\u0435\u043d\u0430",
      "dataIndex":"price",
      "width":10,
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":"",
      "editor":"this.textEditor"
    },
    {
      "MIGX_id":2,
      "header":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
      "dataIndex":"description",
      "width":50,
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":"",
      "editor":""
    },
    {
      "MIGX_id":3,
      "header":"Doctors ",
      "dataIndex":"doctorsList",
      "width":20,
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"this.renderChunk",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":[
        {
          "MIGX_id":1,
          "name":"doctorsListTpl",
          "use_as_fallback":"",
          "value":"",
          "clickaction":"",
          "handler":"",
          "image":""
        }
      ],
      "editor":"this.textEditor"
    },
    {
      "MIGX_id":4,
      "header":"\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f",
      "dataIndex":"type_list",
      "width":30,
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"this.renderChunk",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"[[migxLoopCollection? \n&classname=`modResource`\n&where=`{\"id:IN\":[ [[+type]] ]}`\n&tpl=`@CODE:[[+pagetitle]]<br \/>`\n]]",
      "renderoptions":"",
      "editor":"this.textEditor"
    },
    {
      "MIGX_id":5,
      "header":"Doctors IDs",
      "dataIndex":"doctors",
      "width":"",
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":"",
      "editor":""
    }
  ],
  "category":""
}
doctorsListTpl:
[[!pdoResources?
&parents=`2`
&resources=`[[+doctors]]`
&tpl=`@INLINE [[+doctors]]`
]]
Серый
23 октября 2020, 15:51
0
UPD: Проблема в том, что у меня не получается вывести в соседнюю колонку список выбранных через мультиселект ресурсов в другой0. Если создать колонку с тем же именем, что и поле во вкладке, туда список через запятую выводится. Но если попытаться замутить список pagetitle через любимое pdoTools, в соседнем столбце, то в случае, когда выбран один элемент в мультиселекте, всё работает ОК, но если выбрать более одного, то в одноименной колонке будет нормальный список через запятую, а в колонке, в которой этот список через плейсхолдер должен давать идентичный (вроде бы) перечень ресурсов через запятую, но там пустота. Открываем вкладку, удаляем в мультиселекте все кроме одного — вуаля! всё работает, айдишник выбранного отдается и преобразовывается в pagetitle.
Памагитии…
Серый
08 октября 2020, 23:21
0
Вот такую штуку использую, для вывода pagetitle айдишников из графы doctors, без этого сниппета нормальное перечисление через запятю, а с ним, тупо всех или только одного((
[[!pdoResources?
&parents=`2`
&resources=`[[+doctors]]`
&tpl=`@INLINE [[+pagetitle]]
`
]]
Серый
08 октября 2020, 23:11
0
Возможно проблема была в том, что выбрано несколько? У меня одн выводит ОК, а вот несколько — пустота… Вам удалось разобраться?
Серый
08 октября 2020, 22:49
0
Добрый день! Штука работает, но только в случае выбора одного элемента из списка. А если там мультивыбор? Я пытаюсь замутить через pdoResourses, но там тоже грабли: либо одного выводит, либо вообще все ресурсы из возможных, хотя выбрано только два((
Серый
29 января 2020, 20:29
0
Это было как узнать про IDKFA )))
Там еще и
&sortdir=`DESC`
работает. Фантастиш! Спасибо большое!
Серый
29 ноября 2019, 14:08
+1
Уже давно мучаюсь с вопросом — как в стандартный пакет в настройках запихать свои стили? Например очень нужен small, ну и вообще свои штуки. Ни в заголовки, ни в строчные, ну никуда не могу ничего вклинить(((
Например setting_tinymcerte.headers_format:
[{"title": "Header 2", "format": "h2"},
 {"title": "Header 3", "format": "h3"},
 {"title": "Header 4", "format": "h4"},
 {"title": "Header 5", "format": "h5"},
 {"title": "Header 6", "format": "h6"},
 {"title": "Pre", "format": "pre"}
]
Вообще ноль внимания, все перфекционицепцы уже извелись((
Серый
29 ноября 2019, 12:18
0
Какая же у нас с вами конфетка получилась, товарищ!!!
Большое вам человеческое!
Серый
29 ноября 2019, 10:05
0
Красота-то какая!!!
А если надо какое-то TV туда? Я честно тыкался с точкой и нижним пробелом, ничего не вышло((
'tv.simpleText' => $res->get('tv_simpleText'),
Серый
28 ноября 2019, 14:24
0
Извиняюсь, я просто не заметил, либо вы чуть позже приписали, а я резко метнулся, как письмо на почту упало)))
Что-то ничего не выводится, наверное где-то неточность. Я даже в обезьяну с гранатой поиграл, попытался скобки в разные места повставлять: там две открылось и не закрылось…
<?php
$arr = explode(',', $value);
foreach($arr as $id){
    if(!$res = $modx->getObject('modResource', $id)) continue;
    $out .= $modx->getChunk('collection_item', array(
        'pagetitle' => $res->get('pagetitle'),
        'longtitle' => $res->get('longtitle')
}
return $out;
Вот эти вроде как не закрылись
('collection_item', array(
Серый
28 ноября 2019, 10:48
0
Спасибо огромное! Я даже разобрался методом тыка как сделать что б каждый ресурс был отдельной строкой, но для полного счастья не хватает возможности завернуть всё вот в такую конструкцию:
<p><b>'pagetitle'</b> - <i>'longtitle'</i></p>
Даже гуглил как это всё в php изолировать, но не смог одолеть((