Legosp Forum

Shop-Script "Legosp" => Дизайн и шаблоны => Тема начата: yuriy4508 от Марта 24, 2012, 09:47:41 am

Название: Категории на главной странице
Отправлено: yuriy4508 от Марта 24, 2012, 09:47:41 am
Искал на форуме, но не нашел.
Хочу вывести на главную список категорий с картинкой (лего 5.0.2) как тут http://www.dvaproraba.ru/
Кто-нибудь делал такое? Я так понимаю надо править home.php и home.tpl.html
Название: Re: Категории на главной странице
Отправлено: Dias от Марта 24, 2012, 10:01:35 am
По запросу "Категории на главной" есть такая тема и есть решение проблемы. Но можно написать еще раз:

В файл includes/home.php в конце перед ?> вставляем следующий код:

    //get root categories to be shown in the front-end homepage
$q = db_query("SELECT categoryID, name, products_count, picture, hurl FROM ".CATEGORIES_TABLE." WHERE categoryID<>0 and parent='0' and enabled='1' ORDER BY products_count DESC") or die (db_error());
$root = array();
while ($row = db_fetch_row($q))
{
if (!file_exists("./products_pictures/$row[3]")) $row[3] = "";
if ($row[4] != "") {$row[4] = REDIRECT_CATALOG."/".$row[4];} else {$row[4] = "index.php?categoryID=".$row[0];}
$root[] = $row;
}

//get subcategories of root categories
$query = "SELECT categoryID FROM ".CATEGORIES_TABLE." WHERE categoryID<>0 ORDER BY categoryID ASC";
$result = array();
for ($i=0; $i<count($root); $i++)
{
$q = db_query("SELECT categoryID, name, products_count, parent, hurl FROM ".CATEGORIES_TABLE." WHERE categoryID<>0 and parent=".$root[$i][0]." and products_count>0 ORDER BY products_count DESC") or die (db_error());
while ($row = db_fetch_row($q))
{
if ($row[4] != "") {$row[4] = REDIRECT_CATALOG."/".$row[4];} else {$row[4] = "index.php?categoryID=".$row[0];}
$result[] = $row;
}
}
$smarty->assign("root_categories",$root);
$smarty->assign("root_categories_subs",$result);

В файл шаблона css/css_default-full/theme/home.tpl в конце после {$index} и перед </div> :

    <h1>{$smarty.const.ADMIN_CATALOG}</h1>
        <table width=100% border=0 cellpadding=5>
{section name=i loop=$root_categories}
{if $smarty.section.i.index is div by 2}<tr>{/if}
            <td width=1% align=center>
{if $root_categories[i][3] ne ""}<a href="http://{$smarty.const.CONF_SHOP_URL}/{$root_categories[i][4]}" title="{$root_categories[i][1]}"><img border=0 src="./products_pictures/{$root_categories[i][3]}" alt="{$root_categories[i][1]}" />{/if}
            </td>
            <td>
            <a href="http://{$smarty.const.CONF_SHOP_URL}/{$root_categories[i][4]}" title="{$root_categories[i][1]}">{$root_categories[i][1]}</a>&nbsp;[{$root_categories[i][2]}]:<br /><br />
{* show sub categories *}
{assign var="tmp" value=0}
{section name=j loop=$root_categories_subs}
    {if $root_categories_subs[j][3] == $root_categories[i][0]}
    {if $tmp == 1}|
    {else}
{assign var="tmp" value=1}
    {/if}
            <a href="http://{$smarty.const.CONF_SHOP_URL}/{$root_categories_subs[j][4]}" title="{$root_categories_subs[i][1]}"><span class="sub">{$root_categories_subs[j][1]}</span></a>
    {/if}
{/section}
            </td>
            </td>
{if ($smarty.section.i.index+1) is div by 2}</tr>{/if}
{/section}
    </table>
Название: Re: Категории на главной странице
Отправлено: Dias от Марта 26, 2012, 12:09:10 pm
разве ж это буйство? просто возмущение.а Вы предлагаете потакать всем "капризам"? боюсь, тогда, ответ будет один - в поиск.
людей нужно одергивать от этих "привычек". сложностей перефразировать словасочетания для поиска нет, и уж тем более пролистнуть пару страниц в результате поиска.

Я не предлагаю потакать подобным "капризам", всех невозможно научить, будут регистрироваться новые пользователи, которые в любом случае буду создавать такие же темы с такими же вопросами и им будет все равно есть ли ответ уже на их вопрос и есть ли подобная тема. Я знаю, что если есть пару минут времени (а если заходишь на форум то оно уже есть) то можно либо написать человеку ссылку, где обсуждалась эта тема, либо, если есть время, написать еще раз и абсолютно ничего страшного не случиться, можно же получить более новые ответы на старые вопросы. Pehser написал уже другой, более правильный, вариант решения вопроса и его будет лучше использовать чем тот, что был.
Название: Re: Категории на главной странице
Отправлено: Dias от Марта 26, 2012, 12:26:52 pm
данный метод марально устарел, это обсуждалось на сходке в Киеве в прошлом году
Не рекомендую править файлы движка а то потом возникает ситуация при обновлении движка теряются обновый из за этого не хотят обновляться сидят на старых версиях а потом долбают как мне интегрировать то что в новой версии
нужно закидывать пхп в паку инклудес темы
пример css\css_default-full\includes  - если папки includes нету ее нужно создовать (вместо css_default-full папка ваше темы)

создаем в этой папке фаил например  tree_cat.php
с
<?php
  $categ_all
=All_Categories(0,0);
  
$smarty->assign("tree_cat",$categ_all);
?>


а в фаил home.tpl.html
добовляем
<h1>{$smarty.const.ADMIN_CATALOG}</h1>
 <ul class="tree">
    {section name=i loop=$tree_cat}
      {if $tree_cat[i].level<2}
        {if $tree_cat[i].level>$tree_cat[i.index_prev].level}<ul {if $tree_cat[i].level>0}class="inline"{/if} >{/if}
         <li {if $tree_cat[i].level==0} class="root_c" {/if}><a href="./{$tree_cat[i].hurl}">{$tree_cat[i].name}</a>{if $tree_cat[i].level==0}&nbsp;<b>[{$tree_cat[i].products_count}]</b> {else} {if $tree_cat[i.index_next].level>=$tree_cat[i].level}|{/if} {/if}
        {if $tree_cat[i].level==$tree_cat[i.index_next].level}</li>{/if}
        {if $tree_cat[i].level>$tree_cat[i.index_next].level && !$smarty.section.i.last}
         {math assign=raz equation="x - y" x=$tree_cat[i].level y=$tree_cat[i.index_next].level}
           {section name=closed loop=$raz}
             </ul></li>
           {/section}
        {/if}
       {/if}
    {/section}
</ul>

в фаил стилей (stylesheet.css)
доболяем
.tree ul
{
  list-style: none;
  margin: 0px;
  padding: 5px;
}
.inline li{display:inline;}

и вуаля у нас правильное дополнение не затрагивающее ядро использующее имеющие функции движка - без велосепидеов и оптимизированый шашлон - без таблиц

Данный мод будет работать только в 5-х версиях

Еще нужно добавить изображения для категорий.
Название: Re: Категории на главной странице
Отправлено: Dias от Марта 26, 2012, 12:36:19 pm
./products_pictures/{$tree_cat[i].picture}

Я сначала так сделал, но при таком способе отображаются и изображения подкатегорий, скажите, пожалуйста, как можно сделать чтобы было отображение изображений только для категорий?
Название: Re: Категории на главной странице
Отправлено: Dias от Марта 26, 2012, 01:25:21 pm
Благодарю, как раз то что нужно.
Название: Re: Категории на главной странице
Отправлено: nictboom от Марта 26, 2012, 11:05:41 pm
Цитата: Dias
...будут регистрироваться новые пользователи, которые в любом случае буду создавать такие же темы с такими же вопросами...

на который будут получать ответ - в поиск..
Цитата: Dias
Я знаю, что если есть пару минут времени
если у Вас будет минутка, пишите. боюсь, только без поддержки.
Цитата: Dias
Pehser написал уже другой, более правильный, вариант решения вопроса и его будет лучше использовать чем тот, что был
и этот вариант
Цитировать
будет работать только в 5-х версиях
а варианты старых сборок, увы пока никто не отменял .
Название: Re: Категории на главной странице
Отправлено: tovshop от Марта 27, 2012, 09:34:05 am
А куда вставить этот код, который выводит картинки (Если можно то выложите полный код)?

./products_pictures/{$tree_cat[i].picture}
{if $tree_cat.level==0}
Название: Re: Категории на главной странице
Отправлено: Dias от Марта 28, 2012, 01:53:14 am
А куда вставить этот код, который выводит картинки (Если можно то выложите полный код)?

./products_pictures/{$tree_cat[i].picture}
{if $tree_cat.level==0}

<h1>{$smarty.const.ADMIN_CATALOG}</h1>
 <ul class="tree">
    {section name=i loop=$tree_cat}
      {if $tree_cat.level<2}
        {if $tree_cat.level>$tree_cat[i.index_prev].level}<ul {if $tree_cat.level>0}class="inline"{/if} >{/if}
         <li {if $tree_cat.level==0} class="root_c" {/if}>{if $tree_cat.level==0}<img src="./products_pictures/{$tree_cat.picture}">{/if}<a href="./{$tree_cat.hurl}">{$tree_cat.name}</a>{if $tree_cat.level==0}&nbsp;<b>[{$tree_cat.products_count}]</b> {else} {if $tree_cat[i.index_next].level>=$tree_cat.level}|{/if} {/if}
        {if $tree_cat.level==$tree_cat[i.index_next].level}</li>{/if}
        {if $tree_cat.level>$tree_cat[i.index_next].level && !$smarty.section.i.last}
         {math assign=raz equation="x - y" x=$tree_cat.level y=$tree_cat[i.index_next].level}
           {section name=closed loop=$raz}
             </ul></li>
           {/section}
        {/if}
       {/if}
    {/section}
</ul>

Код, который нужно вставить, выделен красным цветом.
Название: Re: Категории на главной странице
Отправлено: tovshop от Марта 28, 2012, 09:34:30 am
Теперь только [] и ничего нет, в том числе и картинок.


[вложение удалено администратором]
Название: Re: Категории на главной странице
Отправлено: tovshop от Апреля 02, 2012, 12:14:31 pm
Shop-Script «Lego Edition SP 5.0.2»
Если не использовать fix с картинками, то отображение категорий и кол-ва товара есть. Но интересен вариант именно с картинками.
Название: Re: Категории на главной странице
Отправлено: nictboom от Апреля 21, 2012, 03:38:55 pm
а с тремя уровнями вложения кто то экспериментировал?
я попробовал применить, на сайте, если не вешать сильно стили, отображает вроде как нормально. firebug-ом, вроде тоже.
только пробуешь применить position, некоторые элементы плывут.
взял просто исходный код страницы на блокнот, и заметил несколько не закрытых строк(тэгов), не совсем верное расположение/распределение
закрывающихся </li> и </ul>.
сам код почти не менял, кроме: {if $tree_cat[i].level<3}кто то смотрел в своих исходных кодах страниц, нет ли подобного?
для примера исходный код с оф.демо -сайта:
<ul  id="verticalmenu" class="glossymenu">
</li>
<li><a href="./catalog/avtomobili/" >Автомобили</a></li>
<li><a href="./catalog/audio-video/" >Аудио / Видео</a></li>
<li><a href="./catalog/knigi/" >Книги</a></li>
<li><a href="./catalog/kompyutery/" >Компьютеры</a></li>
<li><a href="./catalog/napitki/" >Напитки</a></li>
<li><a href="./catalog/odezhda/" >Одежда</a></li>
<li><a href="./catalog/sotovaya-svyaz/"  class="selected" >Сотовая связь</a>
<ul>
<li><a href="./catalog/ericsson/" >Ericsson</a></li>
<li><a href="./catalog/nokia/" >Nokia</a></li>
<li><a href="./catalog/samsung/" >Samsung</a></li>
<li><a href="./catalog/siemens/" >Siemens</a>
        </ul>
       <li><a href="./catalog/sport/" >Спорт</a>
</ul>
хотя и отображается нормально...
Название: Re: Категории на главной странице
Отправлено: Rainstorm от Ноября 17, 2012, 05:10:36 pm
Так если делать как говорит pehser, то получается список категорий с подкатегориями в один длинный столбик слева. А надо то чтобы  в 2 или 3 столбца.
Название: Re: Категории на главной странице
Отправлено: nictboom от Ноября 18, 2012, 12:52:50 am
там еще стили были.
можно пробовать применить такой стиль:
ul.tree
{
  list-style: none;
  margin: 0px;
  padding: 5px;
  display:table;
  width:100%;
}
li.root_c {
  display:table-cell;
  width:30%;/*тут нужно играться, в зависимости от нужного кол-ва колонок*/
  float:left;
  min-height:170px;
}
эта конструкция не самый лучший вариант, хоть вроде и рабочий.
Название: Re: Категории на главной странице
Отправлено: Rainstorm от Ноября 18, 2012, 08:48:42 am
Еще бы сделать название категории на главной более крупным шрифтом и другого цвета.
Вообще это интересно реализовано вот здесь  http://inetstore.areainfo.ru/
Название: Re: Категории на главной странице
Отправлено: nictboom от Ноября 18, 2012, 09:39:54 pm
добавить:
li.root_c>a {
color: #006699;/*цвет текста*/
font-size: 14px;/*размер шрифта*/
text-transform: uppercase;/*делает все одной высоты*/
}
ul.inline>li>a {
color: #669900;/*цвет текста*/
font-size: 12px;/*размер шрифта*/
}
Название: Re: Категории на главной странице
Отправлено: Alex M от Ноября 20, 2012, 06:12:38 pm
А можно не морочить голову с кодом и прямо в тексте главной страницы в редакторе движка вставить табличку, как у меня на rush-hours.net
Например 6 столбцов и 4 строки. В первой и третей строчке картинки, во второй и четвертой ссылки. Ссылки, конечно я поставил тоже вручную, но их не так уж и много. А автоматический вывод на главной категорий с картинками мне не подходит, потому как я в категориях не ставлю картинки и описание, чтобы не засорять страницы мусором, не отвлекать посетителя от товара.
Название: Re: Категории на главной странице
Отправлено: rayan от Марта 13, 2013, 09:05:15 pm
А как сделать что бы названия категорий были не с боку от картинки, а под картинкой ?
Название: Re: Категории на главной странице
Отправлено: Alex M от Марта 21, 2013, 03:46:05 pm
Так у меня табличка из четырех строк. В первой и третей - картинки, а в ячейках второй и четвертой строк - ссылки на категории :)

Табличку, кстати, в ворде сделал, а потом скопировал на сайт :)