Вывод категорий ishop в меню

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 24 ноября 2012 в 10:48
Решил сделать выбор категорий из магазина для пунктов меню.
Изменения затронули 3 файла.
www\admin\applets\menu.php строка ~ 570

в блок
  1. <select name="mode" id="linktype" style="width:100%" onchange="showMenuTarget()">
  2. <option value="link" <?php if (@$mod['linktype']=='link' || !isset($mod['mode'])) { echo 'selected'; }?>>Открыть ссылку</option>
  3. <option value="content" <?php if (@$mod['linktype']=='content') { echo 'selected'; }?>>Открыть статью</option>
  4. <option value="category" <?php if (@$mod['linktype']=='category') { echo 'selected'; }?>>Открыть раздел (список статей)</option>
  5. <option value="component" <?php if (@$mod['linktype']=='component') { echo 'selected'; }?>>Открыть компонент</option>
  6. <option value="blog" <?php if (@$mod['linktype']=='blog') { echo 'selected'; }?>>Открыть блог</option>
  7. <option value="uccat" <?php if (@$mod['linktype']=='uccat') { echo 'selected'; }?>>Открыть категорию каталога</option>
  8. <option value="pricecat" <?php if (@$mod['linktype']=='pricecat') { echo 'selected'; }?>>Открыть категорию прайс-листа</option>
  9. <option value="photoalbum" <?php if (@$mod['linktype']=='photoalbum') { echo 'selected'; }?>>Открыть альбом фотогалереи</option>
  10. </select>
добавляем новую опцию
  1. <option value="shopcat" <?php if (@$mod['linktype']=='shopcat') { echo 'selected="selected"'; }?>>Открыть категорию магазина</option>

www\admin\includes\cp.php строка ~ 1180

в блок
  1. switch($item['linktype']){
  2. case 'link': $html = '<span id="menutype"><a href="'.$item['link'].'">Cсылка</a></span> - '.$item['linkid'];
  3. break;
  4. case 'component': $html = '<span id="menutype"><a href="'.$item['link'].'">Компонент</a></span> - '.$inDB->get_field('cms_components', "link='".$item['linkid']."'", 'title');
  5. break;
  6. case 'content': $html = '<span id="menutype"><a href="'.$item['link'].'">Статья</a></span> - '.$inDB->get_field('cms_content', 'id='.$item['linkid'], 'title');
  7. break;
  8. case 'category': $html = '<span id="menutype"><a href="'.$item['link'].'">Раздел</a></span> - '.$inDB->get_field('cms_category', 'id='.$item['linkid'], 'title');
  9. break;
  10. case 'pricecat': $html = '<span id="menutype"><a href="'.$item['link'].'">Прайс</a></span> - '.$inDB->get_field('cms_price_cats', 'id='.$item['linkid'], 'title');
  11. break;
  12. case 'uccat': $html = '<span id="menutype"><a href="'.$item['link'].'">Каталог</a></span> - '.$inDB->get_field('cms_uc_cats', 'id='.$item['linkid'], 'title');
  13. break;
  14. case 'blog': $html = '<span id="menutype"><a href="'.$item['link'].'">Блог</a></span> - '.$inDB->get_field('cms_blogs', 'id='.$item['linkid'], 'title');
  15. break;
  16. case 'photoalbum': $html = '<span id="menutype"><a href="'.$item['link'].'">Фотоальбом</a></span> - '.$inDB->get_field('cms_photo_albums', 'id='.$item['linkid'], 'title');
  17. break;
  18.  
  19. }
вставляем
  1. case 'shopcat': $html = '<span id="menutype"><a href="'.$item['link'].'">Магазин</a></span> - '.$inDB->get_field('cms_shop_cats', 'id='.$item['linkid'], 'title');
  2. break;
в файл www\core\cms.php строка ~ 2420

после
  1. if ($linktype=='uccat'){
  2. $menulink = '/catalog/'.$linkid;
  3. }
вставляем
  1. if ($linktype=='shopcat'){
  2. $menulink = $inDB->get_field('cms_shop_cats', "id={$linkid}", 'seolink');
  3. $menulink = '/shop/'.$menulink;
  4. }
Вот в принципе и все, теперь при создании пунктов меню можно вставлять категории магазина.

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

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

Проблема решена пересозданиме всех пунктов меню по порядку.
Данная проблема возможно была из-за того, что дочерние пункты меню имели id меньший чем тот в который они входили, а в функции ядра идет переворот массива что мешало правильно обработать пункты меню.
#2 24 ноября 2012 в 13:25
теперь все работает )
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.