Сниппет - проверка файла на существование
Создал сниппет FileExists
выводит — images/4.jpg файла нет
если же я ручками прописываю $pid = '4';
то выводит — images/4.jpg файл есть
Что за волшебство такое? Непонятненько… Подскажите, в чем проблема?
$pid = '[[*parent]]'; //получаем id родителя (допустим 4)
$path = 'images/'.$pid.'.jpg'; //подставляем id родителя в путь (получается images/4.jpg)
if (file_exists($path)) {
echo $path. 'файл есть';
} else {
echo $path. 'файла нет';
}
вызываю сниппет на странице [[!FileExists]]выводит — images/4.jpg файла нет
если же я ручками прописываю $pid = '4';
то выводит — images/4.jpg файл есть
Что за волшебство такое? Непонятненько… Подскажите, в чем проблема?
Комментарии: 11
$pid = '[[*parent]]';
Здесь всегда будет пусто, потому что теги внутри сниппета не работают.Нужно так:
if (empty($pid)) {
$pid = $modx->resource->parent;
}
Василий, большое спасибо за столь оперативный ответ! Теперь всё работает, как надо. Спасибо еще раз)
Добрый день! А как быть если я вызываю снимет внутри другого, например pdoMenu, и мне нужно получить id пункта меню и его обработать в своем сниппете?
например:
например:
[[pdoMenu?
&tpl=`@INLINE [[mySnippet?&id=`[[+id]]`]] .... `
а внутри mySnippet мне нужно получить id пункта
Нужно вынести в чанк, в inline не будет работать.
Я уже с устоявшейся периодичностью кидаю одну и ту же ссылку на документацию. Почему их никто не читает? Буквально два коммента назад писал.
П.С. Заметил, что у нас появился злой бот по имени Slava, который всем тупо минусы ставит. Вот и Андрея он не взлюбил. У меня ни одного коммента не пропускает. Какие-то проблемы у парня. Даже не знаю, чем ему помочь. Может побольше комментов писать, чтобы он душу отводил ставя минусы?
П.С. Заметил, что у нас появился злой бот по имени Slava, который всем тупо минусы ставит. Вот и Андрея он не взлюбил. У меня ни одного коммента не пропускает. Какие-то проблемы у парня. Даже не знаю, чем ему помочь. Может побольше комментов писать, чтобы он душу отводил ставя минусы?
Он уже некоторое время у меня на карандаше.
Пока просто обнулил все отрицательные оценки, будет продолжать — отключу.
Пока просто обнулил все отрицательные оценки, будет продолжать — отключу.
Я бы на его месте занялся саморазвитием. Поднимать самооценку делая гадости другим деструктивно действует на личность. В этом плане религия усиливает нравственный фундамент человека, раз уж государство сняло с себя обязательство по воспитанию детей. Я сейчас не про церковь говорю.
Меня он тоже не любит, минусит =)))
Спасибо!
на всякий случай выложу готовый сниппет здесь, вдруг кому пригодится:
При этом не нужно создавать дополнительную ТV, и указывать её значение для каждого документа.
Достаточно закинуть все нужные файлы в папку i/pdf/
предварительно переименовав их, например, в 2-doc1.pdf, 2-doc2.pdf, 10-doc1.pdf, что легко делается через ТоталКоммандер.
<?php
$pid = $modx->resource->parent;
$childname= $modx->resource->pagetitle;
$path = 'i/pdf/'.$pid.'-'.$childname.'.pdf';
if (file_exists($path)) {
echo '<a href="'.$path.'" class="download" title="Скачать PDF '.$childname.'">Скачать PDF-каталог '.$childname.'</a>';
}
Пригодится он для того, чтобы можно было выводить ссылку на файл, прикрепленный к документу, если он(файл) существует.При этом не нужно создавать дополнительную ТV, и указывать её значение для каждого документа.
Достаточно закинуть все нужные файлы в папку i/pdf/
предварительно переименовав их, например, в 2-doc1.pdf, 2-doc2.pdf, 10-doc1.pdf, что легко делается через ТоталКоммандер.
Смешивать в одном месте php и html неправильно. Подумай как сделать разделить логику и отображение. Используй шаблонизатор.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.