Категории услуг и удаление latest из блога

This commit is contained in:
Konstantin
2026-05-30 10:13:44 +03:00
parent e45a057ffa
commit 95ac0ef898
37 changed files with 1959 additions and 827 deletions
+65
View File
@@ -0,0 +1,65 @@
<?php
// * @source See SOURCE.txt for source and other copyright.
// * @license GNU General Public License version 3; see LICENSE.txt
class ModelServiceCategory extends Model {
public function getCategory($service_category_id) {
return $this->getCategories((int)$service_category_id, 'by_id');
}
public function getCategories($id = 0, $type = 'by_parent') {
static $data = null;
if ($data === null) {
$data = array();
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "service_category c LEFT JOIN " . DB_PREFIX . "service_category_description cd ON (c.service_category_id = cd.service_category_id) LEFT JOIN " . DB_PREFIX . "service_category_to_store c2s ON (c.service_category_id = c2s.service_category_id) WHERE cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ORDER BY c.parent_id, c.sort_order, cd.name");
foreach ($query->rows as $row) {
$data['by_id'][$row['service_category_id']] = $row;
$data['by_parent'][$row['parent_id']][] = $row;
}
}
return ((isset($data[$type]) && isset($data[$type][$id])) ? $data[$type][$id] : array());
}
public function getCategoriesByParentId($service_category_id) {
$category_data = array();
$categories = $this->getCategories((int)$service_category_id);
foreach ($categories as $category) {
$category_data[] = $category['service_category_id'];
$children = $this->getCategoriesByParentId($category['service_category_id']);
if ($children) {
$category_data = array_merge($children, $category_data);
}
}
return $category_data;
}
public function getCategoryLayoutId($service_category_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "service_category_to_layout WHERE service_category_id = '" . (int)$service_category_id . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'");
if ($query->num_rows) {
return $query->row['layout_id'];
} else {
return $this->config->get('config_layout_category');
}
}
public function getPathByService($service_id) {
$query = $this->db->query("SELECT GROUP_CONCAT(cp.path_id ORDER BY cp.level SEPARATOR '_') AS path FROM " . DB_PREFIX . "service_to_category s2c LEFT JOIN " . DB_PREFIX . "service_category_path cp ON (s2c.service_category_id = cp.service_category_id) WHERE s2c.service_id = '" . (int)$service_id . "'");
return $query->num_rows ? $query->row['path'] : '';
}
public function getTotalCategoriesByCategoryId($parent_id = 0) {
return count($this->getCategories((int)$parent_id));
}
}
?>
+16
View File
@@ -49,8 +49,16 @@ class ModelServiceService extends Model {
if (!$service_data) {
$sql = "SELECT p.service_id FROM " . DB_PREFIX . "service p LEFT JOIN " . DB_PREFIX . "service_description pd ON (p.service_id = pd.service_id) LEFT JOIN " . DB_PREFIX . "service_to_store p2s ON (p.service_id = p2s.service_id)";
if (!empty($data['filter_service_category_id'])) {
$sql .= " LEFT JOIN " . DB_PREFIX . "service_to_category s2c ON (p.service_id = s2c.service_id)";
}
$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
if (!empty($data['filter_service_category_id'])) {
$sql .= " AND s2c.service_category_id = '" . (int)$data['filter_service_category_id'] . "'";
}
$sql .= " GROUP BY p.service_id";
$sort_data = array(
@@ -208,8 +216,16 @@ class ModelServiceService extends Model {
if (!$service_data) {
$sql = "SELECT COUNT(DISTINCT p.service_id) AS total FROM " . DB_PREFIX . "service p LEFT JOIN " . DB_PREFIX . "service_description pd ON (p.service_id = pd.service_id) LEFT JOIN " . DB_PREFIX . "service_to_store p2s ON (p.service_id = p2s.service_id)";
if (!empty($data['filter_service_category_id'])) {
$sql .= " LEFT JOIN " . DB_PREFIX . "service_to_category s2c ON (p.service_id = s2c.service_id)";
}
$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
if (!empty($data['filter_service_category_id'])) {
$sql .= " AND s2c.service_category_id = '" . (int)$data['filter_service_category_id'] . "'";
}
$query = $this->db->query($sql);
$service_data = $query->row['total'];