Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   Вставка php кода (http://forum.typo3.ru/showthread.php?t=6311)

margol 22.05.2008 13:31

Вставка php кода
 
В setup шаблона:
PHP код:

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

include.inc:
PHP код:

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

date.inc:
PHP код:

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

date_echo.inc
PHP код:

$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
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

Цитата:

Сообщение от void (Сообщение 19045)
Чем вам не нравится вариант с
Код:

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

при этом в file.php
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", вот и всё.


Часовой пояс GMT +4, время: 19:33.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot