Xaker1493 14 Опубликовано: 6 декабря 2016 Рассказать Опубликовано: 6 декабря 2016 (изменено) Добрый день. У меня стояла задача установить форум SimpleBB v2.1 на движок DLE 11.2. Цитата Но возникли 2 проблемы: 1) Без полного право не установиться. 2) Код старой версий DLE немного отличается от 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 Изменено 6 декабря 2016 пользователем Xaker1493 Цитата Ссылка на сообщение Поделиться на других сайтах
Kolbaser 33 Опубликовано: 7 декабря 2016 Рассказать Опубликовано: 7 декабря 2016 Не видел раньше этот интегрированный в шаблон форум, как он вообще? Я смотрю больше года не обновлялся, не тяжело без русской поддержки, как у него с безопасностью. В плане работы/нагрузки, а главное SEO он как? Цитата Ссылка на сообщение Поделиться на других сайтах
Xaker1493 14 Опубликовано: 7 декабря 2016 Рассказать Опубликовано: 7 декабря 2016 Автор 4 часа назад, Kolbaser сказал: Не видел раньше этот интегрированный в шаблон форум, как он вообще? Я смотрю больше года не обновлялся, не тяжело без русской поддержки, как у него с безопасностью. В плане работы/нагрузки, а главное SEO он как? Пока не могу точно сказать. Недавно установил, пока все работает. Как будут замечание, так сразу и напишу. Цитата Ссылка на сообщение Поделиться на других сайтах
Xaker1493 14 Опубликовано: 7 декабря 2016 Рассказать Опубликовано: 7 декабря 2016 Автор Установка: Перед тем как начать установку, сделайте бэкап вашего сайта; Создайте Категорию с альтернативным именем: forum, после этого создайте подкатегории в том порядке как на Скриншоте, в дальнейшем вы можете дополнить или изменить подкатегории; В подкатегории необходимо указать путь к шаблонам: короткой и полных новости (пример Скриншоте), заходим в настройки и прописываем путь: Шаблон короткой новости: forum/threads Шаблон полной новости: forum/post После того как Категория и подкатегории будут созданный приступайте к установке форума (Инструкция по установки Simplebb v2.1 для DLE 11.2); Если у вас DLE 11.2, то пропускаем данный шаг, а если у вас DLE 10.6 или 10.5 распаковываем архив на ваш хостинг, после распаковки в адресную строку вводим: Ваш_сайт.рф/Install_module.php, перед этим не забываем дать доступ файлам и папкам: .htaccess, engine/engine.php, engine/classes/google.class.php, engine/modules/main.php, engine/modules/functions.php, engine/modules/show.full.php, engine/modules/show.short.php, install/backup/ install/logs/ install/xml/ После установки заходим в Админ панель > Сторонние модули > MWS SimpleBB v2.1 и в поле Категория вашего форума выберите созданную заранее категорию. Если вам нужно чтобы форум запускался через поддомен (пример: forum.ваш_сайт.ru), включаем в настройке "Форум на поддомене" и в .htaccess находим RewriteEngine On После ней вставить: RewriteCond %{HTTP_HOST} ^forum\.Ваш-сайт\.ru$ [NC] RewriteRule ^$ index.php?do=cat&category=forum [L,NC] Не забудьте изменить .Ваш-сайт на ваш Домен. Чтобы попасть на форум в адресной строке прописываем в конце домена альтернативное имя форум (Которое вы указали в Категорий). Добавьте часть кода в файл main.tpl: [forum]<link media="screen" href="{THEME}/forum/css/simplebb.css" type="text/css" rel="stylesheet" />[/forum] Для версий DLE 11.2 вам придется создавать стиль с нуля. вы также можете не добавлять данную строчку, а использовать style.css. Удаление: Находим файлы и удаляем: engine/classes/install.class.php engine/data/simplebb.conf.php engine/inc/simplebb.php modules/addpost.php modules/show.forum.php modules/simplebb.php skins/images/simplebb.png Для DLE 10.6 и 10.5, если вы не удалили папку install, то заходим в install/backup/ и распаковываем архив на ваш хостинг, ну а если вы удалили данную папку, то делаем по инструкций, но наоборот. Также для DLE 11.2 делаем по инструкций, но наоборот. Теги (Данный теги работают в любом файле .tpl) [forum:main]Отобразить только на главной странице Форума[/forum:main] [forum:cat] Отобразить только в Категориях[/forum:cat] [forum:forum]Отобразить только в Подфоруме[/forum:forum] [forum:inside]Отобразить только в Категориях или в Подфоруме[/forum:inside] [forum:thread]Отобразить только в Теме[/forum:thread] [forum]Отобразить в Форуме[/forum] [not-forum]На любой странице кроме Форума[/not-forum] {forum-stats} : Статистика форума (forum/stats.tpl); {category echo="id"} : Текущей категории ID (в show.short - тег не будет работать); {category echo="name"} : Название категории (в show.short - тег не будет работать); {page-title} : show.full Заголовок страницы, также может быть использовано место {title}; {count_all} : отображает количество созданных постов в категорий; {lastposter-foto} : [lastpost] [/lastpost] Ссылка на аватар пользователя создавший новый пост; {user-group} : show.full Группа пользователя; {avatar} : show.full Ссылка на аватар пользователя; {user-group-icon} : show.full Значок в группе пользователей; {forum-cats} : отображает список пользователей в категорий. Файл addpost.tpl может быть таким же как и ваш файл addnews.tpl, вам только необходимо удалить Выбор категории. В это шаблон может быть использован тега - {selected-cat} имя категорий, в который вы планируете создать пост. Цитата Ссылка на сообщение Поделиться на других сайтах
wildport 0 Опубликовано: 6 января 2017 Рассказать Опубликовано: 6 января 2017 Кричит, что в этой строке синтаксическая ошибка: $main_host = str_replace( $cat_info[ $sbbsett['id'] ]['alt_name'] . ".", "", $_SERVER['HTTP_HOST'] ); Цитата Ссылка на сообщение Поделиться на других сайтах
Xaker1493 14 Опубликовано: 6 января 2017 Рассказать Опубликовано: 6 января 2017 (изменено) Автор 16 часов назад, wildport сказал: Кричит, что в этой строке синтаксическая ошибка: $main_host = str_replace( $cat_info[ $sbbsett['id'] ]['alt_name'] . ".", "", $_SERVER['HTTP_HOST'] ); Вы правильно вставили? Проверьте, должно быть так: if ($config['allow_rss']) $metatags .= <<<HTML <link rel="alternate" type="application/rss+xml" title="{$rss_title}" href="{$rss_url}" /> 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 ) . "\" />"; } Изменено 6 января 2017 пользователем Xaker1493 Цитата Ссылка на сообщение Поделиться на других сайтах
ollegus 0 Опубликовано: 28 февраля 2017 Рассказать Опубликовано: 28 февраля 2017 Форум тоже понравился, но установить так и не получилось Цитата Ссылка на сообщение Поделиться на других сайтах
Xaker1493 14 Опубликовано: 1 марта 2017 Рассказать Опубликовано: 1 марта 2017 Автор 13 часа назад, ollegus сказал: Форум тоже понравился, но установить так и не получилось Если у тебя версия DLE 11.2 ,11.1 или 11.0, то есть обновлённая версия: Если не получилось установить, пиши проблему, помогу решить. Цитата Ссылка на сообщение Поделиться на других сайтах
swladimir 0 Опубликовано: 5 апреля 2017 Рассказать Опубликовано: 5 апреля 2017 В 01.03.2017 в 13:52, Xaker1493 сказал: Если у тебя версия DLE 11.2 ,11.1 или 11.0, то есть обновлённая версия: Если не получилось установить, пиши проблему, помогу решить. Установил по инструкций для весрий 11.2, работает но криво. В категориях дублирует все, скрин: Цитата Ссылка на сообщение Поделиться на других сайтах
swladimir 0 Опубликовано: 5 апреля 2017 Рассказать Опубликовано: 5 апреля 2017 8 часов назад, swladimir сказал: Установил по инструкций для весрий 11.2, работает но криво. В категориях дублирует все, скрин: Нашел ошибку. Это я криво поставил, устанавливал вручную + автоматом, пришлось вручную снова лезть по файлам и удалять дублирующий код, как удалил все заработало нормально. Спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
Karat7 2 Опубликовано: 7 апреля 2017 Рассказать Опубликовано: 7 апреля 2017 На файле engine/engine.php выдает ошибку. Хотя все точно сделал Parse error: syntax error, unexpected '<<' (T_SL) in /home/f/public_html/engine/engine.php on line 1074 Цитата Ссылка на сообщение Поделиться на других сайтах
Xaker1493 14 Опубликовано: 7 апреля 2017 Рассказать Опубликовано: 7 апреля 2017 Автор 2 часа назад, Karat7 сказал: На файле engine/engine.php выдает ошибку. Хотя все точно сделал Parse error: syntax error, unexpected '<<' (T_SL) in /home/f/public_html/engine/engine.php on line 1074 Лишний символ. Цитата Ссылка на сообщение Поделиться на других сайтах
Karat7 2 Опубликовано: 7 апреля 2017 Рассказать Опубликовано: 7 апреля 2017 2 часа назад, Xaker1493 сказал: Лишний символ. Я пробовал убирать по всякому)) Он тогда другие ошибки пишет. Если не сложно скинь измененные файлы движка. Попробую твои (11.2) okcq@bk.ru Цитата Ссылка на сообщение Поделиться на других сайтах
Xaker1493 14 Опубликовано: 10 апреля 2017 Рассказать Опубликовано: 10 апреля 2017 Автор В 07.04.2017 в 19:32, Karat7 сказал: Я пробовал убирать по всякому)) Он тогда другие ошибки пишет. Если не сложно скинь измененные файлы движка. Попробую твои (11.2) okcq@bk.ru // SimpleBB - 07 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 ) . "\" />"; } // SimpleBB - 07 Проблема тут: <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 ) . "\" />"; Ищи внимательно. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.