画像フィールドのhtmlを変更する最良の方法は何ですか?私はimagefieldを持っていて、それを最初からhtmlに書き換えたいです。
hook_preprocess_HOOK は仕事をします、
独自のtheme_image_formatter()
の記述もご覧ください。
Node_view()では機能しますが、FIELDのHTMLを変更します。node_viewでは、フィールドの順序を変更し、新しいコンテンツを非表示/表示しますが、外観を制御するわけではありません。絶対に行うことはできますが、実際は最高の/ Drupalの方法。
Drupalは機能(node_view())と外観(テーマ)を分割します
Hook_preprocess_node()では、フィールドの変数ではなく、ノードテンプレートの変数を変更します。ノードラッパーにクラスを追加したり、ノードテンプレートを変更したりするには、この変数が必要になります...このテーマのテーマに深く入り込む必要があります。 。
例:
// ALL IMAGES get rounded class.
function YOURTHEME_preprocess_image(&$variables) {
$variables['attributes']['class'] = array('rounded');
}
そしてフィールドのために
// If field_images in FULL view mode of a node, add/edit variables and choose template
function YOURTHEME_preprocess_field(&$variables) {
if ($element['#field_name'] == 'field_images' && $element['#bundle'] == 'YOUR_NODE_TYPE' && $element['#view_mode'] == 'full') {
$variables['theme_hook_suggestions'][] = 'field__field_images_YOUR-file-name';
// Add more variables available in template...
$variables['toggle'] = 'Read the story';
$variables['some_text'] = 'Some text';
}