Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
Categories.php
Содержимое
<?php namespace app\organizations; use App; use app\core\helpers\ArrayHelper; /** * Класс для работы с категориями организаций * Class Categories * @package app\organizations */ class Categories { public function __construct() { } private static function buildTree(array &$elements, $parentId = 0) { $branch = []; foreach ($elements as $element) { if ($element['id_parent'] == $parentId) { $children = static::buildTree($elements, $element['id']); if ($children) { $element['children'] = $children; } $branch[$element['id']] = $element; //unset($elements[$element['id']]); } } return $branch; } private static function repaintTotalTree(array &$elements) { $total = 0; foreach ($elements as $key => &$element) { if (isset($element['children'])) { $t = static::repaintTotalTree($elements[$key]['children']); if ($t > 0) { $elements[$key]['total'] = $t; } else { if (isset($elements[$key])) { unset($elements[$key]); } } } else { } if (isset($elements[$key])) { $total = $total + $elements[$key]['total']; } if (isset($elements[$key]) && $elements[$key]['total'] == 0) { unset($elements[$key]); } } return $total; } public static function getCategoriesTreeArray($parentId = 0) { $command = App::$command->createCommand(' SELECT o.id, o.id_parent, o.name_otrsl, o.translit_name, ( SELECT COUNT(firma.id) FROM firma INNER JOIN rubrik2 r ON r.id_firm = firma.id WHERE r.id_rubrik = o.id ) as total FROM otrasl2 o GROUP BY o.id ORDER BY o.name_otrsl ASC '); $transformArray = []; foreach ($command->queryAll() as $item) { $transformArray[$item['id']] = $item; } // if (isset($_COOKIE['dima'])) { // $elements = buildTree($transformArray, $parentId); // echo '<pre>'; // repaintTotalTree($elements); // print_r($elements);exit; //echo '<pre>'; //print_r($transformArray); // } // echo '<pre>'; // print_r(repaintTotalTree($transformArray, 0)); // exit; $elements = static::buildTree($transformArray, $parentId); static::repaintTotalTree($elements); return $elements; } public static function getCategoryName($categoryId) { $command = App::$command->createCommand(' SELECT name_otrsl FROM otrasl2 WHERE id = :category_id '); $command->bindValue(':category_id', $categoryId); return $command->queryOne('name_otrsl', null); } public static function getDescription($categoryId) { return App::$command ->createCommand(' SELECT id, description FROM otrasl2 WHERE id = :category_id ') ->bindValue(':category_id', $categoryId) ->queryOne('description', null); } public static function getNote($categoryId) { return App::$command ->createCommand(' SELECT id, note FROM otrasl2 WHERE id = :id ') ->bindValue(':id', $categoryId) ->queryOne('note', null); } private static function getChildArray($rootCategoryId, &$elements, &$ids) { foreach ($elements as $element) { if ($element['id_parent'] == $rootCategoryId) { $ids[] = $element['id']; static::getChildArray($element['id'], $elements, $ids); } } } public static function getChildrenIds($rootCategoryId) { $command = App::$command->createCommand(' SELECT id, id_parent FROM otrasl2 '); $items = $command->queryAll(); $ids = []; static::getChildArray($rootCategoryId, $items, $ids); return $ids; } // // private static function getChildArray($rootCategoryId, &$elements) // { // $items = []; // foreach ($elements as $element) { // if ($element['id_parent'] == $rootCategoryId) { // $items[] = $element['id']; // static::getChildArray($element['id'], $elements); // } // } // return $items; // } // // public static function getChildrenIds($rootCategoryId) // { // $command = App::$command->createCommand(' // SELECT id, id_parent // FROM otrasl2 // '); // $items = $command->queryAll(); // // return static::getChildArray($rootCategoryId, $items); // } // /** * Функция возвращает массив хлебных крошек определенной категории * @param $rootCategoryId * @return array */ public static function getBreadCrumbsIds($rootCategoryId) { $items = App::$command ->createCommand(' SELECT id, id_parent, name_otrsl, translit_name FROM otrasl2; ') ->queryAll(); function buildBreadCrumbs($categoryId, &$items, &$elements = []) { foreach ($items as $item) { if ($item['id'] == $categoryId) { $elements[] = $item; if ($item['id_parent'] > 0) { buildBreadCrumbs($item['id_parent'], $items, $elements); } } } } $elements = []; buildBreadCrumbs($rootCategoryId, $items, $elements); return array_reverse($elements); } }
/app/organizations/
Имя
Дата
Размер
..
2026-10-01
activerecord
2017-03-23
banners
2017-03-20
entity
2019-02-11
form
2020-04-06
helpers
2019-02-08
interfaces
2017-01-26
regions
2017-02-02
search
2019-02-12
shop
2020-04-06
statistic
2019-01-29
utils
2018-01-12
validators
2020-02-11
views
2018-01-16
Categories.php
2019-02-13
6 кб.
CommentVote.php
2024-08-23
5 кб.
CommentVote.php~
2017-01-26
5 кб.
Comments.php
2019-02-26
6 кб.
CommentsKarma.php
2017-01-26
308 байт
OrganizationCategory.php
2019-02-11
896 байт
OrganizationCategoryFactory.php
2018-01-12
1 кб.
OrganizationCategoryRepository.php
2019-02-12
2 кб.
OrganizationCommentsReader.php
2019-02-18
5 кб.
OrganizationEmails.php
2017-03-09
1 кб.
OrganizationFactory.php
2016-12-13
277 байт
OrganizationFiles.php
2017-02-15
645 байт
OrganizationIndexator.php
2017-08-18
349 байт
OrganizationNews.php
2019-08-23
2 кб.
OrganizationPhones.php
2019-02-11
7 кб.
OrganizationPhotos.php
2017-08-15
2 кб.
OrganizationRepository.php
2019-02-12
433 байт
OrganizationRubriks.php
2017-03-09
2 кб.
OrganizationSchedule.php
2018-01-12
2 кб.
OrganizationScheduleFactory.php
2018-01-12
844 байт
OrganizationSites.php
2020-04-09
1 кб.
OrganizationSlider.php
2019-08-12
1 кб.
OrganizationStatistics.php
2019-04-01
2 кб.
OrganizationVideos.php
2017-01-25
1 кб.
Organizations.php
2020-04-17
34 кб.
OrganizationsReader.php
2019-02-11
4 кб.
PhoneRepository.php
2019-02-11
1 кб.
Rating.php
2024-08-23
2 кб.
Rating.php~
2019-02-15
1 кб.
/app/organizations
Загрузить файлы
Файл 1
Файл 2
Файл 3