ホーム > サポート・マニュアル > チュートリアル > 拡張機能の開発 > GETモジュールから表示ページがもつIDを参照する

GETモジュールから表示ページがもつIDを参照する

ドキュメント最終更新日時:2010/09/08 09:20

ページ情報を取得する

URLコンテキスト(参照)で表されるページ情報のうち各種IDをGETモジュール内で取得する方法を説明します。

GETモジュール内でページ情報のうち、例えばエントリーID(以下EID)を取得することができれば、そのモジュールがどのエントリーから呼び出されたかによって参照する情報を変えることができます。基本的には、Entry_BodyやEntry_Headlineなどのモジュールもそのようにページ情報を取得することで、表示すべき情報を決定しデータベースを参照しています。

スコープの設定

下記のようにプロパティを設定することで、$this->bid, $this->cid, $this->eidとして、表示中のページが持つID情報を取得できます。

var $_scope = array(
    'bid'       => 'global',
    'cid'       => 'global',
    'eid'       => 'global',
);

表示中ページの各種IDを参照するサンプル

<?php

require_once ACMS_LIB_DIR.'GET.php';

class ACMS_GET_Hoge extends ACMS_GET
{
    var $_scope = array(
        'bid'       => 'global',
        'cid'       => 'global',
        'eid'       => 'global',
    );

    function get()
    {
        $string[]    = 'Global Vars';
        $string[]   .= "BID      = $this->bid";
        $string[]   .= "CID      = $this->cid";
        $string[]   .= "EID      = $this->eid";

        return nl2br(implode("\r\n", $string));
    }
}
?>

出力結果

<!-- bid = 1, cid = 2, eid = 5 の場合 -->
Global Vars<br />
BID = 1<br />
CID = 2<br />
EID = 5

発展的な用途

エントリーにカスタムフィールドとして外部システムのデータのIDをitem_idとして登録しておき、EIDを元にfieldテーブルにアクセスすることで、GETモジュール内からitem_idを参照できます。

$q = "SELECT * FROM `acms_field` WHERE `field_eid` = $this->eid AND `field_key` = 'item_id'";

ここで取得したitem_idを元に外部システムのデータを参照することで、擬似的にa-blog cmsと外部システムとの連携を行うことも可能です。


ドキュメントの内容に関するお知らせフォーム

内容に誤り・現行バージョンと異なる部分がありましたら、下記のフォームよりお知らせください。


お名前
 
メールアドレス(任意)
 
お知らせ内容
Cookieに保存


携帯アクセス解析