とても便利なDesigner Content Pro
Designer Content Pro(以下、DCP)は、concrete5でコンテンツを編集・レイアウトするための機能であるブロックを自分で拡張できるプラグインです。
これを利用することで、独自の入力フォームを持ったブロック(カスタムブロック)を作成することができます。
さらにカスタムブロックを作るために必要なプログラミングの量をほぼ無くしてくれるので、HTMLによる表現部分だけに集中することができ、デザイナーの画面作成やなクライアントの運用をサポートすることができます。
使い方・カスタマイズの参考
- Designer Content Proアドオンの紹介
- Designer Content Proで作るナビゲーションブロック
- concrete5 の超便利アドオン Designer Content を極める!
- Designer Contentで作ったブロックを使いまわす | immature
本番稼動しながらDCPブロックへ入れ替えたい
テスト環境でブロックを作って入れ込んでしまうと、本番環境でまた作成しなおさなくてはなりません。データベースのダンプで入れ替えても良いのですが、並行して稼働したい場合だと難航します。
メンテナンス時間を長くとっての移行はなるべく避けたいところです。
concrete5は下書き保存で変更後のプレビューができるので、本番サーバーは現状を維持しながら編集を進められます。
ローカルではブロックの動作のみ確認し、中身は本番サーバー上で入力して公開すれば、メンテナンス時間をかなり短縮できます。
テーマファイルには、ブロック化する前の内容を静的に埋め込んでおいて、そこに編集エリアを併記します。ブロックの追加と中身の入れ込みも、下書き状態であればログインユーザー以外には見えません。
内容がOKとなった段階で、静的に埋め込んだ部分を削除したテーマファイルを反映し、下書きを公開すれば入れ替えがスムーズです。
ブロックタイプを追加すると自動生成されるファイル群
- /blocks/[block_hanle]/view.php
- /packages/designer_content_pro_blocks/blocks/[block_handle]/
- tools/edit_repeating_item.php
- add.php
- controller.php
- db.xml
- edit.php
- view.php
ブロックタイプを追加した時点で、後述のインストールが自動で行われます。その際、データベース上のBlockTypesテーブルにブロックタイプについてのレコードが追加されます。
ブロックのインストール、アンインストール、削除
DCPで作成したブロックは、いつでもインストールとアンインストールができます。
インストール
自動生成されたファイルのうち、重要なのはdb.xmlです。インストール時にブロックハンドルのアンダースコアをキャメルケースにした名前で、ブロック用のテーブルをデータベース上に作成します。
テーブルの名前はブロックハンドルがtest_blockだとすると、btTestBlockとなります。
テーブル定義がdb.xmlで管理されることで、データベース上でテーブル編集など直接操作を行う必要がありません。
アンインストール
ページ内で作成したブロックを使用している場合はそれらも削除されてしまうので注意が必要です。
作成したブロックをアンインストールしても、テーブルや自動生成されたファイルは消えません。
削除
削除すると以下の内容が削除されます。
1. /blocks/[block_hanle]/view.php
2. /packages/designer_content_pro_blocks/blocks/[block_handle]
3. BlockTypesテーブルからブロックタイプのレコード
移行の手順
- DCPをインストール済みとして、自動生成されたファイルを本番サーバーへ同じディレクトリ構成でアップロードします。
- 管理画面からDCPのページへ移動すると、アップロードしたブロックがインストール待ちの状態で表示されます
- インストールをクリックします
- ページの編集エリアにブロックを追加しようとすると、DCPで作成したブロックが一覧に表示されています
[WordPress]寄稿者ユーザーに他者の投稿を表示させない方法
2015年4月9日
寄稿者ユーザーに他者の投稿を表示させない方法について備忘録としてまとめました。フィルターフックとアクションフックを併用して、管理画面の投稿一覧に関する表示制御を行っています。
2 Comments1 Minute
OSX Marvericks にアップデートしたら MAMP PRO が動かなくなった
2013年11月2日
OSX Marverics(以下、Marvericks)になって、便利な機能も増えましたが恒例のごとく「今まで動いていたものが動かない!」というケースも発生したりします。今回は、MAMP PROがそれになったので対処法をメモとして残しておきます。
0 Comments1 Minutes
Guard + Compass + Foundation で環境構築メモ
2013年7月5日
フロントエンド開発でもCUIベースでのビルドツールが充実してきています。RubyベースのGuardで複数のリソースを扱う方法についてメモをまとめました。
0 Comments1 Minutes
RubyでYoutube Data APIの認証、動画検索、取得、更新
2013年2月28日
RubyからGoogle Data APIを操作するバッチを書いていたので、おさらいです。APIとのやりとりを直接書いてみると、マッシュアップ系のWebサービスを作るときの基礎練習として良いですね。
0 Comments2 Minutes
HTTPでXMLを送信したら、The Processing Instruction Target Matching “[xX][mM][lL]” is Not Allowed
2013年2月27日
Rubyで次々とXML送信するバッチスクリプトを書いていたところ、Net::HTTP#putの利用時にステータス400。ふたを開けてみると、なんということはない内容でした。
0 Comments1 Minute
Sublime Text 2 + MAMP + Xdebug でPHPデバッグをする方法
2012年12月18日
Sublime Text 2(以下、ST2)がすっかりメインエディタに定着したのですが、デバッグ環境が未整理でした。そういえば・・・と思って探してみると、やはりプラグインがありました。ST2とMAMPによるPHPデバッグ環境の導入方法を解説します。
0 Comments1 Minutes
IE9でprototype.js + Shadowbox.jsを使う場合のメモ
2012年6月5日
IE9なら、モダンブラウザに近づくから面倒なIE対応は減るはず、というのは幻想で余計に手間が増えるケースもあります。今回は限定されたシチュエーションですが、JavaScriptライブラリを使う場合の対応をまとめました。
0 Comments1 Minute
[FuelPHP] taskでRailsライクなseedを作る
2012年2月22日
FuelPHPを使い始めているのですが、良いと評価できる点にコマンドラインから実行できる便利なタスクがあります。Railsではrake, railsというコマンドで各種タスクを実行でき、それを踏襲しています。今回はその中でも初期データ作成に便利なseedという機能をFuelPHP上に作ってみました。
0 Comments1 Minute