Страниц (200): В начало « ... 121 122 123 124 [125] 126 127 128 129 ... » В конец
Найдено сообщений: 2986 |
yura3d |
Отправлено: 1 августа 2009 — 09:03 • Тема: Общие вопросы • Форум: Общие вопросы |
Ответов: 291 Просмотров: 199985
 |
Assassin
Оставьте ссылку на Ваши сайт и форум |
yura3d |
Отправлено: 31 июля 2009 — 19:03 • Тема: Общие вопросы • Форум: Общие вопросы |
Ответов: 291 Просмотров: 199985
 |
News5000 пишет:Тоже не знаю куда написать, а то мои сообщения постоянно удаляют.
Никто Ваши сообщения не удаляет. Просто если Вы не удосуживаетесь пользоваться поиском перед написанием сообщений (за что, кстати, в следующий раз будет штраф), за Вас это делают модераторы форума, и перемещают Ваши сообщения в темы, которые наиболее полно соответствуют их содержанию
Ваше сообщение и ответ на Ваш вопрос Вы можете найти здесь |
yura3d |
Отправлено: 31 июля 2009 — 18:31 • Тема: Поиск строковых переменных в языковых файлах • Форум: Обсуждение |
Ответов: 6 Просмотров: 7780
 |
News5000 пишет:Как изменить правила, которые появляются при регистрации?
Искомый текст правил прописан в файле language/russian/lang_front_register.php (переменная $this->LANG['RegAgreement']) |
yura3d |
Отправлено: 31 июля 2009 — 18:08 • Тема: Мод: Антиспам для гостей при создании тем и сообщений • Форум: Модификации и дополнения |
Ответов: 27 Просмотров: 30485
 |
electron пишет:а можно нечто подобное и в окне регистрации сделать? я понимаю, что это не очень сложно и попробовал бы сам, но не соображу куда лезть... 
Можно. В файле language/russian/lang_front_register.php нужно найти строку:
CODE:$this->LANG['CaptchaBroken'] = 'Если Вы не видете код на картинке, то перегрузите окно браузера (Ctrl+R)';
И заменить её строкой:
CODE:$this->LANG['CaptchaBroken'] = 'Если Вы не видете код на картинке, то <a href="#" onClick="reload_captcha(); return false;"><b>обновите картинку с кодом</b></a>';
Далее в файле templates/InvisionExBB/agreed.tpl найти строку:
CODE:<td class="profilright"><img src="regimage.php" border="0" alt="captcha"></td>
И заменит её строкой:
CODE:<td class="profilright"><img src="regimage.php" id="captcha" border="0" alt="captcha"></td>
И, наконец, в этом же файле чуть ниже ищем строку:
CODE:<td class="profilright"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
И заменяем её строками:
CODE:<td class="profilright"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10">
<script language="JavaScript" src="javascript/reload_captcha.js"></script></td>
Чтобы обновление каптчи работало, в папке javascript должен размещаться скрипт reload_captcha.js, выложенный в первом сообщении темы |
yura3d |
Отправлено: 31 июля 2009 — 11:58 • Тема: Вопрос по PM (личной почте) • Форум: Решение проблем |
Ответов: 3 Просмотров: 2954
 |
robert пишет:1. Не получается отправить сообщение с одинаковым текстом разным людям (название темы даже менял). Пишет: "Ваше сообщение уже отправлено".
Таким образом немного некорректно срабатывает защита от двойного нажатия кнопки отправки
Для исправления откройте файл messenger.php, найдите строку:
CODE:$TextHash = md5($fm->input['message']);
И замените её строкой:
CODE:$TextHash = md5($fm->input['message'].$fm->input['tousername']);
robert пишет:2. Возможно ли Л.С. отправить одновременно нескольким получателям?
На данный момент такой возможности нет. Не считаю её полезной, т.к. возможность одновременной отправки сообщений нескольким пользователям будет на руку спамерам. Возможно, сделаем возможность такой отправки только для администраторов и супермодераторов |
yura3d |
Отправлено: 31 июля 2009 — 11:42 • Тема: Мод: Антиспам для гостей при создании тем и сообщений • Форум: Модификации и дополнения |
Ответов: 27 Просмотров: 30485
 |
luigi
That's good idea
Предложенный luigi вариант позволяет перезагружать картинку с кодом (каптчу) без необходимости перезагрузки всей страницы, а это особенно актуально, если картинка сформировалась таким образом, что некоторые символы плохо видны. В первом сообщении уже выложена усовершенствованная версия этого мода, для тех же, кто уже устанавливал данный мод необходимо проделать следующие изменения
Откройте файл language/russian/lang_front_forums.php, найдите строку:
CODE:$this->LANG['CaptchaDesc'] = 'Введите код, изображённый на картинке<br /><br />Зарегистрируйтесь, чтобы избавиться от необходимости ввода защитного кода';
И под ней разместите строку:
CODE:$this->LANG['CaptchaReload'] = 'Если Вы не видите код на картинке, попробуйте <a href="#" onClick="reload_captcha(); return false;"><b>обновить картинку</b></a>';
Далее откройте файлы post_addnew.tpl, post_reply.tpl и post_form.tpl (все они находятся в папке templates/InvisionExBB), в каждом из них найдите строки:
CODE:<tr>
<td class="pformleft" valign="top"><b>{$fm->LANG['Captcha']}</b><br />{$fm->LANG['CaptchaDesc']}</td>
<td class="pformright" valign="top"><img src="regimage.php" alt="Captcha" /><br /><br />
<input type="text" name="captcha" size="20" maxlength="10" /></td>
</tr>
И замените их строками:
CODE:<tr>
<td class="pformleft" valign="top"><b>{$fm->LANG['Captcha']}</b><br />{$fm->LANG['CaptchaDesc']}</td>
<td class="pformright" valign="top">{$fm->LANG['CaptchaReload']}<br /><br />
<img id="captcha" src="regimage.php" alt="Captcha" /><br /><br />
<input type="text" name="captcha" size="20" maxlength="10" />
<script language="JavaScript" src="javascript/reload_captcha.js"></script></td>
</tr>
Останется только разместить файл reload_captcha.js (скачать его можно здесь) в папке javascript
Как выглядит вариант мода с обновлением картинки, Вы можете видеть на скриншоте ниже |
yura3d |
Отправлено: 30 июля 2009 — 18:38 • Тема: Мод: Антиспам для гостей при создании тем и сообщений • Форум: Модификации и дополнения |
Ответов: 27 Просмотров: 30485
 |
В продолжение начинания пользователя altjo решил выложить доработанный вариант модуля антиспама для гостей, который требует от гостей ввода защитного кода с картинки (каптчи) при создании тем или написании сообщений. Для установки необходимо проделать следующие изменения
Откройте файл post.php, найдите строки:
CODE:function addnewthread() {
global $fm;
И под ними вставьте строку:
Далее в этом же файле найдите строки:
CODE:function addreply() {
global $fm;
И под ними вставьте строку:
Затем в этом же файле найдите последнюю строку:
И над ней вставьте строки:
CODE:function check_captcha() {
global $fm;
if ($fm->exbb['anti_bot'] && !$fm->user['id'] && (!isset($_SESSION['captcha']) || $fm->_String('captcha') !== $_SESSION['captcha']))
$fm->_Message($fm->LANG['Captcha'], $fm->LANG['CaptchaMes']);
}
Теперь откройте файл language/russian/lang_front_forums.php, найдите строку:
CODE:$this->LANG['MoveInExistsOk'] = 'Выбранные сообщения успешно выделены в тему "%s"!';
И под ней вставьте строки:
CODE:/*
captcha
*/
$this->LANG['Captcha'] = 'Защитный код';
$this->LANG['CaptchaDesc'] = 'Введите код, изображённый на картинке<br /><br />Зарегистрируйтесь, чтобы избавиться от необходимости ввода защитного кода';
$this->LANG['CaptchaReload'] = 'Если Вы не видите код на картинке, попробуйте <a href="#" onClick="reload_captcha(); return false;"><b>обновить картинку</b></a>';
$this->LANG['CaptchaMes'] = 'Введён неверный защитный код!<br />Зарегистрируйтесь, чтобы избавиться от необходимости ввода защитного кода.';
Далее откройте файлы post_addnew.tpl и post_reply.tpl (они располагаются в папке templates/InvisionExBB), в каждом из них найдите строки:
CODE:if ($upload !== 0) {
echo <<<DATA
<tr valign="top">
<td class="pformleft">
{$fm->LANG['FileUpload']}
</td>
<td class="pformright">
{$fm->LANG['FileUploadMax']}{$upload}
<br />
{$fm->LANG['UploadExts']} {$fm->exbb['file_type']}
<br />
<input type="hidden" name="MAX_FILE_SIZE" value="{$upload}">
<input class="input" type="file" size="30" name="FILE_UPLOAD">
</td>
</tr>\n
DATA;
}
И под ними вставьте строки:
CODE:if ($fm->exbb['anti_bot'] && !$fm->user['id'])
echo <<<DATA
<tr>
<td class="pformleft" valign="top"><b>{$fm->LANG['Captcha']}</b><br />{$fm->LANG['CaptchaDesc']}</td>
<td class="pformright" valign="top">{$fm->LANG['CaptchaReload']}<br /><br />
<img id="captcha" src="regimage.php" alt="Captcha" /><br /><br />
<input type="text" name="captcha" size="20" maxlength="10" />
<script language="JavaScript" src="javascript/reload_captcha.js"></script></td>
</tr>
DATA;
Затем откройте файл templates/InvisionExBB/post_form.tpl, найдите строки:
CODE:if ($upload !== 0) {
$post_form .= <<<DATA
<tr valign="top">
<td class="pformleft">
{$fm->LANG['FileUpload']}
</td>
<td class="pformright">
{$fm->LANG['FileUploadMax']}{$upload}
<br />
{$fm->LANG['UploadExts']} {$fm->exbb['file_type']}
<br />
<input type="hidden" name="MAX_FILE_SIZE" value="{$upload}">
<input class="input" type="file" size="30" name="FILE_UPLOAD">
</td>
</tr>
DATA;
}
И под ними вставьте строки:
CODE:if ($fm->exbb['anti_bot'] && !$fm->user['id'])
$post_form .= <<<DATA
<tr>
<td class="pformleft" valign="top"><b>{$fm->LANG['Captcha']}</b><br />{$fm->LANG['CaptchaDesc']}</td>
<td class="pformright" valign="top">{$fm->LANG['CaptchaReload']}<br /><br />
<img id="captcha" src="regimage.php" alt="Captcha" /><br /><br />
<input type="text" name="captcha" size="20" maxlength="10" />
<script language="JavaScript" src="javascript/reload_captcha.js"></script></td>
</tr>
DATA;
Осталось только скачать из прикреплённого архива файл reload_captcha.js и закачать его в папку javascript
На этом всё. Данный мод работает в том случае, если в админке включена защита от регистрации ботов (Админцентр -> Общие настройки -> Безопасность -> Активировать защиту от регистрации ботов? -> да). Все Ваши пожелания и предложения по этому моду оставляйте в данной теме  |
yura3d |
Отправлено: 30 июля 2009 — 15:56 • Тема: Общие вопросы • Форум: Общие вопросы |
Ответов: 291 Просмотров: 199985
 |
altjo пишет:если её убрать, то гости тоже могут создавать новые темы не вводя капчу
Во всём виновата небольшая ошибка в условии, вместо инициализации входящей переменной с кодом каптчи как целочисленной, нужно инициализировать её как строку, т.е. вызов функции $fm->_Intval() заменить вызовом функции $fm->_String():
CODE:if (!$fm->user['id'] && (!isset($_SESSION['captcha']) || $fm->_String('captcha') !== $_SESSION['captcha']))
$fm->_Message('Защита от спама', 'Неверный код');
Как всегда мои опечатки
altjo пишет:(условие проверки капчи бралось не с потолка, такой код используется в register.php)
Всё дело в том, что использованию переменных входящих данных (в контексте $fm->input) обязательно должна предшествовать инициализация этих переменных. В Вашем случае $fm->input['captcha'] вызывается без инициализации (хотя в register.php эта инициализация есть, просто она записана выше условия), и это в некоторых случаях может приводить к выводу сообщений об ошибках (пресловутых notice'ов, которые не так давно обсуждались) |
yura3d |
Отправлено: 29 июля 2009 — 22:16 • Тема: Слетел полностью форум • Форум: Решение проблем |
Ответов: 16 Просмотров: 11473
 |
drummer69
Как раз об обновлении этой статистики и идёт речь в моём предыдущем сообщении. Некоторые вопросы восстановления форума после сбоев также освещены здесь |
yura3d |
Отправлено: 29 июля 2009 — 22:03 • Тема: Слетел полностью форум • Форум: Решение проблем |
Ответов: 16 Просмотров: 11473
 |
drummer
Это называется рассинхронизацией, такое часто бывает при частичном восстановлении из резервной копии. В админке напротив проблемного форума (подфорума) выберите сначала пункт Восстановить темы, а затем Пересчитать. Далее не забудьте пересчитать статистику родительского форума и обновить общую статистику (ссылка Обновить размещается над списком форумов) |
yura3d |
Отправлено: 29 июля 2009 — 18:24 • Тема: Ёпрст • Форум: Мусорка |
Ответов: 27 Просмотров: 32539
 |
Defenderyk пишет:а еще было бы хорошо, если бы тему можно было начинать с кавычки. а то говорит, что нельзя
Приведённую выше строку замените строкой:
CODE:if (preg_match("#^[^A-Za-zА-Яа-яёЁ0-9\"']#is", $fm->html_replace($fm->input['topictitle']))) { |
yura3d |
Отправлено: 29 июля 2009 — 18:05 • Тема: Общие вопросы • Форум: Общие вопросы |
Ответов: 291 Просмотров: 199985
 |
altjo пишет:а как для прочих зарегистрированных пользователей проверить?
Нужно проверять значение $fm->user['id'], это id зарегистрированного пользователя. Для гостей это значение равно нулю. Ваше выражение выше:
CODE:if (!defined('IS_ADMIN')) {
if ($fm->input['captcha'] == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha']) {
$fm->_Message('Защита от спама', 'Неверный код.');
}
}
не совсем корректно, лучше составить его таким образом:
CODE:if (!$fm->user['id'] && (!isset($_SESSEION['captcha']) || $fm->_Intval('captcha') != $_SESSION['captcha']))
$fm->_Message('Защита от спама', 'Неверный код');
Строки Защита от спама и Неверный код неплохо бы вынести в языковой файл lang_front_forums.php, чтобы можно было выводить сообщения на любом языке
Аналогично:
CODE:if (!defined('IS_ADMIN')) {
echo <<<DATA
<tr>
<td class="row4"><img src="regimage.php" border="0" alt="captcha"></td>
<td class="row4"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
</tr>
DATA;
}
Заменяем на:
CODE:if (!$fm->user['id']) {
echo <<<DATA
<tr>
<td class="row4"><img src="regimage.php" border="0" alt="captcha"></td>
<td class="row4"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
</tr>
DATA;
} |
|
Страниц (200): В начало « ... 121 122 123 124 [125] 126 127 128 129 ... » В конец
|