ich habe nun nach vielen Monaten endlich mal die Zeit gefunden und Admidio auf die aktuelle Version geupdatet. Neben einigen Schwierigkeiten bei dem Update der Datenbank (-dem Forum sei Dank: Hier wurde schon einige Probleme gepostet und gelöst) habe mich um die Integration der Plugins in Joomla bemüht.
Ich möchte nun anderen Anwendern meine Erkenntnisse zum Einbinden der Plugins erläutern:
1. Damit alle Plugins auf der Joomla-Seite angezeigt werden können, müssen diese über das Joomla-Modul Wrapper auf die gewünschte Position gesetzt werden. Damit man am eigentlichen Plugin nicht zuviel umcoden muss, ist der Aufruf über eine vorgelagerte PHP-Datei sinnvoll. In der Datei efolgt so der Aufruf:
Code: Alles auswählen
<?php
include($_SERVER['DOCUMENT_ROOT']. "/adm_plugins/calendar/calendar.php");
?>
Code: Alles auswählen
<link rel="stylesheet" type="text/css" href="http://mitglieder.mv-mittelrode.de/adm_plugins/calendar/calendar.css" />
REM Ermöglicht die Ajax-Funktionen
<script type="text/javascript" src="http://deine_domäne.de/adm_program/libs/jquery/jquery.js"></script>
REM Nicht zwingend erforderlich
<script type="text/javascript" src="http://deine_domäne.de/adm_program/system/js/common_functions.js"></script>
REM Ermöglicht die Tooltipbox.
<script type="text/javascript" src="http://deine_domäne.de/adm_program/libs/tooltip/ajax-tooltip.js"></script>
2. Durch das Einbinden der Plugins über joomla-Module kommt es aber bei den dargestellten Links oft zum Problem, dass die Hauptseite von Joomla verlassen. Auch wenn man Admidio mittels Component-Wrapper eingebunden hat, ist ein Ansteuern der einzelnen Admidio-Module wie z.B. dates.php so noch nicht möglich.
Dank eines Eintrages im joomlaportal-Forum gibt es aber eine Möglichkeit durch hacken des Wrapper-Modules, der Joomla-Komponente Wrapper noch zusätzliche Parameter auf den Weg zu geben:
So heißt es bei JoomlaExpert
http://www.joomlaexpert.com/index.php?o ... &Itemid=63
Damit kann man also dem Wrapper von aussen noch einen weiteren Parameter mitgeben.Pass Parameters to the Wrapper (13393 hits)
Written by Thomas Kahl
Have you ever needed to pass different parameters to your "wrapped" script?
Here is a flexible solution, which should work with all Wrapper-Items in mambo 4.5.1 & 4.5.2:
1. Make a backup of the file /components/com_wrapper/wrapper.php
2. Open the file in an editor and go to line 35.
3. Search for this text: $url = $params->def( 'url', '' );
4. Insert the following block AFTER the line:
foreach ($_GET as $key => $value) {
if ($key<>"option" && $key<>"Itemid") {
$url.=(strpos($url,"?")) ? "&" : "?";
$url.="$key=$value";
}
}
5. Save the file and test the solution in your browser.
This is for example a link to a special phpBB topic:
http://www.yourdomain.com/index.php?opt ... 110&t=3022
the corresponding URL in the Wrapper configuration is:
http://www.yourdomain.com/phpBB/viewtopic.php
the additional parameter "t" is passed to phpBB:
http://www.yourdomain.com/phpBB/viewtopic.php?t=3022
3. Das Plugin muss man dann an den entsprechenden Stellen anpassen:
Für das Modul calender.php habe ich dazu folgende Änderungen vorgenommen:
Zeile 307:
Code: Alles auswählen
if($ter_anzahl >> 0)
{
if($i <= 9)
{
$plg_link = "http://www.deine_domäne.de/index.php?option=com_wrapper&Itemid=170&view=wrapper?date=$jahr$monat". "0". $i;
$plg_link_target = "_top";
}
else
{
$plg_link = "http://www.deine_domäne.de/index.php?option=com_wrapper&Itemid=170&view=wrapper?date=$jahr$monat$i";
$plg_link_target = "_top";
}
}
sowie neue Zeile 401:
Code: Alles auswählen
if($i == $heute OR $i == $ter_aktuell OR $i == $geb_aktuell)
{
if($i != $ter_aktuell && $i == $geb_aktuell)
{
$plg_link = "#";
$plg_link_target = "_self";
}
if($i == $ter_aktuell || $i == $geb_aktuell)
{
if($plg_ajaxbox == 1)
4. Die Umstellung funktioniert auch mit bei Einsatz einer Komponente SEO bzw. SEF für suchmaschinenfreundliche URL. Hier ist dann die durch die SEF-Komponente übersetzte Adresse einzugeben.
Fakt ist, das durch diese Codierungen aus den jeweiligen Plugins durch Angabe der Parameter ?date=YYMMDD über den Joomla-Wrapper der jeweilige Termin an das jeweilige Admidio-Modul weitergereicht wird. Und das wichtigste daran ist: Die Hauptseiten von joomla werden nicht verlassen. Alles bleibt im Contentbereich von Joomla. Nachteilig ist dabei, dass sowohl in joomla als auch in admidio bei den Modulen ein Hack angewendet wurde.
Die nächsten Schritte:
Natürlich könnte man die Angabe der URL für die Joomla-Seite in die Config auslagern. Aber dies stellt nur einen nächsten Schritt dar. Vielleicht kann ja der jeweilige Plugin-Autor hier eine Erweiterung basteln. Danke schon mal an dieser Stelle.
Ich habe an dieser Stelle damit begonnen die Original-Komponente von Joomla als neue Komponente aufzusetzen. Damit würde dann der Core wieder korrekt sein und man läuft nicht in die Updatefalle. Ich werde hierzu später noch mal berichten.
Auf bald
Bettes