Перейти к контенту

[1.x.x]Форма быстрого ответа IPB v1.2


urisoft

Рекомендуемые сообщения

d1pro

Если ты не против, то оформлю как отдельный хак (свой), а иначе запостю как просто модификация твоего.

Я не против, оформляй как свой.

Только обрати внимание на:

if (   ( $this->topic['quick_reply'] == 1 )
   and ( $std->check_perms( $this->topic['reply_perms']) == TRUE )
   and ( $this->topic['state'] != 'closed' ) )

Тут вопросы поднимались по поводу постов в закрытую тему (админом). В том числе и ты вопрос поднимал.

Так надо разрешить админам форму для постинга в закрытые темы :D

И еще в опросах (только опрос с запретом постинга.) в твоем варианте все равно будет форма быстрого ответа.

Посмотри как у меня сделано. А может чего и сам придумаешь.

 

Я так понимаю, разница в том, что твоя форма в стандартное место включается и функции пользователя (открыть/закрыть форму) сохраняются.

Как раз просьбы были сделать как в v1.1.x чтоб не надо было ее отдельно включать в профиле пользователя и в AdminCP.

А так вроде тоже самое.

Кидай в архив ...

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

  • Ответы 87
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

urisoft

Тут вопросы поднимались по поводу постов в закрытую тему (админом). В том числе и ты вопрос поднимал.

Так надо разрешить админам форму для постинга в закрытые темы 

И еще в опросах (только опрос с запретом постинга.) в твоем варианте все равно будет форма быстрого ответа.

Посмотри как у меня сделано. А может чего и сам придумаешь.

Да, я это помню. Я сделал просто расширение стандартной формы, без дополнительных фич.

Как раз просьбы были сделать как в v1.1.x чтоб не надо было ее отдельно включать в профиле пользователя и в AdminCP.

А так вроде тоже самое.

Я просто подумал, что раз уж есть форма, то зачем еще что-то добавлять, надо просто расширить - так и функциональнсоть вся остается :D

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

Амур

Ее для каждого форума в settings (в Админке Forum Control) включить надо Turn on the Quick Reply Box? в Yes и все.

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

urisoft

вопрос на засыпку: при открытии страницы форма не появляется до тех пор, пока не будет загружен последний элемент страницы. Только тогда появляется форма, рисуются в ней смайлы и т.д. В общем тормоза жуткие и неприятные. В чем причина может быть?

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

WildCat

Попробуй в файле skin_topic.php вставить <!--IBF.QUICK_REPLY_FORM--> не после

// ---------------
function TableFooter($data) {
global $ibforums;
return <<<EOF

а чуть ниже, после

      <!--IBF.TOPIC_ACTIVE-->
     <div class="activeuserstrip" align="center">« <a href='{$ibforums->base_url}showtopic={$data[TOPIC]['tid']}&view=old'>{$ibforums->lang['t_old']}</a> | <strong><a href='{$ibforums->base_url}showforum={$data['FORUM']['id']}'>{$data['FORUM']['name']}</a></strong> | <a href='{$ibforums->base_url}showtopic={$data[TOPIC]['tid']}&view=new'>{$ibforums->lang['t_new']}</a> »</div>
</div>

Правда может понадобиться в самой форме заменить:

<table cellpadding="0" cellspacing="0" width="100%">

на

<table class='tableborder' cellpadding="0" cellspacing="0" width="100%">

Для красоты.

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

Cindi

включаю форму быстрого ответа

А где включаете ? В AdminCP ? А права для ответа в тему есть ?

Я надеюсь, что мод формы быстрого ответа установлен ... :D

Если не установлен, то под сообщениями есть кнопка "Fast Reply" нажав на которую вы увидите стандартную форму быстрого ответа.

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

  • 2 недели спустя...

WildCat

К сожалению это не только проблема формы быстрого ответа. Такая же проблема на постах с большим текстом. Думаю решения пока нет. :D

Если кто в курсе как это побороть (если это возможно) напишите.

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

Builder код пересматривал, несколько раз пробовал ни чего не получается.

Ошибка появляется после того как сделаю это изменение:

 

// ---------------
// Найти в файле:
// ---------------
if (   ( $this->topic['quick_reply'] == 1 )
   and ( $std->check_perms( $this->topic['reply_perms']) == TRUE )
   and ( $this->topic['state'] != 'closed' ) )
{
 $show = "none";
 $sqr = $std->my_getcookie("open_qr");
 if ( $sqr == 1 )
 {
 	$show = "show";
 }
 $this->output = str_replace( "<!--IBF.QUICK_REPLY_CLOSED-->", $this->html->quick_reply_box_closed(), $this->output );
 $this->output = str_replace( "<!--IBF.QUICK_REPLY_OPEN-->"  , $this->html->quick_reply_box_open($this->topic['forum_id'], $this->topic['tid'], $show, $this->md5_check), $this->output );
}

// ---------------
// Заменить на:
// ---------------
 // QReplyForm start
 if (   ( $this->topic['quick_reply'] == 1 )
    and ( $std->check_perms( $this->topic['reply_perms']) == TRUE )
    and ( $this->topic['state'] != 'closed' or $ibforums->member['g_post_closed'] == 1 )
    and ( $this->topic['poll_state'] != 'closed' or $ibforums->member['g_post_closed'] == 1 ) )
 {
 	$ibforums->lang['the_max_length'] = $ibforums->vars['max_post_length'] * 1024;

 	$this->output = str_replace("<!--IBF.QUICK_REPLY_FORM-->",$this->html->quick_reply_form($this->topic['forum_id'],$this->topic['tid'],$this->md5_check),$this->output);
 	$this->quick_add_smilie();
 	$this->html_checkboxes($this->topic['tid']);
 	$this->output = str_replace("<!--IBF.NAME_FIELD-->",$this->html_name_field(),$this->output);
 }
 // QReplyForm end

 

Все остальное заменяется нормально...

 

Прошу прошения, не подумал... :D

Вот код файла Topics.php http://www.web-obzor.com/topics.txt

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

Были вопросы как добавить Upload в форму быстрого ответа.

Вот решение:

 

// -------------------
// В файле Topics.php
// -------------------
// Hайти:
// -------
$this->output = str_replace("<!--IBF.QUICK_REPLY_FORM-->",$this->html->quick_reply_form($this->topic['forum_id'],$this->topic['tid'],$this->md5_check),$this->output);
// ------------
// Заменить на:
// ------------
if ( ($std->check_perms($this->forum['upload_perms']) == TRUE ) and ($ibforums->member['g_attach_max'] > 0)) $form_extra = " enctype='multipart/form-data'";
else $form_extra = "";

$this->output = str_replace("<!--IBF.QUICK_REPLY_FORM-->",$this->html->quick_reply_form($this->topic['forum_id'],$this->topic['tid'],$this->md5_check,$form_extra),$this->output);
// ------------
// Найти:
// ------------
$this->output = str_replace("<!--IBF.NAME_FIELD-->",$this->html_name_field(),$this->output);
// ------------
// Добавить ниже:
// ------------
if ($form_extra != "")
{
 $this->output = str_replace("<!--UPLOAD_INPUT-->","<input type='hidden' name='MAX_FILE_SIZE' value='".($ibforums->member['g_attach_max']*1024)."' />\n<input type='hidden' name='can_upload' value='1' />",$this->output);
 $this->output = str_replace("<!--UPLOAD_FIELD-->",$this->html->Upload_field($ibforums->member['g_attach_max']."Kb"),$this->output);
}
// -------------------
// В файле skin_topic.php
// -------------------
// Найти:
// ------------
function quick_reply_form($fid="",$tid="",$key="") {
// ------------
// Заменить на:
// ------------
function quick_reply_form($fid="",$tid="",$key="",$extra="") {
// ------------
// Найти:
// ------------
<form name='REPLIER' action="{$ibforums->base_url}" method='post' onsubmit='return ValidateForm()'>
// ------------
// Заменить на:
// ------------
<form name='REPLIER' action="{$ibforums->base_url}" method='post' onsubmit='return ValidateForm()' $extra>
// ------------
// Найти:
// ------------
<input type='hidden' name='auth_key' value='$key' />
// ------------
// Добавить ниже:
// ------------
<!--UPLOAD_INPUT-->
// ------------
// Найти:
// ------------
<!--ENDFORM_QUICK-->
// ------------
// Добавить выше:
// ------------
<!--UPLOAD_FIELD-->
// ------------
// Найти:
// ------------
function smilie_table() {
// ------------
// Добавить выше:
// ------------
function Upload_field($data) {
global $ibforums;
return <<<EOF
 <tr>
   <td colspan="2" class='pformstrip'>{$ibforums->lang['upload_title']}</td>
 </tr>
 <tr>
   <td class='pformleft'>{$ibforums->lang['upload_text']} $data</td>
   <td class='pformright'><input class='textinput' type='file' size='30' name='FILE_UPLOAD' /></td>
 </tr>
EOF;
}

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

  • 2 недели спустя...

urisoft

а можно сделать так, чтобы если пользователь уже подписан на новые сообщения в теме, ему писалось не "вы уже подписаны", а был чекбокс с возможностью отписаться?

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

Dimonius

а можно сделать так, чтобы если пользователь уже подписан на новые сообщения в теме, ему писалось не "вы уже подписаны", а был чекбокс с возможностью отписаться?

Можно. Кажется я где-то видел уже такой мод. Гляну, но к сожалению не раньше выходных. :D

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

Dimonius

Чекбокс отписки от темы в форме быстрого ответа

 

// -------------------
// В файле skin_topic.php
// -------------------
// Hайти:
// -------
<br />{$ibforums->lang['already_sub']}
// ------------
// Заменить на:
// ------------
<br /><input type='checkbox' name='disabletrack' class='checkbox' value='1' /> {$ibforums->lang['disable_track']}
// -------------------
// В файле lang_post.php
// -------------------
// Hайти:
// -------
'enable_track' => "<strong>Включить</strong> уведолмение на e-mail при ответах?",
// ------------
// Добавить ниже:
// ------------
'disable_track' => "<strong>Отключить</strong> уведолмение на e-mail при ответах?",
// -------------------
// В файле post_reply_post.php
// -------------------
// Hайти:
// -------
	 $DB->query("INSERT INTO ibf_tracker ({$db_string['FIELD_NAMES']}) VALUES ({$db_string['FIELD_VALUES']})");
	 }
 }
// ------------
// Добавить ниже:
// ------------
 if ( $ibforums->member['id'] AND $ibforums->input['disabletrack'] == 1 )
 {
	 $DB->query("SELECT trid FROM ibf_tracker WHERE topic_id='".$this->topic['tid']."' AND member_id='".$ibforums->member['id']."'");

	 if ( $DB->get_num_rows() )
	 {
   $DB->query("DELETE FROM ibf_tracker WHERE member_id='".$ibforums->member['id']."' and topic_id='".$this->topic['tid']."'");
	 }
 }

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

Такой вопрос. Почему в opera иногда бывает так, что при ответе запрос пошел, но страничка на обновляется. Как этого избежать?
Ссылка на комментарий
Поделиться на других сайтах

SplideX

Почему в opera иногда бывает так, что при ответе запрос пошел, но страничка на обновляется. Как этого избежать?

Использовать IE ;)

А если серьезно, то не знаю. :D

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

  • 2 месяца спустя...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.