infected1992

Вывести общее количество объявлений

Recommended Posts

Подскажите как в шапке сайта вывести сколько всего  объявлений на сайте??

Да, да.  :)  И каких, примерно вот так

Рубрика                              Продам    Куплю   Сдам в аренду       Возьму в аренду

Жилая недвижимость        12081       517              849                             86

Новостройки                         249          11                   8                              –

Вторичное жилье                   7737       414              820                            80

Коттеджи, дома, таунхаусы   2875       66               20                                6

Земельные участки               1956        23               3                                  –

Под  строительство              1453         21                –                                 –

Сельскохозяйственного         358         1                  1                                  –

Под коммерческих объектов 145        1                   2                                    –

 

Как здесь http://dom.45.ru/realty/

Очень подошло бы под посадачную страницу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Общее количество объявлений.

Блиц-решение.

 

Это вставляем в файл main.php шаблона. Можно в самом начале

$total_ads_on_site='';$DBC=DBC::getInstance();$query='SELECT COUNT(id) AS total_ads_on_site FROM '.DB_PREFIX.'_data WHERE active=1';$stmt=$DBC->query($query);if($stmt){    $ar=$DBC->fetch($stmt);    $total_ads_on_site=$ar['total_ads_on_site'];}$template->assert('total_ads_on_site', $total_ads_on_site);

В шаблонах теперь доступна переменная {$total_ads_on_site} с числом объявлений. Прям ее можно вставлять там, где необходимо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Теперь по матричному выводу продам\куплю - жилая\нежилая. 

Эти рубрики являются одним параметром. т.е. все это структура типа

Продам    Жилая недвижимость      Новостройки    Вторичное жильеКуплю    Жилая недвижимость      Новостройки    Вторичное жилье

?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Небольшой оффтоп.

Уже сложилась практика создания структуры категорий в виде Продажа-Квартиры, Продажа-Комнаты, Аренда-Квартиры, ... Т.е объединения в одно целое различных понятий - типа недвижимости и вида операции с ней. имхо - это плохая практика. Ведь недаром стараются вести отдельно параметры жилой и общей площади. С ними тогда значительно удобнее работать, сравнивать, фильтровать, чем со значениями вада ааа/ббб.

Если все упирается в создание меню навигации в виде выпадающих списков, то затраты от разработки такого меню не есть больше минусов от содержаний структуры в виде смешанных понятий.

 

Теперь чисто теоретически.

 

Имеем таблицу re_data, re_topic, re_rubrika (объявления, типы недвижимости, рубкрики (как-то Продам, Сдам, Сниму)). Как получить сводную матрицу количеств обїявлений:

$ads_count_matrix=array();$DBC=DBC::getInstance();$query='SELECT COUNT( d.id ) AS dcount , t.name AS tname, r.name AS rnameFROM re_data dLEFT JOIN re_topic t ON d.topic_id = t.idLEFT JOIN re_rubrika r ON d.rubrika_id = r.rubrika_id WHERE d.active=1GROUP BY d.topic_id, d.rubrika_id';$stmt=$DBC->query($query);if($stmt){    while($ar=$DBC->fetch($stmt)){         $ads_count_matrix[]=$ar;    }}

В результате мы получаем массив вида:

[0][dcount]='10'[0][tname]='Квартиры'[0][rname]='Продам'[1][dcount]='2'[1][tname]='Комнаты'[1][rname]='Продам'[2][dcount]='1'[2][tname]='Квартиры'[2][rname]='Сдам'[3][dcount]='0'[3][tname]='Комнаты'[3][rname]='Сдам'...

Дальше уже дело техники. Либо скинуть этот массив в шаблон и там его просто вывести, либо в контроллере обработать его дополнительно - упорядочить по рубрикам, типам и тогда уже скинуть в шаблон для вывода.

 

Если рубрики\категории слиты в единую структуру, то принципиально решение будет похожим, но будет больше мороки с упорядочиванием, так как надо будет вычислить какие типы в какие рубрики входят и свести их.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Небольшой оффтоп.

Уже сложилась практика создания структуры категорий в виде Продажа-Квартиры, Продажа-Комнаты, Аренда-Квартиры, ... Т.е объединения в одно целое различных понятий - типа недвижимости и вида операции с ней. имхо - это плохая практика. Ведь недаром стараются вести отдельно параметры жилой и общей площади. С ними тогда значительно удобнее работать, сравнивать, фильтровать, чем со значениями вада ааа/ббб.

Дак у Вас у самих по умолчанию структура мудреная.

Продажа квартир              Новостройки               Комерческая                   Дома                      Гаражи

     1 ком                                  1 ком                   Аренда        Продажа           Дом                  Аренда        Продажа

     2 ком                                   2ком                    офис             офис            Котедж                  бокс               бокс

 

А где аренда домов, коттеджей, квартир. Конечно новостройки не сдают в аренду но вдруг )))

Не могу понять логику в такой структуре. Тем более  что сайт делаете "универсальный" считаю что все позиции должны быть равноправны.

 

В моем представлении должно быть 3 таблицы. (классическая структура, или так не модно теперь)

вид операции           - 1 продажа, покупка, сдам в аренду,  возьму в аренду

тип недвижимости   - 2 квартиры, новостройки, дачи, гаражи, коммерческая и т.д.

подтип    к типу         - 3  у каждого типа свой

 

Чтоб структура была как у адреса - с привязкой к высшему справочнику

Адреса ведь ни кто не оспаривает Страна/Область/Город/Улица

есть группа сайтов 45.ru 72.ru и т.д. Удобно сделано но там большая команда, сайты платные, денег много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дак у Вас у самих по умолчанию структура мудреная.

 

Ну, дефолтная не значит лучшая) Просто никто особо не протестует.

 

Я вот только не уверен, что стоит выделять в отдельную таблицу подтип. Ведь если у подтипа появится тоже подтип, то по логике нужны будет четвертая таблица - а так можно ой как обрасти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Общее количество объявлений.

Блиц-решение.

 

Это вставляем в файл main.php шаблона. Можно в самом начале

$total_ads_on_site='';$DBC=DBC::getInstance();$query='SELECT COUNT(id) AS total_ads_on_site FROM '.DB_PREFIX.'_data WHERE active=1';$stmt=$DBC->query($query);if($stmt){    $ar=$DBC->fetch($stmt);    $total_ads_on_site=$ar['total_ads_on_site'];}$template->assert('total_ads_on_site', $total_ads_on_site);

В шаблонах теперь доступна переменная {$total_ads_on_site} с числом объявлений. Прям ее можно вставлять там, где необходимо.

 

 

Что-то не работает. Добавляю в main.php, а сайт перестает работать и выдает ошибку.

Fatal error: Call to a member function assert() on a non-object in ...

 

 

Что делать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

 

Что-то не работает. Добавляю в main.php, а сайт перестает работать и выдает ошибку.

Fatal error: Call to a member function assert() on a non-object in ...

 

 

Что делать?

 

Правильно так:

$this->template->assert('total_ads_on_site', $total_ads_on_site);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас