Example #1
0
function smarty_function_popup($params, &$gBitSmarty)
{
    $append = '';
    foreach ($params as $_key => $_value) {
        switch ($_key) {
            case 'target':
            case 'text':
            case 'trigger':
            case 'content_id':
                ${$_key} = (string) $_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 'textsize':
            case 'captionsize':
            case 'closesize':
            case 'width':
            case 'height':
            case 'border':
            case 'offsetx':
            case 'offsety':
            case 'fgbackground':
            case 'bgbackground':
            case 'inarray':
            case 'caparray':
            case 'capicon':
            case 'snapx':
            case 'snapy':
            case 'fixx':
            case 'fixy':
            case 'background':
            case 'padx':
            case 'pady':
            case 'frame':
            case 'timeout':
            case 'delay':
            case 'function':
                $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':
                if ($_value) {
                    $append .= ',' . strtoupper($_key);
                }
                break;
            case 'closeclick':
                if ($_value) {
                    $append .= ',' . strtoupper($_key);
                }
                if ($_value) {
                    $target_append = $_key . '=1';
                }
                break;
            default:
                $gBitSmarty->trigger_error("[popup] unknown parameter {$_key}", E_USER_WARNING);
        }
    }
    if (empty($target) && empty($text) && empty($content_id) && !isset($inarray) && empty($function)) {
        $gBitSmarty->trigger_error("overlib: attribute 'target' or 'text' or 'inarray' or 'function' required");
        return false;
    }
    if (!empty($target) && !empty($text) || !empty($target) && !empty($content_id) || !empty($text) && !empty($content_id)) {
        $gBitSmarty->trigger_error("overlib: You may only specify one of 'target', 'text' and 'content_id'..");
    }
    if (empty($trigger)) {
        $trigger = "onmouseover";
    }
    if (!empty($content_id)) {
        $target = LibertyContent::getPreviewUrl($content_id);
    }
    if (!empty($target) && !empty($target_append)) {
        if (strstr($target, "?")) {
            $target .= "&" . $target_append;
        } else {
            $target .= "?" . $target_append;
        }
    }
    if (!empty($text)) {
        $retval = $trigger . '="return overlib(\'' . preg_replace(array("!'!", "![\r\n]!"), array("\\'", '\\r'), $text) . '\'';
        $retval .= $append . ');" onmouseout="nd();"';
    } else {
        $retval = $trigger . '="of=function(t){overlib(t' . $append . ');};BitAjax.getAndCall(this,of,\'' . $target . '\');" onmouseout="nd();"';
    }
    return $retval;
}