コンテンツリストはメインメニュー、サブメニュー、サイトマップ等の形で大抵の場合全てのページにわたって表示されるため、コンテンツリストに追加、削除などの変更が加えられた際、全てのページを変更する必要があります。
また、リンク箇所のソースに誤りがあった場合、正常にリンクが機能しなくなる事が起こり得ます。(別のページをコピーしてページを制作している場合などによく発生します。)
当サイトでは、こういった問題解決のためにページ内に表示されるコンテンツリストをXMLファイルで管理しています。
トップカテゴリではカテゴリのディレクトリ名、タイトル、サブカテゴリを、サブカテゴリではディレクトリ名、タイトルをそれぞれツリー構造として持ちます。実際のコンテンツと同様のツリー構造をとることで、サイトの構造と一致したコンテンツリスト管理が可能になります。
XMLソース
<?xml version="1.0" encoding="SHIFT-JIS"?>
<contents>
・
・
・
<category>
<name>portfolio</name>←トップカテゴリ:ディレクトリ名
<jpname>実績紹介</jpname>←トップカテゴリ:タイトル
<subcategories>←トップカテゴリ:サブカテゴリ群
<subcategory>
<subname>../</subname>
<subjpname>実績紹介</subjpname>
</subcategory>
<subcategory>
<subname>web</subname>←サブカテゴリ:ディレクトリ名
<subjpname>WEB</subjpname>←サブカテゴリ:タイトル
</subcategory>
<subcategory>
<subname>logo</subname>
<subjpname>ロゴデザイン</subjpname>
</subcategory>
<subcategory>
<subname>illust</subname>
<subjpname>イラスト</subjpname>
</subcategory>
</subcategories>
</category>
・
・
・
</contents>
上記のXMLをPHPで読み取り、メインおよびサブメニューのソースを生成し、XHTMLソースに挿入。その際に今見ているコンテンツを判別し、他のページへのリンク用URI(今見ているコンテンツはテキストのみ)を生成。 ツリー構造に基づくXMLから生成するので、コンテンツリスト(メイン・サブメニュー)を確実に表示する事が可能になり、同時に各ページへのリンクミスも防ぐ事が可能です。
またXMLソースを変更する事によって全てのページのソースが変更されるため、メニューの変更によるミスもなくなります。 これらのメリットは、特に大規模サイトの場合に大きなメリットとなります。
サイトマップを作成する際も同様にXMLを読み取って生成するため、各ページで表示するメニュー表示と完全に一致したサイトマップを生成する事が可能です。