Source for file htf_frm_pageconfig.phl
Documentation is available at htf_frm_pageconfig.phl
* pageconfig情報を保持しページエリア全体を管理するクラス
* @package HtmlTemplateFramework
* @author Yamauchi Shogo <htf@as-prj.com>
* @version $Id: htf_frm_pageconfig.phl ,v 1.0 $
require_once("htf_com_initialize.inc"); //共通初期処理
require_once("htf_tag_table.phl"); //tableタグ生成クラス
require_once("htf_frm_pageheader.phl"); //pageheader保有クラス
require_once("htf_frm_indexbar.phl"); //indexbar保有クラス
require_once("htf_frm_leftarea.phl"); //leftarea保有クラス
require_once("htf_frm_rightarea.phl"); //rightarea保有クラス
require_once("htf_frm_contentarea.phl"); //contentarea保有クラス
require_once("htf_frm_pagefooter.phl"); //pagefooter保有クラス
* pageconfig情報を保持しページエリア全体を管理するクラス
* コンストラクタに引数で渡されるpageconfig要素のDOMノードを参照し、
* pageconfig要素の属性情報・配下のページエリア情報を保持します。<br>
* @author Yamauchi Shogo <htf@as-prj.com>
* tdタグでブロッキングされたページエリア全体での横位置を指定します。
* この値は、そのままブロッキングしたtdタグのalign属性となります。
* 'left','center','right'等を指定してください。
* tdタグでブロッキングされたページエリア全体の縦位置を指定します。
* この値は、そのままブロッキングしたtdタグのvalign属性となります。
* この値はCSSのwidthプロパティの値としてそのまま出力されます。
* この値はCSSのborder-widthプロパティの値としてそのまま出力されます。
* この値はCSSのborder-colorプロパティの値としてそのまま出力されます。
* この値はCSSのbackground-colorプロパティの値としてそのまま出力されます。
* この値はCSSのbackground-colorプロパティの値として出力されます。
* ただし、CSS記述の際に必要な url() の記述は必要ありません。
* また、DOMノードからの生成時、このプロパティ内容にHTFフレームの置換タグがあった場合には、置換されて設定されます。
* この値はCSSのcolorプロパティの値として出力されます。
* ページエリア全体のリンクの文字色を指定します。
* この値はCSSのcolorプロパティの値として出力されます。
* ページエリア全体の既に見たリンクの文字色を指定します。
* この値はCSSのcolorプロパティの値として出力されます。
* ページエリア全体のクリック時リンクの文字色を指定します。
* この値はCSSのcolorプロパティの値として出力されます。
* ページエリア全体のカーソルが乗った時のリンク文字色を指定します。
* この値はCSSのcolorプロパティの値として出力されます。
* ページヘッダを出力対象とするかどうかを定義します。設定可能な値は以下です。<br>
* インデックスバーを出力対象とするかどうかを定義します。設定可能な値は以下です。<br>
* レフトエリアを出力対象とするかどうかを定義します。設定可能な値は以下です。<br>
* コンテンツエリアを出力対象とするかどうかを定義します。設定可能な値は以下です。<br>
* ただし、use_contentarea属性を'off'に設定した場合、正しくタグが出力されない場合があります。<br>
* ライトエリアを出力対象とするかどうかを定義します。設定可能な値は以下です。<br>
* ページフッタを出力対象とするかどうかを定義します。設定可能な値は以下です。<br>
* レフトエリアとインデックスバーを両方出力可能とした場合、どちらがオーバーラップして出力するかを指定します。設定可能な値は以下です。<br>
* 'indexbar'→インデックスバーをオーバーラップする(デフォルト)<br>
* 'leftarea'→レフトエリアをオーバーラップする<br>
//var $overwrap_rightarea; //インデックスバーと右エリアのオーバーラップ指定
* ページエリアのテーブルに適用されるCSSクラス名です。
* @var htf_frm_pageheader
* @var htf_frm_contentarea
* @var htf_frm_pagefooter
* 引数のDOMノードから、htf_frm_pageconfigクラスのインスタンスを生成します。
* 引数のDOMノードに各属性値・子ノード(各ページエリア情報)が存在しない場合には、それぞれを初期値で生成します。
* use_pageheader属性→'off'(使用しない)<br>
* use_indexbar属性→'off'(使用しない)<br>
* use_leftarea属性→'off'(使用しない)<br>
* use_contentarea属性→'on'(使用する)<br>
* use_rightarea属性→'off'(使用しない)<br>
* use_pagefooter属性→'off'(使用しない)<br>
* overwrap_leftarea属性 = 'indexbar'(indexbarがオーバラップする)<br>
* classname属性 = 'page'<br>
* pageheaderノード = htf_frm_pageheaderクラス初期値<br>
* indexbarノード = htf_frm_indexbarクラス初期値<br>
* leftareaノード = htf_frm_leftareaクラス初期値<br>
* rightareaノード = htf_frm_rightareaクラス初期値<br>
* contentareaノード = htf_frm_contentareaクラス初期値<br>
* pagefooterノード = htf_frm_pagefooterクラス初期値<br>
* @param object $objnode pageconfigのDOMノード
$arrattr = $objnode->attributes();
$arrnodes = $objnode->child_nodes();
$this->initialize_property();
$this->override_property($arrattr);
$this->get_childnodes($arrnodes);
$this->initialize_nullnodes();
* 各ページエリアに適用するCSS書式を生成し、文字列を返します。
* @return string CSS書式文字列
$strret = $this->get_cssformat_pageconfig(); //pageconfigのcss書式を取得
$strret.= $this->get_cssformat_pageconfig_anchor(); //pageconfigのanchor用css書式を取得
$strret.= $this->get_cssformat_childnodes(); //pageconfigの子ノードのcss書式を取得
* ページエリア全体のHTMLタグを文字列として取得します。
* ただし、配下のページエリアのタイプがinclude指定の場合、その部分はincludeを記述したphpスクリプト文字列となります。
* @return string ボディ部HTMLタグ文字列
$strret = $this->tabletag->get_htmltag();
$tr_pageheader->add_column($td_pageheader);
$this->tabletag->add_row_tbody($tr_pageheader);
//indexbar,leftarea,rightarea,contentareaの該当タグオブジェクト設定
$this->set_tag_dynamicarea();
$tr_pagefooter->add_column($td_pagefooter);
$this->tabletag->add_row_tbody($tr_pagefooter);
* pageconfigに定義されているプロパティ内容からcss書式を取得します。
function get_cssformat_pageconfig() {
$cssstyle->add_property('border-width', $this->border);
$cssstyle->add_property('border-style', 'solid');
$cssstyle->add_property('border-color', $this->bordercolor);
$cssstyle->add_property('background-color', $this->bgcolor);
$cssstyle->add_property('background-image', 'url('. $this->bgimage. ')');
$cssstyle->add_property('color', $this->fontcolor);
* pageconfigに定義されているプロパティ内容からcss書式を取得します。(anchor関係)
function get_cssformat_pageconfig_anchor() {
$cssstyle_linkcolor->classname = $this->classname;
$cssstyle_linkcolor->anchor_name = 'A:link';
$cssstyle_linkcolor->add_property('color',$this->linkcolor);
$cssstyle_visitedcolor->classname = $this->classname;
$cssstyle_visitedcolor->anchor_name = 'A:visited';
$cssstyle_visitedcolor->add_property('color',$this->visitedcolor);
$cssstyle_activecolor->classname = $this->classname;
$cssstyle_activecolor->anchor_name = 'A:active';
$cssstyle_activecolor->add_property('color',$this->activecolor);
$cssstyle_hovercolor->classname = $this->classname;
$cssstyle_hovercolor->anchor_name = 'A:hover';
$cssstyle_hovercolor->add_property('color',$this->hovercolor);
* pageconfigの子ノードに適用するcss書式文字列を取得します。
function get_cssformat_childnodes() {
|