где можно отредактировать меню?

Тема в разделе "WebAsyst", создана пользователем jobantar, 28 янв 2011.

Модераторы: mdss
  1. jobantar

    jobantar Создатель

    Регистр.:
    25 янв 2011
    Сообщения:
    47
    Симпатии:
    1
    Доброго всем дня.
    Раньше в shop-script меню писалось в index.tpl и было видно проверку зарегин чел или нет типо
    {if ($log ne "")} <a href="index.php?user_details=yes"> {$smarty.const.MY_ACCOUNT_LINK} </a> {else} <a href="index.php?register=yes"> {$smarty.const.REGISTER_LINK} </a> {/if}
    и соответственно можно было легко добавлять или убирать необходимые линки.
    А где посмотреть такое в вебасисте? Требуется подредактировать меню, а не вставлять исходную "cpt_divisions_navigation"
     
  2. Djutan

    Djutan Создатель

    Регистр.:
    29 янв 2011
    Сообщения:
    21
    Симпатии:
    8
    Все зависит от того, какие изменения в меню вы хотите внести. Непосредственно за вывод главного меню магазина отвечает метод cpt_divisions_navigation() в файле class.test.php.
     
  3. jobantar

    jobantar Создатель

    Регистр.:
    25 янв 2011
    Сообщения:
    47
    Симпатии:
    1
    Посмотрел файл class.test.php не разобрался :( Как можно добавить в этот блок навигации какой нибудь линк необходимый мне, которого нету в стандартном, так чтобы шло одним блоком, не добавляя "произвольный код" в конструкторе?
     
  4. Djutan

    Djutan Создатель

    Регистр.:
    29 янв 2011
    Сообщения:
    21
    Симпатии:
    8
    Тут нужно понимать, что метод для отображения главного меню задумывался разработчиками только как навигация по неким стандартным страницам. Если стоит задача сделать смешанное меню из стандартных и кастомных линков, то нет другого варианта, кроме как чередовать вызов дирректив смарти для главного меню (конкретно для тех пунктов, которые вам нужны) с вызовом дирректив, допустим, для вызова дополнительных страниц ({cpt_divisions_navigation divisions='29:13'}{cpt_auxpages_navigation select_pages='selected' auxpages='1:2:3:4'}{cpt_divisions_navigation divisions='56'}) и т.д. Надеюсь смысл понятен.
    Далее корректируем стили чтобы комбинированный список смотрелся как одно меню.
    Возможно будет удобнее внести небольшие изменения в код, чтобы отключать по необходимости дефолтные оборачивающие дивы.
     
  5. jobantar

    jobantar Создатель

    Регистр.:
    25 янв 2011
    Сообщения:
    47
    Симпатии:
    1
    Я так понял, что внутрь стандартной навигации залезть трудно без знаний php? дополнительные линки придется добавлять только произвольным хтмлом? и потом все подгонять и выравнивать CSS-ом?
     
  6. Djutan

    Djutan Создатель

    Регистр.:
    29 янв 2011
    Сообщения:
    21
    Симпатии:
    8
    Можно залезть внутрь стандартной навигации без знаний пхп. Но стандартная навигация предназначена для вызова компонентов магазина. Т.е. если вы хотите использовать стандартную навигацию для вывода какой-то новой своей страницы, нужно подготовить шаблон, положить его в папку frontend, потом при помощи phpMyadmin нужно будет сделать новую запись в таблице SC_divisions, где необходимо заполнить след. поля:
    xID - тот самый номер, который указывается в виде параметра divisions='XX' диррективы смарти в шаблоне.
    xName - id названия, например pgn_brandlistaction. Под таким id нужно создать запись в админке в разделе Языки и перевод. Это название и есть имя нового пункта меню.
    xUnicKey - ukey по которому будет генерироваться линк к новому разделу, например brandlist.
    xPriority - приоритет по которому определяется порядок вывода нового раздела по отношению к существующим. Посмотрите этот параметр у других разделов и определите необходимый приоритет для данного раздела.
    xTemplate - название файла шаблона, про который я писал выше (должен находиться в папке frontend).
    С остальными полями я не разбирался, копировал в них значения по аналогии с другими разделами или оставлял пустыми. После этого можете указывать этот раздел в ряде других в диррективе {cpt_divisions_navigation divisions='29:XX'} - пункт появится в меню и по нему будет вызываться созданный вами шаблон.
     
    filosofer, one_man и jobantar нравится это.
  7. olga2011

    olga2011 Писатель

    Регистр.:
    15 ноя 2012
    Сообщения:
    1
    Симпатии:
    1
    Тема неактуальна, но может кому и пригодится, так как сама пыталась найти ответ на тот же вопрос и ничего подходящего нет а оказалось
    все намного проще.. открываем файл class.test.php, находим функцию function cpt_divisions_navigation() и там соответственно вывод print '<ul class="'.($local_settings['view'] == 'horizontal'?'horizontal':'vertical').'">'; и т.д.. и в кавычки вписываем свои дополнительные линки, например

    print '<ul class="'.($local_settings['view'] == 'horizontal'?'horizontal':'vertical').'">';
    foreach ($pages as $page){
    if(!in_array($page['id'], $allowed_pages) && !(isset($allowed_pages[0]) && $allowed_pages[0]=='mobile'))continue;

    print '<li><a href="'.xHtmlSetQuery($page['ukey']?'?ukey='.$page['ukey']:'?did='.$page['id']).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
    }
    print '<li ><a href="#">Тут будет ещё одна ссылка</a></li></ul>';
    }



    ... и всё
     
    NaJOrT нравится это.
  8. NaJOrT

    NaJOrT Постоялец

    Регистр.:
    30 мар 2006
    Сообщения:
    130
    Симпатии:
    13
    Спасибо, olga2011.

    А подскажите, как теперь поставить ссылку на вновь созданную информационную страницу?