web-dev-qa-db-ja.com

メディア用のカスタムテンプレート

メディアモジュールを使用していて、WYSIWYGで使用しています。メディア画像の表示をカスタマイズすることは可能ですか?書き換え可能なテンプレートファイルや、呼び出すフックはありますか? file_entity.tpl.phpを見つけました。しかし、それは正しいものではないようです。提案してください。

ありがとう

2
cissharp

この記事に対するこの回答のほとんどの功績: http://forumone.com/insights/styling-inline-images-with-drupals-wysiwyg-and-media-modules/ 最初に行って編集しました関連するディスプレイとキャプションフィールドを追加しました(これは私がやろうとしていたことです)

次に、hook_media_wysiwyg_token_to_markup_alter()を使用して出力を変更しました。私の場合、画像がWYSIWYGでフロートし、親要素をフロートする状況をキャッチする必要がありました。

<?php
function MODULENAME_media_wysiwyg_token_to_markup_alter(&$element, $tag_info, $settings) {
    if (($element['content']['#bundle'] == 'image')) {
        // check if a caption has been set
        if(!empty($element['content']['field_caption'])){
            if(isset($element['content']['file']['#attributes']['style']) && strstr($element['content']['file']['#attributes']['style'], 'float')){
                // move floats to the wrapping element
                $element['content']['#attributes']['style'] = $element['content']['file']['#attributes']['style'];
                // remove inline style on image
                $element['content']['file']['#item']['attributes']['style'] = '';
                // add class to wrapping element so we can style it
                $element['content']['#attributes']['class'][] = 'media-with-caption';
            }
        }
    }
}
2
Duncanmoo