Rückgabe eine Smarty-Function verarbeiten?

Thema wurde von Manni_HB, 22. Juli 2011 erstellt.

  1. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Hallo Smarty-Experten,

    dies hat mir keine Ruhe gelassen.
    Bisher hatte ich eigene Funktionen schön im Ordner /inc/ abgelegt und dann mit "include ...." eingebunden - so weit so gut. Da dies servicepack-gefährlich ist habe ich nun eine Smarty-Funktion gebastelt. Macht nix dolles - zerlegt den übergebenen String in Einzelteile, verarbeitet manches an Ort und Stelle und gibt einen Teil brav wieder zurück. So weit so gut - die Fkt. arbeitet einwandlos.

    Doch nun schlägt mein BrettVormKopf aber sowas von zu:
    Wie verarbeite ich jetzt im Template den zurückgegebenen String?

    Beispiel:
    Code:
        
        {if [COLOR=red]$info_message}[/COLOR]    
            {mbr_color_alert typ=[COLOR=red]$info_message[/COLOR]}
            <script language="Javascript">alert('Unsere Newsletter-Verwaltung meldet:','{[COLOR=red]$info_message[/COLOR]}')</script>
        {/if}
    
    DIe $info_message kommt von Steuerzeichen bereinigt zurück ... und soll im Script angezeigt werden.

    Irgendwie fehlt mir da ein Stück!?

    Für sachdienliche Hinweise wäre ich sehr dankbar.
     
  2. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Hallo Manfred,

    du benötigst keine Smarty-function, sondern ein Smarty-modifier. Der sieht so aus:

    Dateiname modifier.mbr_color_alert.php

    PHP:
    <?php

    function smarty_modifier_mbr_color_alert($string)
    {
        
    //...$string verändern, wie du willst...//
        
        
    return $string;
    }

    ?>
    Angewendet wie folgt:

    Code:
    {if $info_message}    
            <script language="Javascript">alert('Unsere Newsletter-Verwaltung meldet:','{$info_message|mbr_color_alert}')</script>
    {/if}
    
     
  3. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Hallo Moritz,

    danke für den klasse Vorschlag ... da fallen mir gleich ein/zwei/... neue Ideen ein!
    Kleines Prob: Das Script kann scheinbar mit dem Modifier nix anfangen.

    Habe aber rausgetüfftelt was bei meiner Variante fehlte:
    In meiner Funktion fehlte...
    PHP:
    .
    .
    .

    $smarty->assign('MBrError',$mbr_error_msg);
    }
    ?>
    ... dann die "$MBrError" ins Script und .... funkonopelt!


    PS: Und dass alles nur um den Shop SP-sicher zu machen! :)