PDA

Просмотр полной версии : Вставка php кода


margol
22.05.2008, 13:31
В setup шаблона:

сonfig.includeLibrary = fileadmin/php_files/include.inc
...
lib.news_hpb = PHP_SCRIPT
lib.news_hpb = fileadmin/php_files/date_echo.inc


include.inc:

<?php
include ("fileadmin/php_files/date.inc");
?>


date.inc:

<?php
class hello_world {
function theMessage () {
//$d = date("d.m.y");
return "hello world! hello world! hello world! ";
}
}
?>


date_echo.inc

$hello_world_object = new hello_world; // New instance is created
$contentBefore = $this->cObjGetSingle($conf["cObj"],$conf["cObj."]);
$content = $contentBefore.$hello_world_object->theMessage();
$content = $this->stdWrap($content,$conf["stdWrap."]);


В общем пример взят из TSref но не работает!
Может кто увидит ошибку...
Помогите, очень надо!
ИЛИ Подкиньте рабочий вариант вставки php кода...

void
22.05.2008, 13:38
Чем вам не нравится вариант с

includeLibs.tx_yourext = fileadmin/path/to/file.php
lib.news_hpb = USER_INT
lib.news_hpb.userFunc = user_class->main


при этом в file.php

class user_class{
function main(){
return 'Hello world';
}
}

?

margol
22.05.2008, 13:53
Очень нравится, им я и воспользуюсь!
Но если что, народ, в моем куске ошибка была. Вместо
lib.news_hpb = fileadmin/php_files/date_echo.inc
надо
lib.news_hpb.file = fileadmin/php_files/date_echo.inc

Lucifer
13.09.2008, 11:46
Чем вам не нравится вариант с

includeLibs.tx_yourext = fileadmin/path/to/file.php
lib.news_hpb = USER_INT
lib.news_hpb.userFunc = user_class->main


при этом в file.php

class user_class{
function main(){
return 'Hello world';
}
}

?
Попробовал. Получилось. Но только теперь у меня выскакивает ворнинг, что мол заголовки уже отправлены. При том лишний начальный аутпут появляется даже если в пых пых файле остается просто <??> При пустом же файле все ок...

void
13.09.2008, 12:55
Проверьте, чтобы ни в начале, ни в конце файлов (до <?php и после ?>) не было ничего... В том числе, переводов строки.

Lucifer
13.09.2008, 13:53
Это я знаю. но в том то и дело, что ничего подобного нет. говорю же. в файле не оставлял ничего кроме открытия и закрытия пхп кода. Никаких "невидимых" символов. Ни пробелов до или после "<??>" Короче, это единственные символы, которые у меня были в коде. Может быть когда я пишу
lib.news_select = USER_INT
lib.news_select.userFunc = user_class->print_select_news
в этот момент посылаются те самые хедеры?

void
13.09.2008, 15:31
Нет. Дело может быть только в PHP-коде.

Lucifer
13.09.2008, 17:39
Проблема оказалась в кодировках. Редактировал шаблон через текстовый редактор. Сохранял в утф. Попробовал сохранить в ansi как крайняя мера. Сообщение об ошибке исчезло, но испортились русские буквы в выводе. Конвертировал кодировку в utf-8, сохранив в ansi - в блокноте остались карикозябры, а на сайте выводится все нормально...

void
13.09.2008, 18:37
Наверное, ваш текстовый редактор вставляет в начало файла BOM (byte order mark), если файл в кодировке UTF-8. Поставьте где-нибудь галочку "не вставлять BOM", вот и всё.