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

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 15.08.2007, 22:26   #1
Fearless Goblin
Senior Member
 
Аватар для Fearless Goblin
 
Регистрация: 18.07.2006
Сообщений: 108
Отправить сообщение для Fearless Goblin с помощью ICQ Отправить сообщение для Fearless Goblin с помощью Skype™
По умолчанию Подключение собственных скриптов

Доброго времени суток.
К шаблону сайта подключаю собственный скрипт, который делает выборку из базы данных ТАЙПО и возвращает нужный результат в переменную $content. Скрипт работет, как положено, но после его подключения перестаёт отображаться контент страницы. И styles.content.get, и styles.content.getLeft, и styles.content.getRight ничего не содержат. Что-то вроде DB:tt_content:3:bodytext тоже ничего не даёт. Если скрипт отключить, то всё работает, как нужно.
Может это из-за того, что результат работы функции из скрипта пишется в $content?
И ещё одно: для выборки из базы использую mysql_connect(), что, естественно занимает некоторое время на подключение к базе. Есть ли в ТАЙПО какая-то общедоступная переменная, в которой хранится результат работы этой функции (ТАЙПО же сам как-то связывается с базой)?

Буду признателен ответившим.
Fearless Goblin вне форума   Ответить с цитированием
Старый 16.08.2007, 01:13   #2
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

В тайпе есть переменная $GLOBALS['TYPO3_DB'].

Каким образом скрипт-то подключаете?
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 16.08.2007, 01:23   #3
Dutchak Vitaly
TYPO3 Infected
 
Регистрация: 29.08.2005
Адрес: Ukraine, Simferopol
Сообщений: 412
Отправить сообщение для Dutchak Vitaly с помощью ICQ Отправить сообщение для Dutchak Vitaly с помощью Skype™
По умолчанию

а кусок кода где в контент пишет можно?
__________________
TYPO3/PHP Developer
http://dv-charts.com/ - open source flash charts
Dutchak Vitaly вне форума   Ответить с цитированием
Старый 16.08.2007, 01:48   #4
Fearless Goblin
Senior Member
 
Аватар для Fearless Goblin
 
Регистрация: 18.07.2006
Сообщений: 108
Отправить сообщение для Fearless Goblin с помощью ICQ Отправить сообщение для Fearless Goblin с помощью Skype™
По умолчанию

Итак, есть файл include.inc:
PHP код:
<?php
    
include("fileadmin/scripts/last_arts.inc");
?>
В шаблоне написано:
Код:
config.includeLibrary = fileadmin/scripts/include.inc
Содержимое last_arts.inc:
PHP код:
<?php
    
class last_arts
    
{
        function 
getArts()
        {
            
$link mysql_connect("host""login""password")
                or die(
"Could not connect: " mysql_error());

            
mysql_select_db("typo3_database"$link);

            
$query "SELECT uid, crdate, title, page FROM tt_news INNER JOIN tt_news_cat_mm ON tt_news.uid = tt_news_cat_mm.uid_local WHERE uid_foreign = 35 ORDER BY crdate DESC";
            
$dbResult mysql_query($query$link);
            
mysql_close($link);

            
$topics "";
            for(
$i=0$i<6$i++)
            {
                
$row mysql_fetch_row($dbResult);
                
$topic $row[2];

                
$topics $topics "<a href=\"http://www.my.site/index.php?id=" $row[3] . "\">" $topic "...</a><br>\n";
            }

            return(
$topics);
        }
    }
?>
Метод getArts() вытаскивает из базы заголовки новостей категории №35 (в этой категории создаются только новости, которые являются ссылками на внутренние страницы).

Файл arts_headers.inc:
PHP код:
<?php
    $last_arts_obj 
= new last_arts();
    
$content $last_arts_obj->getArts();
?>
В шаблоне:
Код:
temp.arts_headers = PHP_SCRIPT
temp.arts_headers.file = fileadmin/scripts/arts_headers.inc
...
temp.mainTemplate.subparts.arts_headers < temp.arts_headers
...
page.10 < temp.mainTemplate
Пример использования скриптов брал из TSref.
Fearless Goblin вне форума   Ответить с цитированием
Старый 16.08.2007, 02:00   #5
Fearless Goblin
Senior Member
 
Аватар для Fearless Goblin
 
Регистрация: 18.07.2006
Сообщений: 108
Отправить сообщение для Fearless Goblin с помощью ICQ Отправить сообщение для Fearless Goblin с помощью Skype™
По умолчанию

void, а как с этой переменной работать? Или где почитать о ней можно?
Обычное присваивание в моём коде: $link = $GLOBALS['TYPO3_DB'] ничего не даёт. Или к ней надо как-то по-особому достучаться?
Fearless Goblin вне форума   Ответить с цитированием
Старый 16.08.2007, 07:23   #6
pavel_p
Новенький
 
Регистрация: 17.06.2007
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Fearless Goblin Посмотреть сообщение
void, а как с этой переменной работать? Или где почитать о ней можно?
Обычное присваивание в моём коде: $link = $GLOBALS['TYPO3_DB'] ничего не даёт. Или к ней надо как-то по-особому достучаться?
$GLOBALS['TYPO3_DB'] - это не ресурс это обьект класса который позволяет абстрагироваться от конкретной база данных. оно имеет следующие методы

exec_SELECTquery(какие поля, из каких таблиц, фильтр, группировки, порядок сортировки)

exec_UPDATEquery(таблица, ассоциативный массив - ключ это поле, значение - это значение поля)

ну и так далее

для документации необходимо заглянуть в TYPO3 Core API в раздел General Functions который нужно проштудировать программистам по PHP чтоб понимать что как делается в типо не при помощи стандартных ф-ций ПХП
pavel_p вне форума   Ответить с цитированием
Старый 16.08.2007, 14:04   #7
Fearless Goblin
Senior Member
 
Аватар для Fearless Goblin
 
Регистрация: 18.07.2006
Сообщений: 108
Отправить сообщение для Fearless Goblin с помощью ICQ Отправить сообщение для Fearless Goblin с помощью Skype™
По умолчанию

pavel_p, спасибо большое за совет.
Fearless Goblin вне форума   Ответить с цитированием
Старый 16.08.2007, 15:14   #8
Fearless Goblin
Senior Member
 
Аватар для Fearless Goblin
 
Регистрация: 18.07.2006
Сообщений: 108
Отправить сообщение для Fearless Goblin с помощью ICQ Отправить сообщение для Fearless Goblin с помощью Skype™
Thumbs up

Всё работает, как нужно!
Оказывается проблема, действительно, была в том, что использовались функции PHP, вроде mysql_connect().
Изменил вышеуказанный код на:
PHP код:
<?php
    
class last_arts
    
{
        function 
getArts()
        {
            
$dbResult $GLOBALS['TYPO3_DB']->exec_SELECTquery(
                
'uid, crdate, title, page, uid_local, uid_foreign',
                
'tt_news, tt_news_cat_mm',
                
'tt_news.uid = tt_news_cat_mm.uid_local AND uid_foreign = 35',
                
'',
                
'crdate DESC');

            
$topics "";
            for(
$i=0$i<6$i++)
            {
                
$row mysql_fetch_row($dbResult);
                
$topic $row[2];
                
                
$topics $topics "<a href=\"http://www.my.site/index.php?id=" $row[3] . "\">" $topic "...</a><br>\n";
            }

            
$GLOBALS['TYPO3_DB']->sql_free_result($dbResult);
            return(
$topics);
        }
    }
?>
Огромное спасибо всем за помощь!
Fearless Goblin вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение javascript для страницы c0d3r TypoScript практикум 4 03.04.2008 20:55
подключение внешних шрифтов Baltazarr Общие вопросы 12 19.10.2006 22:07
подключение к базе на этапе установки filippoff Установка 2 16.08.2006 16:55
Extension Kickstarter, подключение файлов и шаблонов. АНТ0Н Общие вопросы 1 03.04.2006 10:58
Подключение своего скрипта в админку Новичек Общие вопросы 3 21.09.2005 03:30


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


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

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