「メイド・イン・ヘブン」スキン適用中

スキン制御の仕様。スキン側から「Cocoon設定値」を変更する方法3通り。

スキン開発
この記事は約4分で読めます。

Cocoon 1.3.6より、スキン側から「Cocoon設定」のオプション値を変更できるようになりました。

この「スキン制御」機能は、スキン製作者の開発負担をできる限り軽減できるようにと実装した機能です。

Cocoon設定調整がする方法

スキン側から設定値を変更する方法は以下の3通り。

  1. スキンフォルダ内のfunctions.phpでPHPを書く
  2. スキンフォルダ内のoption.csvでCSVを書く
  3. スキンフォルダ内のoption.jsonでJSONを書く

これらのファイルに設定名と値を書き込むことで、スキン側から「Cocoon設定値」を制御出来るようになります。

スキン制御機能により、制御された設定値は「スキン制御」と表示され、設定が変更不能になります。

スキン設定でオプションを制御した場合

これにより、スキン作者が

この設定は変更して欲しくないな。

このスキンはこの設定で利用して欲しい。

なんて設定値があった場合、「スキン制御」を行うことで、ユーザーが変更できなくすることができます。

functions.phpでのスキン制御

スキンフォルダ内のfunctions.phpで設定値をスキン制御するには、以下を参照してください。

スキン内のfunctions.phpファイルでCocoon設定値を制御する方法
Cocoon設定の設定値をfunctions.phpファイルからPHPコードを入力することで制御する方法です。

functions.phpでは、ほぼ何でもできるといってもいいです。

しかし自由度が高い反面、PHP文法に外れていればエラーが出るので、コーディングに慣れた人向けの設定方法です。

CSVファイルでスキン制御

スキンフォルダ内のoption.csvで、設定値をスキン制御するには以下を参照してください。

スキン内のCSVファイルでCocoon設定値を制御する方法
Cocoon設定の設定値をoption.csvファイルからCSV形式のテキストを入力することで制御する方法です。

CSVファイルでの設定は、最も入力量も少なく簡単に行えます。

とりあえず、最も簡単にスキン制御行うならCSVファイルでの設定をおすすめします。

CSVファイルは、エクセルで編集せずプログラミングエディター等で編集することをおすすめします。エクセルだと、文字コードがシフトJISになってしまうので。UTF-8で編集する必要があります。

JSONファイルでスキン制御

スキンフォルダ内のoption.jsonで、設定値をスキン制御するには以下を参照してください。

スキン内のJSONファイルでCocoon設定値を制御する方法
Cocoon設定の設定値をoption.jsonファイルからJSON形式のテキストを入力することで制御する方法です。

JSONファイルは様々な設定ファイルに利用されています。

なので、「JSONファイルでの設定に慣れている」場合は、JSONを利用することをお勧めします。

動作サンプル

動作サンプルとして「Cocoon設定」の「スキン」タブ内に以下のデモスキンを用意してあります。

スキン制御デモスキンの一覧

  • スキンからオプション変更サンプル(PHP)
  • スキンからオプション変更サンプル(CSV)
  • スキンからオプション変更サンプル(JSON)

スキンから選択して実際の動作を確認してみてください。

デモスキンファイルの場所

skinsフォルダ内で言えば以下のフォルダです。

スキン制御デモフォルダ

  • skin-demo-php(functions.phpデモ)
  • skin-demo-csv(CSVファイルデモ)
  • skin-demo-json(JSONファイルデモ)

ファイルが読み込まれる順番

スキン制御機能でファイルが読み込まれる順番はこちら。

読み込み順
  1. functions.php
  2. option.csv
  3. option.json

設定値が重複していた場合は、後から読み込まれるファイルの設定値が優先されます。

ファイルの優先度

なので、「同じ設定値がある場合」の優先度で言えばこんな感じになります。

優先度順
  1. option.json
  2. option.csv
  3. functions.php

functions.phpで書かれた設定は、option.csvで書かれた設定により上書きされ、option.jsonで書かれた設定により更に上書きされます。

同じ設定値が重複していない場合は、それぞれのファイルで書かれたものが優先されます。

ただ、複数ファイル書くと、ややこしいので、どれか1つのファイルに決めて利用した方が明快だと思います。

まとめ

こんな感じで、「Cocoon設定値を変更できるスキン制御機能」を追加しました。

このスキン制御機能を利用する利点としてはこちら。

  • CSSで設定値を上書きする必要がないのでコーディング負担が減る
  • スキン制御分のCSSコードサイズが削減される(AMPのCSSサイズ削減)
  • スキン作者が意図したCocoon設定値で固定できる
  • スキン作者がテーマ内の文字列も変更できる(Cocoon設定にあれば)
  • 設定値が変更されることを考慮してCSSを書く必要がなくなる
  • 設定が変更されることでスキンデザインが崩れることがない

Cocoon設定の「設定名」と「値」を調べるのは多少面倒ではありますが、「スキン制作側の負担を多少でも軽減する機能」になると思っています。

タイトルとURLをコピーしました