* @license GNU General Public License 2.0
*/
class Widget_Metas_Category_Admin extends Widget_Metas_Category_List
{
/**
* 执行函数
*
* @access public
* @return void
*/
public function execute()
{
$select = $this->db->select('mid')->from('table.metas')->where('type = ?', 'category');
$select->where('parent = ?', $this->request->parent ? $this->request->parent : 0);
$this->stack = $this->getCategories(Typecho_Common::arrayFlatten(
$this->db->fetchAll($select->order('table.metas.order', Typecho_Db::SORT_ASC)), 'mid'));
}
/**
* 向上的返回链接
*
* @access public
* @return void
*/
public function backLink()
{
if (isset($this->request->parent)) {
$category = $this->db->fetchRow($this->select()
->where('type = ? AND mid = ?', 'category', $this->request->parent));
if (!empty($category)) {
$parent = $this->db->fetchRow($this->select()
->where('type = ? AND mid = ?', 'category', $category['parent']));
if ($parent) {
echo '';
} else {
echo '';
}
echo '« ';
_e('返回父级分类');
echo '';
}
}
}
/**
* 获取菜单标题
*
* @access public
* @return string
*/
public function getMenuTitle()
{
if (isset($this->request->parent)) {
$category = $this->db->fetchRow($this->select()
->where('type = ? AND mid = ?', 'category', $this->request->parent));
if (!empty($category)) {
return _t('管理 %s 的子分类', $category['name']);
}
} else {
return;
}
throw new Typecho_Widget_Exception(_t('分类不存在'), 404);
}
/**
* 获取菜单标题
*
* @access public
* @return string
*/
public function getAddLink()
{
if (isset($this->request->parent)) {
return 'category.php?parent=' . $this->request->filter('int')->parent;
} else {
return 'category.php';
}
}
}