summaryrefslogtreecommitdiff
path: root/plugins/Links/Action.php
diff options
context:
space:
mode:
author阔落 <45323514+BigCoke233@users.noreply.github.com>2019-03-24 18:02:47 +0800
committerGitHub <noreply@github.com>2019-03-24 18:02:47 +0800
commit4353a0f3f12ca253285e3edf9f2206e526f112ce (patch)
treeefd983701eeba6622028563048927aa848d239e8 /plugins/Links/Action.php
parent107e63005d013dd3caea541c921dcf8be415014e (diff)
Add files via upload
Diffstat (limited to 'plugins/Links/Action.php')
-rw-r--r--plugins/Links/Action.php119
1 files changed, 119 insertions, 0 deletions
diff --git a/plugins/Links/Action.php b/plugins/Links/Action.php
new file mode 100644
index 0000000..34e5ec1
--- /dev/null
+++ b/plugins/Links/Action.php
@@ -0,0 +1,119 @@
+<?php
+class Links_Action extends Typecho_Widget implements Widget_Interface_Do
+{
+ private $db;
+ private $options;
+ private $prefix;
+
+ public function insertLink()
+ {
+ if (Links_Plugin::form('insert')->validate()) {
+ $this->response->goBack();
+ }
+ /** 取出数据 */
+ $link = $this->request->from('name', 'url', 'sort', 'image', 'description', 'user');
+ $link['order'] = $this->db->fetchObject($this->db->select(array('MAX(order)' => 'maxOrder'))->from($this->prefix.'links'))->maxOrder + 1;
+
+ /** 插入数据 */
+ $link['lid'] = $this->db->query($this->db->insert($this->prefix.'links')->rows($link));
+
+ /** 设置高亮 */
+ $this->widget('Widget_Notice')->highlight('link-'.$link['lid']);
+
+ /** 提示信息 */
+ $this->widget('Widget_Notice')->set(_t('链接 <a href="%s">%s</a> 已经被增加',
+ $link['url'], $link['name']), NULL, 'success');
+
+ /** 转向原页 */
+ $this->response->redirect(Typecho_Common::url('extending.php?panel=Links%2Fmanage-links.php', $this->options->adminUrl));
+ }
+
+ public function addHannysBlog()
+ {
+ /** 取出数据 */
+ $link = array(
+ 'name' => "Hanny's Blog",
+ 'url' => "http://www.imhan.com",
+ 'description' => "寒泥 - Typecho插件开发者",
+ );
+ $link['order'] = $this->db->fetchObject($this->db->select(array('MAX(order)' => 'maxOrder'))->from($this->prefix.'links'))->maxOrder + 1;
+
+ /** 插入数据 */
+ $link['lid'] = $this->db->query($this->db->insert($this->prefix.'links')->rows($link));
+
+ /** 设置高亮 */
+ $this->widget('Widget_Notice')->highlight('link-'.$link['lid']);
+
+ /** 提示信息 */
+ $this->widget('Widget_Notice')->set(_t('链接 <a href="%s">%s</a> 已经被增加',
+ $link['url'], $link['name']), NULL, 'success');
+
+ /** 转向原页 */
+ $this->response->redirect(Typecho_Common::url('extending.php?panel=Links%2Fmanage-links.php', $this->options->adminUrl));
+ }
+
+ public function updateLink()
+ {
+ if (Links_Plugin::form('update')->validate()) {
+ $this->response->goBack();
+ }
+
+ /** 取出数据 */
+ $link = $this->request->from('lid', 'name', 'sort', 'image', 'url', 'description', 'user');
+
+ /** 更新数据 */
+ $this->db->query($this->db->update($this->prefix.'links')->rows($link)->where('lid = ?', $link['lid']));
+
+ /** 设置高亮 */
+ $this->widget('Widget_Notice')->highlight('link-'.$link['lid']);
+
+ /** 提示信息 */
+ $this->widget('Widget_Notice')->set(_t('链接 <a href="%s">%s</a> 已经被更新',
+ $link['url'], $link['name']), NULL, 'success');
+
+ /** 转向原页 */
+ $this->response->redirect(Typecho_Common::url('extending.php?panel=Links%2Fmanage-links.php', $this->options->adminUrl));
+ }
+
+ public function deleteLink()
+ {
+ $lids = $this->request->filter('int')->getArray('lid');
+ $deleteCount = 0;
+ if ($lids && is_array($lids)) {
+ foreach ($lids as $lid) {
+ if ($this->db->query($this->db->delete($this->prefix.'links')->where('lid = ?', $lid))) {
+ $deleteCount ++;
+ }
+ }
+ }
+ /** 提示信息 */
+ $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('链接已经删除') : _t('没有链接被删除'), NULL,
+ $deleteCount > 0 ? 'success' : 'notice');
+
+ /** 转向原页 */
+ $this->response->redirect(Typecho_Common::url('extending.php?panel=Links%2Fmanage-links.php', $this->options->adminUrl));
+ }
+
+ public function sortLink()
+ {
+ $links = $this->request->filter('int')->getArray('lid');
+ if ($links && is_array($links)) {
+ foreach ($links as $sort => $lid) {
+ $this->db->query($this->db->update($this->prefix.'links')->rows(array('order' => $sort + 1))->where('lid = ?', $lid));
+ }
+ }
+ }
+
+ public function action()
+ {
+ $this->db = Typecho_Db::get();
+ $this->prefix = $this->db->getPrefix();
+ $this->options = Typecho_Widget::widget('Widget_Options');
+ $this->on($this->request->is('do=insert'))->insertLink();
+ $this->on($this->request->is('do=addhanny'))->addHannysBlog();
+ $this->on($this->request->is('do=update'))->updateLink();
+ $this->on($this->request->is('do=delete'))->deleteLink();
+ $this->on($this->request->is('do=sort'))->sortLink();
+ $this->response->redirect($this->options->adminUrl);
+ }
+}