e107inc/e107

View on GitHub
e107_plugins/news/news_archive_menu.php

Summary

Maintainability
A
0 mins
Test Coverage
A
93%
<?php
    /**
     * e107 website system
     *
     * Copyright (C) 2008-2017 e107 Inc (e107.org)
     * Released under the terms and conditions of the
     * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
     *
     */


$nw = e107::getObject('e_news_tree');
$tp = e107::getParser();

$nparm = array('db_limit' => 350 );

$tmp = $nw->loadJoinActive(0, false, $nparm)->toArray();

$monthLabels = e107::getDate()->terms();

$arr = array();
foreach($tmp as $id => $val)
{
    $d = date('Y-n',$val['news_datestamp']);
    list($year,$month) = explode('-',$d);
    unset($val['news_body']);
    $arr[$year][$month][] = $val;

    // e107::getDebug()->log($val);
}

$template = e107::getTemplate('news', 'news_menu', 'archive',true, true);
$text = '';

if(ADMIN && empty($template))
{
    $text = "Missing Template. Check that your theme's news_menu_template.php file contains an 'archive' template. ";
}
  
foreach($arr as $year=>$val)
{
    if($year == date('Y'))
    {
        $displayYear = 'block';
        $expandOpen = 'open';
    }
    else
    {
        $displayYear = 'none';
        $expandOpen = '';
    }

    $id = "news-archive-".$year;
 

  $var = array('EXPANDOPEN' => $expandOpen,
               'YEAR_ID' => $id,
               'YEAR_NAME' => $year,
               'YEAR_DISPLAY' => $displayYear
 
   );
 
  $text .=  $tp->simpleParse($template['year_start'], $var);
 
        foreach($val as $month=>$items)
        {
            //$displayMonth = ($mCount === 1) ? 'display:block': 'display:none';

            $idm = "news-archive-".$year.'-'.$month;

      $var = array('MONTH_ID'   => $idm,
                   'MONTH_NAME' => $monthLabels[$month],
                   'MONTH_COUNT'=> count($items),
      );
         
            $text .=  $tp->simpleParse($template['month_start'], $var);
 
      /*
            if(!empty($parm['badges'])) // param only (no menu-manager config. To be replaced by template.
            {
                $num = count($items);
                $text .= "<span class='badge'>".$num."</span>";
            } */
 

            foreach($items as $row)
            {
                $url = e107::getUrl()->create('news/view/item', $row, array('allow' => 'news_sef,news_title,news_id,category_sef,category_name,category_id'));
                $var = array('ITEM_URL'   => $url,
                             'ITEM_TITLE' => $tp->toHTML($row['news_title'],false,'TITLE'),
                );
                $text .=  $tp->simpleParse($template['item'], $var);
            }
            $text .= $template['month_end'];
        }
 
    $text .= $template['year_end'];

}

$start =  $template['start'];   
$end = $template['end']; ;

e107::plugLan('news');

$caption = !empty($parm['caption'][e_LANGUAGE]) ? $parm['caption'][e_LANGUAGE] : LAN_NEWSARCHIVE_MENU_TITLE;

e107::getRender()->tablerender($caption, $start.$text.$end, 'news-archive-menu');


//e107::getDebug()->log($arr);