Это страничка новостей!
Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости! Здесь будут новости!
$part = "news";
$part_url = "news";
//=======================================================================
// Вывод списка тематик раздела Новости
function get_list_tema( $id_tema = NULL )
{
global $pref_tbl, $part, $part_url;
$sql = "SELECT * FROM ".$pref_tbl."news_tema ORDER BY id_tema";
$res = mysql_query($sql);
if ( mysql_num_rows($res) )
{
echo '
';
}
if ( $id_tema )
echo '
';
}
//=======================================================
// Вывод Элемента в полном объеме
function get_elem($id_elem)
{
global $pref_tbl, $part, $part_url;
$buf = "";
// Защита от явной ошибки вызова
if ( ! is_numeric($id_elem) || $id_elem < 1 )
return false;
$sql = "select * from ".$pref_tbl."news
where id_elem = ". $id_elem . "
AND public = 1
AND date_elem <= now()";
$res = mysql_query($sql);
if ( mysql_num_rows($res) == 0 )
{
$buf .= '
Извините, запрашиваемой новости не существует.
Начните с анонсовой страницы новостей
';
return $buf;
}
$rs = mysql_fetch_assoc($res);
$id_tema = $rs[id_tema];
get_list_tema($id_tema); // Выводим список тем
/*==========================================*/
// Вставка блока вывода навигации для следующей/предыдущей новости
$sql = "select * from ".$pref_tbl."news
where public = 1
AND id_tema = $id_tema
AND date_elem <= now()
order by date_elem desc, id_elem desc";
$res_find = mysql_query($sql);
if ( mysql_num_rows($res_find) )
{
while ( $rs_find = mysql_fetch_assoc($res_find) )
{
if ( $rs_find[id_elem] == $id_elem )
{
if ( $next_elem == $id_elem )
unset($next_elem);
$rs_find = mysql_fetch_assoc($res_find);
$prev_elem[id_elem] = $rs_find[id_elem];
$prev_elem[title] = $rs_find[title_elem];
$prev_elem[date] = date("d.m.y", strtotime($rs_find[date_elem]));
if ( $prev_elem == $id_elem )
unset($prev_elem);
break;
}
$next_elem[id_elem] = $rs_find[id_elem];
$next_elem[title] = $rs_find[title_elem];
$next_elem[date] = date("d.m.y", strtotime($rs_find[date_elem]));
}
// Показываем блок кнопок Навигации, если есть соседние элементы
// if ( isset($prev_elem[id_elem]) || isset($next_elem[id_elem]) )
$buf .= '
';
// Блок для фразы "Подождите при динамической подгрузке следующий элементов
$buf .= '
Подождите идет загрузка ...
';
}
/*==========================================*/
$buf .= '
'.date("d.m.y", strtotime($rs[date_elem])).'
'.$rs[title_elem].'
';
$buf .= $rs[text_elem];
//$buf .= '
';
return $buf;
}
//=======================================================
// Вывод списка элементов в зависимости от параметров
// $type_view - Тип представления списка ( anons - только заголовки, detail - заголовки с коротким текстом
// $count - Количество элементов для вывода
// $period - вывод списка элементов за заданный месяц - вход из режима Архива
function get_list_elem($id_tema = NULL, $type_view = "anons", $count = 5, $period = NULL)
{
global $pref_tbl, $part, $part_url;
get_list_tema($id_tema); // Выводим список тем
// Формируем SQL запрос в зависимости от входных параметров
if ( $period )
{ // Задан период Архива тематики
$sql_period = " and concat(year(date_elem), '-', month(date_elem)) = '".$period."'";
$year = substr($period, 0, 4);
$month = substr($period, 5, 2);
$month_txt = array ("", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
$moutn = $month_txt[$month];
echo "
Архив за $moutn $year
";
}
else // Ограничиваем количество элементов для вывода
$sql_limit = " LIMIT 0, ".$count;
if ( $id_tema )
$sql_tema = 'AND id_tema = '.$id_tema;
$sql = "SELECT * FROM ".$pref_tbl."news
WHERE public = 1
$sql_tema
AND date_elem <= now()
$sql_period
ORDER BY date_elem desc, id_elem desc". $sql_limit;
//echo $sql."
";
$res = mysql_query($sql);
if ( $count_real = mysql_num_rows($res) )
{
while ( $rs = mysql_fetch_array($res) )
{
echo '
';
}
}
else
echo '
К сожалению в данной тематике новостей пока нет
';
if ( $type_view == "detail" && $count_real > 10 )
echo '
';
// Выводим ссылку на режим показа последних элементов, только если количество элементов в базе больше или равно заданному количеству для отображения
if ( $period )
echo '
';
// if ( $type_view == "detail" && $count_real > 10 )
// echo '
';
}
//=======================================================
function get_list_archiv( $id_tema = NULL )
{
global $pref_tbl, $part, $part_url;
get_list_tema($id_tema); // Выводим список тем
$month = array ("", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь");
if ( $id_tema )
$sql_tema = 'AND id_tema = '.$id_tema;
$sql = "SELECT DISTINCT
year(date_elem) as year,
month(date_elem) as month,
count(id_elem) as count
FROM ".$pref_tbl."news
WHERE public = 1
$sql_tema
AND date_elem <= now()
GROUP BY
year(date_elem),
month(date_elem)
ORDER BY year desc, month desc";
$res = mysql_query($sql);
echo '
Архив за:
';
while( $rs = mysql_fetch_assoc($res) )
{
if ( $year != $rs[year] )
{
if ( $year > 0 )
echo '
';
echo '
'.$rs[year].' год ';
echo '';
echo '
';
}
//======================================================
?>