Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Создание (добавление) опроса в уже существующей теме
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1] 

> Без описания
lisiycat
Отправлено: 26 Ноября, 2008 - 04:05:30
Post Id


Member


Покинул форум
Сообщений всего: 106
Дата рег-ции: Май 2008  

Карма 0




Подскажите, пожалуйста, может кто сталкивался с такой ситуацией когда нужно создать опрос в уже существующей теме? Как его решить?

P.S. Искал в поиске нужную тему, но не нашел. Только вопрос без ответа, ктр. задавал defenderyk
 
 Top
defenderyk
Отправлено: 26 Ноября, 2008 - 05:35:20
Post Id


Super Member


Покинул форум
Сообщений всего: 709
Дата рег-ции: Окт. 2007  
Откуда: Россия

Карма 3




не нашел, потому, что нельзя в этом форуме этого сделать.
 
 Top
yura3d
Отправлено: 28 Ноября, 2008 - 12:10:44
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




lisiycat пишет:
Подскажите, пожалуйста, может кто сталкивался с такой ситуацией когда нужно создать опрос в уже существующей теме? Как его решить?

P.S. Искал в поиске нужную тему, но не нашел. Только вопрос без ответа, ктр. задавал defenderyk

defenderyk пишет:
не нашел, потому, что нельзя в этом форуме этого сделать.

Сделать можно всё. Почти всё Подмигивание

Вобщем набросал по-быстрому добавление опроса к существующей теме. Добавить опрос в тему может только автор темы, ну и конечно же администраторы и модераторы

Для того чтобы эта возможность стала реальностью на Вашем форуме открываем файл topic.php и находим строку:
CODE:
unset($users,$firstkey);

И заменяем её строкой:
CODE:
unset($users);

Далее в этом же файле находим строку:
CODE:
$options = array();

И прямо под ней добавляем строки:
CODE:
if ((!file_exists('forum'.$forum_id.'/'.$topic_id.'-poll.php')) && ($threads[$firstkey]['state'] != 'closed') && ((($fm->user['id']) && ($threads[$firstkey]['p_id'] == $fm->user['id'])) || ($fm->_Moderator === TRUE)))
$options[] = '<a href="post.php?action=addpoll&forum='.$forum_id.'&topic='.$topic_id.'">'.$fm->LANG['AddPoll'].'</a>';

Теперь открываем файл post.php и находим строку:
CODE:
switch ($fm->input['action']) {

И прямо под ней вставляем строки:
CODE:
case 'addpoll' : addpoll();
break;

Далее в этом же файле находим строку:
CODE:
include('page_tail.php');

И прямо под ней вставляем функцию:
CODE:
function addpoll() {
global $fm;

if (!$fm->user['id'])
$fm->_Message($fm->LANG['AdditionPoll'], $fm->LANG['PollGuest']);

$forum_id = $fm->_Intval('forum');
$topic_id = $fm->_Intval('topic');

$topic_file = 'forum'.$forum_id.'/'.$topic_id.'-thd.php';
$poll_file = 'forum'.$forum_id.'/'.$topic_id.'-poll.php';

if (!file_exists($topic_file))
$fm->_Message($fm->LANG['AdditionPoll'], $fm->LANG['TopicMiss']);

if (file_exists($poll_file))
$fm->_Message($fm->LANG['AdditionPoll'], $fm->LANG['PollAlreadyExists']);

$allforums = $fm->_Read(FM_ALLFORUMS, 0);
$fm->_GetModerators($forum_id, $allforums);

$threads = $fm->_Read($topic_file, 0);
$firstkey = reset(array_keys($threads));

if ($threads[$firstkey]['state'] == 'closed')
$fm->_Message($fm->LANG['AdditionPoll'], $fm->LANG['PollTopicClosed']);

if (($threads[$firstkey]['p_id'] != $fm->user['id']) && ($fm->_Moderator !== TRUE))
$fm->_Message($fm->LANG['AdditionPoll'], $fm->LANG['PermsAddPoll']);

$forumname = $allforums[$forum_id]['name'];
$topicname = $threads[$firstkey]['name'];

$pollname = $fm->_String('pollname');
$pollansw = $fm->_String('pollansw');

$error = array();

if (!$fm->_POST) {
$fm->_Title = ' :: '.sprintf($fm->LANG['AdditionPollTopic'], $topicname);
include('templates/'.DEF_SKIN.'/all_header.tpl');
include('templates/'.DEF_SKIN.'/logos.tpl');
include('templates/'.DEF_SKIN.'/addpoll.tpl');
include('templates/'.DEF_SKIN.'/footer.tpl');
}
else {
if (!$pollname) $error[] = $fm->LANG['PollNameEmpty'];

$pollansw = explode("\n", $pollansw);
if ((!$pollansw[0]) || (count($pollansw) > 10)) $error[] = $fm->LANG['PollError'];

if ($error) {
$fm->_Title = ' :: '.sprintf($fm->LANG['AdditionPollTopic'], $topicname);
include('templates/'.DEF_SKIN.'/all_header.tpl');
include('templates/'.DEF_SKIN.'/logos.tpl');
include('templates/'.DEF_SKIN.'/addpoll.tpl');
include('templates/'.DEF_SKIN.'/footer.tpl');
}
else {
foreach ($pollansw as $offset => $answ)
$choices[$offset] = array($offset, $answ, 0);

$fm->_Read2Write($fp_poll, $poll_file, TRUE);
$poll = array(
'pollname' => $pollname,
'started' => $fm->_Nowtime,
'start_id' => $fm->user['id'],
'choices' => $choices,
'votes' => 0,
'ids' => array()
);
$fm->_Write($fp_poll, $poll);

$fm->_Message($fm->LANG['AdditionPoll'], $fm->LANG['PollAdded'], 'topic.php?forum='.$forum_id.'&topic='.$topic_id);
}
}
}

Продолжение в следующем сообщении, в один пост всё не влезло Огорчение
 
 Top
yura3d
Отправлено: 28 Ноября, 2008 - 12:10:56
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




Продолжение. Начало в предыдущем посте

Теперь нужно добавить языковые переменные в файл language/russian/lang_front_forums.php:
CODE:
$this->LANG['AddPoll'] = 'Добавить опрос';
$this->LANG['AdditionPoll'] = 'Добавление опроса';
$this->LANG['PollGuest'] = 'Гости не могут создавать опросы. Войдите или зарегистрируйтесь!';
$this->LANG['PollAlreadyExists'] = 'Опрос в этой теме уже существует';
$this->LANG['PollTopicClosed'] = 'Вы не можете добавить опрос в закрытую тему';
$this->LANG['PermsAddPoll'] = 'Добавить опрос могут только автор темы, администраторы и модераторы';
$this->LANG['AdditionPollTopic'] = 'Добавление опроса в тему %s';
$this->LANG['PollAdded'] = 'Опрос успешно добавлен';

Осталось создать шаблон добавления опроса templates/InvisionExBB/addpoll.tpl и разместить в нём код:
CODE:
<?php
$err = ($error) ? '<font color="#ff0000">'.implode('<br>', $error).'<br><br>' : '';
echo <<<DATA
<div id="navstrip" align="left"><br>
<img src="./templates/InvisionExBB/im/nav.gif" border="0" alt="&gt;" />&nbsp;<a href="index.php">{$fm->exbb['boardname']}</a> &nbsp;&raquo;&nbsp; <a href="forums.php?forum={$forum_id}">{$forumname}</a> &nbsp;&raquo;&nbsp; <a href="topic.php?forum={$forum_id}&topic={$topic_id}">$topicname</a>
<br><br></div>
{$err}
<table class="tableborder" cellpadding="0" cellspacing="0" width="100%">
<form method="post">
<tr>
<td class="maintitle" colspan="2"><img src="./templates/InvisionExBB/im/nav_m.gif" border="0" alt="&gt;" width="8" height="8" />&nbsp;{$fm->LANG['AdditionPoll']}</td>
</tr>
<tr>
<td class="pformleft"><b>{$fm->LANG['PollQuestion']}</b></td>
<td class="pformright">
<input type="hidden" name="poll" value="yes">
<input type="text" name="pollname" style="width:450px" size="40" maxlength="255" value="{$fm->input['pollname']}">
</td>
</tr>
<tr>
<td class="pformleft" valign="top">
<b>{$fm->LANG['PollAnswers']}</b>
<br>
{$fm->LANG['PollAnswersDesc']}
</td>
<td class="pformright"><textarea name="pollansw" style="width:380px" rows="10" cols="35" wrap="soft">{$fm->input['pollansw']}</textarea></td>
</tr>
<tr>
<td class="pformstrip" align="center" style="text-align:center" colspan="2">
<input type="submit" name="submit" value="{$fm->LANG['Send']}" accesskey="s" /> &nbsp;
<input type="reset" name="Clear" value="{$fm->LANG['Clear']}" />
</td>
</tr>
</form>
</table>
DATA;
?>

На этом всё

Теперь в случае если в теме ещё нет опроса, то в опциях темы (рядом со ссылками на подписку, версию для печати и поиск в теме) появится ссылка Добавить опрос. Данная ссылка доступна только автору темы, а также администраторам и модераторам во всех темах
 
 Top
lisiycat
Отправлено: 28 Ноября, 2008 - 12:36:08
Post Id


Member


Покинул форум
Сообщений всего: 106
Дата рег-ции: Май 2008  

Карма 0




Спасибо! Все получилось с первого раза. Супер!!
 
 Top
defenderyk
Отправлено: 28 Ноября, 2008 - 17:40:20
Post Id


Super Member


Покинул форум
Сообщений всего: 709
Дата рег-ции: Окт. 2007  
Откуда: Россия

Карма 3




yura3d, я и не сомневаюсь, что можно сделать)

когда я говорил:
defenderyk пишет:
не нашел, потому, что нельзя в этом форуме этого сделать.


Я имел ввиду то, что в движке не было этой возможности до сегодняшнего дня)

yura3d пишет:
Вобщем набросал по-быстрому добавление опроса к существующей теме.


Ничего себе) Такое можно набросать побыстрому Не понял

(Отредактировано автором: 28 Ноября, 2008 - 17:40:46)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« ExBB - лучший форум на файлах »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0419]     [ Gzipped ]