Вывод контактов в объявлениях

 
Посетитель
small user social cms
Медаль
Сообщений: 702
Добрый день всем.
Пытаюсь сделать вывод контактов из профиля пользователя, чтобы не делать новые поля для именно доски объявлений, а бралось из новых полей профиля.
поля в профиле добавил skype, phone, org (все отлично работает, заполнение не через конструктор)
перехожу к сути.
в файле /components/board/frontend.php
после
Код PHP:
  1. // формируем заголовок и тело сообщения
  2. $item['title'] = $item['title'];
добавил такие сроки
Код PHP:
  1. // формируем заголовок и тело сообщения
  2. $item['skype'] = cmsCore::request('skype', 'str', ''.$inUser->skype.'');
  3. $item['org'] = cmsCore::request('org', 'str', ''.$inUser->org.'');
  4. $item['phone'] = cmsCore::request('phone', 'str', ''.$inUser->phone.'');
и ниже где передаем данные в шаблон после
Код PHP:
  1. $smarty->assign('user_id', $inUser->id);
добавил
Код PHP:
  1. $smarty->assign('skype', $inUser->id);
  2. $smarty->assign('org', $inUser->id);
  3. $smarty->assign('phone', $inUser->id);
вывод в шаблоне com_board_item.tpl теперь переменными {$item.phone} {$item.org} {$item.skype}
Все выводится, НО! почему то в чужих объявлениях, - выводятся контактные данные МОИ. ну т.е. админа.
Что не так я сделал и что поправить или добавить? надеюсь на вашу помощь
Редактировалось: 1 раз (Последний: 20 августа 2013 в 06:53)
Посетитель
small user social cms
Медаль
Сообщений: 702
Код PHP:
  1. $smarty->assign('skype', $inUser->user_id);
  2. $smarty->assign('org', $inUser->user_id);
  3. $smarty->assign('phone', $inUser->user_id);
вот так надо было...
Редактировалось: 2 раз (Последний: 28 августа 2013 в 07:14)
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 702
блин, оказывается не правильно...т.е. выводит только для тебя - твои же контактные данные
попробовал сделать вот так
Код PHP:
  1.  
  2. $item['skype'] = $inDB->get_field('cms_users', 'id='.$inUser->id, 'skype');
  3. $item['org'] = $inDB->get_field('cms_users', 'id='.$inUser->id, 'org');
  4. $item['phone'] = $inDB->get_field('cms_users', 'id='.$inUser->id, 'phone');
Код PHP:
  1.  
  2. $smarty->assign('skype', $inUser->skype);
  3. $smarty->assign('org', $inUser->org);
  4. $smarty->assign('phone', $inUser->phone);
тоже самое...Подскажите что не так?
Посетитель
small user social cms
Медаль
Сообщений: 702
кто подскажет? :(
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4575
trOid,
1. учить матчасть, так никуда не годится
''.$inUser->skype.'' - что это? Это ведь равно $inUser->skype, т.е.
Код PHP:
  1. $item['skype'] = cmsCore::request('skype', 'str', $inUser->skype);
trOid:
Все выводится, НО! почему то в чужих объявлениях, - выводятся контактные данные МОИ. ну т.е. админа.
Что вы туда определили, то там и выводится, к чему там был метод request(), вы разобрались что он делает?
trOid:
попробовал сделать вот так
trOid:
$smarty->assign('skype', $inUser->skype);
Вы тыкаете пальцем в небо, не понимая что делаете
Код PHP:
  1. $item['skype'] = $inDB->get_field('cms_users', 'id='.$inUser->id, 'skype');
  2. $item['org'] = $inDB->get_field('cms_users', 'id='.$inUser->id, 'org');
  3. $item['phone'] = $inDB->get_field('cms_users', 'id='.$inUser->id, 'phone');
что выполняет данные код? Что вы ниже передаете в smarty? Зачем?? И зачем получаете $item['skype'], $item['org'], $item['phone'] для текущего пользователя, ведь эти данные у вас есть - $inUser->skype $inUser->org и т.д.

2. Ответ на ваш вопрос: для того, чтобы выводить нужные вам допполя в объявлении (при его просмотре) необходимо в методе getRecord() модели компонента board поправить запрос, добавив в выборку нужные вам поля. После этого в массиве $item они будут доступны, ничего дополнительно передавать в шаблон не нужно. В самом шаблоне будете использовать как {$item.skype} и т.д. Специально не пишу готовый ответ, типа заменить это на это, попробуйте подумать сами - у вас должно получиться.
Редактировалось: 1 раз (Последний: 28 августа 2013 в 10:03)
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
Fuze:
попробуйте подумать сами - у вас должно получиться
Ставлю сотку, что нет)
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Посетитель
small user social cms
Медаль
Сообщений: 702
простите за мои говнопробы что то сделать (сам понимаю что оно походу выводит поля текущего пользователя, а не автора объявления), но ведь по другому никак. Пытаюсь делать по аналогии, путем проб и ошибок, видимо было все не правильно. Я ведь не программист, и даже не учусь...хотя всегда мечтал научиться. Но тут с самоучением грубо говоря "хреново".
Ладно, попробую разобраться.
Посетитель
small user social cms
Медаль
Сообщений: 702
Fuze,
Спасибо большое!
Стоило просто добавить в запрос функции getRecord в файле model.php :)
Код PHP:
  1.  
  2. u.skype as skype,
  3. u.phone as phone,
  4. u.org as org,
УРА!
lokanaft,
lokanaft:
Ставлю сотку, что нет)
ыыы, гони сотку! :))))
Редактировалось: 2 раз (Последний: 28 августа 2013 в 11:37)
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4575
trOid:
УРА!
lokanaft:
Ставлю сотку, что нет)
smile
trOid, вопросы у вас конкретные, поэтому и стали получать ответы на них, видно, что хотите разобраться сами и сделать. Поэтому не стоит оправдываться, все нормально, все с чего-то начинали. Рад, что помог.
Код SQL:
  1. u.skype AS skype,
  2. u.phone AS phone,
  3. u.org AS org,
если таких полей с такими же названиями в других таблицах нет, то проще делать так:
Код SQL:
  1. u.skype,
  2. u.phone,
  3. u.org,
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 702
решено
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: