LoginSignup
1
1

More than 5 years have passed since last update.

concrete5(5.6.x)で既存システムと連携させながらサイト構築

Last updated at Posted at 2014-11-11

Zend Frameworkをconcrete5内で使いたい

今回は、独自テーマのdefault.php内から呼び出す想定

HTTPでGETを送信してみる

  • 前提として、既存システムはリクエストを受けつけるとJSONを返すAPIサービスの機能を持っている
// concrete5のLoaderは指定のクラスが見つかると、そのインスタンスを返してくれる
$json = Loader::helper('json');
// 3rdparty以下のライブラリだと、concrete5のディレクトリ構成や命名規則に準拠していないので
// インスタンスを返してくれる保証はない。
// この場合、Zend_Http_Clientがクラス名なのでインスタンスはかえってこない。
Loader::library('3rdparty/Zend/Http/Client');
$client = new Zend_Http_Client('http://example.com/api/test', array(
    'maxredirects' => 0,
    'timeout'      => 30
));
// Zend_Http_Responseがかえってくるので、bodyを取得
$body = $client->request(Zend_Http_Client::GET)->getBody();
// JSONはPHPオブジェクトにデコードされる
$json = $json_helper->decode($body);

コアをオーバーライドするときは同じディレクトリ構造とファイル名で

blocks/page_list/templates/blog_index.php // 正常にオーバーライド
blocks/page_list/tmeplates/blog_index/view.php // 同名のカスタムテンプレートが追加されてしまう

独自に追加するブロックなどのディレクトリ構造は局所化重視

// 管理方法が統一できるし、タスクツールとの相性も良くなる
blocks/autonav/templates/bootstrap/view.php
blocks/autonav/templates/bootstrap/view.css

// sass側も同じ構造で用意する
sass/blocks/autonav/templates/bootstrap/view.sass
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1