Exemplo n.º 1
0
function smarty_block_tnt_box($params, $content, &$smarty)
{
    if (!$content) {
        return null;
    }
    extract($params);
    TNT_RequireClass('TNTBox');
    if (empty($type)) {
        $type = $GLOBALS['tnt']['theme']->WidgetClass('TNTBox');
    }
    if (!class_exists($type)) {
        $smarty->trigger_error("tnt_box: unknown box type '{$type}'");
        return null;
    }
    $box =& new $type();
    $attrs = $params;
    unset($attrs['type']);
    unset($attrs['assign']);
    $box->SetMembers($attrs, true);
    $box->Build();
    $box->content = $content;
    $content = $box->Render();
    if (!empty($assign)) {
        $smarty->assign($assign, $content);
        return null;
    }
    return $content;
}
function smarty_function_tnt_ratings_image($params, &$smarty)
{
    _TNT_Smarty_Valid($smarty);
    if (empty($params['rating'])) {
        $smarty->trigger_error("tnt_ratings: missing 'rating' parameter");
        return;
    }
    TNT_RequireClass('TNTRatings');
    $ratings =& new TNTRatings(' ', 1);
    if ($ratings->Enabled()) {
        $image = $ratings->Image($params['rating']);
    } else {
        $image = '';
    }
    if (!empty($params['assign'])) {
        $smarty->assign_by_ref($params['assign'], $image);
        return '';
    }
    return $image;
}
function smarty_function_tnt_ratings($params, &$smarty)
{
    _TNT_Smarty_Valid($smarty);
    if (empty($params['objtype'])) {
        $smarty->trigger_error("tnt_ratings: missing 'objtype' parameter");
        return;
    }
    if (empty($params['objid'])) {
        $smarty->trigger_error("tnt_ratings: missing 'objid' parameter");
        return;
    }
    TNT_RequireClass('TNTRatings');
    $ratings =& new TNTRatings($params['objtype'], $params['objid']);
    $tpl['objtype'] = $ratings->objtype;
    $tpl['objid'] = $ratings->objid;
    $tpl['enabled'] = false;
    $tpl['stats'] = null;
    $tpl['images'] = null;
    $tpl['range'] = null;
    $tpl['action'] = null;
    if ($ratings->Enabled()) {
        $tpl['enabled'] = true;
        $tpl['stats'] = $ratings->Stats();
        $tpl['images'] = $ratings->Images();
        $tpl['range'] = $ratings->Range();
        if (!empty($params['rater'])) {
            $tpl['action'] = $ratings->Action($params['rater']);
        } else {
            $tpl['action'] = null;
        }
        foreach (array('min', 'avg', 'max') as $var) {
            $val = $var['stats'][$var];
            $tpl[$var] = array('value' => $val, 'image' => '/synergy/' . $ratings->Image($val));
        }
    }
    TNT_Debug('ratings=', $tpl);
    $assign = !empty($params['assign']) ? $params['assign'] : '_ratings';
    $smarty->assign_by_ref($assign, $tpl);
    return '';
}
function smarty_function_tnt_render($params, &$smarty)
{
    extract($params);
    if (empty($widget)) {
        $smarty->trigger_error("tnt_render: missing 'widget' parameter");
        return;
    }
    // The widget can either be the name of a global object or the name of
    // a template variable. We will check for a global object first
    if (TNTObject1::Object($widget)) {
        $widget =& TNTObject1::Object($widget);
    } else {
        if (isset($smarty->_tpl_vars[$widget])) {
            $widget =& $smarty->_tpl_vars[$widget];
        }
    }
    if (!$widget) {
        $smarty->trigger_error('tnt_render: there is no object with the id or template variable with the name: ' . $widget);
        return;
    }
    if (!is_a($widget, 'tntwidget')) {
        $smarty->trigger_error("tnt_render: 'widget' parameter is not a TNTWidget derived object");
        return;
    }
    $attrs = $params;
    unset($attrs['widget']);
    unset($attrs['assign']);
    $widget->SetMembers($attrs, true);
    TNT_RequireClass('TNTWidget');
    $content = $widget->Render();
    if (!empty($assign)) {
        $smarty->assign($assign, $content);
        return;
    }
    return $content;
}
function smarty_block_tnt_widget($params, $content, &$smarty)
{
    if (!$content) {
        return null;
    }
    $driver_data = $params;
    unset($driver_data['ctl_class']);
    extract($params);
    if (empty($class)) {
        $class = 'TNTSmartList';
    }
    TNT_RequireClass($class);
    $widget =& new $class();
    if (!$widget->Construct($content)) {
        TNT_Debug('smarty_block_tnt_widget - failed to load widget: ' . $class);
        return false;
    }
    $content = $widget->Render();
    if (!empty($assign)) {
        $smarty->assign($assign, $content);
        return null;
    }
    return $content;
}