Zeitgesteuert Websites starten

  • Kannst du mit einer Installationsdatei:

    https://docs.joomla.org/J3.x:D…nstall-update_script_file


    Über das JFile System kommst du an die Dateien heran, die du dann auch auslesen und wieder was reinschreiben kannst.

  • Muss der Key unbedingt in der configuration.php liegen? Reicht es nicht in den Optionen Deiner Komponente? Der Wert wird doch auch erst benötigt, wenn du den View aufrufst.

    Grüßkes datTom
    Das Leben ist zu kurz um sich zu ärgern.

  • Bei mir ist die configuration.php standardmäßig schreibgeschützt. Weiter ist es eine PHP Klasse und keine XML Datei oder ähnliches.

    So vom Grundgedanken.

    1. Setzte die Datei auf beschreibbar z.B. 777.
    2. Lese die Datei Zeilenweise aus und speichere die Zeilen in einen Array.
    3. Füge in deinen Array an vorletzter Position Deine Key mit dem Wert ein.
    4. Überschreibe die Datei.
    5. Setze die Datei Attribute wieder auf 664.

    Meines Erachtens ist es aufwendiger einen Key aus der Konfiguration zu lesen als aus der Komponente.

    Grüßkes datTom
    Das Leben ist zu kurz um sich zu ärgern.

  • Morgen,


    also gerade die configuration.php wenn auch nur zeitweise auf 777 setzen, kann ich zu meinem Teil nicht empfehlen!

    Auch sollten Dateien nicht auf 664 sondern eher auf 644 gesetzt sein!

    Es gibt dann aber auch noch Dateien die besser nur lesbar mit 444 sind und dazu zählt die configuration.php...


    Jetzt muss ich nochmal die genauen Anforderungen lesen...


    Also du hast bereits eine Backend Komponente, die eine Funktion vom eingeloggten User ausführt. Dies soll nun zeitgesteuert von deinem PC aus gehen?


    Wie schon erwähnt, sind für sämtliche Backend Aktionen ein Login nötig, von deinem PC aus ist hier schon Feierabend.


    Aber was spricht dagegen, wenn du die Funktionalität ins Frontend legst? Da bräuchtest keinen Login?

    Die View die du dann ansteuerst könntest auf nen versteckten Menüeintrag legen und einen nur dir bekannten Schlüssel mitgeben.


    Beispiel:

    http://xyz.de/my-db-update?key=secret


    Bevor du im Frontend dann die eigentliche Funktion ausführst, kannst noch überprüfen, ob der richtige Key mitgegeben wurde.

    Wenn nicht bricht die Funktion ab.


    So hats mehr oder weniger Nobbe ja auch schon geschrieben.


    Die obige URL rufst dann einfach mit einem Windows Task entsprechend auf...

  • Hallo Togo, Nachtrag.


    Dass die configuration. PHP. Keine XML Datei ist doch klar. Es war jetzt der Ansatz, bei der Installation der Komponente nicht nur die DB sondern auch einen Eintrag in die configuration. PHP zu schreiben



    Ansonsten werden alle Einstellungen in eine configuration in der DB erzeugt.


    Danke für die Diskussion.

  • Hallo Medialekt,


    danke. So wird es jetzt werden.


    Die Spannung liegt doch in dem Testen und ausprobieren von Lösungsansätzen, von Erfolg und Rückschlägen. Gerade als Neuling auf einem Gebiet.


    Danke für die Hinweise.

  • 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. ;)

    JoomISP - Joomla! Komponente zum Anbieten von Internet-Dienstleistungen wie Webhosting, Serververmietung oder VoIP.