01.
public
function
addCategory(
$data
) {
02.
$this
->db->query(
"INSERT INTO "
. DB_PREFIX .
"category SET parent_id = '"
. (int)
$data
['parent_id
'] . "'
, `top` =
'" . (isset($data['
top
']) ? (int)$data['
top
'] : 0) . "'
, `column` =
'" . (int)$data['
column
'] . "'
, sort_order =
'" . (int)$data['
sort_order
'] . "'
, status =
'" . (int)$data['
status
'] . "'
, date_modified = NOW(), date_added = NOW()");
03.
04.
$category_id
=
$this
->db->getLastId();
05.
06.
if
(isset(
$data
[
'image'
])) {
07.
$this
->db->query(
"UPDATE "
. DB_PREFIX .
"category SET image = '"
.
$this
->db->escape(html_entity_decode(
$data
['image
'], ENT_QUOTES, '
UTF-8
')) . "'
WHERE category_id =
'" . (int)$category_id . "'
");
08.
}
09.
10.
foreach
(
$data
[
'category_description'
]
as
$language_id
=>
$value
) {
11.
$this
->db->query(
"INSERT INTO "
. DB_PREFIX .
"category_description SET category_id = '"
. (int)
$category_id
.
"', language_id = '"
. (int)
$language_id
.
"', name = '"
.
$this
->db->escape(
$value
['name
']) . "'
, meta_keyword =
'" . $this->db->escape($value['
meta_keyword
']) . "'
, meta_description =
'" . $this->db->escape($value['
meta_description
']) . "'
, description =
'" . $this->db->escape($value['
description
']) . "'
");
12.
}
13.
14.
15.
$level
= 0;
16.
17.
$query
=
$this
->db->query(
"SELECT * FROM `"
. DB_PREFIX .
"category_path` WHERE category_id = '"
. (int)
$data
['parent_id
'] . "'
ORDER BY `level` ASC");
18.
19.
foreach
(
$query
->rows
as
$result
) {
20.
$this
->db->query(
"INSERT INTO `"
. DB_PREFIX .
"category_path` SET `category_id` = '"
. (int)
$category_id
.
"', `path_id` = '"
. (int)
$result
['path_id
'] . "'
, `level` =
'" . (int)$level . "'
");
21.
22.
$level
++;
23.
}
24.
25.
$this
->db->query(
"INSERT INTO `"
. DB_PREFIX .
"category_path` SET `category_id` = '"
. (int)
$category_id
.
"', `path_id` = '"
. (int)
$category_id
.
"', `level` = '"
. (int)
$level
.
"'"
);
26.
27.
if
(isset(
$data
[
'category_filter'
])) {
28.
foreach
(
$data
[
'category_filter'
]
as
$filter_id
) {
29.
$this
->db->query(
"INSERT INTO "
. DB_PREFIX .
"category_filter SET category_id = '"
. (int)
$category_id
.
"', filter_id = '"
. (int)
$filter_id
.
"'"
);
30.
}
31.
}
32.
33.
if
(isset(
$data
[
'category_store'
])) {
34.
foreach
(
$data
[
'category_store'
]
as
$store_id
) {
35.
$this
->db->query(
"INSERT INTO "
. DB_PREFIX .
"category_to_store SET category_id = '"
. (int)
$category_id
.
"', store_id = '"
. (int)
$store_id
.
"'"
);
36.
}
37.
}
38.
39.
40.
if
(isset(
$data
[
'category_layout'
])) {
41.
foreach
(
$data
[
'category_layout'
]
as
$store_id
=>
$layout
) {
42.
if
(
$layout
[
'layout_id'
]) {
43.
$this
->db->query(
"INSERT INTO "
. DB_PREFIX .
"category_to_layout SET category_id = '"
. (int)
$category_id
.
"', store_id = '"
. (int)
$store_id
.
"', layout_id = '"
. (int)
$layout
['layout_id
'] . "'
");
44.
}
45.
}
46.
}
47.
48.
if
(
$data
[
'keyword'
]) {
49.
$this
->db->query(
"INSERT INTO "
. DB_PREFIX .
"url_alias SET query = 'category_id="
. (int)
$category_id
.
"', keyword = '"
.
$this
->db->escape(
$data
['keyword
']) . "'
");
50.
}
51.
52.
$this
->cache->
delete
(
'category'
);
53.
}