Page Variables (PV)? - это вставки php-кода, исполняемые в момент взаимодействия со страницей. Под взаимодействием подразумевается не только очевидные просмотр/редактирование, но также и, например, pagelist'инг.
Принципиальная отличие второго случая в том, что при pagelist'инге используются переменные текущей страницы, а не той, которая попадает в выборку pagelist. На самом деле все продумано и предусмотрено, ибо акт определения Page Variables происходит eval'ом в момент генерации страницы, и если понимать принцип, можно легко достичь нужного результата. Но объяснить его словами пока не получается, поэтому приведу разные примеры.
$FmtPV['$targets'] = "\$page['targets']";
Этот код записывает значение поля targets в PV $targets Как видно, это заэкранированное php-выражение, которое будет исполнено в контексте обращения к странице. Переменные относительные: при pagelist, соответственно, будет работать.
$FmtPV['$targetsLinks'] = "phphTargets2Links(\$page)";
Этот код записывает в $targetsLinks функцию, исполняемую в контексте обращения к странице. Работает при pagelist.
$FmtPV['$targetsLinks'] = "'".phphTargets2Links($page)."'";
Этот код записывает в $targetsLinks функцию, исполняемую во время генерации текущей страницы. При pagelist он работать НЕ будет, так как в функцию будет передаваться массив $page той страницы, с которой вызван pagelist. Стоит отметить, что при просмотре/редактировании данной страницы, код будет работать, так как в этом случае в массив $page "случайно" попадет то, что нужно.
Оставить комментарий