У меня при попадании в "категорию" отображаются блоками анонсы товаров (маленькая картинка + название) с помощью сниппета:
<?php
$childrensTVars = $modx->getDocumentChildrenTVars(
$parentid = $modx->documentIdentifier,
$tvfields = array(
’catalogProductionMainImage’,
’catalogProductionAnnouncement’,
’pagetitle’,
’id’
)
);
if ( ! $childrensTVars )
{
return ’
Каталог не содержит элементов.’;
}
$modx->regClientCSS( ’/assets/templates/splinsu/css/catalog.css’ );
$results = array();
foreach ( $childrensTVars as $key => $value )
{
$results[ $key ] = array();
foreach ( $value as $key1 => $value1 )
{
$results[ $key ][ $value1[ ’name’ ] ] = $value1[ ’value’ ];
}
}
$output = ’’;
foreach ( $results as $key => $value )
{
$output .= ’<div class="product" >’ . "\n";
$output .= ’ <div class="product-info" >’ . "\n";
$output .= ’ <div>’ . "\n";
$output .= ’ <a href="’ . $modx->makeUrl( $value[ ’id’ ] ) .’" class="product-name" >’ . $value[ ’pagetitle’ ] . ’</a>’ . "\n";
$output .= ’ </div>’;
$output .= ’ </div>’ . "\n";
$output .= ’ <div class="product-image" >’ . "\n";
$output .= ’ <a href="’ . $modx->makeUrl( $value[ ’id’ ] ) . ’">’ . "\n";
$output .= ’ <img src="/’ . $value[ ’catalogProductionMainImage’ ] . ’" alt="" border="0" style="padding:0; left:0; " />’ . "\n";
$output .= ’ </a>’ . "\n";
$output .= ’ </div>’ . "\n";
$output .= ’</div>’ . "\n";
}
return $output;
?>
Для справки каталог вида:
Раздел
Категория
Товар
Товар2
Товар3
...
Вопрос состоит в следующем, как сделать постраничный вывод анонсов товаров, если их к примеру больше 20? Подскажите плиз!
Код сниппета не мой, я его удрал с другого сайта на модикс.
Мдя.. постраничный вывод на php
<?
// after "output="
$page = (int) @$_GET['p']; // defalut=0
$perpage = 10; // товаров на странице
$total = count($results);
$pages = ceil($total/$perpage);
$first = $page*$perpage; // первый документ
$last = min ($first+$perpage-1,$total-1);
//вместо foreach ( $results as $key => $value )
for ($key=$first;$key<=$last;$key++;$value = $results[$key]) {
}
//pages - блок вывода страниц
for ($i=0;$i<$pages;$i++) {
echo ' <a href="?p='.$i.'">($i+1)</a> ';
}
Примерно так...
сделал вот так:
...
$output = ’’;
$page = (int) @$_GET[’p’]; // defalut=0
$perpage = 20; // товаров на странице
$total = count($results);
$pages = ceil($total/$perpage);
$first = $page*$perpage; // первый документ
$last = min ($first+$perpage-1,$total-1);
//foreach ( $results as $key => $value )
for ($key=$first;$key<=$last;$key++;$value = $results[$key]) {
{
$output .= ’<div class="product" >’ . "\n";
$output .= ’ <div class="product-info" >’ . "\n";
$output .= ’ <div class="product-title">’ . "\n";
$output .= ’ <a href="’ . $modx->makeUrl( $value[ ’id’ ] ) .’" class="product-name" >’ . $value[ ’pagetitle’ ] . ’</a>’ . "\n";
$output .= ’ </div>’;
$output .= ’ </div>’ . "\n";
$output .= ’ <div class="product-image" >’ . "\n";
$output .= ’ <a href="’ . $modx->makeUrl( $value[ ’id’ ] ) . ’">’ . "\n";
$output .= ’ <img src="/’ . $value[ ’catalogProductionMainImage’ ] . ’" alt="" border="0" style="padding:0; left:0; " />’ . "\n";
$output .= ’ </a>’ . "\n";
$output .= ’ </div>’ . "\n";
$output .= ’</div>’ . "\n";
}
return $output;
for ($i=0;$i<$pages;$i++) {
echo ’ <a href="?p=’.$i.’">($i+1)</a> ’;
}
?>
вообще перестал все показывает, пустота.
Что не так сделал?
for ($key=$first;$key<=$last;$key++,$value = $results[$key])
Скорее всего тут ошибка.. А вообще как-нибудь самостоятельно бы..
спасибо посмотрю, просто не программер я %)