Проверка аргумента на уровне PHP и динамическое формирование заголовка страницы?

Главные вкладки

Аватар пользователя MITSUFAN MITSUFAN 29 мая 2009 в 4:22

И снова к знакомым баранам: Так как же во Views 2.5 из области ввода PHP кода для проверки аргумента назначить заголовок страницы?
Вроде как в 5-ке - это $view->page_title = "Мой заголовок";, а в 6-ке и Views 2.x - это функция drupal_set_title("Мой заголовок");

Нашел здесь в примере http://drupal.org/node/315995 четко указа функция drupal_set_title() для назначения заголовка страницы, но почему-то у меня этот вариант отказывается работать напрочь.

Есть CCK поле-список, которое имеет в качестве значений строки с пробелами, при этом Pathauto пробелы заменяет знаком "-", я в коде ниже преобразую строку (с тире) из урла в исходный вид (с пробелом) чтобы сработала правильно проверка аргумента. Ведь создатели Views не предусмотрели таких возможностей преобразования аргумента для CCK поля, как, например, для термина таксономии:

<?php
if ($argument){
   
$oldarg $argument;
   
$handler->argument str_replace("-"" " $oldarg); // преобразование
   
drupal_set_title("Mitsubishi " check_plain($oldarg)); // попытка установить заголовок страницы
   
return true;
}
?>

Почему именно так пытаюсь вывести заголовок? Просто после преобразований аргумента, например, Outlander XL он становится таким: Outlander-XL или из урла, например, таким: outlander-xl, и в таком виде выведется в качестве заголовка "Mitsubishi Outlander-XL" или "Mitsubishi outlander-xl" если использовать стандартное определение Mitsubishi %1. И всё из-за того что ССК поля обидели во Views. В общем прежде чем выводить заголовок его мне надо преобразовать в нормальный вид, а вот как его вывести я хз.

Что я неправильно делаю?

Комментарии

Аватар пользователя venom280@drupal.org venom280@drupal.org 29 мая 2009 в 8:05

Я тоже сначала пошел твоим путем. Только я сделал проще и у меня работало Smile
Я решил эту проблему в page.tpl.php Smile

Но потом я обнаружил, что модуль сам может с этим справится.
Если проблема с тире, то в настройках views как раз есть настройки: заменять пробел на тире и наоборот:
Transform dashes in URL to spaces
Transform spaces to dashes in URL

Давай еще раз:
1) У тебя view с аргументом значения поля из списка. В урле пробел заменяется на тире.
2) В списке значения без пробелов
3) При формировании урла нужно, что бы ставилось тире.

Для запроса тебе хватит параметра: Transform spaces to dashes in URL.
В этом случае views заменит пробелы на тире у твоего значения из базы и сравнит с аргументом из урла.
А второй для обработки аргумента.

Аватар пользователя MITSUFAN MITSUFAN 29 мая 2009 в 10:25

"<a href="mailto:venom280@drupal.org">venom280@drupal.org</a>" wrote:
Давай еще раз:
1) У тебя view с аргументом значения поля из списка. В урле пробел заменяется на тире.
2) В списке значения без пробелов
3) При формировании урла нужно, что бы ставилось тире.

Ох всё так запутано тут:
Значит изначально я хотел поле сск заполнять простыми значениями, но сейчас вынужден заполнять по схеме Key|Label из-за кривизны вьювза относительно сск полей.

С момента задания вопроса кое-что поменял в виде из-за смены формата ввода в поле сск.

Сейчас у меня вид с генерацией страницы и блока.
СТРАНИЦА "Автопарк":
- адрес: cars
- с аргументом "значение сск поля из списка" Содержание: Модель, при отсутствии аргумента показывает все значения.
В урле пробел заменяется тире модулем Pathauto (часть урла - это значние этого сск поля).
Мне нужно чтобы заголовок страницы формировался динамично в поле пхп. Мне не подходит схема Заголовок %1 т.к. вид вместо %1 подставлятся outlander-xl, а нужно Outlander XL. Я хотел бы ручками провести нужные трансформации строки из урла и вывести её в заголовок, т.к. в отличии от терминов таксономии поля сск в видах не имеют возможностей трансформации аргумента и урла Sad

БЛОК "Популяция":
- с аргументом "значение сск поля из списка" Содержание: Модель, но при отсутствии аргумента показывает Сводка, сортировка по возрастанию
Вывожу этот блок на странице вида (cars и cars/*) и получаю список пролинкованных значений поля сск с количеством их повторов - тут всё очевидно. В списке видим значение Label, а урл со значения Key поля сск.

Как Вы понимаете и Transform dashes in URL to spaces и Transform spaces to dashes in URL и ещё куча всего полезного для полей ССК почему не предусмотрено. Поэтому и приходится делать такие танцы с бубном, чтобы и ссылки формировались одинаково правильно без пробелов и в заголовках были полноценные названия.

В общем вопрос остается прежним: Как динамично формировать заголовок страницы в поле пхп аргумента вида?

P.S.
У меня установлен Views 2.5, может быть эта проблема только у меня, может переставить? Или у всех с последним вьювзом такие грабли с полями сск?

Аватар пользователя MITSUFAN MITSUFAN 1 июня 2009 в 17:33

Что так всё серьезно? И никто с таким не сталкивался до меня и не знает, как порешить эту задачу именно из Вида? Тема всё ещё актуальна. Помогите советом.

Аватар пользователя venom280@drupal.org venom280@drupal.org 2 июня 2009 в 8:53

Давно пора понять, что ни в одной CMS не будет все до конца предусмотрено, чтобы любой пенсионер нажал кнопку и весь сайт сам сделался, причем такой - какой нужен.

Drupal - это набор "стройматериалов" из которых делается сайт. И порой каких-то готовых решений нет. Нужно просто взять и сделать ту часть которой не хватает.

У views есть темизация каждого поля. Прямо в шаблоне для поля можно настроить вывод так как тебе нужно. Это про ссылки.

Берешь в руки <?php ?> и идешь делать то чего не хватает. Пока дождешься готового ответа все клиенты разбегутся :).