HtmlTemplateFramework
[
class tree: HtmlTemplateFramework
] [
index: HtmlTemplateFramework
] [
all elements
]
Packages:
HtmlTemplateFramework
Source for file htf_tlb_sitemap.phl
Documentation is available at
htf_tlb_sitemap.phl
<?php
/**
* htf_tlb_sitemapクラス
*
* サイトマップタグ生成クラス
*
*
@package
HtmlTemplateFramework
*
@subpackage
htmltaglib
*
@access
public
*
@author
Yamauchi Shogo <htf@as-prj.com>
*
@version
$Id: htf_tlb_sitemap.phl ,v 1.0 $
***/
require_once
(
"htf_com_initialize.inc"
)
;
//共通初期処理
require_once
(
"htf_tag_element.phl"
)
;
//タグエレメントクラス
require_once
(
"htf_tag_ul.phl"
)
;
//ulタグクラス
require_once
(
"htf_tag_li.phl"
)
;
//liタグクラス
require_once
(
"htf_dat_menu.phl"
)
;
//メニュークラス
/**
* サイトマップタグ生成クラス
*
* サイトマップタグ生成用のクラス。
*
*
@access
public
*
@author
Yamauchi Shogo <htf@as-prj.com>
***/
class
htf_tlb_sitemap
{
/**
* サイトマップ作成のためのマップデータ
*
*
@access
public
*
@var
htf_dat_menu
**
*/
var
$menu
;
/**
* 表示するulタグに指定するタイプ
*
*
@access
public
*
@var
htf_dat_menu
**
*/
var
$ultype
;
/**
* コンストラクタ
*
* 引数の設定値からサイトマップタグオブジェクトを生成します。
*
*
@param
String
$menu
メニューオブジェクト
*
@param
String
$ultypestr
サイトマップ出力に使用するULのタイプ(デフォルトは空文字・指定無し)
*
@return
void
***/
function
htf_tlb_sitemap
(
$menu
=
null
,
$ultypestr
=
""
)
{
$this
->
menu
=
$menu
;
//menuオブジェクト
$this
->
ultype
=
$ultypestr
;
//ulタグのtype属性
if
(
is_null
(
$this
->
menu
))
{
$this
->
menu
=
new
htf_dat_menu
(
)
;
}
return
;
}
/**
* サイトマップタグを取得します。
*
*
@access
public
*
@return
string
サイトマップHtmlタグ
***/
function
get_htmltag
(
)
{
$sitemaptag
=
new
htf_tlb_sitemap_maketag
(
$this
->
menu
,
$this
->
ultype
)
;
$tagobj
=
$sitemaptag
->
get_sitemaptag
(
)
;
return
$tagobj
->
get_htmltag
(
)
;
}
}
/**
* サイトマップタグを生成するヘルパークラス
*
* サイトマップタグを実際に作成するヘルパークラス。
*
*
@access
private
***/
class
htf_tlb_sitemap_maketag
{
var
$menu
;
//menuオブジェクト
var
$ultype
;
//ulのタイプ
/**
* コンストラクタ
*
* 引数の設定値からサイトマップタグオブジェクトを生成します。
*
*
@param
string
$paramenu
メニューオブジェクト
*
@param
string
$ultypestr
サイトマップ出力に使用するULのタイプ(デフォルトは空文字・指定無し)
*
@return
void
***/
function
htf_tlb_sitemap_maketag
(
$paramenu
=
null
,
$ultypestr
=
""
)
{
$this
->
menu
=
$paramenu
;
$this
->
ultype
=
$ultypestr
;
if
(
is_null
(
$this
->
menu
))
{
$this
->
menu
=
new
htf_dat_menu
(
)
;
}
}
/**
* ルートノードのタグオブジェクトを生成する
*
*
@access
private
*
@return
htf_tag_ul
生成したulタグ
***/
function
get_sitemaptag
(
)
{
//ulタグの属性設定
$ultag
=
new
htf_tag_ul
(
HTF_ITEMCASE_ELEMENT
)
;
if
(
htf_is_existsval
(
$this
->
ultype
))
{
$ultag
->
add_attribute
(
"type"
,
$this
->
ultype
)
;
}
for
(
$i
=
0
;
$i
<
count
(
$this
->
menu
->
arr_menuitem
)
;
$i
++
)
{
$ultag
->
add_content
(
$this
->
get_litag
(
$this
->
menu
->
arr_menuitem
[
$i
]
))
;
}
return
$ultag
;
}
/**
* 自ノード・配下ノードのmenuitemについてタグオブジェクトを生成する
*
*
@access
private
*
@return
htf_tag_ul
生成したliタグ
***/
function
get_litag
(
$menuitem
)
{
//liタグ生成
$litag
=
new
htf_tag_li
(
HTF_ITEMCASE_ELEMENT
)
;
//aタグの属性設定
if
(
htf_is_existsval
(
$menuitem
->
url
))
{
$atag
=
new
htf_tag_element
(
"a"
,
TRUE
,
HTF_ITEMCASE_ELEMENT
)
;
$atag
->
add_attribute
(
"href"
,
$menuitem
->
url
,
HTF_ITEMCASE_ATTRIBUTE
)
;
$atag
->
add_content
(
$menuitem
->
label
)
;
$litag
->
add_content
(
$atag
)
;
}
else
{
$litag
->
add_content
(
$menuitem
->
label
)
;
}
//子ノードのタグ生成
if
(
count
(
$menuitem
->
arr_menuitem
)
>
0
)
{
//ulタグの属性設定
$ultag
=
new
htf_tag_ul
(
HTF_ITEMCASE_ELEMENT
)
;
if
(
htf_is_existsval
(
$this
->
ultype
))
{
$ultag
->
add_attribute
(
"type"
,
$this
->
ultype
)
;
}
for
(
$i
=
0
;
$i
<
count
(
$menuitem
->
arr_menuitem
)
;
$i
++
)
{
$ultag
->
add_content
(
$this
->
get_litag
(
$menuitem
->
arr_menuitem
[
$i
]
))
;
}
$litag
->
add_content
(
$ultag
)
;
}
return
$litag
;
}
}
?>
Documentation generated on Tue, 19 Sep 2006 06:21:36 +0900 by
phpDocumentor 1.3.0