HtmlTemplateFramework
[
class tree: HtmlTemplateFramework
] [
index: HtmlTemplateFramework
] [
all elements
]
Packages:
HtmlTemplateFramework
Source for file htf_frm_bodyconfig.phl
Documentation is available at
htf_frm_bodyconfig.phl
<?php
/**
* htf_frm_bodyconfigクラス
*
* bodyconfigの情報を管理するクラス
*
*
@package
HtmlTemplateFramework
*
@subpackage
frame
*
@access
public
*
@author
Yamauchi Shogo <htf@as-prj.com>
*
@version
$Id: htf_frm_bodyconfig.phl ,v 1.0 $
***/
require_once
(
"htf_com_initialize.inc"
)
;
//共通初期処理
require_once
(
"htf_tag_element.phl"
)
;
//タグオブジェクト
require_once
(
"htf_frm_pageconfig.phl"
)
;
//pageconfig
/**
* bodyconfigの情報を管理するクラス
*
* コンストラクタに引数で渡されるbodyconfig要素のDOMノードを参照し、
* bodyconfig要素と、配下の子要素(pageconfig)の情報を保持します。<br>
* <br>
* pageconfig要素が存在しない場合には、初期値でpageconfig要素の保有インスタンスを生成します。<br>
*
*
@access
public
*
@author
Yamauchi Shogo <htf@as-prj.com>
***/
class
htf_frm_bodyconfig
{
/**
* bgcolor属性
*
* HTMLタグのbody部の背景色を指定する属性です。初期値は空文字で、その場合には背景色は指定されません。
* コンストラクタの引数ノードにbgcolor属性の指定がある場合には、その値がそのまま設定されます。
* この値はCSSのbackground-colorプロパティの値として出力されます。CSSの記述方法に沿って指定してください。
*
*
@access
public
*
@var
string
*/
var
$bgcolor
;
/**
* bgimage属性
*
* HTMLタグのbody部の背景イメージURLを指定する属性です。初期値は空文字で、その場合には背景イメージは指定されません。
* コンストラクタの引数ノードにbgimage属性の指定がある場合には、その値がそのまま設定されます。
* この値はCSSのbackground-imageプロパティの値として出力されます。
* ただし、CSS記述の際に必要な url() の記述は必要ありません。
* また、DOMノードからの生成時、このプロパティ内容にHTFフレームの置換タグがあった場合には、置換されて設定されます。
*
*
@access
public
*
@var
string
*/
var
$bgimage
;
/**
* margin属性
*
* HTMLタグのbody部のマージンを指定する属性です。初期値は空文字で、その場合にはマージンは指定されません。
* コンストラクタの引数ノードにmargin属性の指定がある場合には、その値がそのまま設定されます。
* この値はCSSのmarginプロパティの値として出力されます。
*
*
@access
public
*
@var
string
*/
var
$margin
;
/**
* pageconfig
*
* bodyconfig要素の子要素のpageconfig要素の内容を保持します。
*
*
@access
public
*
@var
htf_frm_pageconfig
*/
var
$pageconfig
;
/**
* 引数のDOMノードから、htf_frm_bodyconfigクラスのインスタンスを生成します。
* 各属性値や子要素が存在しない場合には、それぞれを初期値で生成します。
*
*
@param
object
$objnode
bodyconfigのDOMノード
*
@return
void
***/
function
htf_frm_bodyconfig
(
$objnode
=
NULL
)
{
//属性配列・ノード配列取得
if
(
!
is_null
(
$objnode
))
{
$arrattr
=
$objnode
->
attributes
(
)
;
$arrnodes
=
$objnode
->
child_nodes
(
)
;
}
else
{
$arrattr
=
array
(
)
;
$arrnodes
=
array
(
)
;
}
//プロパティ初期化
$this
->
initialize_property
(
)
;
//各プロパティ上書き
$this
->
override_property
(
$arrattr
)
;
//bodyconfig配下の子ノード取得
$this
->
get_childnodes
(
$arrnodes
)
;
//pageconfigが生成されない場合は初期値で生成
$this
->
initialize_nullnodes
(
)
;
}
/**
* ボディと配下の各エリアに適用するCSS書式を取得します。
*
*
@access
public
*
@return
string
CSS書式文字列
***/
function
get_cssformat
(
)
{
//CSS書式文字列取得(bodyconfig)
$strret
=
$this
->
get_cssformat_bodyconfig
(
)
;
//CSS書式文字列取得(pageconfig)
$strret
.=
$this
->
get_cssformat_childnodes
(
)
;
return
$strret
;
}
/**
* ボディのHTMLタグを文字列として取得します。
*
* ただし、配下のページエリアのタイプがinclude指定の場合、その部分はincludeを記述したphpスクリプト文字列となります。
*
*
@access
public
*
@return
string
ボディ部HTMLタグ文字列
***/
function
get_htmltag
(
)
{
//開始コメント・body開始タグ&出力
$body
=
new
htf_tag_element
(
"body"
,
TRUE
,
HTF_ITEMCASE_ELEMENT
)
;
$strret
=
htf_get_comment_areastart
(
'body'
)
;
$strret
.=
htf_add_cr
(
$body
->
get_starttag
(
))
;
//pageconfigのタグ出力
$strret
.=
$this
->
pageconfig
->
get_htmltag
(
)
;
//終了コメント・body終了タグ作成&出力
$strret
.=
htf_add_cr
(
$body
->
get_endtag
(
))
;
$strret
.=
htf_get_comment_areaend
(
'body'
)
;
return
$strret
;
}
/**
* ボディのHTMLタグを出力します。
*
*
@access
public
*
@return
void
***/
function
print_htmltag
(
)
{
//開始コメント・body開始タグ&出力
$body
=
new
htf_tag_element
(
"body"
,
TRUE
,
HTF_ITEMCASE_ELEMENT
)
;
$strret
=
htf_get_comment_areastart
(
'body'
)
;
$strret
.=
htf_add_cr
(
$body
->
get_starttag
(
))
;
print
(
$strret
)
;
//pageconfigのタグ出力
$this
->
pageconfig
->
print_htmltag
(
)
;
//終了コメント・body終了タグ作成&出力
$strret
=
htf_add_cr
(
$body
->
get_endtag
(
))
;
$strret
.=
htf_get_comment_areaend
(
'body'
)
;
print
(
$strret
)
;
return
;
}
/**
* 各種プロパティを初期化します。
*
*
@access
private
*
@return
void
***/
function
initialize_property
(
)
{
//プロパティ初期化
$this
->
bgcolor
=
""
;
$this
->
bgimage
=
""
;
$this
->
margin
=
""
;
$this
->
pageconfig
=
NULL
;
return
;
}
/**
* 各種プロパティを引数の属性配列値で上書きします。
*
*
@param
array
$arrattr
属性情報(htf_tag_attribute)配列
*
@access
private
*
@return
void
***/
function
override_property
(
$arrattr
)
{
for
(
$i
=
0
;
$i
<
count
(
$arrattr
)
;
$i
++
)
{
if
(
htf_comp_xmlattrname
(
HTF_ATTR_BODYCONFIG_BGCOLOR
,
$arrattr
[
$i
]
->
name
))
{
//bgcolor属性
$this
->
bgcolor
=
htf_get_encoded_attr
(
$arrattr
[
$i
]
->
value
)
;
}
else
if
(
htf_comp_xmlattrname
(
HTF_ATTR_BODYCONFIG_BGIMAGE
,
$arrattr
[
$i
]
->
name
))
{
//bgimage属性
$this
->
bgimage
=
htf_replace_definetag
(
htf_get_encoded_attr
(
$arrattr
[
$i
]
->
value
))
;
}
else
if
(
htf_comp_xmlattrname
(
HTF_ATTR_BODYCONFIG_MARGIN
,
$arrattr
[
$i
]
->
name
))
{
//margin属性
$this
->
margin
=
htf_get_encoded_attr
(
$arrattr
[
$i
]
->
value
)
;
}
}
return
;
}
/**
* 子ノード配列から、配下のオブジェクト(htf_frm_pageconfig)を生成します。
*
*
@param
array
$arrcnode
子ノード配列配列
*
@access
private
*
@return
void
***/
function
get_childnodes
(
$arrcnode
)
{
for
(
$i
=
0
;
$i
<
count
(
$arrcnode
)
;
$i
++
)
{
if
(
$arrcnode
[
$i
]
->
node_type
(
)
!=
XML_TEXT_NODE
)
{
if
(
htf_comp_xmlelementname
(
HTF_CONF_XML_PAGECONFIG
,
$arrcnode
[
$i
]
->
node_name
(
)))
{
//pageconfig
$this
->
pageconfig
=
new
htf_frm_pageconfig
(
$arrcnode
[
$i
]
)
;
}
}
}
return
;
}
/**
* 存在しない要素について、子要素を初期値で生成する。
*
*
@access
private
*
@return
void
***/
function
initialize_nullnodes
(
)
{
if
(
is_null
(
$this
->
pageconfig
))
{
$this
->
pageconfig
=
new
htf_frm_pageconfig
(
)
;
}
return
;
}
/**
* BODY部に適用するCSS書式文字列を取得します。
*
*
@access
private
*
@return
string
BODY部のCSS書式文字列
***/
function
get_cssformat_bodyconfig
(
)
{
$cssstyle
=
new
htf_css_style
(
)
;
array_push
(
$cssstyle
->
arr_element_name
,
'body'
)
;
//bgcolor
if
(
htf_is_existsval
(
$this
->
bgcolor
))
{
$cssstyle
->
add_property
(
'background-color'
,
$this
->
bgcolor
)
;
}
//bgimage
if
(
htf_is_existsval
(
$this
->
bgimage
))
{
$cssstyle
->
add_property
(
'background-image'
,
'url('
.
$this
->
bgimage
.
')'
)
;
}
//margin
if
(
htf_is_existsval
(
$this
->
margin
))
{
$cssstyle
->
add_property
(
'margin'
,
$this
->
margin
)
;
}
//CSS書式文字列取得
$strret
=
htf_add_cr
(
$cssstyle
->
get_css_style
(
HTF_CSS_STYLE_USE_ELEMENT_FST
))
;
return
$strret
;
}
/**
* 子ノードに適用するCSS書式文字列を取得します。
*
*
@access
private
*
@return
string
子ノードのCSS書式文字列
***/
function
get_cssformat_childnodes
(
)
{
$strret
=
""
;
//子ノードのCSS取得
//pageheader
if
(
!
is_null
(
$this
->
pageconfig
))
{
$strret
.=
htf_add_cr
(
$this
->
pageconfig
->
get_cssformat
(
))
;
}
return
$strret
;
}
}
?>
Documentation generated on Tue, 19 Sep 2006 06:20:49 +0900 by
phpDocumentor 1.3.0