Legosp Forum
Shop-Script "Legosp" => Дизайн и шаблоны => Тема начата: yuriy4508 от Марта 24, 2012, 09:47:41 am
-
Искал на форуме, но не нашел.
Хочу вывести на главную список категорий с картинкой (лего 5.0.2) как тут http://www.dvaproraba.ru/
Кто-нибудь делал такое? Я так понимаю надо править home.php и home.tpl.html
-
По запросу "Категории на главной" есть такая тема и есть решение проблемы. Но можно написать еще раз:
В файл 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> [{$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>
-
разве ж это буйство? просто возмущение.а Вы предлагаете потакать всем "капризам"? боюсь, тогда, ответ будет один - в поиск.
людей нужно одергивать от этих "привычек". сложностей перефразировать словасочетания для поиска нет, и уж тем более пролистнуть пару страниц в результате поиска.
Я не предлагаю потакать подобным "капризам", всех невозможно научить, будут регистрироваться новые пользователи, которые в любом случае буду создавать такие же темы с такими же вопросами и им будет все равно есть ли ответ уже на их вопрос и есть ли подобная тема. Я знаю, что если есть пару минут времени (а если заходишь на форум то оно уже есть) то можно либо написать человеку ссылку, где обсуждалась эта тема, либо, если есть время, написать еще раз и абсолютно ничего страшного не случиться, можно же получить более новые ответы на старые вопросы. Pehser написал уже другой, более правильный, вариант решения вопроса и его будет лучше использовать чем тот, что был.
-
данный метод марально устарел, это обсуждалось на сходке в Киеве в прошлом году
Не рекомендую править файлы движка а то потом возникает ситуация при обновлении движка теряются обновый из за этого не хотят обновляться сидят на старых версиях а потом долбают как мне интегрировать то что в новой версии
нужно закидывать пхп в паку инклудес темы
пример 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} <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-х версиях
Еще нужно добавить изображения для категорий.
-
./products_pictures/{$tree_cat[i].picture}
Я сначала так сделал, но при таком способе отображаются и изображения подкатегорий, скажите, пожалуйста, как можно сделать чтобы было отображение изображений только для категорий?
-
Благодарю, как раз то что нужно.
-
...будут регистрироваться новые пользователи, которые в любом случае буду создавать такие же темы с такими же вопросами...
на который будут получать ответ - в поиск..
Я знаю, что если есть пару минут времени
если у Вас будет минутка, пишите. боюсь, только без поддержки.
Pehser написал уже другой, более правильный, вариант решения вопроса и его будет лучше использовать чем тот, что был
и этот вариант будет работать только в 5-х версиях
а варианты старых сборок, увы пока никто не отменял .
-
А куда вставить этот код, который выводит картинки (Если можно то выложите полный код)?
./products_pictures/{$tree_cat[i].picture}
{if $tree_cat.level==0}
-
А куда вставить этот код, который выводит картинки (Если можно то выложите полный код)?
./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} <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>
Код, который нужно вставить, выделен красным цветом.
-
Теперь только [] и ничего нет, в том числе и картинок.
[вложение удалено администратором]
-
Shop-Script «Lego Edition SP 5.0.2»
Если не использовать fix с картинками, то отображение категорий и кол-ва товара есть. Но интересен вариант именно с картинками.
-
а с тремя уровнями вложения кто то экспериментировал?
я попробовал применить, на сайте, если не вешать сильно стили, отображает вроде как нормально. 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>
хотя и отображается нормально...
-
Так если делать как говорит pehser, то получается список категорий с подкатегориями в один длинный столбик слева. А надо то чтобы в 2 или 3 столбца.
-
там еще стили были.
можно пробовать применить такой стиль:
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;
}
эта конструкция не самый лучший вариант, хоть вроде и рабочий.
-
Еще бы сделать название категории на главной более крупным шрифтом и другого цвета.
Вообще это интересно реализовано вот здесь http://inetstore.areainfo.ru/
-
добавить:
li.root_c>a {
color: #006699;/*цвет текста*/
font-size: 14px;/*размер шрифта*/
text-transform: uppercase;/*делает все одной высоты*/
}
ul.inline>li>a {
color: #669900;/*цвет текста*/
font-size: 12px;/*размер шрифта*/
}
-
А можно не морочить голову с кодом и прямо в тексте главной страницы в редакторе движка вставить табличку, как у меня на rush-hours.net
Например 6 столбцов и 4 строки. В первой и третей строчке картинки, во второй и четвертой ссылки. Ссылки, конечно я поставил тоже вручную, но их не так уж и много. А автоматический вывод на главной категорий с картинками мне не подходит, потому как я в категориях не ставлю картинки и описание, чтобы не засорять страницы мусором, не отвлекать посетителя от товара.
-
А как сделать что бы названия категорий были не с боку от картинки, а под картинкой ?
-
Так у меня табличка из четырех строк. В первой и третей - картинки, а в ячейках второй и четвертой строк - ссылки на категории :)
Табличку, кстати, в ворде сделал, а потом скопировал на сайт :)