0

以前にこの質問を投稿しましたが、溺れてしまい、ほとんどビューが得られなかったので、もう一度試してみることにしました。

これがまだ存在しないのはとても奇妙なことのように思えますが、私は何年も探していました. アーカイブのプラグインやコンポーネント、またはアーカイブを年ごとに単純に並べ替える方法はありますか? 私が望むのは、年ごとに列を表示し、各列の上に年を表示し、アーカイブされたタイトルの (クリック可能な) リストを含むことだけです。Joomla 2.5 を使用しています。

誰でもこれを行う方法を知っていますか? プラグイン/コンポーネントを使用するか、既存のアーカイブ コードを編集するか。方法は気にせず、ただやりたいだけです。どんな助けでも大歓迎です。

4

2 に答える 2

0

これは理想的な解決策ではないかもしれませんし、あまりにもクリーンではないかもしれませんが、Monthly Archiveを使用し、monthlyarchiveclass の getMonths() メソッドを変更してこれを含めました。

$byYear = array();
foreach($month_years_unique as $month_year){
    $year = explode('-',$month_year);
    $byYear[$year[1]] = array();
}

foreach($results_months as $result){
    $year   = $result['year'];
    $id = $result['id'];
    $byYear[$year] = array(
        $id => $result,
    );
}           

if(count($byYear) != 0){
    foreach($byYear as $year => $value){
        $html .= '<div class="archivecolumn"><h1>'.$year.'</h1>';
        $html .= '<ul class="itemlist">';
        foreach($value as $item){
            $cat = $this->getCatName($item['catid']);
            $link = 'index.php/' . $cat . '/' . $item['id'] . '-' . $item['alias'];
            $html .= '<li>';
            $html .= '<a href="'.$link.'">'.$item['title'].'</a>';
            $html .= '</li>';
        }
        $html .= '</ul>';
        $html .= '</div>';
    }
} else {
    $html .= 'No archived works.';
}
于 2013-07-19T12:22:21.653 に答える