Вывод тв картинки из сниппета
Здравствуйте!
Никак не разберусь…
Есть сниппет:
Где-то что-то делаю не так(
Буду признателен за помощь!
Никак не разберусь…
Есть сниппет:
<?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');
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.