Notice: Undefined index: name in /home/exbb/exbb.info/www/community/include/lib.php on line 293 Notice: Undefined index: name in /home/exbb/exbb.info/www/community/include/lib.php on line 293 ExBB Community :: Версия для печати :: Проблема с переключателями в форме ответа
ExBB Community » Файловый ExBB » Решение проблем » Проблема с переключателями в форме ответа

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

1. - 21 августа 2013 — 17:08 - перейти к сообщению
Проблема заключается в следующем...
При создании ответа не запоминается положение этих переключателей



Мануал, который я предложу ниже содержит указание на номера строк в файлах.
Эти цифры приблизительны и приведены исключительно для примерной навигации.
(Добавление)
Открываем файл post_reply.tpl
Код (строка 80)
CODE:
<input name="html" type="radio" value="yes"> {$fm->LANG['Yes']}
<input name="html" type="radio" value="no" checked> {$fm->LANG['No']}

заменяем кодом
CODE:
<input name="html" type="radio" value="yes" {$html_yes}> {$fm->LANG['Yes']}
<input name="html" type="radio" value="no" {$html_no}> {$fm->LANG['No']}


Далее открываем файл post.php
После кода (строка 328)
CODE:
function reply() {
global $fm;

добавляем код
CODE:
if (isset($fm->input['html']))
{
$html_yes = ($fm->input['html'] == 'yes') ? ' checked':'';
$html_no = ($fm->input['html'] == 'no') ? ' checked':'';
}
else
{
$html_yes = '';
$html_no = ' checked';
}
$check_smiles = isset($fm->input['showsmiles']) ? ' checked':'';

затем меняем код (второе вхождение, строка 385)
CODE:
$smilesbutton = ($fm->exbb['emoticons'] === TRUE) ? '<input type=checkbox name="showsmiles" value="yes" checked> '.$fm->LANG['DoSmiles'].'<br>':'';

кодом
CODE:
$smilesbutton = ($fm->exbb['emoticons'] === TRUE) ? '<input type=checkbox name="showsmiles" value="yes"'.$check_smiles.'> '.$fm->LANG['DoSmiles'].'<br>':'';


и наконец код (второе вхождение, строка 400)
CODE:
$PreviewText = $fm->bads_filter($fm->formatpost($fm->input['inpost'],$html));

меняем кодом
CODE:
$smiles = ($check_smiles == '') ? FALSE : TRUE ;
$PreviewText = $fm->bads_filter($fm->formatpost($fm->input['inpost'],$html,$smiles));


Далее открываем topic.php

Ищем код (строка 90)
CODE:
$ReplyButton = ($topic['state'] == 'open') ? '<a href="post.php?action=reply&forum='.$forum_id.'&topic='.$topic_id.'"><img src="./templates/'.DEF_SKIN.'/im/'.DEF_LANG.'/replytothread.gif" border="0"></a>':'<img src="./templates/'.DEF_SKIN.'/im/'.DEF_LANG.'/closed.gif" border="0">';

который меняем кодом
CODE:
$ReplyButton = ($topic['state'] == 'open') ? '<a href="post.php?action=reply&showsmiles=yes&forum='.$forum_id.'&topic='.$topic_id.'"><img src="./templates/'.DEF_SKIN.'/im/'.DEF_LANG.'/replytothread.gif" border="0"></a>':'<img src="./templates/'.DEF_SKIN.'/im/'.DEF_LANG.'/closed.gif" border="0">';


и наконец ищем код (строка 286)
CODE:
$reply = ($access === TRUE && $topic['state'] != 'closed') ? '<a href="post.php?action=replyquote&forum='.$forum_id.'&topic='.$topic_id.'&postid='.$key.'" title="'.$fm->LANG['IconReply'].'">'.$_icon['reply'].'</a>'.$_icon['divider']:"";

который меняем кодом
CODE:
$reply = ($access === TRUE && $topic['state'] != 'closed') ? '<a href="post.php?action=replyquote&showsmiles=yes&forum='.$forum_id.'&topic='.$topic_id.'&postid='.$key.'" title="'.$fm->LANG['IconReply'].'">'.$_icon['reply'].'</a>'.$_icon['divider']:"";


Открываем файл formcode.js
Ищем код (строка 99)
CODE:
JsHttpRequest.query('jsloader.php?loader=preview', {action: act, html: htmltags, text: TextArea.value}, function(data,text) {

который меняем на
CODE:
JsHttpRequest.query('jsloader.php?loader=preview', {action: act, html: htmltags, shsmiles: form.showsmiles.checked, text: TextArea.value}, function(data,text) {


Затем открываем файл jsloader.php
Ищем код (строка 29)
CODE:
$fm->_String('action');

после которого вставляем
CODE:
$smiles = ($fm->input['shsmiles'] == '') ? FALSE : TRUE ;


Далее ищем два вхождения (строки 61 и 64)
CODE:
echo $fm->formatpost($fm->input['text'],$fm->_Boolean($fm->input,'html'));

и в обоих случаях меняем на
CODE:
echo $fm->formatpost($fm->input['text'],$fm->_Boolean($fm->input,'html'),$smiles);


Теперь вроде всё...
2. Yamaliya - 22 августа 2013 — 04:40 - перейти к сообщению
NordWest, спасибо за ваши труды, но на какой сборке вы это делали? В собрке ExBB_FM_1.0_Final_5.02.2013 строки другие, и проблем со смайликами у меня нет. В частности
NordWest пишет:
(второе вхождение, строка 385)
CODE:
$smilesbutton = ($fm->exbb['emoticons'] === TRUE) ? '<input type=checkbox name="showsmiles" value="yes" checked> '.$fm->LANG['DoSmiles'].'<br>':'';
имеет вид
CODE:
$smilesbutton = ($fm->exbb['emoticons'] === TRUE) ? '<input type="checkbox" name="showsmiles" value="yes"' . (isset($fm->input['showsmiles']) || $fm->_String('preview') === '' ? ' checked> ' : '> ') . $fm->LANG['DoSmiles'] . '<br />' : '';

Чтобы предпросмотр не портил галочку "html" мне помогло это:
NordWest пишет:
Открываем файл post_reply.tpl
Код (строка 80)
CODE:
<input name="html" type="radio" value="yes"> {$fm->LANG['Yes']}
<input name="html" type="radio" value="no" checked> {$fm->LANG['No']}

заменяем кодом
CODE:
<input name="html" type="radio" value="yes" {$html_yes}> {$fm->LANG['Yes']}
<input name="html" type="radio" value="no" {$html_no}> {$fm->LANG['No']}


Далее открываем файл post.php
После кода (строка 328)
CODE:
function reply() {
global $fm;

добавляем код
CODE:
if (isset($fm->input['html']))
{
$html_yes = ($fm->input['html'] == 'yes') ? ' checked':'';
$html_no = ($fm->input['html'] == 'no') ? ' checked':'';
}
else
{
$html_yes = '';
$html_no = ' checked';
}
3. - 22 августа 2013 — 08:00 - перейти к сообщению
Цитата:
но на какой сборке вы это делали?

Да, сборка у меня не самая последняя, это точно. Но я сам её перебирал, внес некоторые изменения в инсталлятор и внешний вид исходного кода, а потому уже буду сидеть на ней.

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0173]     [ ]