/** * 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; }