0

SEF URL の先頭にセグメントを追加する方法を教えてください。

http://somedomain.com/*SEGMENT*/task/id

*SEGMENT*は単なる表示用の静的文字列であり、クエリからは取得されません。

コンポーネントに非常に基本的な router.php があります。

function MyComponentBuildRoute(&$query)
{
    $segments = array();

    if (isset($query['task'])) {
        $segments[] = $query['task'];
        unset($query['task']);
    }
    if (isset($query['id'])) {
        $segments[] = $query['id'];
        unset($query['id']);
    }

    return $segments;
}

function MyComponentParseRoute($segments)
{
    $vars = array();
    $count = count($segments);

    if ($count) {
        $count--;
        $segment = array_shift($segments);
        if (is_numeric($segment)) {
            $vars['id'] = $segment;
        } else {
            $vars['task'] = $segment;
        }
    }

    if ($count) {
        $count--;
        $segment = array_shift($segments) ;
        if (is_numeric($segment)) {
            $vars['id'] = $segment;
        }
    }
return $vars;
}

誰かが助けてくれることを願っています!

4

1 に答える 1

0

コンポーネントでビューのメニュー項目を作成します。SEGMENTを /foo/ にする必要がある場合は、メニュー項目のエイリアスが「foo」であることを確認してください。/foo/bar/ などのスラッシュが必要な場合は、エイリアス "foo" と "bar" を使用して 2 つのメニュー項目をネストする必要があります。これにより、Joomla に処理方法が伝えられます。

于 2013-02-06T07:59:13.957 に答える