Pickles Framework v2.1.19 API Document

site
in package

Site and page Manager

Pickles 2 のコアオブジェクトの1つ $site のオブジェクトクラスです。 このオブジェクトは、Pickles 2 の初期化処理の中で自動的に生成され、$px の内部に格納されます。

メソッド $px->site() を通じてアクセスします。

$site の役割は、 サイトマップCSVを読み込み、サイトマップツリーを管理することです。 サイトマップからページの情報を取り出したり、親階層のページや子階層のページの一覧を取り出したりなど、 サイトマップの操作に関するAPIを提供します。

$site は サイトマップCSVの処理前(before_sitemap)段階では null、サイトマップを読み込んだ後の段階では $site オブジェクトを格納しています。 サイトマップをロードしないように設定($conf->paths_enable_sitemap に設定)されたリクエストでは、サイトマップを読み込んだ後の段階では false が格納されます。

サイトマップには次のカラムが予め定義されています。

  • CSVファイルはUTF-8で保存してください。
  • 1行目は定義行として、2行目以降にページデータを記述してください。
  • 定義行は、* 定義名 のように、先頭にアスタリスクを記述します。
  • * path* title は必須です。必ず定義に加えてください。
  • 列の並び順は決められていないので好きに並び替えることができます。
  • 任意の名前のカスタムカラムを自由に定義することができます。カスタムカラムにセットした値は、テーマやコンテンツから簡単に呼び出して利用することができます。
キー 意味
A path ページのパス
B content コンテンツファイルの格納先
C id ページID
D title ページタイトル
E title_breadcrumb ページタイトル(パン屑表示用)
F title_h1 ページタイトル(H1表示用)
G title_label ページタイトル(リンク表示用)
H title_full ページタイトル(タイトルタグ用)
I logical_path 論理構造上のパス
J list_flg 一覧表示フラグ
K layout レイアウト
L orderby 表示順
M keywords metaキーワード
N description metaディスクリプション
O category_top_flg カテゴリトップフラグ
P role ロール
Q proc_type コンテンツの処理方法
Tags
author

Tomoya Koyanagi tomk79@gmail.com

Table of Contents

$dynamic_path_param  : mixed
ダイナミックパスパラメータ
$pdo  : mixed
PDOインスタンス $sitemap_page_tree のキャッシュにSQLiteを使用するためのデータベース。
$px  : mixed
Picklesオブジェクト
$sitemap_array  : mixed
サイトマップ配列
$sitemap_dynamic_paths  : mixed
ダイナミックパスの一覧
$sitemap_id_map  : mixed
ページIDマップ
$sitemap_page_tree  : mixed
サイトマップのツリー構造
__construct()  : mixed
Constructor
__destruct()  : null
Destructor
bind_dynamic_path_param()  : string
ダイナミックパスに値をバインドする。
get_actors()  : array<string|int, mixed>
Actor のページID一覧を取得する
get_breadcrumb_array()  : array<string|int, mixed>
パンくず配列を取得する。
get_bros()  : array<string|int, mixed>
同じ階層のページの一覧を取得する。
get_bros_next()  : string|bool
同じ階層の次のページのIDを取得する。
get_bros_prev()  : string|bool
同じ階層の前のページのIDを取得する。
get_category_top()  : string
所属するカテゴリトップページのIDを取得する。
get_children()  : array<string|int, mixed>
子階層のページの一覧を取得する。
get_current_page_info()  : array<string|int, mixed>
現在のページの情報を得る。
get_dynamic_path_info()  : string|bool
ダイナミックパス情報を得る。
get_global_menu()  : array<string|int, mixed>
グローバルメニューのページID一覧を取得する。
get_next()  : string|bool
次のページのIDを取得する。
get_page_id_by_path()  : string
パスからページIDを得る。
get_page_info()  : mixed
ページ情報を取得する。
get_page_info_by_id()  : array<string|int, mixed>
ページIDからページ情報を得る。
get_page_originated_csv()  : array<string|int, mixed>
ページIDから、そのページ情報が定義されたCSVのファイル名と行番号を得る
get_page_path_by_id()  : string
ページIDからパスを得る。
get_parent()  : string|bool
親ページのIDを取得する。
get_path_param()  : string
ダイナミックパスからパラメータを受け取る。
get_path_type()  : string|bool
パス文字列を受け取り、種類を判定する。
get_pdo()  : object
PDOインスタンスを取り出す このPDOインスタンスは、サイトマップキャッシュを読み書きするためのDBアクセスです。 このメソッドは pickles2/px-fw-2.x v2.0.40 で追加されました。
get_prev()  : string|bool
前のページのIDを取得する。
get_role()  : string
role を取得する
get_shoulder_menu()  : array<string|int, mixed>
ショルダーメニューのページID一覧を取得する。
get_sitemap()  : array<string|int, mixed>
サイトマップ配列を取得する。
get_sitemap_definition()  : array<string|int, mixed>
サイトマップ定義を取得する。
is_match_dynamic_path()  : bool
パスがダイナミックパスにマッチするか調べる。
is_page_in_breadcrumb()  : bool
ページが、パンくず内に存在しているか調べる。
set_current_page_info()  : bool
現在のページの情報をセットする。
set_page_info()  : bool
ページ情報をセットする。
set_path_param()  : bool
ダイナミックパスからのパラメータをセットする。
data2phpsrc()  : string
変数をPHPのソースコードに変換する。
data2text()  : string
変数を受け取り、PHPのシンタックスに変換する。
escape_singlequote()  : string
シングルクオートで囲えるようにエスケープ処理する。
is_sitemap_cache()  : bool
サイトマップキャッシュが読み込み可能か調べる。
load_sitemap_csv()  : bool
サイトマップCSVを読み込む。
usort_sitemap()  : int
ページ情報の配列を並び替える。

Properties

$dynamic_path_param

ダイナミックパスパラメータ

private mixed $dynamic_path_param = array()
Tags
access

private

$pdo

PDOインスタンス $sitemap_page_tree のキャッシュにSQLiteを使用するためのデータベース。

private mixed $pdo
Tags
access

private

$px

Picklesオブジェクト

private mixed $px
Tags
access

private

$sitemap_array

サイトマップ配列

private mixed $sitemap_array = array()
Tags
access

private

$sitemap_dynamic_paths

ダイナミックパスの一覧

private mixed $sitemap_dynamic_paths = array()
Tags
access

private

$sitemap_id_map

ページIDマップ

private mixed $sitemap_id_map = array()
Tags
access

private

$sitemap_page_tree

サイトマップのツリー構造

private mixed $sitemap_page_tree = array()
Tags
access

private

Methods

__construct()

Constructor

public __construct(object $px) : mixed
Parameters
$px : object

Picklesオブジェクト

Return values
mixed

__destruct()

Destructor

public __destruct() : null
Return values
null

bind_dynamic_path_param()

ダイナミックパスに値をバインドする。

public bind_dynamic_path_param(string $dynamic_path[, array<string|int, mixed> $params = array() ]) : string
Parameters
$dynamic_path : string

ダイナミックパス文字列

$params : array<string|int, mixed> = array()

パラメータを格納する連想配列

Return values
string

パラメータをバインドして完成したパス

get_actors()

Actor のページID一覧を取得する

public get_actors([string $path = null ]) : array<string|int, mixed>

ページ $path を role として持つページ(=Actor)のページIDの一覧を取得して返します。 この一覧に、$path 自身は含まれません。 Actor がない場合、空の配列が返されます。

Parameters
$path : string = null

ページのパス または ページID。省略時、カレントページから自動的に取得します。

Return values
array<string|int, mixed>

Actor のページIDを格納する配列

get_breadcrumb_array()

パンくず配列を取得する。

public get_breadcrumb_array([string $path = null ]) : array<string|int, mixed>
Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

Return values
array<string|int, mixed>

親ページまでのパンくず階層をあらわす配列。自身を含まない。$pathがトップページを示す場合は、空の配列。

get_bros()

同じ階層のページの一覧を取得する。

public get_bros([string $path = null ][, array<string|int, mixed> $opt = array() ]) : array<string|int, mixed>
Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

$opt : array<string|int, mixed> = array()

オプション(省略可)

Return values
array<string|int, mixed>

ページの一覧

get_bros_next()

同じ階層の次のページのIDを取得する。

public get_bros_next([string $path = null ][, array<string|int, mixed> $opt = array() ]) : string|bool
Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

$opt : array<string|int, mixed> = array()

オプション(省略可)

Return values
string|bool

ページID。存在しない場合は falseを返します。

get_bros_prev()

同じ階層の前のページのIDを取得する。

public get_bros_prev([string $path = null ][, array<string|int, mixed> $opt = array() ]) : string|bool
Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

$opt : array<string|int, mixed> = array()

オプション(省略可)

Return values
string|bool

ページID。存在しない場合は falseを返します。

get_category_top()

所属するカテゴリトップページのIDを取得する。

public get_category_top([string $path = null ]) : string

ページ $path の親ページをたどり、初めに category_top_flg が立っているページを、 自身が所属するカテゴリのトップページとみなし、そのページIDを返します。

Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

Return values
string

カテゴリトップページのページID

get_children()

子階層のページの一覧を取得する。

public get_children([string $path = null ][, array<string|int, mixed> $opt = array() ]) : array<string|int, mixed>

このメソッドは、指定したページの子階層のページの一覧を返します。$path を省略した場合は、カレントページのパスを起点に一覧を抽出します。

カレントページの子階層のリンクを作成する例 :

<?php
// カレントページの子階層のリンクを作成する
$children = $px->site()->get_children();
print '<ul>';
foreach( $children as $child ){
	print '<li>'.$px->mk_link($child).'</li>';
}
print '</ul>';
?>

カレントページの子階層のリンクを、list_flg を無視してすべて表示する例 :

<?php
// カレントページの子階層のリンクを作成する
// (list_flg を無視してすべて表示する)
$children = $px->site()->get_children(null, array('filter'=>false));
print '<ul>';
foreach( $children as $child ){
	print '<li>'.$px->mk_link($child).'</li>';
}
print '</ul>';
?>
Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

$opt : array<string|int, mixed> = array()

オプション(省略可)

$opt['filter'] (初期値: `true`)
フィルターの有効/無効を切り替えます。`true` のとき有効、`false`のとき無効となります。フィルターが有効な場合、サイトマップで `list_flg` が `0` のページが一覧から除外されます。
Return values
array<string|int, mixed>

ページの一覧

get_current_page_info()

現在のページの情報を得る。

public get_current_page_info([string $key = null ]) : array<string|int, mixed>

例:

<?php
// カレントページのページ情報を得る
$page_info = $px->site()->get_current_page_info();
var_dump( $page_info );
?>
Parameters
$key : string = null

取り出す情報のキー

Return values
array<string|int, mixed>

カレントページのページ情報を格納する連想配列

get_dynamic_path_info()

ダイナミックパス情報を得る。

public get_dynamic_path_info(string $path) : string|bool
Parameters
$path : string

対象のパス

Return values
string|bool

見つかった場合に、ダイナミックパスを、見つからない場合に false を返します。

get_global_menu()

グローバルメニューのページID一覧を取得する。

public get_global_menu() : array<string|int, mixed>

サイトマップ配列から、次の条件に当てはまるページをグローバルメニューとして抽出します。

  • トップページ直下にある。
  • かつ、list_flg が立っている。
  • かつ、category_top_flg が立っている。
Return values
array<string|int, mixed>

ページの一覧

get_next()

次のページのIDを取得する。

public get_next([string $path = null ][, array<string|int, mixed> $opt = array() ]) : string|bool
Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

$opt : array<string|int, mixed> = array()

オプション(省略可)

$opt['filter'] (初期値: `true`)
フィルターの有効/無効を切り替えます。`true` のとき有効、`false`のとき無効となります。フィルターが有効な場合、リストフラグが降りているページとエイリアスが除外され、さらにその次のページを探します。
$opt['skip_children'] (初期値: `false`)
子供をスキップするか。`true` のときスキップ、`false`のとき子供も対象とします。これは内部で再帰的に実行する際の無限ループを避けるためのフラグとして設けられました。通常はこれを指定する必要はありません。
Return values
string|bool

ページID。存在しない場合は falseを返します。

get_page_id_by_path()

パスからページIDを得る。

public get_page_id_by_path(string $path) : string
Parameters
$path : string

取得するページのパス

Return values
string

$path に対応するページID

get_page_info()

ページ情報を取得する。

public get_page_info(string $path[, string $key = null ]) : mixed

このメソッドは、指定したページの情報を連想配列で返します。対象のページは第1引数にパスまたはページIDで指定します。

カレントページの情報を取得する場合は、代わりに $px->site()->get_current_page_info() が使用できます。

パスで指定したページの情報を取得する例 :

<?php
// ページ "/aaa/bbb.html" のページ情報を得る
$page_info = $px->site()->get_page_info('/aaa/bbb.html');
var_dump( $page_info );
?>

ページIDで指定したページの情報を取得する例 :

<?php
// トップページのページ情報を得る
// (トップページのページIDは必ず空白の文字列)
$page_info = $px->site()->get_page_info('');
var_dump( $page_info );
?>

取得対象のページがアクター(role値が設定されている場合にアクターと判定される)だった場合、 返却値は一旦ロールページの情報で初期化され、アクター側に値がある項目のみ、アクター側の値で上書きされます。 ただし、id, path, content, role 列はアクター側の値が、 logical_path 列はロール側の値が、それぞれ強制的に採用されます。

Parameters
$path : string

取得するページのパス または ページID。

$key : string = null

取り出す単一要素のキー。省略時はすべての要素を含む連想配列が返されます。省略可。

Return values
mixed

単一ページ情報を格納する連想配列、$key が指定された場合は、その値のみ。

get_page_info_by_id()

ページIDからページ情報を得る。

public get_page_info_by_id(string $page_id) : array<string|int, mixed>
Parameters
$page_id : string

取得するページのページID

Return values
array<string|int, mixed>

ページ情報を格納する連想配列

get_page_originated_csv()

ページIDから、そのページ情報が定義されたCSVのファイル名と行番号を得る

public get_page_originated_csv(string $path) : array<string|int, mixed>

このメソッドは pickles2/px-fw-2.x v2.0.40 で追加されました。

Parameters
$path : string

取得するページのパス または ページID。

Return values
array<string|int, mixed>

ファイル名(basename) と 行番号(row) を格納する連想配列。 または、$path が見つけられない場合に null を、失敗した場合(サイトマップキャッシュが作成されていない、など)に false を返します。

get_page_path_by_id()

ページIDからパスを得る。

public get_page_path_by_id(string $page_id) : string
Parameters
$page_id : string

取得するページのページID

Return values
string

$page_id に対応するパス

get_parent()

親ページのIDを取得する。

public get_parent([string $path = null ]) : string|bool
Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

Return values
string|bool

親ページを見つけた場合に、そのページID。見つからない場合には false を返します。

get_path_param()

ダイナミックパスからパラメータを受け取る。

public get_path_param([string $key = '' ]) : string
Parameters
$key : string = ''

ダイナミックパスパラメータ名

Return values
string

ダイナミックパスパラメータ値

get_path_type()

パス文字列を受け取り、種類を判定する。

public get_path_type(string $path) : string|bool

このメソッドは、 $conf->paths_enable_sitemap が導入され、 $site が存在しない場合が考慮されるようになったことにより、 $px(class picklesFramework2\px) に移管されました。

Parameters
$path : string

調べるパス

Return values
string|bool

判定結果。 結果は、 $px->get_path_type() に依存します。

get_pdo()

PDOインスタンスを取り出す このPDOインスタンスは、サイトマップキャッシュを読み書きするためのDBアクセスです。 このメソッドは pickles2/px-fw-2.x v2.0.40 で追加されました。

public get_pdo() : object
Return values
object

$pdo を返します。 または、PDOが利用できない場合に false を返すことがあります。

get_prev()

前のページのIDを取得する。

public get_prev([string $path = null ][, array<string|int, mixed> $opt = array() ]) : string|bool
Parameters
$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

$opt : array<string|int, mixed> = array()

オプション(省略可)

$opt['filter'] (初期値: `true`)
フィルターの有効/無効を切り替えます。`true` のとき有効、`false`のとき無効となります。フィルターが有効な場合、リストフラグが降りているページとエイリアスが除外され、さらにその前のページを探します。
Return values
string|bool

ページID。存在しない場合は falseを返します。

get_role()

role を取得する

public get_role([string $path = null ]) : string

ページ $path の role ページを探し、ページIDを返します。 roleページが更にroleを持つ場合、再帰的に検索します。

Parameters
$path : string = null

ページのパス または ページID。省略時、カレントページから自動的に取得します。

Return values
string

role の ページID

get_shoulder_menu()

ショルダーメニューのページID一覧を取得する。

public get_shoulder_menu() : array<string|int, mixed>

サイトマップ配列から、次の条件に当てはまるページをショルダーメニューとして抽出します。

  • トップページ直下にある。
  • かつ、list_flg が立っている。
  • かつ、category_top_flg が立っていない。

このメソッドは、PxFW 1.0.4 で追加されました。

Return values
array<string|int, mixed>

ページの一覧

get_sitemap()

サイトマップ配列を取得する。

public get_sitemap() : array<string|int, mixed>
Return values
array<string|int, mixed>

全ページが含まれたサイトマップ配列

get_sitemap_definition()

サイトマップ定義を取得する。

public get_sitemap_definition() : array<string|int, mixed>

このメソッドは、 Pickles Framework v2.1.8 で追加されました。

type には、カラムの型を表す以下のいずれかの値を格納します。

  • text: 単行のテキスト (デフォルト)
  • textarea: 複数行のテキスト
  • boolean: 空白、0 または 1 がセットされる真偽値
  • integer: 整数値
  • date: 日付を表す文字列
  • datetime: 日時を表す文字列
  • path: スラッシュから始まるパスを表す文字列
  • page_id: ページIDを表す文字列
  • logical_path: 論理構造上のパスを表す文字列
  • layout_id: テーマのレイアウトIDを表す文字列
Return values
array<string|int, mixed>

サイトマップ定義

is_match_dynamic_path()

パスがダイナミックパスにマッチするか調べる。

public is_match_dynamic_path(string $path) : bool
Parameters
$path : string

調べる対象のパス文字列

Return values
bool

マッチするダイナミックパスが見つかったら true、なければ false を返します。

is_page_in_breadcrumb()

ページが、パンくず内に存在しているか調べる。

public is_page_in_breadcrumb(string $page_path[, string $path = null ]) : bool
Parameters
$page_path : string

調べる対象のページのパス、またはID。

$path : string = null

起点とするページのパス または ページID。省略時、カレントページから自動的に取得します。

Return values
bool

存在している場合に true、存在しない場合に false を返します。

set_current_page_info()

現在のページの情報をセットする。

public set_current_page_info(array<string|int, mixed> $page_info) : bool
Parameters
$page_info : array<string|int, mixed>

セットするページ情報を格納する連想配列。

Return values
bool

常に true

set_page_info()

ページ情報をセットする。

public set_page_info(string $path, array<string|int, mixed> $page_info) : bool
Parameters
$path : string

セットするページのパス または ページID。

$page_info : array<string|int, mixed>

セットするページ情報を格納する連想配列。

Return values
bool

常に true

set_path_param()

ダイナミックパスからのパラメータをセットする。

public set_path_param(string $key, string $val) : bool
Parameters
$key : string

ダイナミックパスパラメータ名

$val : string

ダイナミックパスパラメータ値

Return values
bool

常に true

data2phpsrc()

変数をPHPのソースコードに変換する。

private static data2phpsrc([mixed $value = null ][, array<string|int, mixed> $options = array() ]) : string

include() に対してそのままの値を返す形になるよう変換する。

Parameters
$value : mixed = null

$options : array<string|int, mixed> = array()

オプション (self::data2text()にバイパスされます。self::data2text()の項目を参照してください)

Return values
string

include() に対して値 $value を返すPHPコード

data2text()

変数を受け取り、PHPのシンタックスに変換する。

private static data2text([mixed $value = null ][, array<string|int, mixed> $options = array() ]) : string
Parameters
$value : mixed = null

$options : array<string|int, mixed> = array()

オプション

delete_arrayelm_if_null
配列の要素が `null` だった場合に削除。
array_break
配列に適当なところで改行を入れる。
Return values
string

PHPシンタックスに変換された値

escape_singlequote()

シングルクオートで囲えるようにエスケープ処理する。

private static escape_singlequote(string $text) : string
Parameters
$text : string

テキスト

Return values
string

エスケープされたテキスト

is_sitemap_cache()

サイトマップキャッシュが読み込み可能か調べる。

private is_sitemap_cache() : bool
Return values
bool

読み込み可能な場合に true、読み込みできない場合に false を返します。

load_sitemap_csv()

サイトマップCSVを読み込む。

private load_sitemap_csv() : bool

サイトマップディレクトリに格納されたサイトマップCSV (./px-files/sitemaps/*.csv) を読み込み、パースします。

この処理は、サイトマップの行数や階層構造によっては、重い処理になります。 そのため、このメソッドは、パースした後の配列情報をキャッシュディレクトリ(./px-files/_sys/ram/caches/sitemaps/)にキャッシュし、 次回以降はキャッシュを読み込むことで重い処理を回避します。

このキャッシュは、キャッシュファイルのタイムスタンプより新しいCSVを発見するか、 ?PX=clearcache によりキャッシュがクリアされると、次回アクセス時に再生成されます。

Return values
bool

成功時に true, 失敗時に false を返します。

usort_sitemap()

ページ情報の配列を並び替える。

private usort_sitemap(string $a, string $b) : int
Parameters
$a : string

比較対象1のページID

$b : string

比較対象2のページID

Return values
int

並び順の前後関係 (1|0|-1)

Search results