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

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 20 августа 2013 в 06:52
Добрый день всем.
Пытаюсь сделать вывод контактов из профиля пользователя, чтобы не делать новые поля для именно доски объявлений, а бралось из новых полей профиля.
поля в профиле добавил skype, phone, org (все отлично работает, заполнение не через конструктор)
перехожу к сути.
в файле /components/board/frontend.php
после
  1. // формируем заголовок и тело сообщения
  2. $item['title'] = $item['title'];
добавил такие сроки
  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.'');
и ниже где передаем данные в шаблон после
  1. $smarty->assign('user_id', $inUser->id);
добавил
  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}
Все выводится, НО! почему то в чужих объявлениях, — выводятся контактные данные МОИ. ну т.е. админа.
Что не так я сделал и что поправить или добавить? надеюсь на вашу помощь
#2 20 августа 2013 в 10:00
  1. $smarty->assign('skype', $inUser->user_id);
  2. $smarty->assign('org', $inUser->user_id);
  3. $smarty->assign('phone', $inUser->user_id);
вот так надо было…
#3 27 августа 2013 в 05:43
блин, оказывается не правильно… т.е. выводит только для тебя — твои же контактные данные
попробовал сделать вот так
  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');
  1.  
  2. $smarty->assign('skype', $inUser->skype);
  3. $smarty->assign('org', $inUser->org);
  4. $smarty->assign('phone', $inUser->phone);
тоже самое… Подскажите что не так?
#4 28 августа 2013 в 07:14
кто подскажет? :(
#5 28 августа 2013 в 10:03
trOid,
1. учить матчасть, так никуда не годится
''.$inUser->skype.'' — что это? Это ведь равно $inUser->skype, т.е.
  1. $item['skype'] = cmsCore::request('skype', 'str', $inUser->skype);

Все выводится, НО! почему то в чужих объявлениях, — выводятся контактные данные МОИ. ну т.е. админа.

trOid
Что вы туда определили, то там и выводится, к чему там был метод request(), вы разобрались что он делает?

попробовал сделать вот так

trOid

$smarty->assign('skype', $inUser->skype);

trOid
Вы тыкаете пальцем в небо, не понимая что делаете
  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} и т.д. Специально не пишу готовый ответ, типа заменить это на это, попробуйте подумать сами — у вас должно получиться.
#6 28 августа 2013 в 10:09

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

Fuze
Ставлю сотку, что нет)
#7 28 августа 2013 в 11:26
простите за мои говнопробы что то сделать (сам понимаю что оно походу выводит поля текущего пользователя, а не автора объявления), но ведь по другому никак. Пытаюсь делать по аналогии, путем проб и ошибок, видимо было все не правильно. Я ведь не программист, и даже не учусь… хотя всегда мечтал научиться. Но тут с самоучением грубо говоря "хреново".
Ладно, попробую разобраться.
#8 28 августа 2013 в 11:33
Fuze,
Спасибо большое!
Стоило просто добавить в запрос функции getRecord в файле model.php :)
  1.  
  2. u.skype as skype,
  3. u.phone as phone,
  4. u.org as org,
УРА!
lokanaft,

Ставлю сотку, что нет)

lokanaft
ыыы, гони сотку! :))))
#9 28 августа 2013 в 11:41

УРА!

trOid

Ставлю сотку, что нет)

lokanaft
smile
trOid, вопросы у вас конкретные, поэтому и стали получать ответы на них, видно, что хотите разобраться сами и сделать. Поэтому не стоит оправдываться, все нормально, все с чего-то начинали. Рад, что помог.
  1. u.skype AS skype,
  2. u.phone AS phone,
  3. u.org AS org,
если таких полей с такими же названиями в других таблицах нет, то проще делать так:
  1. u.skype,
  2. u.phone,
  3. u.org,
#10 29 августа 2013 в 04:12
решено
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.