HelloWorld.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 海豚PHP框架 [ DolphinPHP ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2016~2019 广东卓锐软件有限公司 [ http://www.zrthink.com ]
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://dolphinphp.com
  8. // +----------------------------------------------------------------------
  9. namespace plugins\HelloWorld;
  10. use app\common\controller\Plugin;
  11. /**
  12. * 演示插件
  13. * @package plugin\HelloWorld
  14. * @author 蔡伟明 <314013107@qq.com>
  15. */
  16. class HelloWorld extends Plugin
  17. {
  18. /**
  19. * @var array 插件信息
  20. */
  21. public $info = [
  22. // 插件名[必填]
  23. 'name' => 'HelloWorld',
  24. // 插件标题[必填]
  25. 'title' => '你好,世界',
  26. // 插件唯一标识[必填],格式:插件名.开发者标识.plugin
  27. 'identifier' => 'helloworld.ming.plugin',
  28. // 插件图标[选填]
  29. 'icon' => 'fa fa-fw fa-globe',
  30. // 插件描述[选填]
  31. 'description' => '这是一个演示插件,会在每个页面生成一个提示“Hello World”。您可以查看源码,里面包含了绝大部分插件所用到的方法,以及能做的事情。',
  32. // 插件作者[必填]
  33. 'author' => '蔡伟明',
  34. // 作者主页[选填]
  35. 'author_url' => 'http://www.dolphinphp.com',
  36. // 插件版本[必填],格式采用三段式:主版本号.次版本号.修订版本号
  37. 'version' => '1.0.0',
  38. // 是否有后台管理功能
  39. 'admin' => '1',
  40. ];
  41. /**
  42. * @var array 管理界面字段信息
  43. */
  44. public $admin = [
  45. 'title' => '后台列表', // 后台管理标题
  46. 'table_name' => 'plugin_hello', // 数据库表名,如果没有用到数据库,则留空
  47. 'order' => 'said,name', // 需要排序功能的字段,多个字段用逗号隔开
  48. 'filter' => '', // 需要筛选功能的字段,多个字段用逗号隔开
  49. 'search_title' => '', // 搜索框提示文字,一般不用填写
  50. 'search_field' => [ // 需要搜索的字段,如果需要搜索,则必填,否则不填
  51. 'said' => '名言',
  52. 'name' => '出处'
  53. ],
  54. 'search_url' => '', // 搜索框url链接,如:'user/index',一般不用填写
  55. // 后台列表字段
  56. 'columns' => [
  57. ['id', 'ID'],
  58. ['said', '名言'],
  59. ['name', '出处'],
  60. ['status', '状态', 'switch'],
  61. ['right_button', '操作', 'btn']
  62. ],
  63. // 右侧按钮
  64. 'right_buttons' => [
  65. 'edit', // 使用系统自带的编辑按钮
  66. 'enable', // 使用系统自带的启用按钮
  67. 'disable', // 使用系统自带的禁用按钮
  68. 'delete', // 使用系统自带的删除按钮
  69. // 自定义按钮,可定义多个
  70. 'customs' => [
  71. [
  72. 'title' => '自定义按钮1,新窗口打开',
  73. 'icon' => 'fa fa-list',
  74. 'href' => [
  75. 'url' => 'HelloWorld/Admin/testTable',
  76. ],
  77. 'target' => '_blank',
  78. ],
  79. // 自定义按钮并带有参数
  80. [
  81. 'title' => '自定义按钮2,自定义参数',
  82. 'icon' => 'fa fa-user',
  83. 'href' => [
  84. 'url' => 'HelloWorld/Admin/testForm',
  85. 'params' => [
  86. 'id' => '__id__',
  87. 'table' => '__table__',
  88. 'name' => 'molly',
  89. 'age' => 12
  90. ]
  91. ],
  92. ],
  93. [
  94. 'title' => '自定义页面',
  95. 'icon' => 'fa fa-file',
  96. 'href' => [
  97. 'url' => 'HelloWorld/Admin/testPage'
  98. ],
  99. ],
  100. ],
  101. ],
  102. // 顶部栏按钮
  103. 'top_buttons' => [
  104. 'add', // 使用系统自带的添加按钮
  105. 'enable', // 使用系统自带的启用按钮
  106. 'disable',// 使用系统自带的禁用按钮
  107. 'delete', // 使用系统自带的删除按钮
  108. // 自定义按钮,可定义多个
  109. 'customs' => [
  110. [
  111. 'title' => '<i class="fa fa-list"></i> 自定义按钮1',
  112. 'href' => [
  113. 'url' => 'HelloWorld/Admin/testTable',
  114. ],
  115. 'target' => '_blank',
  116. ],
  117. // 自定义按钮并带有参数
  118. [
  119. 'title' => '<i class="fa fa-user"></i> 自定义按钮2',
  120. 'href' => [
  121. 'url' => 'HelloWorld/Admin/testForm',
  122. 'params' => [
  123. 'name' => 'molly',
  124. 'age' => 12
  125. ]
  126. ],
  127. ],
  128. [
  129. 'title' => '<i class="fa fa-file"></i> 自定义页面',
  130. 'href' => [
  131. 'url' => 'HelloWorld/Admin/testPage'
  132. ],
  133. ],
  134. ],
  135. ],
  136. ];
  137. /**
  138. * @var array 新增或编辑的字段
  139. */
  140. public $fields = [
  141. [
  142. 'name' => 'name',
  143. 'title' => '出处',
  144. 'type' => 'text',
  145. 'value' => '',
  146. ],
  147. [
  148. 'name' => 'said',
  149. 'title' => '名言',
  150. 'type' => 'text',
  151. 'value' => '',
  152. 'tip' => '提示',
  153. ]
  154. ];
  155. /**
  156. * @var string 原数据库表前缀
  157. * 用于在导入插件sql时,将原有的表前缀转换成系统的表前缀
  158. * 一般插件自带sql文件时才需要配置
  159. */
  160. public $database_prefix = 'dolphin_';
  161. /**
  162. * @var array 插件钩子
  163. */
  164. public $hooks = [
  165. // 钩子名称 => 钩子说明
  166. // 如果是系统钩子,则钩子说明不用填写
  167. 'page_tips',
  168. 'my_hook' => '我的钩子',
  169. ];
  170. /**
  171. * page_tips钩子方法
  172. * @param $params
  173. * @author 蔡伟明 <314013107@qq.com>
  174. */
  175. public function pageTips($params)
  176. {
  177. echo '<div class="alert alert-success alert-dismissable">
  178. <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
  179. <p>Hello World</p>
  180. </div>';
  181. }
  182. /**
  183. * 安装方法必须实现
  184. * 一般只需返回true即可
  185. * 如果安装前有需要实现一些业务,可在此方法实现
  186. * @author 蔡伟明 <314013107@qq.com>
  187. * @return bool
  188. */
  189. public function install(){
  190. return true;
  191. }
  192. /**
  193. * 卸载方法必须实现
  194. * 一般只需返回true即可
  195. * 如果安装前有需要实现一些业务,可在此方法实现
  196. * @author 蔡伟明 <314013107@qq.com>
  197. * @return bool
  198. */
  199. public function uninstall(){
  200. return true;
  201. }
  202. }