» » Установка Simplebb v2.1 на DLE 11.2

Установка Simplebb v2.1 на DLE 11.2

Установка Simplebb v2.1 на DLE 11.2


Установка форума SimpleBB v2.1 на движок DLE 11.2.
Как установить Форум Simplebb вручную без установки, инструкция.
  1. Качаем последнюю версию с github.com (https://github.com/dlenettr/simplebb);
  2. Извлекаем из архива папки: language и engine на ваш хостинг. Так же можно удалить не используемые языки из language.
  3. Извлекаем из архива папку forum, находящаяся в \templates\THEME_ru\, в ваш шаблон.
  4. Редактируем код:


1).htaccess
Найти строку:
RewriteEngine On

После ней вставить:
# SimpleBB
	RewriteRule ^addpost/([0-9]+)(/?)$ index.php?do=addpost&cat=$1 [L]
# Для Поддомена (Если у вас "Форум на поддомене" выключена - закоментируйте или удалите)
	RewriteCond %{HTTP_HOST} ^forum\.Ваш-сайт\.ru$ [NC]
	RewriteRule ^$ index.php?do=cat&category=forum [L,NC]

2) engine/classes/google.class.php
Найти строку:
$loc = htmlspecialchars( $loc, ENT_QUOTES, 'ISO-8859-1' );
Заменить:
global $config;
		$cat_info = get_vars( "category" );
		if ( $sbbsett['use_subdomain'] AND ! empty( $cat_info[ $sbbsett['id'] ]['alt_name'] ) ) {
			$main_host = str_replace( $cat_info[ $sbbsett['id'] ]['alt_name'] . ".", "", $_SERVER['HTTP_HOST'] );
			$loc = str_replace ( "http://" . $main_host . "/" . $cat_info[ $sbbsett['id'] ]['alt_name'], "http://" . $cat_info[ $sbbsett['id'] ]['alt_name'] . "." . $main_host, $loc );
		}

3) engine/engine.php
1.Найти строку:
switch ( $do ) {

Перед ней вставить:
require_once ENGINE_DIR . '/data/simplebb.conf.php';
require_once ROOT_DIR . "/language/" . $config['langs'] . "/simplebb.lng"; 

2.Найти строку:
case "changemail" :

Перед ней вставить:
case "addpost" :
            if ( $is_logged ) {
                $config['allow_cache'] = false;
                include ENGINE_DIR . '/modules/addpost.php';
            } else
            msgbox ( $lang['all_err_1'], $lang['sbb_s_0'] );
        break;

3.Найти строку:
$allow_list = explode ( ',', $user_group[$member_id['user_group']]['allow_cats'] );

Заменить:
require_once (ENGINE_DIR . '/modules/show.forum.php');
$forum = new SimpleBB( $config, $db, $tpl, $cat_info, $user_groups, $member_id ); // notaviablemain
$forum_cats = array_merge( $forum->get_cats(), $forum->get_forums() );
if ( $user_group[$member_id['user_group']]['allow_cats'] == "all" ) { $all_cats = array_keys( $cat_info ); }
else { $all_cats = explode ( ',', $user_group[$member_id['user_group']]['allow_cats'] ); }
$allow_list = array_diff( $all_cats, $forum_cats );

4.Найти строку:
if ($active) {

Перед ней вставить:
include_once (ENGINE_DIR . '/modules/show.forum.php');
$forum = new SimpleBB( $config, $db, $tpl, $cat_info, $user_groups, $member_id ); // category
if ( $category_id == $sbbsett['id'] ) { $forum_where = "main"; }
else if ( in_array( $category_id, $forum->get_cats() ) ) { $forum_where = "cat"; } 
else if ( in_array( $category_id, $forum->get_forums() ) ) { $forum_where = "forum"; }

5.Найти строку:
include_once (ENGINE_DIR . '/modules/show.full.php');

После ней вставить:
if ( in_array( $category_id, $forum->get_forums() ) ) { $forum_where = "thread"; }
6.Найти строку:
include_once (ENGINE_DIR . '/modules/show.short.php');
Заменить:
if ( $category_id == $sbbsett['id'] ) {
            if ( $sbbsett['use_subdomain'] && strpos( $_SERVER['SERVER_NAME'], $cat_info[ $sbbsett['id'] ]['alt_name'] . "." ) !== 0 ) {
                header("HTTP/1.0 301 Moved Permanently");
                header("Location: http://{$cat_info[ $sbbsett['id'] ]['alt_name']}.{$_SERVER['SERVER_NAME']}");
                die("Redirect");
            }
            $forum->run();
            $tpl->result["content"] = $forum->html( );
        } else {    
            include_once (ENGINE_DIR . '/modules/show.short.php');
            if (! $config['allow_quick_wysiwyg']) $allow_comments_ajax = false;
            if ($config['files_allow']) if (strpos ( $tpl->result['content'], "[attachment=" ) !== false) {
                $tpl->result['content'] = show_attach ( $tpl->result['content'], $attachments );
            }
            if ($view_template == "rss" AND $news_found) {    
                if ($catalog) create_cache ( "rss", $tpl->result['content'], $catalog, false );
                else create_cache ( "rss", $tpl->result['content'], $category_id, false );
            } elseif ($news_found AND $cache_id < 11) 
                create_cache ( "news", $tpl->result['content'], $cache_id . $cache_prefix, true );
        } 

7.Найти строку:
if ($config['allow_rss']) $metatags .= <<<HTML

После ней вставить:
else if ( isset( $full_link ) ) {
            $main_host = str_replace( $cat_info[ $sbbsett['id'] ]['alt_name'] . ".", "", $_SERVER['HTTP_HOST'] );
            $metatags .= "<link rel=\"canonical\" href=\"" . str_replace ( "http://" . $main_host . "/" . $cat_info[ $sbbsett['id'] ]['alt_name'], "http://" . $cat_info[ $sbbsett['id'] ]['alt_name'] . "." . $main_host, $full_link ) . "\" />";
        }

8.Найти строку:
if ($user_group[$member_id['user_group']]['allow_short']) $stop_list = "";

Закомментировать или удалить:
//if ($user_group[$member_id['user_group']]['allow_short']) $stop_list = "";

9.Найти строку:
if ($do == "cat" and $category != '' and $subaction == '') {

Заменить:
if ($do == "cat" and $category != '' and $subaction == '' AND $category_id != $sbbsett['id']) {

10.Найти строку:
if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 ) {

Заменить:
$bb_cat = $cat_info[ $sbbsett['id'] ]['alt_name'];
if ( strpos( $re_cat, $bb_cat . "/" ) === false AND ( $re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 ) ) {


4) engine/modules/show.full.php
1.Найти строку:
 if( $user_group[$member_id['user_group']]['allow_hide'] ) $tpl->result['content'] = str_ireplace( "[hide]", "", str_ireplace( "[/hide]", "", $tpl->result['content']) );

Перед ней вставить:
$user = $db->super_query("SELECT foto, user_group FROM " . PREFIX . "_users WHERE name = '{$row['autor']}'");
        $tpl->result['content'] = str_replace( "{user-group}", $user_group[$user['user_group']]['group_prefix'].$user_group[$user['user_group']]['group_name'].$user_group[$user['user_group']]['group_suffix'], $tpl->result['content'] );
        $tpl->result['content'] = str_replace( "{user-group-icon}", $user_group[ $user['user_group'] ]['icon'], $tpl->result['content'] );
        if ( count( explode( "@", $user['foto'] ) ) == 2 ) {
            $tpl->result['content'] = str_replace( "{avatar}", "http://www.gravatar.com/avatar/" . md5( trim( $user['foto'] ) ), $tpl->result['content'] );
        } else {
            if ( ! empty( $user['foto'] ) && file_exists( ROOT_DIR . strchr( $user['foto'], "/uploads" ) ) ) {
                $tpl->result['content'] = str_replace( "{avatar}", $user['foto'], $tpl->result['content'] );
            } else {
                $tpl->result['content'] = str_replace( "{avatar}", $config['http_home_url'] . "templates/" . $config['skin'] . "/dleimages/noavatar.png", $tpl->result['content'] );
            }
        }

2.Найти строку:
$category_id = intval( $row['category'] );

После ней вставить:
include ENGINE_DIR . '/data/simplebb.conf.php';
$bb_cat = $cat_info[ $sbbsett['id'] ]['alt_name'];

3.Найти строку:
if ($config['seo_control'] AND ( isset($_GET['seourl']) OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false ) ) {

Заменить:
if ( ( strpos( $c_url, $bb_cat . "/" ) === false ) AND $config['seo_control'] AND ( isset($_GET['seourl']) OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false ) ) {

4.Найти строку:
$tpl->load_template( 'addcomments.tpl' );

Заменить:
if ( in_array( $category_id, $forum->get_forums() ) && ! empty( $sbbsett['addcomm_tpl'] ) ) $tpl->load_template( $sbbsett['addcomm_tpl'] . '.tpl' );
else $tpl->load_template( 'addcomments.tpl' );

5.Найти строку:
$comments->build_comments('comments.tpl', 'news', $allow_full_cache, $full_link );

Заменить:
if ( in_array( $category_id, $forum->get_forums() ) && ! empty( $sbbsett['comments_tpl'] ) ) {
	$comm_tpl = trim( $sbbsett['comments_tpl'] ) . ".tpl";
} else {
	$comm_tpl = "comments.tpl";
}
$comments->build_comments( $comm_tpl, 'news', $allow_full_cache, $full_link );

6.Найти строку:
else $tpl->load_template( 'fullstory.tpl' );

Заменить:
else {
            if ( $dle_module == "showfull" && in_array( $category_id, $forum->get_forums() ) && ! empty( $sbbsett['fullstory_tpl'] ) ) {
                $tpl->load_template( $sbbsett['fullstory_tpl'] . ".tpl" );
            } else {
                $tpl->load_template( 'fullstory.tpl' );
            }
        }

5) engine/modules/show.short.php
1.Найти строку:
else $tpl->load_template( 'shortstory.tpl' );

Заменить:
else {
	if ( ( $forum_where == "cat" || $forum_where == "forum" ) && ! empty( $sbbsett['shortstory_tpl'] ) ) {
		$tpl->load_template( $sbbsett['shortstory_tpl'] . ".tpl" );
	} else {
		$tpl->load_template( 'shortstory.tpl' );
	}
}

Для DLE AJAX переключение вида краткой новости
$user_short_tpl = array(
'default' => 'shortstory.tpl', //дефолтный шаблон
'list' => 'shortstory_list.tpl', // шаблон списком
'tablet' => 'shortstory_tablet.tpl' // шаблон картинки
);
if($template_ajax)
  $user_tpl = $user_short_tpl[$template_ajax];
else
$user_tpl =(isset($_COOKIE['short_template']) && isset($user_short_tpl[$_COOKIE['short_template']])) ? $user_short_tpl[$_COOKIE['short_template']] : $user_short_tpl["default"];
if( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) 
	$tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
else {
	if (( $forum_where == "cat" || $forum_where == "forum" ) && ! empty( $sbbsett['shortstory_tpl'] )){
		$tpl->load_template( $sbbsett['shortstory_tpl'] . ".tpl" );
}else{
		$tpl->load_template($user_tpl);
	}
}

6) engine/modules/functions.php
1.Найти строку:
function custom_print( $matches=array() ) 

Перед ней вставить:
function custom_cat_print( $matches = array() ) {
            global $db, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $category_id, $PHP_SELF;
            if ( !count($matches) ) return "";
            $param_str = trim( $matches[1] );
            if( preg_match( "#echo=['\"](.+?)['\"]#i", $param_str, $match ) ) {
                $echo = $db->safesql( trim( $match[1] ) );
                if ( $echo == "name" ) { $key = "name"; }
                else if ( $echo == "url" ) { $key = "alt_name"; }
                else if ( $echo == "description" ) { $key = "descr"; }
                else if ( $echo == "keywords" ) { $key = "keywords"; }
                else if ( $echo == "title" ) { $key = "metatitle"; }
                else if ( $echo == "id" ) { $key = "id"; }
                else { if ( in_array( $echo, array_keys( $cat_info[ $category_id ] ) ) ) { $key = $echo; } }
                return $cat_info[ $category_id ][ $key ];
            } else return "";
        }

7) engine/modules/main.php
1.Найти строку:
if ($replace_url) $tpl->result['main'] = str_replace ( $replace_url[0]."/", $replace_url[1]."/", $tpl->result['main'] );

Закомментировать или удалить:
// if ($replace_url) $tpl->result['main'] = str_replace ( $replace_url[0]."/", $replace_url[1]."/", $tpl->result['main'] );

2.Найти строку:
echo $tpl->result['main'];

Перед ней вставить:
$forum_compile = "after";
include ROOT_DIR . '/engine/modules/simplebb.php';

3.Найти строку:
$tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" );

Перед ней вставить:
$forum_compile = "before";
        include ROOT_DIR . '/engine/modules/simplebb.php';

4.Найти строку:
$tpl->load_template ( 'main.tpl' );

После ней вставить:
if (isset($forum )){$tpl->copy_template = str_replace( "{forum-cats}", implode( ",", $forum->get_forums() ), $tpl->copy_template );}

7) /templates/THEME/Main.tpl
1.Найти строку:
</head>

Перед ней вставить:
[forum]<link media="screen" href="{THEME}/forum/css/simplebb.css" type="text/css" rel="stylesheet" />[/forum]

5) Всё.
у а дальше делаем по инструкций github.com (https://github.com/dlenettr/simplebb);

Или смотрим видео инструкцию:
  • Шаблон короткой новости: forum/threads
  • Шаблон полной новости: forum/post



Автор темы: Xaker1493

Перед тем как начать установку, сделайте бэкап вашего сайта!
  • 0



9-04-2017, 09:39 593 1

Всего комментариев: 1


  1. anclav24 от 13 августа 2017 14:41
    Добавьте пожалуйста установку SimpleBB 2.2 на DLE 11.3



Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.