Beiträge von Nobbe

    Nur noch mal zur Sicherheit. Du bist diesem Link hier gefolgt und hast die Anleitung befolgt: http://shmanic.com/tools/jmapmyld…p-extension.htm ?

    Hier geht es um die Installation und Einrichtung der PHP Erweiterung für LDAP auf Deinem Webserver. Hat mit Joomla erst mal nix zu tun. Ohne diese kann PHP nicht mit LDAP zusammen funktionieren. Egal ob Du mit Joomla oder anderen PHP Applikationen LDAP benutzten willst.


    Dein Link geht zu den Joomla Plugins, das ist aber eine ganz andere Baustelle. Egal was Du davon in Joomla installierst, keines wird etwas an den PHP Erweiterungen Deines Servers ändern.

    Also erst mal darum kümmern, dass Dein Webserver richtig konfiguriert ist und dann kannst Du in Joomla weitermachen.

    Hi,

    für mich sieht es eher so aus, als ob Du die PHP LDAP Extension nicht geladen hast. Schau doch mal mit phpinfo oder den System Informationen im Joomla Backend, ob die LDAP Erweiterung geladen ist.

    Wenn nicht, dann musst Du die in der php.ini aktivieren oder ggfls. noch installieren.

    Hallo,

    also, ich kann meinen Vorrednern nur beipflichten. Den Token solltest Du in der Komponenten Config ablegen.

    Da gehört er meiner Meinung nach hin, weil Komponenten Stuff innerhalb der Komponente Config beleiben sollte und Joomla Stuff in die Joomla Config gehört. Und sonst nix.

    Außerdem hast Du immer die Gefahr, dass ein Schreibversuch auf die configuration.php nicht klappt oder abbricht. Dann hast Du entweder eine zerschossene Datei und Dein Joomla geht gar nicht mehr oder die Datei bleibt für jeden beschreibbar. Ersteres lässt sich mit nem Backup beheben, letzteres merkst Du evtl. gar nicht.

    Als Beispiel kannst Du Dir anschauen, wie Joomla die configuration.php schreibt. Schau Dir dazu die Datei administrator/components/com_config/model/application.php an. Interessant ist die Methode writeConfigFile.

    Ist im Prinzip die selbe Vorgehensweise, wie von Medialekt und togo beschrieben.

    Einzelne Werte aus der Config bekommt Du mit JFactory::getApplication()->get($varname, $default);

    Die ganze Config liefert JFactory::getConfig() als Registry, d.h. mit get() und set() kannst Du Werte der Config lesen bzw. verändern.

    Aber nochmal, als Lernobjekt ist das ok. Für den produktiven Einsatz setzt das Token in die Komponenten Config. ;)

    Genau das haben wir alle mit verschiedenen Möglichkeiten vorgeschlagen.

    Wenn Du einen bestehenden View nimmst, kannst Du darin den Import der Daten aufrufen. Das würde dann immer passieren, wenn die Seite aufgerufen wird. Egal ob über cronjob oder einen Nutzer Deiner Seite.

    Um das zu verhindern kannst Du mit dem bereits erwähnten Token arbeiten. Ist das Token vorhanden, wird der Import ausgeführt. Das Token sollten normale Nutzer nicht kennen und es wird nur zusammen mit dem cronjob benutzt. Damit kannst Du dann steuern, wie oft der Task ausgeführt wird.

    Du kannst aber auch einen neuen View erstellen und dort nur den Import aufrufen.

    Das wird für Dich wahrscheinlich gut genug funktionieren, aber ein View sollte halt nur das machen, was zum Anzeigen einer Seite gemacht werden muss. Es schadet nicht, sich ein bisschen mit der Architektur von Joomla auseinanderzusetzen und Designprinzipien wie MVC einzuhalten. Auch wenn es anfänglich nicht notwendig erscheint. Wenn z.B. jede Datei DB-Zugriffe macht, wenn sie Daten braucht, weiß ich irgendwann nicht mehr, wo was passiert. Viel Spaß beim Pflegen der Software.

    Deshalb meine Lösung, diesen Import im Controller anzustoßen. Ein Controller sollte die Aktionen ausführen, die zu erledigen sind. Eine Seite/ein View anzeigen ist auch nur eine Aktion. Nach dem Import kann man immer noch ein redirect auf eine bestimmte Seite machen, wenn man möchte.

    Der Vorschlag mit dem Plugin (so wie Easy Joomla Backup) macht im Prinzip nix anderes als auf das Token zu warten und dann den Import auszuführen. Ist zugegeben auch eine elegante Lösung, wenn auch etwas komplizierter.

    Wenn Du noch Problem hast, einen Controller um eine Methode zu erweitern oder MVC noch nicht gehört hast:

    https://docs.joomla.org/Absolute_Basic…nt_Functions/de

    https://docs.joomla.org/J3.x:Developin…Fcontroller.php (es geht um das Prinzip, was die Methode hier macht ist egal!)

    Hallo,

    wenn ich das richtig verstehe schreibst Du eine eigene Komponente, richtig?

    Dann kannst Du doch auch einen Controller im Frontend mit einer Methode erweitern, die den Import übernimmt. Die Methode rufst Du mit einer URL ähnlich dieser auf:

    http://localhost/index.php?opti…ame.doSomething

    Der Parameter "task" bestimmt wie üblich den Controller und die Methode. Sollte klar sein. Damit nicht jeder den Task aufrufen kann, ist ein Token ähnlich dem Easy Joomla Backup eine gute Option. Dann aber halt nicht einfach per GET und an die URL anhängen, kann ja dann wieder jemand mitlesen, wenn er will. Dann lieber über z.B. curl, POST und HTTPS. Aber wie kritisch Deine Anwendung hier ist, kann ich aus der Ferne nicht sagen.

    bembelimen: die Möglichkeit über com_ajax cronjobs zu simulieren verstehe ich auch nicht ganz. Kannst Du da mehr dazu sagen, denn das Problem hier hör ich so oft, wenn das verwendete Hosting keine echten conjobs bietet. Vielleicht schlummert bei Dir ja die perfekte Lösung? Danke!

    Hallo,

    misch mich mal ein ;)

    CLI Skripte sind nicht dazu gedacht per Browser aufgerufen zu werden.

    Tatsächlich werden sie absichtlich nicht ausgeführt, wenn sie nicht per Kommandozeile aufgerufen werden.

    Die Methode "doExecute" wird in Deinem Skript schon ausgeführt, dafür sorgst Du mit der letzten Zeile:

    Code
    JApplicationCli::getInstance('cliCom_Verein')->execute();

    Soweit kommt Dein Skript aber nicht, wenn es über den Browser aufgerufen wird.

    Der Ansatz aus Deinem anderen Thread Zeitgesteuert Websites starten ist der richtige. Ruf eine URL in Frontend periodisch auf, die dann den Import anstößt.

    Schau doch mal in die Developer Doku: http://www.joomlatune.com/jcomments-developers-manual.html bei How to display the comments quantity

    Das hab ich testweise mal minimal angepasst, so könnte man es in ein Template Override für Artikel einbinden:

    Da JComments eh geladen wird, kann man auch gleich die Language Tags davon benutzen. Besser wäre natürlich sicherzustellen, dass die Sprachdatei für JComments geladen wird. Der comments Anker wird auch von JComments bereits gesetzt, reicht also für nen Link darauf.

    Ciao,
    Nobbe

    Hallo Evi,

    das ist tatsächlich ein bisschen fies, weil auch in der Joomla Doku immer von IDs gesprochen wird (z.B. bei der JHelperTags Klasse).

    Änderst Du den Typ der IDs in Strings anstatt Integer, werden keine neuen Tags angelegt:

    Code
    $params = array('id' => 1, // Article being tagged'tags' => array('2', '3') // Tag IDs from #__tags to tag article with);

    Etwas eleganter finde ich den Weg, der im Category Model von com_categories benutzt wird. Von dort hab ich auch den entscheidenden Hinweis mit den Strings. Dort kommt der JTableObserverTags zum Einsatz, der neue Tags einfügen kann. Für Dich angepasst:

    Code
    $table = JTable::getInstance('Content', 'JTable', array());
    $table->load($params['id']);
    
    
    $tagsObserver = $table->getObserverOfClass('JTableObserverTags');
    $result = $tagsObserver->setNewTags($params['tags'], true);

    Damit sparst Du Dir das Einbinden vom Artikel Model und kannst auch einfach über mehrere Artikel loopen.

    Ciao,
    Nobbe