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
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
$pdo
PDOインスタンス $sitemap_page_tree のキャッシュにSQLiteを使用するためのデータベース。
private
mixed
$pdo
Tags
$px
Picklesオブジェクト
private
mixed
$px
Tags
$sitemap_array
サイトマップ配列
private
mixed
$sitemap_array
= array()
Tags
$sitemap_dynamic_paths
ダイナミックパスの一覧
private
mixed
$sitemap_dynamic_paths
= array()
Tags
$sitemap_id_map
ページIDマップ
private
mixed
$sitemap_id_map
= array()
Tags
$sitemap_page_tree
サイトマップのツリー構造
private
mixed
$sitemap_page_tree
= array()
Tags
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
)