DrupalのContenta CMSとReservoirについて

2017年の6月にReservoirはAcquiaから発表された時に、それ以前からあるContentaに立ち位置が近いの気になって時々状況を確認している。この文章は現時点でのスナップショット。

どちらもコンテンツをAPIで提供するというところで利用シーンが重複するものの、現時点でContentaはAPI FirstのDrupalディストリビューションでReservoirはコンテンツレポジトリというポジションに落ちこうとしている様子。具体的にはContentaは通常のDrupal APIでDrupalの守備範囲を広げ、ReservoirはAPIのみで守備範囲を限定してシンプルにしたものと理解した。現時点でどちらを使うかと考えたらContentaな気がするけど、非DrupalistでDrupalの学習コストを割きたくないならReservoirもあるかと思う。

両陣営一瞬険悪になった感じもしたけど、お互い歩み寄ってフィードバックもしてるっぽくて安心しつつ今後に期待をしている。

Contenta CMS

Reservoir

Enabling Memcached on Acquia Cloud work with BLT

Enabling Memcache on Acquia Cloud work with BLT

In /docroot/sites/default/settings.php add the following configuration code after requiring blt.settings.php.

require DRUPAL_ROOT . "/../vendor/acquia/blt/settings/blt.settings.php";
$settings['install_profile'] = 'lightning';

/**
 * Memcache setting.
 *
 * Enable setting if memcache service exists.
 */
if (\Drupal::hasService('cache.backend.memcache')) {
  $settings['cache']['default'] = 'cache.backend.memcache';
}

Asset PackagistでフロントエンドJSライブラリを管理

bower, npm の代わりにcomposer 経由でjsライブラリを管理する拡張。これはただのパッケージマネージャとして捉えるべきで、npm, yarn のようにビルドはスコープ外。

Drupalで言えば、モジュールレベルで必要だったjsライブラリの追加がcomposer 経由でAsset Packagist を利用することで簡単に追加できるようになった。

これを導入しない場合は、手作業でダウンロード・配置するか以下のサンプルのようにcomposer.json を書く必要がある。

{
        ...
    "require": {
        "drupal/chosen": "^2.3",
        "harvesthq/chosen": "^1.7"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "harvesthq/chosen",
                "version": "1.7.0",
                "type": "drupal-library",
                "dist": {
                    "url": "https://github.com/harvesthq/chosen/releases/download/v1.7.0/chosen_v1.7.0.zip",
                    "type": "zip"
                }
            }
        }
    ],
    "extra": {
                ...
        "installer-paths": {
            "docroot/core": ["type:drupal-core"],
                        ...
            "docroot/libraries/{$name}": ["type:drupal-library"],
        },
    }
}

Drupal Meetup Tokyo Vol.6で紹介したBLTのリンク

Drupal Meetup Tokyo Vol.6でツールについて話す時間をもらったのですが、全く資料などは用意して行かなかったのリンクと追加情報を少し

もともとAcuqia Cloudを利用する予定があり、ドキュメントを見ていた時に見つけたのがAcuqia Pipeline。これは2016/12/23現在プライベートベータでまだリリースされていません。そこで営業さんにメールをしたところ、まだリリースされてないからこっちはどう?的にBLTを紹介されました。

WordPressユーザへ3分ではじめるDrupal8入門

こんにちは、Drupal Advent Calendar 2015に乗り遅れました。
[追記 12/25] Drupal Advent Calendarに空き枠が出たので滑り込み参加しました。

Drupal は良いCMSです。僕は仕事で使うCMSとしてWordpressからDrupalに乗り換えた派です。このブログはWordpressで動いていて気に入ってますし、ブログエンジンとしては良いと思ってます。

紹介する simplytest.me無料でおためし(モジュールやテーマ、ディストリビューション)できるサイトです。制約は24時間で消滅することでここでサイトを作り続けることはできません。それさえ受け入れられれば、サーバやドメインを用意する必要がなく動画の通り3分程度で始められるのでとりあえず興味があるなら触ってみない理由がありませんね。

サイト製作者としてのDrupalの良さ

Drupalはデザイナにもサーバサイドのエンジニアにも優しいCMSです。デザイナが望めば一行もPHPのテンプレートを触らずにサイトが構築できます。Wordpressでのループが管理画面から作れます。サーバサイドのエンジニアが望めば、管理画面からのほとんどの操作はDrushというコマンドを通して可能です。また設定ファイルのコード化も容易なので設定などの管理がgitなどど相性が良くモダンなワークフローを構築するのに向きます。

どうでしょう試してみたくなりましたか?それではご覧ください。(動画は倍速ですが、実時間は3分ちょっと)
Read more WordPressユーザへ3分ではじめるDrupal8入門

Drupalのテーマ作成時の.infoファイル

The name should start with an alphabetic character, can contain numbers and underscores, but not hyphens, spaces or punctuation. The name will be used by Drupal in forming various functions in PHP and therefore it has the same limitations.

Drupalのテーマ作成時の.infoファイル名はアルファベットで始まり、数字とアンダースコアを含める事ができる。ただし、ハイフン、スペースと句読点は使用できない。

また、このファイル名はtemplate.phptheme-setteing.phpのフック用の関数の接頭辞として利用されるので重要。

// hogehoge.infoの場合

function hogehoge_preprocess_image(&$variables) {
  foreach (array('width', 'height') as $key) {
    unset($variables[$key]);
  }
}