ich habe mal ein bisschen an der Artikellist als Kalender rumgefummelt.
Was habe ich geändert? Nicht viel:
1) Ich habe die Artikelliste mit der Artikellist als Kalender in ein Modul gepackt.
2) Habe ich die Artikelliste so verändert, dass es nur Artikel aus dem aktuellen Monat bzw. dem im Kalender ausgewählten Monat anzeigt
3) Wenn ich einen best. Tag im Kalender anklicke, wird in der Artikelliste alle Artikel aus der Kategorie für diesen Tag angezeigt.
Code: Alles auswählen
<?
$category_id = $this->getValue("category_id");
$path = $this->getValue("path");
preg_match_all("/-([0-9]+)/i",$path,$match);
$spath = $match[0][0];
$GC = new sql;
// $GC->debugsql = 1;
$GC->setQuery("select * from rex_article
where
(rex_article.path like '$spath-%' or rex_article.path='$spath') and
rex_article.startpage=0 and rex_article.status = 1
order by rex_article.prior,rex_article.name");
for ($i=0;$i<$GC->getRows();$i++)
{
$KAL[$GC->getValue("rex_article.online_von")] = $GC->getValue("rex_article.id");
$KALNAME[$GC->getValue("rex_article.online_von")] = $GC->getValue("rex_article.name");
$GC->next();
}
// ----- KALENDER
if ($FORM[date]!="")
{
$FORM[year] = substr($FORM[date],0,4);
$FORM[month] = substr($FORM[date],4,2);
$FORM[day] = substr($FORM[date],6,2);
}
if (!checkdate($FORM[month],$FORM[day],$FORM[year]))
{
$FORM[year] = date("Y");
$FORM[month] = date("m");
$FORM[day] = date("d");
}
$FORM[date] = $FORM[year].$FORM[month].$FORM[day];
$today = date("Ymd");
$FORM[link] = "index.php?article_id=REX_ARTICLE_ID";
$link = $FORM[link];
$month_days = date("j",mktime(0,0,0,$FORM[month]+1,1,$FORM[year])-1);
$month_before = $FORM[month]-1;
$month_later = $FORM[month]+1;
$year_before = $FORM[year];
$year_later = $FORM[year];
if ($month_before<1){ $month_before = 12; $year_before= $year_before-1;}
if ($month_later>12){ $month_later = 1; $year_later= $year_later+1;}
if ($month_before<10){ $month_before = "0$month_before"; }
if ($month_later<10){ $month_later = "0$month_later"; }
$before = $year_before.$month_before."01";
$later = $year_later.$month_later."01";
$KALENDER .= "
<div class=\"Calendar\">";
$KALENDER .= "
<div class=\"CalendarHead\">
<div class=\"CalendarHeadLeft\"><a href=\"$link&FORM[date]=$before\" class=\"calhead\"><b>«</b></a> <a href=\"$link&FORM[date]=$later\" class=\"calhead\"><b>»</b></a></div>
<div class=\"CalendarHeadRight\">".$FORM[month]."/".$FORM[year]."</div>
</div>";
$KALENDER .= "
<div class=\"CalendarWeekdays\">
<span>Mo</span>
<span>Di</span>
<span>Mi</span>
<span>Do</span>
<span>Fr</span>
<span>Sa</span>
<span>So</span>
</div>";
$k = 1;
for ($i=1;$i<7;$i++)
{
$KALENDER .= "
<div class=\"CalendarDays\">";
for($j=0;$j<7;$j++)
{
$k = $k + 0;
if ($k<10) $k="0$k";
if ($FORM[month]<10) $comp_month="".$FORM[month];
else $comp_month=$FORM[month];
$which_weekday = date("w",mktime(0,0,0,$FORM[month],$k-1,$FORM[year]));
if ($which_weekday == $j and $month_days>=$k)
{
$loop_day = $FORM[year]."$comp_month$k";
$KALENDER .= "
<span";
if ($FORM[date] == $loop_day) $KALENDER .= " class=\"CalendarDaysActive\">";
elseif ($today == $loop_day) $KALENDER .= " class=\"CalendarDaysIdontknow\">";
elseif ($j == 5 or $j == 6) $KALENDER .= " class=\"CalendarDaysWeekenddays\">";
else $KALENDER .= " class=\"CalendarDaysWeekdays\">";
if ($KAL[$loop_day] != "") $KALENDER .= "<a href=\"".$link."&FORM[date]=$loop_day&FORM[span]=day\">$k</a>";
else $KALENDER .= "$k";
$KALENDER .= "
</span>";
$k++;
}else
{
$KALENDER .= "<span></span>";
}
}
$KALENDER .= "</div>";
if ($month_days<$k) break;
}
$KALENDER .= "</div>";
// ----- / KALENDER
echo "<div class=\"CalendarContainer\">$KALENDER<div class=\"Clear\"> </div></div>";
?>
<div class="ArticlelistContainer">
<?php
// ArtikelListe
if ($FORM[span] == "day") {
$sql = "select * from rex_article where rex_article.category_id='REX_CATEGORY_ID' and startpage=0 and checkbox01=1 and status=1 and erstelldatum='".$FORM[year].$FORM[month].$FORM[day]."' order by rex_article.prior ASC";
} else {
$sql = "SELECT * FROM rex_article WHERE rex_article.category_id='REX_CATEGORY_ID' AND startpage=0 AND checkbox01=1 AND STATUS=1 AND erstelldatum LIKE '".$FORM[year].$FORM[month]."%' ORDER BY rex_article.erstelldatum DESC";
}
$GC = new sql;
$GC->setQuery($sql);
for ($i=0;$i<$GC->getRows();$i++)
{
if ($i!=0) echo "<!--
<hr style=\"width:100%; height:1px;\" vspace=\"4\"> -->";
$aid = $GC->getValue("rex_article.id");
$jahr = substr($GC->getValue("rex_article.online_von"),0,4);
$monat = substr($GC->getValue("rex_article.online_von"),4,2);
$tag = substr($GC->getValue("rex_article.online_von"),6,2);
$date = "$tag.$monat.$jahr";
echo "<div class=\"ArticlelistArticle\">";
echo "<div class=\"ArticlelistHead\">";
echo " <div class=\"ArticlelistHeadline\">".htmlentities($GC->getValue("rex_article.name"))."</div>";
echo " <div class=\"ArticlelistDate\">".htmlentities($date)."</div>";
echo "</div>";
echo "<div>
<div class=\"ArticlelistIntro\">";
if ($GC->getValue("rex_article.file")!="") echo "
<img src=\"<?=$REX[HTDOCS_PATH]?>/files/".$GC->getValue("rex_article.file")."\" align=\"left\" style=\"border-right:10px #ffffff solid; border-bottom:10px #ffffff solid;\" />";
echo htmlentities($GC->getValue("rex_article.beschreibung"))." ";
if ($REX[GG]) echo "<a href=\"".getURLbyID($aid)."\"><b>» mehr...</b></a>";
echo " </div></div>";
echo "</div>";
$GC->next();
}
?>
</div>
Kleine Änderungen aber so gefällt mir das Modul noch besser
Gruß,
Carsten