CategoryModel.class.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace Common\Model;
  3. class CategoryModel extends \Think\Model
  4. {
  5. protected $_validate = array(
  6. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'name', 'un-handled kind in zend_ast' => 'require', 'un-handled kind in zend_ast' => '标识不能为空', 'un-handled kind in zend_ast' => self::EXISTS_VALIDATE, 'un-handled kind in zend_ast' => 'regex', 'un-handled kind in zend_ast' => self::MODEL_BOTH),
  7. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'name', 'un-handled kind in zend_ast' => '', 'un-handled kind in zend_ast' => '标识已经存在', 'un-handled kind in zend_ast' => self::VALUE_VALIDATE, 'un-handled kind in zend_ast' => 'unique', 'un-handled kind in zend_ast' => self::MODEL_BOTH),
  8. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'title', 'un-handled kind in zend_ast' => 'require', 'un-handled kind in zend_ast' => '名称不能为空', 'un-handled kind in zend_ast' => self::MUST_VALIDATE, 'un-handled kind in zend_ast' => 'regex', 'un-handled kind in zend_ast' => self::MODEL_BOTH),
  9. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'meta_title', 'un-handled kind in zend_ast' => '1,50', 'un-handled kind in zend_ast' => '网页标题不能超过50个字符', 'un-handled kind in zend_ast' => self::VALUE_VALIDATE, 'un-handled kind in zend_ast' => 'length', 'un-handled kind in zend_ast' => self::MODEL_BOTH),
  10. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'keywords', 'un-handled kind in zend_ast' => '1,255', 'un-handled kind in zend_ast' => '网页关键字不能超过255个字符', 'un-handled kind in zend_ast' => self::VALUE_VALIDATE, 'un-handled kind in zend_ast' => 'length', 'un-handled kind in zend_ast' => self::MODEL_BOTH),
  11. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'meta_title', 'un-handled kind in zend_ast' => '1,255', 'un-handled kind in zend_ast' => '网页描述不能超过255个字符', 'un-handled kind in zend_ast' => self::VALUE_VALIDATE, 'un-handled kind in zend_ast' => 'length', 'un-handled kind in zend_ast' => self::MODEL_BOTH)
  12. );
  13. protected $_auto = array(
  14. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'model', 'un-handled kind in zend_ast' => 'arr2str', 'un-handled kind in zend_ast' => self::MODEL_BOTH, 'un-handled kind in zend_ast' => 'function'),
  15. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'model', 'un-handled kind in zend_ast' => NULL, 'un-handled kind in zend_ast' => self::MODEL_BOTH, 'un-handled kind in zend_ast' => 'ignore'),
  16. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'type', 'un-handled kind in zend_ast' => 'arr2str', 'un-handled kind in zend_ast' => self::MODEL_BOTH, 'un-handled kind in zend_ast' => 'function'),
  17. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'type', 'un-handled kind in zend_ast' => NULL, 'un-handled kind in zend_ast' => self::MODEL_BOTH, 'un-handled kind in zend_ast' => 'ignore'),
  18. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'reply_model', 'un-handled kind in zend_ast' => 'arr2str', 'un-handled kind in zend_ast' => self::MODEL_BOTH, 'un-handled kind in zend_ast' => 'function'),
  19. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'reply_model', 'un-handled kind in zend_ast' => NULL, 'un-handled kind in zend_ast' => self::MODEL_BOTH, 'un-handled kind in zend_ast' => 'ignore'),
  20. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'extend', 'un-handled kind in zend_ast' => 'json_encode', 'un-handled kind in zend_ast' => self::MODEL_BOTH, 'un-handled kind in zend_ast' => 'function'),
  21. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'extend', 'un-handled kind in zend_ast' => NULL, 'un-handled kind in zend_ast' => self::MODEL_BOTH, 'un-handled kind in zend_ast' => 'ignore'),
  22. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'create_time', 'un-handled kind in zend_ast' => NOW_TIME, 'un-handled kind in zend_ast' => self::MODEL_INSERT),
  23. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'update_time', 'un-handled kind in zend_ast' => NOW_TIME, 'un-handled kind in zend_ast' => self::MODEL_BOTH),
  24. 'un-handled kind in zend_ast' => array('un-handled kind in zend_ast' => 'status', 'un-handled kind in zend_ast' => '1', 'un-handled kind in zend_ast' => self::MODEL_BOTH)
  25. );
  26. public function info($id, $field = true)
  27. {
  28. $map = array();
  29. if (is_numeric($id)) {
  30. $map['id'] = $id;
  31. }
  32. else {
  33. $map['name'] = $id;
  34. }
  35. return $this->field($field)->where($map)->find();
  36. }
  37. public function getTree($id = 0, $field = true)
  38. {
  39. if ($id) {
  40. $info = $this->info($id);
  41. $id = $info['id'];
  42. }
  43. $map = array(
  44. 'status' => array('gt', -1)
  45. );
  46. $list = $this->field($field)->where($map)->order('sort')->select();
  47. $list = list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_', $root = $id);
  48. if (isset($info)) {
  49. $info['_'] = $list;
  50. }
  51. else {
  52. $info = $list;
  53. }
  54. return $info;
  55. }
  56. public function getSameLevel($id, $field = true)
  57. {
  58. $info = $this->info($id, 'pid');
  59. $map = array('pid' => $info['pid'], 'status' => 1);
  60. return $this->field($field)->where($map)->order('sort')->select();
  61. }
  62. public function update()
  63. {
  64. $data = $this->create();
  65. if (!$data) {
  66. return false;
  67. }
  68. if (empty($data['id'])) {
  69. $res = $this->add();
  70. }
  71. else {
  72. $res = $this->save();
  73. }
  74. S('sys_category_list', null);
  75. action_log('update_category', 'category', $data['id'] ? $data['id'] : $res, UID);
  76. return $res;
  77. }
  78. protected function _after_find(&$data, $options)
  79. {
  80. if (!empty($data['model'])) {
  81. $data['model'] = explode(',', $data['model']);
  82. }
  83. if (!empty($data['type'])) {
  84. $data['type'] = explode(',', $data['type']);
  85. }
  86. if (!empty($data['reply_model'])) {
  87. $data['reply_model'] = explode(',', $data['reply_model']);
  88. }
  89. if (!empty($data['reply_type'])) {
  90. $data['reply_type'] = explode(',', $data['reply_type']);
  91. }
  92. if (!empty($data['extend'])) {
  93. $data['extend'] = json_decode($data['extend'], true);
  94. }
  95. }
  96. }
  97. ?>