-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcategory_model.php
139 lines (123 loc) · 3.95 KB
/
category_model.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?php
class Category_model extends CI_Model
{
function __construct()
{
parent::__construct();
$this->load->database("default");
}
/////// ----------------------- Categories ----------------------------- ////////
function getParentCategories($category_id = "",$select = "",$status = "")
{
$where = "";
if(is_array($category_id))
{
$where = " AND categories.category_id IN ('".implode("','",$category_id)."')";
}
else if($category_id)
{
$where = " AND categories.category_id = '".$category_id."'";
}
if($select == "")
{
$select = "categories.*, users1.admin_id as userid1, users2.admin_id as userid2, users1.admin_name as name1, users2.admin_name as name2";
}
if($status != "")
{
$where .= " AND categories.display_status = '".$status."'";
}
$sql = "SELECT ".$select."
FROM ".DBPREFIX."_categories as categories
LEFT JOIN ".DBPREFIX."_backend_users as users1 ON categories.created_id = users1.admin_id
LEFT JOIN ".DBPREFIX."_backend_users as users2 ON categories.updated_id = users2.admin_id
WHERE parent_category_id = '0' AND deleted_id is NULL ".$where;
$result = $this->db->query($sql);
if($result && $result->num_rows()>0)
{
return $result->result_array();
}
}
function insertCategory($data)
{
if(!(isset($data[0])))$data[0] = $data;
$this->db->insert_batch(DBPREFIX."_categories", $data);
return TRUE;
}
function deleteCategory($category_id)
{
$arr = array('category_id' => $category_id);
// $arr1 = array('parent_category_id' => $category_id);
$this->db->where($arr);
// $this->db->or_where($arr1);
$this->db->delete(DBPREFIX."_categories", $arr);
// $this->db->delete(DBPREFIX."_categories", $arr1);
// echo "update".$product_id;print_r($data);die;
return TRUE;
}
/**
* this function is common for categories and subcategories
* @param undefined $category_id
* @param undefined $data
*
*/
function updateCategory($category_id,$data)
{
if(!(isset($data[0])))$data[0] = $data;
$arr = array('category_id' => $category_id);
$this->db->where($arr);
$this->db->update(DBPREFIX."_categories", $data[0]);
// echo "update".$category_id;print_r($data);die;
return TRUE;
}
/////// ----------------------- Sub Categories ----------------------------- ////////
function getChildCategories($subcategory_id = "",$parentcategory_id = "",$status = "")
{
$where = "";
if($subcategory_id)
{
$where = " AND c1.category_id = '".$subcategory_id."'";
}
else if(is_array($subcategory_id))
{
$where = " AND c1.category_id IN ('".implode("','",$subcategory_id)."')";
}
if($parentcategory_id)
{
$where = " AND c1.parent_category_id = '".$parentcategory_id."'";
}
else if(is_array($parentcategory_id))
{
$where = " AND c1.parent_category_id IN ('".implode("','",$parentcategory_id)."')";
}
if($status != "")
{
$where .= " AND c1.display_status = '".$status."'";
}
$sql = "SELECT c1.*, users1.admin_id as userid1, users2.admin_id as userid2, users1.admin_name as name1, users2.admin_name as name2
FROM ".DBPREFIX."_categories as c1
LEFT JOIN ".DBPREFIX."_backend_users as users1
ON c1.created_id = users1.admin_id
LEFT JOIN ".DBPREFIX."_backend_users as users2
ON c1.updated_id = users2.admin_id
WHERE c1.parent_category_id != '0' AND c1.deleted_id is NULL".$where;
$result = $this->db->query($sql);
if($result && $result->num_rows()>0)
{
$categoryData = $result->result_array();
$parentCategories = array();
foreach($categoryData as $key=>$category)
{
$parentCategories = $this->getParentCategories(explode(",",$category['parent_category_id']),"categories.category_name");
$arrParent = array();
foreach($parentCategories as $parents)
{
$arrParent[] = $parents["category_name"];
}
$categoryData[$key]['category_parent'] = implode(", ",$arrParent);
}
// echo "<pre>";print_r($categoryData);die;
return $categoryData;
}
}
}
?>