Перейти к содержимому


Фото
- - - - -

Как вывести все категории на странице /catalog ?

категории catalog

Best Answer Noxter , 22.07.2015 - 18:02

пробовал и функции но ничего так и не заработало (( если подскажите рабочий вариант буду очень благодарен.

Вы забыли создать страницу в админке URL у которой должен быть catalog, из за этого и не срабатывает условие:
{if $page->url=='catalog'}
Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
15 ответов в теме

#1 sergeypay

sergeypay
  • Пользователь
  • 34 сообщений
  • Программирование, SEO
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 22.07.2015 - 16:25

Требуется на странице /catalog вывести все названия категорий 1 уровня, соответственно если зайти в категорию должно отображаться подкатегории.

 

В общем у меня все работает как нужно, когда заходишь в категорию 1 уровня подкатегории 2 уровня отображаются отлично, но когда заходишь на страницу site.ru/catalog не отображаются все Главные категории 1 уровня. подскажите как вывести на странице site.ru/catalog все названия категорий 1 уровня?

 

Код полу рабочего варианта

в .htaccess добавлено 
RewriteRule ^catalog/?$    index.php?module=ProductsView  [L,QSA]
для отображения страницы site.ru/catalog и убрать ошибку что такой страницы не существует.

{if $page->url=='catalog'}// пытался отобразить вывыд всех категорий 1 уровня если url == catalog, но в данном случае url вообще не выводится, а так бы был рабочий вариант; но если убрать эту проверку то выводится и категории 1 уровня и подкатегории, вообщем если убрать  вывод категорий 1 уровня в подкатегориях вариант вполне будет рабочий, помогите плиз.
{if $category}
<ul class="catalog_list">
        {foreach $category as $c}
            {if $c->visible}
                <li class="catalog_item">
                    <a href="catalog/{$c->url}">
                        <div class="catalog_image">
                            {if $c->image}
                                <img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}" title="{$c->name|escape}">
                            {else}
                                <img src="design/{$settings->theme|escape}/images/bg/nofoto.png" alt="{$c->name|escape}" title="{$c->name|escape}">
                            {/if}
                        </div>
                        <span class="catalog_name">{$c->name|escape}</span>
                    </a>
                </li>
            {/if}
        {/foreach}
    </ul>
<div class="clear_dot"></div>
{/if}

{if $category->subcategories}
    <ul class="catalog_list">
		{foreach $category->subcategories as $c}
			{if $c->visible}
				<li class="catalog_item">
					<a href="catalog/{$c->url}">
						<div class="catalog_image">
							{if $c->image}
								<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}" title="{$c->name|escape}">
							{else}
								<img src="design/{$settings->theme|escape}/images/bg/nofoto.png" alt="{$c->name|escape}" title="{$c->name|escape}">
							{/if}
						</div>
						<span class="catalog_name">{$c->name|escape}</span>
					</a>
				</li>
			{/if}
		{/foreach}
	</ul>
    <div class="clear_dot"></div>
{/if}
{/if}



Изменено: sergeypay, 22.07.2015 - 16:40


#2 mishanya

mishanya
  • Фрилансер
  • 2 560 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 22.07.2015 - 16:54

почему вы не используете ф-ю древовидного вывода категорий?



#3 sergeypay

sergeypay
  • Пользователь
  • 34 сообщений
  • Программирование, SEO
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 22.07.2015 - 17:59

почему вы не используете ф-ю древовидного вывода категорий?

пробовал и функции но ничего так и не заработало (( если подскажите рабочий вариант буду очень благодарен.



#4 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 7 109 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 22.07.2015 - 18:02   Best Answer

пробовал и функции но ничего так и не заработало (( если подскажите рабочий вариант буду очень благодарен.

Вы забыли создать страницу в админке URL у которой должен быть catalog, из за этого и не срабатывает условие:
{if $page->url=='catalog'}


#5 mishanya

mishanya
  • Фрилансер
  • 2 560 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 22.07.2015 - 22:27

пробовал и функции но ничего так и не заработало (( если подскажите рабочий вариант буду очень благодарен.

 

напишите в личку.

 

еще {foreach $category as $c} не будет работать.



#6 sergeypay

sergeypay
  • Пользователь
  • 34 сообщений
  • Программирование, SEO
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 23.07.2015 - 10:06

.

 

еще {foreach $category as $c} не будет работать.

Да, верно, позже заметил.  {foreach $categories as $c}

 

Вы забыли создать страницу в админке URL у которой должен быть catalog, из за этого и не срабатывает условие:

{if $page->url=='catalog'}

Спасибо большое за подсказку, Именно то что нужно было спасибо! 



#7 sergeypay

sergeypay
  • Пользователь
  • 34 сообщений
  • Программирование, SEO
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 23.07.2015 - 10:45

Не нахожу кнопки чтобы поставить что тема решена?



#8 akvk

akvk
  • Пользователь
  • 15 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Александр

Опубликовано 04.08.2016 - 23:11

А подскажите пожалуйста как после вывода категорий на странице каталог убрать вывод всей продукции?



#9 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 05.08.2016 - 09:48

Подобным приемом: вместо

 

<!--Каталог товаров-->
{if $products}
 

поставить

 

<!--Каталог товаров-->
{if $products && $page->url != 'catalog'}



#10 akvk

akvk
  • Пользователь
  • 15 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Александр

Опубликовано 05.08.2016 - 11:19

Подобным приемом: вместо

 

<!--Каталог товаров-->
{if $products}
 

поставить

 

<!--Каталог товаров-->
{if $products && $page->url != 'catalog'}

Спасибо за помощь все работает!

Если кому понадобится решение, то я сделал так:

 

<!--Каталог товаров-->
            {if $products && $page->url != 'catalog'}

 

               <!-- Список товаров-->

                 ... Здесь блок страниц товаров

   

 

              {elseif $page->url=='catalog'}

 

              <!-- Страница каталог -->

 

             {else}
            
            <h3>Товары не найдены</h3>

 

            {/if}



#11 akvk

akvk
  • Пользователь
  • 15 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Александр

Опубликовано 05.08.2016 - 11:39

Kors, а подскажи пожалуйста каким условием можно разбить вывод в цикле товаров в bootstrap разметки.
Есть три колонки:
 
<div class="row"></div>
<div class="row row-two"></div>
 <div class="row row-three"></div>
 
Нужно при выводе категорий подменить класс на следующий

{if $categories}
   {foreach $categories as $c}

 <div class="row"> (Вот здесь нужно подменить класс row на row row-two после вывода 3 записей и так далее на класс row row-three.)
     {if $c->visible}
       <a href="catalog/{$c->url}">
       <div class="catalog_image">
            {if $c->image}
              <img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}" title="{$c->name|escape}">
            {/if}
       </div>
      <span>{$c->name|escape}</span>
     </a>
     {/if}

</div>
    {/foreach}
{/if}


#12 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 05.08.2016 - 12:46

Использовать что-то типа
{if $c@iteration<=3}
Вывод с первого по третий
{elseif $c@iteration<=6}
Вывод с 4-го по 6-ой
{else}
Вывод с 6-го и далее
{/if}

Может не совсем правильно работать, если есть отключенные категории.
Кстати, в Вашем коде тоже есть этот недостаток, могут выводиться пустые <div class="row"></div>.
Для совсем корректной работы надо еще усложнять...

#13 akvk

akvk
  • Пользователь
  • 15 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Александр

Опубликовано 05.08.2016 - 12:56

Использовать что-то типа
{if $c@iteration<=3}
Вывод с первого по третий
{elseif $c@iteration<=6}
Вывод с 4-го по 6-ой
{else}
Вывод с 6-го и далее
{/if}

Может не совсем правильно работать, если есть отключенные категории.
Кстати, в Вашем коде тоже есть этот недостаток, могут выводиться пустые <div class="row"></div>.
Для совсем корректной работы надо еще усложнять...

Спасибо Вам огромное за помощь!



#14 akvk

akvk
  • Пользователь
  • 15 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Александр

Опубликовано 07.08.2016 - 21:58

Использовать что-то типа
{if $c@iteration<=3}
Вывод с первого по третий
{elseif $c@iteration<=6}
Вывод с 4-го по 6-ой
{else}
Вывод с 6-го и далее
{/if}

Может не совсем правильно работать, если есть отключенные категории.
Кстати, в Вашем коде тоже есть этот недостаток, могут выводиться пустые <div class="row"></div>.
Для совсем корректной работы надо еще усложнять...

Извините пожалуйста, но у меня похожий вопрос, но я никак не могу сообразить как сделать.

А как сделать, чтобы в

{foreach $products as $product}

<div class="row">

 ----- Здесь три записи ----

 </div>

 <div class="row">

  ----- Здесь три записи ----

 </div>

 <div class="row">

 ----- Здесь три записи ----

 </div>

{/foreach}

и до бесконечности.



#15 yr4ik

yr4ik
  • Фрилансер
  • 924 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 08.08.2016 - 02:17

{foreach $products as $product}
    {if $product@first || ($product@iteration - 1) is div by 3}<div class="row">{/if}
       .....
    {if $product@last || $product@iteration is div by 3}</div>{/if}
{/foreach}
 


#16 akvk

akvk
  • Пользователь
  • 15 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:Александр

Опубликовано 08.08.2016 - 10:12

{foreach $products as $product}
    {if $product@first || ($product@iteration - 1) is div by 3}<div class="row">{/if}
       .....
    {if $product@last || $product@iteration is div by 3}</div>{/if}
{/foreach}
 

Огромнейшее человеческое спасибо!







Также с меткой «категории, catalog»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых