Навигация (часть-1) - за два клика к любому материалу сайта.

После ознакомления со статьёй "Несколько примеров многоаспектных навигационных систем" стало интересно, можно ли создать что-то подобное на CMS Друпал со стандартным набором модулей. Так как иерархическая система навигации здесь не используется, пробуем создать многоаспектную систему навигации используя систему описанную в "Таксономия на практике или всё по ящечкам." Речь идёт о классификации геометрических фигур по трём признакам - размеру, форме, цвету. Для каждого из этих признаков создавался словарь-категория и в каждом из них соответствующие термины, определяющие геометрические фигуры. База данных с этой и ещё одной системой классификации доступна для скачивания на странице "Учебная база данных CMS Drupal с информацией о фигурах." Для начала и удобства определяем соответствие ссылок на термины и названиями этих терминов и составляем список. Наиболее проще это сделать перейдя на страницу >> администрировать >> категории и напротив интересующей нас категории нажать на ссылку Вывести список выражений , после чего достаточно просто навести мышкой на название термина-выражения и скопировать ссылку. То есть исходными данными будут: Словарь-категория: Размер
  • http ://figures.ru/taxonomy/term/31 - Большие
  • http ://figures.ru/taxonomy/term/33 - Маленькие
  • http ://figures.ru/taxonomy/term/32 - Средние
Словарь-категория: Цвет
  • http ://figures.ru/taxonomy/term/39 - Зелёные
  • http ://figures.ru/taxonomy/term/37 - Красные
  • http ://figures.ru/taxonomy/term/38 - Синие
Словарь-категория: Форма
  • http ://figures.ru/taxonomy/term/34 - Круглые
  • http ://figures.ru/taxonomy/term/36 - Пентагон
  • http ://figures.ru/taxonomy/term/35 - Треугольные
Ещё нам понадобятся правила комбинации терминов: taxonomy/term/1+2 - будут выводиться все материалы, принадлежащие терминам, имеющим пути-ссылки taxonomy/term/1 и taxonomy/term/2 (суммирование) taxonomy/term/1,2 - будут выводиться только те материалы, которые принадлежат и термину, имеющему путь-ссылку taxonomy/term/1 и термину, имеющему путь-ссылку taxonomy/term/2 (пересечение). taxonomy/term/1/1 - будут выводиться все материалы, принадлежащие термину, имеющему путь-ссылку taxonomy/term/1 и материалы на один уровень ниже. Если есть категория и у неё подкатегории, которые также имеют подкатегории, то выводиться будут материалы категории и материалы подкатегорий первого уровня. Материалы подкатегорий второго и следующих уровней выводиться не будут. taxonomy/term/1/all - будут выводиться все материалы, принадлежащие термину, имеющему путь-ссылку taxonomy/term/1 и материалы, принадлежащие всем подкатегориям данного термина. Это были исходные данные. Теперь ставим задачку. Необходимо создать систему навигации по сайту, обеспечивающую выбор с максимальной детализацией и независимо от выбора начального критерия. То есть, если необходимы материалы по фигурам среднего размера, красного цвета и круглой формы, то навигация должна обеспечивать переход к этим материалам за два клика мышью, не зависимо от того, откуда этот поиск начнётся, с размера ли, с цвета ли, с формы ли. Три словаря-категории, предназначенные для классификации информации, распределяют эту информацию как бы в трёхмерном пространстве. Три измерения - три словаря-категории. Визуальное представление такой системы описано в "Таксономия на практике или всё по ящечкам." и выглядит она в виде куба (немного изменённый представлен на рисунке ниже). Куб - это объёмная фигура и представить её на плоскости, да ещё в виде навигации довольно сложно. А здесь необходимо создать систему, позволяющую перемещаться в этом кубе. Причём в одно и то-же место в этом кубе мы должны попадать с какой бы стороны не начинали движение. Представим что этот куб является трёхэтажным домом у которого этажи имеют названия соответствующие размеру фигур. Этаж средних фигур, этаж маленьких фигур и этаж больших фигур. Вдобавок у этого дома имеются три подъезда с лицевой стороны и три подъезда сбоку. С лицевой стороны подъезды имеют названия соответствуюшие цвету, а подъезды сбоку имеют названия соответствующие форме фигур. Так как дом необычный, то в него можно попасть не только через подъезды но и через любой этаж. То есть можно сразу попасть на третий этаж или второй. Если заходим в подъезд, то видим всё что находится в этом подъезде и не видим что твориться в соседнем. Можно сказать что при входе в подъезд мы можем видеть только вперёд, назад, вверх и вниз (в вертикальной плоскости). То же относиться и к этажам, но видеть можем только в горизонтальной плоскости, то есть влево, вправо, вперёд и назад. Теперь, допустим, нам надо посмотреть что находится в синем-треугольном-маленьком помещении, в центре дома. Туда можно попасть по разному. Можно начать с синего подъезда и мы увидим ВСЕ синие фигуры, затем сделать уточнение, что нас интересуют только треугольные и тогда видим фигуры, находящиеся в столбике (на ВСЕХ этажах) на пересечении синих и треугольных фигур. И последнее уточнение - это выбор этажа. Нас интересует этаж с маленькими фигурами. В итоге результат находиться на пересечении двух подъездов и этажа. Можно начать с треугольного подъезда или с этажа маленьких фигур. Но во всех случаях необходимо обеспечить уточнение при выборе следующей характеристики фигуры. Если этого уточнения не обеспечивать, то блуждать по дому можно сколько угодно. Попав в синий подъезд мы видим ВСЕ синие фигуры. Желая уточнить, выбираем треугольные и попадаем в треугольный подъезд, где видим ВСЕ треугольные фигуры. Если выбираем какой либо размер, то попадаем на этаж, где видим ВСЕ фигуры данного размера. Если нет уточнения, то мы просто будем перемещатся из одной плоскости в другую, из плоскости цвета в плоскость формы, из плоскости формы в плоскость размера и так далее в разных комбинациях. Для того чтобы обеспечить уточнение (пересечение плоскостей), используем возможность правила комбинации taxonomy/term/1,2 (пересечение) . При его использовании будут выводиться только те материалы, которые принадлежат и термину, имеющему путь-ссылку taxonomy/term/1 и термину, имеющему путь-ссылку taxonomy/term/2. Условимся, что на первом месте будет стоять ссылка для которой производиться уточнение. Если, например, уточнение производиться по большим фигурам, то на первом месте должна стоять цифра - 31. На втором месте ставим цифру, соответствующую термину, по которому происходит уточнение. Это простое правило уменьшит количество ошибок и поможет, если придётся вносить изменения в будущем. В результате получаем уточнения для больших фигур: Уточняем большие фигуры по цвету
  • http ://figures.ru/taxonomy/term/31,39 - Большие-Зелёные
  • http ://figures.ru/taxonomy/term/31,37 - Большие-Красные
  • http ://figures.ru/taxonomy/term/31,38 - Большие-Синие
Уточняем большие фигуры по форме
  • http ://figures.ru/taxonomy/term/31,34 - Большие-Круглые
  • http ://figures.ru/taxonomy/term/31,36 - Большие-Пентагон
  • http ://figures.ru/taxonomy/term/31,35 - Большие-Треугольные
Теперь обеспечен выбор фигур по двум признакам, пока это только для больших фигур. Но необходима максимальная детализация, то есть выбор фигур по трём признакам. Используя то же правило и аналогично рассуждая получаем: Уточняем большие фигуры по цвету и форме
  • http ://figures.ru/taxonomy/term/31,39,34 - Большие-Зелёные-Круглые
  • http ://figures.ru/taxonomy/term/31,39,36 - Большие-Зелёные-Пентагон
  • http ://figures.ru/taxonomy/term/31,39,35 - Большие-Зелёные-Треугольные
  • http ://figures.ru/taxonomy/term/31,37,34 - Большие-Красные-Круглые
  • http ://figures.ru/taxonomy/term/31,37,36 - Большие-Красные-Пентагон
  • http ://figures.ru/taxonomy/term/31,37,35 - Большие-Красные-Треугольные
  • http ://figures.ru/taxonomy/term/31,38,34 - Большие-Синие-Круглые
  • http ://figures.ru/taxonomy/term/31,38,36 - Большие-Синие-Пентагон
  • http ://figures.ru/taxonomy/term/31,38,35 - Большие-Синие-Треугольные
Теперь, если мы начнём поиск с фигур большого размера, до нужной информации можно добраться за два клика мышью. Проделав тоже самое для фигур среднего и маленького размера, фигур разных цветов и формы мы обеспечиваем доступ к любой информации о фигурах за два клика. Как и куда разместить эту навигацию? Можно создать страницу и поместить всё туда. Отметить у неё "Прикрепить наверху списка" и поместить её в ту категорию-термин, где будет производиться детализация. Можно создать блок и поместить всё туда. Более подробно в следующей части.

Январь 2007
http://www.firsthand.ru/

Тематика: