0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 23964 Просмотров

Многи юзвери задают такой вопрос " А как в ФОРУМЕ СМФ поставить кнопку "На сайт" ? " Вот ответ на ваш вопрос:
1) В файле index.template.php , примерно со строки 425 файла начинается такой код
// Show the [home] button.
   echo '
               <a href="', $scripturl, '" ' , $current_action == 'home' ? 'class="nav_important"' : '' , '>' , $txt[103] , '</a>&nbsp;|';

2) Перед етим кодом вставляем следуюющее
// Show the [site] button.
   echo '   
                   <a href="http://ваш_сайт.ru" target="_blank">На сайт' , $txt[100] , '  </a>&nbsp;|';

ВНИМАНИЕ!!!!!
Все строчки должны бить одна под одной иначе тему глюканёт!



Пы.Сы. модеры если не впадлу закрепите тему плиз!

*

andragor

  • Осваиваюсь на форуме
  • 35
  • 5 / 0
Re: Кнопка на сайт! (Маленькое FAQ)
« Ответ #1 : 08.04.2008, 18:23:56 »
А это для какой версии движка и какого шаблона?
На шаблоне default версии SMF 1.1.4 такого куска кода нет.

Если у вас такая же версия как на Joomlaforum.ru, то код в  /Themes/default/index.template.php будет таким:

Код
// Show the [home] button.
echo ($current_action=='home' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '">&nbsp;</td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'home' ? 'active_back' : 'back' , '">
<a href="', $scripturl, '">' , $txt[103] , '</a>
</td>' , $current_action == 'home' ? '<td class="maintab_active_' . $last . '">&nbsp;</td>' : '';


перед ним добавляем:
Код
// Show the [site] button.
echo ($current_action=='site' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '">&nbsp;</td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'site' ? 'active_back' : 'back' , '">
<a href="http://www.site.ru/">Site.ru</a>
</td>' , $current_action == 'site' ? '<td class="maintab_active_' . $last . '">&nbsp;</td>' : '';
*

azim

  • Захожу иногда
  • 113
  • 0 / 0
  • Добрый ТУРИСТ
Re: Кнопка на сайт! (Маленькое FAQ)
« Ответ #2 : 10.10.2009, 15:11:21 »
А если и не как в первом варианте и ни как втором....  :'( Я использую шаблон Back-n-Black (1.1 RC3) так вот там кнопка начало следующие  выглядят так
       
Цитировать
// Show the [home] button.
   echo '<div id="tabs6"><ul>';
        echo '<li><a href="', $scripturl, '"><span>' , $txt[103] , '</span></a></li>';

   // Show the [help] button.
   echo '<li><a href="', $scripturl, '?action=help"><span>' , $txt[119] , '</span></a></li>';

   // How about the [search] button?
   if ($context['allow_search'])
      echo '<li><a href="', $scripturl, '?action=search"><span>' , $txt[182] , '</span></a></li>';

   // Is the user allowed to administrate at all? ([admin])
   if ($context['allow_admin'])
            echo '<li><a href="', $scripturl, '?action=admin"><span>' , $txt[2] , '</span></a></li>';
*

diggs

  • Захожу иногда
  • 60
  • 4 / 0
Re: Кнопка на сайт! (Маленькое FAQ)
« Ответ #3 : 16.11.2011, 16:48:39 »
Решение этой задачи, на SMF 2.x (стандартный шаблон)

1. Правим файл /Sources/Subs.php

Находим почти в самом конце файла строки:

Цитировать
'home' => array(
                'title' => $txt['home'],
                'href' => $scripturl,
                'show' => true,
                'sub_buttons' => array(
                ),
                'is_last' => $context['right_to_left'],
            ),

перед этими строками вставляем вот такой код:

Цитировать
'site' => array(
                'title' => $txt['site'],
                'href' => 'http://yousite.dmn',
                'target' => '_blank',
                'show' => true,
                'sub_buttons' => array(
                ),
            ),

PS: 'target' => '_blank', отвечает за открытие ссылки в новом окне. если вам это не нужно, просто удалите эту строку.

В итоге у нас должно получиться вот так:

Цитировать
      $buttons = array(
         'site' => array(
                'title' => $txt['site'],
                'href' => 'http://sys-admin.kz',
            'target' => '_blank',
                'show' => true,
                'sub_buttons' => array(
                ),
            ),
         'home' => array(
            'title' => $txt['home'],
            'href' => $scripturl,
            'show' => true,
            'sub_buttons' => array(
            ),
            'is_last' => $context['right_to_left'],
         ),

2. Правим файл Themes/default/languages/index.russian.php - Если кодировка win-1251
находим
Цитировать
$txt['home'] = 'Начало';
далее вставляем
Цитировать
$txt['site'] = 'На сайт';

2a. Правим файл Themes/default/languages/index.russian-uft8.php - Если кодировка UFT-8
находим
Цитировать
$txt['home'] = 'Начало';
далее вставляем
Цитировать
$txt['site'] = 'На сайт';
2b. Правим файл Themes/default/languages/index.english.php - Если используете английскую версию.
находим
Цитировать
$txt['home'] = 'Home';
далее вставляем
Цитировать
$txt['site'] = 'Site';

И не нужны никакие модули дополнительные. Enjoy :)
« Последнее редактирование: 08.02.2012, 18:43:42 от diggs »
*

laks

  • Новичок
  • 2
  • 0 / 0
Re: Кнопка на сайт! (Маленькое faq)
« Ответ #4 : 25.04.2013, 06:08:43 »
Подскажите пожалуйста, что нужно дописать, чтобы сайт открывался в той же вкладке, а не в новой?
*

laks

  • Новичок
  • 2
  • 0 / 0
Re: Кнопка на сайт! (Маленькое faq)
« Ответ #5 : 26.04.2013, 02:29:30 »
Еще 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 на site

4. Далее идем в файл 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>';}
?>
*

diggs

  • Захожу иногда
  • 60
  • 4 / 0
Re: Кнопка на сайт! (Маленькое faq)
« Ответ #6 : 26.07.2014, 16:00:34 »
Подскажите пожалуйста, что нужно дописать, чтобы сайт открывался в той же вкладке, а не в новой?


Если речь идёт о решении, которое привёл я - то из добавляемого куска кода нужно убрать 'target' => '_blank',
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться