Страница 1 из 2

Статистика объектов

СообщениеДобавлено: 20 июн 2013, 16:35
avbo
Подскажите пож. как вывести например на главную страницу блок показывающий количество объявлений в разрезе:

Всего объявлений: 10
В регионе название города: 5
Всего добавлено за сегодня: 0

Re: Статистика объектов

СообщениеДобавлено: 21 июн 2013, 10:53
Foton
Добавьте в protected\views\site\index.php код, типа:
Код: Выделить всё
Yii::import('application.modules.apartments.helpers.apartmentsHelper');
$result_all = apartmentsHelper::getApartments(0, 0, 1);
echo '<p>Всего: '.$result_all['apCount']. '</p>';

foreach ($this->cityActive as $id=>$name) {
    $criteria = new CDbCriteria;
    $criteria->compare('city_id',$id);
    $result = apartmentsHelper::getApartments(0, 0, 1, $criteria);
    echo '<p>В регионе '. $name .': '.$result['apCount']. '</p>';
}

$criteria = new CDbCriteria;
$today = new CDbExpression("CURDATE()");
$criteria->addCondition('date_created >= "'.$today.'" ');
$result_today = apartmentsHelper::getApartments(0, 0, 1, $criteria);
echo '<p>Всего добавлено за сегодня: '.$result_today['apCount']. '</p>'; 

В данном случае будут выводится только города, в которых есть объявления

Re: Статистика объектов

СообщениеДобавлено: 21 июн 2013, 13:45
avbo
Спасибо большое.

Скромный вопрос: как можно эти данные взять в рамку?

Re: Статистика объектов

СообщениеДобавлено: 21 июн 2013, 13:53
Foton
Перед этим кодом вставьте
Код: Выделить всё
echo "<div style='border: 1px solid #000000; width: 200px;'>"; 
а после
Код: Выделить всё
echo "</div>"; 
где 200px - это ширина блока, а #000000 - цвет

Re: Статистика объектов

СообщениеДобавлено: 21 июн 2013, 19:41
avbo
Foton писал(а):Добавьте в protected\views\site\index.php код, типа:
Код: Выделить всё
Yii::import('application.modules.apartments.helpers.apartmentsHelper');
$result_all = apartmentsHelper::getApartments(0, 0, 1);
echo '<p>Всего: '.$result_all['apCount']. '</p>';

foreach ($this->cityActive as $id=>$name) {
    $criteria = new CDbCriteria;
    $criteria->compare('city_id',$id);
    $result = apartmentsHelper::getApartments(0, 0, 1, $criteria);
    echo '<p>В регионе '. $name .': '.$result['apCount']. '</p>';
}

$criteria = new CDbCriteria;
$today = new CDbExpression("CURDATE()");
$criteria->addCondition('date_created >= "'.$today.'" ');
$result_today = apartmentsHelper::getApartments(0, 0, 1, $criteria);
echo '<p>Всего добавлено за сегодня: '.$result_today['apCount']. '</p>'; 

В данном случае будут выводится только города, в которых есть объявления


Вроде проверил. неправильно подсчет всего объявлений. Что делать?

Re: Статистика объектов

СообщениеДобавлено: 22 июн 2013, 20:10
vanred79
Добрый день! Подскажите на 1.3 версии данный код будет работать?

Re: Статистика объектов

СообщениеДобавлено: 25 июн 2013, 11:18
Koduc
vanred79 писал(а):Добрый день! Подскажите на 1.3 версии данный код будет работать?

По идее да, нормально должно быть.

Re: Статистика объектов

СообщениеДобавлено: 25 июн 2013, 11:21
Koduc
avbo писал(а):Вроде проверил. неправильно подсчет всего объявлений. Что делать?

Видимо идет подсчет как активных, так и не активных объявлений.
Замените код
$result_all = apartmentsHelper::getApartments(0, 0, 1);
на
$result_all = apartmentsHelper::getApartments(0, 0, 0);
Аналогично, попробуйте заменить
$result = apartmentsHelper::getApartments(0, 0, 1, $criteria);
на
$result = apartmentsHelper::getApartments(0, 0, 0, $criteria);

Re: Статистика объектов

СообщениеДобавлено: 25 июн 2013, 13:53
avbo
спасибо за ответ.

Подскажите пож. как сделать, чтобы статистика по региону показывалась в виде ссылки,

Например:
Всего объектов: 12

В регионе Москва: 11 - гиперссылка Москва, переход на все объявления по данному городу

Всего добавлено за сегодня: 0

Re: Статистика объектов

СообщениеДобавлено: 25 июн 2013, 22:15
Koduc
avbo писал(а):Подскажите пож. как сделать, чтобы статистика по региону показывалась в виде ссылки

Код
echo '<p>В регионе '. $name .': '.$result['apCount']. '</p>';
замените на
echo '<p>В регионе '. CHtml::link($name, array('/quicksearch/main/mainsearch', 'city[]' => $id)).': '.$result['apCount']. '</p>';