атрибут title у ссылок [SOLVED]

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

Аватар пользователя andribas@drupal.org andribas@drupal.org 21 октября 2010 в 10:58

Скажите, где можно переопределить ссылку - я так понял функция l() ?
чтобы во всех <a href="url">link</a> было добавлено title="link"?
Ее потом чистить от тегов еще надо?

Либо как это сделать во views?
у меня стоит
Выводить это поле в виде ссылки
Alt текст: 123 - работает
если пишу
Alt текст: [title] - то ничего не показывает

P.S. [created] - показывает. попробовал добавить скрытый title перед этим полем (title_1) - тоже не показывает.

и чистит ли он например от кавычек такой текст?

Подстановочные шаблоны

Для вывода в текущем режиме Представления доступны следующие шаблоны подстановки. Если ввести маркер шаблона, указанный слева, то при просмотре Представления вместо него будет подставлено значение, указанное в списке напротив маркера. Необходимо учитывать, что в связи с порядком обработки результата Вы не сможете использовать значения полей, расположенных после текущего. Если Вы хотите использовать поле, которое есть в представлении, но здесь не указано - перестройте порядок полей.
Поля

    * [created] == Материал: Дата создания
    * [title] == Материал: Заголовок

Комментарии

Аватар пользователя andribas@drupal.org andribas@drupal.org 21 октября 2010 в 11:28

"skiller_07" wrote:
попробуйте местами поменять [title] и [created]

не помогло - [title] никак не хочет в alt вставлять - не пишет alt="", вообще игнорирует - отдает без этого атрибута ссылку - это баг?

Попробовал другой view - то же самое alt=[title] не показывает. В чем может быть причина?

Аватар пользователя andribas@drupal.org andribas@drupal.org 21 октября 2010 в 11:48

"skiller_07" wrote:

хм, у меня все работает. А в поле Link path вы что пишите?

Если Вы про Путь ссылки: , то ничего не пишу.

У меня только:
поле - материал: заголовок
Выводить это поле в виде ссылки - галочка
Alt текст: [title]
Создать ссылку на материал, к которому относится текущее поле - галочка

сейчас создал такой вьюс - больше ничего нет, ни полей, ни фильтров - только title - не показывает
может версия 6.x-2.11 не подходит?

хм.....
написал там alt=title (без скобок) - он выводит title="название" - перевод???? в коде

Аватар пользователя skiller_07 skiller_07 21 октября 2010 в 12:10

так, существует 2 метода создания ссылки из Заголовка:

Output this field as a link - тут вы должны указать путь, можно с использованием шаблонов, а так же можете задать и title ссылки. Путь ссылки зависит от того, на что вы ссылаетесь. Если на ноду, то нужно еще добавить поле nid и затем в пути ссылки написать node/[nid], а в alt можно использовать [title]

Lint this field to its node - тут шаблоны не работают!

Аватар пользователя andribas@drupal.org andribas@drupal.org 21 октября 2010 в 12:33

"skiller_07" wrote:

так, существует 2 метода создания ссылки из Заголовка:

Большое спасибо, я этого не понимал - непонятно правда почему до этого другие маркеры подстановки работали. Сделал так, как Вы сказали - т.е. оставил только Выводить это поле в виде ссылки - галочка

результат - не помогло.
вот экспорт тестового view (добавил скрытое поле path - т.к. у меня алиасы.)
т.е. создал view, добавил 2 поля - Материал: Адрес, Материал: Заголовок
Материал: Адрес - Исключить из вывода
Материал: Заголовок -
Выводить это поле в виде ссылки
Путь ссылки: [path]
Alt текст: [title]

При этом title у ссылки не показывает. Если пишу вместо [title] допустим [path] для поля Alt текст - то все ок. Что я делаю не так?

$view = new view;
$view->name = 'test';
$view->description = 'test';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'По умолчанию', 'default');
$handler->override_option('fields', array(
  'path' => array(
    'label' => '',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'target' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'html' => 0,
      'strip_tags' => 0,
    ),
    'empty' => '',
    'hide_empty' => 0,
    'empty_zero' => 0,
    'absolute' => 0,
    'exclude' => 1,
    'id' => 'path',
    'table' => 'node',
    'field' => 'path',
    'relationship' => 'none',
  ),
  'title' => array(
    'label' => '',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 1,
      'path' => '[path]',
      'link_class' => '',
      'alt' => '[title]',
      'prefix' => '',
      'suffix' => '',
      'target' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'html' => 0,
      'strip_tags' => 0,
    ),
    'empty' => '',
    'hide_empty' => 0,
    'empty_zero' => 0,
    'link_to_node' => 0,
    'exclude' => 0,
    'id' => 'title',
    'table' => 'node',
    'field' => 'title',
    'relationship' => 'none',
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
));
$handler->override_option('cache', array(
  'type' => 'none',
));
Аватар пользователя G.A. Vinogradov G.A. Vinogradov 21 октября 2010 в 12:38

А может вам попробовать продублировать поле title?
Ну, т.е. сначала добавить одно, исключить его из вывода; потом уже во второе поле в ALt вписать значение первого.

Аватар пользователя andribas@drupal.org andribas@drupal.org 21 октября 2010 в 12:57

"G.A. Vinogradov" wrote:
А может вам попробовать продублировать поле title?

Пробовал - все равно не показывает

"skiller_07" wrote:

а зачем вы достаете path. Можно даже с алиасами писать node/[nid]

у меня маркер [nid] он не понял - так и написал node/[nid] в урле. В подстановке его тоже нет.

А у Вас без проблем это все работает? может настроено что-то криво у меня, версии не те или что?

Аватар пользователя andribas@drupal.org andribas@drupal.org 21 октября 2010 в 13:24

"G.A. Vinogradov" wrote:
Уберите нахрен эту галочку.

убрал "Выводить это поле в виде ссылки" - текст Alt уходит и ссылка тоже.
Если Вы имели ввиду "Создать ссылку на материал, к которому относится текущее поле" - то я таки да, галочку там убрал, - не помогает.

Спасибо за помощь.

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 21 октября 2010 в 14:00

Настройки вроде все правильные...
Посмотрите исходный код получающегося результат, мало ли что.
У себя я проверил - все работает при такой настройке.

Аватар пользователя andribas@drupal.org andribas@drupal.org 21 октября 2010 в 14:47

Проблема решилась оригинальным способом:
у заголовка который не показывается (title_1)
я сделал:
Установить для этого поля максимальную длину = 76
Обрезать только на границе слова - галочка (не обязательно)
Удалить HTML-теги - галочка (не обязательно)

и все заработало. если сделать 77 - то станет пусто. Спасибо всем, кто помог найти причину.
А то я думал - не может быть, что не работает - оказывается дело в длине заголовка.

дополнение - теперь показывает, но только у строк где заголовок больше 76.
дело не в длине. ставлю 20 - показывает у всех, но только 20 символов. что делать?

Аватар пользователя andribas@drupal.org andribas@drupal.org 21 октября 2010 в 15:23

Странно, что

"G.A. Vinogradov" wrote:
У себя я проверил - все работает при такой настройке.

/sites/all/modules/views/handlers/views_handler_field.inc
строка 592-595

<?php    // Set the title attribute of the link only if it improves accessibility
    
if ($alt && $alt != $text) {
      
$options['attributes']['title'] = $alt;
    }
?>

а как остальные делают?
я сделал
Заменить выводимое полем значение = [title_1][пробел]
и все заработало!!!

П.С. кавычки " только в &quot; неудобно, лучше убрать бы их.