PHP

CentOS8にAnsibleでPHP7をインストール。

2020.04.14 / Notes

CentOS8になってから、PHPのインストール方法に多少変更がありました。Ansibleでの記述も、それに合わせていくつか変更が必要になります。

はじめに変数は次のように設定しておきます。これはCentOS7と比べて、特に違いはありません。
roles/php/defaults/main.yml

シンプルな構成ですが、タスクは次のように記述します。
roles/php/tasks/main.yml

CentOS8では、PHPのインストールに「dnf module」が必要になりましたが、現状ではAnsible側が対応していないので直接、「cmd」にて実行しています。

また、「php-devel」モジュールをインストールする場合には、「PowerTools」も有効にしておく必要があります。

Drupal8で「node.html.twig」をURLエイリアスごとに振り分ける際のメモ。

2020.04.03 / Notes

ノード用テンプレート「node.html.twig」でURLエイリアスに基づいて、テンプレートファイルの命名規則を追加します。
例えば「company」ページの場合「node-company.html.twig」といった命名規則になります。

上記ではトップページの場合「node-front.html.twig」に、「company/about」ページの場合「node-company-about.html.twig」となるようにしています。

Drupal8でTwigキャッシュの無効化。

2015.11.16 / Notes

Drupal8でテーマ作成時などに、Twigのキャッシュを無効化する際のメモです。
次の2点のファイルに、それぞれ記述します。

 

sites/default/settings.php

 

sites/development.services.yml

上記を記述後に「管理 > 環境設定 > パフォーマンス」ページで、一度だけキャッシュをクリアーする必要があります。

Drupal 7でテンプレート内でのリダイレクト。

2015.04.20 / Labs

Drupal 7で「page.tpl.php」などのテンプレート内でリダイレクト処理のメモです。
カレントユーザーがログインしていない場合には、次のような記述でログインページにリダイレクトできます。

パラメータの「destination」にURLを入れることで、ログイン後に該当ページへ移動することもできます。

Drupal 7のViewsによる月別アーカイブの表示をカスタマイズ。

2014.08.03 / Labs

Drupal 7でブログやニュースなどの記事一覧で、月別アーカイブを設置することがあります。
Viewsではデフォルトでこの機能が搭載されていて、「contextual filter」の作成年月のフィルターをかけたブロックを作成することで実現できます。
標準の月別アーカイブブロックは、次のように表示されます。

 

  • 8月 2014
  • 7月 2014
  • 6月 2014

 

月が始めにくる英語圏に合わせた表記なので、日本語サイトでは違和感があります。
「2014年 8月」のように順番を逆にするには、Views内の設定画面では行えず、Views自体のモジュールを変更する必要があります。
将来的なモジュールのバージョンアップを考えると、モジュール本体に手を加えるのは避けたいところです。
他の方法としては、Viewsで作成されたブロックのテンプレートファイルを修正する方法もあります。

 

下記はシステムデフォルトのブロックテンプレートファイル(modules/block/block.tpl.php)です。

このテンプレートファイルをお使いのテーマディレクトリにコピーして、Viewsの月別アーカイブブロックに合わせてファイル名を書き換えます。
例えば「news」という名称のViewsで「block-1」の場合には「block–views–news-block-1.tpl」というファイル名に変更します。
テンプレートのファイル名を変更することによって、月別アーカイブでのみ使用するブロックとなります。

 

この中の「<?php print $content ?>」という部分がブロックの本文になります。
今回はブロック本文を正規表現で「8月 2014」を「2014年 8月」に書き換える処理を施します。

上記の変更により、月別アーカイブの表示が次のようになります。

 

  • 2014年 8月
  • 2014年 7月
  • 2014年 6月