|
|
01.06.2008, 04:15
|
|
Thiamin
Веб-студия «Арт-Лайн»

Зарегистрирован: 2008-05-20
Сообщений: 145
|
Подскажите, пожалуйста, можно ли как-нибудь сослаться из макета дизайна на какие-либо данные объекта, который выводится на отдельной странице. В частности, хотелось бы, чтобы в заголовке страницы (<title>...</title>) отображалось не название раздела/компонента, а заголовок статьи (объекта).
Использую компонент «Публикации: Статьи простые». Соответственно заголовок каждой статьи лежит в Message23 (поле Title).
P.S. Ну не создавать же под каждую статью отдельный раздел?)
chance favours the prepared mind
|
|
|
01.06.2008, 15:52
|
|
VlastV
qb.digital
Зарегистрирован: 2005-11-02
Сообщений: 202
|
В поле "Заголовок страницы" напишите $f_Title
Разработка сайтов на CMS NetCat. Портфолио http://vlastv.ru/ E-mail: me [at] vlastv [dot] ru ; ICQ: 66117050
|
|
|
01.06.2008, 19:34
|
|
Thiamin
Веб-студия «Арт-Лайн»

Зарегистрирован: 2008-05-20
Сообщений: 145
|
Спасибо большое.
Но вот что непонятно. В руководстве разработчика описывается переменная $f_title. Причем буква «t» не является заглавной. При использовании этой переменной у меня прекрасно отображаются названия разделов/подразделов, но когда дело доходит до заголовка объекта (статьи) – ноль эмоций. С другой стороны, при написании этой переменной в предложенном Вами варианте ($f_Title) прекрасно отображаются названия статей, но названия разделов/подразделов отображаться не хотят...
Подскажите, пожалуйста, в чем тут дело? Как сделать так, чтобы в разделах отображались названия этих разделов, а при просмотре объекта на отдельной странице – заголовок этого объекта?
Неужели единственный выход – это использовать вот такую вот длинную констукцию:
Код:<title>".$current_catalogue[Catalogue_Name]." – ".opt_case($f_Title, $f_Title, opt_case($current_sub[FullName], $current_sub[FullName], $f_title))."</title>
?
chance favours the prepared mind
|
|
|
01.06.2008, 22:44
|
|
DiGGy
DiGGy

Зарегистрирован: 2005-04-04
Сообщений: 1546
|
1. В компоненте (шаблоне) в поле "Заголовок страницы:" впишите $f_Title - это название одного из полей вашего шаблона статьи (или как там его...).
2. В макете пишите $f_title
Temet nosce...
|
|
|
01.06.2008, 23:07
|
|
Thiamin
Веб-студия «Арт-Лайн»

Зарегистрирован: 2008-05-20
Сообщений: 145
|
DiGGy писал(а):1. В компоненте (шаблоне) в поле "Заголовок страницы:" впишите $f_Title - это название одного из полей вашего шаблона статьи (или как там его...).
Понял-понял) Правда, только 15 минут назад дошло о каком поле "Заголовок страницы" идет речь и где его искать...
DiGGy писал(а):2. В макете пишите $f_title
А вот здесь и подстерегает небольшая проблема. Дело в том, что в разделах мне необходимо выводить не стандартное $current_sub[Subdivision_Name] (=$f_title), а более развернутое (собственноручно добавленное) поле $current_sub[FullName].
Код:<title>".opt_case($current_sub[FullName], $current_sub[FullName], $f_title)."</title>
Таким образом получается, что, если я проверяю наличие $current_sub[FullName], то до отображения $f_title объекта дело уже не доходит, поскольку у раздела, где лежат мои статьи, FullName присутствует перманентно...
Написал вот такое вот мудреное условие:
Код:<title>".opt_case($f_Title, $f_Title, opt_case($current_sub[FullName], $current_sub[FullName], $f_title))."</title>
Получается, что я обращаюсь из макета дизайна к полю Title компонента «Статьи простые» напрямую, и это, как ни странно, работает. Насколько данное решение является правильным и приемлемым? Может быть есть более корректный и простой способ решения задачи?
chance favours the prepared mind
|
|
|
02.06.2008, 09:46
|
|
DiGGy
DiGGy

Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Код:".($action=='full'?$f_title:$current_sub['FullName'])."
Temet nosce...
|
|
|
02.06.2008, 10:43
|
|
Thiamin
Веб-студия «Арт-Лайн»

Зарегистрирован: 2008-05-20
Сообщений: 145
|
DiGGy
Большое спасибо и большой респект!) Index, Add, Search и Subscribe – слыхал. Но вот насчет Full – большой сюрприз... Да и то, что action существует как переменная – тоже новость.
С Вашего позволения, последний вопрос:
Как насчет прямого обращения из макета дизайна к полям компонента (в принципе)? Это допускается? Ничем не чревато?
chance favours the prepared mind
|
|
|
02.06.2008, 16:10
|
|
DiGGy
DiGGy

Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Смотря что понимать под "прямым" обращением:
1. Отдельный sql запрос к таблице компонента - допускается, если намеренно лочить таблицу при этом не будете, то все нормально.
2. Использование встроенных пременных типа $f_Name и т.п. - возможно в случае $action==full (в случае, если просмотр списка идет, то переменные вроде как недоступны - не помню). Тут надо понимать уровень видимости переменной, порядок обработки "header макета - шаблон - footer макета". Если это всё ясно и прозрачно, то накосячить не сможете. В любом случае лучше 1 раз попробывать, чем 10 раз об этом поговорить
Temet nosce...
|
|
|
03.06.2008, 08:04
|
|
Thiamin
Веб-студия «Арт-Лайн»

Зарегистрирован: 2008-05-20
Сообщений: 145
|
DiGGy писал(а):Смотря что понимать под "прямым" обращением
Подразумевалось использование встроенных переменных типа $f_Name в случае $action==full (при просмотре списка эти переменные действительно недоступны).
Еще раз большое Вам спасибо за помощь.
chance favours the prepared mind
|
|
|
04.06.2008, 12:46
|
|
xzirrow
Зарегистрирован: 2007-09-03
Сообщений: 79
|
Поля объекта в случае full парсятся до вывода макета , поэтому можно использовать абсолютно все поля.
H.O.P.E
|
|
|
04.06.2008, 16:14
|
|
Thiamin
Веб-студия «Арт-Лайн»

Зарегистрирован: 2008-05-20
Сообщений: 145
|
xzirrow писал(а):Поля объекта в случае full парсятся до вывода макета , поэтому можно использовать абсолютно все поля.
Спасибо.
chance favours the prepared mind
|