Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > TypoScript практикум

Ответ
 
Опции темы Опции просмотра
Старый 22.05.2008, 13:31   #1
margol
Senior Member
 
Аватар для margol
 
Регистрация: 09.07.2007
Адрес: Волгоград
Сообщений: 322
Отправить сообщение для margol с помощью ICQ
По умолчанию Вставка 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 кода...
margol вне форума   Ответить с цитированием
Старый 22.05.2008, 13:38   #2
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Чем вам не нравится вариант с
Код:
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';
 }

?
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 22.05.2008, 13:53   #3
margol
Senior Member
 
Аватар для margol
 
Регистрация: 09.07.2007
Адрес: Волгоград
Сообщений: 322
Отправить сообщение для margol с помощью ICQ
По умолчанию

Очень нравится, им я и воспользуюсь!
Но если что, народ, в моем куске ошибка была. Вместо
lib.news_hpb = fileadmin/php_files/date_echo.inc
надо
lib.news_hpb.file = fileadmin/php_files/date_echo.inc
margol вне форума   Ответить с цитированием
Старый 13.09.2008, 11:46   #4
Lucifer
Senior Member
 
Аватар для Lucifer
 
Регистрация: 01.07.2008
Сообщений: 392
По умолчанию

Цитата:
Сообщение от void Посмотреть сообщение
Чем вам не нравится вариант с
Код:
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';
 }

?
Попробовал. Получилось. Но только теперь у меня выскакивает ворнинг, что мол заголовки уже отправлены. При том лишний начальный аутпут появляется даже если в пых пых файле остается просто <??> При пустом же файле все ок...
Lucifer вне форума   Ответить с цитированием
Старый 13.09.2008, 12:55   #5
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Проверьте, чтобы ни в начале, ни в конце файлов (до <?php и после ?>) не было ничего... В том числе, переводов строки.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 13.09.2008, 13:53   #6
Lucifer
Senior Member
 
Аватар для Lucifer
 
Регистрация: 01.07.2008
Сообщений: 392
По умолчанию

Это я знаю. но в том то и дело, что ничего подобного нет. говорю же. в файле не оставлял ничего кроме открытия и закрытия пхп кода. Никаких "невидимых" символов. Ни пробелов до или после "<??>" Короче, это единственные символы, которые у меня были в коде. Может быть когда я пишу
lib.news_select = USER_INT
lib.news_select.userFunc = user_class->print_select_news
в этот момент посылаются те самые хедеры?
Lucifer вне форума   Ответить с цитированием
Старый 13.09.2008, 15:31   #7
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Нет. Дело может быть только в PHP-коде.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 13.09.2008, 17:39   #8
Lucifer
Senior Member
 
Аватар для Lucifer
 
Регистрация: 01.07.2008
Сообщений: 392
По умолчанию

Проблема оказалась в кодировках. Редактировал шаблон через текстовый редактор. Сохранял в утф. Попробовал сохранить в ansi как крайняя мера. Сообщение об ошибке исчезло, но испортились русские буквы в выводе. Конвертировал кодировку в utf-8, сохранив в ansi - в блокноте остались карикозябры, а на сайте выводится все нормально...
Lucifer вне форума   Ответить с цитированием
Старый 13.09.2008, 18:37   #9
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Наверное, ваш текстовый редактор вставляет в начало файла BOM (byte order mark), если файл в кодировке UTF-8. Поставьте где-нибудь галочку "не вставлять BOM", вот и всё.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Трабл с загрузкой *.t3x в Extension Manager Raven2000 Общие вопросы 6 08.08.2007 18:15
Форма + валидация > php > БД Artem Общие вопросы 3 08.01.2007 23:39
Как вставить PHP код до всякого TYPO3 кода.. Или почти до Valery Romanchev Разработка расширений / TYPO3 extension development 1 30.07.2005 17:15
Вставка собственного php скрипта Roman Dorosh Разработка расширений / TYPO3 extension development 2 26.07.2005 11:52
Как реализовать передачу параметров для кода PHP ? Comwad Общие вопросы 1 20.11.2003 13:36


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория