Модуль "Опрос на форуме" - нужна помощь

#1 6 октября 2014 в 16:36
Всем привет. Я тут новичок, поэтому, для начала представлюсь — Слава. А теперь, внимание, вопрос:

Уважаемые знатоки)))

Пытаюсь сделать свой модуль, а так как в php и mysql не рублю ни шиша, то столкнулся с некоторыми трудностями. Суть модуля — выводить какой-либо опрос из тем на форуме. Нужно выводить заголовок опроса, и ответы с количеством голосов (как в модуле "Голосование"), а также с кнопкой "Принять участие", которая просто отправляет пользователя в данную тему. Думаю, не мне одному пригодилось бы.

Вот что я делаю:

  1.  
  2. $sql = "select * from cms_forum_polls where id=$fpoll_id";
  3. $result = $inDB->query($sql) ;
  4. $fpoll=$inDB->fetch_assoc($result);
  5.  
И теперь я могу в .tpl вывести {$fpoll.title}, {$fpoll.thread_id}, с этим нормально всё. А вот {$fpoll.answers} выводит все ответы со всеми результатами одновременно. И это понятно, ведь они все пишутся в одну и ту же ячейку таблицы. Непонятно вот что:

Как каждому ответу присвоить собственные переменные, например {$fpoll.answertitle} и {$fpoll.answercount} ?

И второй вопрос — хочу потом (когда доделаю с вашей помощью) отдать модуль сообществу. Вроде, он ничего своего в базу писать не будет, можно ли обойтись без инсталлятора?

Заранее спасибо всем откликнувшимся.

upd речь, естественно, про версию кмс 1.10.4
#2 6 октября 2014 в 20:02
ап

ибо очень надо

я так понимаю, нужно ещё один запрос, и отлавливать в нём двоеточия и переводы строки… но вот как это сделать — убейте ((
#3 6 октября 2014 в 21:01
Берёшь модуль Голосования (mod_polls), в котором данные хранятся точно таким же образом, и разбираешь его как хочешь!
В частности:
$answers = unserialize($poll['answers']);

$answers_title = array();
$answers_num = array();
$item = 1;
foreach($answers as $key=>$value){
$key = str_replace('"', '"', $key);
$answers_title[$item] = $key;
$answers_num[$item] = $value;
$item++;
}
#4 6 октября 2014 в 21:11
Ленивый, это где? в /modules/mod_polls/module.php я такого не нашёл

Вот всё, что я смог пока придумать сам. Дальше без подсказки никак. Куда что писать, подскажите, пожалуйста
  1.  
  2. function mod_forum_poll($module_id, $cfg){
  3. $inDB = cmsDatabase::getInstance();
  4. $fpoll_id = 1;
  5. $sql = "select * from cms_forum_polls where id=$fpoll_id";
  6. $result = $inDB->query($sql) ;
  7. $fpoll=$inDB->fetch_assoc($result);
  8. cmsPage::initTemplate('modules', 'mod_forum_poll')->
  9. assign('fpoll', $fpoll)->
  10. assign('cfg', $cfg)->
  11. display('mod_forum_poll.tpl');
  12. return true;
  13. }
  14.  
#5 8 октября 2014 в 18:19
Вам наверное следует смотреть не всторону
  1. /modules/mod_polls/module.php
, а в сторону
  1. components/forum/frontend.php - if ($do=='view_poll'){..
там как раз есть то, что вам надо, если я правильно понял.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.