По просьбе трудящихся выкладываю инструкцию как подключить сапу c контекстом и статьями на Vbulletin 3.8.5 + vBSEO 3.3.2-3.5.2
Вначале заливаем все необходимые файлы от сапы на сервер. Если хотим подключить статьи, тогда скачиваем код из раздела "
Статьи".
Создаём модуль:
Продукт = Vbulletin
Местоположение модуля = global_start
Заголовок = Sape
Порядок выполнения = 5
Код PHP модуля:
PHP Code:
if (!defined('_SAPE_USER'))
{
define('_SAPE_USER', 'ВАШ НОМЕР САПЫ XXXX');
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['host'] = 'http://www.ваш адрес.ру';
$o['request_uri'] = $_GET['uri'];
$o['charset'] = 'UTF-8'; (Строка необходима при условии, что форум на UTF8 кодировке)
$o['multi_site'] = true;
$sape = new SAPE_client($o);
$sape_context = new SAPE_context($o);
$sape_article = new SAPE_articles($o); //необходимо только при размещении статей
unset($o);
$sapestat = $sape_article->return_announcements(); //необходимо только при размещении статей
$sapelinks_1 = $sape->return_links(2); //количество ссылок в 1-ом блоке
$sapelinks_2 = $sape->return_links(2); //количество ссылок во 2-ом блоке
$sapelinks_3 = $sape->return_links(); //вывод ссылок для 3-го блока
В требуемое место в шаблоне вставляете код $sapelinks_1.
Если не знаете спрашивайте подскажу куда лучше. В следующее место другой блок $sapelinks_2 и $sapelinks_3.
Создаём второй модуль:
Продукт = Vbulletin
Местоположение модуля = postbit_display_complete
Заголовок = Sape Context
Порядок выполнения = 5
Код PHP модуля:
PHP Code:
global $sape_context;
$this->post['message'] =
$sape_context->replace_in_text_segment($this->post['message']);
Вносим изменения в htaccess при наличии на сайте vBSEO:
Заменяем:
PHP Code:
RewriteRule ^(.+)$ vbseo.php [L,QSA]
Строкой:
PHP Code:
RewriteRule ^(.+)$ vbseo.php?vbseourl=$1&uri=%{REQUEST_URI} [L,QSA]
Вы подключили сапу и контекст. Для того, что бы проверить работоспособность вам необходимо пересканировать сайт.
Теперь подключаем статьи.
Создаем templ.php и заливаем в корень со следующим содержанием:
PHP Code:
<?php
error_reporting(E_ALL & ~E_NOTICE);
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'templ');
$phrasegroups = array(
);
$specialtemplates = array(
);
$globaltemplates = array(
'templ',
);
$actiontemplates = array(
);
require_once('./global.php');
$navbits = array();
$navbits[$parent] = '{header}';
$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('templ') . '");');
?>
В стилях добавляете новый шаблон и называете его templ:
PHP Code:
$stylevar[htmldoctype] <html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]"> <head>
<title>{title}</title>
<meta name="keywords" content="{keywords}">
<meta name="description" content="{description}">
<meta http-equiv="Content-Type" content="text/html; charset=$stylevar[charset]" />
<meta name="generator" content="vBulletin $vboptions[templateversion]" />
<!-- CSS Stylesheet -->
$style[css]
<if condition="is_browser('opera') AND !is_browser('opera', '8.0.1')">
<style type="text/css" id="vbulletin_opera8fix_css">
ul, ol { padding-$stylevar[left]:20px; }
</style>
</if>
<if condition="$show['editor_css']">
$editor_css
</if>
<!-- / CSS Stylesheet -->
<script src="flashdetect.js"></script>
<script type="text/javascript" src="$stylevar[yuipath]/yahoo-dom-event/yahoo-dom-event.js?v=$vboptions[simpleversion]"></script>
<script type="text/javascript" src="$stylevar[yuipath]/connection/connection-min.js?v=$vboptions[simpleversion]"></script>
<script type="text/javascript">
<!--
var SESSIONURL = "$session[sessionurl_js]";
var SECURITYTOKEN = "$bbuserinfo[securitytoken]";
var IMGDIR_MISC = "$stylevar[imgdir_misc]";
var vb_disable_ajax = parseInt("$vboptions[disable_ajax]", 10);
// -->
</script>
<script type="text/javascript" src="clientscript/vbulletin_global.js?v=$vboptions[simpleversion]"></script>
<if condition="$show['popups']"><script type="text/javascript" src="clientscript/vbulletin_menu.js?v=$vboptions[simpleversion]"></script></if>
<if condition="$vboptions['externalrss']">
<link rel="alternate" type="application/rss+xml" title="$vboptions[bbtitle] RSS Feed" href="external.php?type=RSS2" />
<if condition="$show['foruminfo'] OR $show['threadinfo']">
<link rel="alternate" type="application/rss+xml" title="$vboptions[bbtitle] - $foruminfo[title_clean] - RSS Feed" href="external.php?type=RSS2&forumids=$foruminfo[forumid]" />
</if>
</if>
</head>
<body>
$header
$navbar
<h1>{header}</h1>
<table class="tborder" cellpadding="10" cellspacing="$stylevar[cellspacing]" border="0" width="100%" >
<tr>
<td class="tcat">{header}</td>
</tr>
</table>
{body}
<br />
$footer </body> </html>
Проверяем по адресу
HTML Code:
http://www.ваш сайт.ру/templ.php.
открывается ли страница и всё ли с ней в порядке. Шаблон статей готов.
В настройках сайта важно выключить "Хранить таблицы стилей CSS в файлах?" дабы не было проблем с css.
Далее идём в начало файла htaccess и добавляем:
PHP Code:
<IfModule mod_rewrite.c>
RewriteEngine On
#Articles rules
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^([0-9]+)-([a-z0-9\_\-]+)\.html$ /ВАШ НОМЕР САПЫ XXXX.php [L]
</IfModule>
Идем в articles.sape.ru "Шаблоны статей".
Добавляете строку:
HTML Code:
http://www.ваш сайт.ру/templ.php.
В "Шаблоны URL'ов":
HTML Code:
/{id}-{name}.html
В шаблоны vbulletin добавляем $sapestat там где хотим выводить ссылку на анонсы статей.
Если кто удосужится создать модуль, который объединит все эти действия и сделает проще установку сапы на vbulletin - спасибо этому доброму человеку от всех кому лениво работать ручками!