bomb

Иконки (изображения) вместо текста в меню на сайте (Wayfinder)


Недавно я столкнулся с проблемой - мне захотелось реализовать меню в MODx, но так, чтобы можно было использовать для отображения иконкиб картинки, а не текст. Выяснилось следующее - интеграция меню происходит посредством нескольких действий:

Вариант 1 (немного космический) -

Вызов сниппета в шаблоне страницы, выглядит это примерно так:

[!Wayfinder? &startId=`0` &rowTpl=`mam.RowTpl`!]

Мне было достаточно только одного шаблона для вывода изображений в меню. &rowTpl (mam.rowTpl) - шаблон пунктов меню у меня получился такой:

<div class="img">
<a href="[+wf.link+]">
<img src="assets/images/menu/menu[+wf.menuindex+].png" alt="[+wf.linktext+]" title="[+wf.linktext+]" height="24"  />
</a>
</div>
Мы создаем папку с нашими иконками. у меня это папка menu. Все иконки для Главной, Портфолио, Контактов называются menu1.png, menu2.png, menu3.png. 1, 2, 3 - это, как я понял, положение в меню.
  • Скачиваем и заменяем свой  wayfinder.inc.php на мой wayfinder.inc.php
  • После настройки чанков, файла wayfinder.inc.php , создания иконок и загрузки их в отдельную папку на сервер, мы можем приступать непосредственно к созданию страничек (или если вы их уже создали то в шаблоне страницы, в меню, можете указать вызов самого сниппета) и кличите Wayfinder!

Вариант 2 (более приземленный и он проще) -

Создаем чанк ulTpl (его будем вызывать так: &outerTlp=`ulTpl`) (он родитель, отвечает за формирования самого контейнера меню)

В него можно поместить любую конструкцию, начиная от стандартной:

<ul>
[+wf.wrapper+]
</ul>

 

заканчивая сложной (ну не совсем уж она и сложнаяCool)

<div class="menu" id="menu">
[+wf.wrapper+]
</div>

  wf.wrapper - отвечает как раз за вывод элементов списка и благодаря ему будет выводиться следующий чанк liTpl (&rowTpl=`liTpl`)

Чтобы вывести в нем картинку, создаем TV-параметр img-menu с типом ввода Image. Присваеваем TV-параметру шаблон, и на нужной нам страничке мы прикрепляем картинку, которая будет выводится в меню. В чанке же мы прописываем

<li[+wf.classes+]>
<a href="[+wf.linktext+]">[+wf.link+]</a><br/>
<img src="[+img-menu+]" />
</li>

Итоговый выход Wayfinder'a будет такой:

[!Wayfinder? &startId=`0` &rowTpl=`liTpl` &outerTlp=`ulTpl` !]

Вот и всё. Спасибо, что дочиталиWink


|

Текст комментария

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


Хм..прикольный урок. Но я столкнулся с более серьезной проблемой. Мне нужно почти весь список меню вывести текстом, а три последних пункта-иконками.(ну как обычно-карта сайта, домик и контакты)Вы случайно не посоветуете как это осуществить?
Написал(а) Роман, 19.11.2011 в 16.58 Ответить

Использовать можно 2 вызова Wayfinder и параметр &excludeDocs
Этому параметру прописываете id документов, исключаемых в меню.
Также следует выводить разные шаблоны &rowTpl и &outerTpl
Это все конечно если дерево сайтов должно выглядеть так
Первое -
Второе-
Третье-
Иконка -
Иконка-
Написал(а) admin, 20.11.2011 в 08.58 Ответить

Подскажите, пожалуйста (схожая задача!), если меню выглядит так:
- Первое
-Иконка
-Иконка
-Второе
-Иконка
-Третье..
То есть вперемежку - как лучше поступить?
Написал(а) Алиса, 03.12.2011 в 15.59 Ответить

Вам надо использовать параметр &innerRowTpl и ему уже привязывать шаблон для текущего ПОДменю
у Вас он будет например
&innerRowTpl=`yours_tpl`
в этом шаблоне вы создаете TV параметр.


&innerRowTpl:
Значение по умолчанию: false

Возможные плэйсхолдеры:

- место для указания используемого CSS-класса (включает class=" ")
- содержит только название CSS-класса (не включает class=" ")
- адрес (href) для ссылки
- текст для title ссылки
- текст названия ссылки
- место для вывода подменю
- вывод уникального идентификатора (id)
- вывод дополнительных атрибутов ссылки
- идентификатор документа для текущего элемента
-количество элементов в папке
- выводит значения поля описания.
- выводит значения поля интротекста
Написал(а) admin, 03.12.2011 в 17.10 Ответить

Вопрос может быть странный,нужно создать простое меню
Главная
О компании
Стоимость услуг
перед каждым пунктом должна быть иконка. Что у нас должно быть в ТV параметре вот этот вот код или я что-то не понимаю
<li><a href=""></a><br/><img src="" /></li>
Заранее благодарен за любую помощь.
Написал(а) Сергей, 02.03.2012 в 14.16 Ответить

Нужно использовать параметр при вызове сниппета &rowTpl
<li>
<a href=""><img src="" /></a><br/>

</li>
- и есть tv параметр тип ввода image, который присвоен нужному нам шаблону. Дальше дело css.

Делайте как по уроку и посмотрите документацию.
Написал(а) admin, 02.03.2012 в 16.15 Ответить

1. Создал чанк. конструкция <ul></ul>
2. ТV параметр код прописываю в поле возможные значения или в поле значения по умолчанию. Код прописываю такой <li><a href=""><img src="" /></a><br/></li>
<a href="" что я прописываю
<img src="/assets/templates/syko/images/bullet.gif" />- прописан путь до картинки это правильно или тут что-то другое. В доступе шаблонов выбираю свой шаблон? Заранее благодарен за любую помощь.
Написал(а) Сергей, 02.03.2012 в 16.43 Ответить

чанк конструкция <ul></ul>
Написал(а) Сергей, 02.03.2012 в 16.46 Ответить

Ответил на почту
Написал(а) admin, 02.03.2012 в 16.56 Ответить

Можешь еще раз на почту ответить а то вопросы остались. Заранее благодарен.
Написал(а) Сергей, 02.03.2012 в 17.56 Ответить

вверх вниз ?