Wir haben den Mx1.4 mit der bindabei Funktion aktiv.
In diesem sind all unsere Termine enthalten, welche aber nur INTERN zur Verfügung stehen.
Paralell pflegen wir eine 2. Liste mit den Terminen die ausschließlich für die ÖFFENTLICHKEIT bestimmt ist, mit einem anderen kleinen Tool.
1. Diese doppelte Arbeit soll aber entfallen!
2. Das Aussehen der öffentlichen Termine muß überarbeitet/angepasst werden.
Mir stehen nun verschiedene Möglichkeiten zur Option:
Die Einfachste ich wohl eine separate Ausgabe zu gestalten - z.B. einen 2. (öffentlichen) Centerblock.
Habe ich versucht über eine eigene Kategorie zu lösen, was nur bedingt funktionierte.
Gleichzeitig ist die Übersichtlichkeit INTERN durch diese zusätzliche Kategorie verloren gegangen (Weil die Termine nicht in Ihren eigentlichen Kategorie geführt werden).
Als weiteres Problem entpuppte sich die Anzeige der BinDabei-Anzeige in den öffentlichen Terminen - welche auf jeden Fall ausgeschlossen werden muß.
Dann habe ich versucht eine Intern-/Externmarkierung einzubauen über welche ich entsprechend Filtern kann. Dies wäre m.E. die suaberste Lösung, ich bin aber an meinen mangelhaften php-Kenntnissen gescheitert.
Auch hier besteht dann das Problem der zu unterdrückenden öffentlichen BinDabei-Anzeige.
Ein paraleller zweiter Kalender bzw. Doppelter Termineintrag in separate Kategorie fällt als Alternative weg, da der doppelte Pflegeaufwand ausgeschaltet werden soll.
Hat noch jemand eine Idee wie ich das Problem lösen könnte?
Grüße
Roberturix
Ok... ich hab noch mal von Vorne angefangen, da ich mich beim letzten mal wohl verrannt habe.
Dies mal ist der Centerblock (separate öffentliche Ausgabe) genau so geworden wie ich es brauche.
Das einzige das mir nun noch fehlt ist das Filterkriterium für intern/öffentlich.
Kann mir bitte jemand beim erstellen behilflich sein?
Grundsätzlich kann ich mich doch am Feld "Start/End-Zeit ignorieren" orientieren, oder?
Ich muß...
ein zusätzliches Datenbankfeld erstellen.
die Variable benennen.
die Auswahlmöglichkeit (Button) erstellen.
die Ausgabe auf die Variable filtern.
Hab ich was vergessen?
Was ist definitiv nicht weiß:
in welchen Dateien / Zeilen ist hinterlegt das ein Feld/Button bei der Terminerstellung zur Verfügung steht.
in welchen Dateien / Zeilen muß das Filterkriterium eingetragen werden.
:yltype:
:nuke:
:crash:
Ich werd noch wahnsinnig mit diesem Kalender !
Das Feld "extern" habe ich mittlerweile in die DB eingetragen und manuell ein paar "1en" bei dern Terminen vergeben. Nun versuche ich im externen Centerblock die Filterung danach anzupassen.
Zwischenzeitlich stelle ich fest das die BinDabei-Funktion im original Centerblock zwar noch angezeigt wird, sich aber nicht mehr verändern lässt, d.h. keiner sich mehr ein-/austragen kann.
Ich lösche also das neue extern-Feld wieder, aber die BinDabei-Funktion ist weiterhin tot.
:mad2: :puzzled:
Hilfeee :please:
hmm... brauche ich einen Geheimcode um geholfen zu bekommen?
Die Fragen sind doch sehr konkret gestellt und bedürften doch keinem besonderem Aufwand wann man sich im Kallender auskennt, oder irre ich mich da??
Die Bindabei-Funktion habe ich übrigens wieder hinbekommen... :BD:
Das was Du vor hast erfordert extreme Veränderungen an dem gesamten Modul, was ziemlich viel Arbeit ist und nicht mal kurz erledigt werden kann. Deswegen hat wahrscheinlich hier noch niemand etwas geschrieben, wovon ich mich nicht ausnehme.
:red:
Wenn ich mal Zeit finde schau ich mir das mal an, aber versprechen kann ich nichts.
Ich bin ja zwischenzeitlich nicht untätig :smile:
Aber es gibt einen Punkt an dem ich zu knabbern habe:
In welchen Dateien (nur den Block?) / Zeilen muß das Filterkriterium für das DB-Feld "extern" eingetragen werden?
Wenn ich hier Hilfe bekomme, kann ich den Rest vorerst "unvorteilhaft zu Fuß" (direkt in der DB) eintragen.
Das passende Häkchen kann ich dann ja später in den Kalender einbauen.
Ok... es hat gedauert aber ich habe es schlussendlich auch selber gefunden.
Mit Hilfe von diesem Thread (http://www.pragmamx.org/modules.php?name=Forum&topic=18461.0) habe ich diesen erstellt:
WHERE (startDate>= '$qrydate' or endDate>= '$qrydate')
and ($whereoption) and (extern = 1)";
fuktioniert super ! :BD:
Jetzt stellt sich mir aber das Problem den Block als definierte Ausgabe auf einen Link zu packen um ihn dann auch zur Verfügung stellen zu können.
Mit "include" in einem Modul klappt es nicht...
(gibts eigentlich irgendwo ne PHP-hilfe für Befehle im SELFhtml-Stil?)
http://de3.php.net/manual/de/index.php
OK...
in einem "blank"-Modul
mit
$path = './blocks';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
include("block-Calendar_centerlist_open.php");
bekomme ich im debug-mode keine Fehlermeldung mehr.
Leider aber auch keine Ausgabe :gruebel:
Kann ich denn Block so nicht ausgeben??
Ich habe gerade noch mal nachgeschaut.
Die SQL Abfragen/Ausgaben als normaler Block im Vergleich zu meiner "include"-Modulvariante sind identisch und fehlerfrei.
Warum bekomme ich aber keine Termine von der "include"-Modulvariante angezeigt ??? :puzzled:
kopier einfach den gesamten code in deine index.php des modules. mach am ende noch ein
echo $content; unset $content;
rein und versuchs nochmal
Hab ich schon probiert, selbes Ergebnis
Mit Deinem echo $content; unset $content;
bekomme ich
Parse error: parse error, unexpected T_VARIABLE, expecting in Veranstaltungen/index.php on line 187
Also genau in echo $content; unset $content;
dann lass mal das unset weg
die variable muss genau den namen haben, in welche die ganzen daten im block geschrieben werden.
Jawoll... das wars gewesen :thumbup:
Vielen vielen Dank....
Funkioniert übrigens ohne Freigabe des Kalendermoduls für "Alle Besucher"!
Hier (http://www.teutatesnet.de/portal/modules.php?name=Veranstaltungen) zu sehen ;)
Wenn Du mir nun noch ein paar Tipps geben kannst, wie ich an den Einbau der "Häkchenfunktion" im Termin ran gehen kann, werde ich selber anfangen mich in das Thema einzuarbeiten.
Iss ja nich so das ich will oder kann.....
Ich brauch ja nur ab und zu mal einen Tipp, wie ich an schwierigen Stellen weiter komme. ;)
arbeite dich mal durch dir functions.php. Folgende Funktionen:
function calGetSqlQuery
function calPrepareEventForSql
function calSubmitForm
Dort musst Du die Änderungen machen. Schau Dir einfach an, wie es zB für die Checkbox der Startzeit gemacht ist.
*seuft* also noch mal schreiben...
Die Checkbox für die intern/extern Makierung war kein Problem gewesen einzubauen.
Copy, paste, manuelle anpassung der entsprechenden Einträge in der funktion.php
Nun möchte habe ich mich an etwas schwereres rangewagt:
ein zusätzliches Textfeld, welches nur für interne Informationen verwendet werden kann, denn das Beschreibungsfeld "hometext" ist ja auch öffentlich zu lesen.
In der funktion.php und der index.php habe ich (nach meinem Verständnis) alle relevanten "hometext" Einträge dupliziert und nach "interntext" geändert, und das DB-Feld erstellt.
Rufe ich den Kalender (http://robert.webrichard.de/modules.php?name=Kalender) nun auf bekomme ich lediglich eine weiße Seite geliefert, ohne php- oder sql-Fehler.
Lasse ich mir einen Kalenderblock im Center anzeigen, werden die linken und centerblöcke nicht angezeigt, die rechten sind da.
Lasse ich mir einen Kalenderblock Links oder Rechts anzeigen, werden keine Blöck angezeigt.
So wie ich das verstanden habe sind in den funktion und index alle relevanten Funktionen hinterlegt.
Kann mir jemand einen Tipp geben wo ich noch schauen sollte?
Für die Ausgabe musst DU auch hier noch was ändern:
function calEventView($event)
Hatte ich schon gemacht, siehr jetzt so aus
global $calconf, $dbi, $bindauser, $bindanames, $bindanumber, $interntext;
$event["hometext"] = strip_tags($event["hometext"], calGetAllowedtags());
$event["interntext"] = strip_tags($event["interntext"], calGetAllowedtags());
$event["hometext"] = (empty($event["hometext"])) ? $event["title"] : $event["hometext"];
$event["interntext"] = (empty($event["interntext"])) ? $event["title"] : $event["interntext"];
echo "<tr valign=\"top\"><td style=\"background-color: $bgcolor2;\"><span class=\"content\"><b>"Interntext"</b>:</span></td><td colspan=\"3\" style=\"background-color: $bgcolor1;\"><span class=\"content\">" . $event["interntext"] . "</span></td></tr>";
Fehlt da noch was?
lass mal diese Zeile weg:
$event["interntext"] = (empty($event["interntext"])) ? $event["title"] : $event["interntext"];
nöö... hat keinen Effekt, weiterhin weiße Seite.
Aber beim auskommentieren hatte es bei mir geklickt ;)
Ich habe erst mal alle Änderungen auskommeniert und einen nach den anderen getestet und wieder rein genommen. Es waren 2 fehlerhafte echo-Syntax (er erwartete php und bekam html) welche ich nun korrigiert habe.
Das Feld ist nun also genau da wo es sein soll.
Bei speichern bekomme ich nun folgende SQL-Fehlermeldung:
ZitatSQL query:
INSERT INTO mx4711_events SET aid = 'Perethil', title = 'testeintrag', hometext = 'externer Text', topic = 0, informant = 'Perethil', startDate = '2007-02-16', endDate = '2007-02-16', startTime = '09:00:00', endTime = '11:00:00', alldayevent = 0, categorie = '4', activ = 1, extern = 0, interntext = interner Text
, posteddate = '2007-02-16 19:06:00'
Error sql_query():
qry: INSERT INTO {prefix}_events SET aid = 'Perethil', title = 'testeintrag', hometext = 'externer Text', topic = 0, informant = 'Perethil', startDate = '2007-02-16', endDate = '2007-02-16', startTime = '09:00:00', endTime = '11:00:00', alldayevent = 0, categorie = '4', activ = 1, extern = 0, interntext = interner Text
, posteddate = '2007-02-16 19:06:00'
descr: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Text
, posteddate = '2007-02-16 19:06:00'' at line 1 ( mysql 1064 )
Da fällt mir sofort interntext = interner Text ohne Anführungsstriche auf, dürfte doch das Problem sein oder?
Ist der Fehler dafür im function calSubmitForm($event) zu suchen, oder eher woanders?
function calSubmitForm($event)
{
global $user, $cookie, $dbi, $calconf;
global $bgcolor1, $bgcolor2, $bgcolor3, $textcolor1, $textcolor2;
$eventsdates = calGetEventDates($event);
$event = array_merge($event, $eventsdates);
// mxDebugFuncVars($event);
$event["title"] = strip_tags($event["title"]);
$event["hometext"] = strip_tags($event["hometext"], calGetAllowedtags());
$event["interntext"] = strip_tags($event["interntext"], calGetAllowedtags());
$event["categorie"] = calGetCurrentEventPoint($event["categorie"]);
$event["eid"] = (empty($event["eid"])) ? 0 : $event["eid"];
$event["aid"] = (empty($event["aid"])) ? calIsAdmin() : $event["aid"];
$event["informant"] = (empty($event["informant"]) || $event["informant"] == $GLOBALS["anonymous"]) ? "" : $event["informant"]; // sicherstellen, dass informant nicht $GLOBALS["anonymous"]
$event["posteddate"] = (empty($event["posteddate"])) ? 0 : $event["posteddate"];
$checkalldayevent = (empty($event["alldayevent"])) ? "" : "checked";
$checkaddarticle = (empty($event["addasarticle"])) ? "" : "checked";
$checkextern = (empty($event["extern"])) ? "" : "checked";
$namecaption = (empty($event["eid"])) ? _CALYOURNAME : _CALNAMEFIELD;
// build Start and End Event Select
hast du auch die submit.php bearbeitet?
nein, hatte ich nicht.
Ist jetzt aber erledigt.
Leider das selbe Fehlerbild, keine Anführungsstriche beim Inhalt des "interntext"
ich denke es ist in der funktion:
function calGetSqlQuery($event, $mode)
in functions.php
Hast du da folgende Zeile drin?
$fields[] = "interntext = '" . $event["interntext"] . "'";
Man beachte die Reihenfolge der Anführungszeichen, Hier hab ich die Zeile mal mit Leerzeichen geschrieben:
$fields[] = "interntext = ' " . $event["interntext"] . " ' ";
Ja da brat' mir doch einer 'nen Storch....
$fields[] = "interntext = " . $event["interntext"] . "";
Genau dort war der Fehler, ich verstehe aber nicht wie der da hin gekommen ist, denn um genau solche Fehler zu vermeiden habe ich ja copy&paste benutzt.
Sehr seltsam ! :gruebel:
Aber es geht jetzt einwand frei !!!
Jetzt "nur" noch die letzte benötigte Funktion:
"Bin Dabei" muß 2 zusätzliche Auswahloptionen bekommen.
Ich bin mir nicht ganz sicher, ob ich das mit der einfachen 2-Felder-Variante oder der aufwändigeren (?) zusätzlichen Tabelle -die Variante mit der Aktivierungsmöglichkeit von Dir Musicman- angehen soll.
nimm doch einfach meine funktion und erweitere die Variable für bin dabei:
1 - nimmt teil
2 - weiß nicht
3 - nicht dabei
allerdings musst du dann noch eine zusätzliche Reihe für die Oprion einbauen.
Hab mir schon gedacht, das Du das ziemlich offen gelassen hast, so das eine Änderung an dieser Stelle "einfach" sein könnte. Habe mich aber noch nicht damit auseinander gesetzt.
Jetzt wäre nur meine Frage, geht es schneller Deine Version zu installieren und meine Veränderungen bei Dir noch mal einzutragen oder Deine Variante bin meine zu integrieren ???
Hallo Roberturix,
Deine Änderungen mit dem öffentlichen und nichtöffentlichen Kalender finde ich sehr interessant. Habe nämlich gestern festgestellt, dass ich so was auch benötige und heute diesen Artikel gefunden.
Wärest Du so nett und würdest Deine Änderungen hier veröffentlichen, so dass ich das bei mir auch einbauen kann?
Wäre echt toll!
Dirk
na klar...
sobald ich die erweiterte BinDabei Funktion eingebaut habe, werde ich das zur Verfügung stellen.
Ich denke mal, es geht schneller deine Änderungen bei mir einzubauen.
Wenn Du mir die schickst, übernehme ich die für die nächste Version gleich mit.
:puzzled:
oh man.....
da hast Du ja ganz schön was zusammenprogrammiert :thumbup:
Ich versuche nun seit 4 Tagen durchzusteigen wie deine Erweiterung funktioniert und wo ich ansetzen muß.
Du hast die entsprechenden Variablen in den 3 Dateien so oft verwendet, das ich jedes mal den Faden verliere.
Jedes mal wenn mir der Kopf qualmte habe ich erst mal an was anderem weiter gemacht. :puzzled:
Tatsache ist: :gott:
...und ich trau mich nicht an irgend einer stelle anzufangen
Dagegen war alles andere bisher penuts!
Ich brauche diese Funktion wirklich und möchte es auch eigentlich selber umsetzen, aber ich finde keinen Anfang! :gruebel:
schick mir einfach mal deine änderungen inkl. einer beschreibung (welche dateien und zeilen) dann bau ich dir das ein. denke mal das ich die Zeit finden werde.
:gruebel:
Hallo,
gibt es jetzt schon die Erweiterung der erweiterten Kalenderfunktion ?
Gruß
DirkE
gemach gemach....
habe heute von Musicman den ersten Teil bekommen und bin gerade am Testen. :thumbup:
Der 2. Teil, die BinDabei-Alternativen-Erweiterung, dauert noch was.
Hallo Roberturix,
was ist denn der 1. Teil? Die Privatkalendergeschicht?
Würde ich auch gerne testen...
Gruß
DirkE