20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion
SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen Ich werde Ihnen auf den folgenden Seiten die Modifikation der SEMINAR Komponente erläutern. Um Ihnen ein besseres Verständnis zu übermitteln werde ich Ihnen zunächst aufzeigen, was die Änderungen bewirken. Doch zunächst die Grundlagen des Systems: Innerhalb des Community Builders habe ich zwei zusätzliche Felder eingetragen: cb_stadt (um dem Anwender die Möglichkeit zu geben seine Stadt einzutragen) als auch das Feld cb_mobile (für Handy/Mobile oder Telefonnummer). Beide Felder sind nur für den Anwender sichtbar und nicht im offiziellen Profil einsehbar. Ein weiteres Feature der kompletten Modifikation ist, dass das Avatar des Veranstaltungerstellers angezeigt wird -> es kann nun kein Bild mehr ausgewählt werden. Selbstverständlich können Sie diesen Schritt weglassen, da nur wenige dieses Feature benötigen. 1
Anpassen der Zusatzfelder Um bei jeder neuen Veranstaltung standardmäßig die gleichen Abfragen seitens der Zusatzfelder zu erreichen, müssen Sie folgende Änderungen vornehmen: SEMINAR.CLASS.PHP Lokalisieren Sie folgenden Bereich: // ++++++++++++++++++++++++++++++++++++++ // +++ DB fuer Veranstaltungen +++ // ++++++++++++++++++++++++++++++++++++++ Unterhalb dieser Stelle finden Sie die Einträge für die Zusatzfelder als auch der Informationsfelder. Sie können nun für die Felder Voreinstellungen vornehmen. Für unser Beispiel ändern Sie var $zusatz1=""; var $zusatz2=""; in var $zusatz1="stadt 0 text"; var $zusatz2="mobile/handy 0 text"; sowie var $zusatz1hint=""; var $zusatz2hint=""; in var $zusatz1hint="geben Sie hier bitte Ihre Stadt ein"; var $zusatz2hint="geben Sie hier bitte Ihre Telefonnummer/Handynummer ein"; Mit dieser Änderung werden bei jeder Veranstaltung automatisch die Zusatzfelder 1 und 2 mit Stadt und Telefon ausgegeben. Sie können dies natürlich an Ihre Anforderungen anpassen. 2
Übernahme der Werte aus Community Builder Um die Einträge aus Community Builder zu übernehmen müssen Sie folgende Änderungen vornehmen: SEMINAR.PHP Lokalisieren Sie folgenden Bereich: // +++++++++++++++++++++++++++++++++++++ // +++ Kurs buchen +++ // +++++++++++++++++++++++++++++++++++++ Suchen Sie: $database = &JFactory::getDBO(); und tragen Sie in der nächsten Zeile (neue Zeile) folgendes ein: $database3 = &JFactory::getDBO(); Nun haben Sie eine neue Datenbankvariabel deklariert, um auf eine weiter Datenbank zurück zugreifen. Suchen Sie nun: // Pruefung ob Buchung erfolgreich durchfuehrbar Und tragen vor diesem Eintrag folgende Zeilen ein: $querycb = "SELECT * FROM # comprofiler WHERE id='$sqlid'" ; $database3->setquery($querycb); $row3 = $database3->loadobject(); $stadt = $row3->cb_stadt; $telef = $row3->cb_mobile; Mit $querrycb wird ein neuer Suchstring deklariert, welcher einen Zugriff auf CB ermöglicht. Nach erfolgreicher Suche werden in den Variabeln $stadt sowie $telef die Werte aus dem CB zugewiesen.!achten SIE IMMER AUF DIE SCHREIBWEISE! Nun kommt der Interessante Teil: die automatische Übernahme von Werten in eine Buchung: Suchen Sie // Buchung eintragen Dort müssen Sie folgende Werte abändern: In $neu->zusatz1 = sem_f018($neu->zusatz1); $neu->zusatz2 = sem_f018($neu->zusatz2); 3
if ($neu->zusatz1 <>"" ) { $neu->zusatz1 = sem_f018($neu->zusatz1); } else { $neu->zusatz1 = sem_f018($stadt); } if ($neu->zusatz2 <>"" ) { $neu->zusatz2 = sem_f018($neu->zusatz2); } else { $neu->zusatz2 = sem_f018($telef); } Diese Änderung bewirkt, dass zunächst geprüft wird, ob der Anwender Daten eingetragen hat oder nicht. Wenn nicht (also wenn er die Felder leer lässt), werden die Werte aus CB übernommen, wenn der Anwender jedoch Eintragungen vornimmt, werden diese übernommen. 4
Ändern des Anzeigebilds Wie bereits eingangs erwähnt, können Sie auf diese Modifikation verzichten, wenn Sie jedoch das Profilbild in der Seminarübersicht anzeigen lassen möchten, können Sie die Modifikation wie folgt vornehmen. SEMINAR.HTML.PHP Suchen Sie zunächst die Funktion sem_g001 (function sem_g001) Nach dem Eintrag $database = &JFactory::getDBO(); tragen Sie folgende Zeile ein: $database2 = &JFactory::getDBO(); Suchen Sie nun (ab ca. Zeilen 130) // Bild ausgeben und tragen danach folgendes ein $queryavatar = "SELECT * FROM # comprofiler WHERE id='".$row->publisher."'" ; $database2->setquery($queryavatar); $row2 = $database2->loadobject(); $avat = "./images/comprofiler/".$row2->avatar;! Überprüfen Sie das Verzeichnis in der Variabel $avat! Dieses Verzeichnis muss auf das im Community Builder angegeben Verzeichnis weißen! Suchen Sie nun (ab ca. 177) if($row->image!="" AND $config->get('sem_p032','')==1) { $linksbild = sem_f007(1).$row->image; $zusbild = 1; } und ändern Sie diese wie folgt: if (file_exists($avat)) { $linksbild = $avat; } else { $linksbild = sem_f007(1).$row->image; } $zusbild = 1; $avat = ; Diese Änderung bewirkt, dass das Standard Image von SEMINAR ausgegeben wird, sofern kein Profilbild im CB vorhanden ist. 5
Nun muss nur noch die Möglichkeit ein Bild auszuwählen deaktiviert werden. Hierfür müssen Sie die Datei SEMINAR.CLASS.PHP suchen Sie (ca. Zeile 267) (vor dem Eintrag // Google Map ) $html.= "<tr>".sem_f022(jtext::_('sem_0093').':','d','r','20%','sem_edit').sem_f022($htxt,'d','l','80% ','sem_edit')."</tr>"; und kommentieren Sie diese mittels // aus //$html.= "<tr>".sem_f022(jtext::_('sem_0093').':','d','r','20%','sem_edit').sem_f022($htxt,'d','l','80% ','sem_edit')."</tr>"; Nun wird die Ausgabe der Bildauswahl beim Erstellen einer neuen Veranstaltung unterbunden. 6
Information Falls Sie die zuvor beschriebenen Änderungen vornehmen, machen Sie dieses auf eigene Gefahr. Wie bei allen Änderungen an PHP Code, weiße ich Sie darauf hin, dass Sie zunächst eine Sicherung aller Dateien machen sollten/müssen. Um die Arbeit von Herrn Vollmar zu würdigen, entfernen Sie bitte nicht den Copyrightvermerk aus dem Code, sondern ordern Sie den Zusatzcode über seine Website! Sollte Ihnen diese Anleitung geholfen haben, oder wenn Sie Hilfe benötigen, so können Sie gerne über meine Website (www.ecktion.com) donaten oder mich kontaktieren. 7