FAQ по созданию кнопки в главном меню

Автор Mr. Anviss, 10 октября 2008, 20:20:33

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Mr. Anviss

Краткий курс по созданию кнопки в главном меню
Данное руководство справедливо для форума версии SMF 2.0 4 beta.

Условия:
а) Кнопка должна иметь статус активной.
б) Должна стоять первой в ряду.
в) При клике на ней экшен должен выполняться средствами форума.

Пошаговое руководство.

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(
),
),

и чтобы добавить кнопку НА САЙТ изменяем текст на
if (($buttonData = cache_get_data('menu_buttons-' . implode('_', $user_info['groups']) . '-' . $user_info['language'], $cacheTime)) === null || time() - $cacheTime <= $modSettings['settings_updated'])
{ //Добавляем новую кнопку на сайт
$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
<?php
function template_main()
{echo 
"<h2>Здравствуй МИР!</h2>";}
?>



HopcH

#1
Уважаемый anviss ! Простите делетанту несколько вопросов к Вам, исходя их ваших инструкций кнопка получилась как родная, но:

1. Не могли бы вы подсказать в каком месте и как можно установить ссылку на сам сайт?
2. Кодировка моего форума UTF-8, возможно поэтому везде, сама кнопка и подсказки отображались квадратиками, что делать?
Временно переименовал кнопку в "START"!
3. В конце меню, только на начальной странице появилась какая то полу-кнопка, которая просто перезагружает страницу. (Фото прилагается) Этот вопрос уже решился!
4. Что дает файл GotoSite.template.php с приамбулой "<h2>Здравствуй МИР!</h2>", где это должно высвечиваться?

Заранее благодарствую!
С Новым Вас и всех форумчан 2009 годом!

Avdenago

1. Относительно примера:
'href' => $scripturl . '?action=site',    сделать как

'href' => 'http://mysite.bbb',

Вроде как-то так...

2. Сохранить изменяемые файлы в утф.

4. Это дает продолжение  вот этой строке: 'href' => $scripturl . '?action=site',

то есть прописывается дополнительный экшн. Согласно системе смф, каждый экшн должен иметь свой файл ядра, и свой файл шаблона. Что и создается-задается в п.4 и п.5 первого сообщения.

HopcH

Цитата: Avdenago от 02 января 2009, 02:03:13
1. Относительно примера:
'href' => $scripturl . '?action=site',    сделать как 'href' => 'http://mysite.bbb',
Вроде как-то так...

2. Сохранить изменяемые файлы в утф.
4. Это дает продолжение  вот этой строке: 'href' => $scripturl . '?action=site',
то есть прописывается дополнительный экшн. Согласно системе смф, каждый экшн должен иметь свой файл ядра, и свой файл шаблона. Что и создается-задается в п.4 и п.5 первого сообщения.


По 1, 3, 4 разобрался, но вот по 2 - сохранить файл в утф8 не получается, файл конечно же сохраняется, но сам форум начинает работать не коректоно, работает медленней, зависает на белой странице, сбрасывает аватары ...

Что делать ума пока не хватает?

Mr. Anviss

Все файлы должны быть в кодировке форума, т.е. UTF-8

Mavn

а чего вы паритесь то ? нафига такой геморой делать то??

'title' => $txt['site'],
вместо
'title' => 'На сайт',
после добавить в index.russian-utf8.php
$txt['site'] = 'Сайт';
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Mr. Anviss

Да я и не парюсь. Кому как удобно, тот так и пишет, а форуму то всеравно. Это если под другие языки делать то запись 'title' => $txt['site'], будет актуальна.

HopcH

Все работает теперь просто супер!!!

Благодарю всех вас за дельные подсказки и еще раз поздравляю с наступившим Новым годом!

Mavn

Цитата: anviss от 02 января 2009, 21:17:36
Да я и не парюсь. Кому как удобно, тот так и пишет, а форуму то всеравно. Это если под другие языки делать то запись 'title' => $txt['site'], будет актуальна.
это актуально не только для разных языков но и для разных кодировок одно дело когда используется win1251 и другое когда utf8 при последней кодировке нужно файлы сохранять в utf8 кодировке что в принципе можно не делать если просто указать переменную как я привел
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Z.D.

#9
дабы не плодить тему, чувствую вопрос где то рядом.
вояю тему оформления на основании Babylon Theme
и заметил что набор стандартных кнопок отличаеться, т.е. для бабилона, это:
начало, помощь, поиск, профиль, выйти
а для дефолтовой:
начало, помощь, поиск профиль, ЛС, пользователи, выйти
как понимаю, где то есть переменные отвечающие за видимость кнопок в данном меню, в файлах темы что то ненашел, единственно функция template_menu(), где есть создание масива $hide_buttons, но как то как он заполняется не обнаружил (да, я слаб в php ;)

заранее спасибо знатокам за ответ в какую сторону рыть.


перед всеми извеняюсь, чуть чуть не дорыл, строка
$hide_buttons = array('pm', 'mlist');
как раз и указывает, что бы не использовать "личные сообщения" и "список пользователей"




Inferno

Кто-нибудь может написать, как добавлять кнопки в нестандартные темы?
Спасибо

Mavn

Читай ФАК выше все написано
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Inferno

Цитата: Mavn от 29 января 2009, 21:12:45
Читай ФАК выше все написано
У меня видимо очень нестандартная тема оформления...
Кнопки не добавляются :D Хотя таким способом добавить в дефолтную тему получается...

Mr. Anviss

Посмотри по коду как в теме babylon добавляется кнопка. Там кнопка реализована не как текстовый элемент, а как картинка. Кинь на мыло свою тему, помогу.

Plazik

Поскольку мне нужно было добавит 2 ссылки я сделал так:
в Sources/Subs.php после
// All the buttons we can possible want and then some, try pulling the final list of buttons from cache first.
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(
),
),

Добавил:
'site' => array(
'title' => $txt['site'],
'href' => 'http://site.ru/',
'show' => true,
'sub_buttons' => array(
),
),
'gallery' => array(
'title' => $txt['gallery'],
'href' => 'http://gallery.site.ru/',
'show' => true,
'sub_buttons' => array(
),
),


В Themes/default/languages/index.russian-utf8.php добавил в конце:
Цитировать$txt['site'] = 'Сайт';
$txt['gallery'] = 'Галерея';
В Themes/default/languages/index.english.php добавил в конце:
$txt['site'] = 'Site';
$txt['gallery'] = 'Gallery';


Вроде все работает. Правильно я сделал?

Mr. Anviss

Если брать в общем - да. А так в зависимости от того чего Вы хотели достич.

vinternete

#16
как сделать чтобы в новом окне открывалось?

Mr. Anviss

В файле GotoSite.template.php
<?php
function template_main()
{echo 
'<h2>Здравствуй МИР!</h2>';}
?>

заменить на 


<?php
function template_main()
{echo 
'<script>window.open("http://адрес сайта");
window.history.back(-1);</script>'
;}
?>

sven

Цитата: HopcH от 02 января 2009, 08:12:13
но вот по 2 - сохранить файл в утф8 не получается,

Пользуюсь редактором Edit Plus Text editor - внем есть возможность выбора различных кодировок при сохранении файлов.

---------

У меня тоже вопросик:
Все сделал как было приведено выше, но css как то "криво ложиться" на ссылку - когда находишься в форуме, то цвет ссылки "на сайт"  - hover,  в других режимах - в нормале,


  посмотрите:
http://www.__industron.ru/forum/index.php

Mr. Anviss

#19
Кинь на мыло архив твоей темы + правленый файл index.template.php

sven

Цитата: anviss от 17 апреля 2009, 15:23:26
Кинь на мыло архив твоей темы + правленый файл index.template.php

А куда?

Mr. Anviss


Saler

Цитата: Plazik от 24 февраля 2009, 12:31:54
Поскольку мне нужно было добавит 2 ссылки я сделал так:
в Sources/Subs.php после
// All the buttons we can possible want and then some, try pulling the final list of buttons from cache first.
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(
),
),

Добавил:
'site' => array(
'title' => $txt['site'],
'href' => 'http://site.ru/',
'show' => true,
'sub_buttons' => array(
),
),
'gallery' => array(
'title' => $txt['gallery'],
'href' => 'http://gallery.site.ru/',
'show' => true,
'sub_buttons' => array(
),
),


В Themes/default/languages/index.russian-utf8.php добавил в конце:В Themes/default/languages/index.english.php добавил в конце:
$txt['site'] = 'Site';
$txt['gallery'] = 'Gallery';


Вроде все работает. Правильно я сделал?
А как больше двух ссылок добавить?

Drakonsa


Saler

Цитата: Drakonsa от 22 мая 2009, 17:37:29
Включить логику...
Вижу вам нравится флудить, но у меня при добавлении не отображаются остальные, пришлось даже помощь и календарь из списка удалить чтобы больше кнопок добавить.

Drakonsa

Цитата: Saler от 22 мая 2009, 17:39:33
Вижу вам нравится флудить, но у меня при добавлении не отображаются остальные, пришлось даже помощь и календарь из списка удалить чтобы больше кнопок добавить.
Ну тогда, наверное, нужно почистить кеш? о_О

Saler

Цитата: Drakonsa от 22 мая 2009, 19:10:03
Ну тогда, наверное, нужно почистить кеш? о_О
Чистил конечно, если не чистить вобще кнопки не отображаются.

tarnoga

Все сделал как написано в первом посте. Кнопка появилась, но вместо сайта открывается страница с надписью:
ЦитироватьFatal error: Call to undefined function: () in /home/tarnoga/public_html/tarnoga/forum/Sources/Load.php on line 153
Что не так я сотворил?

Ласка

вроде всё сделала как надо, кнопка появилась,но она сдивнулась кверху и вида только на половину. подскажите пожалуйста что я сделала не так?

Mr. Anviss

Цитата: Ласка от 11 июля 2009, 07:01:35
вроде всё сделала как надо, кнопка появилась,но она сдивнулась кверху и вида только на половину. подскажите пожалуйста что я сделала не так?
Чтобы сказать что Вы сделали не так надо сначала увидеть то, что Вы сделали.

key

anviss, хочу сделать кнопку перехода на сайт для темы RuNet, делал по технологии описанной в твоем первом посте но кнопка не появляется а только ее текст и действие перехода на сайт не происходит?

Kosten

Файл: Theme\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>' : '';

Вот это и можно взять за основу. Чтобы cделать кнопку надо заменить $current_action=='home' на $current_action=='site' (на 1-й и второй строках вышеизложенного фрагмента)

<a href="', $scripturl, '">' , $txt[103] , '</a> на <a href="http://АДРЕС_САЙТА">' , $txt[799] , '</a> и наконец, </td>' , $current_action == 'home' на </td>' , $current_action == 'site'
Ну и естественно, внести строку с индексом 799 в соответствующий языковой файл (theme\languages\index.russian.php)
На себе проверял - все работает

key

Если ваш пост Kosten, по моей проблеме?

В вашем примере вы не привязываетесь конкретно к моей проблемной теме RuNet а поясняете в общем принцип действий для замены действия кнопки Home и меняете на ней надпись я правильно понял?

Цитата: Kosten от 15 июля 2009, 20:58:46
Файл: Theme\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>' : '';


О какой версии SMF идет речь у вас? Какой именно index.template.php дефолтной темы или моей конкретно RuNet?

Mavn

код приведи чего и как делал а так же код генерации в шаблоне index.template.php
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Kosten

Цитата: key от 15 июля 2009, 22:47:19
Если ваш пост Kosten, по моей проблеме?

В вашем примере вы не привязываетесь конкретно к моей проблемной теме RuNet а поясняете в общем принцип действий для замены действия кнопки Home и меняете на ней надпись я правильно понял?

О какой версии SMF идет речь у вас? Какой именно index.template.php дефолтной темы или моей конкретно RuNet?
Версия SMF написана в профиле (1.1.4), тема дефолтная (т.к. RuNet у меня нету).
Я имел ввиду взять код кнопки home за основу для создания новой.

key

2Mavn
Делал все как описано в первом посте этой темы. Код index.template.php темы RuNet в приложении, там сейчас просто прописана ссылка на сайт для кнопки Начало т.к добавить кнопку не получилось (по инструкции появлялась только ссылка перед кнопкой начало без самой графической кнопки)

2Kosten Понятно. Я так и пытался, но не вышло.

У меня впечатление что проблема из-за особенностей описания кнопок именно в этой теме. В базовой теме и в теме Prof немного другая организация там все сделал и работает отдельной кнопкой почти без проблем.

Mavn

Цитата: Kosten от 15 июля 2009, 23:36:39
Версия SMF написана в профиле (1.1.4), тема дефолтная (т.к. RuNet у меня нету).
Я имел ввиду взять код кнопки home за основу для создания новой.
название категории не пробовали прочесть?? для тех кто не видет данная статья предназначена для SMF 2.0
Цитата: key от 15 июля 2009, 23:52:11
2Mavn
Делал все как описано в первом посте этой темы
я вообще то код просил выложить чего сделали!
все говорят что делали в точности как написано но в большинстве случаев далеко не так!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

gorbi

Цитата: Mavn от 16 июля 2009, 07:33:23
название категории не пробовали прочесть?? для тех кто не видет данная статья предназначена для SMF 2.0я вообще то код просил выложить чего сделали!
все говорят что делали в точности как написано но в большинстве случаев далеко не так!
Дайте линк на мануал для СМФ1.10

OleLykoe

сделал кнопку по инструкции в дефаулдной теме она появилась, все прекрасно, кроме
Parse error: syntax error, unexpected T_STRING in /home/m-portal/motoportal.su/docs/smf/Sources/GoToSite.php on line 7

а вот если перейти в тему класик то тока надпись от кнопки остается, как можно сделать там кнопочку??
форум есть пока работеат)))
www.motoportal.su

cwdima

Всем Доброго времени суток, у меня такая проблемма, мне нужно добавить 2 кнопки в меню форума   первая кнопка на прослушивание онлайн радио    Onlife Radio   http://www.gaganet-radio.com/player/index.php        и вторая кнопка на игровой портал   Lineage-game.ru      http://www.Lineage-game.ru                    собственно что куда вписать найти немогу  прошу помощи пожалуста
<?php
// Version: 2.0 RC1; index

/* This template is, perhaps, the most important template in the theme. It
contains the main template layer that displays the header and footer of
the forum, namely with main_above and main_below. It also contains the
menu sub template, which appropriately displays the menu; the init sub
template, which is there to set the theme up; (init can be missing.) and
the linktree sub template, which sorts out the link tree.

The init sub template should load any data and set any hardcoded options.

The main_above sub template is what is shown above the main content, and
should contain anything that should be shown up there.

The main_below sub template, conversely, is shown after the main content.
It should probably contain the copyright statement and some other things.

The linktree sub template should display the link tree, using the data
in the $context['linktree'] variable.

The menu sub template should display all the relevant buttons the user
wants and or needs.

For more information on the templating system, please see the site at:
http://www.simplemachines.org/
*/

// Initialize the template... mainly little settings.
function template_init()
{
global $context$settings$options$txt;

/* Use images from default theme when using templates from the default theme?
if this is 'always', images from the default theme will be used.
if this is 'defaults', images from the default theme will only be used with default templates.
if this is 'never' or isn't set at all, images from the default theme will not be used. */
$settings['use_default_images'] = 'never';

/* What document type definition is being used? (for font size and other issues.)
'xhtml' for an XHTML 1.0 document type definition.
'html' for an HTML 4.01 document type definition. */
$settings['doctype'] = 'xhtml';

/* The version this template/theme is for.
This should probably be the version of SMF it was created for. */
$settings['theme_version'] = '2.0 RC1';

/* Set a setting that tells the theme that it can render the tabs. */
$settings['use_tabs'] = true;

/* Use plain buttons - as oppossed to text buttons? */
$settings['use_buttons'] = true;

/* Show sticky and lock status separate from topic icons? */
$settings['separate_sticky_lock'] = true;

/* Does this theme use the strict doctype? */
$settings['strict_doctype'] = false;

/* Does this theme use post previews on the message index? */
$settings['message_index_preview'] = false;
/* Set the following variable to true if this theme requires the optional theme strings file to be loaded. */
$settings['require_theme_strings'] = true;

$settings['theme_variants'] = array('theme2','theme1','theme3');
}

// The main sub template above the content.
function template_html_above()
{
global $context$settings$options$scripturl$txt$modSettings;

// Show right to left and the character set for ease of translating.
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"'
$context['right_to_left'] ? ' dir="rtl"' '''><head>
<meta http-equiv="Content-Type" content="text/html; charset='
$context['character_set'], '" />
<meta name="description" content="'
$context['page_title_html_safe'], '" />
<meta name="keywords" content="'
$context['meta_keywords'], '" />


<script language="JavaScript" type="text/javascript" src="'
$settings['default_theme_url'], '/scripts/script.js?rc1"></script>
<script language="JavaScript" type="text/javascript" src="'
$settings['default_theme_url'], '/scripts/theme.js?rc1"></script>
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
var smf_theme_url = "'
$settings['theme_url'], '";
var smf_default_theme_url = "'
$settings['default_theme_url'], '";
var smf_images_url = "'
$settings['images_url'], '";
var smf_scripturl = "'
$scripturl'";
var smf_iso_case_folding = '
$context['server']['iso_case_folding'] ? 'true' 'false'';
var smf_charset = "'
$context['character_set'], '";'$context['show_pm_popup'] ? '
if (confirm("' 
$txt['show_personal_messages'] . '"))
window.open(smf_prepareScriptUrl(smf_scripturl) + "action=pm");' 
'''
var ajax_notification_text = "'
$txt['ajax_in_progress'], '";
var ajax_notification_cancel_text = "'
$txt['modify_cancel'], '";
// ]]></script>
<title>'
$context['page_title_html_safe'], '</title>';

// Please don't index these Mr Robot.
if (!empty($context['robot_no_index']))
echo '
<meta name="robots" content="noindex" />'
;

// The ?rc1 part of this link is just here to make sure browsers don't cache it wrongly.
echo '
<link rel="stylesheet" type="text/css" href="'
$settings['theme_url'], '/style'$context['theme_variant'], '.css?rc1" />';

echo '
<link rel="stylesheet" type="text/css" href="'
$settings['default_theme_url'], '/css/print.css?rc1" media="print" />';


// IE7 needs some fixes for styles.
if ($context['browser']['is_ie7'])
echo '
<link rel="stylesheet" type="text/css" href="'
$settings['default_theme_url'], '/css/ie7.css" />';
// ..and IE6!
elseif ($context['browser']['is_ie6'])
echo '
<link rel="stylesheet" type="text/css" href="'
$settings['default_theme_url'], '/css/ie6.css" />';
// Firefox - all versions - too!
elseif ($context['browser']['is_firefox'])
echo '
<link rel="stylesheet" type="text/css" href="'
$settings['default_theme_url'], '/css/ff.css" />';

// RTL languages require an additional stylesheet.
if ($context['right_to_left'])
echo '
<link rel="stylesheet" type="text/css" href="'
$settings['default_theme_url'], '/css/rtl.css" />';

// Show all the relative links, such as help, search, contents, and the like.
echo '
<link rel="help" href="'
$scripturl'?action=help" />
<link rel="search" href="' 
$scripturl '?action=search" />
<link rel="contents" href="'
$scripturl'" />';

// If RSS feeds are enabled, advertise the presence of one.
if (!empty($modSettings['xmlnews_enable']))
echo '
<link rel="alternate" type="application/rss+xml" title="'
$context['forum_name_html_safe'], ' - RSS" href="'$scripturl'?type=rss;action=.xml" />';

// If we're viewing a topic, these should be the previous and next topics, respectively.
if (!empty($context['current_topic']))
echo '
<link rel="prev" href="'
$scripturl'?topic='$context['current_topic'], '.0;prev_next=prev" />
<link rel="next" href="'
$scripturl'?topic='$context['current_topic'], '.0;prev_next=next" />';

// If we're in a board, or a topic for that matter, the index will be the board's index.
if (!empty($context['current_board']))
echo '
<link rel="index" href="'
$scripturl'?board='$context['current_board'], '.0" />';

// We'll have to use the cookie to remember the header...
if ($context['user']['is_guest'])
{
$options['collapse_header'] = !empty($_COOKIE['upshrink']);
$options['collapse_header_ic'] = !empty($_COOKIE['upshrinkIC']);
}

// Output any remaining HTML headers. (from mods, maybe?)
echo $context['html_headers'], '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
// Create the main header object.
var mainHeader = new smfToggle("upshrink", '
, empty($options['collapse_header']) ? 'false' 'true'');
mainHeader.useCookie('
$context['user']['is_guest'] ? 0');
mainHeader.setOptions("collapse_header", "'
$context['session_id'], '");
mainHeader.addToggleImage("upshrink", "/upshrink.gif", "/upshrink2.gif");
mainHeader.addTogglePanel("user_section");
mainHeader.addTogglePanel("news_section");
// ]]></script>'
;

echo '
</head>
<body>
<div class="body-picture">'
;
}

function 
template_body_above()
{
global $context$settings$options$scripturl$txt$modSettings;

if (empty(
$settings['disable_user_variant']))
{
echo ' <div style="position:absolute">';
template_sizemenu();
echo '</div>';
}

echo '
<div id="logo">'
;

if (empty($settings['header_logo_url']))
 echo $context['forum_name_html_safe'];
else
echo ' <a href="'.$scripturl.'" title=""><img  src="'$settings['header_logo_url'], '" alt="'$context['forum_name_html_safe'], '" /></a>
'
;
echo ' </div>'// logo


echo '


<div id="mainframe">'
;
// show the menu
echo' <table width="100%">
<tr >
<td>'
;
template_the_menu ();
echo </td>
</tr>
</table>'
;


// end of header shortie
echo '
<div class="headerpadding ">
<form class="floatright" id="search_form" action="'
$scripturl'?action=search2" method="post" accept-charset="'$context['character_set'], '">
<a href="'
$scripturl'?action=search;advanced" title="'$txt['search_advanced'], '"><img id="advsearch" src="'.$settings['images_url'].'/filter.gif" align="middle" alt="'$txt['search_advanced'], '" /></a>
<input type="text" name="search" value="" style="width: 190px;" />&nbsp;
<input type="submit" name="submit" value="'
$txt['search'], '" style="width: 11ex;" />
<input type="hidden" name="advanced" value="0" />'
;

// Search within current topic?
if (!empty($context['current_topic']))
echo '
<input type="hidden" name="topic" value="'
$context['current_topic'], '" />';
// If we're on a certain board, limit it to this board ;).
elseif (!empty($context['current_board']))
echo '
<input type="hidden" name="brd['
$context['current_board'], ']" value="'$context['current_board'], '" />';
echo '
</form>'
;
// Show a random news item? (or you could pick one from news_lines...)
if (!empty($settings['enable_news']))
echo '
<div id="random_news"><h3>'
$txt['news'], ':</h3><p>'$context['random_news_line'], '</p></div>';
else
echo '
<div id="random_news"><h3><p></p></h3></div>'
;
echo '
</div>'
;

// show the menu
// template_the_menu (); uncomment to return normal menu

echo' <table  width="100%">
<tr>
<td width="10%">'
;
if ($context['user']['is_logged'])
{

if (!empty($context['user']['avatar']))
echo '
<div id="userareaavatar">'
$context['user']['avatar']['image'], '</div>';

}
echo' </td>
<td width="50%">'
;
template_userarea();
echo </td>
<td width="40%">'
;
template_forum_stats ();
echo' </td>
</tr>
</table>'
;
// Show the navigation tree.
theme_linktree();
// The main content should go here.
echo '
<div id="bodyarea">'
;
}

function 
template_body_below()
{
global $context$settings$options$scripturl$txt;

echo '
</div>'
;

// Show the "Powered by" and "Valid" logos, as well as the copyright. Remember, the copyright must be somewhere!
echo '
<div id="footerarea" class="headerpadding topmargin clearfix">
<ul class="smalltext">
<li class="copywrite">'
theme_copyright(), '<div class="smalltext"><a href="http://badboys-lg-pvp.ru"> COPYRIGHT © IIIAUTAH 2009</a></div></li>

</ul>'
;

// Show the load time?
if ($context['show_load_time'])
echo '
<p class="smalltext" id="show_loadtime">'
$txt['page_created'], $context['load_time'], $txt['seconds_with'], $context['load_queries'], $txt['queries'], '</p>';

echo 
</div>'
;
// <div id="foot-l">
// <div id="foot-r">
// <div id="footer">
// </div>
// </div>
// </div>



echo '</div>';
}

function 
template_html_below()
{
global $context$settings$options$scripturl$txt$modSettings;

echo '
</div></body></html>'
;
}

// Show a linktree. This is that thing that shows "My Community | General Category | General Discussion"..
function theme_linktree($force_show false)
{
global $context$settings$options$shown_linktree;

// If linktree is empty, just return - also allow an override.
if (empty($context['linktree']) || (!empty($context['dont_default_linktree']) && !$force_show))
return;

//!!! Temporarily don't do it twice.
if (!empty($shown_linktree))
return;
$shown_linktree true;

echo '
<ul id="linktree">'
;

// Each tree item has a URL and name. Some may have extra_before and extra_after.
foreach ($context['linktree'] as $link_num => $tree)
{
echo '
<li'
, ($link_num == count($context['linktree']) - 1) ? ' class="last"' '''>';
// Show something before the link?
if (isset($tree['extra_before']))
echo $tree['extra_before'];

// Show the link, including a URL if it should have one.
echo $settings['linktree_link'] && isset($tree['url']) ? '
<a href="' 
$tree['url'] . '"><span>' $tree['name'] . '</span></a>' '<span>' $tree['name'] .'</span>';

// Show something after the link...?
if (isset($tree['extra_after']))
echo $tree['extra_after'];

// Don't show a separator for the last one.
if ($link_num != count($context['linktree']) - 1)
echo '&nbsp;>';

echo '
</li>'
;
}
echo '
</ul>'
;
}

// Show the menu up top. Something like [home] [help] [profile] [logout]...
function template_menu()
{
global $context$settings$options$scripturl$txt;

echo '

<div class="main-menu">
<ul>'
;
foreach ($context['menu_buttons'] as $act => $button)
 {
 echo '   <li><a '$button['active_button'] ? ' class="current"' '' ' href="'$button['href'], '">
         <span class="menu-left"></span>
 <span class="menu-right">' 
$button['title'] , '</span></a>';
//    Does this button have any subbuttons?
//        if(!empty($button['sub_buttons']))
//        {
//            echo '
//                             <div class="sub">
//  <ul>';
//            foreach($button['sub_buttons'] as $sub_button)
//                    echo '
//                <li><a href="', $sub_button['href'], '">' , $sub_button['title'] , '</a></li>';
//            echo '
//                                 </ul>    
//  </div>';      
//         }
 echo' </li>';
 }
echo '
</ul>
</div>'
;
}
function 
template_sizemenu()
{
global $context$settings$options$scripturl$txt;

echo '

<div class="main-menu">
 <ul>'
;

 echo '   <li><a href="' $scripturl '?variant=theme1">
         <span class="menu-left"></span>
 <span class="menu-right">' 
$txt['gmtheme1'] , '</span></a></li>';
 echo '   <li><a href="' $scripturl '?variant=theme2">
         <span class="menu-left"></span>
 <span class="menu-right">' 
$txt['gmtheme2'] , '</span></a></li>';
 echo '   <li><a href="' $scripturl '?variant=theme3">
         <span class="menu-left"></span>
 <span class="menu-right">' 
$txt['gmtheme3'] , '</span></a></li>';

echo '
</ul>
</div>'
;
}

// Generate a strip of buttons.
function template_button_strip($button_strip$direction 'top'$custom_td '')
{
global $settings$context$txt$scripturl;

// Create the buttons...
$buttons = array();
foreach ($button_strip as $key => $value)
if (!isset($value['test']) || !empty($context[$value['test']]))
$buttons[] = '<a href="' $value['url'] . '"' . (isset($value['active']) ? ' class="active"' '') . (isset($value['custom']) ? ' ' $value['custom'] : '') . '><span>' $txt[$value['text']] . '</span></a>';

if (empty($buttons))
return '';
// Make the last one, as easy as possible.
$buttons[count($buttons) - 1] = str_replace('<span>''<span class="last">'$buttons[count($buttons) - 1]);
echo '
<div class="buttonlist'
$direction != 'top' '_bottom' '''">
<ul class="clearfix">
<li>'
implode('</li><li>'$buttons), '</li>
</ul>
</div>'
;
}

function 
template_userarea()
{
global $context$settings$options$scripturl$txt;

echo 
' <div id="userarea" >';
if ($context['user']['is_logged'])
{
if (!empty($context['user']['avatar']))
// echo '
// <div id="userareaavatar">', $context['user']['avatar']['image'], '</div>';
echo '
<b>'
$txt['hello_member_ndt'], ' '$context['user']['name'], '</b> &nbsp;';
// Only tell them about their messages if they can read their messages!
if ($context['allow_pm'])
echo $txt['msg_alert_you_have'], ' <a href="'$scripturl'?action=pm">'$context['user']['messages'], ' '$context['user']['messages'] != $txt['msg_alert_messages'] : $txt['message_lowercase'], '</a>'$txt['newmessages4'], ' '$context['user']['unread_messages'], ' '$context['user']['unread_messages'] == $txt['newmessages0'] : $txt['newmessages1'] , '. &nbsp;<br />[';
echo '
<a href="'
$scripturl'?action=unread">',$txt['show_unread_since_visit'],'</a>&nbsp;/
<a href="'
$scripturl'?action=unreadreplies">',$txt['show_all_unread_replies'],'</a>&nbsp;/
<a href="'
$scripturl'?action=profile;area=showposts">',$txt['ownposts2'],'</a>]<br />
'
$context['current_time'],'';
// Is the forum in maintenance mode?
if ($context['in_maintenance'] && $context['user']['is_admin'])
echo '
<li class="notice">'
$txt['maintain_mode_on'], '</li>';
// Are there any members waiting for approval?
if (!empty($context['unapproved_members']))
echo '
<li>'
$context['unapproved_members'] == $txt['approve_thereis'] : $txt['approve_thereare'], ' <a href="'$scripturl'?action=admin;area=viewmembers;sa=browse;type=approve">'$context['unapproved_members'] == $txt['approve_member'] : $context['unapproved_members'] . ' ' $txt['approve_members'], '</a> '$txt['approve_members_waiting'], '</li>';

// Show the total time logged in?
if (!empty($context['user']['total_time_logged_in']))
{
echo '
<ul><li>'
$txt['totalTimeLogged1'];

// If days is just zero, don't bother to show it.
if ($context['user']['total_time_logged_in']['days'] > 0)
echo $context['user']['total_time_logged_in']['days'] . $txt['totalTimeLogged2'];

// Same with hours - only show it if it's above zero.
if ($context['user']['total_time_logged_in']['hours'] > 0)
echo $context['user']['total_time_logged_in']['hours'] . $txt['totalTimeLogged3'];

// But, let's always show minutes - Time wasted here: 0 minutes ;).
echo $context['user']['total_time_logged_in']['minutes'], $txt['totalTimeLogged4'], '
</li>'
;
}
if (!empty($context['open_mod_reports']) && $context['show_open_reports'])
echo '
<li><a href="'
$scripturl'?action=moderate;area=reports">'sprintf($txt['mod_reports_waiting'], $context['open_mod_reports']), '</a></li>';
echo '
</ul>'
;
}
// Otherwise they're a guest - this time ask them to either register or login - lazy bums...
else
{
echo '
<script language="JavaScript" type="text/javascript" src="'
$settings['default_theme_url'], '/scripts/sha1.js"></script>
<form class="smalltext" id="guest_form" action="'
$scripturl'?action=login2" method="post" accept-charset="'$context['character_set'], '" ', empty($context['disable_login_hashing']) ? ' onsubmit="hashLoginPassword(this, \'' $context['session_id'] . '\');"' '''>
$txt['login_or_register'], '<br />
<input type="text" name="user" size="10" />
<input type="password" name="passwrd" size="10" />
<select name="cookielength">
<option value="60">'
$txt['one_hour'], '</option>
<option value="1440">'
$txt['one_day'], '</option>
<option value="10080">'
$txt['one_week'], '</option>
<option value="43200">'
$txt['one_month'], '</option>
<option value="-1" selected="selected">'
$txt['forever'], '</option>
</select>
<input type="submit" value="'
$txt['login'], '" /><br />
'
$txt['quick_login_dec'];

if (!empty($modSettings['enableOpenID']))
echo'
<br />
<input type="text" name="openid_url" id="openid_url" size="25" class="openid_login" />'
;

echo '
<input type="hidden" name="hash_passwrd" value="" />
</form>'
;
}
echo '
</div>'
;
}

function 
template_the_menu ()
{
echo ' <table class="menu-wrapper"><tr><td> ';
// Show the menu here, according to the menu sub template.
template_menu();
echo '</td></tr></table>';
}

function 
template_forum_stats ()
{
global $context$settings$options$scripturl$txt$modSettings;

// Show some statistics if stat info is off.
if ($settings['show_stats_index'])
{
echo '
<div   align="center" style="font-size: 6.5pt;">'
;
echo '
'
$txt['members'], ': '$context['common_stats']['total_members'], ' &nbsp;&#8226;&nbsp; '$txt['posts_made'], ': '$context['common_stats']['total_posts'], ' &nbsp;&#8226;&nbsp; '$txt['topics'], ': '$context['common_stats']['total_topics'], '
'
, ($settings['show_latest_member'] ? ' &nbsp;&#8226;&nbsp; <br />' $txt['welcome_member'] . ' <b>' $context['common_stats']['latest_member']['link'] . '</b>' $txt['newest_member'] : '') , '';


echo '</div>';
}
}



?>

Mavn

первое сообщение для начала прочитайте
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Ares

Делал всё по инструкции,всё сработало, но есть несколько нюансов...
В файле GotoSite.template.php вставил код
<?php
function template_main()
{echo 
'<script>window.open("http://sirius.donetsk.ua/portal/");
window.history.back(-1);</script>'
;}
?>

На форуме появилась кнопка но название в виде вопрос знаков,явно дело в кодировке но подскажите где что поменять на.
И второе, при нажатии на кнопку, браузер блокирует вход(типо; блокировка всплывающего окна)при нажатии на блокировку он переходит..но всё же хочется нормального перехода....

Mr. Anviss

Цитата: Ares от 07 октября 2009, 22:23:30
Делал всё по инструкции,всё сработало, но есть несколько нюансов...
В файле GotoSite.template.php вставил код
<?php
function template_main()
{echo 
'<script>window.open("http://sirius.donetsk.ua/portal/");
window.history.back(-1);</script>'
;}
?>

На форуме появилась кнопка но название в виде вопрос знаков,явно дело в кодировке но подскажите где что поменять на.
И второе, при нажатии на кнопку, браузер блокирует вход(типо; блокировка всплывающего окна)при нажатии на блокировку он переходит..но всё же хочется нормального перехода....
а что мешает заменить
<?php
function template_main()
{echo 
'<script>window.open("http://sirius.donetsk.ua/portal/");
window.history.back(-1);</script>'
;}
?> 

на
<?php
function template_main()
{echo 
'<script>window.location.href="http://sirius.donetsk.ua/portal/";</script>';}
?>

Ares

anviss
СПС всё стало норм....ток насчёт кодировки так и нет ответа..
ЦитироватьНа форуме появилась кнопка но название в виде вопрос знаков,явно дело в кодировке но подскажите где что поменять.

Mavn

Цитата: Mavn от 02 января 2009, 21:11:49
а чего вы паритесь то ? нафига такой геморой делать то??

'title' => $txt['site'],
вместо
'title' => 'На сайт',
после добавить в index.russian-utf8.php
$txt['site'] = 'Сайт';
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Ares

Mavn
Что-то не очень получилось!!!
после добавить в index.russian-utf8.php
$txt['site'] = 'Сайт';

я так понимаю путь файла такой...Themes\default\language\index.russian-utf8.php
ниже вложу фото

Mr. Anviss

Цитата: Ares от 08 октября 2009, 12:41:24
anviss
СПС всё стало норм....ток насчёт кодировки так и нет ответа..
Сохраните файл в котором делаете правку в кодировке utf8

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Ares


Солярис

А каким образом можно дополнительную кнопочку (например для правил форума) вставить в меню для RC2?
В нем меню генерируется каким-то циклом и вот, как туда вставить еще одну кнопку, чтобы она отображалась и для гостей в том числе, я никак понять не могу.

Пришлось пока вставить доп. кнопку чуть выше основного меню, но это некрасиво смотрится.