Павел Романов

Павел Романов

С нами с 03 марта 2014; Место в рейтинге пользователей: #42
Павел Романов
27 декабря 2019, 14:43
+2
Можно не менять плагин, а в системных настройках в разделе «Дружественные URL» в параметре
friendly_alias_restrict_chars_pattern убрать точку, чтобы она не вырезалась из имени файла при его закачке.
Либо в friendly_alias_restrict_chars поставить alphanumeric — тогда шаблон использоваться не будет.
Павел Романов
27 декабря 2019, 14:38
0
Можно в системных настройках в разделе «Дружественные URL» в параметре friendly_alias_restrict_chars поставить alphanumeric, либо оставить pattern, но убрать точку из шаблона.
filetranslit пользуется системными настройками и пытается вырезать точку из имени файла, что и вызывает ошибку.
Павел Романов
26 декабря 2019, 11:41
+1
if($resource = $modx->getObject('modResource', array('pagetitle' => 'pagetitle'))) $id = $resource->get('id');
Павел Романов
11 декабря 2019, 12:20
0
Сделайте сниппет rssReplace:
<?php
$arr1 = array('assets/', 'src="'); // что меняем
$arr2 = array('/assets/', 'src="/'); // на что меняем
return '<![CDATA[ '.str_replace($arr1, $arr2, $input).' ]]>';
Используйте как модификатор:
[[+content:rssReplace]]
Павел Романов
10 декабря 2019, 14:39
0
Тогда получать ID нового объекта в ответе и прописывать непосредственно:
$data = [
    'id' => 'id продукта',
    'file' => 'путь к файлу',
];

$response = $modx->runProcessor('gallery/upload', $data, [
    'processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/mgr/',
]);

if($gallery = $modx->getObject('msProductFile', $response->response['object']['id'])){
    $gallery->set('name',  'имя'); // тут пишем имя
    $gallery->save();
}
Павел Романов
10 декабря 2019, 13:08
0
Так не работает?
$data = [
    'id' => 'id продукта',
    'file' => 'путь к файлу',
    'name' => 'имя' // тут имя
];
...
Павел Романов
03 декабря 2019, 09:34
0
Очистить таблицу modx_manager_log в базе.
Павел Романов
29 ноября 2019, 12:10
0
Через get можно получить только поля ресурса (те, которые в таблице modx_site_content). TV можно получить через getTVValue:
$res->getTVValue('tvname');

Шпаргалка по объектам
Методы MODX
Павел Романов
29 ноября 2019, 07:58
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;
Павел Романов
28 ноября 2019, 12:22
0
Э…, так я же выше написал )).
Делайте с шаблонизацией, в Вашем случае чанк такой:
<p><b>[[+pagetitle]]</b> - <i>[[+longtitle]]</i></p>
Павел Романов
28 ноября 2019, 10:46
+1
Добавьте запись в лог, посмотрите, что в $new_tv:
....
$new_tv = json_encode($arr); //переводим итоговый массив в JSON-строку.
$modx->log(modX::LOG_LEVEL_ERROR, $new_tv );
....
Павел Романов
28 ноября 2019, 10:36
0
Тогда сниппет такой:
<?php
$arr = explode(',', $value);
foreach($arr as $id){
    if(!$res = $modx->getObject('modResource', $id)) continue;
    $out[] = $res->get('pagetitle').' - '.$res->get('longtitle');
}
return implode(', ', $out);

Можно с шаблонозацией в чанке сделать:
<?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, где используйте соответствующие плейсхолдеры:
<div>
    <b>[[+pagetitle]]</b> <i>[[+longtitle]]</i>
</div>
Павел Романов
28 ноября 2019, 10:13
0
ID как-то разделяются (запятыми, например)?
Павел Романов
28 ноября 2019, 10:03
0
Сниппет создайте.
В поле укажите его название, а не код.
Павел Романов
27 ноября 2019, 17:31
+1
В Collections в качестве рендера ячейки можно использовать сниппет (прописывается в поле «Сниппет-рендерер»), где значение доступно в переменной $value.
Соответственно, если значение ячейки = ID ресурса, вывести его pagetitle можно так:
<?php
if(!$res = $modx->getObject('modResource', $value)) return $value;
return $res->get('pagetitle');
Павел Романов
08 ноября 2019, 17:58
1
+2
Попробуйте так:
<?php
foreach ($modx->getIterator('modContextSetting', array('key' => 'site_url')) as $ctx) {
    $ctx->set('value', 'https://'.$context->key.'. новый домен.ru/');
    $ctx->save();
}
Павел Романов
31 октября 2019, 17:54
+4
В первом сниппете:
$modx->setPlaceholder('placeholder_name', $value);

Чанк:
[[$chunk_name? &pls=`[[+placeholder_name]]`]]

В чанке:
[[Snippet?
&pls=`[[+pls]]`
...
]]

Или в самом втором сниппете:
$pls = $modx->getPlaceholder('placeholder_name');