Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   MENU: главная страница (http://forum.typo3.ru/showthread.php?t=9352)

KentAVr 18.03.2011 16:59

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. С точки зрения любого языка програмирования более оптимальный код будет когда сначала будет проверка и присвоение главной страницы без ссылки а потом уже прикручивание ссылки к ней.. в данном же примере все с точностью до наоборот .. мы по умолчанию прикручиваем ссылку а потом если это не главная страница мы ее отменяем..
другими словами возможен ли код условия НЕ РАВНО или БОЛЬШЕ МЕНЬШЕ я пробовал у меня не получилось.. но может есть какие другие варианты?

-=UncleByte=- 18.03.2011 21:58

Для начала цитата из 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.

KentAVr 19.03.2011 01:02

Цитата:

Сообщение от -=UncleByte=- (Сообщение 30632)
Для начала цитата из TSRef:Т.е. это отсылка к странице именно к главной странице и ни к какой другой. Напомню что у любой странице в бэкенде есть свойство "is root of website". Остальное вытекает из свойств typolink.parameter - для внутренних страниц цифры, для внешних текст.

Все верно вы сказали ..
и так как мы идем через дата .. а для внутренних ссылок это уд страницы то мы и получим лабуду типа index.php?page=x
где х равно leveluid : 0 .. в моем случае да и в большинстве х=1 .. так вот для того чтобы поисковики склеили мойСайт.ру/index.php?page=x и просто мойСайт.ру придется писать робот.тхт или .аштиассес. конечно сейчас поисковики "умные" .. да вот только не совсем ) и если он склеит не правильно потом месяцами можно расклеивать) ..
если я не прав то поправьте плиз
Цитата:

Сообщение от -=UncleByte=- (Сообщение 30632)
По теме можно прочесть TSRef Datatype reference и Functions typolink.

не все вкуриваю если честно, но курю непрерывно
Цитата:

Сообщение от -=UncleByte=- (Сообщение 30632)
Соответственно title для ссылки можно получить из page:title.

вооот .. собственно вопрос .. а если мы в этот момент находимся не на глваной странице ? а на какомнить вложении 5 лвла .. разве page:title не вернет нам тайтл той страницы на которой мы сидим? и не получим вместо - "Это главная страница" например такую запись "Периоды деторождения моих петов" ?

-=UncleByte=- 19.03.2011 01:22

Цитата:

Все верно вы сказали ..
и так как мы идем через дата .. а для внутренних ссылок это уд страницы то мы и получим лабуду типа 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 как раз по этой теме.

KentAVr 19.03.2011 04:21

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

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

И так всетаки page:title работает для текущей страницы или его можно както зафиксировать?

-=UncleByte=- 19.03.2011 06:19

Цитата:

И так всетаки page:title работает для текущей страницы или его можно както зафиксировать?
Для текущей. Можно нужных полей достичь другим путем: либо levelfield, либо fullRootLine. Читайте все тот же TSRef - Datatype reference и wiki - http://wiki.typo3.org/TSref/getText#....5B.2Cslide.5D

KentAVr 19.03.2011 16:36

Цитата:

Сообщение от -=UncleByte=- (Сообщение 30638)
Для текущей. Можно нужных полей достичь другим путем: либо 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 подстаить

-=UncleByte=- 19.03.2011 17:03

Обращение к базе для генерации страницы происходит раз в сутки (если не указано явным образом другое значение в свойствах страницы или же она содержит некешируемые данные), все остальное время она лежит в кеше и выдается оттуда.

KentAVr 19.03.2011 17:07

Цитата:

Сообщение от -=UncleByte=- (Сообщение 30643)
Обращение к базе для генерации страницы происходит раз в сутки (если не указано явным образом другое значение в свойствах страницы или же она содержит некешируемые данные), все остальное время она лежит в кеше и выдается оттуда.

это я прекрасно понимаю... я говорю про этап формирования

-=UncleByte=- 19.03.2011 17:31

Цитата:

Сообщение от KentAVr (Сообщение 30644)
это я прекрасно понимаю... я говорю про этап формирования

Этап формирования чего?


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

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