Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Категории товаров на главной странице

Подскажите пожалуйста, как вывести список категорий с изображениями на главную страницу.


просто так не вытянешь, наверно токо в след версии будет реализовано полностью, щас только частично

перейдипо адресу

http://Твой_магазин.ru/index.php?cat=0


Спасибо, попробую сам реализовать.


если получится - свисти


еле через поиск тему эту нашел :)
сам столкнулся стакой проблемой. думал это уже реализовано



просто так не вытянешь, наверно токо в след версии будет реализовано полностью, щас только частично

перейдипо адресу

http://Твой_магазин.ru/index.php?cat=0

В версии 2.4.2 это будет реализовано?



Спасибо, попробую сам реализовать.

как успехи?



как успехи?

пока никак, порылся в файлах так и не нашел что отвечает за переходы по категориям, там чёрт ногу сломит, один другого инклюдит и ничего не понятно


Всё! Реализовал, только врядли это кому-то подойдет кроме меня, если нужно то объясню как это сделать.


рассказывай. нужно


ВНИМАНИЕ!! Перед открытием файлов, обязательно сдлайте их резервную копию!
Открываем файл default.php (/modules).
Ищем строчку:
default->assign('language', $_SESSION);
Дальше должно идти:

if (!CacheCheck()) {
  $default->caching = 0;
  $main_content = $default->fetch(CURRENT_TEMPLATE.'/module/main_content.html');
  } else {.....

Между этим, т.е после default->assign('language', $_SESSION);, вставляем:
if (GROUP_CHECK == 'true') {
    $group_check = "and c.group_permission_".$_SESSION."=1 ";
  }
  $categories_query = "select      cd.categories_description,
                                          c.categories_id,
                                          cd.categories_name,
        cd.categories_heading_title,
                                          c.categories_image,
                                          c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd
                                          where c.categories_status = '1'
                                          and c.parent_id = '0'
                                          and c.categories_id = cd.categories_id
                                          ".$group_check."
                                          and cd.language_id = '".(int) $_SESSION."'
                                          order by sort_order, cd.categories_name";
  $categories_query = osDBquery($categories_query);
 

  $rows = 0;
  while ($categories = os_db_fetch_array($categories_query, true)) {
  $rows ++;

  $cPath_new = os_category_link($categories,$categories);

  $width = (int) (100 / MAX_DISPLAY_CATEGORIES_PER_ROW).'%';
  $image = '';

if ($categories != '')
              {
                    $image = DIR_WS_IMAGES.'categories/'.$categories;
              }
              else
              {
                    $image = DIR_WS_IMAGES.'product_images/noimage.gif';
              }

  $categories_content[] = array ('CATEGORIES_NAME' => $categories, 'CATEGORIES_HEADING_TITLE' => $categories, 'CATEGORIES_IMAGE' => $image, 'CATEGORIES_LINK' => os_href_link(FILENAME_DEFAULT, $cPath_new), 'CATEGORIES_DESCRIPTION' => $categories);

  }
  $image = '';
  if ($category != '') {
  $image = DIR_WS_IMAGES.'categories/'.$category;
  }
  $default->assign('CATEGORIES_NAME', $category);
  $default->assign('CATEGORIES_HEADING_TITLE', $category);

  $default->assign('CATEGORIES_IMAGE', $image);
  $default->assign('CATEGORIES_DESCRIPTION', $category);

  $default->assign('language', $_SESSION);
  $default->assign('module_content', $categories_content);

Всё, этот файл закрываем.
Далее открываем файл шаблона main_content.html. (themes/шаблон/module/)
и categorie_listing.html.
Из categorie_listing.html копируем всё кроме последних строк где подключаются модули(вида {$MODULE_featured_products})
Вставляем скопированое в main_content.html.
И радуемся. Ну потом html тегами можна довести все до ума.



ВНИМАНИЕ!! Перед открытием файлов, обязательно сдлайте их резервную копию!
Открываем файл default.php (/modules).
Ищем строчку:
default->assign('language', $_SESSION);
Дальше должно идти:

if (!CacheCheck()) {
  $default->caching = 0;
  $main_content = $default->fetch(CURRENT_TEMPLATE.'/module/main_content.html');
  } else {.....

Между этим, т.е после default->assign('language', $_SESSION);, вставляем:
if (GROUP_CHECK == 'true') {
    $group_check = "and c.group_permission_".$_SESSION."=1 ";
  }
  $categories_query = "select      cd.categories_description,
                                          c.categories_id,
                                          cd.categories_name,
        cd.categories_heading_title,
                                          c.categories_image,
                                          c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd
                                          where c.categories_status = '1'
                                          and c.parent_id = '0'
                                          and c.categories_id = cd.categories_id
                                          ".$group_check."
                                          and cd.language_id = '".(int) $_SESSION."'
                                          order by sort_order, cd.categories_name";
  $categories_query = osDBquery($categories_query);
 

  $rows = 0;
  while ($categories = os_db_fetch_array($categories_query, true)) {
  $rows ++;

  $cPath_new = os_category_link($categories,$categories);

  $width = (int) (100 / MAX_DISPLAY_CATEGORIES_PER_ROW).'%';
  $image = '';

if ($categories != '')
               {
                    $image = DIR_WS_IMAGES.'categories/'.$categories;
               }
               else
               {
                    $image = DIR_WS_IMAGES.'product_images/noimage.gif';
               }

  $categories_content[] = array ('CATEGORIES_NAME' => $categories, 'CATEGORIES_HEADING_TITLE' => $categories, 'CATEGORIES_IMAGE' => $image, 'CATEGORIES_LINK' => os_href_link(FILENAME_DEFAULT, $cPath_new), 'CATEGORIES_DESCRIPTION' => $categories);

  }
  $image = '';
  if ($category != '') {
  $image = DIR_WS_IMAGES.'categories/'.$category;
  }
  $default->assign('CATEGORIES_NAME', $category);
  $default->assign('CATEGORIES_HEADING_TITLE', $category);

  $default->assign('CATEGORIES_IMAGE', $image);
  $default->assign('CATEGORIES_DESCRIPTION', $category);

  $default->assign('language', $_SESSION);
  $default->assign('module_content', $categories_content);

Всё, этот файл закрываем.
Далее открываем файл шаблона main_content.html. (themes/шаблон/module/)
и categorie_listing.html.
Из categorie_listing.html копируем всё кроме последних строк где подключаются модули(вида {$MODULE_featured_products})
Вставляем скопированое в main_content.html.
И радуемся. Ну потом html тегами можна довести все до ума.



Как все умно расписано... только видимо не для моего ума(((( я попытался на пробном сайте все это сделать... ничего у меня не получилось(((((


Что именно не получилось, какая версия магазина, какой шаблон?



ВНИМАНИЕ!! Перед открытием файлов, обязательно сдлайте их резервную копию!
Открываем файл default.php (/modules).


Всё, этот файл закрываем.
Далее открываем файл шаблона main_content.html. (themes/шаблон/module/)
и categorie_listing.html.
Из categorie_listing.html копируем всё кроме последних строк где подключаются модули(вида {$MODULE_featured_products})
Вставляем скопированое в main_content.html.
И радуемся. Ну потом html тегами можна довести все до ума.



Тоже не получилось.. А может просто выложишь готовыми эти два файла, с путями куда их закинуть, чтоб уж негде было запутаться?


Выложить могу только default.php ибо main_content.html это файл шаблона.

P.S. Для этой работы желательно хоть малейшее знание html и понимание происходящего.
P.P.S. Во вложении результат работы.


А почему шаблонный файл выложить нельзя? Он же из дефолтового шаблона, его туда и запихать можно.. Или я чего-то не поняла совсем.
Результат замечательный, кстати..  Правда, я что-то типа того делала в магазине, но на другом движке, но народу потом больше понравилось на этом месте развернутое дерево каталога. Но это я уже не сама делала - такой модуль готовый был, просто сказала ему встать на главную.


хотелось бы в платной версии иметь эту возможность АВТОМАТИЧЕСКИ, т.е. с возможностью такого отражения...



А почему шаблонный файл выложить нельзя? Он же из дефолтового шаблона, его туда и запихать можно.. Или я чего-то не поняла совсем.
Результат замечательный, кстати..  Правда, я что-то типа того делала в магазине, но на другом движке, но народу потом больше понравилось на этом месте развернутое дерево каталога. Но это я уже не сама делала - такой модуль готовый был, просто сказала ему встать на главную.

Если к дефолтному шаблону то без проблем. (я думал что вы используете другой шаблон, может даже не из базового набора  shopos)




А почему шаблонный файл выложить нельзя? Он же из дефолтового шаблона, его туда и запихать можно.. Или я чего-то не поняла совсем.
Результат замечательный, кстати..  Правда, я что-то типа того делала в магазине, но на другом движке, но народу потом больше понравилось на этом месте развернутое дерево каталога. Но это я уже не сама делала - такой модуль готовый был, просто сказала ему встать на главную.

Если к дефолтному шаблону то без проблем. (я думал что вы используете другой шаблон, может даже не из базового набора  shopos)

у меня тоже дефолтный шаблон, а все равно ничего не получается((((


Дизайн я, конечно, меняю, но на основе дефолтного шаблона - подумала что он наименее глючным должен быть )





А почему шаблонный файл выложить нельзя? Он же из дефолтового шаблона, его туда и запихать можно.. Или я чего-то не поняла совсем.
Результат замечательный, кстати..  Правда, я что-то типа того делала в магазине, но на другом движке, но народу потом больше понравилось на этом месте развернутое дерево каталога. Но это я уже не сама делала - такой модуль готовый был, просто сказала ему встать на главную.

Если к дефолтному шаблону то без проблем. (я думал что вы используете другой шаблон, может даже не из базового набора  shopos)

у меня тоже дефолтный шаблон, а все равно ничего не получается((((

Ну я уже не знаю, выложил файлы, шаблон - дефолт. Я у себя за 2 минуты на только что установленный магазин поставил, всё работает. Какая у Вас версия магазина, и по порядку что Вы делаете.


А куда файлы-то выложил? Версия магазина последняя.


Смотрите во вложениях.


Туплю - а где вложения-то смотреть? Не вижу.


Снизу в сообщении:


Спасибо! И правда что-то затупила ))


Не хочется открывать новую тему, эта выглядит наиболее подходящей для проблемы "Категории товаров на главной странице".

В файле index.php ищем строку

$category_depth = 'top';

и меняем на

$category_depth = 'nested';

При этом, не забываем о том, что редактирование чего-бы то ни было, кроме шаблонов, обязательно создаст проблемы при обновлении версии ShopOS, и внимательно читаем http://www.shopos.ru/forum/index.php?topic=2273.0;topicseen

2 Евгений: Может, есть смысл внести настройку в какой-то пункт админки следующей версии?
Готов проконтрибутить  ;)



Не хочется открывать новую тему, эта выглядит наиболее подходящей для проблемы "Категории товаров на главной странице".

В файле index.php ищем строку

$category_depth = 'top';

и меняем на

$category_depth = 'nested';

При этом, не забываем о том, что редактирование чего-бы то ни было, кроме шаблонов, обязательно создаст проблемы при обновлении версии ShopOS, и внимательно читаем http://www.shopos.ru/forum/index.php?topic=2273.0;topicseen

2 Евгений: Может, есть смысл внести настройку в какой-то пункт админки следующей версии?
Готов проконтрибутить  ;)




так пропадают же все остальные блоки.




Не хочется открывать новую тему, эта выглядит наиболее подходящей для проблемы "Категории товаров на главной странице".

В файле index.php ищем строку

$category_depth = 'top';

и меняем на

$category_depth = 'nested';

При этом, не забываем о том, что редактирование чего-бы то ни было, кроме шаблонов, обязательно создаст проблемы при обновлении версии ShopOS, и внимательно читаем http://www.shopos.ru/forum/index.php?topic=2273.0;topicseen

2 Евгений: Может, есть смысл внести настройку в какой-то пункт админки следующей версии?
Готов проконтрибутить  ;)




так пропадают же все остальные блоки.


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


решение на первой странице этой темы есть.

+ блоки местами поменять можно в themes\шаблон\module\main_content.html


Привет! Хочу спросить, у кого то получилась вывести категорию товаров на главную страницу?
Вот очень хочется сделать типа такого (смотрим картинку)



Привет! Хочу спросить, у кого то получилась вывести категорию товаров на главную страницу?
Вот очень хочется сделать типа такого (смотрим картинку)

привет... мне один очень хороший человек отсюда помог - вот - http://universam-msk.ru/


Вот готовое решение))))
кусок кода стваить в:
themes\{ваша тема}\module\main_content.html

{php}
$tpl_path = "/catalog/themes/def_xn";

$user=DB_SERVER_USERNAME;
$pass=DB_SERVER_PASSWORD;
$db=DB_DATABASE;
$link=mysql_connect(DB_SERVER, $user, $pass);
if (!$link) { die("Ошибка подключения к серверу MySQL<br>ERROR ".mysql_errno()." - ".mysql_error()."\n"); }
mysql_select_db($db, $link) or die("Ошибка доступа к базе MySQL");
$res = mysql_query("SELECT os_categories.categories_id, os_categories_description.categories_id, categories_name, categories_description, sort_order, parent_id FROM os_categories, os_categories_description WHERE os_categories.categories_status='1' AND os_categories.categories_id=os_categories_description.categories_id AND parent_id='0' ORDER BY sort_order asc LIMIT 0,8;"); //  $f
echo "<table width='100%'>";

for ($w=0; $w<(mysql_num_rows($res)/4); $w++)
{echo "\n<tr>";

for ($c=0; $c<(mysql_num_rows($res)/2); $c++)
{ $f = mysql_fetch_array($res);
echo "\n<td class='main' valign='top'>
<table width='175'><tr>
<td class='contents' valign='middle' align='center'>
<strong><a href='/catalog/index.php?cat=$f'>$f</a></strong>
</td>
</tr>
<tr>
<td class='contents' valign='top' align='center'>
<a href='/catalog/index.php?cat=$f'><img src='images/categories/$f.jpg' alt='$f' title='$f' /></a>
</td>
</tr>
<tr>
<td class='contents' valign='top' align='left'>";
$res2 = mysql_query("SELECT * FROM os_categories, os_categories_description WHERE os_categories.categories_id=os_categories_description.categories_id AND parent_id='$f' ORDER BY sort_order asc LIMIT 0,2;");
for ($e=0; $e<mysql_num_rows($res2); $e++)
{ $f2 = mysql_fetch_array($res2);
echo "<li class='CatLevel1'><a href='/catalog/index.php?cat=$f2'>$f2</a></li> ";
}
echo "\n</td>
</td>
</tr>
<tr>
<td class='contents' width='100%' valign='top' height='100%' >";
//echo "\n$f<br /><br />";
echo "\n<a href='/catalog/index.php?cat=$f'>Далее...</a><br />";
echo "\n</td>
</tr>
  </table>
</td>";
}
echo "\n</tr> ";
}

echo "\n</table>";
{/php}

Запросы идут мимо функций скрипта, и не кешируются соответственно... Может кому поможет)



Вот готовое решение))))
кусок кода стваить в:
themes\{ваша тема}\module\main_content.html

{php}
$tpl_path = "/catalog/themes/def_xn";

$user=DB_SERVER_USERNAME;
$pass=DB_SERVER_PASSWORD;
$db=DB_DATABASE;
$link=mysql_connect(DB_SERVER, $user, $pass);
if (!$link) { die("Ошибка подключения к серверу MySQL<br>ERROR ".mysql_errno()." - ".mysql_error()."\n"); }
mysql_select_db($db, $link) or die("Ошибка доступа к базе MySQL");
$res = mysql_query("SELECT os_categories.categories_id, os_categories_description.categories_id, categories_name, categories_description, sort_order, parent_id FROM os_categories, os_categories_description WHERE os_categories.categories_status='1' AND os_categories.categories_id=os_categories_description.categories_id AND parent_id='0' ORDER BY sort_order asc LIMIT 0,8;"); //  $f
echo "<table width='100%'>";

for ($w=0; $w<(mysql_num_rows($res)/4); $w++)
{echo "\n<tr>";

for ($c=0; $c<(mysql_num_rows($res)/2); $c++)
{ $f = mysql_fetch_array($res);
echo "\n<td class='main' valign='top'>
<table width='175'><tr>
<td class='contents' valign='middle' align='center'>
<strong><a href='/catalog/index.php?cat=$f'>$f</a></strong>
</td>
</tr>
<tr>
<td class='contents' valign='top' align='center'>
<a href='/catalog/index.php?cat=$f'><img src='images/categories/$f.jpg' alt='$f' title='$f' /></a>
</td>
</tr>
<tr>
<td class='contents' valign='top' align='left'>";
$res2 = mysql_query("SELECT * FROM os_categories, os_categories_description WHERE os_categories.categories_id=os_categories_description.categories_id AND parent_id='$f' ORDER BY sort_order asc LIMIT 0,2;");
for ($e=0; $e<mysql_num_rows($res2); $e++)
{ $f2 = mysql_fetch_array($res2);
echo "<li class='CatLevel1'><a href='/catalog/index.php?cat=$f2'>$f2</a></li> ";
}
echo "\n</td>
</td>
</tr>
<tr>
<td class='contents' width='100%' valign='top' height='100%' >";
//echo "\n$f<br /><br />";
echo "\n<a href='/catalog/index.php?cat=$f'>Далее...</a><br />";
echo "\n</td>
</tr>
    </table>
</td>";
}
echo "\n</tr> ";
}

echo "\n</table>";
{/php}

Запросы идут мимо функций скрипта, и не кешируются соответственно... Может кому поможет)



Не работает. При нажатии на категорию выдает ошибку


Замените /catalog/ на то что у вас))) У меня работает... Или проясните что конкретно за проблема?


заработало. но выводит только 8 категорий :(



заработало. но выводит только 8 категорий :(

Там лимит на 8 категорий - LIMIT 0,8
измени на другое число.


ужас.

ладно, на днях набросаю что то более практичное

потому что создавать еще одно соединение и не использовать функции движка - это очень плохо.



ужас.

ладно, на днях набросаю что то более практичное

потому что создавать еще одно соединение и не использовать функции движка - это очень плохо.


Очень буду благодарен :)
И желательно, чтобы эти категории использовали дизайн вывода товаров


Было бы не плохо замутить в виде плагина или бокса.
Чтобы можно было отключать в админке и была возможно выводить где угодно, а не только на главной)



Было бы не плохо замутить в виде плагина или бокса.
Чтобы можно было отключать в админке и была возможно выводить где угодно, а не только на главной)


не получится сделать чтобы метка плагина была доступна по всем *.html шаблонам. можно только под какие то конкретные.

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

разве есть много страниц, где нужно выводить категории товаров?




Было бы не плохо замутить в виде плагина или бокса.
Чтобы можно было отключать в админке и была возможно выводить где угодно, а не только на главной)


не получится сделать чтобы метка плагина была доступна по всем *.html шаблонам. можно только под какие то конкретные.

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

разве есть много страниц, где нужно выводить категории товаров?


Я имел ввиду вывод например на странице 404.


Это нужно только на главной вообще



Это нужно только на главной вообще

Это нужно разным людям для разных целей. Каждый сам уже определит, что и где выводить :D
Пример _http://store.apple.com/us/ascjanskcjnas

Можно сделать скрывающиеся категории.
И строить различные конструкции вывода категорий на различных страницах.
Вариантов море ;D
Ограничиваться выводом только на главной не думаю, что удобно.
Это же расширит только функции скрипта.
Другое дело, если это геморно, тогда конечно, сделать хотя бы на главной.


Ребят, подскажите, какой файлик нужно редактировать в Дримвивере, чтобы изменить логотип и поставить свой?


index.html.
А вообще поиск по файлам шаблона рулит + не надо постить топики и создавать темы по два раза!

да и темой вы ошиблись.


Лучше оптимизировать и вставлять как код)))) То что я написал, было на коленке))
Сейчас всё по другому.., но пока не добрался встроенных функций)


Ну неужели никто так и не смог??? (Кстати Евгений обещал)


Вот нашел модуль от xt-commerce кто вазмется  переделывать?
я что то не понял :P


Да вы чего ребята. На первой странице этой темы все подробно описаною. Не беда, что в main_content.html станет больше букаф, зато все категории на гланой странице за 5 минут и без доп. модулей и плагинов!


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

и самое главное
как за 5 мин сделать чтоб и подкатегории показывались? (у меня категорий всего 6 и в каждой по 5-10 подкатегорий)
хочется красиво в два три столбика категория жирным большим шрифтом а под ней (со смещением) подкатегории чуть меньшим шрифтом
может кто пример кинет как что менять (если в движке до сих по не сделано - а вроде обещалось  :D )


Не очень понял почему нужно категории без описания....может пришлете ссылку как вы это себе представляете. У меня так:
Справа в боксе категории вертикальной менюшкой.
На главной странице по центру те же категории только в виде картинок-ссылок в 4 столбика.
Каждая категория имеет свое описание, которое выводится только при заходе к эту категорию и его нет на главной.

Меня это сполне устраивает.


я же написал что у меня категорий мало, а подкатегорий много...
они ж не выводятся
---
вот сайт deltasan.ru (вот такой самый простой каталог хочу сделать и на шопосе... пока что решил "проблему" созданием таблицы с тремя столбцами и вручную сделал ссылки)
просто таблица из категорий и подкатегорий - неужели так сложно сделать это здесь?


Точно над таким же вопросом начал работать. Пока ещё не написал. Если у Вас уже получилось, буду благодарен за помощь.


а можно это дело както организовать в виде плагина?


Было бы круто! Тоже нужно очень! ;)



а можно это дело както организовать в виде плагина?


можно

но как то все руки не доходят)


http://www.shopos.ru/forum/index.php?topic=3681.0



Не хочется открывать новую тему, эта выглядит наиболее подходящей для проблемы "Категории товаров на главной странице".

В файле index.php ищем строку

$category_depth = 'top';

и меняем на

$category_depth = 'nested';

При этом, не забываем о том, что редактирование чего-бы то ни было, кроме шаблонов, обязательно создаст проблемы при обновлении версии ShopOS, и внимательно читаем http://www.shopos.ru/forum/index.php?topic=2273.0;topicseen

2 Евгений: Может, есть смысл внести настройку в какой-то пункт админки следующей версии?
Готов проконтрибутить  ;)


Это работает. Как мне сделать что бы отображались подкатегории. у меня одна большая категория родительская. и в ней находятся много подкатегорий в дальнейшем планируется ещё родительские категории. Но сейчас мне надо именно, чтобы были подкатегории. Не подскажите как это сделать7


Источник



Copyright ShopOS