Еще 1 вариант решения, я им и пользуюсь, нашел на форуме русского сообщесва smf. В часности за него спасибо Mr. Anviss
решил тут выложить для удобства ищущих и решил свою проблему с открытием в новой вкладке
Данное руководство справедливо для форума версии SMF 2.0
Условия:а) Кнопка должна иметь статус активной.
б) Должна стоять первой в ряду.
в) При клике на ней экшен должен выполняться средствами форума.Пошаговое руководство.1. Открываем файл Subs.php в папке Sources
2. Находим в функции setupMenuContext() строки
if (($buttonData = cache_get_data('menu_buttons-' . implode('_', $user_info['groups']). '-' . $user_info['language'], $cacheTime)) === null || time() - $cacheTime <= $modSettings['settings_updated'])
{
$buttons = array(
'home' => array(
'title' => $txt['home'],
'href' => $scripturl,
'show' => true,
'sub_buttons' => array(
),
),
добавляем
$buttons = array(
'site' => array(
'title' => 'На сайт',
'href' => $scripturl . '?action=site',
'show' => true,
'sub_buttons' => array(
),
),
в итоге код выглядит вот так:
$buttons = array(
'site' => array(
'title' => 'На сайт',
'href' => $scripturl . '?action=site',
'show' => true,
'sub_buttons' => array(
),
),
'home' => array(
'title' => $txt['home'],
'href' => $scripturl,
'show' => true,
'sub_buttons' => array(
),
),
3. Далее в этой функции находим строки
// Figure out which action we are doing so we can set the active tab.
// Default to home.
$current_action = 'home';
и заменяем в строке
$current_action = 'home';
home на
site4. Далее идем в файл
index.php в корне форума и добавляем строку
'site' => array('GoToSite.php', 'gotosite'), после строки
'restoretopic' => array('RemoveTopic.php', 'RestoreTopic'),5. Теперь создаем два файла
GoToSite.php (в папке Sources) и
GotoSite.template.php (в папке Themes/default)
Вот содержимое файла
GoToSite.php<?php
if (!defined('SMF'))
die('Hacking attempt...');
function gotosite()
{loadTemplate('GotoSite','template_main');
loadLanguage('Manual');
}
?>
Вот содержимое файла
GotoSite.template.php ( 2 варианта открытия, надо оставить подходящий вам)
1. сайт открывается в
новой вкладке<?php
function template_main()
{echo '<script>window.open("http://адрес сайта");
window.history.back(-1);</script>';}
?>
2.В
той же вкладке вместо сайта
<?php
function template_main()
{echo '<script>window.location.href="http://адрес сайта";</script>';}
?>