netcat 3.0 extra версия 3.0
Extra Customised
Проект: CMS NetCat
Пользователь: Гость (гостевой доступ)
вход в систему вход в систему
Инструменты Отчеты Техническая поддержка Поиск Блог про NetCat
Обновления системы: NetCat 3Системные сообщения: 109928
Техподдержка

Документация

Техническая поддержка > Документация > Руководство разработчика > Примеры реализации нестандартных задач

Примеры реализации нестандартных задач

В этом разделе приведены некоторые приемы управления структурой, которые можно реализовать при помощи системы NetCat.

  1. Сетевая структура сайта
    Сетевой тип структуры сайта отличается от иерархического тем, что каждый элемент структуры (раздел) может иметь более одного родительского раздела. Например, подраздел <Зарядные устройства для мобильных телефонов> (ключевое слово <zaryad>) в каталоге товаров (<catalog>) должен относиться к разделам <Мобильные телефоны> (<mobile>) и <Аксессуары> (<other>). Для реализации этой задачи нужно создать раздел <Зарядные устройства для мобильных телефонов> в каком-то одном из разделов, например, в <Мобильных телефонах>. При этом относительный адрес раздела будет иметь вид /catalog/mobile/zaryad/, и раздел <Зарядные:> будет выводиться в списке подразделов раздела <Мобильные:>. После этого необходимо создать символический раздел <Зарядные:> в разделе <Аксессуары>, например, с таким же ключевым словом, указав как внешний URL. Таким образом, раздел <Зарядные:> также будет находиться в разделе <Аксессуары>, но ссылаться будет на /catalog/mobile/zaryad/.
  2. Неоднотипный вывод пунктов меню одного уровня
    Пункты меню обычно выводятся по одному шаблону (точнее, как правило, используется один шаблон для активного пункта меню - выделение цветом или шрифтом - и один для неактивных пунктов). Тем не менее, при помощи системы NetCat можно организовать разнотипный вывод пунктов меню. Ниже приведено несколько примеров реализации таких задач.
    1. Выделение разных пунктов разными цветами Для реализации такого приема необходимо:
      • добавить в системную таблицу <Разделы> новое поле,например, MenuColor, не обязательное, не наследуемое;
      • установить значения этого поля для тех разделов, выделение которых другими цветами необходимо, например, <magenta>, <#cccccc>;
      • в макете установить цвет ссылок по умолчанию при помощи стандартных средств, например, таблицы стилей или атрибутов тега body;
      • в настройках макета установить форматы вывода активного и неактивного элементов навигации с использованием этого поля, например, так:
      • $browse_sub[2][active] = "<a href=%URL><span color=%MenuColor>%NAME</span></a>".

      В этом случае для тех разделов, у которых указан цвет "red", будет выведен тег <span color=red>, а для тех, у которых поле пусто, тег <span color=>, т.е. будет применен цвет по умолчанию.

    2. Некоторые пункты меню должны открываться в новом окне
      Реализуется аналогично предыдущему пункту: создается поле в таблице <Разделы> (например, Target), и в нужных разделах оно заполняется значением <_blank>. В настройках макета формат вывода элементов навигации должен выглядеть примерно следующим образом:

      $browse_sub[2][active] = "<a href=%URL target=%Target>%NAME</a>".

    3. Каждому пункту может соответствовать свой значок (<иконка>)
      В таблицах <Разделы> и <Сайты> создается поле (например, Icon) типа File, наследуемое. Для каждого раздела рисуется иконка и закачивается через стандартный интерфейс изменения настроек раздела. Целесообразно также закачать некоторые иконки по умолчанию через интерфейс изменения настроек сайта. Это следует сделать для тех случаев, когда раздел создан, а значка еще нет. Дальнейшие действия зависят от того, где именно применяется значок: в меню (например, рядом с каждой ссылкой на раздел первого уровня меню должен стоять значок) или в другой области раздела (т.е. на любой странице должен быть только один значок - соответствующий данному разделу). В первом случае изменяем настройки макета примерно так:

      $browse_sub[2][active] = "<a href=%URL><img src=%Icon width=10 height=10 alt='%NAME' border=0>  %NAME</a>".

      Во втором случае нужно включить в нужное место страницы (футера или хедера) выражение примерно следующего содержания: <img src=".$current_sub[Icon]." width=100 height=200>
  3. Использование нескольких меню первого уровня
    Строго говоря, использовать несколько меню первого уровня нельзя, однако такую ситуацию можно сымитировать. Пример: одно меню, располагающееся по вертикали, должно содержать оглавление каталога продукции, а второе, горизонтальное - оглавление <корпоративного> раздела - вакансии, контакты, история и пр. Для решения этой задачи необходимо:
    1. Ввести одну из этих двух веток структуры в отдельный раздел первого уровня (например, <Продукция>), а вторую (корпоративную) - оставить в виде разделов первого уровня. Таким образом, получится, что в списке разделов первого уровня, кроме <Вакансий>, <Истории> и пр., появится раздел <Продукция>.
    2. В макете страницы (обычно, в хедере) указать как меню первого уровня (".s_browse_level(0, $browse_sub[0]).", где в массиве $browse_sub[0] хранится шаблон для вывода меню первого уровня), так и навигацию по разделу <Продукция> (".s_browse_sub(16, $browse_sub[2]).", где 16 - номер раздела <Продукция>, а в массиве $browse_sub[2] хранится шаблон для вывода оглавления каталога товаров).
    3. Выключить раздел <Продукция>, чтобы он не показывался в <корпоративном> меню.
  4. Дублирование меню любого уровня (обычно первого) внизу страницы в другом оформлении
    Эта задача реализуется путем вызова функции s_browse_level() два раза - в футере и хедере страницы: - В хедере: ".s_browse_level(0, $browse_sub[0]).", где в массиве $browse_sub[0] хранится шаблон вывода меню для хедера; - В футере: ".s_browse_level(0, $browse_sub[1])." , где в массиве $browse_sub[1] хранится шаблон вывода меню для футера.
  5. Меню сайта в виде выпадающих списков (тег <select>)
    Для реализации данного вида меню нужно только соответствующим образом настроить вывод меню (например, первого уровня) в настройках макета:
      $browse_sub[prefix] = "<form action='' name=navigat method=get onsubmit='this.document.location.href=this.navigation.value; return false;'><select size=1 name=navigation>";
      $browse_sub[suffix] = "</select><input type=submit value=Перейти></form>";
      $browse_sub[active] = "";
      $browse_sub[unactive] = "";
      $browse_sub[divider] = "";
  6. Создание <мастеров>, экскурсий и пр. (функционалов, требующих последовательного перехода по некоторым разделам)
    Для реализации мастера такого вида следует:
      - добавить в таблицу <Раздел> ненаследуемое поле (например, NextLink);
      - в нужном месте макета (хедера или футера) внести примерно следующее выражение:

      ".opt($current_sub[NextLink], "<a href=".$current_sub[NextLink].">Далее</a>")."

      В приведенном примере ссылка <Далее> будет появляться только в тех разделах, в которых это поле заполнено.

    Другие советы и приемы по использованию NetCat Вы можете увидеть на сайте netcat.ru в разделе <Советы и приемы>.



    Рейтинг: 0

    Для оценки необходимо авторизоваться.

    Комментарии: 0

    Для добавления комментария необходимо авторизоваться.

© 2012 CND Group | О программе | Карта сайта поддержка NetCat (351) 725-03-89
icq 161143544 support@resident.com.ru
Зарегистрироваться
Логин:
Пароль:
Забыли пароль?