Диплом: Автоматизация Учёта посещений клиентов в интернет-магазине ТС-АВТО

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
102
$query = $this->db->query("SELECT * FROM `" . DB_PREFIX .
"category_path` WHERE category_id = '" . (int)$data['parent_id'] . "' ORDER BY
`level` ASC");
foreach ($query->rows as $result) {
$this->db->query("INSERT INTO `" . DB_PREFIX .
"category_path` SET `category_id` = '" . (int)$category_id . "', `path_id` = '" .
(int)$result['path_id'] . "', `level` = '" . (int)$level . "'");
$level++;
}
$this->db->query("INSERT INTO `" . DB_PREFIX .
"category_path` SET `category_id` = '" . (int)$category_id . "', `path_id` = '" .
(int)$category_id . "', `level` = '" . (int)$level . "'");
if (isset($data['category_filter'])) {
foreach ($data['category_filter'] as $filter_id) {
$this->db->query("INSERT INTO " . DB_PREFIX .
"category_filter SET category_id = '" . (int)$category_id . "', filter_id = '" .
(int)$filter_id . "'");
}
}
if (isset($data['category_store'])) {
foreach ($data['category_store'] as $store_id) {
$this->db->query("INSERT INTO " . DB_PREFIX .
"category_to_store SET category_id = '" . (int)$category_id . "', store_id = '" .
(int)$store_id . "'");
}
}
103
// Set which layout to use with this category
if (isset($data['category_layout'])) {
foreach ($data['category_layout'] as $store_id => $layout) {
if ($layout['layout_id']) {
$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'] . "'");
}
}
}
if ($data['keyword']) {
$this->db->query("INSERT INTO " . DB_PREFIX .
"url_alias SET query = 'category_id=" . (int)$category_id . "', keyword = '" . $this-
>db->escape($data['keyword']) . "'");
}
$this->cache->delete('category');
}
public function editCategory($category_id, $data) {
$this->db->query("UPDATE " . 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()
WHERE category_id = '" . (int)$category_id . "'");
if (isset($data['image'])) {
$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 . "'");
}
104
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_description WHERE category_id = '" . (int)$category_id . "'");
foreach ($data['category_description'] as $language_id => $value)
{
$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']) . "'");
}
// MySQL Hierarchical Data Closure Table Pattern
$query = $this->db->query("SELECT * FROM `" . DB_PREFIX .
"category_path` WHERE path_id = '" . (int)$category_id . "' ORDER BY level ASC");
if ($query->rows) {
foreach ($query->rows as $category_path) {
// Delete the path below the current one
$this->db->query("DELETE FROM `" .
DB_PREFIX . "category_path` WHERE category_id = '" .
(int)$category_path['category_id'] . "' AND level < '" . (int)$category_path['level'] .
"'");
$path = array();
// Get the nodes new parents
$query = $this->db->query("SELECT * FROM `" .
DB_PREFIX . "category_path` WHERE category_id = '" . (int)$data['parent_id'] . "'
ORDER BY level ASC");
105
foreach ($query->rows as $result) {
$path[] = $result['path_id'];
}
// Get whats left of the nodes current path
$query = $this->db->query("SELECT * FROM `" .
DB_PREFIX . "category_path` WHERE category_id = '" .
(int)$category_path['category_id'] . "' ORDER BY level ASC");
foreach ($query->rows as $result) {
$path[] = $result['path_id'];
}
// Combine the paths with a new level
$level = 0;
foreach ($path as $path_id) {
$this->db->query("REPLACE INTO `" .
DB_PREFIX . "category_path` SET category_id = '" .
(int)$category_path['category_id'] . "', `path_id` = '" . (int)$path_id . "', level = '" .
(int)$level . "'");
$level++;
}
}
} else {
// Delete the path below the current one
$this->db->query("DELETE FROM `" . DB_PREFIX .
"category_path` WHERE category_id = '" . (int)$category_id . "'");
// Fix for records with no paths
106
$level = 0;
$query = $this->db->query("SELECT * FROM `" .
DB_PREFIX . "category_path` WHERE category_id = '" . (int)$data['parent_id'] . "'
ORDER BY level ASC");
foreach ($query->rows as $result) {
$this->db->query("INSERT INTO `" . DB_PREFIX
. "category_path` SET category_id = '" . (int)$category_id . "', `path_id` = '" .
(int)$result['path_id'] . "', level = '" . (int)$level . "'");
$level++;
}
$this->db->query("REPLACE INTO `" . DB_PREFIX .
"category_path` SET category_id = '" . (int)$category_id . "', `path_id` = '" .
(int)$category_id . "', level = '" . (int)$level . "'");
}
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_filter WHERE category_id = '" . (int)$category_id . "'");
if (isset($data['category_filter'])) {
foreach ($data['category_filter'] as $filter_id) {
$this->db->query("INSERT INTO " . DB_PREFIX .
"category_filter SET category_id = '" . (int)$category_id . "', filter_id = '" .
(int)$filter_id . "'");
}
}
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_to_store WHERE category_id = '" . (int)$category_id . "'");
107
if (isset($data['category_store'])) {
foreach ($data['category_store'] as $store_id) {
$this->db->query("INSERT INTO " . DB_PREFIX .
"category_to_store SET category_id = '" . (int)$category_id . "', store_id = '" .
(int)$store_id . "'");
}
}
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_to_layout WHERE category_id = '" . (int)$category_id . "'");
if (isset($data['category_layout'])) {
foreach ($data['category_layout'] as $store_id => $layout) {
if ($layout['layout_id']) {
$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'] . "'");
}
}
}
$this->db->query("DELETE FROM " . DB_PREFIX . "url_alias
WHERE query = 'category_id=" . (int)$category_id. "'");
if ($data['keyword']) {
$this->db->query("INSERT INTO " . DB_PREFIX .
"url_alias SET query = 'category_id=" . (int)$category_id . "', keyword = '" . $this-
>db->escape($data['keyword']) . "'");
}
$this->cache->delete('category');
108
}
public function deleteCategory($category_id) {
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_path WHERE category_id = '" . (int)$category_id . "'");
$query = $this->db->query("SELECT * FROM " . DB_PREFIX .
"category_path WHERE path_id = '" . (int)$category_id . "'");
foreach ($query->rows as $result) {
$this->deleteCategory($result['category_id']);
}
$this->db->query("DELETE FROM " . DB_PREFIX . "category
WHERE category_id = '" . (int)$category_id . "'");
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_description WHERE category_id = '" . (int)$category_id . "'");
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_filter WHERE category_id = '" . (int)$category_id . "'");
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_to_store WHERE category_id = '" . (int)$category_id . "'");
$this->db->query("DELETE FROM " . DB_PREFIX .
"category_to_layout WHERE category_id = '" . (int)$category_id . "'");
$this->db->query("DELETE FROM " . DB_PREFIX .
"product_to_category WHERE category_id = '" . (int)$category_id . "'");
$this->db->query("DELETE FROM " . DB_PREFIX . "url_alias
WHERE query = 'category_id=" . (int)$category_id . "'");
$this->cache->delete('category');
}
109
// Function to repair any erroneous categories that are not in the category
path table.
public function repairCategories($parent_id = 0) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX .
"category WHERE parent_id = '" . (int)$parent_id . "'");
foreach ($query->rows as $category) {
// Delete the path below the current one
$this->db->query("DELETE FROM `" . DB_PREFIX .
"category_path` WHERE category_id = '" . (int)$category['category_id'] . "'");
// Fix for records with no paths
$level = 0;
$query = $this->db->query("SELECT * FROM `" .
DB_PREFIX . "category_path` WHERE category_id = '" . (int)$parent_id . "' ORDER
BY level ASC");
foreach ($query->rows as $result) {
$this->db->query("INSERT INTO `" . DB_PREFIX
. "category_path` SET category_id = '" . (int)$category['category_id'] . "', `path_id` = '"
. (int)$result['path_id'] . "', level = '" . (int)$level . "'");
$level++;
}
$this->db->query("REPLACE INTO `" . DB_PREFIX .
"category_path` SET category_id = '" . (int)$category['category_id'] . "', `path_id` = '" .
(int)$category['category_id'] . "', level = '" . (int)$level . "'");
$this->repairCategories($category['category_id']);
}
110
}
public function getCategory($category_id) {
$query = $this->db->query("SELECT DISTINCT *, (SELECT
GROUP_CONCAT(cd1.name ORDER BY level SEPARATOR ' &gt; ') FROM " .
DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category_description
cd1 ON (cp.path_id = cd1.category_id AND cp.category_id != cp.path_id) WHERE
cp.category_id = c.category_id AND cd1.language_id = '" . (int)$this->config-
>get('config_language_id') . "' GROUP BY cp.category_id) AS path, (SELECT
keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'category_id=" .
(int)$category_id . "') AS keyword FROM " . DB_PREFIX . "category c LEFT JOIN "
. DB_PREFIX . "category_description cd2 ON (c.category_id = cd2.category_id)
WHERE c.category_id = '" . (int)$category_id . "' AND cd2.language_id = '" .
(int)$this->config->get('config_language_id') . "'");
return $query->row;
}
public function getCategories($data) {
$sql = "SELECT cp.category_id AS category_id,
GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR ' &gt; ') AS name,
c.parent_id, c.sort_order FROM " . DB_PREFIX . "category_path cp LEFT JOIN " .
DB_PREFIX . "category c ON (cp.path_id = c.category_id) LEFT JOIN " .
DB_PREFIX . "category_description cd1 ON (c.category_id = cd1.category_id) LEFT
JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id =
cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config-
>get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config-
>get('config_language_id') . "'";
if (!empty($data['filter_name'])) {
$sql .= " AND cd2.name LIKE '" . $this->db-
>escape($data['filter_name']) . "%'";
111
}
$sql .= " GROUP BY cp.category_id ORDER BY name";
if (isset($data['start']) || isset($data['limit'])) {
if ($data['start'] < 0) {
$data['start'] = 0;
}
if ($data['limit'] < 1) {
$data['limit'] = 20;
}
$sql .= " LIMIT " . (int)$data['start'] . "," .
(int)$data['limit'];
}
$query = $this->db->query($sql);
return $query->rows;
}
public function getCategoryDescriptions($category_id) {
$category_description_data = array();
$query = $this->db->query("SELECT * FROM " . DB_PREFIX .
"category_description WHERE category_id = '" . (int)$category_id . "'");
foreach ($query->rows as $result) {
$category_description_data[$result['language_id']] = array(
'name' => $result['name'],
'meta_keyword' => $result['meta_keyword'],

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)