SMARTY Variablenhandling

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SMARTY Variablenhandling

    Hi,

    ich habe eine homepage die SMARTY als template engine verwendet. Ich will die Seite nun etwas für google & co optiemieren und will dafür die URL's umstellen. Da ich diese Homepage jedoch auch z. T. an bekannte gegeben habe (ist ein kleines CMS) und diese weiterhin mit updates versogen möchte auch wenn sie nicht auf mod_rewrite zugreifen können möchte ich die links erst zur Laufzeit generieren.

    Ich habe jetzt dass Problem, dass ich gerne in Smarty im PHP Bereich auf eine Smarty Variable zugreifen würde.

    Code:
    {php}print URL("FAQAdmin", "&action={$foreach.value}&forward=true", ""); {/php}
    Die Funktion URL setzt mich meine urls zusammen jetzt sitzt diese url aber ihrerseites in einer foreach - schleife und soll einen dort durchlaufenen Wert enthalten. Die Variable $foreach.valuesoll also keine php Variable sondern eine smarty Variable sein. Kann mir jemand sagen ob und wenn ja wie das geht?

    Danke

  • #2
    Re: SMARTY Variablenhandling

    schreib dir eine interne Smarty-Funktion, guck dir die Manual an
    http://smarty.php.net/manual/de/plugins.php
    und den Ordner plugins in Smarty, dabei die Dateien, die mit Function beginnen. Du schreibst einfach eine Funktion print_URL (oder ähnlich), der übergibst du dann die Parameter, so wie bei deiner Funktion und in dem Smarty-Plugin werden einfach nur die Parameter an deine URL-Funktion übergeben und der return-Wert wird returned (war das kompliziert? XD)
    something like
    {print_URL first="FAQAdmin" second="&action=`$foreach.value`&forward=true" third=""}
    (beachte, dass die Smarty-Variable im Parameter in Backticks liegt!)


    okay, eigentlich wollt ich den Post schon abschicken, aber ich bin gütig ^^
    PHP-Code:
    <?php
    /*
     made by GhostGambler, thanx for using ^^
    */
    function smarty_function_print_URL ($params, &$smarty)
    {
        if (!isset(
    $params['first']))
            
    $smarty->trigger_error('print_URL: missing first parameter');
        elseif (!isset(
    $params['second']))
            
    $smarty->trigger_error('print_URL: missing second parameter');
        elseif (!isset(
    $params['third']))
            
    $smarty->trigger_error('print_URL: missing third parameter');
        else
            return 
    URL($params['first'], $params['second'], $params['third']);
        
        
    // Wenn ein Parameter fehlt false zurück!
        
    return false;
    }
    ?>
    und das speicherst du als function.print_URL.php in /smarty/Plugins
    (für Bugs hafte ich nicht )

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar

    Lädt...
    X