Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   valCooL (http://forum.typo3.ru/showthread.php?t=6130)

valCooL 09.04.2008 18:52

valCooL
 
Здравствуйте бояре! :)

В Типо3 я абсолютный ньюби, посему прошу вашей помощи, ибо проект горит, а знаний не хватает:

|------------Страница--------|
|Горизонтальное \ меню \ нижнего \ уровня
|------------------------------|
|Внутреннее
|Вертикальное
|Меню
|Текущей ветки структуры
|__________________________|


Собственно задачка - есть древовидная структура, на нижнем уровне которой куча разделов сайта, которые в последствии ветвятся.
КАК мне организовать два меню, чтобы

1. ГОРИЗОНТАЛЬНОЕ ВЕРХНЕЕ меню показывало всегда нулевой уровень
2. ВЕРТИКАЛЬНОЕ ВНУТРЕННЕЕ меню показывало подпункты текушей структуры и ветки выше по дереву на уровень.

С моими знаниями я лишь ветку сделать могу по примеру:) Надеюсь на вашу отзыввчивость

void 09.04.2008 19:48

Ну делаете два HMENU со .special = directory
В первом будет
lib.menu1 = HMENU
lib.menu1.special = directory
lib.menu1.special.data = leveluid:0

А во втором будет

lib.menu1 = HMENU
lib.menu1.special = directory
lib.menu1.special.data = leveluid:-2

Как-то так...

valCooL 09.04.2008 20:06

Спасибо за быструю реакцию, попробую таким макаром.

Тут походу дела сформулировался другой вопрос:

lib.menu_1 = HMENU
lib.menu_1.1 = TMENU
lib.menu_1.1.target = page
lib.menu_1.1 {
ATagParams = class="menuStyle"
NO.allWrap = & #124; |
}

Это в моем видении простая последовательная менюшка 1-го уровня вида
Раз | Два | три

В этом случае у меня не работает ATagParams а мне чрезвычайно важно для верной верстки указать класс в тэге A. Развожу руками! :(

pomotom 09.04.2008 21:49

NO.ATagParams !

shuman 10.04.2008 09:32

Не по теме - но черточки-разделители | лучше реализовать через CSS по той простой причине что последнюю черточку можно убрать используя last-child, а не склеивать 2 меню в TS или использовать option-split. Last-child реализован в IE 6-7 и Mozilla

Пример (см. сайт america.gov - меню внизу):

#footer ul li {
border-right:1px solid #CCCCCC;
display:inline;
margin-right:8px;
padding-right:14px;
}

#footer ul li:last-child {
border-right:0pt none;
margin-right:0pt;
padding-right:0pt;
}

Вопрос тоже не по теме - america.gov судя по всему сделан на opensorce движке WebGUI - какие отзывы о нем никто не знает?

pomotom 10.04.2008 12:26

1. Для работы нужен мод_перл с нестандартными модулями
2. Освоить Тайпо3 оказалось лично мне проще

Grank 10.04.2008 13:20

Цитата:

Сообщение от shuman (Сообщение 18386)
Не по теме - но черточки-разделители | лучше реализовать через CSS по той простой причине что последнюю черточку можно убрать используя last-child, а не склеивать 2 меню в TS или использовать option-split. Last-child реализован в IE 6-7 и Mozilla

А ты смотрел в ИЕ7?
Кроме того в Opera9 не работает.

pomotom 10.04.2008 14:22

в семерке все прекрасно работает

valCooL 10.04.2008 16:10

Всем кто откликнулся, спасибо!
Еще не дошел до этого, но уже сформулировался вопрос:

В теле документа в определенном месте нужно выводить заглавие - название текущего подуровня меню. Я так понимаю что это можно сделать через ТСкрипт объект? Как это можно реализовать?
Задача усложняется, над меню в том же документе надо вывести название РОДИТЕЛЬСКОГО раздела. Тут я совсем руками развожу.:confused:

Grank 10.04.2008 17:05

Вложений: 1
Цитата:

Сообщение от pomotom (Сообщение 18397)
в семерке все прекрасно работает

См. вложение. Вопросы есть?

pomotom 10.04.2008 18:02

Вложений: 1
есть. IE7 поставлен чисто или multipleIEs? Обновлен?http://forum.typo3.biz/attachment.ph...1&d=1207832190

7.0.5730.11

valCooL 10.04.2008 18:15

Меню заработало, спасибо!
Только для верхнеуровневого меню ненадо никакой директори и левел, ибо тогда он тоже начинает показывать структуру текущего узла, а мне надо только самый нижний уровень всего сайта :)

Кто нибудь поможет с названиями текущего и предыдущего узла?:) В моем прошлом посте описана проблема. В референсе ничего не нашел путного :(
П.С. Использую TV

UPD.
Рано радовался. Меню как и должно, показывается для нулевого уровня верхнее, для первого - боковое. НО, это только в корне сайта. Если я кликну на любой пункт бокового меню 1-го уровня, то перейдя на этот уровень у меня слева будет рисоваться меню уже 2-го уровня, а мне там надо 1-ый уровень, всегда. Как это исправить? Как ограничить это меню только 1-ым уровнем текущей ветки?

Код:

lib.menu_2 = HMENU
lib.menu_2.special = directory
lib.menu_2.special.data = leveluid:1
lib.menu_2.1 = TMENU
lib.menu_2.1 {
  NO.ATagParams = class="menuStyle2" style="text-transform:uppercase"
  NO.allWrap =  | <br>
}


Grank 10.04.2008 18:37

Цитата:

Сообщение от pomotom (Сообщение 18406)
есть. IE7 поставлен чисто или multipleIEs? Обновлен?http://forum.typo3.biz/attachment.ph...1&d=1207832190

7.0.5730.11

Я приношу извинения автору ветки, т.к. обсуждение идетсовсем в другом направлении.

to pomotom: multipleIEs - ie5.5, ie.6.
Я не собираюсь убеждать вас в том что не надо использовать last-child.
Я лишь указал, на то что не корректно отображеатся в 7 ИЕ + Opera9.
Теперь добавляю сюда и Safari 3.0.3 под вин.
Использовать или нет дело каждого.

valCooL 10.04.2008 18:45

Вот где уже оффтоперы :)
Втречный вопрос Grank: Каким макаром можно избежать последнего разделителя не используя цсс?

shuman 10.04.2008 18:54

надо использовать optionsplit - сразу код не подскажу

либо создать два TMENU - в первом исключить последний пункт через excludeList
а во втором через поле list указать это последний

valCooL 10.04.2008 19:08

Второй способ проблемен, ибо использую TV и в датасурсе у меня код для одного объекта tscript, никак не хочется править, чтобы там было 2 меню.

И кстати, кито нибудь мне с заглавиями и фиксированными меню помочь может?:) ААААА, я в панике!

Grank 10.04.2008 19:16

Цитата:

Сообщение от valCooL (Сообщение 18409)
Вот где уже оффтоперы :)
Втречный вопрос Grank: Каким макаром можно избежать последнего разделителя не используя цсс?

NO.allWrap = |<br /> |*| |<br /> |*| |

valCooL 10.04.2008 19:19

первое | меню | у | меня | горизонтальное

непонял зачем бр-ки)

Grank 10.04.2008 19:22

Цитата:

Сообщение от valCooL (Сообщение 18414)
первое | меню | у | меня | горизонтальное

непонял зачем бр-ки)

Что ты имеешь ввиду под разделителем?

Grank 10.04.2008 19:24

замени брки на то чем хочешь разделть (хочешь & #124;, замени на него) - это пример просто

shuman 10.04.2008 19:25

какие проблемы
создать COA и в нем прописать два TMENU
lib.menu=COA
lib.menu {
1=HMENU
1 {
excludeList=15 #last item
1 = TMENU
1 {
# здесь стили и atag прописываем с черточками
}
}
2=HMENU
2 {
special=list
special.value=15 #last item
1 = TMENU
1 {
# здесь стили и atag прописываем без черточки
}
}
}

valCooL 10.04.2008 19:25

А, понял, Огромное спасибо)
Через allWrap получилось :) Надо будет еще запомнить про COA

так а кто нибудь знает как мне вывести в нужном месте документа ЗАГЛАВИЕ документа, а также родительского элемента, при условии использования TV?


UPD нагуглил ответ
Код:

lib.leveltitle = COA
lib.leveltitle {
  10 = HTML
  10 {
    value.data = leveltitle:1
    value.case = upper
  }
}

lib.subleveltitle = COA
lib.subleveltitle {
  10 = HTML
  10 {
    value.data = page:title
  }
}

А потом уже юзаем эти тс-объекты в шаблоне тв
lib.leveltitle - заглавие над меню.
lib.subleveltitle - заглавие страницы.

Кстати, мне надо выводить их в верхнем регистре, value.case = upper не работает, как быть?

valCooL 10.04.2008 20:02

итак, на данный момент у меня две проблемы:

1. Необходим верхний регистр в ХТМЛ объектах в прошлом посте, свойство value.case = upper не работает.

2. Меню слева НА ЛЮБОМ УРОВНЕ должно отображать первый уровень текущей ветки.
Решение 2 нашел:
Код:

lib.menu_2 = HMENU
lib.menu_2.entryLevel = 1
lib.menu_2.1 = TMENU
lib.menu_2.1 {
  NO.ATagParams = class="menuStyle2" style="text-transform:uppercase"
  NO.allWrap =  | <br>
}


valCooL 10.04.2008 23:11

Мммммммм, а как вывести ССЫЛКУ на текущий уровень, а также на родительский? И чтобы юзабельно в TV, тоесть через объектик.

Grank 10.04.2008 23:16

Цитата:

Сообщение от shuman (Сообщение 18417)
какие проблемы
создать COA и в нем прописать два TMENU
lib.menu=COA
lib.menu {
1=HMENU
1 {
excludeList=15 #last item
1 = TMENU
1 {
# здесь стили и atag прописываем с черточками
}
}
2=HMENU
2 {
special=list
special.value=15 #last item
1 = TMENU
1 {
# здесь стили и atag прописываем без черточки
}
}
}

Ребята что за извращения? ;-)
Можно еще и через php скрипт выводить - вопрос только зачем.

void 11.04.2008 03:31

Цитата:

Сообщение от valCooL (Сообщение 18422)
Мммммммм, а как вывести ССЫЛКУ на текущий уровень, а также на родительский? И чтобы юзабельно в TV, тоесть через объектик.

lib.smth = TEXT
lib.smth.typolink.parameter.data = leveluid:0
и
lib.smth.typolink.parameter.data = leveluid:-1
соответственно.

shuman 11.04.2008 03:34

Цитата:

Сообщение от Grank (Сообщение 18423)
Ребята что за извращения? ;-)
Можно еще и через php скрипт выводить - вопрос только зачем.

в том то и ценность HMENU что при помощи него мы можем задать активен ли или не активен пункт меню, есть ли в нем потомки - даже ради одного пункта использовать его - большая выгода

а смысл того примера - убрать разделитель в конце не меняя разметку в TV

pomotom 11.04.2008 10:04

NO.allWrap = | & #124; |*||*| |
как-то так проще

Grank 11.04.2008 13:11

Цитата:

Сообщение от shuman (Сообщение 18425)
в том то и ценность HMENU что при помощи него мы можем задать активен ли или не активен пункт меню, есть ли в нем потомки - даже ради одного пункта использовать его - большая выгода

а смысл того примера - убрать разделитель в конце не меняя разметку в TV

Просмотри еще раз ветку.
Я не спрашивал у тебя в чем смысл твоего примера, я просто указал что в данном случае целесообразнее использовать wrap. Если ты считаешь, что несколько строк кода это более элегантное решение чем одна - дело твое, я не собираюсь тебя в этом переубеждать.

valCooL 11.04.2008 16:24

Спасибо всем, кто помогал, чтобы я без вас делал. Ато для новичков особо хороших референсов и примеров нету :) Что весьма зря.

А можете дать ссылки или в кратце объяснить как делать ньюсфиды и каталог файлов в тандеме с TV?
Стандартный контент-каталог-файлов тупо выводит список файлов и делает на них ссылку :( Мне надо ввести соьбственное название и описание файла, плюс использовать свой дизайн.

Grank 11.04.2008 16:41

Для файлов посмотри расширение css_filelinks.

valCooL 11.04.2008 17:51

Все бы замечательно, но в репозиториях этого екстенжна нет, и на сайте по поиску нет. Где его надыбать?:)

З.Ы. Очень важен вопрос ленты новостей :)

Grank 11.04.2008 18:01

Цитата:

Сообщение от valCooL (Сообщение 18433)
Все бы замечательно, но в репозиториях этого екстенжна нет, и на сайте по поиску нет. Где его надыбать?:)

1. http://typo3.org/extensions/
2. css_filelinks - search - http://typo3.org/extensions/reposito...=css_filelinks

http://typo3.org/extensions/reposito...elinks/0.2.14/

valCooL 11.04.2008 18:03

:o блин, чуствую себя ламером :)
наверное не нашло потому что я искал по слову файллинкс
спасибо!

valCooL 14.04.2008 06:09

Что за люди пишут мануалы к этим модулям :( Я не понял как пользрваться файллинкс.
УПД. Все, понял, создается лэйаут объект, в котором и описывается стиль врапперами. А на страницы вставляется обычный файллист.
Есть несколько минусов - нельзя вместо названия файла ввести свой текст - я вместо названия файла вывожу его дескрипшн, но ето же не выход, под некоторыми файлами тоже отдельное описание текстовое нужно...

А есть какой русский док по tt_news?

valCooL 14.04.2008 09:39

Док, нашел, пробую. Сразу же вопрос. Есть ветка новости - я в нее вставляю плагин для отображения лИста. Добавляю в нее-же несколько новостей, смотрю на красивый списочек, НО если нажать на заголовок новости, попытаться в нее войти - я вижу ту же страницу со списком. Как наладить одиночное отображение ламеру плиз?

Grank 14.04.2008 20:32

Цитата:

Сообщение от valCooL (Сообщение 18471)
Док, нашел, пробую. Сразу же вопрос. Есть ветка новости - я в нее вставляю плагин для отображения лИста. Добавляю в нее-же несколько новостей, смотрю на красивый списочек, НО если нажать на заголовок новости, попытаться в нее войти - я вижу ту же страницу со списком. Как наладить одиночное отображение ламеру плиз?

Смотри настройки плагина отображающего листинг новостей.
закладка Другие настройки ->Id страницы полного отображения новости

valCooL 16.04.2008 17:27

Да, так и есть, а еще ведь с шаблонами морока....

Как отучить tt_news обводить <strong'ом> заглавия новостей?
А в сингл он мне вообще вот что творит:
В шаблоне есть только
Код:

<span class="mainTextTitelBig">###NEWS_TITLE###</span>
А в результате:
Код:

<span class="mainTextTitelBig"><font face="verdana" size="3"><strong>Заглавие новости</strong></font></span>
Откуда он это себе выдумал?????? Этот фонт и стронг всмысле... :/

valCooL 16.04.2008 19:03

Отучить от этой плохой привычки оказалось несложно - отредактировав файлы с типоскриптами typo3conf\ext\tt_news\static\ts_(old|new)\, где и описываются врапперы всех элементов

void 16.04.2008 19:17

Так делать не надо... файлы в расширениях не редактируют. Для этого есть TS Setup.


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

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