Ergebnis 1 bis 11 von 11

Thema: Nutzung von Globals - localconfig.php

  1. #1
    Contao-Nutzer
    Registriert seit
    23.08.2011.
    Beiträge
    176

    Standard Nutzung von Globals - localconfig.php

    Ich habe ein paar kleine eigene php-Scripte, die nicht immer im Kontext von Contao laufen, aber z.T. die gleichen Daten nutzen.
    Dafür wollte ich z.B. die DB-Zugangsdaten aus der localconfig.php nutzen.
    Ich hatte gedacht, dass ich das ganz simpel mit einem reqiure_once einbinden könnte, leider scheint das nicht zu funktionieren. Woran liegt das bzw. was mache ich falsch?
    Ist das normal, dass bei 3.2.x in der localconfig.php der Pfad zu (tl_)files nicht mehr enthalten ist? Wo bekommt man denn sonst die Info her ob tl_files oder files ?
    Danke schon mal...

  2. #2
    Contao-Nutzer
    Registriert seit
    23.08.2011.
    Beiträge
    176

    Standard

    Hm, keine Antwort - das kann drei Dinge bedeuten:

    A: Die Frage ist zu blöd um drauf zu antworten.
    B: Die Frage ist zu schwer, keiner kann sie beantworten.
    C: Die Frage ist zu ungenau es werden mehr Informationen benötigt.

    Nun auch wenn ich A und B eher nicht glaube, kann man ja nie sicher sein.
    Also bitte voten A, B oder C ?

    Oder gerne auch Antworten auf meine Fragen...

  3. #3
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.949

    Standard

    C!

    Der Teil

    leider scheint das nicht zu funktionieren. Woran liegt das
    sagt nicht

    • was Du genau gemacht hast (vielleicht ist der Pfad beim require falsch, vielleicht willst Du die Werte falsch verwenden?)
    • wie sich das "funktioniert nicht" äußert


    und außerdem hast Du zwei Fragen gestellt (Pfad zu tl_files), das macht es nicht übersichtlicher.


    Ich habe es eben lokal ausprobiert:

    PHP-Code:
    <?php

    require "/Users/andreas/Sites/mein_contao/system/config/localconfig.php";

    print_r($GLOBALS['TL_CONFIG']);
    funktioniert wie erwartet.

  4. #4
    Contao-Nutzer
    Registriert seit
    23.08.2011.
    Beiträge
    176

    Standard

    Ok, danke, wenn das ausserhalb von dem Kontext von Contao funktioniert,
    zeigt das ja, dass ich nicht ganz auf dem Holzweg bin
    Auf ein Print_r hätte ich auch kommen können, da sieht man ja ob das Require funktioniert hat...

  5. #5
    Contao-Nutzer
    Registriert seit
    23.08.2011.
    Beiträge
    176

    Standard

    So gerade noch mal getestet: "You cannot access this file directly!" Ist die Antwort auf ein require...

    Der zweite Teil meiner Frage aus dem Startpost bezieht sich übrigens darauf, woher ich die Information bekomme, ob tl_files oder files genutzt wird.
    Ich möchte Dateipfade dynamisch zusammenbauen, damit das php bei mehr als nur einer Installation läuft.
    (Diese Funktionalität müssten ja eigentlich auch alle Erweiterungen mitbringen - oder? Ist also auch nichts ganz weltfremdes...)

  6. #6
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.452
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Moin,

    an diversen Stellen im Contao Code findest du:

    PHP-Code:
    require '../../../../system/initialize.php'
    (wobei der Pfad durchaus variiert)

    Versuch es mal damit.

    Gruß, Cliff

  7. #7
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.949

    Standard

    Zitat Zitat von rost Beitrag anzeigen
    So gerade noch mal getestet: "You cannot access this file directly!" Ist die Antwort auf ein require...
    OK, also wahrscheinlich eine recht alte Contao Installation wo zu Beginn der Dateien noch
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You cannot access this file directly!');
    stand.

    Die von cliffen Zitierten Stellen funktionieren, weil TL_ROOT definiert ist (oder weil das in neueren Contao Versionen nicht mehr enthalten ist).

    Für Dich: Definiere TL_ROOT. Der Inhalt sollte egal sein, da hier nicht weiter verwendet.

  8. #8
    Contao-Nutzer
    Registriert seit
    23.08.2011.
    Beiträge
    176

    Standard

    Boah, da wäre ich im Leben nicht drauf gekommen...
    Kaum macht man es "richtig" funktioniert es auch - Danke.

    Hm, um die localconfig einzubinden, muss man ja den Pfad schon mal kennen. Da kann man wohl nicht auf irgendwelche Felder abstellen, um das zu eruieren.
    Geht das beim Verzeichnis tl_files / files?

  9. #9
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.949

    Standard

    Zitat Zitat von rost Beitrag anzeigen
    Geht das beim Verzeichnis tl_files / files?
    (zumindest in meiner Contao 3.4.19) steht in der system/config/default.php
    PHP-Code:
    $GLOBALS['TL_CONFIG']['uploadPath']     = 'files'
    Oder Du gehts pragmatisch davon aus, daß das Verzeichnis tl_files oder files heißt und prüfst per file_exists() welches von beiden es ist.

  10. #10
    Contao-Fan Avatar von Thraile
    Registriert seit
    17.12.2009.
    Ort
    Detmold
    Beiträge
    501
    Partner-ID
    6306

    Standard

    Zitat Zitat von rost Beitrag anzeigen
    Ich habe ein paar kleine eigene php-Scripte, die nicht immer im Kontext von Contao laufen, aber z.T. die gleichen Daten nutzen.
    Was genau hast du eigenltich vor? Gibt es einen Grund, warum du die Scripte nicht im Contao Kontext laufen lässt? Wenn du die DB von Contao verwendest, würde es doch Sinn ergeben, Contao auch als "Framework" zu nutzen.
    Deine Scripte packst du einfach in ein Mini-Modul, welches du einfach selbst triggerst (angenommen das Start-Skript liegt in TL_ROOT):
    PHP-Code:
    <?php
    /**
     * Initialize the system
     */
    define('TL_MODE''BE'); //oder FE
    require('system/initialize.php'); //Pfad anpassen, wenn das Script woanders liegt
    require_once 'system/modules/deineModule/DeineKlasse.php';

    $myClass= \DeineKlasse::getInstance();
    $myClass->doSomething();
    ?>
    Das klappt wunderbar, du kannst auf die gewohnten Contao-Klassen zurückgreifen und Fehler sogar ins Contao-Log schreiben lassen oder Benachrichtigungen über das Notification Center verschicken. Wir lassen so z.B. unseren Cron für die Aktualisierung der Maxmind-Datenbanken laufen, eventuelle Einstellungen (wie Lizenzschlüssel) haben wir einfach in die tl_settings ausgelagert. Als Trigger dient ein regulärer Cronjob, wenn was nicht klappt bekommen wir eine Mail, die per Backend ganz einfach anpassbar ist

  11. #11
    Contao-Nutzer
    Registriert seit
    23.08.2011.
    Beiträge
    176

    Standard

    Vielen Dank für die Infos. Die finale Lösung wird vielleicht mal so aussehen wie von Thraile vorgeschlagen, aber das ist dann noch ein Stück Weg.
    Auf alle Fälle komme ich so schon mal weiter...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 2 (Registrierte Benutzer: 0, Gäste: 2)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •