HtmlTemplateFramework
[ class tree: HtmlTemplateFramework ] [ index: HtmlTemplateFramework ] [ all elements ]

Source for file htf_tlb_sitemap.phl

Documentation is available at htf_tlb_sitemap.phl

  1. <?php
  2. /**
  3.  * htf_tlb_sitemapクラス
  4.  *
  5.  * サイトマップタグ生成クラス
  6.  *
  7.  * @package HtmlTemplateFramework
  8.  * @subpackage htmltaglib
  9.  * @access  public
  10.  * @author    Yamauchi Shogo <htf@as-prj.com>
  11.  * @version $Id: htf_tlb_sitemap.phl ,v 1.0 $
  12.  ***/
  13. require_once("htf_com_initialize.inc");    //共通初期処理
  14. require_once("htf_tag_element.phl");        //タグエレメントクラス
  15. require_once("htf_tag_ul.phl");            //ulタグクラス
  16. require_once("htf_tag_li.phl");            //liタグクラス
  17. require_once("htf_dat_menu.phl");            //メニュークラス
  18.  
  19. /**
  20.  * サイトマップタグ生成クラス
  21.  * 
  22.  * サイトマップタグ生成用のクラス。
  23.  *
  24.  * @access  public
  25.  * @author    Yamauchi Shogo <htf@as-prj.com>
  26.  ***/
  27. class htf_tlb_sitemap {
  28.     /**
  29.      * サイトマップ作成のためのマップデータ
  30.      * 
  31.      * @access public
  32.      * @var htf_dat_menu 
  33.      ***/
  34.     var $menu;
  35.     /**
  36.      * 表示するulタグに指定するタイプ
  37.      * 
  38.      * @access public
  39.      * @var htf_dat_menu 
  40.      ***/
  41.     var $ultype;
  42.     
  43.     /**
  44.      * コンストラクタ
  45.      *
  46.      * 引数の設定値からサイトマップタグオブジェクトを生成します。
  47.      *
  48.      * @param     String    $menu          メニューオブジェクト
  49.      * @param     String    $ultypestr     サイトマップ出力に使用するULのタイプ(デフォルトは空文字・指定無し)
  50.      * @return    void 
  51.      ***/
  52.     function htf_tlb_sitemap($menu=null$ultypestr=""{
  53.         $this->menu = $menu;                //menuオブジェクト
  54.         $this->ultype = $ultypestr;        //ulタグのtype属性
  55.         
  56.         if (is_null($this->menu)) {
  57.             $this->menu = new htf_dat_menu();
  58.         }
  59.         
  60.         return;
  61.     }
  62.     
  63.     /**
  64.      * サイトマップタグを取得します。
  65.      *
  66.      * @access  public
  67.      * @return string  サイトマップHtmlタグ
  68.      ***/
  69.     function get_htmltag({
  70.  
  71.         $sitemaptag new htf_tlb_sitemap_maketag($this->menu$this->ultype);        
  72.         $tagobj $sitemaptag->get_sitemaptag();
  73.         return $tagobj->get_htmltag();
  74.     }
  75.     
  76.  
  77. }
  78.  
  79. /**
  80.  * サイトマップタグを生成するヘルパークラス
  81.  * 
  82.  * サイトマップタグを実際に作成するヘルパークラス。
  83.  *
  84.  * @access  private
  85.  ***/
  86. class htf_tlb_sitemap_maketag {
  87.     var $menu;            //menuオブジェクト
  88.         var $ultype;        //ulのタイプ
  89.  
  90.     
  91.     /**
  92.      * コンストラクタ
  93.      *
  94.      * 引数の設定値からサイトマップタグオブジェクトを生成します。
  95.      *
  96.      * @param     string    $paramenu      メニューオブジェクト
  97.      * @param     string    $ultypestr     サイトマップ出力に使用するULのタイプ(デフォルトは空文字・指定無し)
  98.      * @return    void 
  99.      ***/
  100.     function htf_tlb_sitemap_maketag($paramenu=null$ultypestr=""{
  101.         $this->menu $paramenu;
  102.         $this->ultype $ultypestr;
  103.         if (is_null($this->menu)) {
  104.             $this->menu new htf_dat_menu();
  105.         }
  106.     }
  107.     
  108.     /**
  109.      * ルートノードのタグオブジェクトを生成する
  110.      *
  111.      * @access  private
  112.      * @return htf_tag_ul  生成したulタグ
  113.      ***/
  114.     function get_sitemaptag({
  115.         //ulタグの属性設定
  116.         $ultag new htf_tag_ul(HTF_ITEMCASE_ELEMENT);
  117.         if (htf_is_existsval($this->ultype)) {
  118.             $ultag->add_attribute("type"$this->ultype);
  119.         }
  120.         
  121.         for ($i=0$i<count($this->menu->arr_menuitem)$i++{
  122.             $ultag->add_content($this->get_litag($this->menu->arr_menuitem[$i]));
  123.         }
  124.         return $ultag;        
  125.     }
  126.  
  127.     /**
  128.      * 自ノード・配下ノードのmenuitemについてタグオブジェクトを生成する
  129.      *
  130.      * @access  private
  131.      * @return htf_tag_ul  生成したliタグ
  132.      ***/
  133.     function get_litag($menuitem{
  134.         
  135.         //liタグ生成
  136.         $litag new htf_tag_li(HTF_ITEMCASE_ELEMENT);
  137.         //aタグの属性設定
  138.         if (htf_is_existsval($menuitem->url)) {
  139.             $atag new htf_tag_element("a",TRUEHTF_ITEMCASE_ELEMENT);
  140.             $atag->add_attribute("href",$menuitem->urlHTF_ITEMCASE_ATTRIBUTE);
  141.             $atag->add_content($menuitem->label);
  142.             $litag->add_content($atag);
  143.         else {
  144.             $litag->add_content($menuitem->label);
  145.         }
  146.         //子ノードのタグ生成
  147.         if (count($menuitem->arr_menuitem)>0{
  148.             //ulタグの属性設定
  149.             $ultag new htf_tag_ul(HTF_ITEMCASE_ELEMENT);
  150.             if (htf_is_existsval($this->ultype)) {
  151.                 $ultag->add_attribute("type"$this->ultype);
  152.             }
  153.             for ($i=0$i<count($menuitem->arr_menuitem)$i++{
  154.                 $ultag->add_content($this->get_litag($menuitem->arr_menuitem[$i]));
  155.             }
  156.             $litag->add_content($ultag);
  157.         }
  158.         return $litag;
  159.     }
  160. }
  161.  
  162. ?>

Documentation generated on Tue, 19 Sep 2006 06:21:36 +0900 by phpDocumentor 1.3.0