예제 #1
0
 /**
  * Formate les valeurs principales d'un élément suivant la ligne passées en paramètre
  * @param $row
  * @param $current
  * @return array|null
  */
 public function setItemData($row, $current)
 {
     $ModelImagepath = new magixglobal_model_imagepath();
     $ModelDateformat = new magixglobal_model_dateformat();
     $ModelTemplate = new frontend_model_template();
     $ModelRewrite = new magixglobal_model_rewrite();
     $data = null;
     if (isset($row['idnews'])) {
         $data['tag'] = null;
         $tag['data'] = parent::s_tagByNews($row['idnews']);
         if (is_array($tag['data'])) {
             foreach ($tag['data'] as $t) {
                 $t['uri'] = $ModelRewrite->filter_news_tag_url($row['iso'], $t['name_tag'], true);
                 $data['tag'] .= '<a href="' . $t['uri'] . '" title="' . $t['name_tag'] . '">';
                 $data['tag'] .= $t['name_tag'];
                 $data['tag'] .= '</a> ';
             }
         }
         if (isset($row['n_image'])) {
             $data['imgSrc'] = array('small' => $ModelImagepath->filterPathImg(array('filtermod' => 'news', 'img' => 's_' . $row['n_image'])), 'medium' => $ModelImagepath->filterPathImg(array('filtermod' => 'news', 'img' => $row['n_image'])));
         }
         $data['imgSrc']['default'] = $ModelImagepath->filterPathImg(array('img' => 'skin/' . $ModelTemplate->frontendTheme()->themeSelected() . '/img/news/news-default.png'));
         $data['id'] = $row['idnews'];
         $data['name'] = $row['n_title'];
         $data['uri'] = $ModelRewrite->filter_news_url($row['iso'], $ModelDateformat->date_europeen_format($row['date_register']), $row['n_uri'], $row['keynews'], true);
         $data['current'] = false;
         if (isset($current['record']['id'])) {
             $data['active'] = $row['keynews'] == $current['record']['id'] ? true : false;
         }
         $data['date']['register'] = $ModelDateformat->SQLDate($row['date_register']);
         $data['date']['publish'] = $ModelDateformat->SQLDate($row['date_publish']);
         $data['content'] = $row['n_content'];
     }
     return $data;
 }
/**
 * Smarty plugin
 * @package     Smarty
 * @subpackage  plugins
 * Type:        function
 * Name:        widget_news_display
 * date:        25/12/2013
 * Update:      10/03/2013
 * Examples:    {widget_news_display}
 * @author      Sire Sam (sire-sam.be)
 * @link        htt://www.sire-sam.be, http://www.magix-dev.be
 * @author      Gerits Aurelien
 * @version     1.1
 * @param       array
 * @param       Smarty
 * @return      string
 */
function smarty_function_widget_news_data($params, $template)
{
    $ModelSystem = new magixglobal_model_system();
    $ModelRewrite = new magixglobal_model_rewrite();
    $ModelNews = new frontend_model_news();
    $ModelPager = new magixglobal_model_pager();
    // Set and load data
    $current = $ModelSystem->setCurrentId();
    $conf = is_array($params['conf']) ? $params['conf'] : array();
    $override = $params['conf']['plugins']['override'] ? $params['conf']['plugins']['override'] : '';
    $data = $ModelNews->getData($conf, $current, $override);
    $newrow = is_array($params['conf']['plugins']['item']) ? $params['conf']['plugins']['item'] : array();
    // Set Pagination
    $pagination = array();
    if (isset($data['total']) and isset($data['limit'])) {
        $pagination = $ModelPager->setPaginationData($data['total'], $data['limit'], '/' . $current['lang']['iso'] . $ModelRewrite->mod_news_lang($current['lang']['iso']), $current['news']['pagination']['id'], '/');
        unset($data['total']);
        unset($data['limit']);
    }
    $current = $current['news'];
    // Format data
    $items = array();
    if ($data != null) {
        foreach ($data as $row) {
            if (isset($row['idnews'])) {
                $items[] = $ModelNews->setItemData($row, $current, $newrow);
            } elseif (isset($row['name_tag'])) {
                $items[] = array('id' => $row['name_tag'], 'name' => $row['name_tag'], 'iso' => $row['iso'], 'url' => magixglobal_model_rewrite::filter_news_tag_url($row['iso'], urlencode($row['name_tag']), true));
            }
        }
    }
    $assign = isset($params['assign']) ? $params['assign'] : 'data';
    $template->assign($assign, $items);
    $assignPager = isset($params['assignPagination']) ? $params['assignPagination'] : 'paginationData';
    $template->assign($assignPager, $pagination);
}
/**
* Smarty {widget_news_nav}
* function plugin
*
* Type:     function
* Name:     widget news nav
* Date:     September 26, 2012
* Update:   December  29, 2012
* Purpose:  
* Examples:

   {widget_news_nav}

   {widget_news_nav
       htmlAttribut=[
           'id_container' => 'secondary-nav',
           'class_container' => 'v-nav'
       ]
       title='<p class="title">Actualités par thèmes</p>'
   }

* Output: string (<ul><li><a>tag_name<///)
* @link
* @author   Gerits Aurelien
* @author   Samuel Lesre
* @version  1.1
* @param array
* @param Smarty
* @return string
*/
function smarty_function_widget_news_nav($params, $template)
{
    $ModelNews = new frontend_model_news();
    $ModelSystem = new magixglobal_model_system();
    // *** Load SQL DATA
    $current = $ModelSystem->setCurrentId();
    $conf = array('level' => 'tag', 'limit' => null);
    $data = $ModelNews->getData($conf, $current);
    $current = $current['news'];
    $output = null;
    if ($data != null) {
        // *** set default html attributs
        if ($params['htmlAttribut']) {
            $htmlAttr = $params['htmlAttribut'];
            $id_container = isset($htmlAttr['id_container']) ? ' id="' . $htmlAttr['id_container'] . '"' : null;
            $class_container = isset($htmlAttr['class_container']) ? ' class="' . $htmlAttr['class_container'] . '"' : null;
            $class_current = isset($htmlAttr['class_current']) ? $htmlAttr['class_current'] : 'current';
        }
        // *** Set translation var
        $tr_show_news = frontend_model_template::getConfigVars('show_news');
        // *** format items loop (foreach item)
        $items = null;
        foreach ($data as $row) {
            $current_item = $row['name_tag'] == $current['tag']['id'] ? $class_current : null;
            $uri_item = magixglobal_model_rewrite::filter_news_tag_url($row['iso'], urlencode($row['name_tag']), true);
            $name_item = $row['name_tag'];
            $class_item = $current_item != null ? ' class="' . $current_item . '"' : null;
            // *** item construct
            $item = '<li' . $class_item . '>';
            $item .= '<a href="' . $uri_item . '" title="' . $tr_show_news . ': ' . $name_item . '">';
            $item .= $name_item;
            $item .= '</a>';
            $item .= '</li>';
            $items .= $item;
        }
        // *** container construct
        $output = isset($params['title']) ? $params['title'] : '';
        $output .= '<ul' . $id_container . $class_container . '>';
        $output .= isset($params['prepend']) ? $params['prepend'] : null;
        $output .= $items;
        $output .= isset($params['append']) ? $params['append'] : null;
        $output .= '</ul>';
    }
    return $output;
}