Drupal 7 Commerceモジュールでは、フィールド、「sku」、「title」、「status」はDisplay Suiteフィールドラッパーで編集できないため、フィールドを編集できません。 Drupalフロントエンドを介したラッパー。テンプレートを使用して "commerce-product-title.tpl.php"をH2ラッパーで更新する必要がありますが、これは 'product_full'に対してのみ必要ですすべての製品の表示モード。テンプレートまたはテーマ機能でのみ、この表示モードでこのフィールドをターゲットにする方法はありますか?
まず、自分でテーマフックの提案を追加する必要があります。フィールドの場合は ノードの場合と同じ だけです。次のスニペットをテーマのtemplate.php
またはモジュールの*.module
ファイルに配置し、MYTHEME/MYMODULE
をテーマまたはモジュールのマシン名に置き換えるだけです。
次に、/modules/field/theme/field.tpl.php
ファイルをテーマの/templates
ディレクトリにコピーし、次のいずれかのパターンに従って名前を付けます。
/**
* Implements hook_preprocess_HOOK().
*/
function MYTHEME/MYMODULE_preprocess_field(&$variables) {
$view_mode = $variables['element']['#view_mode'];
$field_name = $variables['element']['#field_name'];
$bundle = $variables['element']['#bundle'];
$variables['theme_hook_suggestions'][] = 'field__' . $field_name . '__' . $view_mode;
$variables['theme_hook_suggestions'][] = 'field__' . $field_name . '__' . $bundle . '__' . $view_mode;
}
Commerceの製品タイトルの場合は少し異なりますが、プリプロセスフック内からビューモードや参照エンティティを取得できないためです。ただし、独自のロジックを使用して、テンプレートの提案を追加できます。たとえば、URLエイリアスのパターンなどです。
次に、/sites/all/modules/contrib/commerce/modules/product/theme/commerce-product-title.tpl.php
ファイルをテーマの/templates
ディレクトリにコピーし、目的のパターンに合わせて名前を変更します。
/**
* Implements hook_preprocess_HOOK().
*/
function MYTHEME/MYMODULE_preprocess_commerce_product_title(&$variables) {
// The following suggestion only gets added when there's
// a certain keyword at the third position in the URL alias
// as in /myproducts/overview/foo/myproduct.
if (arg(2, drupal_get_path_alias()) === 'foo') {
$variables['theme_hook_suggestions'][] = $variables['theme_hook_original'] . '__' . 'foo';
}
}