We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5291
    • 51 Posts
    У меня при попадании в "категорию" отображаются блоками анонсы товаров (маленькая картинка + название) с помощью сниппета:
    <?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? Подскажите плиз!
    Код сниппета не мой, я его удрал с другого сайта на модикс.
      • 5291
      • 51 Posts
      up! помогите пожалуйста!
        • 9085
        • 630 Posts
        Мдя.. постраничный вывод на 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> ';
        }

        Примерно так...
          Правильно заданный вопрос повышает вероятность получения нужного ответа.
          Что-то не работает? Загляните в лог ошибок!
          Есть проблема? "Локализуйте" её!
          Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
          • 5291
          • 51 Posts
          сделал вот так:

          ...
          $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> ’;
          }
          ?>


          вообще перестал все показывает, пустота.
          Что не так сделал?
            • 9085
            • 630 Posts
            for ($key=$first;$key<=$last;$key++,$value = $results[$key])
            Скорее всего тут ошибка.. А вообще как-нибудь самостоятельно бы..
              Правильно заданный вопрос повышает вероятность получения нужного ответа.
              Что-то не работает? Загляните в лог ошибок!
              Есть проблема? "Локализуйте" её!
              Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
              • 5291
              • 51 Posts
              спасибо посмотрю, просто не программер я %)