Вывод тв картинки из сниппета
        Здравствуйте!
Никак не разберусь…
Есть сниппет:
Где-то что-то делаю не так(
Буду признателен за помощь!
    
    
                                                                                
            Никак не разберусь…
Есть сниппет:
<?php
$site_url = MODX_SITE_URL;
$base_url = MODX_BASE_PATH;
$get = modX::sanitize($_GET, $modx->sanitizePatterns);
$alias = urldecode($get['page']);
$resource = $modx->getObject('modResource', [
    'alias'=>$alias,
    'class_key'=>'modDocument'
]);
$prefix = 'amp.';
if ($resource) {
    $placeholders = [
        'pagetitle' => $resource->get('pagetitle'),
        'content' => $resource->get('content'),
        'canonical' => $modx->makeUrl($resource->get('id'), '', '', 'full'),
        'published' => $resource->get('publishedon'),
        'edited' => $resource->get('editedon'),
    ];
    
    $tvlogo = 'image';
    $tvValue = $resource->getTVValue($tvlogo);
    if (!empty($tvValue)) {
        $image_url = $site_url.$tvValue;
        $image_base = $base_url.$tvValue;
        list($width, $height) = getimagesize($image_base);
        $placeholders[$tvlogo] = $tvValue;
        $placeholders[$tvlogo.'_width'] = $width;
        $placeholders[$tvlogo.'_height'] = $height;
    }
    
    $modx->setPlaceholders($placeholders, $prefix);
}Вывожу в шаблоне так:<img class="lazy" src="[[+amp.tvlogo]]" width="200" height="200" alt="[[+amp.pagetitle]]">Но юрл не прописывается в src…Где-то что-то делаю не так(
Буду признателен за помощь!
Комментарии: 12
                Ну вот ты пешеш 3 плесхолдера:
                    $placeholders[$tvlogo] = $tvValue;
$placeholders[$tvlogo.'_width'] = $width;
$placeholders[$tvlogo.'_height'] = $height;а значение $tvlogo = 'image';. Значит то что выше это тоже самое что и:$placeholders['image'] = $tvValue;
$placeholders['image_width'] = $width;
$placeholders['image_height'] = $height;соотвественно:<img class="lazy" src="[[+amp.image]]" width="200" height="200" alt="[[+amp.pagetitle]]">            
                Спасибо! Так тоже пробовал. Увы, не выводит((            
                    
                1.Феномом не пробовал вывести?
3. Снипет вызываеться раньше плесходера?
                    {$_pls['amp.image']}2. [[+amp.pagetitle]] — что-то выводит?3. Снипет вызываеться раньше плесходера?
                1. Не выводит(
2. Да, заголовок страницы выводит, все в порядке
3. Да
Параметры тв:
— ввод — изображение
— вывод — по умолчанию
                    2. Да, заголовок страницы выводит, все в порядке
3. Да
Параметры тв:
— ввод — изображение
— вывод — по умолчанию
                [[+amp.image_width]] — что-то выводит?            
                    
                Нижнее подчеркивание "_"            
                    
                причин может быть еще много, можеш скинуть доступ, чтобы смому тестить            
                    
                Спасибо, я разобрался… 
В
                    В
$tvlogo = 'image'; нужно было писать название тв. Он у меня 'logo'            
                Теперь у меня немного другой вопрос))
Как в сниппете взять значение тв параметра, которое в феноме берется так:
                    Как в сниппете взять значение тв параметра, которое в феноме берется так:
{$_modx->resource.ref_link|url}            
                Если вы в $resource определили нужный ресурс, то так берется значение ТВ поля:
                    $tvValue = $resource->getTVValue('name-tv-polya');где name-tv-polya — название ТВ поля.            
                Здравствуйте!
Да, верно… я немного поспешил, поэтому видимо не совсем ясно объяснил(
Есть тв — список (одиночный выбор). В значениях сниппет:
                    Да, верно… я немного поспешил, поэтому видимо не совсем ясно объяснил(
Есть тв — список (одиночный выбор). В значениях сниппет:
@EVAL return $modx->runSnippet('pdoResources',array('parents'=>'115','depth'=>1,'limit'=>0,'sortby'=>'{"menuindex":"ASC"}','tpl'=>'@INLINE [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));А вот как раз в ресурсах и хранится ссылка, которая просто в шаблоне берется так:{$_modx->resource.ref_link|url}Моя задача достать ее значение в отдельном сниппете            $tvr = $modx->getObject('modTemplateVarResource', array(
  'tmplvarid' => $tvId, //ІД TV (не имя)
  'contentid' => $resourceId //ІД ресурса
));
if ($tvr) {
  echo $tvr->get('value');
}            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.