* @version $Id$
* @access public
* @license http://opensource.org/licenses/gpl-3.0.html
*/
include_once(override('../news/' . SQL . '.inc.php'));
/**
* get_latestnews_id()
* return latestnews_id
*
* @return int or false
*/
function get_latestnews_id()
{
global $sql_object;
$r = $sql_object->DBSelect(SQL_getLatestNews());
if(isset($r[0])) return $r[0]['news_id'];
return false;
}
/**
* DisplayListNews()
* Affichage de la liste des news publique
*
* @param $statut
* @param $filter
* @param $id_filter
* @param $debut
* @return void echo content
*/
if(!function_exists('DisplayListNews')) {
function DisplayListNews($statut, $filter, $id_filter, $debut)
{
include_once('../lib/vendor/wideimage/lib/WideImage.php');
if ($statut == 'public') {
$pas = SELECT_LIMIT;
$suffix = '';
} else $pas = SELECT_LIMIT;
if(is_numeric(strpos(ActiveItemKey($GLOBALS['activeitem']), 'archives'))) {
$title = mb_ucfirst(_t('news','section') . ' - ' ._t('archives', 'name'));
} else {
$title = mb_ucfirst(_t('news','section'));
}
// getting tags
include_once('../class/class.tag.php');
$sep = ' / ';
if ($statut == 'archives_p') $suffix = ' "'.strtolower(_t('statut','PA')).'"';
if($filter == 'LEVEL') {
$levels = getLevelChildren($GLOBALS['sql_object']->DBSelect(SQL_getLevelsList()), $id_filter);
$id_filter = array_extract($levels, 'level_id', true, 'children');
}
$data = $GLOBALS['sql_object']->DBSelect(SQL_getNewsList($debut, $pas, $statut, $filter, $id_filter));
$datacount = $GLOBALS['sql_object']->DBSelect(SQL_getCountNewsList($statut, $filter, $id_filter));
$bdd_nb_com = $datacount[0]['num_rows'];
$bdd_nb_com_display = '
' . $bdd_nb_com . ' ' . _t('news','name2') . $suffix . '
' . PHP_EOL;
$content = '' . $title . '
' . PHP_EOL;
$content .= ''.PHP_EOL;
if ($data != 0) {
// echo $bdd_nb_com_display; // affichage du nombre d'enregistrements
$current_link = array('rub' => $GLOBALS['links'][U_L][ActiveItemKey($GLOBALS['activeitem'])]['linkvalue']);
$content .= get_linkin_page($current_link, $bdd_nb_com, $debut, $pas);
for($i=0; $i
load($data[$i]['news_header']. $data[$i]['news_body']);
// we get the image with thumbnail class if provided
if($html->find('img.thumbnail', 0)) $imgsrc = $html->find('img.thumbnail', 0)->src;
else $imgsrc = false;
// if img.thumbnail does not exist we get the first image
if(!$imgsrc) {
// we get the first image if provided
if($html->find('img', 0)) $imgsrc = $html->find('img', 0)->src;
}
// if there is still no image, we take default app image
if(!$imgsrc) {
$imgsrc = '../library/userfiles/no-image.png';
}
$thumbpath = '../library/userfiles/_thumbs/';
$path_parts = pathinfo ( $imgsrc );
list($width, $height) = explode('x', THUMBNAIL_SIZE);
$thumbname = $path_parts ['filename'] . '_' . $width . 'x' . $height . 'px.' . $path_parts ['extension'];
$thumb_fullpath = $thumbpath . $thumbname;
// if thumbnail does not exist
if (! file_exists ( $thumb_fullpath )) {
$image = WideImage::load ( $imgsrc );
$resized = $image->resize ( $width, $height, 'outside' )->crop ( 'center', 'center', $width, $height );
;
$resized->saveToFile ( $thumb_fullpath );
chmod ( $thumb_fullpath, 0755 );
$imgsrc = $thumb_fullpath;
} else {
$imgsrc = $thumb_fullpath;
}
$title=formatText($data[$i]['complete_news_title'],'2HTML');
// we remove all images contained in header
$html->load($data[$i]['news_header']);
foreach($html->find('img') as $element) {
$images = $element->outertext = '';
}
$link_table= array('rub'=> $GLOBALS['links'][U_L]['news']['linkvalue'],'id'=>$data[$i]['news_id'], 'name' => $data[$i]['news_title']);
$link_user = array('rub' => $GLOBALS['links'][U_L]['user-profile']['linkvalue'], 'id' => $data[$i]['news_posted_by'], 'name' => $data[$i]['user_login']);
$link_detail = array('rub' => $GLOBALS['links'][U_L]['news']['linkvalue'], 'id' => $data[$i]['news_id'], 'name' => $data[$i]['news_title']);
$news_posted_on = formatText($data[$i]['news_published_date_display'], '2HTML');
$news_posted_by = formatText($data[$i]['user_login'], '2HTML');
$content .= ''.PHP_EOL;
$content .= '
 . ')
';
$content .= '
';
$content .= '
';
$content .= '
'.formatText($html, '2HTML').'
'.PHP_EOL;
$content .= '
'._t('btn', 'read_more').'';
$content .= '
' . PHP_EOL;
$content .= ''._t('statut','published_on') . ' ' . $news_posted_on . ' ';
$content .= _t('divers','by').' ' . $news_posted_by . '';
$content .= '
' . PHP_EOL;
$content .= '
';
$content .= '
'.PHP_EOL;
// we clear SimpleHTMLDom to prevent memory leaks
$html->clear();
unset($html);
}
} else {
$content .= '' . _t('divers','nodata') . '
';
}
$content .= ' ' . PHP_EOL;
echo $content;
}
}
/**
* DisplayOneNews()
* Affichage d'une actualté en détail
*
* @param $news_id
* @return $stat Nom du statut + echo content
*/
if(!function_exists('DisplayOneNews')) {
function DisplayOneNews($news_id, $display_comments = true)
{
$data = $GLOBALS['sql_object']->DBSelect(SQL_getoneCompleteNews($news_id, array('P', 'PA')));
$content = '';
$levels = $GLOBALS['sql_object']->DBSelect(SQL_getLevelsList());
$level = getLevelParent($levels, $data[0]['news_level'], 0);
$sep = ' / ';
// getting tags
include_once('../class/class.tag.php');
$otag = new tag();
$tags = $otag->getTags('news', $news_id, false);
if($data == 0) error_redirect();
if (count($data) != 1) exit;
else {
if(is_array($level)) {
$link_level = array('rub' => $GLOBALS['links'][U_L][ActiveItemKey($GLOBALS['activeitem'])]['linkvalue'], 'filter' => $GLOBALS['filters'][U_L]['level']['linkvalue'], 'id' => $level['id'], 'name' => $level['name']);
}
$link_tag = array('rub' => $GLOBALS['links'][U_L][ActiveItemKey($GLOBALS['activeitem'])]['linkvalue'], 'filter' => 'tag');
$link_scale = array('rub' => $GLOBALS['links'][U_L][ActiveItemKey($GLOBALS['activeitem'])]['linkvalue'], 'filter' => $GLOBALS['filters'][U_L]['scale']['linkvalue'], 'id' => $data[0]['news_scale'], 'name' => $data[0]['scale_denomination']);
$link_user = array('rub' => $GLOBALS['links'][U_L]['user-profile']['linkvalue'], 'id' => $data[0]['news_posted_by'], 'name' => $data[0]['user_login']);
$link_self = array('rub' => $GLOBALS['links'][U_L]['news']['linkvalue'], 'id' => $news_id);
$news_title = formatText($data[0]['news_title'], '2HTML');
$news_header = linkin_content(formatText($data[0]['news_header'], '2HTML'));
$news_body = linkin_content(formatText($data[0]['news_body'], '2HTML'));
$news_level = linkin_content(formatText($data[0]['level_name'], '2HTML'));
$news_scale_denomination = formatText($data[0]['scale_denomination'], '2HTML');
$news_posted_on = formatText($data[0]['news_published_date_display'], '2HTML');
$news_modify_on = formatText($data[0]['news_last_modify_display'], '2HTML');
$news_posted_by = formatText($data[0]['user_login'], '2HTML');
$news_statut = $data[0]['news_statut'];
if(commentEnabled('news') && $display_comments == true) {
postCommentAction(array('module'=> ActiveItemKey($GLOBALS['activeitem']), 'module_id'=> $news_id));
$content .= ''.PHP_EOL;
}
$content .= '' . $news_title . '
' . PHP_EOL;
$content .= '' . PHP_EOL;
$content .= ''._t('statut','published_on') . ' ' . $news_posted_on . ' ';
$content .= _t('divers','by').' ' . $news_posted_by . '';
if ($news_statut == 'PA') {
$content .= ' (' . _t('statut','archived_on') . ' ' . $news_modify_on . ')';
}
$content .= formatted_permalink($link_self, ' - ');
$content .= '
' . PHP_EOL;
$content .= '' . $news_header . '
' . PHP_EOL;
$content .= '' . $news_body . '
' . PHP_EOL;
$content .= '' . PHP_EOL;
if(is_array($level)) $content .= ' ' . $level['label'] . ' :
' . $level['name'] . ''. $sep . PHP_EOL;
//$content .= ' '._t('divers','sousthemeref') . ' : ' .$news_theme . PHP_EOL;
if(!empty($news_scale_denomination)) $content .= _t('divers','scale') . ' :
' . $news_scale_denomination . ''. PHP_EOL;
if(!empty($tags)) {
$content .= '
' . PHP_EOL;
$content .= ' ' . mb_ucfirst(_t('tag','name')) . ' : ' . $otag->linkTags($tags, $link_tag). PHP_EOL;
$content .= '
' . PHP_EOL;
}
$content .= '
' . PHP_EOL;
}
echo $content;
return GetStatutName($news_statut);
}
}
/**
* GetStatutName()
*
* @param $statut
* @return $stat Nom du statut
*/
if(!function_exists('GetStatutName')) {
function GetStatutName($statut)
{
switch ($statut) {
case 'P':
$stat = 'public';
break;
case 'PA':
$stat = 'archives_p';
break;
case 'AA':
$stat = 'archives_a';
break;
default:
$stat = 'public';
}
return $stat;
}
}
/**
* DisplayLinkNews()
* Affiche ou non 1 lien vers les news a venir ou qui précéde.
*
* @param $current_news
* @param $direction
* @param $statut
* @return echo content
*/
if(!function_exists('DisplayLinkNews')) {
function DisplayLinkNews($current_news, $direction, $statut)
{
$q = SQL_getNewsRangeAndDate($current_news);
$r = $GLOBALS['sql_object']->DBSelect($q);
$range = $r[0]['news_range'];
$published_date = $r[0]['news_published_date'];
if ($direction == 'NEXT') {
if($range != 0) {
$q = SQL_getNextNewsByRange($current_news, $range, $statut);
} else {
$q = SQL_getNextNewsByDate($current_news, $published_date, $statut);
}
$class = 'next';
$prefix = ' | ';
$suffix = ' →';
$title = _t('news','next_news');
}
if ($direction == 'PREVIOUS') {
if($range != 0) {
$q = SQL_getPreviousNewsByRange($current_news, $range, $statut);
} else {
$q = SQL_getPreviousNewsByDate($current_news, $published_date, $statut);
}
$class = 'previous';
$prefix = '← ';
$suffix = '';
$title = _t('news','prev_news');
}
$data = $GLOBALS['sql_object']->DBSelect($q);
if ($data == false || count($data) != 1) $content = '';
else {
$link_news = array('rub' => $GLOBALS['links'][U_L]['news']['linkvalue'], 'id' => $data[0]['news_id'], 'name' => $data[0]['news_title']);
$news_complete_title = formatText($data[0]['news_title'], '2HTML');
$news_title = formatText(cutText($data[0]['news_title'], 45), '2HTML');
$content = '' . PHP_EOL;
$content .= $prefix . PHP_EOL;
$content .= '
' . $news_title .'';
$content .= $suffix . PHP_EOL;
$content .= '
' . PHP_EOL;
}
echo $content;
}
}
?>