Plugin get_template_vars

Begonnen von piratos, 01 Okt 2010, 13:17

« vorheriges - nächstes »
Nach unten

piratos

Offenbar wird beim Prestashop eine geänderte Smartyversion mitgeliefert.
Smarty hat da ein Plugin get_template_vars mit dessen Hilfe man alle an Smarty zugewiesenen Variable nebst Inhalten ausgebene kann oder auch gezielt einzelne.
Das ist ein notwendiges Werkzeug beim entwickeln von Templates wenn etwas nicht so läuft.
Das Plugin wird aber nicht beim Prestshop mitgeliefert und das Original taugt auch nichts.

Spendiere daher mal das Plugin wie ich es in meinem Projekt PowerCMS verwende:

<?php

#PowerCMS
#PowerCMS (c)2006 .. 2010 by Jan Czarnowski  (czarnowski@powercms.org)
#This project's homepage is: http://powercms.org
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

function smarty_function_get_template_vars($params, &$smarty) {

    
$name = isset($params['name']) ? $params['name'] : false;
    
$width = isset($params['width']) ? $params['width'] : '100%';
    
$height = isset($params['height']) ? $params['height'] : '800px';
    if (!
$name)
        
$tpl_vars $smarty->_tpl_vars;
    else
        
$tpl_vars $smarty->get_template_vars($name);
    
$str '<div style="overflow: auto; text-align:left;width: ' $width '; height: ' $height ';"><pre>';
    if (
is_array($tpl_vars)) {
        foreach (
$tpl_vars as $key => $value) {
            if (!
is_object($value)) {
                if (!
is_array($value))
                    
$str .= "<strong>$key</strong> = $value<br/>";
                else {
                    
$value print_r($valuetrue);
                    
$str .= "<strong>$key</strong> = $value<br/>";
                }
            } else {
                
$value print_r($valuetrue);
                
$str .= "<strong>Object $key</strong> = $value<br/>";
            }
        }
    }
    else
        echo 
"<strong>{$name}</strong> = {$value}";

    return 
$str "</pre></div>";
}

?>


Einsatz erfolgt in Template mit {get_template_vars}  ( es werden alle ausgegeben) oder gezielt {get_template_vars name='Name_der_var'}

Der code ist als function.get_template_vars.php im Ordner tools/smarty/plugins abzulegen.

Nachfolgender Shot (Auszug) entstand beim Einsatz im footer.tpl

pat

Hallo,

interessant, bisher habe ich mir immer den Debugger im Popup angeworfen.

Gruß Patrick

Nach oben