Author Topic: [TUT] Include Calendarix Mini-Calender  (Read 4415 times)

0 Members and 1 Guest are viewing this topic.

Offline Sebas Bonito

  • Sr. Member
  • ****
  • Posts: 271
  • Sebas Bonito
    • View Profile
[TUT] Include Calendarix Mini-Calender
« on: July 22, 2009, 01:16:26 AM »


Wie gewünscht, eine kleine Anleitung, wie man den Mini-Kalender von Calendarix in 4images integrieren kann.

DEMO: http://tinyurl.com/mtuyd6 [linke Spalte]

Einführung: Da ich eine Konzert-Bilddatenbank nutze, bietet sich ein Kalender an, der mit den Kategorien verknüpft ist. Außerdem soll das "Snippet" die Termine nicht auflisten, sondern schön in der monatlichen Kalenderübersicht anzeigen. Mit ein paar Tricks geht das mit Calendarix. Soviel vorweg: Ganz automatisch geht es nicht (die Termine und Links müssen manuell im Admin-Panel des Calendarix-Scripts eingetragen werden), aber wie in der Demo auf meiner Seite zu sehen ist, ist das Ergebnis durchaus brauchbar, und der Zusatz-Aufwand (pro Kategorie) dauert nur wenige Sekunden mehr. Bei Calendarix können wir als Zusatzangabe eine URL angeben, und dies nutzen wir als Trick aus.



1. Die Freeware "Calendarix Basic" herunterladen

2. Calendarix z.B. in den (neu erstellten) Ordner "events" im 4images-Rootverzeichnis entpacken, hochladen und das ganze (gemäß Readme) installieren und konfigurieren. Die entscheidenen Konfigurationsdateien sind "cal_config.inc.php" und "cal_db.inc.php". Damit dürfte der Standalone-Kalender funktionieren.

3. Zur Einbindung in 4 images verwenden wir die beigelegte "minical.php" (jetzt öffnen)
3.1 Oben den absoluten $urlpathtocal anpassen (z.B. http://www.homepage.de/events/)
3.2 Damit Termine in Links umgewandelt werden, müssen wir die Ausgabe verändern (falls keine URL beim Termin vorliegt, dann wird kein Link ausgegeben). Suche...
Code: [Select]
 if ($devtcnt!=0) {
    // overlib line
    echo "<a href=\"javascript:void(0);\" onmouseover=\"return overlib('";
    echo "<table border=0 cellspacing=0 cellpadding=0 width=100%>" ;
    while ($row = mysql_fetch_object($result)){
echo "<tr><td align=center valign=top>" ;
echo "<table class=eventborder cellspacing=0 cellpadding=0 width=100%><tr>";
if ($notimeentry==0) {
 echo "<td align=center class=eventtimeborder valign=top>" ;
 echo "<div class=smallcalevtime>";
 if ($row->starttime=='') echo "&nbsp; &nbsp;" ;
 else showtime($row->starttime,$row->endtime,1);
 echo "</div>" ;
 echo "</td>" ;
}
echo "<td align=left valign=top width=80% class=eventborder>" ;
echo "<div class=smallcalev>";
      echo subquot(stripslashes($row->title));
echo "</div>" ;

echo "</td></tr>" ;
echo "</table>" ;
    }
  echo "</table>" ;
  // overlib line
  echo "',FGCOLOR,'$overlibbgclr',TEXTSIZE,'1',WIDTH,'120',VAUTO,HAUTO);\" onmouseout=\"return nd();\">";
  }
und ersetze es mit folgendem Part:
Code: [Select]
if ($devtcnt!=0) {
    // overlib line
    while ($row = mysql_fetch_object($result)){


if ($row->url == "") {
echo "<div onmouseover=\"return overlib('";  }
else {
echo "<a href=\"".$row->url."\" Target=\"_top\" style=\"text-decoration:none;color:#000000;\" onmouseover=\"return overlib('";
}

    echo "<table border=0 cellspacing=0 cellpadding=0 width=100%>" ;

echo "<tr><td align=center valign=top>" ;
echo "<table class=eventborder cellspacing=0 cellpadding=0 width=100%><tr>";
if ($notimeentry==0) {
 echo "<td align=center class=eventtimeborder valign=top>" ;
 echo "<div class=smallcalevtime>";
 if ($row->starttime=='') echo "&nbsp; &nbsp;" ;
 else showtime($row->starttime,$row->endtime,1);
 echo "</div>" ;
 echo "</td>" ;
}
echo "<td align=left valign=top class=eventborder>" ;
echo "<div class=smallcalev>";
      echo subquot(stripslashes($row->title));
echo "</div>" ;

echo "</td></tr>" ;
echo "</table>" ;
    }
  echo "</table>" ;
  // overlib line
  echo "',FGCOLOR,'$overlibbgclr',TEXTSIZE,'1',WIDTH,'120',VAUTO,HAUTO);\" onmouseout=\"return nd();\">";
  }

3.3 Damit der Link auch aus der Datenbank geholt wird, ersetze folgende Angabe
Code: [Select]
$query = "select id,user,title,url,starttime,endtime from ".$EVENTS_TB." left join ".$CAT_TB." on ".$EVENTS_TB.".cat=".$CAT_TB.".cat_id where day='$i' and month='$smmonth' and year='$smyear' and approved='1' " ;mit
Code: [Select]
$query = "select id,user,title,starttime,endtime from ".$EVENTS_TB." left join ".$CAT_TB." on ".$EVENTS_TB.".cat=".$CAT_TB.".cat_id where day='$i' and month='$smmonth' and year='$smyear' and approved='1' " ;
3.4 Damit jeder Backlink zum eigentlichen Terminkalender verschwindet (wir also nur innerhalb der Box bleiben, bzw. nur Links zu den Kategorien anbieten) müssen wir den Monatslink löschen. Suche daher
Code: [Select]
 if ($viewcalok==1) {
    echo "<a class=\"smallcalmth\" href=\"".$urlpathtocal."calendar.php?op=cal&month=".$smmonth."&year=".$smyear."\" target=\"_BASE\" >" ;
    }
    echo $mth[$smmonth] ;
  if ($viewcalok==1) echo "</a> " ;
  if ($showyear) echo " ".$smyear;
...und ersetze es mit:
Code: [Select]
 if ($viewcalok==1) {
    echo "" ;
    }
    echo $mth[$smmonth] ;
  if ($viewcalok==1) echo "" ;
  if ($showyear) echo " ".$smyear;


4. ENTWEDER die CSS-Datei (/themes/default.css) anpassen ODER die vorhandene im Template verwenden. Bei letzterem musst Du natürlich die Angaben aus der default.css übernehmen und in der minical.php diesen Eintrag:
Code: [Select]
if (!$gotHeader) {
echo "<link href=\"themes/".$theme.".css\" rel=\"stylesheet\" type=\"text/css\" />\n";
z.B. durch diesen ändern:
Code: [Select]
if (!$gotHeader) {
echo "<link href=\"/templates/default/style.css\" rel=\"stylesheet\" type=\"text/css\" />\n";
...jetzt müsste die minical.php soweit fit sein, damit wir sie in 4images integrieren können.

5. Jetzt öffnen wir die home.html (und alle Templates, in denen wir den Kalender haben wollen), und fügen folgendes "Snippet" als Box (in die linke Spalte) ein:
Code: [Select]
<iframe src="events/minical.php" style="width:150px;height:113px;overflow:hidden;" marginheight="0" marginwidth="0" frameborder="0"frameborder="0" scrolling="no"></iframe>Ggf. den Pfad und die Breiten und Längen anpassen.

Fertig.  8) Wenn wir nun einen Termin beim Kalender-Script eingeben (und den Link der jeweiligen Kategorie bei "URL" verwenden), erstrahlt 4images in einem etwas neuem Glanz. Die größte Fummelarbeit dürfte die Anpassung des Stylesheets sein.
« Last Edit: July 25, 2009, 09:24:53 PM by Schnick und Schnack »