com.arcadiangarden.ssx.struct
[ class tree: com.arcadiangarden.ssx.struct ] [ index: com.arcadiangarden.ssx.struct ] [ all elements ]

Class: Struct_Navigator

Source Location: /package/com/arcadiangarden/ssx/struct/StructNavigator.inc

Class Overview

PURE_Class
   |
   --Struct_Navigator

サイト構造を取得する機能を抽象化したクラスです。


Author(s):

Constants

Methods


Child classes:

Struct_DocumentNavigator
Struct_Documentクラスのオブジェクトから生成されるStruct_Navigatorクラスの実装クラスです。

Class Details

[line 38]
サイト構造を取得する機能を抽象化したクラスです。

起点からのナビゲーション情報、ヒエラルキー情報を生成する機能を定義します。

Struct_NavigatorクラスはStruct_Navigatorクラスを継承してサイト構造情報を動的に生成する実装クラスを作成するための抽象クラスとして用意されます。 Struct_Navigatorクラスの実装をする際は、up、first、prev、next、lastメソッド、及びhierarchyメソッドを実装します。 これら実装により最低限のナビゲーション情報と、出力すべきLINKエレメントのリスト、ヒエラルキーメニューが生成可能になります。

なお、Struct_Navigatorクラスの実装クラスを利用者が作成する必要が発生するのは希です。 Struct_NavigatorクラスのgetCurrentStructNavigatorメソッドに依存してナビゲーション機能を実現しており、かつサイト構造のサポートクラスでは扱いきれないサイト構造を 一時的に利用したい場合にStruct_Navigatorクラスの実装クラスを作成する必要があります。 通常はStruct_Documentクラスのオブジェクトを元にサイト構造を取得する実装であるStruct_DocumentNavigatorクラスが利用されます。




Tags:

abstract:  


[ Top ]


Class Methods


static method flushCurrentStructNavigator [line 153]

static void flushCurrentStructNavigator( )

キャッシュされているサイト構造情報を破棄し、次のgetCurrentStructNavigatorメソッド呼び出しが標準の動作に従うように指示します。

通常、flushCurrentStructNavigator利用することはありません。 flushCurrentStructNavigatorメソッドが利用されるのは、getCurrentStructNavigatorメソッドが返すStruct_Navigatorクラスのオブジェクトで特殊な実装を必要として setCurrentStructNavigatorメソッドを利用した後、また標準の動作に戻したい場合などの特殊なケースになります。




Tags:

access:  public


[ Top ]

static method getCurrentStructNavigator [line 116]

static Struct_Navigator getCurrentStructNavigator( )

リクエストに従ってサイト構造情報を保持するStruct_Navigatorクラスの実装クラスのインスタンスを作成して返します。

通常、返されるサイト構造情報はリクエストされたスクリプトファイル自体を元にしたStruct_DocumentNavigatorクラスのインスタンスです。 スクリプトファイルの存在するディレクトリにdirectory.xmlを用意し、スクリプトファイルのドキュメント情報を定義しておく必要があることに注意してください。

一度取得されたStruct_Navigatorクラスのオブジェクトはキャッシュされ、リクエストが終了するまで維持されます。

getCurrentStructNavigatorメソッドが返すオブジェクトはsetCurrentStructNavigatorメソッド、flushCurrentStructNavigatorメソッドにより制御することが出来ます。 詳しくはsetCurrentStructNavigatorメソッドを参照してください。




Tags:

return:  リクエストされたスクリプトファイルを元にしたサイト構造情報を保持するStruct_Navigatorクラスのオブジェクト
access:  public


[ Top ]

static method setCurrentStructNavigator [line 141]

static void setCurrentStructNavigator( Struct_Navigator $struct)

getCurrentStructNavigatorメソッドで取得されるサイト構造情報を保持するStruct_Navigatorクラスの実装クラスのオブジェクトを設定します。

通常、setCurrentStructNavigatorメソッドを利用することはありません。 setCurrentStructNavigatorメソッドを利用するのは、サイト全体のナビゲーションをgetCurrentStructNavigatorに依存して構築している場合です。 サイト構造のサポートクラスでは扱いきれないサイト構造を一時的に利用したい場合(PATH_INFOに依存する場合や動的に変化するページの場合など)に、 特殊化したStruct_Navigatorクラスの実装クラスのオブジェクトをあらかじめsetCurrentStructNavigatorメソッドで設定しておくことで、 getCurrentStructNavigatorメソッドは設定したオブジェクトを返すようになります。




Tags:

access:  public


Parameters:

Struct_Navigator   $struct   getCurrentStructNavigatorメソッドで取得されるサイト構造情報を保持するStruct_Navigatorクラスのオブジェクト

[ Top ]

method first [line 174]

Struct_Link first( )

自分自身と同一階層にあるドキュメントリストの先頭に配置されているドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

自分自身が先頭ドキュメントだった場合には場合にはnullを返します。




Tags:

return:  同一階層の先頭ドキュメントへのリンク情報を保持するオブジェクト
abstract:  
access:  public


Overridden in child classes as:

Struct_DocumentNavigator::first()
自分自身と同一階層にあるドキュメントリストの先頭に配置されているドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

[ Top ]

method hierarchy [line 237]

array hierarchy( )

ナビゲーションの起点となるドキュメントから、親オブジェクトへ可能な限り遡ってリンク情報を保持するStruct_Linkクラスのオブジェクトの配列を返します。

主にサイトのトップページからドキュメントまでの論理的な上下関係を列挙するヒエラルキーメニュー(階層メニュー)の情報を取得するために用意されます。 取得された配列は先頭から列挙しつつHTMLへ整形することで、先頭のドキュメントからのヒエラルキーメニューが構築できます。

実装者は、返却する配列の末尾には常に自分自身へのリンクを表すStruct_Linkクラスのオブジェクトを格納してください。 ただし自分自身へのリンク情報にはhref属性を設定してはなりません。 これはhref属性が設定されていないリンク情報が出現することで配列の末尾であることを表すと同時に、Struct_LinkクラスのmakeAnchorメソッドがリンクを生成しなくなることに有用だからです。




Tags:

return:  ヒエラルキーメニューのリンク情報を保持するStruct_Linkクラスのオブジェクトの配列
abstract:  
access:  public


Overridden in child classes as:

Struct_DocumentNavigator::hierarchy()
ナビゲーションの起点となるドキュメントから、親オブジェクトへ可能な限り遡ってリンク情報を保持するStruct_Linkクラスのオブジェクトの配列を返します。

[ Top ]

method hierarchyHtml [line 250]

string hierarchyHtml( [string $delim = " > "])

ヒエラルキーメニューのHTMLを生成して返します。

hierarchyHtmlメソッドはhierarchyメソッドに依存します。 hierarchyメソッドが返したStruct_Linkクラスのオブジェクトの配列を元に、そのアンカーを順に結合してその結果を返します。 アンカーとアンカーの間には$delim引数で指定した区切文字が出力されます。 区切文字の標準値は" > "になります。




Tags:

return:  ヒエラルキーメニューのHTML
access:  public


Parameters:

string   $delim   アンカーとアンカーの区切

[ Top ]

method last [line 201]

Struct_Link last( )

自分自身と同一階層にあるドキュメントリストの末尾に配置されているドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

自分自身が末尾ドキュメントだった場合には場合にはnullを返します。




Tags:

return:  同一階層の末尾ドキュメントへのリンク情報を保持するオブジェクト
abstract:  
access:  public


Overridden in child classes as:

Struct_DocumentNavigator::last()
自分自身と同一階層にあるドキュメントリストの末尾に配置されているドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

[ Top ]

method links [line 214]

array links( )

ナビゲーションの起点となるドキュメントからの各種ドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトの配列を返します。

内部的にはup、first、prev、next、lastメソッドを順に呼び出して、取得できたリンク情報を配列に格納して返すだけです。 主にHTMLのHEAD要素にLINK要素を列挙するための、順次実行可能な配列を取得するために用意されます。

Struct_Navigatorクラスの実装者は通常linksメソッドを実装する必要はありません。 up、first、prev、next、lastメソッドを実装することで自動的にlinksメソッドは完成されます。




Tags:

return:  リンク情報を保持するStruct_Linkクラスのオブジェクトの配列
access:  public


[ Top ]

method next [line 192]

Struct_Link next( )

自分自身の直後に配置されているドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

見つからなかった場合にはnullを返します。




Tags:

return:  直後のドキュメントへのリンク情報を保持するオブジェクト
abstract:  
access:  public


Overridden in child classes as:

Struct_DocumentNavigator::next()
自分自身の直後に配置されているドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

[ Top ]

method prev [line 183]

Struct_Link prev( )

自分自身の直前に配置されているドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

見つからなかった場合にはnullを返します。




Tags:

return:  直前のドキュメントへのリンク情報を保持するオブジェクト
abstract:  
access:  public


Overridden in child classes as:

Struct_DocumentNavigator::prev()
自分自身の直前に配置されているドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

[ Top ]

method up [line 165]

Struct_Link up( )

親ドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

ドキュメントが見付からない場合にはnullを返します。




Tags:

return:  親ドキュメントへのリンク情報を保持するオブジェクト
abstract:  
access:  public


Overridden in child classes as:

Struct_DocumentNavigator::up()
親ドキュメントへのリンク情報を保持するStruct_Linkクラスのオブジェクトを返します。

[ Top ]


Class Constants

LINK_REL_ALTERNATE =  "alternate"

[line 41]

代替文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_APPENDIX =  "appendix"

[line 65]

文書群の中で付録として扱われる文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_BOOKMARK =  "bookmark"

[line 69]

ブックマーク(しおり)として提供される文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_CHAPTER =  "chapter"

[line 59]

文書群の中で章として扱われる文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_CONTENTS =  "contents"

[line 51]

目次として提供される文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_COPYRIGHT =  "copyright"

[line 57]

著作権の考えを記述した文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_EX_FIRST =  "first"

[line 81]

一連の続き物とされる文書群の先頭の文書を表すrel属性値です。

HTML 4.01の仕様には存在しませんが、対応しているユーザエージェントが複数あるため定義されます。



[ Top ]

LINK_REL_EX_LAST =  "last"

[line 87]

一連の続き物とされる文書群の末尾の文書を表すrel属性値です。

HTML 4.01の仕様には存在しませんが、対応しているユーザエージェントが複数あるため定義されます。



[ Top ]

LINK_REL_EX_SELF =  "self"

[line 94]

自分自身を表すrel属性値です。

HTML 4.01の仕様には存在せず、対応しているユーザエージェントも確認されていません。 LINK_REL_EX_SELF定数はAg:PUREの実装の利便性のために用意されています。



[ Top ]

LINK_REL_EX_UP =  "up"

[line 75]

文書群の親の文書を表すrel属性値です。

HTML 4.01の仕様には存在しませんが、対応しているユーザエージェントが複数あるため定義されます。



[ Top ]

LINK_REL_GLOSSARY =  "glossary"

[line 55]

用語集として提供される文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_HELP =  "help"

[line 67]

ヘルプとして提供される文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_INDEX =  "index"

[line 53]

索引として提供される文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_NEXT =  "next"

[line 47]

一連の続き物とされる文書群の次の文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_PREV =  "prev"

[line 49]

一連の続き物とされる文書群の前の文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_SECTION =  "section"

[line 61]

文書群の中で節として扱われる文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_START =  "start"

[line 45]

文書群の最初の文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_STYLESHEET =  "stylesheet"

[line 43]

外部スタイルシートを表すrel属性値です。HTML 4.01で定義されます。


[ Top ]

LINK_REL_SUBSECTION =  "subsection"

[line 63]

文書群の中で小節として扱われる文書を表すrel属性値です。HTML 4.01で定義されます。


[ Top ]



Documentation generated on Sun, 06 Jan 2008 01:33:31 +0900 by phpDocumentor 1.3.2