ipr25

Вопрос по списку агентов

Recommended Posts

Добрый день!

А кто выводится в этот список? 

site.ru/agents

 

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

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

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


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

Описание тут

http://www.etown.ru/s/topic/1432-%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0-%D0%B2%D1%81%D0%B5%D1%85-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%BE%D0%B2/?hl=agent#entry15680

Для того чтобы определить кто там будет, смотрите ид групп

u.group_id IN ( 2, 3 )

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


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

 

Описание тут

http://www.etown.ru/s/topic/1432-%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0-%D0%B2%D1%81%D0%B5%D1%85-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%BE%D0%B2/?hl=agent#entry15680

Для того чтобы определить кто там будет, смотрите ид групп

u.group_id IN ( 2, 3 )

 

Все получилось спасибо 

правда возник еще

у меня в шаблоне есть такой код  agen_tslist

 

            <div class="col-md-8">
                 <div class="agent-info">
                 <div class="counts"><strong>{$agentslist_item._cnt}</strong><span>Объектов</span></div>
                  <h3><a href="{$estate_folder}/user{$agentslist_item.user_id}.html">{$agentslist_item.fio}</a></h3>
                 <!--<p>об агенте можно вывести</p>-->
            </div>
 
Каким образом выводить информацию об агенте?

 

И где пользователь сможет ее заполнять?

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


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

Еще возник 1 вопрос 

 

пытаюсь сделать 2 разные страницы для разных групп

1 работает на основе ее пытаюсь сделать дублю,

 

в 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()';*/$query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN ( 2 ) GROUP BY d.user_id ORDER BY _cnt DESC';$stmt=$DBC->query($query);if($stmt){while($ar=$DBC->fetch($stmt)){$ret[]=$ar;}}$this->template->assign('agentslist_items', $ret);$this->template->assert('main_file_tpl', 'agents_list.tpl');}

 

Подскажите пожалуйста в какой месте нужно править чтобы все это потом связать с формой в шаблоне

 

<div class="block-heading">    <h4><span class="heading-icon"><i class="fa fa-users"></i></span>Агенства недвижимости</h4></div><div class="agents-listing">    <ul>    {foreach from=$agentslist_items item=agentslist_item}        <li class="col-md-12">            <div class="col-md-4">                 <a href="{$estate_folder}/user{$agentslist_item.user_id}.html" class="agent-featured-image">                 {if $agentslist_item.imgfile!=''}                 	<img src="{$estate_folder}/img/data/user/{$agentslist_item.imgfile}" alt="">                 {else}                    <img src="{$estate_folder}/template/frontend/{$current_theme_name}/img/no_photo.png" alt="">                 {/if}                 </a>            </div>            <div class="col-md-8">                 <div class="agent-info">                 <div class="counts"><strong>{$agentslist_item._cnt}</strong><span>Объектов</span></div>                  <h3><a href="{$estate_folder}/user{$agentslist_item.user_id}.html">{$agentslist_item.fio}</a></h3>                 <!--<p>об агенте можно вывести</p>-->            </div>            <div class="agent-contacts clearfix">            <h3>                 <ul>                    {if $agentslist_item.phone ne ''}<i class="fa fa-phone"></i> {$agentslist_item.phone}{/if}                    {if $agentslist_item.mobile ne ''}<i class="fa fa-phone"></i> {$agentslist_item.mobile}{/if}                    {if $agentslist_item.email ne ''}<i class="fa fa-envelope"></i><a href="mailto:{$agentslist_item.email}"> {$agentslist_item.email}</a>{/if}                    {if $agentslist_item.icq ne ''}<i class="fa fa-envelope"></i>{$agentslist_item.icq}{/if}                 </ul>            </h3>             </div>             </div>         </li>       {/foreach}     </ul></div>

Если дублировать в этом виде по основному домену открывается белая страница (удаляю дубль все нормализуется)

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


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

Если дублировать в этом виде по основному домену открывается белая страница (удаляю дубль все нормализуется)

 

Покажите как вы это дублируете. Что пишите. И какие ошибки (включить вывод ошибок в ./index.php)

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


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

Покажите как вы это дублируете. Что пишите. И какие ошибки (включить вывод ошибок в ./index.php)

Не силен в PHP 

но предположил что 

$this->template->assign('agentslist_items', $ret);$this->template->assert('main_file_tpl', 'agents_list.tpl');} 

По умолчанию в этой функции agents_list.tpl не случайно прописанно

Оставил данную функцию и ниже продублировал ее только 

Заменил agents_list.tpl на list.tpl изменил u.group_id IN (5 )

 

Создал шаблон list.tpl

и добавил в него код

<div class="block-heading">    <h4><span class="heading-icon"><i class="fa fa-users"></i></span>Агенства недвижимости</h4></div><div class="agents-listing">    <ul>    {foreach from=$agentslist_items item=agentslist_item}        <li class="col-md-12">            <div class="col-md-4">                 <a href="{$estate_folder}/user{$agentslist_item.user_id}.html" class="agent-featured-image">                 {if $agentslist_item.imgfile!=''}                 	<img src="{$estate_folder}/img/data/user/{$agentslist_item.imgfile}" alt="">                 {else}                    <img src="{$estate_folder}/template/frontend/{$current_theme_name}/img/no_photo.png" alt="">                 {/if}                 </a>            </div>            <div class="col-md-8">                 <div class="agent-info">                 <div class="counts"><strong>{$agentslist_item._cnt}</strong><span>Объектов</span></div>                  <h3><a href="{$estate_folder}/user{$agentslist_item.user_id}.html">{$agentslist_item.fio}</a></h3>                 <!--<p>об агенте можно вывести</p>-->            </div>            <div class="agent-contacts clearfix">            <h3>                 <ul>                    {if $agentslist_item.phone ne ''}<i class="fa fa-phone"></i> {$agentslist_item.phone}{/if}                    {if $agentslist_item.mobile ne ''}<i class="fa fa-phone"></i> {$agentslist_item.mobile}{/if}                    {if $agentslist_item.email ne ''}<i class="fa fa-envelope"></i><a href="mailto:{$agentslist_item.email}"> {$agentslist_item.email}</a>{/if}                    {if $agentslist_item.icq ne ''}<i class="fa fa-envelope"></i>{$agentslist_item.icq}{/if}                 </ul>            </h3>             </div>             </div>         </li>       {/foreach}     </ul></div>

после сохранения выводится белый лист в том числе на главной (я думаю что я что-то не правильно сделал)

 

Видимо не все так просто и делать копию функции рядом нельзя   

Может заменить какие обозначения нужно чтобы не было конфликта?

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


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

По умолчанию в этой функции agents_list.tpl не случайно прописанно

Оставил данную функцию и ниже продублировал ее только 

Заменил agents_list.tpl на list.tpl изменил u.group_id IN (5 )

 

Вот эти две функции сюда скопируйте полностью.

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


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

Вот эти две функции сюда скопируйте полностью.

вот как есть по умолчанию и она работает на наблоне agents_list.tpl

private function getAgents(){$ret=array();$DBC=DBC::getInstance();/*$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND()';*/$query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN ( 2 ) GROUP BY d.user_id ORDER BY _cnt DESC';$stmt=$DBC->query($query);if($stmt){while($ar=$DBC->fetch($stmt)){$ret[]=$ar;}}$this->template->assign('agentslist_items', $ret);$this->template->assert('main_file_tpl', 'agents_list.tpl');}

пытаюсь разобраться как запустить такую же функцию с с тем же что и agents_list.tpl кодом шаблона на другой странице но с другим u.group_id IN (5 )

 

Подскажите где копать (хочу разобраться так как еще не раз понадобиться)?

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


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

Думаю вы скопировали две функции и сделали им одинаковые имена

getAgents и getAgents и на это у вас ругается.

Для второй функции надо назвать ее getAgents1, например.

Но потом ее нужно вызвать в main()

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


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

Думаю вы скопировали две функции и сделали им одинаковые имена

getAgents и getAgents и на это у вас ругается.

Для второй функции надо назвать ее getAgents1, например.

Но потом ее нужно вызвать в main()

Если я правильно понял я создаю шаблон условно list1.tpl

 

Задаю функцию в main.php 

такого вида

private function getAgents1(){$ret=array();$DBC=DBC::getInstance();/*$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND()';*/$query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN ( 5 ) GROUP BY d.user_id ORDER BY _cnt DESC';$stmt=$DBC->query($query);if($stmt){while($ar=$DBC->fetch($stmt)){$ret[]=$ar;}}$this->template->assign('agentslist_items', $ret);$this->template->assert('main_file_tpl', 'list1.tpl');}

И все должно заработать? 

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


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

1. После создания функции ее надо еще запустить в main()

2. Да, только вызвать ее надо так в main()

        if ( !$has_result && preg_match('/^agents1[\/]?$/', $REQUESTURIPATH) ) {			$this->getAgents1();			$has_result=true;		}

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


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

 

1. После создания функции ее надо еще запустить в main()

2. Да, только вызвать ее надо так в main()

        if ( !$has_result && preg_match('/^agents1[\/]?$/', $REQUESTURIPATH) ) {			$this->getAgents1();			$has_result=true;		}

Извиняюсь за назойливость не силен в php 

 

Нужно просто заменить условия и вставить код вида 

private function getAgents1(){$ret=array();$DBC=DBC::getInstance();/*$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND()';*/$query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN ( 5 ) GROUP BY d.user_id ORDER BY _cnt DESC';$stmt=$DBC->query($query);if ( !$has_result && preg_match('/^agents1[\/]?$/', $REQUESTURIPATH) ) {            $this->getAgents1();            $has_result=true;        }}$this->template->assign('agentslist_items', $ret);$this->template->assert('main_file_tpl', 'list1.tpl');}

?    Думаю как то так так как рядом они не работают

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


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

В main() вам нужно вызвать 

if ( !$has_result && preg_match('/^agents1[\/]?$/', $REQUESTURIPATH) ) {			$this->getAgents1();			$has_result=true;		}

А ту другую функцию поставьте рядом с исходной )

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


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

В main() вам нужно вызвать 

if ( !$has_result && preg_match('/^agents1[\/]?$/', $REQUESTURIPATH) ) {			$this->getAgents1();			$has_result=true;		}

А ту другую функцию поставьте рядом с исходной )

 

 

 

Спасибо , теперь конфликта нет

но вот такой шаблон list1 

с таким кодом 

<div class="block-heading">    <h4><span class="heading-icon"><i class="fa fa-users"></i></span>Агенства недвижимости</h4></div><div class="agents-listing">    <ul>    {foreach from=$agentslist_items item=agentslist_item}        <li class="col-md-12">            <div class="col-md-4">                 <a href="{$estate_folder}/user{$agentslist_item.user_id}.html" class="agent-featured-image">                 {if $agentslist_item.imgfile!=''}                 	<img src="{$estate_folder}/img/data/user/{$agentslist_item.imgfile}" alt="">                 {else}                    <img src="{$estate_folder}/template/frontend/{$current_theme_name}/img/no_photo.png" alt="">                 {/if}                 </a>            </div>            <div class="col-md-8">                 <div class="agent-info">                 <div class="counts"><strong>{$agentslist_item._cnt}</strong><span>Объектов</span></div>                  <h3><a href="{$estate_folder}/user{$agentslist_item.user_id}.html">{$agentslist_item.fio}</a></h3>                 <!--<p>об агенте можно вывести</p>-->            </div>            <div class="agent-contacts clearfix">            <h3>                 <ul>                    {if $agentslist_item.phone ne ''}<i class="fa fa-phone"></i> {$agentslist_item.phone}{/if}                    {if $agentslist_item.mobile ne ''}<i class="fa fa-phone"></i> {$agentslist_item.mobile}{/if}                    {if $agentslist_item.email ne ''}<i class="fa fa-envelope"></i><a href="mailto:{$agentslist_item.email}"> {$agentslist_item.email}</a>{/if}                    {if $agentslist_item.icq ne ''}<i class="fa fa-envelope"></i>{$agentslist_item.icq}{/if}                 </ul>            </h3>             </div>             </div>         </li>       {/foreach}     </ul></div>

не работает 

 

Для проверки на старой функции и на новой оставил один и тот же id на старой странице агент отображается на новой просто заголовок с пустым списков

 

Подойдет ли такой код под новое название функции? Или 1 приписать нужно?

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


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

Посмотрите что вообще в массиве получилось?

private function getAgents1(){$ret=array();$DBC=DBC::getInstance();/*$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND()';*/$query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN ( 5 ) GROUP BY d.user_id ORDER BY _cnt DESC';$stmt=$DBC->query($query);if ( !$has_result && preg_match('/^agents1[\/]?$/', $REQUESTURIPATH) ) {            $this->getAgents1();            $has_result=true;        }}echo '<pre>';print_r($ret);echo '</pre>';$this->template->assign('agentslist_items', $ret);$this->template->assert('main_file_tpl', 'list1.tpl');}

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


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

 

Посмотрите что вообще в массиве получилось?

private function getAgents1(){$ret=array();$DBC=DBC::getInstance();/*$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND()';*/$query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN ( 5 ) GROUP BY d.user_id ORDER BY _cnt DESC';$stmt=$DBC->query($query);if ( !$has_result && preg_match('/^agents1[\/]?$/', $REQUESTURIPATH) ) {            $this->getAgents1();            $has_result=true;        }}echo '<pre>';print_r($ret);echo '</pre>';$this->template->assign('agentslist_items', $ret);$this->template->assert('main_file_tpl', 'list1.tpl');}

 

 

С этой функцией белый экран 

 

а с этой все запускается но не выводит агентов 

private function getAgents1(){$ret=array();$DBC=DBC::getInstance();/*$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND()';*/$query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN ( 5 ) GROUP BY d.user_id ORDER BY _cnt DESC';$stmt=$DBC->query($query);if($stmt){while($ar=$DBC->fetch($stmt)){$ret[]=$ar;}}$this->template->assign('agentslist_items', $ret);$this->template->assert('main_file_tpl', 'list1.tpl');}

Я знаю я ужасный клиент , аж тема горячая стала)  

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


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

Добавьте в вашей рабочей функции вот эти строчки

echo '<pre>';print_r($ret);echo '</pre>';

Перед этой строчкой

$this->template->assign('agentslist_items', $ret);

Выведет что-нибудь над сайтом?

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


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

Работать вроде продолжает но вроде ничего не изменилось?

Это значит

1. Что функция вообще не вызывается, т.е. неправильно ее прописали

2. Что запрос неправильно построен и не возвращает данные.

Надо отлаживать эти моменты.

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


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

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

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

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

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

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

Войти

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

Войти сейчас