Когда то это был один из популярных форумов для сайтов на DLE, но автор форума не уделял внимания поддержке, увлекся новой идеей и забросил форум.
Для совместимости DLE Forum 2.6.1 и DLE 9.7-9.8 потребуется произвести ряд исправлений.
Список исправлений:
-
Исправляем голосование на форуме (
Off Road)
-
Редактирование пользователя с форума (
Горбушка)
-
Ошибка в отправке писем с жалобами (
Горбушка)
-
Экранирование кавычек в правилах форума (
Горбушка)
-
Опция редактирования метатегов (
DudaGod)
-
Не работают теги online и offline (
acelote)
-
Исправляем нерабочий тег IMG в BB кодах (
Off Road)
-
Исправляем проблемы при смене имени пользователя в админке-
Вывод попап меню профиля пользователя в последних сообщениях (
Off Road)
-
Адаптируем парсер DLE Forum до актуальной DLE(Поддержка Youtube) (
Off Road)
1. Исправление голосования под DLE 9.7 и DLE 9.8:Для исправления откройте файл
engine/forum/ajax/poll.php и найдите код:
{$body[$i]} - {$num} ({$proc}%)<br />
<img src="{$config['http_home_url']}templates/{$vote_skin}/dleima
ges/poll{$pn}.gif" height="10" width="{$proc}%" style="border:1px solid black"><br />
Замените его на:
<div class="vote">{$body[$i]} - {$num} ({$proc}%)</div>
<div class="voteprogress"><span class="vote{$pn}" style="width:{$proc}%">{$proc}%</span></div>
В этом же файле ищем 2 раза код:
<div><input name="dle_poll_votes
Замените его на:
<div class="vote"><input name="dle_poll_votes
Далее откройте файл
engine/forum/sources/components/poll.php найти в нем код:
{$body[$v]} - {$num} ({$proc}%)<br />
<img src="{$config['http_home_url']}templates/{$config['skin']}/dleimages/poll{$pn}.gif" height="10" width="{$proc}%" style="border:1px solid black"><br />
Замените его на:
<div class="vote">{$body[$v]} - {$num} ({$proc}%)</div>
<div class="voteprogress"><span class="vote{$pn}" style="width:{$proc}%">{$proc}%</span></div>
В этом же файле ищем 2 раза
dle-poll-list и меняем на
dle-voteВ этом же файле ищем 2 раза код:
<div><input name="dle_poll_votes
Замените его на:
<div class="vote"><input name="dle_poll_votes
Всё!
исправления голосования под актуальную DLE 9.8 содержат много правки кода, поэтому для исправления скачайте и скопируйте в корень вашего сайта готовые файлы модуля голосования форума:
fix_forum_poll_98.rar [3,15 Kb] Автор исправления: Off Road2. Исправление редактирования пользователя с форума:Суть ошибки:
После обновления DLE, кнопка "Сохранить" при редактировании пользователя с сайта перешла на JS, а из формы её убрали.
Открываем файл
/engine/forum/sources/showposts.php и ищем код:
$go_page = "onclick=\"return dropdownmenu(this, event, FUserMenu('".urlencode($row['name'])."', '".$row['user_id']."', '".$member_id['user_group']."', '$a_forum_url'), '170px')\" onmouseout=\"delayhidemenu()\"";
if ($row['is_register'])
$tpl->set('{author}', "<a {$go_page} href=\"#\">{$row['post_author']}</a>");
else $tpl->set('{author}', "<a href=\"mailto:".$row['e_mail']."\">{$row['post_author']}</a>");
Меняем на:
if( $config['allow_alt_url'] == "yes" ) {
$go_page = $config['http_home_url'] . "user/" . urlencode( $row['post_author'] ) . "/";
} else {
$go_page = "$PHP_SELF?subaction=userinfo&user=" . urlencode( $row['post_author'] );
}
if ($row['is_register']) $tpl->set('{author}', "<a rel=\"nofollow\" onclick=\"ShowProfile('" . urlencode( $row['post_author'] ) . "', '" . $go_page . "', '{$user_group[$member_id['user_group']]['admin_editusers']}'); return false;\" href=\"" . $go_page . "\">{$row['post_author']}</a>");
else $tpl->set('{author}', "<a rel=\"nofollow\" href=\"mailto:".$row['e_mail']."\">{$row['post_author']}</a>");
И небольшое дополнение от Off Road:
Если хотите задать
css стили для логина пользователя в постах, то используйте вместо описанного выше, следующий код:
if( $config['allow_alt_url'] == "yes" ) {
$go_page = $config['http_home_url'] . "user/" . urlencode( $row['post_author'] ) . "/";
} else {
$go_page = "$PHP_SELF?subaction=userinfo&user=" . urlencode( $row['post_author'] );
}
if ($row['is_register']) $tpl->set('{author}', "<a class=\"group" . $row['user_group'] . "\" rel=\"nofollow\" onclick=\"ShowProfile('" . urlencode( $row['post_author'] ) . "', '" . $go_page . "', '{$user_group[$member_id['user_group']]['admin_editusers']}'); return false;\" href=\"" . $go_page . "\">{$row['post_author']}</a>");
else $tpl->set('{author}', "<a class=\"group" . $row['user_group'] . "\" rel=\"nofollow\" href=\"mailto:".$row['e_mail']."\">{$row['post_author']}</a>");
В результате получаем
class="group(id группы)" к примеру у админа будет -
class="group1" и в своем файле стилей настраиваем по желанию, так как описано в посте "
свой цвет ника для каждой группы пользователей"
Всё!
Автор исправления: Горбушка3. Исправление Ошибки в отправке писем с жалобами под DLE 9.7 и DLE 9.8:Суть ошибки:
В файле, отвечающем за отправку письма используется HTML-представление символа
&.
Открываем файл
/engine/forum/action/topic.php и ищем код (347 строка):
$topic_link = $a_forum_url."showtopic={$tid}";
Меняем на:
$topic_link = $config['http_home_url']."?do=forum&showtopic={$tid}";
Всё!
Автор исправления: Горбушка4. Исправление Ошибки излишнего экранирования кавычек парсером форума и отсутствие снятия этого экранирования при выводе правил пользователю под DLE 9.7 и DLE 9.8:Суть ошибки:
Излишнее экранирование кавычек парсером форума и отсутствие снятия этого экранирования при выводе правил пользователю.
Откройте файл
/engine/forum/sources/showforum.php и найдите код:
$tpl->set('{rules-text}', $row_forum['rules']);
Замените на:
$tpl->set('{rules-text}', stripslashes($row_forum['rules']));
После данных изменений правила показываются правильно.
Всё!
Автор исправления: Горбушка5. Добавляем возможность редактирования метатегов форума под DLE 9.7 и DLE 9.8:В DLE Forum отсутствует опция редактирования метатегов кейвордс и дескрипшн при редактировании заголовка темы. К примеру, некоторые темы выдаются на первые позиции в поисковике, а тем временем метатеги просто в ужасном состоянии, потому что генерируются автоматически от первого сообщения.
1) Открываем файл
/engine/forum/action/moderation.php и в нем находим:
$topic_title = $parse->decodeBBCodes($row['title'], false);
$topic_descr = $parse->decodeBBCodes($row['topic_descr'], false);
Ниже вставляем:
$topic_meta_descr = $parse->decodeBBCodes($row['meta_descr'], false);
$topic_meta_keywords = $parse->decodeBBCodes($row['meta_keywords'], false);
В этом же файле чуть ниже находим:
$tpl->set('{topic_title}', htmlspecialchars($topic_title));
$tpl->set('{topic_descr}', htmlspecialchars($topic_descr));
Ниже вставляем:
$tpl->set('{topic_meta_descr}', htmlspecialchars($topic_meta_descr));
$tpl->set('{topic_meta_keywords}', htmlspecialchars($topic_meta_keywords));
Затем ищем:
$topic_title = $db->safesql($parse->process($_POST['topic_title']));
$topic_descr = $db->safesql($parse->process($_POST['topic_descr']));
Ниже вставляем:
$topic_meta_descr = $db->safesql($parse->process($_POST['topic_meta_descr']));
$topic_meta_keywords = $db->safesql($parse->process($_POST['topic_meta_keywords']));
Ну и меняем соответственно запрос в базу данных: чуть ниже предыдущего кода:
$db->query("UPDATE " . PREFIX . "_forum_topics SET title = '$topic_title', topic_descr = '$topic_descr', meta_descr = '$topic_meta_descr', meta_keywords = '$topic_meta_keywords', icon = '$icon', poll_title = '$vote_title', frage = '$frage', poll_body = '$vote_body', multiple = '$poll_multiple' WHERE tid = '$selectedtids'");
2) Открываем файл
/templates/Ваш шаблон/forum/edittopic.tpl и в нем ниже "Название темы" и "Описание темы" (у меня 20 строка) вставляем:
<tr>
<td class='row2' width="120" height="25" style="border-right: 1px solid #c2c1c1; text-align: right;"><strong>Описание для темы:</strong></td>
<td class='row2' width="340"><input type="text" name="topic_meta_descr" value="{topic_meta_descr}" maxlength="200" class="forum_input" /> (не более 200 символов)</td>
</tr>
<tr>
<td class='row2' width="120" height="25" style="border-right: 1px solid #c2c1c1; text-align: right;"><strong>Ключевые слова:</strong></td>
<td class='row2' width="340"><input type="text" name="topic_meta_keywords" value="{topic_meta_keywords}" maxlength="500" class="forum_input" /></td>
</tr>
Всё!
Автор исправления: DudaGod6. Добавляем теги online и offline для вывода на форуме под DLE 9.7 и DLE 9.8:В последних версиях DLE появились теги вывода информера online и offline пользователей, однако в DLE Forum эти теги не поддерживаются. Данный хак позволяет использовать теги online и offline на форуме, если подключить их в файле post.tpl.
Открыть
engine/forum/sources/showposts.php и найти код:
$tpl->set('{rank-image}', $rank_image);
Ниже вставить:
// **********************
// ONLINE
// *********************
if ( ($row['lastdate'] + 1200) > $_TIME ) {
$tpl->set( '[online]', "" );
$tpl->set( '[/online]', "" );
$tpl->set_block( "'\\[offline\\](.*?)\\[/offline\\]'si", "" );
} else {
$tpl->set( '[offline]', "" );
$tpl->set( '[/offline]', "" );
$tpl->set_block( "'\\[online\\](.*?)\\[/online\\]'si", "" );
}
Всё!
Автор исправления: Acelote7. Исправление тега IMG в BB кодах под DLE 9.7 и DLE 9.8:В DLE 9.8 помимо нерабочего тега вставки картинок, произошли изменения с оформлением вывода ВВ кодов.
Для исправления Откройте файл engine/forum/sources/components/bbcode.php и найдите код:
var bb_t_col = "{$lang['bb_t_col']}";
Ниже добавьте строки:
var text_enter_list = "{$lang['bb_list_item']}";
var text_alt_image = "{$lang['bb_alt_image']}";
var img_align = "{$lang['images_align']}";
var img_align_sel = "<select name='dleimagealign' id='dleimagealign' class='ui-widget-content ui-corner-all'><option value='' {$image_align[0]}>{$lang['images_none']}</option><option value='left' {$image_align['left']}>{$lang['images_left']}</option><option value='right' {$image_align['right']}>{$lang['images_right']}</option><option value='center' {$image_align['center']}>{$lang['images_center']}</option></select>";
Всё!
исправления в BB кодах под актуальную DLE 9.8 содержат много правки кода, поэтому для исправления скачайте и скопируйте в корень вашего сайта готовые файлы форума:
fix_forum_bbcode_98.rar [2,76 Kb] Автор исправления: Off Road8. Исправляем проблемы при смене имени пользователя в админке под DLE 9.7 и DLE 9.8:При изменении ника пользователю в админке, его прошлые сообщения и темы на форуме остаются под старым ником.
Открыть файл
engine/inc/editusers.php и найти код
$db->query("UPDATE " . PREFIX . "_images SET author='$editlogin' WHERE author='{$row['name']}'");
Ниже добавить строки:
$db->query("UPDATE " . PREFIX . "_forum_files SET file_author='$editlogin' WHERE file_author='{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_forum_forums SET f_last_poster_name='$editlogin' WHERE f_last_poster_name='{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_forum_poll_log SET member='$editlogin' WHERE member='{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_forum_posts SET post_author='$editlogin' WHERE post_author='{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_forum_reputation_log SET author='$editlogin' WHERE author='{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_forum_sessions SET member_name='$editlogin' WHERE member_name='{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_forum_topics SET author_topic='$editlogin' WHERE author_topic='{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_forum_topics SET last_poster_name='$editlogin' WHERE last_poster_name='{$row['name']}'");
$db->query("UPDATE " . PREFIX . "_forum_warn_log SET author='$editlogin' WHERE author='{$row['name']}'");
Всё!
Автор исправления: Off Road9. Исправляем вывод попап меню профиля пользователя в последних сообщениях под DLE 9.7 и DLE 9.8:Вывод попап меню профиля пользователя в последних сообщениях DLE Forum.
Открыть файл
engine/forum/sources/modules/show.last.php и найти код:
$fl_author = "<a href='/user/{$author_topic}/'>{$row['author_topic']}</a>";
$fl_last_poster = "<a href='/user/{$last_poster_name}/'>{$row['last_poster_name']}</a>"
;
Заменить его на:
$fl_author = "<a onclick=\"ShowProfile('$author_topic', '". $config['http_home_url']."user/$author_topic/'); return false;\" href='{$config['http_home_url']}user/$author_topic'>{$row['author_topic']}</a>";
$fl_last_poster = "<a onclick=\"ShowProfile('$last_poster_name', '". $config['http_home_url']."user/$last_poster_name/'); return false;\" href='{$config['http_home_url']}user/$last_poster_name/'>{$row['last_poster_name']}</a>";
Далее в этом же файле найти:
$fl_author = "<a href='/?subaction=userinfo&user={$author_topic}'>{$row['author_topic']}</a>";
$fl_last_poster = "<a href='/?subaction=userinfo&user={$last_poster_name}'>{$row['last_poster_name']}</a>";
И заменить на:
$fl_author = "<a onclick=\"ShowProfile('$author_topic', '". $config['http_home_url']."?subaction=userinfo&user=$author_topic/'); return false;\" href='{$config['http_home_url']}?subaction=userinfo&user=$author_topic'>{$row['author_topic']}</a>";
$fl_last_poster = "<a onclick=\"ShowProfile('$last_poster_name', '". $config['http_home_url']."?subaction=userinfo&user=$last_poster_name/'); return false;\" href='{$config['http_home_url']}?subaction=userinfo&user=$last_poster_name'>{$row['last_poster_name']}</a>";
Всё!
Автор исправления: Off Road
10. Адаптируем парсер DLE Forum под DLE 9.8:Итак, уже довольно давно стали возникать проблемы с выводом видео на сайте, со сторонних сервисов, таких как Youtube. Были также и какие то решения этой проблемы, но нормально видео так и не отображалось...
В DLE 9.8 в файле
parse.class.php также произошло много изменений, а DLE Forum естественно, стал менее совместим с в актуальной DLE.
Для того чтобы обновиться до DLE 9.8 пришлось переписать весь файл парсера, и изменить где то 70% общего кода. Зато теперь DLE Forum полноценно поддерживает тег Youtube и другие видео сервисы, а также было устранено несколько мелких багов.
исправления в парсере под актуальную DLE 9.8 содержат много правки кода, поэтому для исправления скачайте и скопируйте в корень вашего сайта готовые файлы форума:
fix_forum_parser_98.rar [12,4 Kb]Всё!
Автор исправления: Off Roadисточник и поддержка: skriptavod.ru