フィールドラベルからコロンを削除するにはどうすればよいですか?


10

レンダリングしたフィールドラベルからコロンを削除できるようにしたいだけです。次に例を示します。

ホテル名:ホテル名へ

私はfield.tpl.phpをコピーしてそこでコロンを削除しましたが、Drupalがそれを受け入れることを拒否し、他の場所からコロンを引っ張っています。

template.php関数でこれを行うにはどうすればよいですか?


キャッシュをクリアしましたか?
AjitS、2012年

いや、数回。行きません
blue928


@ blue928重複する投稿を参照しtheme_form_element()てください。これを行うには上書きする必要があります
Clive

上記のノード/修正は、誰かがコンテンツを編集/入力しているときにフォームからコロンを単に削除しました。ノードでレンダリングされた後、ラベルを削除する必要があります。..したがって、上記の複製にはなりません。私は実際にその結果を得るためにそのソリューションを実装しました。
blue928 2012年

回答:


16

答えは間違いなくfield.tpl.phpを使用することです。そのファイルのソースを見ると、問題のある行を確認できます。

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>:&nbsp;
  </div>
<?php endif; ?>

(分かりやすくするために、スペースとインデントの鉱山)。

コロンの削除は、上記の行を次の行に置き換えるだけです。

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>&nbsp;
  </div>
<?php endif; ?>

私はそれを空のDrupalインストールでテストしたところ、完全に動作しました。フィールドラベルの後のコロンは不要です。

既に同じことを行っているが、正しい結果が得られない場合は、1つまたは2つの問題が考えられます。

  • カスタムバージョンのfield.tpl.phpを、サイトのアクティブなテーマフォルダー(テーマフォルダーにある必要があります)ではなく、モジュールフォルダーに配置しました。
  • システムの別のモジュール/要素もfield.tpl.phpをオーバーライドしています。これは、現在よりも堅牢な方法です。これが当てはまるかどうかを確認するには、有効な各モジュールを常に面倒に無効にして、問題の原因を特定する必要があります。

コロンはテンプレートファイルにハードコードされているため、テンプレートの前処理関数で変更を加えることはできません。


ああ、確かにテンプレートファイルが正しく機能しない別のモジュールがありました。役立つデバッグの指示を指摘していただきありがとうございます。
blue928 2012年

9

これを正確に実行し、出力のフィールドラベルからコロンを(フィールドごとに)削除するモジュールを作成しました:結腸切除術


確認できます。このモジュールは優れており、この問題に対するシンプルでエレガントなソリューションです。
2015

2

フィールドのあるビューの場合は、フィールドをクリックして、[ラベルの作成]の下にある[ラベルの後にコロンを配置する]チェックボックスをオフにします。


2

Display suiteも同じ機能を提供します。

display suite extrasを有効にすると、ラベルの前にあるコロンを削除するオプションがあります。

そのパスは次のとおりです。 /admin/structure/ds/list/extras/

ここに画像の説明を入力してください


1
これは、コロンを削除するだけではありません。カスタムCSSを適用している場合、これはそれを強制終了します。
2015

0

私の場合、関数全体をファイルにコピーし、読み取る行を変更することにより、theme_field()field.module)をオーバーライドすることで機能しましたtemplate.php

$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . '&nbsp;</div>';

試行する前にキャッシュをクリアしてください。


0

Drupal 8に関するこの質問への回答はどこにも見つかりませんでした。Drupal 8では、コロンは、ベーステーマとして使用している場合、ClassyコアテーマのCSSファイル(field.css)で追加されます。あなたがしなければならないすべてはあなたのテーマのあなた自身のCSSファイルでそれを上書きすることです。

元のfield.cssファイルから:

.field--label-inline .field__label::after {
    content: ':';
}

コロンを削除する私のテーマのCSSファイル:

.field--label-inline .field__label::after {
    content: '';
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.