1

特定のURIが属するセクションをどのように読み取ることができますか?

mod_breadcrumbを拡張して、セクションとカテゴリをHTMLに配置したいと思います。JApplication-> getPathway()は、基本的に名前とURLを組み合わせた連想配列を保持するJPathwayを返します($ list[]->nameおよび$list[]-> linkとして)。リンクからセクションとカテゴリを取得できるはずですが、方法がわかりません。

出発点はJURI-Objectの解析である可能性がありますが、そこからさらに進む方法がわかりません。何か案は?

4

1 に答える 1

0

かなり簡単です...

カスタムコンポーネントではなく、記事のカテゴリとセクションを追加したいとします。

要求された現在のURLが記事用であるかどうかを確認します。記事IDがわかっている記事の場合は、この記事IDを使用してデータベースに移動して取得catidします。#__contentこれを使用しcat_idて移動し#__categoriesて取得しsection(これはセクションIDです)、に移動し#__sectionsて適切なセクション名を取得します。これはすべて、1つのSQLステートメントで実行できます。

$breadcrumbs =& JFactory::getApplication()->getPathway();
$breadcrumbs->addItem("SECTION_NAME", JRoute::_("index.php?option=com_content&view=section&id=SECTION_ID"));
$breadcrumbs->addItem("CATEGOY_NAME", JRoute::_("index.php?option=com_content&view=category&id=CATEGORY_ID"));
$breadcrumbs->addItem("Article");

または、ブレッドクラムアイテムのURLがわかっている場合。それを解析してIDSを取得できます。ここでの秘訣はJFactory::getURI()、物事が醜くなるため、デフォルトのURIオブジェクトを取得しないことです。を使用してJFactory::getURI('YOU_URI_NAME')ください。

<?php
//  You need to get Your own uri, you do not want to modify default URI
//  because this will messup a lot of things
$uri = JFactory::getURI('MyCustomURI');

//  Test # 1 [ID = SECTION_ID]
$url = "index.php?option=com_content&view=section&id=SECTION_ID";
$uri->parse($url);
echo "CURRENT SECTION = " . (int) $uri->getVar('id');

//  Test # 2 [ID = 123]
$url = "index.php?option=com_content&view=section&id=123";
$uri->parse($url);
echo "CURRENT SECTION = " . (int) $uri->getVar('id');
?>
于 2010-09-13T16:07:50.497 に答える