Добавление в меню форума новых разделов

Автор mail_makc, 25 мая 2006, 17:59:20

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

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

mail_makc

Доброго времени суток!  :)

Нужно в главном меню форума добавить еще одну кнопку - О ПРОЕКТЕ.
Добавил... Нашел как делается, чтобы она подсвечивалась когда раздел активен... В раздел этот заходит нормально, но выдает ошибку:
--- Невозможно загрузить 'about' шаблон. ---
(прим. about - это такой $_GET['action'] передается и соответсвующий шаблон должен вызываться)

Подскажите в каком дальше направлении двигаться - что дальше менять надо, чтобы создать этот шаблон? Где почитать как вообще они создаются - эти дополнительные пункты меню.  :o

P.S. Только не надо делать так, чтобы при клике на кнопку пользователя кидало на совсем другую страницу (все должно быть в пределах шаблона форума). То есть не надо меня отсылать на примеры добавления кнопки перехода в корень сайта (как здесь кнопка САЙТ).  8)

SAS

раздел "о проекте" - это раздел форума штоль или чо ?

mail_makc

Это не раздел форума.
Это просто пункт в меню.

Вот есть пункты вверху: ФОРУМ, ПОМОЩЬ, ПОИСК, ПРОФИЛЬ, ЛС, КАЛЕНДАРЬ, ВОЙТИ
А мне надо чтобы там появился еще один пункт - О ПРОЕКТЕ
Это просто статическая страница (как, например, страница ПОМОЩЬ или как страница ПРОФИЛЬ - правда это не совсем статическая  ;))

Я вроде бы все нашел как делается, единственное не соображу каким образом шаблон формируется (почему не находит файл шаблона).

YSV

Надо в index.php добавить действие, там массив действии $actionArray.
Затем создать модуль PHP для выполнения этого действия  в папке Sources. Например test.php
Затем шаблон для отображения этого модуля в папке Themes\default - в папке default тема по умолчанию. Например test.template.php.

Усли надо я допишу и выложу на is2006.ru инструкцию более подробную.

mail_makc

#4
Спасибо, я именно так и делал все...

1.
Добавил в index.php

$actionArray = array(
  'about' => array('About.php', 'About'),
  ...
);



2.
Создал ./sources/About.php

<?php
if (!defined('SMF'))
  die('Hacking attempt...');

function About()
{
  global $txt, $context;
  loadLanguage('About');
  loadTemplate('About');
  $context['sub_template'] = 'about';
}
?>



3.
Создал ./themes/default/About.templates.php

<?php
function template_about()
{
   global $context, $settings, $options, $scripturl, $modSettings, $txt;

   echo '<P><STRONG>Hello, World!</STRONG></P>';
}
?>


Так все работает... Я все-таки был на верном пути - неверно было только одно слово написано.

А до этого не работало (не могло подгрузить шаблон), так как на третьем шаге функцию назвал не template_about(), а template_main(). Теперь все работает. А если на втором шаге удалить строку $context['sub_template'] = 'about'; , то на третьем шаге можно писать template_main(). То есть таким образом вызов подшаблонов можно организовывать...

КармоПлюсоМётом в тебя пальнул... :)

topazz

А если я хочу, чтоб новый раздел просто являлся ссылкой, не относящейся к форуму. Т.е. при клике перекидывало сразу на указанный урл. Как мне такое сделать?

HellBoy

Вововово.... для меня эта тема тоже является больной. пункты меню у меня созданы (типа 'главная' и 'архив'). Как заставить их работать? выдает ощибки типа
>>>>>>>>>>>>
8: Use of undefined constant archive - assumed 'archive'
Файл: /home/graterso/public_html/board/Themes/default/Packages.template.php (eval?)
>>>>>>>>>>>>

посмотреть можно тут www.graters.org/board/index.php А еще у меня карта есть :P

belex

Прочитал несколько топиков по этой теме и так осталось непонятным.
Как создать дополнительный пункт меню форума или переименовать уже существующий?
Например, хотелось бы добавить пункт-ссылку на правила форума.
Как это сделать так пока я и не понял.

Avdenago

Цитата: belex от 27 декабря 2006, 02:18:03
Например, хотелось бы добавить пункт-ссылку на правила форума.
Как это сделать так пока я и не понял.

Вам сюда:
http://www.simplemachines.ru/index.php?topic=352.0

Killer600

Цитата: topazz от 19 августа 2006, 03:15:09
А если я хочу, чтоб новый раздел просто являлся ссылкой, не относящейся к форуму. Т.е. при клике перекидывало сразу на указанный урл. Как мне такое сделать?

я тоже сначала не понял как, но потом оказалось, что нужно всеголишь изменить строку:

<a href="', $scripturl, '">' , $txt[103] , '</a>
на
<a href="http://www.simplemachines.ru">САЙТ</a>

ещё можно было название нового раздела поместить в файл index.russian.php из папки languages - т.е. к примеру добавить строку: $txt[100] = 'сайт';
и в итоге получилось бы следующее:

<a href="http://www.simplemachines.ru">' , $txt[100] , '</a>

вот и всё ... ничего сложного