<?php 
/** 
 * Smarty plugin 
 * @package Smarty 
 * @subpackage plugins 
 */ 
 
 
/** 
 * Smarty {popup} function plugin 
 * 
 * Type:     function<br> 
 * Name:     popup<br> 
 * Purpose:  make text pop up in windows via overlib 
 * @link http://smarty.php.net/manual/en/language.function.popup.php {popup} 
 *          (Smarty online manual) 
 * @author   Monte Ohrt <monte at ohrt dot com> 
 * @param array 
 * @param Smarty 
 * @return string 
 */ 
function smarty_function_popup($params, &$smarty) 
{ 
    $append = ''; 
    foreach ($params as $_key=>$_value) { 
        switch ($_key) { 
            case 'text': 
            case 'trigger': 
            case 'function': 
            case 'inarray': 
                $$_key = (string)$_value; 
                if ($_key == 'function' || $_key == 'inarray') 
                    $append .= ',' . strtoupper($_key) . ",'$_value'"; 
                break; 
 
            case 'caption': 
            case 'closetext': 
            case 'status': 
                $append .= ',' . strtoupper($_key) . ",'" . str_replace("'","\'",$_value) . "'"; 
                break; 
 
            case 'fgcolor': 
            case 'bgcolor': 
            case 'textcolor': 
            case 'capcolor': 
            case 'closecolor': 
            case 'textfont': 
            case 'captionfont': 
            case 'closefont': 
            case 'fgbackground': 
            case 'bgbackground': 
            case 'caparray': 
            case 'capicon': 
            case 'background': 
            case 'frame': 
                $append .= ',' . strtoupper($_key) . ",'$_value'"; 
                break; 
 
            case 'textsize': 
            case 'captionsize': 
            case 'closesize': 
            case 'width': 
            case 'height': 
            case 'border': 
            case 'offsetx': 
            case 'offsety': 
            case 'snapx': 
            case 'snapy': 
            case 'fixx': 
            case 'fixy': 
            case 'padx': 
            case 'pady': 
            case 'timeout': 
            case 'delay': 
                $append .= ',' . strtoupper($_key) . ",$_value"; 
                break; 
 
            case 'sticky': 
            case 'left': 
            case 'right': 
            case 'center': 
            case 'above': 
            case 'below': 
            case 'noclose': 
            case 'autostatus': 
            case 'autostatuscap': 
            case 'fullhtml': 
            case 'hauto': 
            case 'vauto': 
            case 'mouseoff': 
            case 'followmouse': 
            case 'closeclick': 
                if ($_value) $append .= ',' . strtoupper($_key); 
                break; 
 
            default: 
                $smarty->trigger_error("[popup] unknown parameter $_key", E_USER_WARNING); 
        } 
    } 
 
    if (empty($text) && !isset($inarray) && empty($function)) { 
        $smarty->trigger_error("overlib: attribute 'text' or 'inarray' or 'function' required"); 
        return false; 
    } 
 
    if (empty($trigger)) { $trigger = "onmouseover"; } 
 
    $retval = $trigger . '="return overlib(\''.preg_replace(array("!'!","![\r\n]!"),array("\'",'\r'),$text).'\''; 
    $retval .= $append . ');"'; 
    if ($trigger == 'onmouseover') 
       $retval .= ' onmouseout="nd();"'; 
 
 
    return $retval; 
} 
 
/* vim: set expandtab: */ 
 
?> 
 
 |