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; }
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(); }
/** * 获取一个数据列表,功能类似于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(); } }