Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
Realty.php
Содержимое
<?php namespace app\realty; use App; use app\core\helpers\Rub; use app\core\models\validators\ExistValidator; /** * Класс для работы с недвижимостью. * Class Realty * @package app\realty */ class Realty { /** * Функция проверяет, есть ли такая запись или нет * @param $realtyId * @return bool */ public static function isExist($realtyId) { $existValidator = new ExistValidator('realty', 'id'); $existValidator->setValue($realtyId); return $existValidator->validate(); } /** * Функция проверяет, являетесь ли вы владельцем объявления или нет * @param $realtyId int - номер объявления * @param $userId int - ID пользователя * @return bool */ public static function isOwner($realtyId, $userId) { $command = App::$command ->createCommand(' SELECT user_id FROM realty WHERE id = :realty_id '); $command->bindValue(':realty_id', $realtyId); return $command->queryOne('user_id') == $userId; } /** * Метод удаляет объект недвижимости из базы данных. * @param $id int - ID объявления * @return bool - true, если удалось удалить объявление, например у вас есть права на это, иначе false. */ public static function deleteRealty($id) { if (static::allowEditable($id) == false) { return false; } if (static::isExist($id) == false) { return false; } $result = App::$command ->createCommand(' DELETE FROM realty WHERE id = :id ') ->bindValue(':id', $id) ->query(); if ($result == false) { return false; } App::$command ->createCommand(' DELETE FROM realty_photo WHERE realty_id = :realty_id ') ->bindValue(':realty_id', $id) ->query(); return true; } /** * Функция проверяет, можно ли текущему пользователю редактировать объявление или нет. * @param $realtyId * @return bool */ public static function allowEditable($realtyId) { if (App::$user->isGuest() == true || Realty::isExist($realtyId) == false) { return false; } if (App::$adminList->getLocalLevel(App::$user->getUserLogin()) >= 500) { return true; } else { if (Realty::isOwner($realtyId, App::$user->getId())) { return true; } } return false; } /** * Функция возвращает по ID населенного пункта его название и район. * ```php * static::getCityInformation(13) * -> * [ * 'city' => 'Орел', * 'rayon' => 'Железнодорожный район' * ] * ``` * @param $regionId * @return array|null */ public static function getCityInformation($regionId) { $command = App::$command ->createCommand(' SELECT directory.name as rayon_name, city.name as city_name FROM directory LEFT JOIN directory city ON city.id = directory.parent_id WHERE directory.id = :region_id; ') ->bindValue(':region_id', $regionId); $data = $command->queryOne(); $array = []; if (array_key_exists('rayon_name', $data) == false) { return null; } if ($data['city_name'] == null) { return [ 'city' => $data['rayon_name'], 'rayon' => null ]; } else { return [ 'city' => $data['city_name'], 'rayon' => $data['rayon_name'] ]; } } /** * Функция возвращает правильный title страницы. Чтобы она работала вы должны передать * ей массив полученный из RealtyReader * @see RealtyReader * @param array $realty * @return string|null */ public static function getViewTitle(array $realty) { if (isset($realty['id']) == false) { return null; } $city = static::getCityInformation($realty['region_id']); $cityTitleFragment = ''; if ($city != null) { if ($city['rayon'] != null) { $cityTitleFragment .= ", {$city['rayon']}"; } if ($city['city'] != null) { $cityTitleFragment .= ", {$city['city']}"; } } $title = null; if ($realty['title'] != null && $realty['title'] != '') { $title .= htmlspecialchars($realty['title']) . ', '; } $title .= "{$realty['transaction_type_name']}, {$realty['object_type_name']} {$cityTitleFragment}"; return $title; } /** * Функция возвращает название улицы. * @param array $realty * @return mixed|null|string */ public static function getStreet(array $realty) { if (isset($realty['id']) == false) { return null; } if ($realty['street'] == null) { return null; } $text = 'улица ' . $realty['street']; if ($realty['home'] != '') { $text .= ', ' . $realty['home']; } return $text; } public static function getPrice(array $realty) { if ($realty['price'] == 0) { return 'не указана'; } return Rub::format($realty['price']) . ' ' . RealtyTypePrice::getTypeString($realty['price_type']); } public static function setPhotoCount($realtyId, $total) { return App::$command ->createCommand(' UPDATE `realty` SET photo_count = :photo_count WHERE id = :id ') ->bindValue(':photo_count', $total) ->bindValue(':id', $realtyId) ->query(); } public static function updateView($realtyId) { return App::$command ->createCommand(' UPDATE `realty` SET view_count = view_count + 1 WHERE id = :id ') ->bindValue(':id', $realtyId) ->query(); } public static function getRealtyTitle(array $realtyItem) { if ($realtyItem['title'] != null && $realtyItem['title'] != '') { if ($realtyItem['title'] == ' ') { return 'Без названия'; } return $realtyItem['title']; } $title = ''; switch ($realtyItem['object_type_id']) { case RealtyHomeTypes::HOME_TYPE_BUSINESS: $title = 'Бизнес'; if ($realtyItem['square'] > 0) { $title .= ' ' .$realtyItem['square'] . ' м<sup>2</sup>'; } break; case RealtyHomeTypes::HOME_TYPE_COMMERCE: $title = 'Коммерческая недвижимость'; if ($realtyItem['square'] > 0) { $title .= ' ' . $realtyItem['square'] . ' м<sup>2</sup>'; } if ($realtyItem['floor'] > 0 && $realtyItem['floor_all'] > 0) { $title .= ' ' . $realtyItem['floor'] .' этаж из ' . $realtyItem['floor_all']; } break; case RealtyHomeTypes::HOME_TYPE_DOM: $title = 'Дом'; if ($realtyItem['square'] > 0) { $title .= ' ' . $realtyItem['square'] . ' м<sup>2</sup>'; } break; case RealtyHomeTypes::HOME_TYPE_GARAGE: $title = 'Гараж'; if ($realtyItem['square'] > 0) { $title .= ' ' . $realtyItem['square'] . ' м<sup>2</sup>'; } break; case RealtyHomeTypes::HOME_TYPE_VTORICH: case RealtyHomeTypes::HOME_TYPE_NEW_KV: if ($realtyItem['room_count'] > 0) { $title = $realtyItem['room_count'] . ' комнатная квартира'; } else { $title = 'Квартира'; } if ($realtyItem['square'] > 0) { $title .= ' ' . $realtyItem['square'] . ' м<sup>2</sup>'; } if ($realtyItem['floor'] > 0 && $realtyItem['floor_all'] > 0) { $title .= ' ' . $realtyItem['floor'] . ' этаж из ' . $realtyItem['floor_all']; } break; case RealtyHomeTypes::HOME_TYPE_ZEMEL_UCH: $title = 'Земельный участок'; if ($realtyItem['square'] > 0) { $title .= ' ' . $realtyItem['square'] . ' м<sup>2</sup>'; } break; } //App::debug(mb_strlen($title, 'UTF-8')); if (trim($title) == '') { $title = 'Без названия'; } return $title; } public static function getRealty($id) { return App::$command ->createCommand(' SELECT * FROM realty WHERE id = :id ') ->bindValue(':id', $id) ->queryOne(); } }
/app/realty/
Имя
Дата
Размер
..
2026-10-01
activerecord
2016-12-12
forms
2017-03-15
Realty.php
2017-03-15
10 кб.
RealtyArea.php
2016-12-22
2 кб.
RealtyBusinessTypes.php
2016-12-22
1 кб.
RealtyCommerceTypes.php
2016-12-22
1 кб.
RealtyHomeTypes.php
2017-03-13
3 кб.
RealtyMessages.php
2017-01-10
829 байт
RealtyPeriod.php
2016-12-22
1 кб.
RealtyPhoto.php
2017-03-14
3 кб.
RealtyReader.php
2017-03-15
17 кб.
RealtyRoomCount.php
2016-12-22
914 байт
RealtyTransactionTypes.php
2016-12-22
2 кб.
RealtyTypePrice.php
2017-01-10
3 кб.
RealtyTypes.php
2017-01-10
2 кб.
/app/realty
Загрузить файлы
Файл 1
Файл 2
Файл 3