18.05.2011, 14:35
|
#11
|
Senior Member
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
|
Цитата:
Сообщение от 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;
|
|
|
|