PDA

Просмотр полной версии : tt_news pageBrowser 2 бокса на одной странице


lexun
09.04.2007, 11:50
Доброго времени суток.
Версия typo3: 4.1.1
Версия tt_news: 2.5.0

Задача: вывод на одной странице несколько (LIST) блоков разных разделов, сделанных на базе новостей.Один работает как вывод с постраничной разбивкой новостей, а второй выдает первые 6 картинок с другого раздела новостей расположенных в 2 столбика.

Проблема: При щелчке на пагинатор 1-го блока срабатывает переход на другую страницу не только 1-го блока но и 2-го.

Вопрос: как устранить такой эффект.

PS: У меня обработка 2-го блока заложена в шаблоне главной страницы, а обработка блока с пагинатором идет непосредственно в шаблоне страницы новостей. Возможно концепция не верная но я только неделю назад познакомился с typo3.

http://beta.i-box.ru/index.php?id=2
Первый блок = Новости
Второй блок = Партнеры


Это TS для блока вывода картинок:

lib.partnerLatestLeft < plugin.tt_news
lib.partnerLatestLeft{

code >
relPathPrefix = fileadmin/template/i-box/
templateFile = fileadmin/template/i-box/tt_news_partner_01.html
code = LIST
pid_list >
pid_list = 23 # the pids of the pages where your news are stored
singlePid = 23
listStartId = 0
limit = 3
pageBrowser >
catImageMode = 0
catTextMode = 0
noPageBrowser = 1
}

lib.partnerLatestRight < plugin.tt_news
lib.partnerLatestRight{

code >
relPathPrefix = fileadmin/template/i-box/
templateFile = fileadmin/template/i-box/tt_news_partner_01.html
code = LIST
pid_list >
pid_list = 23 # the pids of the pages where your news are stored
pageBrowser >
singlePid = 23
listStartId = 3
limit = 3

catImageMode = 0
catTextMode = 0
noPageBrowser = 1
}

Ниже приведен TS блока с постраничной разбивкой:
lib.newsLatest < plugin.tt_news
lib.newsLatest{
displayList {
date_stdWrap.strftime= %d.%m.%y
time_stdWrap.strftime= %H:%M
}
userPageBrowserFunc = user_substPageBrowser

pageBrowser {
maxPages = 20
# set this to '0' if you want the pagebrowser to display only numbers
showPBrowserText = 0
# tableParams = cellpadding=2
showResultCount = 0
alwaysPrev = 1
}
# Example for overriding values from locallang.php with html-code that displays images
_LOCAL_LANG.default {
pi_list_browseresults_prev = <img src="typo3/gfx/pil2left.gif" border="0" height="12" width="7" alt="previous" title="previous">
pi_list_browseresults_next = <img src="typo3/gfx/pil2right.gif" border="0" height="12" width="7" alt="next" title="next">
}

code >
relPathPrefix = fileadmin/template/i-box/
templateFile = fileadmin/template/i-box/tt_news_template_01.html
code = LIST
pid_list >
pid_list = 2
singlePid = 13
limit = 3
showResultCount = 0
catImageMode = 0
catTextMode = 1
}

Pavel Antonov
09.04.2007, 14:09
Не будет работать. Любые блоки tt_news используют одни и теже GET-параметры.

Нужен ли Вам для такой страницы пейджинг? Уберите его и сделайте переход не отдельные страницы для каждой группы новостей.

lexun
10.04.2007, 19:24
Пейдинг нужен для этой страницы обязательно.
Решил проблему назначив в блоке №2 первой колонке LATEST а второй LIST
ну и соответственно изменил шаблон для идентичности вывода LIST и LATEST

У меня возник другой вопрос:
Как мне в пользовательской функции добраться до свойства класса <a> у активной и не активной ссылки
Вот моя функция для пагинатора:


function user_substPageBrowser($markerArray, $conf) {
$pObj = &$conf['parentObj'];

#debug($pObj->conf);

$showResultCount = $pObj->conf['pageBrowser.']['showResultCount'];
$tableParams = "";
$pointer = $pObj->piVars['pointer'];
$count = $pObj->internal['res_count'];
$results_at_a_time = t3lib_div::intInRange($pObj->internal['results_at_a_time'], 1, 1000);
$maxPages = t3lib_div::intInRange($pObj->internal['maxPages'], 1, 100);
$max = t3lib_div::intInRange(ceil($count / $results_at_a_time), 1, $maxPages);
$pointer = intval($pointer);
$links = array();

if ($pObj->pi_alwaysPrev >= 0) {
if ($pointer > 0) {
$links[] = '' . $pObj->pi_linkTP_keepPIvars('<< ', array('pointer' => ($pointer-1?$pointer-1:'')), $pObj->allowCaching) . '';
} else {
$links[] = '<a><< </a>';
}
}
for($a = 0;$a < $max;$a++) {
$links[] = '' . ($pointer == $a ? '':'') . $pObj->pi_linkTP_keepPIvars(trim($pObj->pi_getLL('pi_list_browseresults_page', 'Page') . ' ' . ($a + 1)), array('pointer' => ($a?$a:'')), $pObj->allowCaching) . '';
}
if ($pointer < ceil($count / $results_at_a_time)-1) {
$links[] = '' . $pObj->pi_linkTP_keepPIvars(' >>', array('pointer' => $pointer + 1), $pObj->allowCaching) . '';
} else {
$links[] = '<a> >></a>';
}

$pR1 = $pointer * $results_at_a_time + 1;
$pR2 = $pointer * $results_at_a_time + $results_at_a_time;
$sTables = '

<!--
List browsing box:
-->
' . implode('', $links) . '
';

$markerArray['###BROWSE_LINKS###'] = $sTables;

return $markerArray;
}