it-swarm-ko.tech

일반 파일보기에서 링크 제목 변경

뷰에 표시되는 많은 파일이 있습니다. '일반 파일'설정을 사용하여 표시하고 있습니다. 문제는 일부 파일의 이름이 '1002-32-eda.pdf'와 같이 실제로 추악한 이름을 가지고 있다는 것입니다. 이름을 '다운로드'로 변경하고 싶지만 '마임'검출을 유지하고 싶습니다 (왼쪽의 작은 아이콘; pdf와 같이 단어 등).

이것을 변경하는 방법에 대한 예는 무엇입니까?

5
Disco

파일에 대한 데이터를 저장하기 위해 필드를 사용하고있는 것 같습니다.

파일이보기에 표시되면 테마 기능처럼 작동하는 포맷터를 통해 표시됩니다. 이미지를 표시 할 수있는 다른 방법은 실제로는 서로 다른 테마 함수 (또는 동일하지만 인수가 다른)에 연결되는 다른 포맷터입니다.

두 가지 옵션이 있습니다. * '일반 파일'을 사용하여 표시 될 때 모든 파일이 표시되는 방식을 변경하는 테마 기능을 무시할 수 있습니다. * 당신은 당신의 자신의 포매터와 하나의 사본이 될 수있는 테마 기능을 만들 수 있습니다 Generic files은 (는) 사용하지만 몇 가지 변경이 있습니다.

사용해야 할 후크는 사용중인 Drupal 버전에 따라 다르지만 모듈을 검색하고 Generic files.

긴 설명을 위해 이것을 확인할 수 있습니다 blog post 잠시 전에 썼습니다.

짧은 버전은 다음과 같습니다

hook_field_formatter_info를 사용하십시오.

/**
 * Implementation of CCK's hook_field_formatter_info().
 */
function module_formatter_info() {
  return array(
    'default' => array(
      'label' => t('My generic files'),
      'field types' => array('filefield'),
      'multiple values' => CONTENT_HANDLE_CORE,
      'description' => t('My description.'),
    ),
  );
}

다음으로 hook_theme을 사용하여 이름과 같은 후크로 테마 함수를 작성하십시오.

function filefield_theme() {
  return array(
    'module_formatter_default' => array(
      'arguments' => array('element' => NULL),
    ),
  );
}

마지막으로 테마 기능 만들기

/**
 * Theme function for the 'default' filefield formatter.
 */
function theme_module_formatter_default($element) {
  $file = $element['#item'];
  $file['data']['description'] = t('Download');
  $field = content_fields($element['#field_name']);
  $output = theme('filefield_item', $file, $field);
  return $output;
}

위의 코드는 작동하고 원하는 것을 수행해야하지만 실제로 이것을 테스트하지는 않았습니다.

5
googletorp

사이트의 모든 파일에 대해이 작업을 수행하려는 경우 다른 옵션이 있습니다. theme_file_link (파일 file.module) :

function THEMENAME_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);
  }

  // DO SOMETHING WITH THE LINK TEXT HERE, FOR EXAMPLE:
  // $link_text = urldecode($link_text);

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

단점은 이제 사이트의 모든 파일 링크가 다르게 보일 수 있지만 경우에 따라 정확하게 사용자가 원하는 것입니다. 나중에 모든 캐시를 플러시하여 모든 것이 작동하도록하십시오 :)

3
MW.