И снова к знакомым баранам: Так как же во 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. В общем прежде чем выводить заголовок его мне надо преобразовать в нормальный вид, а вот как его вывести я хз.
Что я неправильно делаю?
Комментарии
Я тоже сначала пошел твоим путем. Только я сделал проще и у меня работало
Я решил эту проблему в page.tpl.php
Но потом я обнаружил, что модуль сам может с этим справится.
Если проблема с тире, то в настройках views как раз есть настройки: заменять пробел на тире и наоборот:
Transform dashes in URL to spaces
Transform spaces to dashes in URL
Давай еще раз:
1) У тебя view с аргументом значения поля из списка. В урле пробел заменяется на тире.
2) В списке значения без пробелов
3) При формировании урла нужно, что бы ставилось тире.
Для запроса тебе хватит параметра: Transform spaces to dashes in URL.
В этом случае views заменит пробелы на тире у твоего значения из базы и сравнит с аргументом из урла.
А второй для обработки аргумента.
Ох всё так запутано тут:
Значит изначально я хотел поле сск заполнять простыми значениями, но сейчас вынужден заполнять по схеме Key|Label из-за кривизны вьювза относительно сск полей.
С момента задания вопроса кое-что поменял в виде из-за смены формата ввода в поле сск.
Сейчас у меня вид с генерацией страницы и блока.
СТРАНИЦА "Автопарк":
- адрес: cars
- с аргументом "значение сск поля из списка" Содержание: Модель, при отсутствии аргумента показывает все значения.
В урле пробел заменяется тире модулем Pathauto (часть урла - это значние этого сск поля).
Мне нужно чтобы заголовок страницы формировался динамично в поле пхп. Мне не подходит схема Заголовок %1 т.к. вид вместо %1 подставлятся outlander-xl, а нужно Outlander XL. Я хотел бы ручками провести нужные трансформации строки из урла и вывести её в заголовок, т.к. в отличии от терминов таксономии поля сск в видах не имеют возможностей трансформации аргумента и урла
БЛОК "Популяция":
- с аргументом "значение сск поля из списка" Содержание: Модель, но при отсутствии аргумента показывает Сводка, сортировка по возрастанию
Вывожу этот блок на странице вида (cars и cars/*) и получаю список пролинкованных значений поля сск с количеством их повторов - тут всё очевидно. В списке видим значение Label, а урл со значения Key поля сск.
Как Вы понимаете и Transform dashes in URL to spaces и Transform spaces to dashes in URL и ещё куча всего полезного для полей ССК почему не предусмотрено. Поэтому и приходится делать такие танцы с бубном, чтобы и ссылки формировались одинаково правильно без пробелов и в заголовках были полноценные названия.
В общем вопрос остается прежним: Как динамично формировать заголовок страницы в поле пхп аргумента вида?
P.S.
У меня установлен Views 2.5, может быть эта проблема только у меня, может переставить? Или у всех с последним вьювзом такие грабли с полями сск?
Что так всё серьезно? И никто с таким не сталкивался до меня и не знает, как порешить эту задачу именно из Вида? Тема всё ещё актуальна. Помогите советом.
Ну раз не предусмотрено для CCK давно бы уже в page.tpl.php добавил строчку:
$title=str_replace(' ', '-', $title);
И все.
Давно пора понять, что ни в одной CMS не будет все до конца предусмотрено, чтобы любой пенсионер нажал кнопку и весь сайт сам сделался, причем такой - какой нужен.
Drupal - это набор "стройматериалов" из которых делается сайт. И порой каких-то готовых решений нет. Нужно просто взять и сделать ту часть которой не хватает.
У views есть темизация каждого поля. Прямо в шаблоне для поля можно настроить вывод так как тебе нужно. Это про ссылки.
Берешь в руки <?php ?> и идешь делать то чего не хватает. Пока дождешься готового ответа все клиенты разбегутся :).
Спасибо. Не разбегутся, проект для души... по крайней мере пока