Page 1 of 1

qcal 1.0.6 in phpwcms 1.3.3 - Tutorial

Posted: Sun 13. May 2007, 20:26
by nehemia
Nachdem es mir nach langem Hin und Her endlich gelungen ist, den qcal 1.0.6 unter phpwcms 1.3.3 zu installieren, hier nun mein Versuch für ein Tutorial:

1. Herunterladen von qcal 1.0.6 von hier: http://www.ikfrej.se/?downloads

2. Entpacken der heruntergeladenen Dateien und Datei readme1.0.6.txt genau lesen und der Reihe nach abarbeiten. Bitte beachten, dass für phpwcms 1.3.3 einige Schritte zu überspringen sind.

3. Nachdem alle Schritte abgearbeitet sind, In der Datei .../include/inc_module/mod_qcal/module.default.php folgendes anfügen:

Code: Select all

// simple switch to allow fe render or fe init
// für phpwcms 1.3.3 nötig! // Quelle: http://www.phpwcms.de/forum/viewtopic.php?p=85859#85859
$_module_fe_render      = true;
$_module_fe_init        = true;
4. Bitte in der Datei .../include/inc_module/mod_qcal/inc_lib/QCalendarAdmin.php folgenden

Code: Select all

$buttons = "<span class='qheaderbuttons'>";
$buttons .= "<a href='javascript:;' onclick='editEvent(".$val['id'].")' name='anchorEditEvent' id='anchorEditEvent".$val['id']."' class='editButton' title='".$this->lang["edit_button"]."'><img src=\"/img/button/edit_22x13.gif\" style=\"border:none;\" /></a>";
$buttons .= "<a href='javascript:;' onclick='copyEvent(".$val['id'].")' name='anchorCopyEvent' id='anchorCopyEvent".$val['id']."' class='copyButton' title='".$this->lang["copy_button"]."'><img src=\"/img/button/copy_11x11_2.gif\" style=\"border:none;\" /></a>";
$buttons .= "<a href='javascript:;' onclick='moveEvent(".$val['id'].")' name='anchorMoveEvent' id='anchorMoveEvent".$val['id']."' class='moveButton' title='".$this->lang["move_button"]."'><img src=\"/img/button/cut_13x13_0.gif\" style=\"border:none;\" /></a>";
$buttons .= "<a href='javascript:;' name='anchorDelEvent' id='anchorDelEvent".$val['id']."' onclick='if(confirm(\"".$this->lang["confirm_delete"]."\")) {delEvent(".$val['id'].");}'  class='delButton' title='".$this->lang["del_button"]."'><img src=\"/img/button/trash_13x13_1.gif\" style=\"border:none;\" /></a>";
$buttons .= "</span>";
durch diesen

Code: Select all

$buttons = "<span class='qheaderbuttons'>";
$buttons .= "<a href='javascript:;' onclick='editEvent(".$val['id'].")' name='anchorEditEvent' id='anchorEditEvent".$val['id']."' class='editButton' title='".$this->lang["edit_button"]."'>edit</a>";
$buttons .= "<a href='javascript:;' onclick='copyEvent(".$val['id'].")' name='anchorCopyEvent' id='anchorCopyEvent".$val['id']."' class='copyButton' title='".$this->lang["copy_button"]."'>copy</a>";
$buttons .= "<a href='javascript:;' onclick='moveEvent(".$val['id'].")' name='anchorMoveEvent' id='anchorMoveEvent".$val['id']."' class='moveButton' title='".$this->lang["move_button"]."'>move</a>";
$buttons .= "<a href='javascript:;' name='anchorDelEvent' id='anchorDelEvent".$val['id']."' onclick='if(confirm(\"".$this->lang["confirm_delete"]."\")) {delEvent(".$val['id'].");}'  class='delButton' title='".$this->lang["del_button"]."'>del</a>";
$buttons .= "</span>";
ersetzen.

5. Wahrscheinlich wird man auch die 'qheaderbuttons class' in der Datei .../include/inc_module/mod_qcal/inc_front/themes/qcalendar.css ändern müssen.

6. Anwendung:
{QCAL[:calendar_id:lang_id:main_template:event_template:css}

Erläuterung: Die eckige Klammern hat hier nur die Funktion, dass der Code dargestellt wird. Wird sie im Dokument entfernt, wird der Code sofort umgesetzt und ein Kalender dargestellt!
  • calender_id = die ID-Nr. des jeweiligen Kalenders. Jeder Kalender erhält eine eigene ID-Nr., wobei „0 = alle Kalender“ vorgegeben ist (z.B. 1 = Veranstaltungen, 2 = Geschäftl. Termine, etc.).

    lang_id = die ID-Bez. der Sprache (z.B. en = Englisch, de = Deutsch, etc.)

    main_template = die Hauptvorlagendatei. Sie befindet sich im Verzeichnis .../include/inc_module/mod_qcal/inc_front/tmpl/ Sie ist die Datei, die durch das in ihr enthaltene Replacement Tag (=RT) die Darstellung des Events im Frontend ermöglicht (z.B. habe ich eine Datei erstellt, die das RT {EVENTS} beinhaltet. Diese Datei bewirkt nur, dass die Termine aufgelistet werden). Ich habe sie daher events.tmpl benannt. Selbstverständlich wäre irgendein anderer Name hier möglich, solange er nur die Endung *.tmpl hat.

    event_template = die Vorlagendatei, auf die durch das RT zurückgegriffen wird. Auch sie befindet sich im Verzeichnis .../include/inc_module/mod_qcal/inc_front/tmpl/ Sie ist die Datei, die veranlasst, dass das Event näher beschrieben ausgegeben wird nach Datum, Termin, Zeitpunkt, Ort, Beschreibung (z.B. habe ich eine Datei mit dem Namen events.beschreibung.tmpl erstellt). Selbstverständlich wäre auch hier irgendein anderer Name hier möglich, solange er nur die Endung *.tmpl hat.

    css = bleibt vorerst noch außer Acht.

7. Anwendungsbeispiele:

// 1. Monatskalender mit Events aus allen Kalendern zeigen (Standardeinstellung):
{QCAL[} oder {QCAL[:0}
=====================
// 1. Monatskalender mit Events aus Kalender mit der ID 1 zeigen
{QCAL[:1}
=====================
// 1. Monatskalender mit Events aus Kalender mit der ID 1 zeigen,
// 2. Einstellung 'englische Sprache':
{QCAL[:1[:en}
=====================
// 1. Monatskalender mit Events aus Kalender mit der ID 1 zeigen,
// 2. Einstellung 'deutsche Sprache',
// 3. Im Verzeichnis .../include/inc_module/mod_qcal/inc_tmpl/ die Datei
// default.tmpl.php als die Hauptvorlagendatei. Schauen Sie bitte im Verzeichnis
// .../include/inc_module/mod_qcal/inc_front/tmpl/ wegen Beispielvorlagen nach:
{QCAL[:1:de:default.tmpl.php}

oder

// 1. Monatskalender mit Events aus Kalender mit der ID 1 zeigen,
// 2. Einstellung 'deutsche Sprache',
// 3. Im Verzeichnis .../include/inc_module/mod_qcal/inc_front/tmpl/ die Datei
// default.cal.tmpl oder auch month.tmpl als die Hauptvorlagendatei. Schauen
// Sie bitte im Verzeichnis .../include/inc_module/mod_qcal/inc_front/tmpl/
// wegen Beispielvorlagen nach:
{QCAL[:1:de:default.cal.tmpl}

Offensichtlich sind beide Variationen möglich!
=====================
// 1. Monatskalender mit Events aus Kalender mit der ID 2 zeigen,
// 2. Einstellung 'deutsche Sprache',
// 3. Im Verzeichnis .../include/inc_module/mod_qcal/inc_front/tmpl/ die Datei
// default.cal.tmpl oder auch month.tmpl, events.tmpl oder month.events.tmpl
// als die Hauptvorlagendatei.
// 4. Weiter im Verzeichnis .../include/inc_module/mod_qcal/inc_front/tmpl/
// die Datei event.beschreibung.tmpl als Ihre Eventvorlagen-Datei.
// Wegen Beispielvorlagen schauen Sie bitte im Verzeichnis
// .../include/inc_module/mod_qcal/inc_front/tmpl/ nach.
{QCAL[:2:de:events.tmpl:event.beschreibung2.tmpl}
=====================
oder
{QCAL[:2:de:events.tmpl:event.beschreibung1.tmpl}
=====================
oder
{QCAL[:2:de:month.events.tmpl:event.beschreibung1.tmpl}
=====================
oder
{QCAL[:2:de:month.events2.tmpl:event.beschreibung1.tmpl}

8. Dateien:
Datei default.cal.tmpl und month.tmpl

Code: Select all

{MONTH}
Datei event.beschreibung1.tmpl

Code: Select all

<div id="calEvent">
<span class="calEventDayDetail"><b><i><u>{DAY}.</u></i></b> {TITLE}</span>
<div class="calEventFieldDetail"><b>Uhrzeit:</b> {TIME} Uhr</div>
<div class="calEventFieldDetail"><b>Ort:</b> {LOCATION}</div>
<div class="calEventFieldDetail"><b>Beschreibung:</b> {DESCRIPTION}</div>
</div><br />
Datei event.beschreibung2.tmpl

Code: Select all

<div id="calEvent">
<span class="calEventDayDetail">{DAY}. {TITLE}</span>
<div class="calEventFieldDetail">Wann: {TIME}</div>
<div class="calEventFieldDetail">Wo: <b>{LOCATION}</b></div>
<div class="calEventFieldDetail">Was: {DESCRIPTION}</div>
</div><br />
Datei events.tmpl

Code: Select all

{EVENTS}
Datei month.events.tmpl

Code: Select all

{MONTH}
<br/><br/>
{EVENTS}
Datei month.events2.tmpl

Code: Select all

<table border="0" cellpadding="10" cellspacing="0">
   <tr>
      <td valign="top" width="500px">
         <div id="eventsList">
         {EVENTS}
         </div>
      </td>
      <td valign="top" width="300px">
         <div id="eventsCalendar">
         {MONTH}
         </div>
      </td>
   </tr>
</table>
9. Viel Spaß mit dem neuen Kalendermodul,
Martin

Posted: Sun 13. May 2007, 22:49
by pepe
Das hört sich äußest interessant an...

Habe ich ggf. eine URL mit funktionierendem Beispiel in phpWCMS übersehen?

Wäre toll, das vorher mal sehen zu können :wink:

Posted: Mon 14. May 2007, 22:33
by nehemia
Habe bisher leider nur eine lokale Installation (aber die funktioniert tatsächlich!), da ich noch Datenbank-Probleme auf meinem externen Server habe. Bin aber daran, das geregelt zu bekommen. Da ja nun heute mittlerweile die Version qcal 1.0.7 online gegangen ist, werde ich auch erst mal sehen, wie ich die neue Version installiert bekomme.

Posted: Mon 21. May 2007, 19:19
by prisma
nehemia wrote:Habe bisher leider nur eine lokale Installation (aber die funktioniert tatsächlich!), da ich noch Datenbank-Probleme auf meinem externen Server habe. Bin aber daran, das geregelt zu bekommen. Da ja nun heute mittlerweile die Version qcal 1.0.7 online gegangen ist, werde ich auch erst mal sehen, wie ich die neue Version installiert bekomme.
Hallo nehemia,

ich habe folgendes Problem:

Code: Select all

Warning: Wrong parameter count for substr() in ../include/inc_module/mod_qcal/inc_lib/QCalendarAdmin.php on line 114

Warning: htmlentities() [function.htmlentities]: charset `3' not supported, assuming iso-8859-1 in ../include/inc_module/mod_qcal/inc_lib/QCalendarAdmin.php on line 114
Leider kenne ich mich mit den mysql zuwenig aus. Ich habe bei mit utf8, wie die Installation eigentlich auch verlangt.
Wenn ich mit phpmyadmin aber sehe, sind die beiden phpwcms_cm_categorie und phpwcms_events mit latin1_swedish_ci statt mit utf8_general_ci reingestellt. Was muss ich anders in die install.sql reinschreiben, dass es funktioniert?

Gruss prisma

Fehler behoben, wie im englischen Support unter Hacks

Posted: Tue 22. May 2007, 18:22
by prisma
Hallo,

der Fehler ist in include/inc_module/mod_qcal/inc_lib/QCalendarAdmin.php in Zeile 114

Code: Select all

statt 
		<th class='qheader'><a href=\"javascript:;\" onclick=\"displayQCalendar('$nextMonth','$lYear','".$GLOBALS['qcal']['ajaxAdminPath']."',".$this->category.", true,'".$this->langId."','".$this->css."')\" class='qheaderNav' title='".htmlentities(substr($this->monthNames[$nextMonth-1]), 0, 3)."'>></a>&nbsp;</th>
muss sein:
		<th class='qheader'><a href=\"javascript:;\" onclick=\"displayQCalendar('$nextMonth','$lYear','".$GLOBALS['qcal']['ajaxAdminPath']."',".$this->category.", true,'".$this->langId."','".$this->css."')\" class='qheaderNav' title='".htmlentities(substr($this->monthNames[$nextMonth-1], 0, 3))."'>></a>&nbsp;</th>
dann funktioniert es einwandfrei in der Version 1.3.3

Gruss prisma

Posted: Mon 28. May 2007, 19:26
by MrPotter
Mhm, also installiert und zum laufen habe ich alles bekommen. Bin auch dem Tutorial von nehemia gefolgt, aber die Buttons werden im Front- und Backend trotzdem nicht dargestellt.

Was ist mit schritt 5 gemeint? Soll ich da im css den Abstand ändern? Wie soll das aussehen?

Liebe Grüße und danke
MrPotter