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

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

 
 
Опции темы Опции просмотра
Старый 18.05.2011, 14:35   #11
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

Цитата:
Сообщение от Anlov Посмотреть сообщение
где в документации (TREF, Typo3 by examples, FTB) написано, как в TypoScript получить значение ID текущей страницы?
не буду спорить... открываем TSref здесь, ищем page_id:
Цитата:
A page id (int) or "this" (=current page id)
Цитата:
Сообщение от Anlov Посмотреть сообщение
как из подключенного пхп скрипта подключиться к базе данных Typo3 и прочитать оттуда нужные записи??? То есть, как сделать тоже самое, но из пхп?
Ответ ищем в расширениях, но вообще понадобиться документ doc_core_api, которые также переведен. Там ищем "t3lib_DB" и находим:
Цитата:
Функции: $GLOBALS['TYPO3_DB']->
exec_INSERTquery
exec_UPDATEquery
exec_DELETEquery
exec_SELECTquery

API доступа к базе данных.

Для совместимости с Database Abstraction Layers, для доступа к базе данных всегда необходимо использовать глобальный объект $TYPO3_DB. Класс "t3lib_db" содержит список функций оберток MySQL (sql(), sql_fetch_assoc(), и т.п.), которые могут использоваться почти как есть. Просто воспользуйтесь поиском/заменой.
Но рекомендуется перенести свое приложение для непосредственного использования четырех выполняемых функций. Это позволяет одновременно построить запрос и выполнит его.
Обратитесь к документа­ции руководства по программированию, t3lib_db API и Inside TYPO3 за дополнительной информацией.

Вставка записи:
Просто внесите в массив пары "поле => значение" и передайте в функцию exec_INSERTquery() вместе с названием таблицы, в которую все это должно быть вставлено:

$insertFields = array(
    'md5hash' => $md5,
    'tstamp' => time(),
    'type' => 2,
    'params' => $inUrl
);
$GLOBALS['TYPO3_DB']->exec_INSERTquery(
    'cache_md5params',
    $insertFields
);
Обновление записи:
Перед вызовом exec_UPDATEquery(), создайте массив пар "поле => значение". Вызов функции происходит почти как при вставке, но необходимо добавить условие WHERE для обновления необходимых записей. Это второй назначаемый аргумент, вроде значения "uid=???".

$fields_values = array(
    'title' => $data['sys_todos'][$key]['title'],
    'deadline' => $data['sys_todos'][$key]['deadline'],
    'description' => $data['sys_todos'][$key]['description'],
    'tstamp' => time()
);
$GLOBALS['TYPO3_DB']->exec_UPDATEquery(
    'sys_todos',
    'uid=' . intval($key),
    $fields_values
);
Удаление записи:
Вызовите exec_DELETEquery() с названием таблицы и условием выбора WHERE для удаляемых записей:

$GLOBALS['TYPO3_DB']->exec_DELETEquery(
    'sys_todos',
    'uid=' . intval($key)
);
Выбор записи:
Вызовите exec_SELECTquery() с, по крайней мере тремя первыми аргументами (список выбираемых полей, названием таблицы и условием WHERE). Возвращаемое значение — результирующий указатель (или объект), который должен быть передан в ->sql_fetch_assoc(), циклично, по порядку результирующих рядов.

$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
    '*',
    $theTable,
    $theField . '="' .
        $GLOBALS['TYPO3_DB']->quoteStr($theValue, $theTable) . '"' .
        $this->deleteClause($theTable) . ' ' .
        $whereClause,
    $groupBy,
    $orderBy,
    $limit
);
$rows = array();
while(($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))) {
    $rows[] = $row;
}
$GLOBALS['TYPO3_DB']->sql_free_result($res);
if (count($rows))    return $rows;
Андрей Аксенов вне форума   Ответить с цитированием
 


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструкция: установка php акселератора APC на хостинге nic.ru Valery Romanchev TYPO3 хостинг 24 25.11.2014 16:47
Настройки параметров ImageMagick для TYPO3 на FreeBSD и Linux Valery Romanchev Мастер-класс 9 25.06.2013 22:38
Как вставить php код в шаблон сайта на typo3 givemesomedrugs Общие вопросы 3 11.11.2010 18:40
Как вставить PHP код до всякого TYPO3 кода.. Или почти до Valery Romanchev Разработка расширений / TYPO3 extension development 1 30.07.2005 17:15
TYPO3, PHP разработчик в Москве (full time) Valery Romanchev Работа и заказы / Job Offer and Request 0 07.07.2005 01:26


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


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

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