web-dev-qa-db-ja.com

レイアウトなしの完全なHTMLページのティーザー

最新の3つの記事のティーザーを表示するブロック/ビューがあります。この記事は完全なhtmlであり、レイアウトが含まれています(WYSIWYGでビルド)。

ホームページで、最新の3つの記事を表示するブロックを作成します。CSSレイアウトを指定できます。

Block

ただし、WYSIWYGを使用して構築されているため、ティーザーには追加のhtmlタグ(スパン、a、p、...)があり、毎回異なる場合があります。問題は、ティーザーのデフォルトのレイアウトを上書きすることです。

html of the teaser

フロントページのブロックにはきれいなテキストを、詳細ページにはフルHTMLを保持したいだけです。どうすれば管理できますか?

通常は、strip_tags();を使用する必要があります。 PHP htmlを削除するには..しかし、その特定のブロックに対してのみどうすればよいですか?

2
Finduilas

Bodyフィールドを追加してトリミングします。

enter image description here

次に、Webディレクトリで/sites/all/themes/yourtheme/フォルダーに移動し、template.phpに次のコードを追加します。

function yourtheme_preprocess_views_view_fields($vars){

  if ($vars['view']->name == "view_name" && $vars['view']->current_display == "block_1") {
    $vars['fields']['body']->content = strip_tags($vars['fields']['body']->content);
  }

}
  • yourthemeを実際のテーマ名に置き換えます
  • view_nameをビューの名前に置き換えます。
  • block_1をビューの マシン名 に置き換えます。あなたがたまたまblock_1だったら、そのままにしておきます。

Drupalでキャッシュをクリア/フラッシュして、変更を確認します。

次に、ビュー、タイトル、投稿日に必要な他のフィールドを追加しますか?コメントリンク?など...基本的には、独自のティーザーを作成します。

[〜#〜] ps [〜#〜]フィールドにクラスを追加する (使用する必要がある場合)それらのCSS。

2
No Sssweat