1

Тема: Вставка php кода

Здравствуйте.
Нужно чтобы на любой странице форума выполнялся некий php-код с выводом результата в шапке. Например, чтобы вверху любой страницы был текст Hello! /исполняемый код соответственно echo “Hello!”; /
Как можно это сделать наиболее просто в версии 1.3.4?

Спасибо.

Поделиться

2

Re: Вставка php кода

Вариант 1:
Создаем php-скрипт, ложим его в каталог include/user
Добавляем в include/template/main.tpl (или в шаблон, используемый стилем) строку вида: <!-- forum_include "имя_скрипта" -->
Не требует особых знаний движка

Вариант 2:
Устанавливаем расширение anycode tool (есть в разделе расширений), создаем решение и добавляем код для различных хуков (хуки определены в ядре). Этим методом можно вставлять произвольный код практически куда угодно, а не только в шаблон, как в 1 варианте. Требует некоторого изучения движка.

Вариант 3:
Открываем исходники и вставляем свой код куда угодно. Требует некоторого изучения движка. Плохой путь, подходит для изучения.

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

3

Re: Вставка php кода

hcs, большое Вам спасибо.

Поделиться

4 (09.05.2010 17:00 отредактировано Samovarov)

Re: Вставка php кода

hcs пишет:

Вариант 1:
Создаем php-скрипт, ложим его в каталог include/user
Добавляем в include/template/main.tpl (или в шаблон, используемый стилем) строку вида: <!-- forum_include "имя_скрипта" -->
Не требует особых знаний движка

А как из своего скрипта получить доступ к хуку?
Спасибо.

Поделиться

5

Re: Вставка php кода

Samovarov пишет:

А как из своего скрипта получить доступ к хуку?
Спасибо.

Зачем?

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

6 (13.05.2010 18:02 отредактировано Samovarov)

Re: Вставка php кода

Чтобы все настройки можно было бы в скриптах прописывать.
AnyCode - супер расширение (еще раз спасибо за него), но, ИМХО, удобнее это прописать все в один файл (или в пару файлов), и положить  его, например, в template, вместе со своими шаблонами.

Я понял что надо править специальный массив, с соответствующими индексами, только не могу допереть, есть ли штатные функции для этого. И зачем кеш для хуков, тоже понять не могу, и как туда эти хуки загонять.  smile

Поделиться

7

Re: Вставка php кода

Либо я чего-то не понимаю, либо ты.
Доступа к хукам нет в принципе. Хук - это место в коде, имеющее уникальный идентификатор, где система может выполнять произвольный пользовательский код. Грубо говоря, интерпретатор php исполняет код, например viewtopic.php, доходит до сторки 241:

($hook = get_hook('vt_pre_header_load')) ? eval($hook) : null;

и пытается выполнить весь пользовательский код, доступный через идентификатор хука vt_pre_header_load.
Если ты хочешь используя хук исполнить свой код, то ты обязан сделать расширение, которое будет содержать как минимум манифест, в котором твой код назначается тому или иному хуку. Расширение anycode расширяет твои возможности - вместо создания манифеста ради одного-двух хуков, ты внедряешь свой код непосредственно через админ-интерфейс, минуя создание расширения и его инсталляцию. Фактически происходит псевдоинсталляция псевдорасширения без манифеста.
Так что если хочешь все в одном месте - делай полноценное расширение, со своими шаблонами.

Добавлено спустя 5 минут 27 секунд:

Какой массив?? Какие индексы??
Прочитай эти сообщения, они помогут понять суть:
(Please log in or register to see this URL)
(Please log in or register to see this URL)
А так же вот этот мануал про создание расширений:
(Please log in or register to see this URL)
Скачай любое небольшое расширение и посмотри как оно устроено.

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

8 (13.05.2010 18:55 отредактировано Samovarov)

Re: Вставка php кода

hcs пишет:

Либо я чего-то не понимаю, либо ты.
Доступа к хукам нет в принципе. Хук - это место в коде, имеющее уникальный идентификатор, где система может выполнять произвольный пользовательский код.

Да, я это понял. Это и имел ввиду.

Думал что можно, что то типа того в файле написать

$forum_hooks['fn_forum_link_start']  = 'echo "privet"';

Пихануть этот файл по выше и наслаждаться. Только экспериментировать не стал. Решил спросить сначала.:)

Поделиться

9

Re: Вставка php кода

Ясно. Да, действительно можно переопределить массив $forum_hooks, добавив туда что либо своё.  Никогда об этом не задумывался, хотя наверное может быть очень полезным. У него довольно сложная организация:

$forum_hooks = array (
  'имя хука' => 
  array (
    0 => '$ext_info_stack[] = array(
\'id\'                => \'имя_расширения\',
\'path\'            => FORUM_ROOT.\'путь_к_расширению\',
\'url\'            => $GLOBALS[\'base_url\'].\'/путь_к_расширению\',
\'dependencies\'    => array (
)
);
$ext_info = $ext_info_stack[count($ext_info_stack) - 1];

КОД

array_pop($ext_info_stack);
$ext_info = empty($ext_info_stack) ? array() : $ext_info_stack[count($ext_info_stack) - 1];
',
  ),
);

Т.е. добавить свой код  к хуку напрямую, до вызова хука, можно как-то так:

$forum_hooks['имя_хука'][] = '$ext_info_stack[] = array(
\'id\'                => \'имя_расширения\',
\'path\'            => FORUM_ROOT.\'путь_к_расширению\',
\'url\'            => $GLOBALS[\'base_url\'].\'/путь_к_расширению\',
\'dependencies\'    => array (
)
);
$ext_info = $ext_info_stack[count($ext_info_stack) - 1];

КОД

array_pop($ext_info_stack);
$ext_info = empty($ext_info_stack) ? array() : $ext_info_stack[count($ext_info_stack) - 1];
';
Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

10

Re: Вставка php кода

hcs пишет:

Т.е. добавить свой код  к хуку напрямую, до вызова хука, можно как-то так:

Оказалось что написать расширение совсем не сложно. Страшнее звучит чем делается. Спасибо, свою задачу решил, благодаря Вашей помощи.

Поделиться

11

Re: Вставка php кода

Доброго времени суток друзья!
В нашем магазине вы без проблем сможете приобрести бонги, bong, пои, чилимы,
трубки, кальяны, растаманские феньки, шапки, сумки. Делаем закладки.
Для обхода блокировки сайта скачайте TOR браузер!

(Please log in or register to see this URL)

Добавлено спустя 21 минуту 56 секунд:

Доброго времени суток друзья!
В нашем магазине вы без проблем сможете приобрести бонги, bong, пои, чилимы,
трубки, кальяны, растаманские феньки, шапки, сумки. Делаем закладки.
Для обхода блокировки сайта скачайте TOR браузер!

(Please log in or register to see this URL)

Поделиться