PDA

Просмотр полной версии : TemplaVoila 1.1.0 + RECORDS


Tod
03.09.2006, 00:36
В общем создаю элемент типа TypoScript Object Path... и для него в настройках шаблона пишу:

lib.myobject_stuff = RECORDS
lib.myobject_stuff.source = 1
lib.myobject_stuff.tables = tt_content

Получается я ссылаюсь на одну запись в элементе "Content element" из другой страницы, а мне бы хотелось получить данные сразу ко всему элементу. Как это сделать... ?
--
PS. Возможно мне бы мог помочь KB TV Content Slide, но можно ли там сделать так чтобы на подстраницах не отображались "ненужные" элементы контента... ну допустим на главной есть какой-то блок и при копировании на подстраницы он в меню Web-Page не отображался... ?

Pavel Antonov
03.09.2006, 19:56
что еще "за одна запись в элементе". в таблице много записей, вы выбираете запись с Id=1. Что такое элементы?


можно объяснить?

Tod
03.09.2006, 22:08
http://infostore.org/info/1687619/untitled.JPG

С помощью констукции, описано выше я могу вызвать 7,8 элемент по отдельности или вместе, а как обратиться ко всей колонке? (элементу типа Content element).

Dutchak Vitaly
04.09.2006, 15:17
lib.content = CONTENT
lib.content.table = tt_content
lib.content.select {
pidInList = pid #id страницы
orderBy = sorting
}

Tod
05.09.2006, 01:20
что-то код не сработало...
рисунок может слегка не удачный, но там не одна колонка как-бы... и делал я это с помощою TV... Это при стандартном создании шаблона без TV можно было бы использовать твою констукцию со строкой select.where = colPos = 1 и все бы получилось... а так что-то не хочет((

Valery Romanchev
05.09.2006, 01:37
я делал такую штуку.

Написал PHP код (на основе KB TV Content Slide) который берет все элементы контента из заданной колонки (поля TV) c заданных страниц.

Ну а потом это вставляется через TS

includeLibs.user_lib = fileadmin/templates/tv_content_all_pages.php
lib.content_right1 = RECORDS
lib.content_right1 {
source.postUserFunc = user_tv_content->main
source.postUserFunc{
field = field_content_right2
storage_uid=64
exclude_page_uid= 93,95
#exclude_content_uid= 75,77
}
tables = tt_content
}


class user_tv_content {

function main($content,$conf) {

//Array page
$page_id=intval($conf['storage_uid']);
//$page = $GLOBALS['TSFE']->sys_page->getPage($page_id);
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages', 'uid='.$page_id, "", "","1");

if ($page = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
//t3lib_div::devLog( "!!", 'user_tv_content', 2);
//t3lib_div::devLog('storage_uid='.$conf['storage_uid'] , 'user_tv_content', 2);
//t3lib_div::devLog( $page['tx_templavoila_flex'], 'user_tv_content', 2);

$flexXML = $page['tx_templavoila_flex'];
$XML = t3lib_div::xml2array($flexXML);

$content= $XML['data']['sDEF']['lDEF'][$conf['field']]['vDEF'];

t3lib_div::devLog( "exclude_page_uid=".$conf['exclude_page_uid'], 'user_tv_content', 2);

if ($conf['exclude_page_uid']!=""){


$exclude_pages = t3lib_div::trimExplode(',', $conf['exclude_page_uid'], 1);
//t3lib_div::devLog( $exclude_pages[0]." ".$exclude_pages[1], "exclude!!! = ",2);
/*
exclude_page_uid=9,5,4,3,84
exclude_content_uid=75
*/
$search=array_search($GLOBALS["TSFE"]->id, $exclude_pages);
// t3lib_div::devLog( $search, "search!!! = ",2);
//$search = false;
//if ( (array_search($GLOBALS["TSFE"]->id, $exclude_pages) !== false) && ($conf['exclude_content_uid']!="") ) {

if (array_search($GLOBALS["TSFE"]->id, $exclude_pages) !== false) {

$content = "";
/*
//t3lib_div::devLog( "exclude", 'user_tv_content', 2);
$parts = t3lib_div::trimExplode(',', $content, 1);
$block=intval(array_search($conf['exclude_content_uid'], $parts));
//t3lib_div::devLog( "block=".$block, 'user_tv_content', 2);
// unset($parts[$block]);
array_splice($parts, $block, 1);
$content = implode(',', $parts);
//t3lib_div::devLog( "content=".$content, 'user_tv_content', 2);
*/

}
}

}

return $content;
}

}

Tod
18.10.2006, 20:11
Только внедрил это ваше решение. Работает замечательно! И как раз то, что нужно... полезная вещица:)
exclude_content_uid я так понял не исключает элементы? (так для справки спрашиваю)
---
Еще появилась задачка сделать тоже как-бы копирование элемента на несколько подстаниц, но не типа content element, а "Plain input field"... можно как-то обратиться к нему через его название field_somename ?