Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые товары + Пагинация


Рекомендуемые сообщения

Поправил файл View.php, усталоновил лимит в 6 отображаемых товаров( $items_per_page = 6;), отмеченных как "Рекомендуемый", в админ.панели стоит лимит в 12 шт. В итоге - выводится по 12 шт и на главной в Рекоменд. товарах и по 12 шт в каталоге. Что-то здесь не так....

 

Но на главной не выводит пагинацию. Куда копать?

 

View.php

 

$params['featured'] = 1;
		if(!empty($params['var']))
		{		
			// Постраничная навигация
			$items_per_page = $this->settings->products_num;		
			// Текущая страница в постраничном выводе
			$current_page = $this->request->get('page', 'int');	
			// Если не задана, то равна 1
			$current_page = max(1, $current_page);
			$this->design->assign('current_page_num', $current_page);
			// Вычисляем количество страниц
			$products_count = $this->products->count_products($params);
			
			// Показать все страницы сразу
			if($this->request->get('page') == 'all')
				$items_per_page = 6;	
			
			$pages_num = ceil($products_count/$items_per_page);
			$this->design->assign('total_pages_num', $pages_num);
			$this->design->assign('total_products_num', $products_count);

			$params['page'] = $current_page;
			$params['limit'] = $items_per_page;
		
			foreach($this->products->get_products($params) as $p)
				$products[$p->id] = $p;

			if(!empty($products))
			{
				// id выбранных товаров
				$products_ids = array_keys($products);
		
				// Выбираем варианты товаров
				$variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));
				
				// Для каждого варианта
				foreach($variants as &$variant)
				{
					// добавляем вариант в соответствующий товар
					$products[$variant->product_id]->variants[] = $variant;
				}
				
				// Выбираем изображения товаров
				$images = $this->products->get_images(array('product_id'=>$products_ids));
				foreach($images as $image)
					$products[$image->product_id]->images[] = $image;
	
				foreach($products as &$product)
				{
					if(isset($product->variants[0]))
						$product->variant = $product->variants[0];
					if(isset($product->images[0]))
						$product->image = $product->images[0];
				}				
			}

			$smarty->assign($params['var'], $products);
			
		}

 

Main.tpl

 

<div class="goods">
    <div class='goods-inner'>

        {* Рекомендуемые товары *}
        {get_featured_products var=featured_products}
        {if $featured_products}
             <!-- Список товаров-->
        {foreach $featured_products as $product}

            <div class="goods-item" style="height:510px;">
                <table style="height:100%" border=0>
                    <tr>
                        <td style="height:215px;">
                            <a href="products/{$product->url}">
                                <img class='goods-image' src="{$product->image->filename|resize:282:282}" alt="{$product->name|escape}"/>
                            </a></td>
                    </tr>
                    <tr>
                        <td style="height:30px;">
                            <div class="descr" style="height:72px;">
                                <div style="margin-bottom:10px;" class="h4">{$product->name|escape} <img style="margin-right:10px;margin-top:-2px;border-bottom: 0px solid #E9E9E9;float:right;width:76px;" src="/img/logos/{$product->brand}.png"/></div>
                                <p style="font-size:13px;">{$product->artikul|escape}</p>

                            </div>
                        </td>
                    </tr>

                    <tr>
                        <td style="height:45px;border:0px solid;">
                            <div class="descr" style="margin-top:-10px;">
                                <p class="price"><s>{$product->old_price|convert}   руб.</s><span>{$product->price|convert}</span> руб.</p>

                            </div>
                        </td>
                    </tr>


                    <tr>
                        <td style="vertical-align:top;">
                            <div style="margin-top:-10px;">   <a href="products/{$product->url}" class="order-btn">купить</a></div>
                                    </td>
                    </tr>
                    <div class=pls><b class=ch0></b></div>
                </table>
            </div>
            <!-- Товар (The End)-->
        {/foreach}


        {/if}
 </div>
     

    <br class=cls><br>
</div>
<div class="pages">{include file='pagination.tpl'}</div>
Изменено пользователем Kevin
Ссылка на сообщение
Поделиться на другие сайты

Поправил файл View.php, усталоновил лимит в 6 отображаемых товаров( $items_per_page = 6 ;), отмеченных как "Рекомендуемый", в админ.панели стоит лимит в 12 шт. В итоге - выводится по 12 шт и на главной в Рекоменд. товарах и по 12 шт в каталоге. Что-то здесь не так....

 

Но на главной не выводит пагинацию. Куда копать?

Скорее всего, в строке

$this->design->assign('total_pages_num', $pages_num);

 

присваивается кол-во 1, и потому не выводится пагинация (1 страницу смысла выводить нет).

 

А вообще Вы бы подумали, что хотите получить, прежде чем изобретать велосипед.

1. Главная - на то и главная, что она ОДНА. А с пагинацией - будет много главных?

2. Рекомендуемые на то и рекомендуемые, чтобы небольшое их к-во выделить из моря товаров. А если у Вас рекомендуемых много страниц, то какой в них смысл - так же покупатель потеряется.

3. На главной есть еще, например, акционные. Если еще на них повесите пагинацию, будет совсем круто с точки зрения программной реализации - две пагинации по двум спискам, но полное безобразие с точки зрения практической, SEO и проч...

Ссылка на сообщение
Поделиться на другие сайты

Проблема в другом - просто игнорируется $items_per_page = 6;  , а выставляется то значение, которое выставлено в админ. панели в качестве максимального.

 

Товара отмечено больше 12 шт как Рекомендуемые, а пагинация все-равно не выводится.

Слайдер для рекоменд. товаров? Даже не думал об этом, надеюсь в штатных средствах есть отображение.

Ссылка на сообщение
Поделиться на другие сайты

Проблема в другом - просто игнорируется $items_per_page = 6;  , а выставляется то значение, которое выставлено в админ. панели в качестве максимального.

 

Товара отмечено больше 12 шт как Рекомендуемые, а пагинация все-равно не выводится.

Слайдер для рекоменд. товаров? Даже не думал об этом, надеюсь в штатных средствах есть отображение.

 

сделайте что-то такое http://owlgraphic.com/owlcarousel и будет вам счастье

Ссылка на сообщение
Поделиться на другие сайты

Проблема в другом - просто игнорируется $items_per_page = 6;  , а выставляется то значение, которое выставлено в админ. панели в качестве максимального.

Скрипт работает в точности так, как Вы запрограммировали. Если написано $items_per_page =6;, это не значит что ВСЕГДА будет присваиваться значение.

Вы сами в своих представлениях игнорируете условие, которые перед этой строкой присутствует...

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...