cms_article.model.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * cms文章模型
  4. *
  5. *
  6. *
  7. *
  8. */
  9. defined('InShopNC') or exit('Access Invalid!');
  10. class cms_articleModel extends Model{
  11. public function __construct(){
  12. parent::__construct('cms_article');
  13. }
  14. /**
  15. * 读取列表
  16. * @param array $condition
  17. *
  18. */
  19. public function getList($condition, $page=null, $order='', $field='*', $limit=''){
  20. $result = $this->table('cms_article')->field($field)->where($condition)->page($page)->order($order)->limit($limit)->select();
  21. $this->cls();
  22. return $result;
  23. }
  24. /**
  25. * 文章数量
  26. * @param array $condition
  27. * @return int
  28. */
  29. public function getCmsArticleCount($condition) {
  30. return $this->where($condition)->count();
  31. }
  32. /**
  33. * 读取列表和分类名称
  34. *
  35. */
  36. public function getListWithClassName($condition, $page=null, $order='', $field='*', $limit=''){
  37. $on = 'cms_article.article_class_id = cms_article_class.class_id';
  38. $result = $this->table('cms_article,cms_article_class')->field($field)->join('left')->on($on)->where($condition)->page($page)->order($order)->limit($limit)->select();
  39. $this->cls();
  40. return $result;
  41. }
  42. /**
  43. * 根据tag编号查询
  44. */
  45. public function getListByTagID($condition, $page=null, $order='', $field='*', $limit=''){
  46. $condition['relation_type'] = 1;
  47. $on = 'cms_article.article_id = cms_tag_relation.relation_object_id';
  48. $result = $this->table('cms_article,cms_tag_relation')->field($field)->join('left')->on($on)->where($condition)->page($page)->order($order)->limit($limit)->select();
  49. $this->cls();
  50. return $result;
  51. }
  52. /**
  53. * 读取单条记录
  54. * @param array $condition
  55. *
  56. */
  57. public function getOne($condition,$order=''){
  58. $result = $this->table('cms_article')->where($condition)->order($order)->find();
  59. return $result;
  60. }
  61. /*
  62. * 判断是否存在
  63. * @param array $condition
  64. *
  65. */
  66. public function isExist($condition) {
  67. $result = $this->table('cms_article')->getOne($condition);
  68. if(empty($result)) {
  69. return FALSE;
  70. }
  71. else {
  72. return TRUE;
  73. }
  74. }
  75. /*
  76. * 增加
  77. * @param array $param
  78. * @return bool
  79. */
  80. public function save($param){
  81. return $this->table('cms_article')->insert($param);
  82. }
  83. /*
  84. * 更新
  85. * @param array $update
  86. * @param array $condition
  87. * @return bool
  88. */
  89. public function modify($update, $condition){
  90. return $this->table('cms_article')->where($condition)->update($update);
  91. }
  92. /*
  93. * 删除
  94. * @param array $condition
  95. * @return bool
  96. */
  97. public function drop($condition){
  98. $this->drop_article_image($condition);
  99. return $this->table('cms_article')->where($condition)->delete();
  100. }
  101. /**
  102. * 删除文章图片
  103. */
  104. private function drop_article_image($condition) {
  105. $article_list = self::getList($condition);
  106. if(!empty($article_list) && is_array($article_list)) {
  107. foreach ($article_list as $article) {
  108. if(!empty($article['article_image_all'])) {
  109. $attachment_path = $article['article_attachment_path'];
  110. $article_image_array = unserialize($article['article_image_all']);
  111. if(!empty($article_image_array) && is_array($article_image_array)) {
  112. foreach ($article_image_array as $key=>$value) {
  113. list($base_name, $ext) = explode('.', $key);
  114. $image = BASE_UPLOAD_PATH.DS.ATTACH_CMS.DS.'article'.DS.$attachment_path.DS.$key;
  115. $image_list = BASE_UPLOAD_PATH.DS.ATTACH_CMS.DS.'article'.DS.$attachment_path.DS.$base_name.'_list.'.$ext;
  116. $image_max = BASE_UPLOAD_PATH.DS.ATTACH_CMS.DS.'article'.DS.$attachment_path.DS.$base_name.'_max.'.$ext;
  117. if(is_file($image)) {
  118. @unlink($image);
  119. }
  120. if(is_file($image_list)) {
  121. @unlink($image_list);
  122. }
  123. if(is_file($image_max)) {
  124. @unlink($image_max);
  125. }
  126. }
  127. }
  128. }
  129. }
  130. }
  131. }
  132. }