Держим сниппет
Вызов сниппета
[[NewsPro? &startID=`11`]]
Код сниппета "NewsPro"
<?php
if ($_GET[’years’]==true){
// Сниппет вывода новостей за текущий год
$return="";
// SQL Запрос к базе
$q="SELECT * FROM `modx_site_content` WHERE `published`=’1’ AND `parent`=’$startID’ ORDER BY pub_date DESC, deletedon ASC";
$q=mysql_query($q);
// Перебор значенй цикла, выбираем "заполненные даты"
// Приорите у даты бубликации "pub_date"
// Если данная дата не указана бирем дату создания "createdon"
while($r=mysql_fetch_array($q))
{
if ($r["pub_date"] == false)
{
if (date(’Y’,$r["createdon"]) == $_GET[’years’])
{
$da = $r["createdon"]; $pagetitle = $r["pagetitle"]; $introtext = $r["introtext"]; $id = $r["id"]; $content = $r["content"];
$in_news[] = array("date" => $da, "id" => $id, "pagetitle" => $pagetitle, "introtext" => $introtext, "content" => $content);
}
}
else
{
if (date(’Y’,$r["pub_date"]) == $_GET[’years’])
{
$da = $r["pub_date"]; $pagetitle = $r["pagetitle"]; $introtext = $r["introtext"]; $id = $r["id"]; $content = $r["content"];
$in_news[] = array("date" => $da, "id" => $id, "pagetitle" => $pagetitle, "introtext" => $introtext, "content" => $content);
}
}
}
function mysort($a,$b){
return strcmp($a[’date’], $b[’date’]);
}
// Сортируем массив по дате
usort($in_news, ’mysort’);
// Cортировка массива в обратном порядке
$in_news = array_reverse($in_news);
// Вывод результата
for ($i = 0; $i < sizeof($in_news); $i++) {
$return.= "<p><span class=dates>[".date(’d.m.Y’,$in_news[$i][’date’])."]</span> ";
if ($in_news[$i][’content’] == true)
{$return.= "<A href=index.php?id=".$in_news[$i][’id’]." class=news_heade>".$in_news[$i][’pagetitle’]."</A></p>";}
else
{$return.= "<span class=news_heade>".$in_news[$i][’pagetitle’]."</span></p>";}
$return.= "<p>".$in_news[$i][’introtext’];
if ($in_news[$i][’content’] == true) {$return.= " <a href=index.php?id=".$in_news[$i][’id’]." class=read_more>Подробней...</a></p>";}
}
echo $return;
// Генерация архива
$return="";
$return.="Архив новостей: ";
// SQL Запрос
$zapros="SELECT * FROM `modx_site_content` WHERE `published`=’1’ AND `parent`=’$startID’ ORDER BY pub_date DESC, deletedon ASC";
$otvet=mysql_query($zapros);
while($vv=mysql_fetch_array($otvet))
{
if ($vv["pub_date"] == false)
{$mmm[] = date(’Y’,$vv["createdon"]);}
else {$mmm[] = date(’Y’,$vv["pub_date"]);}
}
// Удаление повторных записей из массива
$mmm = array_unique($mmm);
// Вывод результата
foreach ($mmm as $value) {
$return.= "<A href=index?id=".$startID."&years=".$value.">".$value."</A> ";
}
echo $return;
}
else {
// Сниппет вывода новостей за текущий год
$return="";
// SQL Запрос к базе
$q="SELECT * FROM `modx_site_content` WHERE `published`=’1’ AND `parent`=’$startID’ ORDER BY pub_date DESC, deletedon ASC";
// Перебор значенй цикла, выбираем "заполненные даты"
// Приорите у даты бубликации "pub_date"
// Если данная дата не указана бирем дату создания "createdon"
$q=mysql_query($q);
while($r=mysql_fetch_array($q))
{
if ($r["pub_date"] == false)
{
if (date(’Y’,$r["createdon"]) == date("Y"))
{
$da = $r["createdon"]; $pagetitle = $r["pagetitle"]; $introtext = $r["introtext"]; $id = $r["id"]; $content = $r["content"];
$in_news[] = array("date" => $da, "id" => $id, "pagetitle" => $pagetitle, "introtext" => $introtext, "content" => $content);
}
}
else
{
if (date(’Y’,$r["pub_date"]) == date("Y"))
{
$da = $r["pub_date"]; $pagetitle = $r["pagetitle"]; $introtext = $r["introtext"]; $id = $r["id"]; $content = $r["content"];
$in_news[] = array("date" => $da, "id" => $id, "pagetitle" => $pagetitle, "introtext" => $introtext, "content" => $content);
}
}
}
function mysort($a,$b){
return strcmp($a[’date’], $b[’date’]);
}
usort($in_news, ’mysort’);
$in_news = array_reverse($in_news);
for ($i = 0; $i < sizeof($in_news); $i++) {
$return.= "<p><span class=dates>[".date(’d.m.Y’,$in_news[$i][’date’])."]</span> ";
if ($in_news[$i][’content’] == true)
{$return.= "<A href=index.php?id=".$in_news[$i][’id’]." class=news_heade>".$in_news[$i][’pagetitle’]."</A></p>";}
else
{$return.= "<span class=news_heade>".$in_news[$i][’pagetitle’]."</span></p>";}
$return.= "<p>".$in_news[$i][’introtext’];
if ($in_news[$i][’content’] == true) {$return.= " <a href=index.php?id=".$in_news[$i][’id’]." class=read_more>Подробней...</a></p>";}
}
echo $return;
// Вывод архива
$return="";
$return.="Архив новостей: ";
$zapros="SELECT * FROM `modx_site_content` WHERE `published`=’1’ AND `parent`=’$startID’ ORDER BY pub_date DESC, deletedon ASC";
$otvet=mysql_query($zapros);
while($vv=mysql_fetch_array($otvet))
{
if ($vv["pub_date"] == false)
{
$mmm[] = date(’Y’,$vv["createdon"]);
}
else {
$mmm[] = date(’Y’,$vv["pub_date"]);
}
}
// Удаление повторных записей из массива
$mmm = array_unique($mmm);
foreach ($mmm as $value) {
$return.= "<A href=index?id=".$startID."&years=".$value.">".$value."</A> ";
}
echo $return;
}
?>