class TransformHelper

テンプレートをDOM変形するためのヘルパークラス

Constants

ERR_TARGET_ELEMENT_NOT_FOUND

Properties

protected $objDOM
protected $arrSmartyTagsOrg
protected $arrSmartyTagsSub
protected $smarty_tags_idx
protected $arrErr
protected $arrElementTree
protected $arrSelectElements
protected $html_source
protected $header_source
$footer_source
protected $search_depth

Methods

void
__construct(string $source)

SmartyのHTMLソースをDOMに変換しておく

select(string $selector, integer $index = NULL, boolean $require = true, string $err_msg = NULL)

jQueryライクなセレクタを用いてエレメントを選択する

find(string $selector, integer $index = NULL, boolean $require = true, string $err_msg = NULL)

jQueryライクなセレクタを用いて、選択したエレメント内をさらに絞り込む

end(int $back_num = 1)

選択状態を指定数戻す

insertBefore(string $html_snip)

要素の前にHTMLを挿入

insertAfter(string $html_snip)

要素の後にHTMLを挿入

appendFirst(string $html_snip)

要素の先頭にHTMLを挿入

appendChild(string $html_snip)

要素の末尾にHTMLを挿入

replaceElement(string $html_snip)

要素を指定したHTMLに置換

removeElement()

要素を削除する

string
getHTML()

HTMLに戻して、Transform用に付けたマーカーを削除し、Smartyのタグを復元する

string
lfCaptureSmartyTags2Comment(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

string
lfCaptureHeadTags2Comment(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

string
lfCaptureSmartyTagsInTag(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

string
lfCaptureSmartyTags2Temptag(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

string
lfCaptureSmartyTagsInQuote(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

string
lfCaptureSmartyTags2Value(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

string
lfCaptureSmartyTags2Attr(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

void
lfScanChild(DOMNode $objDOMElement, $parent_selector = '')

DOM Element / Document を走査し、name、class別に分類する

string
lfSelector2Regex(string $selector, string $parent_index = NULL)

セレクタ文字列をツリー検索用の正規表現に変換する

void
lfAddElement(integer $elementNo, array $arrElement)

見つかった要素をプロパティに登録

boolean
lfSetTransform(string $mode, string $target_key, string $html_snip)

DOMを用いた変形を実行する

void
lfSetError(string $selector, integer $type, string $err_msg = NULL)

セレクタエラーを記録する

Details

at line 56
void __construct(string $source)

SmartyのHTMLソースをDOMに変換しておく

Parameters

string $source 変形対象のテンプレート

Return Value

void

at line 138
TransformHelper select(string $selector, integer $index = NULL, boolean $require = true, string $err_msg = NULL)

jQueryライクなセレクタを用いてエレメントを選択する

Parameters

string $selector セレクタ
integer $index インデックス(指定がある場合)
boolean $require エレメントが見つからなかった場合、エラーとするか
string $err_msg エラーメッセージ

Return Value

TransformHelper

at line 178
TransformHelper find(string $selector, integer $index = NULL, boolean $require = true, string $err_msg = NULL)

jQueryライクなセレクタを用いて、選択したエレメント内をさらに絞り込む

Parameters

string $selector セレクタ
integer $index インデックス(指定がある場合)
boolean $require エレメントが見つからなかった場合、エラーとするか
string $err_msg エラーメッセージ

Return Value

TransformHelper

at line 218
TransformHelper end(int $back_num = 1)

選択状態を指定数戻す

Parameters

int $back_num 選択状態を戻す数

Return Value

TransformHelper

at line 235
TransformHelper insertBefore(string $html_snip)

要素の前にHTMLを挿入

Parameters

string $html_snip 挿入するHTMLの断片

Return Value

TransformHelper

at line 252
TransformHelper insertAfter(string $html_snip)

要素の後にHTMLを挿入

Parameters

string $html_snip 挿入するHTMLの断片

Return Value

TransformHelper

at line 269
TransformHelper appendFirst(string $html_snip)

要素の先頭にHTMLを挿入

Parameters

string $html_snip 挿入するHTMLの断片

Return Value

TransformHelper

at line 286
TransformHelper appendChild(string $html_snip)

要素の末尾にHTMLを挿入

Parameters

string $html_snip 挿入するHTMLの断片

Return Value

TransformHelper

at line 303
TransformHelper replaceElement(string $html_snip)

要素を指定したHTMLに置換

Parameters

string $html_snip 置換後のHTMLの断片

Return Value

TransformHelper

at line 319
TransformHelper removeElement()

要素を削除する

Return Value

TransformHelper

at line 335
string getHTML()

HTMLに戻して、Transform用に付けたマーカーを削除し、Smartyのタグを復元する

Return Value

string トランスフォーム済みHTML。まったくトランスフォームが行われなかった場合は元のHTMLを返す。。

at line 381
protected string lfCaptureSmartyTags2Comment(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

コメント形式への置換

Parameters

array $arrMatches マッチしたタグの情報

Return Value

string 代わりの文字列

at line 399
protected string lfCaptureHeadTags2Comment(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

コメント形式への置換

Parameters

array $arrMatches マッチしたタグの情報

Return Value

string 代わりの文字列

at line 422
protected string lfCaptureSmartyTagsInTag(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

HTMLエレメント内部の処理

Parameters

array $arrMatches マッチしたタグの情報

Return Value

string 代わりの文字列

at line 440
protected string lfCaptureSmartyTags2Temptag(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

ダミーへの置換実行

Parameters

array $arrMatches マッチしたタグの情報

Return Value

string 代わりの文字列

at line 458
protected string lfCaptureSmartyTagsInQuote(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

クォート内(=属性値)内にあるSmartyタグ(ダミーに置換済み)を、テキストに置換

Parameters

array $arrMatches マッチしたタグの情報

Return Value

string 代わりの文字列

at line 477
protected string lfCaptureSmartyTags2Value(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

テキストへの置換実行

Parameters

array $arrMatches マッチしたタグの情報

Return Value

string 代わりの文字列

at line 494
protected string lfCaptureSmartyTags2Attr(array $arrMatches)

DOMの処理の邪魔になるSmartyのタグを代理文字に置換する pregreplacecallback のコールバック関数

エレメント内部にあって、属性値ではないものを、ダミーの属性として置換

Parameters

array $arrMatches マッチしたタグの情報

Return Value

string 代わりの文字列

at line 509
protected void lfScanChild(DOMNode $objDOMElement, $parent_selector = '')

DOM Element / Document を走査し、name、class別に分類する

Parameters

DOMNode $objDOMElement
$parent_selector

Return Value

void

at line 545
protected string lfSelector2Regex(string $selector, string $parent_index = NULL)

セレクタ文字列をツリー検索用の正規表現に変換する

Parameters

string $selector セレクタ
string $parent_index セレクタ検索時の親要素の位置(子孫要素検索のため)

Return Value

string 正規表現文字列

at line 580
protected void lfAddElement(integer $elementNo, array $arrElement)

見つかった要素をプロパティに登録

Parameters

integer $elementNo エレメントのインデックス
array $arrElement インデックスとDOMオブジェクトをペアとした配列

Return Value

void

at line 597
protected boolean lfSetTransform(string $mode, string $target_key, string $html_snip)

DOMを用いた変形を実行する

Parameters

string $mode 実行するメソッドの種類
string $target_key 対象のエレメントの完全なセレクタ
string $html_snip HTMLコード

Return Value

boolean

at line 661
protected void lfSetError(string $selector, integer $type, string $err_msg = NULL)

セレクタエラーを記録する

Parameters

string $selector セレクタ
integer $type エラーの種類
string $err_msg エラーメッセージ

Return Value

void