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

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

Ответ
 
Опции темы Опции просмотра
Старый 18.03.2011, 16:59   #1
KentAVr
Продвинутый
 
Регистрация: 21.10.2010
Сообщений: 87
По умолчанию MENU: главная страница

собственно возвращаясь к вопросу поднятому в теме о ярлыках для главной странице http://forum.typo3.biz/showpost.php?p=30598&postcount=3 и решением предложеным -=UncleByte=- , за что ему отдельное спасибо, мы понимает что собственно ярлык для главной нам не нужен, но данно решение пораждает несколько вопросов ..
во первых зачем ссыдаться на главную как
typolink.parameter.data = leveluid:0
когда мы можем сразу и смело написать
typolink.parameter = /
избегая юзанья различных роботов.тхт .аштиассесов и прочих прыжков с бубном .. и естетсвенно нам нужен тайтл для ссылки и тогда самым простым вариантом видеться код
Код:
lib.menu_top {
   10 = HTML
   10.value=<a href="/" title="Главная">Главная</a>
}
тут тоже не все так радужно .. потомучто
1.Зачем огород городить если этот код можно было оставить в шаблоне
2.Юзер из админки не может поменять ни название ссылки ни описания
3.при мультиязычном сайте мы не сможем перевести эту ссылку
4.мы тупо3 используем чтоб отделить контент от офрмления в конце концов или нет? )
Собственно потупив приличное время я пришел к такому коду
Код:
lib.menu_top {
  10 = TEXT
  10 {  
     insertData = 1
     value =   {leveltitle : 0}     
     typolink.parameter = /     
     typolink.title.data=DB : pages:1:description     
     typolink.title.crop = 20 | ...
  }
Как видим вроде все наши условия выполнены .. правда остается еще одна заморочка , а именно как поменять оформление ссылки при ее активности .. согласитесь с тем что иметь ссылку на главную страницу если вы находитесь в корне сайта - это не очень хорошо во всех отношениях...
добавим такой код типа условие в тупо3 .. ( эхх где вы такие надежные ифы и казы )
Код:
[treeLevel = 0]
lib.menu_top.10.typolink.parameter = 
lib.menu_top.10.wrap = <span>|</span> 
[end]
В общем все работает .. работает именно так как хотелось бы .. НО позволю себе задать вопрос знающим людям.

1. Весь этот наворот с главной это блаж ? можно ли сделать както проще или красивше?
2. Выдержал ли я стиль тупо3 или я мог задействовать какието мне еще не известные функции, свойства и глобалки
3. С точки зрения любого языка програмирования более оптимальный код будет когда сначала будет проверка и присвоение главной страницы без ссылки а потом уже прикручивание ссылки к ней.. в данном же примере все с точностью до наоборот .. мы по умолчанию прикручиваем ссылку а потом если это не главная страница мы ее отменяем..
другими словами возможен ли код условия НЕ РАВНО или БОЛЬШЕ МЕНЬШЕ я пробовал у меня не получилось.. но может есть какие другие варианты?
KentAVr вне форума   Ответить с цитированием
Старый 18.03.2011, 21:58   #2
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Для начала цитата из TSRef:
Цитата:
= leveluid : 0
get the id of the root-page of the
website (level zero)
Т.е. это отсылка к странице именно к главной странице и ни к какой другой. Напомню что у любой странице в бэкенде есть свойство "is root of website". Остальное вытекает из свойств typolink.parameter - для внутренних страниц цифры, для внешних текст. По теме можно прочесть TSRef Datatype reference и Functions typolink.
Соответственно title для ссылки можно получить из page:title.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 19.03.2011, 01:02   #3
KentAVr
Продвинутый
 
Регистрация: 21.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от -=UncleByte=- Посмотреть сообщение
Для начала цитата из TSRef:Т.е. это отсылка к странице именно к главной странице и ни к какой другой. Напомню что у любой странице в бэкенде есть свойство "is root of website". Остальное вытекает из свойств typolink.parameter - для внутренних страниц цифры, для внешних текст.
Все верно вы сказали ..
и так как мы идем через дата .. а для внутренних ссылок это уд страницы то мы и получим лабуду типа index.php?page=x
где х равно leveluid : 0 .. в моем случае да и в большинстве х=1 .. так вот для того чтобы поисковики склеили мойСайт.ру/index.php?page=x и просто мойСайт.ру придется писать робот.тхт или .аштиассес. конечно сейчас поисковики "умные" .. да вот только не совсем ) и если он склеит не правильно потом месяцами можно расклеивать) ..
если я не прав то поправьте плиз
Цитата:
Сообщение от -=UncleByte=- Посмотреть сообщение
По теме можно прочесть TSRef Datatype reference и Functions typolink.
не все вкуриваю если честно, но курю непрерывно
Цитата:
Сообщение от -=UncleByte=- Посмотреть сообщение
Соответственно title для ссылки можно получить из page:title.
вооот .. собственно вопрос .. а если мы в этот момент находимся не на глваной странице ? а на какомнить вложении 5 лвла .. разве page:title не вернет нам тайтл той страницы на которой мы сидим? и не получим вместо - "Это главная страница" например такую запись "Периоды деторождения моих петов" ?
KentAVr вне форума   Ответить с цитированием
Старый 19.03.2011, 01:22   #4
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Цитата:
Все верно вы сказали ..
и так как мы идем через дата .. а для внутренних ссылок это уд страницы то мы и получим лабуду типа index.php?page=x
где х равно leveluid : 0 .. в моем случае да и в большинстве х=1 .. так вот для того чтобы поисковики склеили мойСайт.ру/index.php?page=x и просто мойСайт.ру придется писать робот.тхт или .аштиассес. конечно сейчас поисковики "умные" .. да вот только не совсем ) и если он склеит не правильно потом месяцами можно расклеивать) ..
если я не прав то поправьте плиз
Насколько я понимаю в настоящее время подавляющее большинство сайтов оснащается так называемыми "ЧПУ" и в TYPO3 для этого тоже есть экстеншны - RealURL, CoolURI и т.д. Так вот чтобы они нормально функционировали (в частности сейчас я веду речь про RealURL, поскольку привык к нему) необходимо чтобы ссылки в чистом виде генерировались обычным порядком, в противном случае, думаю, глюков можно нахватать можно будет много. Так вот при использовании RealURL не нужно ничего прописывать в robots.txt дополнительно. Достаточно настроить рерайты на стороне сервера; для Апача надо писать больше условий в .htaccess (хотя эта конфигурация есть в руководстве), для nginx меньше в конфигурации сайта/сервера, но факт что это работает.
Цитата:
вооот .. собственно вопрос .. а если мы в этот момент находимся не на глваной странице ? а на какомнить вложении 5 лвла .. разве page:title не вернет нам тайтл той страницы на которой мы сидим? и не получим вместо - "Это главная страница" например такую запись "Периоды деторождения моих петов" ?
Так для этого и советовал читать Datatype reference в TSRef - там как раз и описано каким образом какие данные можно получать, есть leveltitle например. Кстати куча примеров была на wiki.typo3.org как раз по этой теме.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 19.03.2011, 04:21   #5
KentAVr
Продвинутый
 
Регистрация: 21.10.2010
Сообщений: 87
По умолчанию

еще не ставил чпу под эту систему.. так что ничего пока сказать не могу ).
что касается leveltitle он и использован у меня в примере..
другой вопрос что функции (переменной) leveldescription я не нашел по этому собственно и выполнил запрос к базе данных DB : pages:1:description

я и говрорю . что склейку либо через роботс либо через .аштиассес.. чпу это какраз второй вариант. а робот всеравно писать можно и нужно гугль любит его.. а яндекс до недавнего времени даже руководствовался им

И так всетаки page:title работает для текущей страницы или его можно както зафиксировать?
KentAVr вне форума   Ответить с цитированием
Старый 19.03.2011, 06:19   #6
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Цитата:
И так всетаки page:title работает для текущей страницы или его можно както зафиксировать?
Для текущей. Можно нужных полей достичь другим путем: либо levelfield, либо fullRootLine. Читайте все тот же TSRef - Datatype reference и wiki - http://wiki.typo3.org/TSref/getText#....5B.2Cslide.5D
-=UncleByte=- вне форума   Ответить с цитированием
Старый 19.03.2011, 16:36   #7
KentAVr
Продвинутый
 
Регистрация: 21.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от -=UncleByte=- Посмотреть сообщение
Для текущей. Можно нужных полей достичь другим путем: либо levelfield, либо fullRootLine. Читайте все тот же TSRef - Datatype reference и wiki - http://wiki.typo3.org/TSref/getText#....5B.2Cslide.5D
все верно и если мы разбираем fullRootLine: 0 , title или тотже вариант с левелфиелд, то все работает ибо поле тайтл определено в конфигурации по умолчанию, но нам какраз заголовок не нужен у нас есть идеальный инстумент для получения заголовка .. нам нужно описание и тогда поле description таблицы pages мы должны прописать в TYPO3_CONF_VARS .. а это уже в теории не прозрачный код требующий лишних телодвижений и резервирующий переменую в машинной памяти .. и скорее всего при вызове typolink.title.data=fullRootLine: 0 , description будет сгенерирован запрос к базе данных.. но тут все зависит от реализации в коде пхп .. лезть туда пока не охота.. но общий смысл сводится к тому что есть 2 рарианта .
1. Прописанное поле в варс будет заполнятнься сразу общим запросом совместно с другими полями .
2. каждый раз будет генерироваться новый запрос при вызове конструкции fullRootLine: 0 , description или levelfield: 0 , description поле leveluid:0 .. так былобы намного универсальнее .. но у меня почемуто не получается

я склоняюсь ко второму варианту ибо бессмысленно при каждом вызове страницы читать поля десткрипшен для всех страниц сайта, и если я прав и конструкция генерирует запрос при исполнении, то вариант
DB : pages:1:description будет более редпочтителен. т.к.
1. не создается доп переменной постоянно висящей в памяти
2. не требует правки конфига сайта.

Если в чемто мои рассуждения не верны.. поправьте меня пожалуйста .. но без правки конфига я не смог обратиться к полю ни через fullRootLine ни через levelfield.

еще подскажите пожалуйста как мне в DB : pages:1:description вместо 1 подстаить
KentAVr вне форума   Ответить с цитированием
Старый 19.03.2011, 17:03   #8
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Обращение к базе для генерации страницы происходит раз в сутки (если не указано явным образом другое значение в свойствах страницы или же она содержит некешируемые данные), все остальное время она лежит в кеше и выдается оттуда.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 19.03.2011, 17:07   #9
KentAVr
Продвинутый
 
Регистрация: 21.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от -=UncleByte=- Посмотреть сообщение
Обращение к базе для генерации страницы происходит раз в сутки (если не указано явным образом другое значение в свойствах страницы или же она содержит некешируемые данные), все остальное время она лежит в кеше и выдается оттуда.
это я прекрасно понимаю... я говорю про этап формирования
KentAVr вне форума   Ответить с цитированием
Старый 19.03.2011, 17:31   #10
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Цитата:
Сообщение от KentAVr Посмотреть сообщение
это я прекрасно понимаю... я говорю про этап формирования
Этап формирования чего?
-=UncleByte=- вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню DimanLin Общие вопросы 6 12.01.2009 15:35
Показывать или не показывать раздели в меню на определенном уровне thebat TypoScript практикум 10 06.04.2007 12:12
не загружается главная страница satelit-25 Общие вопросы 3 14.11.2006 15:00
страница подменю как главная страница основного меню Vladimir_ TypoScript практикум 1 10.10.2006 16:12
главная страница подраздела OpTi Общие вопросы 2 23.08.2006 13:24


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


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

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