| NordWest |
Отправлено: 21 августа 2013 — 18:27 • Тема: Сохраняем положение переключателей в форме ответа • Форум: ExBB Community |
Ответов: 5 Просмотров: 2387
 |
Просто для информации...
Из файла topic.php вызывается post_form.tpl
Из файла post.php вызывается post_reply.tpl
Базовые функции описаны в fm.class.php vars.class.php и lib.php
Предварительный просмотр сделан на AJAX что и вызвало основную трудность. У меня вообще всё что связано с ява скриптами трудно усваивается. Нужно будет на досуге специально почитать.
А вообще... завязываю ковыряться с ExBB... Тяжело читается. Если уж вникать - то нужно сначала поправить код в плане большей читабельности, а это куча времени. Может зимой... |
| NordWest |
Отправлено: 20 августа 2013 — 23:08 • Тема: Сохраняем положение переключателей в форме ответа • Форум: ExBB Community |
Ответов: 5 Просмотров: 2387
 |
Открываем файл 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);
Теперь вроде всё... |
| NordWest |
Отправлено: 20 августа 2013 — 22:39 • Тема: Сохраняем положение переключателей в форме ответа • Форум: ExBB Community |
Ответов: 5 Просмотров: 2387
 |
Далее открываем 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']:""; |
| NordWest |
Отправлено: 20 августа 2013 — 22:32 • Тема: Сохраняем положение переключателей в форме ответа • Форум: ExBB Community |
Ответов: 5 Просмотров: 2387
 |
Далее открываем файл 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)); |
| NordWest |
Отправлено: 20 августа 2013 — 22:08 • Тема: Сохраняем положение переключателей в форме ответа • Форум: ExBB Community |
Ответов: 5 Просмотров: 2387
 |
Открываем файл 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']} |
| NordWest |
Отправлено: 17 августа 2013 — 16:34 • Тема: Прячем список посетителей под спойлер • Форум: ExBB Community |
Ответов: 0 Просмотров: 969
 |
В самом низу форума есть статистика посещений, где указывается сколько народу посетило форум и их ники.
Если пользователей много - список ников получается громоздким. Что бы было аккуратнее можно убрать его под спойлер.
Для этого в файле index.php ищем строку:
code:($hiddens) ? sprintf($fm->LANG['HiddensOnline'], $hiddens) : '', ($was) ? '<br>'.implode(', ', $was) : '');
и заменяем её строкой:
code:($hiddens) ? sprintf($fm->LANG['HiddensOnline'], $hiddens) : '', ($was) ? ' <span id="sp_todayvisit">(<a href="#" onClick="spoiler(\'_todayvisit\'); return false;">'.$fm->LANG['SpoilerShow'].'</a>)</span><div id="spoiler_todayvisit" style="display: none;">'.implode(', ', $was).'</div>' : '');
Необходимым условием нормальной работы является наличие на форуме кода для работы спойлера как такового и включенной в админке опции
"Отображать подсказки быстрого просмотра первого и последнего сообщения?" |
| NordWest |
Отправлено: 17 августа 2013 — 16:10 • Тема: Отсеиваем слишком короткие посты... • Форум: ExBB Community |
Ответов: 0 Просмотров: 858
 |
Попросили решить такую задачу - запретить пользователям оставлять слишком короткие сообщения. Получилось как-то так...
Открываем файл post.php в котором ищем строки
code:#Check double clicking :)
if ($topic[$last_key]['post'] == $fm->input['inpost']) {
$fm->_FcloseAll();
$fm->_Message($fm->LANG['ReplyCreate'],$fm->LANG['ReplySavedAlredy']);
}
после которых вставляем
code:# Отсеиваем короткие посты...
if (strlen($fm->input['inpost']) < 5)
{
$fm->_FcloseAll();
$fm->_Message($fm->LANG['ReplyCreate'],'Ваше сообщение очень короткое!');
}
В коде жестко зашито ограничение на 5 символов - где поменять видно невооруженным взглядом.  |
| NordWest |
Отправлено: 22 июня 2013 — 12:17 • Тема: Кнопки в админцентре • Форум: Limbo CMS |
Ответов: 1 Просмотров: 1441
 |
Сами системные кнопки формируются в system.toolbar.php
Чуть позже я опишу, как создавать свои кнопки и формировать на них реакцию скрипта. |
| NordWest |
Отправлено: 20 июня 2013 — 09:47 • Тема: Кнопки в админцентре • Форум: Limbo CMS |
Ответов: 1 Просмотров: 1441
 |
Разговор буду вести про элементы админцентра, выделенные на картинке
Начну с того, где объявлен класс, отвечающий за формирование кнопок.
Файл лежит в папке classes и называется class_toolbar.php
В класс зашито некоторое количество базовых кнопок.
code:Добавить _TB_NEW,'new'
Загрузить _TB_UPLOAD,'upload'
Загрузить _TB_UPLOAD,'upload_gui'
Править _TB_EDIT,'edit'
Удалить _TB_DELETE,'delete'
Обновить _TB_REORDER,'reorder'
Читать _TB_READ,'edit'
Вкл. _TB_PUBLISH,'publish'
Откл. _TB_UNPUBLISH,'unpublish'
В архив _TB_ARCHIVE,'archive'
Из архива _TB_UNARCHIVE,'unarchive'
Создать _TB_CREATE,'create'
Сохранить _TB_SAVE,'save'
Ответить _TB_REPLY,'save'
Назад _TB_BACK,'back'
Установка _TB_INSTALL,'install'
Удалить _TB_UNINSTALL,'uninstall'
Отмена _TB_CANCEL,'cancel'
Часть кнопок повторяется по названию (особенности перевода), часть по функционалу. Я просто перечислил что зашито на текущий момент в код. |
|