Оформление списка файлов

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

Аватар пользователя Andrey_T Andrey_T 24 июня 2014 в 5:13

Всем привет
Сменил работу и потребовалось на новой работе изучить Drupal - так что я новичок Smile
Посмотрел кучу фильмов, почитал кучу литературы, попробовал что-нибудь сделать и как обычно не получилось(небольшой опыт в html css php есть)

Мне необходимо сделать на странице список файлов для скачивания, т.е.:
-------------------------------------
Описание файла - (картинка скачать)
-------------------------------------
Описание файла - (картинка скачать)
-------------------------------------

Каждый файл должен добавляться как материал ну и попадать в конец списка

Я создал материал как сумел и вьюшку, получилось так:

вопрос в следующем
Как удалить ссылку на материал из описания?
Как заменить текстовую ссылку на скачивание картинкой ну и расположить их в 1 строчку?

ВложениеРазмер
Иконка изображения bufer_obmena01.png7.43 КБ

Комментарии

Аватар пользователя drupby drupby 24 июня 2014 в 6:07

нужно в своей теме переопределить функцию темизации theme_file_link()
в файл template.php темы вставляете код и меняете вывод как нужно

// ИМЯТЕМЫ меняете на имя своей темы
function ИМЯТЕМЫ_file_link($variables) {
  $file = $variables['file'];
  $icon_directory = $variables['icon_directory'];

  $url = file_create_url($file->uri);
  $icon = theme('file_icon', array('file' => $file, 'icon_directory' => $icon_directory));

  // Set options as per anchor format described at
  // http://microformats.org/wiki/file-format-examples
  $options = array(
    'attributes' => array(
      'type' => $file->filemime . '; length=' . $file->filesize,
    ),
  );

  // Use the description as the link text if available.
  if (empty($file->description)) {
    $link_text = $file->filename;
  }
  else {
    $link_text = $file->description;
    $options['attributes']['title'] = check_plain($file->filename);
  }

  return '<span class="file">' . $icon . ' ' . l($link_text, $url, $options) . '</span>';
}

функция темизации иконок theme_file_icon

Аватар пользователя Andrey_T Andrey_T 24 июня 2014 в 6:44

Спасибо! почти получилось
осталось только решить вопрос с названием материала, я так понимаю это нода и там в заголовке сидит код

<h2 property="dc:title" datatype="">
<a href="/otchet/dinamika-rosta-osnovnyh-pokazateley-2012-goda">ДИНАМИКА РОСТА ОСНОВНЫХ ПОКАЗАТЕЛЕЙ 2012 года</a>
</h2>

в каком месте он правится ? (надо ссылку убрать, а название оставить)

или как получить данное название в функции *_file_link ?

Аватар пользователя drupby drupby 24 июня 2014 в 7:29

"Andrey_T" wrote:
осталось только решить вопрос с названием материала, я так понимаю это нода и там в заголовке сидит код

это поле заголовка материала во вьюсе - уберите его, а в theme_file_link выводите $file->description - описание файла

Аватар пользователя Andrey_T Andrey_T 24 июня 2014 в 8:22

Спасибо
Вроде разобрался с $file->description, теперь сделаю как мне надо.

а как убрать заголовок во вьюшке так и не нашел Sad
у меня drupal 7

использовал модуль Exclude node title

Аватар пользователя drupby drupby 24 июня 2014 в 8:35

"Andrey_T" wrote:
а как убрать заголовок во вьюшке так и не нашел :(

в настройках вьюса убрать поле с тайтлом материала

Аватар пользователя Andrey_T Andrey_T 24 июня 2014 в 8:43

"drupby" wrote:
в настройках вьюса убрать поле с тайтлом материала

там где поля - вот что пишут
----------------------------------------------------
Поля
Выбранный стиль или формат строки не использует поля.
----------------------------------------------------

ну и ничего там не отредактируешь

вот еще вопрос возник с функцией theme_file_link, я так понимаю она начинает работать сразу на весь сайт - как в ней отфильтровать отдельную вьюшку?

Аватар пользователя drupby drupby 24 июня 2014 в 9:05

"Andrey_T" wrote:
Поля
Выбранный стиль или формат строки не использует поля.

значит переопределить на вывод полей
"Andrey_T" wrote:
вот еще вопрос возник с функцией theme_file_link, я так понимаю она начинает работать сразу на весь сайт - как в ней отфильтровать отдельную вьюшку?

если вьюха страница то в функции темизации использовать условие по arg() или request_uri()

Аватар пользователя Andrey_T Andrey_T 10 ноября 2015 в 11:49

Наткнулся на проблему с типом Файл и $file->description

если поставить галочку Описание - то поле описание НЕ появляется при добавлении материала, но появляется при нажатии кнопки предпросмотр....

как заставить это поле появляться сразу?