Ejemplo n.º 1
0
function smarty_function_getall($params, &$smarty)
{
    if (!isset($params['from'])) {
        echo 'No table name!';
        return false;
    }
    if (!isset($params['_name'])) {
        echo 'No record variable name!';
        return false;
    }
    global $php;
    $select = new SelectDB($php->db);
    $select->call_by = 'func';
    if (!isset($params['order'])) {
        $params['order'] = 'id desc';
    }
    $select->put($params);
    if (isset($params['page'])) {
        $select->paging();
        $pager = $select->pager;
        $smarty->assign("pager", array('total' => $pager->total, 'render' => $pager->render()));
    }
    $records = $select->getall();
    $smarty->_tpl_vars[$params['_name']] = $records;
}
Ejemplo n.º 2
0
 function getContent(&$attrs)
 {
     $select = new SelectDB($this->db);
     $select->call_by = 'smarty';
     if (isset($attrs['typeid'])) {
         $attrs['catid'] = $attrs['typeid'];
         unset($attrs['typeid']);
         if (is_numeric($attrs['typeid'])) {
             $cate = $this->swoole->createModel('Category');
             $category = $cate->get($attrs['fid']);
             $select->from(TABLE_PREFIX . '_' . $category['modelname']);
         } elseif (isset($attrs['app'])) {
             $app = $this->swoole->createModel('App');
             $app_config = $app->getConfig($attrs['app']);
             $select->from($app_config['tablename']);
             unset($attrs['app']);
         } else {
             Error::info('Tpl Error', 'Nested structure must have `app` param!');
         }
     } elseif (isset($attrs['app'])) {
         $app = $this->swoole->createModel('App');
         $app_config = $app->getConfig($attrs['app']);
         $select->from($app_config['tablename']);
         unset($attrs['app']);
     } else {
         Error::info('Param Error', 'Get content must have param `typeid` or `app` !');
     }
     if (array_key_exists('select', $attrs)) {
         $select->select = $attrs['select'];
     }
     if (array_key_exists('titlelen', $attrs)) {
         $titlelen = $attrs['titlelen'];
         unset($attrs['titlelen']);
         $select->select = str_replace('title', "substring( title, 1, {$titlelen} ) AS title,title as title_full", $attrs['select']);
     }
     $select->limit(isset($attrs['row']) ? $attrs['row'] : 10);
     unset($attrs['row']);
     $select->order(isset($attrs['order']) ? $attrs['order'] : 'id desc');
     unset($attrs['order']);
     unset($attrs['get'], $attrs['name'], $attrs['key'], $attrs['func']);
     $select->put($attrs);
     if (array_key_exists('page', $attrs)) {
         $select->paging();
         $php->env['start'] = 10 * intval($attrs['page'] / 10);
         if ($select->pages > 10 and $attrs['page'] < $start) {
             $php->env['more'] = 1;
         }
         $php->env['end'] = $select->pages - $php->env['start'];
         $php->env['end'] = $select->pages;
         $php->env['end'] = $select->page_size;
         $php->env['end'] = $select->num;
     }
     return $select->getsql();
 }
Ejemplo n.º 3
0
 /**
  * 获取一个数据列表,功能类似于gets,此方法仅用于SiaoCMS,不作为同样类库的方法
  * @param $params
  * @param $get
  * @return array
  */
 function getList(&$params, $get = 'data')
 {
     $selectdb = new SelectDB($this->db);
     $selectdb->from($this->table);
     $selectdb->select($this->select);
     $selectdb->limit(isset($params['row']) ? $params['row'] : 10);
     unset($params['row']);
     $selectdb->order(isset($params['order']) ? $params['order'] : $this->primary . ' desc');
     unset($params['order']);
     if (isset($params['typeid'])) {
         $selectdb->where($this->foreignkey . '=' . $params['typeid']);
         unset($params['typeid']);
     }
     $selectdb->put($params);
     if (array_key_exists('page', $params)) {
         $selectdb->paging();
         global $php;
         $php->env['page'] = $params['page'];
         $php->env['start'] = 10 * intval($params['page'] / 10);
         if ($selectdb->pages > 10 and $params['page'] < $php->env['start']) {
             $php->env['more'] = 1;
         }
         $php->env['end'] = $selectdb->pages - $php->env['start'];
         $php->env['pages'] = $selectdb->pages;
         $php->env['pagesize'] = $selectdb->page_size;
         $php->env['num'] = $selectdb->num;
     }
     if ($get === 'data') {
         return $selectdb->getall();
     } elseif ($get === 'sql') {
         return $selectdb->getsql();
     }
 }