Pavel88

Страница "Агенты" - отобразить всех пользователей

Recommended Posts

Шаблон Realia. Суть проблемы:

На странице "Агенты", отображаются только пользователи у которых есть объявления. И не отображается Admin.

60% объявлений будет добавляться непосредственно Admin`ом.

Вопрос как исправить данную проблему, может кто нибудь делал.

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


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

Тут

/template/frontend/realia/main/main.php

Функция генерации списка агентов выглядит так

	private function getAgents(){
		$ret=array();
		$DBC=DBC::getInstance();
		$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND() LIMIT 3';
		$stmt=$DBC->query($query);
		
		if($stmt){
			while($ar=$DBC->fetch($stmt)){
				$ret[]=$ar;
			}
		}
		$this->template->assign('agentslist_items', $ret);
	}

Чтобы все подряд выходили, надо поправить вот этот запрос

		$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND() LIMIT 3';

на этот

		$query='SELECT * FROM '.DB_PREFIX.'_user WHERE login<>\'_unregistered\' ORDER BY RAND()';

 

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


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

Дмитрий спасибо большое! Помогло.

Заметил такую вещь - этот код присутствовал до обновления в колонке "Наши агенты", после обновления я так понимаю языкового, потому что снова пришлось менять названия в колонках, данная строчка пропала. Добавил ее обратно, данные о объектах не отображает.

<div class="count"><a href="{$estate_folder}/user{$agentslist_item.user_id}.html">Объектов на сайте: {$agentslist_item._cnt}</a></div>

 

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


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

тоже впишусь, с похожим вопросом только наоборот, мне надо чтобы отражались юзеры только из группы риэлторы

на моем шаблоне (domikus) нет 

private function getAgents

Функция генерации списка агентов выглядит наверное как то по другому.

и я вот ломаю голову как же мне сделать чтобы в tabs-services-agents выводились только юзеры из группы риэлторы с id=3  

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


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

я правильно понимаю что мне надо в public_html/template/frontend/domikus/main/main.php в любом удобном мне месте вставить код 

Цитата

private function getAgents(){
        $ret=array();
        $DBC=DBC::getInstance();
        $query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>3;
        $stmt=$DBC->query($query);
        
        if($stmt){
            while($ar=$DBC->fetch($stmt)){
                $ret[]=$ar;
            }
        }
        $this->template->assign('agentslist_items', $ret);
    }

и при клике на слово агенты мне будут отражаться юзеры из группы риэлторы?

59.jpg

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


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, nagovizin сказал:

я правильно понимаю что мне надо в public_html/template/frontend/domikus/main/main.php в любом удобном мне месте вставить код 

и при клике на слово агенты мне будут отражаться юзеры из группы риэлторы?

В шаблоне domikus за вывод пользователей отвечает этот файл

/template/frontend/domikus/main/users.php

Если у вас там есть строчка

exit;

То удалите ее.

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


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

нет там такого вот текст 

Цитата

<?php
include ($_SERVER['DOCUMENT_ROOT'].'/inc/db.inc.php');
$startFrom = $_POST['startFrom'];
	$users=mysql_query("SELECT SQL_CALC_FOUND_ROWS  email, fio, mobile, icq, active, user_id, phone, site, imgfile FROM re_user WHERE active=1 ORDER BY user_id ASC LIMIT {$startFrom}, 8");
    $count = mysql_query("SELECT user_id, COUNT(*) AS counts FROM re_data GROUP BY user_id LIMIT {$startFrom}, 8");	
	if ( $users ) {
	$cn = array();
	$ar = array(); 
    while ($row = mysql_fetch_assoc($users)) {
    $ar[] = $row;}
	while ($row = mysql_fetch_assoc($count)) {
    $cn[] = $row;}
	$superar = array_replace_recursive($ar, $cn);
	echo json_encode($superar);}
?>

но я вообще почему то думал что надо поправить в файле layout.tpl строку с кодом 

Цитата

<li role="presentation" class="pull-right"><a data-toggle="tab" id="users" href="#tabs-services-agents" style='color:#fff'>АГЕНТЫ&nbsp;<i class="glyphicon glyphicon-user white"></i></a></li>
				

или я ошибаюсь?

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


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

или я ошибаюсь?

да, ошибаетесь. там только разметка кнопки и ничего более. Нужный вам момент как раз в users.php в 4-й строке

$users=mysql_query("SELECT SQL_CALC_FOUND_ROWS  email, fio, mobile, icq, active, user_id, phone, site, imgfile FROM re_user WHERE active=1 ORDER BY user_id ASC LIMIT {$startFrom}, 8");

где условие только по активности. вам же нужно изменить ее до

$users=mysql_query("SELECT SQL_CALC_FOUND_ROWS  email, fio, mobile, icq, active, user_id, phone, site, imgfile FROM re_user WHERE active=1 AND group_id=3 ORDER BY user_id ASC LIMIT {$startFrom}, 8");

 

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


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

ну я не зря думал что я ошибаюсь.

Но и ваш код добавил какой то баг, теперь при клике на агенты выводит юзера undefined и почему то 10 объектов от юзера Анастасия система прицепляет к нему. 

31.png

и срабатывает медленно) хотя суть выполнения имена та что нужна.

код сейчас выглядит так

Цитата

<?php
include ($_SERVER['DOCUMENT_ROOT'].'/inc/db.inc.php');
$startFrom = $_POST['startFrom'];
    $users=mysql_query("SELECT SQL_CALC_FOUND_ROWS  email, fio, mobile, icq, active, user_id, phone, site, imgfile FROM re_user WHERE active=1 AND group_id=3 ORDER BY user_id ASC LIMIT {$startFrom}, 8");
    $count = mysql_query("SELECT user_id, COUNT(*) AS counts FROM re_data GROUP BY user_id LIMIT {$startFrom}, 8");    
    if ( $users ) {
    $cn = array();
    $ar = array(); 
    while ($row = mysql_fetch_assoc($users)) {
    $ar[] = $row;}
    while ($row = mysql_fetch_assoc($count)) {
    $cn[] = $row;}
    $superar = array_replace_recursive($ar, $cn);
    echo json_encode($superar);}
?>

 

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


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, nagovizin сказал:

о и ваш код добавил какой то баг

Это не мой код с багом, это ваш негибкий))

Вот вам новое тело для users.php

<?php
	include ($_SERVER['DOCUMENT_ROOT'].'/inc/db.inc.php');
	$startFrom = intval($_POST['startFrom']);
	$users = mysql_query("SELECT u.group_id, u.email, u.fio, u.mobile, u.icq, u.active, u.user_id, u.phone, u.site, u.imgfile, COUNT(d.id) AS counts FROM re_data d LEFT JOIN re_user u USING(user_id) WHERE u.group_id=3 AND d.active=1 GROUP BY user_id LIMIT {$startFrom}, 8");
	if ( $users ) {
		$superar = array();
		while ($row = mysql_fetch_assoc($users)) {
			$superar[] = $row;
		}
		echo json_encode($superar);
	}
?>

Должно выдавать корректный результат.

 

Цитата

и срабатывает медленно)

Все из-за необходимости подсчета количества объявлений.

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


Ссылка на сообщение
Поделиться на других сайтах
48 минут назад, abushyk сказал:

Все из-за необходимости подсчета количества объявлений.

а когда объявлений будет тысяча он вообще тормозить начнет?

Огромное спасибо за помощь сейчас все работает.

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


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, nagovizin сказал:

а когда объявлений будет тысяча он вообще тормозить начнет?

Зуб даю, что будет. Поэтому прямая выборка на каждом запросе должна быть исключена, а количества посчитаны предварительно (вручнцю ли или скриптом) и сохранены прям с данными пользователя. И потом периодически пересчитывать.

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


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

т.е надо писать скрипт который будет считать и записывать в таблицу, вносить новое поле в таблицу юзера и настраивать крон. что я еще забыл?

либо пока закоментить строку которая выводит количество объектов и не париться  пока не научусь кодить, или не затухну вообще к этому, а пока заняться более нужными настройками.

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


Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, nagovizin сказал:

т.е надо писать скрипт который будет считать и записывать в таблицу, вносить новое поле в таблицу юзера и настраивать крон. что я еще забыл?

Заводится поле под количество в таблице юзеров.

Делается скриптик, который умеет только считать количества объяв юзеров и записываьт их в это поле

Этот скриптик ставится на крон.

Цитата

либо пока закоментить строку которая выводит количество объектов

Строка, которая выводит, она только выводит. А считает количества запрос. Если просто не выводить, то считать то от этого код не перестанет. Нужно упростить запрос, что бы исключить подсчет а в шаблоне убрать надпись о количестве.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Похожие публикации

    • Автор: axilec
      Добрый день! Не подскажете, как можно добавить ссылку или кнопку в описании к объекту недвижимости? Спасибо!
    • Автор: Opossum_Shultz
      Добрый день! подскажите, в шаблоне реалиа не реализовано каким - нибудь css или чем - нибудь развертывание и свертывание текста (например, для описаний ЖК)?
      Ну типа спойлер.
       
    • Автор: metrpro
      Добрый день! Шаблон realia, стоит необходимость изменить оформление добавления/убавления из списка "Избранное".
      Нынешнее решение выглядит следующим образом:
      {if isset($smarty.session.favorites)} {if in_array($data.id.value, $smarty.session.favorites)}<a class="fav-rem" alt="{$data.id.value}" title="{$L_DELETEFROMFAVORITES}" href="#remove_from_favorites"></a> {else}<a class="fav-add" alt="{$data.id.value}" title="{$L_ADDTOFAVORITES}" href="#add_to_favorites"></a> {/if} {else}<a class="fav-add" alt="{$data.id.value}" title="{$L_ADDTOFAVORITES}" href="#add_to_favorites"></a> {/if} А мне бы хотелось уйти от картинок, предусмотренных стилем, чтобы выглядеть это стало как обычная кнопка, типа тех, что вызывают в шаблоне модальные окна.
      Буду рад, если кто сможет поделиться подобными наработками (у меня не вышло)
       
    • Автор: IgorGavr
      В списках объектах есть строчка:
      <div class="property span9{if $grid_items.bold_status==1} grid_list_bold{/if}{if $grid_items.premium_status==1} grid_list_premium{/if}{if $grid_items.vip_status==1} grid_list_vip{/if}">
      Но в независимости выбрано выделение или премиум объявление, проверка не проходит. Как мы можем брать деньги если никаких выделений не происходит после оплаты?
    • Автор: metrpro
      В таблицу STREET, содержащую список улиц и по умолчанию имеющую поля STREET_ID, CITY_ID и NAME, добавлено поле DISTRICT_ID (типа select_by_query), которое позволяет четко каждой улице определить район, к которому она относится, из таблицы DISTRICT_ID.
      Внимание, вопрос №1: как передать текстовое значение поля district_id в шаблоны realty_view и realty_grid (realia)?

      В таблице DISTRICT добавлено поле OKRUG типа safe_string. Вопрос №2 - как его значение тоже передать в те же шаблоны?

      И, наконец, вопрос №3 - как организовать поиск всех объявлений определенного типа в рамках улиц, расположенных в определенном районе или определенном округе?