2012-03-19 13 views
2

基本Drupal7インストールで提供されている記事タイプに基づいてカスタムコンテンツタイプのカスタムレイアウト(node-article.tpl.php)を作成します。追加したのは、PDFファイルの添付ファイルフィールドだけです。Drupal7テンプレートでのファイルリンクのカスタマイズ

レンダリングされたページに、「PDFバージョン」のようなリンクがあります。私はそのコンテンツタイプのテンプレートファイルを作成しましたが、うまくいきました。私はprint render($content['field_pdf']);コードスニペットを使用してファイルリンクを表示しました。ファイルの名前として、そのファイルの横にPDFアイコンが表示されます。ほぼ完璧!

ファイルの名前を静的な文字列「PDFバージョン」に変更するだけで済みます。

ありがとうございます!

答えて

2

利用hook_node_view_alter()

function yourmodule_node_view_alter(&$build) 
{ 
    $node = $build['#node']; 
    if($node->type == "article" && isset($build['field_pdf']['#items'])) 
    { 
     $build['field_pdf']['#items'][0]['#file']->filename = t('PDF Version'); 
    } 
} 

OR

function yourmodule_node_view_alter(&$build) 
{ 
    $node = $build['#node']; 
    if($node->type == "article" && isset($build['field_pdf']['#items'])) 
    { 
     hide($build['field_pdf']); 
     $build['my_themed_link']['#markup'] = l(t('PDF Version'), file_build_uri($build['field_pdf']['#items'][0]['uri'])); 
     $build['my_themed_link']['#weight'] = 10; 
    } 
} 

私はまだ、それはあなたのために働くことを期待しテストしていません。

ムハンマド

+0

!! (チャネリングはすぐにスマートになります) –

+0

コードの最初のビットをわずかに変更しました。 '$ build ['field_pdf'] [0] ['#file'] - > filename = t( 'PDF版)' - ありがとう!! –

+0

ええ、私の悪い:)。どうもありがとう。 –

0

あなたはPDFアップロードフィールドに対して有効説明フィールドを持っている場合は、あなたがしますprint_r文でその変数にアクセスすることができるはずです。

<a href="<?php print render($content['field_pdf']['path'])?>"><?php print render($content['field_pdf']['description']);?></a> 

このコードは、まさにdrupalの用途ではありませんが、あなたはあなたのnode.tpl.phpファイルに以下のコードを使用してから、正しい配列フォーマットをつかむことができます。

ザ・あなたはこのような何かを書くことができます。

<pre><?php print_r($node); ?></pre> 
0

私はこのようにそれをしなければならなかった。ずっと*その*でそれを逃した

function yourmodule_node_view_alter(&$build) 
    { 
     $node = $build['#node']; 
     if(($node->type == "grantee") && isset($node->field_abstract_pdf)) 

     { 
      $build['field_abstract_pdf'][0]['#file']->filename = t('Download Project Abstract'); 

     } 
    } 
関連する問題