<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[PunBB по-русски &mdash; Вставка php кода]]></title>
		<link>http://punbb.ru/topic3594-vstavka-php-koda.html</link>
		<atom:link href="http://punbb.ru/feed-rss-topic3594.xml" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Вставка php кода».]]></description>
		<lastBuildDate>Fri, 14 May 2010 19:50:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post27244.html#p27244</link>
			<description><![CDATA[<div class="quotebox"><cite>hcs пишет:</cite><blockquote><p>Т.е. добавить свой код&nbsp; к хуку напрямую, до вызова хука, можно как-то так:</p></blockquote></div><p>Оказалось что написать расширение совсем не сложно. Страшнее звучит чем делается. Спасибо, свою задачу решил, благодаря Вашей помощи.</p>]]></description>
			<author><![CDATA[null@example.com (Samovarov)]]></author>
			<pubDate>Fri, 14 May 2010 19:50:07 +0000</pubDate>
			<guid>http://punbb.ru/post27244.html#p27244</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post27240.html#p27240</link>
			<description><![CDATA[<p>Ясно. Да, действительно можно переопределить массив $forum_hooks, добавив туда что либо своё.&nbsp; Никогда об этом не задумывался, хотя наверное может быть очень полезным. У него довольно сложная организация:<br /></p><div class="codebox"><pre><code>$forum_hooks = array (
  &#039;имя хука&#039; =&gt; 
  array (
    0 =&gt; &#039;$ext_info_stack[] = array(
\&#039;id\&#039;                =&gt; \&#039;имя_расширения\&#039;,
\&#039;path\&#039;            =&gt; FORUM_ROOT.\&#039;путь_к_расширению\&#039;,
\&#039;url\&#039;            =&gt; $GLOBALS[\&#039;base_url\&#039;].\&#039;/путь_к_расширению\&#039;,
\&#039;dependencies\&#039;    =&gt; 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];
&#039;,
  ),
);</code></pre></div><p>Т.е. добавить свой код&nbsp; к хуку напрямую, до вызова хука, можно как-то так:</p><div class="codebox"><pre><code>$forum_hooks[&#039;имя_хука&#039;][] = &#039;$ext_info_stack[] = array(
\&#039;id\&#039;                =&gt; \&#039;имя_расширения\&#039;,
\&#039;path\&#039;            =&gt; FORUM_ROOT.\&#039;путь_к_расширению\&#039;,
\&#039;url\&#039;            =&gt; $GLOBALS[\&#039;base_url\&#039;].\&#039;/путь_к_расширению\&#039;,
\&#039;dependencies\&#039;    =&gt; 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];
&#039;;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (hcs)]]></author>
			<pubDate>Fri, 14 May 2010 00:03:18 +0000</pubDate>
			<guid>http://punbb.ru/post27240.html#p27240</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post27235.html#p27235</link>
			<description><![CDATA[<div class="quotebox"><cite>hcs пишет:</cite><blockquote><p>Либо я чего-то не понимаю, либо ты.<br />Доступа к хукам нет в принципе. Хук - это место в коде, имеющее уникальный идентификатор, где система может выполнять произвольный пользовательский код.</p></blockquote></div><p>Да, я это понял. Это и имел ввиду.</p><p>Думал что можно, что то типа того в файле написать</p><p>$forum_hooks[&#039;fn_forum_link_start&#039;]&nbsp; = &#039;echo &quot;privet&quot;&#039;;</p><p>Пихануть этот файл по выше и наслаждаться. Только экспериментировать не стал. Решил спросить сначала.:)</p>]]></description>
			<author><![CDATA[null@example.com (Samovarov)]]></author>
			<pubDate>Thu, 13 May 2010 14:54:40 +0000</pubDate>
			<guid>http://punbb.ru/post27235.html#p27235</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post27234.html#p27234</link>
			<description><![CDATA[<p>Либо я чего-то не понимаю, либо ты.<br />Доступа к хукам нет в принципе. Хук - это место в коде, имеющее уникальный идентификатор, где система может выполнять произвольный пользовательский код. Грубо говоря, интерпретатор php исполняет код, например viewtopic.php, доходит до сторки 241:<br /></p><div class="codebox"><pre><code>($hook = get_hook(&#039;vt_pre_header_load&#039;)) ? eval($hook) : null;</code></pre></div><p>и пытается выполнить весь пользовательский код, доступный через идентификатор хука <strong>vt_pre_header_load</strong>.<br />Если ты хочешь используя хук исполнить свой код, то ты обязан сделать расширение, которое будет содержать как минимум манифест, в котором твой код назначается тому или иному хуку. Расширение anycode расширяет твои возможности - вместо создания манифеста ради одного-двух хуков, ты внедряешь свой код непосредственно через админ-интерфейс, минуя создание расширения и его инсталляцию. Фактически происходит псевдоинсталляция псевдорасширения без манифеста.<br />Так что если хочешь все в одном месте - делай полноценное расширение, со своими шаблонами.</p><p><span style="color: #808080"><em>Добавлено спустя 5 минут 27 секунд: </em></span></p><p>Какой массив?? Какие индексы??<br />Прочитай эти сообщения, они помогут понять суть:<br /><a href="http://punbb.ru/post22157.html#p22157">http://punbb.ru/post22157.html#p22157</a><br /><a href="http://punbb.ru/post23124.html#p23124">http://punbb.ru/post23124.html#p23124</a><br />А так же вот этот мануал про создание расширений: <br /><a href="http://punbb.informer.com/wiki/punbb13/extension_development">http://punbb.informer.com/wiki/punbb13/ … evelopment</a><br />Скачай любое небольшое расширение и посмотри как оно устроено.</p>]]></description>
			<author><![CDATA[null@example.com (hcs)]]></author>
			<pubDate>Thu, 13 May 2010 14:15:32 +0000</pubDate>
			<guid>http://punbb.ru/post27234.html#p27234</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post27233.html#p27233</link>
			<description><![CDATA[<p>Чтобы все настройки можно было бы в скриптах прописывать.<br />AnyCode - супер расширение (еще раз спасибо за него), но, ИМХО, удобнее это прописать все в один файл (или в пару файлов), и положить&nbsp; его, например, в template, вместе со своими шаблонами.</p><p>Я понял что надо править специальный массив, с соответствующими индексами, только не могу допереть, есть ли штатные функции для этого. И зачем кеш для хуков, тоже понять не могу, и как туда эти хуки загонять.&nbsp; <img src="http://punbb.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (Samovarov)]]></author>
			<pubDate>Thu, 13 May 2010 13:59:11 +0000</pubDate>
			<guid>http://punbb.ru/post27233.html#p27233</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post27230.html#p27230</link>
			<description><![CDATA[<div class="quotebox"><cite>Samovarov пишет:</cite><blockquote><p>А как из своего скрипта получить доступ к хуку? <br />Спасибо.</p></blockquote></div><p>Зачем?</p>]]></description>
			<author><![CDATA[null@example.com (hcs)]]></author>
			<pubDate>Thu, 13 May 2010 12:10:05 +0000</pubDate>
			<guid>http://punbb.ru/post27230.html#p27230</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post27203.html#p27203</link>
			<description><![CDATA[<div class="quotebox"><cite>hcs пишет:</cite><blockquote><p>Вариант 1:<br />Создаем php-скрипт, ложим его в каталог include/user<br />Добавляем в include/template/main.tpl (или в шаблон, используемый стилем) строку вида: &lt;!-- forum_include &quot;имя_скрипта&quot; --&gt;<br />Не требует особых знаний движка</p></blockquote></div><p>А как из своего скрипта получить доступ к хуку? <br />Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Samovarov)]]></author>
			<pubDate>Sun, 09 May 2010 11:32:27 +0000</pubDate>
			<guid>http://punbb.ru/post27203.html#p27203</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post26525.html#p26525</link>
			<description><![CDATA[<p><strong>hcs</strong>, большое Вам спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (zell75)]]></author>
			<pubDate>Tue, 09 Feb 2010 11:03:00 +0000</pubDate>
			<guid>http://punbb.ru/post26525.html#p26525</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вставка php кода]]></title>
			<link>http://punbb.ru/post26478.html#p26478</link>
			<description><![CDATA[<p>Вариант 1:<br />Создаем php-скрипт, ложим его в каталог include/user<br />Добавляем в include/template/main.tpl (или в шаблон, используемый стилем) строку вида: &lt;!-- forum_include &quot;имя_скрипта&quot; --&gt;<br />Не требует особых знаний движка</p><p>Вариант 2:<br />Устанавливаем расширение anycode tool (есть в разделе расширений), создаем решение и добавляем код для различных хуков (хуки определены в ядре). Этим методом можно вставлять произвольный код практически куда угодно, а не только в шаблон, как в 1 варианте. Требует некоторого изучения движка.</p><p>Вариант 3:<br />Открываем исходники и вставляем свой код куда угодно. Требует некоторого изучения движка. Плохой путь, подходит для изучения.</p>]]></description>
			<author><![CDATA[null@example.com (hcs)]]></author>
			<pubDate>Tue, 02 Feb 2010 14:37:54 +0000</pubDate>
			<guid>http://punbb.ru/post26478.html#p26478</guid>
		</item>
		<item>
			<title><![CDATA[Вставка php кода]]></title>
			<link>http://punbb.ru/post26477.html#p26477</link>
			<description><![CDATA[<p>Здравствуйте.<br />Нужно чтобы на любой странице форума выполнялся некий php-код с выводом результата в шапке. Например, чтобы вверху любой страницы был текст <strong>Hello!</strong> /исполняемый код соответственно <strong>echo “Hello!”;</strong> /<br />Как можно это сделать наиболее просто в версии 1.3.4?</p><p>Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (zell75)]]></author>
			<pubDate>Mon, 01 Feb 2010 17:57:24 +0000</pubDate>
			<guid>http://punbb.ru/post26477.html#p26477</guid>
		</item>
	</channel>
</rss>

