Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 29.12.2010, 14:40   #11
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

Не знаю, совсем по теме, или нет, но было здесь что-то схожее:
http://forum.typo3.biz/showthread.ph...t=%EC%E5%ED%FE
....
где была дана ссылка на страницу с фрагментами кода:
http://www.typo3wizard.com/en/snippe...-the-menu.html
Переведу суть:

Внешние ссылки и ярлыки непосредственно в меню
Для страниц типа "ссылка" и "внешний адрес" TYPO3 по умолчанию не делает непосредственных ссылок на целевые внешние страницы / страницы-ссылки.
Этот фрагмент кода подключает режимы CUR и ACT для страниц типа ссылка.
Все действие осуществляется при помощи объекта CASE в stdWrap элемента меню:
Цитата:
lib.menu=HMENU
lib.menu {
1=TMENU
1.wrap=<ul>|</ul>
1.NO {
# do not create a link here else there are double <a> tags
doNotLinkIt = 1
wrapItemAndSub=<li>|</li>
stdWrap.cObject = CASE
stdWrap.cObject {
key.field = doktype
default = TEXT
default {
field = title
typolink.parameter.field = uid
stdWrap.htmlSpecialChars = 1
}
# 4 = shortcut
4 = TEXT
4 {
field = title
typolink.parameter.field = shortcut
}
# 3 = external url
3 = TEXT
3 {
field = title
typolink.parameter.field = url
typolink.extTarget.field = target
}
}
}
}
Комментировать не буду, по-моему все понятно из кода...
Андрей Аксенов вне форума   Ответить с цитированием
Старый 29.12.2010, 15:07   #12
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Цитата:
Сообщение от Андрей Аксенов Посмотреть сообщение
Для страниц типа "ссылка" и "внешний адрес" TYPO3 по умолчанию не делает непосредственных ссылок на целевые внешние страницы / страницы-ссылки.
У меня для типа "ссылка" делает. Голый свежий TYPO3 + RealURL (да и старые тоже делают).

Для внешнего адреса конечно по умолчанию редирект.
dmartynenko вне форума   Ответить с цитированием
Старый 29.12.2010, 16:19   #13
Vornic
Senior Member
 
Аватар для Vornic
 
Регистрация: 22.08.2008
Адрес: Moldova
Сообщений: 212
Отправить сообщение для Vornic с помощью ICQ Отправить сообщение для Vornic с помощью Skype™
По умолчанию

Т.е., вы рекомендуете делать ссылку в меню "вручную", исключая её через excludeUidList ?
__________________
С Уважением, Владимир Ворническу.
Vornic вне форума   Ответить с цитированием
Старый 29.12.2010, 16:31   #14
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Не понял что вы имеете в виду под "вручную"?

Приведенный выше код всегда делает прямые ссылки с пунктов меню как для страниц типа "ссылка", так и для "внешнего адреса".
dmartynenko вне форума   Ответить с цитированием
Старый 29.12.2010, 17:21   #15
Vornic
Senior Member
 
Аватар для Vornic
 
Регистрация: 22.08.2008
Адрес: Moldova
Сообщений: 212
Отправить сообщение для Vornic с помощью ICQ Отправить сообщение для Vornic с помощью Skype™
По умолчанию

Не верно выразился, я имел ввиду через COA выстраивать меню, исключив первый пункт, добавляя его вручную через свойство TEXT (изврат не обращайте внимания).

Другой вопрос, как к элементам меню, которое предложил Андрей, добавить атрибут title. Конструкция ниже, от чего то не работает:
Цитата:
lib.mainMenu = HMENU
lib.mainMenu {
1=TMENU
1.wrap= <UL> | </TR> </UL>
1.NO {
# do not create a link here else there are double <a> tags
doNotLinkIt = 1
ATagTitle.field = description
wrapItemAndSub = <li> | </li>

stdWrap.cObject = CASE
stdWrap.cObject { ...
__________________
С Уважением, Владимир Ворническу.
Vornic вне форума   Ответить с цитированием
Старый 29.12.2010, 17:31   #16
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Попробуйте в 3-х местах добавить: typolink.title.field = description

doNotLinkIt = 1 запрещает меню самому формировать ссылки (ссылки формируются в stdWrap.cObject), поэтому ATagTitle не будет работь.
dmartynenko вне форума   Ответить с цитированием
Старый 29.12.2010, 17:33   #17
Vornic
Senior Member
 
Аватар для Vornic
 
Регистрация: 22.08.2008
Адрес: Moldova
Сообщений: 212
Отправить сообщение для Vornic с помощью ICQ Отправить сообщение для Vornic с помощью Skype™
По умолчанию

От... как я забыл про это свойство :-)
Спасибо Дмитрий! :-)
__________________
С Уважением, Владимир Ворническу.
Vornic вне форума   Ответить с цитированием
Старый 29.12.2010, 18:06   #18
Vornic
Senior Member
 
Аватар для Vornic
 
Регистрация: 22.08.2008
Адрес: Moldova
Сообщений: 212
Отправить сообщение для Vornic с помощью ICQ Отправить сообщение для Vornic с помощью Skype™
По умолчанию

Попробовал, видно не умею я готовить этименю, вот что мы имеем:

Цитата:
lib.mainMenu {
1=TMENU
1.wrap = <UL> | </UL>
1.NO {
# do not create a link here else there are double <a> tags
doNotLinkIt = 1
allWrap = <li> | </li>

stdWrap.cObject = CASE
stdWrap.cObject {
key.field = doktype
default = TEXT
default {
field = nav_title
typolink.parameter.field = uid
typolink.title.field = description
stdWrap.htmlSpecialChars = 1
}
# 4 = shortcut
4 = TEXT
4 {
field = title // nav_title
typolink.parameter.field = shortcut
typolink.title.field = description
}
# 3 = external url
3 = TEXT
3 {
field = nav_title
typolink.parameter.field = url
typolink.extTarget.field = target
typolink.title.field = description
}
}
}

1.ACT = 1
1.ACT {
# do not create a link here else there are double <a> tags
doNotLinkIt = 1
allWrap = <li> | </li>

stdWrap.cObject = CASE
stdWrap.cObject {
key.field = doktype
default = TEXT
default {
field = nav_title
typolink.parameter.field = uid
typolink.title.field = description
stdWrap.htmlSpecialChars = 1
typolink.ATagParams = class="active" tabindex = {register:count_MENUOBJ}

}
# 4 = shortcut
4 = TEXT
4 {
field = nav_title
typolink.parameter.field = shortcut
typolink.title.field = description
typolink.ATagParams.wrap = class="active" tabindex = {register:count_MENUOBJ}

ATagParams.insertData = 1
ATagParams = class="active" tabindex = {register:count_MENUOBJ}
doNotLinkIt = 1
stdWrap.wrap = <span class="ActNoLink"> | </span>

}
3 = TEXT
3 {
field = nav_title
typolink.parameter.field = url
typolink.extTarget.field = target
typolink.title.field = description
typolink.ATagParams.wrap = class="active" tabindex = {register:count_MENUOBJ}
}
}
}

}
... много кода, толку совсем нет. Страница "Ярлык" не получает класс "Active"? остальные нормально, не ясно как такую ссылку делать не ссылкой (doNotLinkIt), т.е. просто передать значение поля {field:nav_title}

Тот код который делает то что нужно, кроме того что первый пункт меню "ярлык", не получает класс "Active" :

Цитата:
lib.mainMenu1 = HMENU
lib.mainMenu1 {
entryLevel = 0
wrap = <UL> | </UL>

1 = TMENU
1.NO {
allWrap = <li> | </li>
ATagTitle.field = abstract // description // subtitle // title
}

1.ACT = 1
1.ACT {
allWrap = <li> | </li>
ATagParams.insertData = 1
ATagParams = class="active" tabindex = {register:count_MENUOBJ}
doNotLinkIt = 1
stdWrap.wrap = <span class="ActNoLink"> | </span>
}
}
__________________
С Уважением, Владимир Ворническу.
Vornic вне форума   Ответить с цитированием
Старый 30.12.2010, 15:10   #19
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

В код сильно не вдавался, но ИМХО ярлык никогда не сможет получить свойства из ACT. Так как ACT определяется по совпадению id страницы в меню с текущей страницей в FE. Для ярлыка они никогда не совпадут.

Выход - добавить свойство через JS для этого пункта меню при совпадении с URL.

Можно использовать TS условия для этих целей - если текущее id страницы равно нужному, то добавляем в шаблон JS код, который добавит нужный класс этому пункту меню.
dmartynenko вне форума   Ответить с цитированием
Старый 30.12.2010, 16:14   #20
Vornic
Senior Member
 
Аватар для Vornic
 
Регистрация: 22.08.2008
Адрес: Moldova
Сообщений: 212
Отправить сообщение для Vornic с помощью ICQ Отправить сообщение для Vornic с помощью Skype™
По умолчанию

Цитата:
ИМХО ярлык никогда не сможет получить свойства
По моему это касается внешних ссылок, с ярлыками у ACT проблем нет, ведь когда я делал ссылку корневой страницы не первую внутреннюю, то АCT отрабатывал, если сделать тоже самое внутри корня (т.е. страница ссылается на соседнюю), то АСТ перестаёт действовать - т.е., дело в иерархии?!
В общем, я оставил эту затею, слишком много усилий ради такого пустяка.

Решение задачи перешло в академический интерес - как сделать изящно. :-)
__________________
С Уважением, Владимир Ворническу.
Vornic вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
относительные ссылки в realUrl demav Общие вопросы 0 11.09.2009 17:08
Можно ли заставить яваскриптовский alert() писать по русски? Winston James Общие вопросы 7 12.05.2008 02:29
Как при помощи RealUrl реализовать ссылки с расширением .htm Manas Общие вопросы 1 01.02.2008 13:55
свой экстеншн и realurl dr_on Общие вопросы 2 23.12.2006 17:53
как экспортировать ссылки RealURL ? demav Общие вопросы 0 21.10.2006 00:35


Часовой пояс GMT +4, время: 14:27.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория