Esempio n. 1
0
function smarty_block_app($params, $body, &$smarty)
{
    if (empty($body)) {
        return;
    }
    if (array_key_exists('model', $params)) {
        $model = $params['model'];
        unset($params['model']);
    } else {
        $model = 'news';
    }
    if (array_key_exists('func', $params)) {
        $func = $params['func'];
        unset($params['func']);
    } else {
        $func = 'getList';
    }
    $fields = implode(',', SwooleTemplate::get_fields($body));
    global $php;
    $php->createModel($model);
    if (array_key_exists('titlelen', $params)) {
        $titlelen = $params['titlelen'];
        unset($params['titlelen']);
        $php->model->{$model}->select = str_replace('title', "substring( title, 1, {$titlelen} ) AS title", $fields);
    } else {
        $php->model->{$model}->select = $fields;
    }
    $data = call_user_func(array($php->model->{$model}, $func), $params);
    //var_dump($data);
    return SwooleTemplate::parse_loop($data, $body, $fields);
}
function smarty_block_app($params, $body, &$smarty)
{
    if (empty($body)) {
        return;
    }
    global $php;
    $app = $php->createModel('App');
    if (array_key_exists('name', $params)) {
        $app_config = $app->getConfig($params['name']);
        $app_instance = $app->getInstance();
        unset($params['name']);
    } elseif (array_key_exists('typeid', $params)) {
        $cate = $php->createModel('Category');
        $category = $cate->get($params['typeid']);
        $app_config = $app->getConfig($category['modelname']);
        $app_instance = $app->getInstance();
    } else {
        return;
    }
    if (array_key_exists('func', $params)) {
        $func = $params['func'];
        unset($params['func']);
    } else {
        $func = 'getList';
    }
    $stpl = new SwooleTemplate($php->db);
    $fields = implode(',', $stpl->get_fields($body));
    if (empty($fields)) {
        return;
    }
    if (array_key_exists('titlelen', $params)) {
        $titlelen = $params['titlelen'];
        unset($params['titlelen']);
        $app_instance->select = str_replace('title', "substring( title, 1, {$titlelen} ) AS title,title as title_full", $fields);
    }
    if (strpos($fields, 'url') === false) {
        $fields .= ',url';
    }
    $app_instance->select = $fields;
    $data = call_user_func(array($app_instance, $func), $params);
    return $stpl->parse_loop($data, $body, $fields);
}