<![CDATA[ Include PHP in template (how?) - MODX Community Forums]]> https://forums.modx.com/thread/?thread=62688 <![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how?page=2#dis-post-445381 Quote from: yentsun at Jul 10, 2006, 08:21 PM
вот кстати, пост о том же видимо http://modxcms.com/forums/index.php/topic,5663.0.html
если не понятно, спросите - я переведу.

И еще - только сейчас заметил что вы пытались через TV писать код. Так вот в TV php-код пишется не спомощью <? а с помощью @EVAL
Прочитать можно здесь http://modxcms.com/eval-binding.html, опять таки если непонятно - переведем. В будущем это все будет у нас в документации.
Да, много лет уже прошло с публикации этого топика, и до сих пор MODX не поддерживает нативно php-код в шаблонах, даже в Рево. Меня это тоже не устраивает, и я написал пакет phpTemplates для Рево. (скоро должено появиться в официальном репозитории).
Если коротко: пакет вводит новый тип ресурса и шаблона (расширяя ядро Ревы, но не затрагивая его ни байта). После установки пакета можно выбрать тип документа "Документ с php-шаблоном", и если какой-либо шаблон сделать статическим и использовать для этого документа, то в шаблоне можно использовать php-код (шаблон вызывается как обычный php-файл).
Более подробно здесь: http://community.modx-cms.ru/blog/addons/9201.html
Видео-демка: http://youtu.be/1qn3kD76BRA?hd=1
Готовый пакет: https://sourceforge.net/projects/modxphptemplate/
Исходник с билдером: https://github.com/Fi1osof/phptemplates
]]>
Fi1osof Dec 02, 2012, 03:50 AM https://forums.modx.com/thread/62688/include-php-in-template-how?page=2#dis-post-445381
<![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369868 zombiemx Aug 03, 2008, 09:21 AM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369868 <![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369867 подключать пытаюсь вот этот кусок индексного файла скрипта

<?session_start();
include "inc.php";
include "config.php";
include "class.php";
print "
<script language=\"javascript\" type=\"text/javascript\">
function reemail(login,domian){
var url='';
url=\"mailto:+login+@+domian+\";
window.location=url;
}
function Paste(bb)
{
        data = window.opener.window.document;
        data.form.text_msg.value += ' '+bb+' '; data.form.text_msg.focus(); 
    window.focus();
    return;
}
   </script>
";
@session_start();
$start=new main();
$start->seegb();?> 
]]>
vredina Aug 03, 2008, 04:06 AM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369867
<![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369866 http://modxcms.com/forums/index.php/topic,5663.0.html
если не понятно, спросите - я переведу.

И еще - только сейчас заметил что вы пытались через TV писать код. Так вот в TV php-код пишется не спомощью <? а с помощью @EVAL
Прочитать можно здесь http://modxcms.com/eval-binding.html, опять таки если непонятно - переведем. В будущем это все будет у нас в документации.]]>
yentsun Jul 10, 2006, 03:21 PM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369866
<![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369865
ответ конечно один - php-код в чистом виде невозможно использовать в шаблоне! необходимо использовать сниппеты... свои или чьи-то еще smiley

Lexxus, если у вас есть случай, где выгоднее использовать чистый код, а не сниппеты - пожалуйста поделитесь.]]>
yentsun Jun 24, 2006, 05:58 PM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369865
<![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369864 ]]> aleksey.stepanov Jun 24, 2006, 03:30 PM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369864 <![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369863
//Using [[PHPInclude?file=path_to_your_file/file_name.php]]

if ( !isset($file) || $file == "" ) return "No file specified."; //check if there's a file given.

ob_start();//Start the buffer

include $file; //include

$ob_contents = ob_get_contents();//get contents from the buffer
ob_end_clean();//and kill/delete the buffer
return $ob_contents;//return it to etomite.


В шаблоне (или нужной странице) сниппет вызывается c использованием параметра file=path_to_your_file/file_name.php, где прописывается путь к внешнему PHP файлу:
[[PHPInclude?file=path_to_your_file/file_name.php]]
]]>
suhinin Jun 24, 2006, 02:21 PM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369863
<![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369862
Однако, думаю со временем вы поймете преимущества использования сниппетов. Например, сниппет может быть задан с параметрами, и так же сниппет может быть вызван откуда угодно в системе MODx с помощью своему имени.

вообще, мы могли бы рассмотреть ваш частный случай:) напишите тот пример, котором по-вашему будет лучше использовать в шаблоне php-код smiley]]>
yentsun Jun 23, 2006, 08:33 AM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369862
<![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369861 Lexxus Jun 23, 2006, 08:03 AM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369861 <![CDATA[Re: Include PHP in template (how?)]]> https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369860
php-код можно написать тремя способами: сделать сниппет, плагин или модуль. Думаю в вашем случае нужно просто создать новый сниппет, назвать его, написать в его содержимое php-код, причем не использовать <?php. Чтобы ваш код выводил какой-то результат в конце, конечно же, должна быть строка
return ....;

Далее, в шаблоне, где вам нужно выводить результат сниппета - просто пишете
[[имя сниппета]]
]]>
yentsun Jun 23, 2006, 07:05 AM https://forums.modx.com/thread/62688/include-php-in-template-how#dis-post-369860