Smarty globale Variable definieren

  • geschlossen
  • PHP

  • Snip3r
  • 2773 Aufrufe 5 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Smarty globale Variable definieren

    Ahoi,
    ich hab eine Frage zu Smarty, die ich mir trotz intensivem googlen nicht beantworten konnte.
    Und zwar nutze ich für eine Seite mehrere Templates. In allen Templates benötige ich Zugriff auf eine Variable ($settings).
    Gibt es eine Möglichkeit $settings irgendwo als global zu definieren, so dass diese in jedem Template verfügbar ist?

    mfg
    snip3r
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • Danke Broken Sword,
    aber ich glaube das ist nicht das wonach ich suche. $settings ist eine Klasse deren Inhalt bei jedem Aufruf aus der Datenbank geladen wird. Mir fällt grad ein, ich könnte die auch in eine PHP Datei auslagern, die ich mit einem Cronjob erstelle oder die nur dann erstellt wird wenn an den Einstellungen was geändert wird.

    Wichtig ist mir halt, dass ich auf die Einstellungen ($settings) per PHP und Smarty zugreifen kann (wenn möglich ohne beide zu getrennt zu laden). Und noch eine Frage, wie kann ich mit Arrays umgehen?
    $settings->xyz['abc']
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • Hi,
    zur zweiten Frage findest du allerhand in der Doc: Chapter*4.*Variables | Smarty

    Zur ersten kannst du es doch sehr simple mit einer Klasse realisieren

    Quellcode

    1. class newSmarty {
    2. public function __construct($param) {
    3. $tpl = new Smarty;
    4. $this->doSomeThingWithParam($param,$tpl); //your smarty start prefs (caching, debugging, etc)
    5. $tpl->assign('settings',core::$settings); //use some static var for settings to access it from here
    6. return $tpl;
    7. }
    8. }


    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Zu 2. Der Umgang mit Arrays bezieht sich mehr auf die config files. Da konnte ich in der Dokumentation nichts passendes herauslesen.

    Zu 1. Ich steh diesbezüglich grad etwas auf dem Schlauch, hast du mir nen kleines Musterbeispiel, wie man dann die Klasse nutzen kann?

    Danke und gruß
    snip3r
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • 2. Probiere es doch einfach, wie in anderen Smarty-Sachen:

    Quellcode

    1. array.index = "peter"


    1. Na, einfach anstatt

    Quellcode

    1. $tpl = new Smarty;
    nimmst du

    Quellcode

    1. $tpl = new newSmarty;

    Mit doSomeThingWithParam ist einfach nur gemeint, falls du etwas generelles mit einem Smarty-Template machst (Cache- oder Debug-Einstellungen angeben und ähnliches)

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.