Standing on the Shoulder of Linus

Home / 2015 / 2月 / 04 / Novius OS でXMLや JSON出力をする方法

Novius OS でXMLや JSON出力をする方法

Novius OS でXMLや JSON出力をする方法です。Novius OS では、アプリケーションを作成して、コンテンツを管理します。アプリケーションは「WordPressのカスタム投稿タイプとカスタムフィールドを一緒にしたもの」と考えてください。

コンテンツを編集する

Novius OS では、アプリケーションごとに編集画面が作られます。下の画像は、飲食店のメニューを想定したサンプルケースです。

メニュー1

上の画面から、メニュー項目をいくつか追加して公開すると、下の画像のように出力することができます。

メニュー一覧

見たまま編集ではないですが、その代わりに、提供開始日などの補足情報(管理用に使う情報)を登録することができます。

XMLやJSONで出力する

XMLやJSONで出力する方法は、FuelPHPのRestコントローラが用意されています。Novius OSはFuelPHPベースで構築されているので、このRestコントローラを使うことができます。

しかし、現時点では、Novius OS同梱のアプリケーションマネージャで作成した場合、Restコントローラを使うようにはなりません。なので、コードを少し書き換えることになります。具体的にはこんな感じです。

https://github.com/ounziw/recipe/blob/first-commit/classes/controller/front/menu.ctrl.php#L40 辺りです。

        if ($this->format != 'html') {
            $this->main_controller->setHeader('Content-Type', $this->_supported_formats[$this->format]);
            return $this->main_controller->sendContent($this->response($this->_display_list_menu()));
        } else {
            return $this->display_list_menu();
        }

通常はView::forge(…)でビューを作成します。そこを、ヘッダー情報を変更してデータを送信するように変更します。上のコードでは、
display_list_menu: View::forge()を呼び出す
_display_list_menu: View::forge()を呼び出さずにデータを返す
にしています。

こうすると、xmlやjson形式で出力できます。

jsonxml

フロントエンドでAjaxを使って表示を書きかえる、iPhone/androidアプリにデータをプッシュする、外部ウェブサービスとつなぐ、といったとき、xmlやjson形式で出力できると便利です。

.htaccessの変更

.jsonや.xml等のURLでのアクセスを適切に処理するため

RewriteRule ^.+(\.html|/)$ /htdocs/novius-os/front.php [QSA,PT]

を、

RewriteRule ^.+(\.html|\.json|\.xml|\.csv|/)$ /htdocs/novius-os/front.php [QSA,PT]

に変更します。

デフォルト機能にするかどうか

FuelPHPフレームワークの機能を使ってxml/json出力を行うコードです。なので、デフォルト機能にする、という案も考えられます。あるいはアプリケーション作成時に、「xml/json出力も可能にする」といったオプションを用意しても良いかもしれません。

関連

Posted in cms | Tagged JSON, ウェブサービス
← ウェブサイトを完全https化するためにやったこと カスタム投稿タイプの下書きをダッシュボードに表示する →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • WordPress見積プラグインで見積書PDF発行
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.