Всем привет. Пытаюсь темизировать форму интервала дат новостей. Сейчас выводится в таком виде. Дата начала и Дата окончания. Пытаюсь эти слова поменять на слова С и По. Делаю следующим образом:
<?php
//print_r($vars);
$vars['form']['date_filter']['min']['#title'] = t('С'); // заменяем текст
unset($vars['form']['date_filter']['min']['#printed']);
$vars['widgets']['filter-date_filter']->widget=drupal_render($vars['form']['date_filter']['min']);
$vars['form']['date_filter']['max']['#title'] = t('По'); // заменяем текст
unset($vars['form']['date_filter']['max']['#printed']);
$vars['widgets']['filter-date_filter']->widget=drupal_render($vars['form']['date_filter']['max']);
?>
И ничего не выходит. Что делаю не так? В сети только простые варианты есть. Заранее благодарен
Вся функия
<?php
function airat_preprocess_views_exposed_form(&$vars)
{
$vars['form']['date_filter']['min']['#title'] = 'С'; // заменяем текст
unset($vars['form']['date_filter']['min']['#printed']);
$vars['widgets']['filter-date_filter']->widget=drupal_render($vars['form']['date_filter']['min']);
$vars['form']['date_filter']['max']['#title'] = 'По'; // заменяем текст
unset($vars['form']['date_filter']['max']['#printed']);
$vars['widgets']['filter-date_filter']->widget=drupal_render($vars['form']['date_filter']['max']);
}
?>
Вложение | Размер |
---|---|
![]() | 29.8 КБ |
Комментарии
никто не знает?
А через переводы не проще, или "Дата начала и Дата окончания" где-то ещё используются?
пробейте в через поиск "Дата начала" в Вашем файле. Второе значение, то что в
пробовали менять? К примеру можно заменить через str_replace()
не понял, если не сложно можно полностью ваш вариант?
<?php
str_replace('Дата начала', 'С', $vars['form']['date_filter']['min']['#children']);
?>
аналогично с окончанием
П.С пардон, очепятался)
Хочу внутри данной функции и по правилам
куды ж дальше)
замени
на
Inj как именно? вот так?
<?php function airat_preprocess_views_exposed_form(&$vars)
str_replace('Дата начала', 'С', $vars['form']['date_filter']['min']['#children']); // заменяем текст
{
unset($vars['form']['date_filter']['min']['#printed']);
$vars['widgets']['filter-date_filter']->widget=drupal_render($vars['form']['date_filter']['min']);
}
?>ну я бы ещё добавил
}
что бы формой не промахнуться, в остальном так
Нет, второе поле вообще исчезло. Посмотрите пожалуйста еще раз прикрепленный файл с массивом переменной vars
а так?
{
if ($vars['form']['#id'] == 'views-exposed-form-news-page-1') {
str_replace('Дата начала', 'С', $vars['form']['date_filter']['min']['#children']); // заменяем текст
str_replace('Дата окончания', 'По', $vars['form']['date_filter']['max']['#children']); // заменяем текст
unset($vars['form']['date_filter']['#printed']);
$vars['widgets']['filter-date_filter']->widget=drupal_render($vars['form']['date_filter']);
}
}
А так вообще 0 эффекта никаких изменений нет. Сама функция function airat_preprocess_views_exposed_form работает. так как для других моментов (переписать кнопку отправки) работает
{
if ($vars['form']['#id'] == 'views-exposed-form-news-page-1') {
str_replace('Дата начала', 'С', $vars['form']['date_filter']['min']['#children']); // заменяем текст
str_replace('Дата окончания', 'По', $vars['form']['date_filter']['max']['#children']); // заменяем текст
unset($vars['form']['date_filter']['min']['#printed']);
unset($vars['form']['date_filter']['max']['#printed']);
$vars['widgets']['filter-date_filter']['min']->widget=drupal_render($vars['form']['date_filter']['min']);
$vars['widgets']['filter-date_filter']['max']->widget=drupal_render($vars['form']['date_filter']['max']);
}
}
ещё так попробуй
а где ты это нашел?
<?php$vars['widgets']['filter-date_filter']['min']->widget?>
В массиве же нет ее. И поэтому вообще ошибка пхп вылезла что нет такого
{
if ($vars['form']['#id'] == 'views-exposed-form-news-page-1') {
str_replace('Дата начала', 'С', $vars['form']['date_filter']['min']['#children']); // заменяем текст
str_replace('Дата окончания', 'По', $vars['form']['date_filter']['max']['#children']); // заменяем текст
unset($vars['form']['date_filter']['#printed']);
unset($vars['form']['date_filter']['max']['#printed']);
unset($vars['form']['date_filter']['min']['#printed']);
$vars['widgets']['filter-date_filter']->widget=drupal_render($vars['form']['date_filter']);
}
}
а так?)
нет( никаких изменений, ничего не изменилось
попробуй дописать ещё смену тайтлов, которые делал в самом начале к моему последнему варианту функции и попробуй вывести &$vars ещё раз, в самом конце, после исправлений. Посмотри, будет ли вообще присутствовать "Дата окончания" и если да, то в какой переменной
тьфу, блин, что-то торможу сегодня конкретно. Ведь нужно же присвоить замену
$vars['form']['date_filter']['max']['#children'] = str_replace('Дата окончания', 'По', $vars['form']['date_filter']['max']['#children']); // заменяем текст
а проще, наверн, вместо всего этого написать
{
if ($vars['form']['#id'] == 'views-exposed-form-news-page-1') {
$vars['widgets']['filter-date_filter']->widget = str_replace(array('Дата начала', 'Дата окончания'), array('С', 'По'), $vars['widgets']['filter-date_filter']->widget);
}
}
...явно не мой день)
Да!!!!! Ты молодец! Заработало так как я хотел)))) Респект тебе большой
<?phpfunction airat_preprocess_views_exposed_form(&$vars)
{
if ($vars['form']['#id'] == 'views-exposed-form-news-page-1') {
$vars['widgets']['filter-date_filter']->widget = str_replace(array('Дата начала', 'Дата окончания'), array('С', 'По'), $vars['widgets']['filter-date_filter']->widget);
}
}?>
[Решено] в тему допиши, плз