Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Данные объекта в макете дизайна

01.06.2008, 04:15
Thiamin
Веб-студия «Арт-Лайн»
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
Веб-студия «Арт-Лайн»
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
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

1. В компоненте (шаблоне) в поле "Заголовок страницы:" впишите $f_Title - это название одного из полей вашего шаблона статьи (или как там его...).
2. В макете пишите $f_title

Temet nosce...
01.06.2008, 23:07
Thiamin
Веб-студия «Арт-Лайн»
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
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Код:
".($action=='full'?$f_title:$current_sub['FullName'])."


Temet nosce...
02.06.2008, 10:43
Thiamin
Веб-студия «Арт-Лайн»
Thiamin

Зарегистрирован:
2008-05-20
Сообщений: 145

DiGGy

Большое спасибо и большой респект!) Index, Add, Search и Subscribe – слыхал. Но вот насчет Full – большой сюрприз... Да и то, что action существует как переменная – тоже новость.

С Вашего позволения, последний вопрос:

Как насчет прямого обращения из макета дизайна к полям компонента (в принципе)? Это допускается? Ничем не чревато?

chance favours the prepared mind
02.06.2008, 16:10
DiGGy
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
Веб-студия «Арт-Лайн»
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
Веб-студия «Арт-Лайн»
Thiamin

Зарегистрирован:
2008-05-20
Сообщений: 145

xzirrow писал(а):
Поля объекта в случае full парсятся до вывода макета , поэтому можно использовать абсолютно все поля.


Спасибо. улыбка

chance favours the prepared mind
198 196 2008-06-04 16:14:55 7464
Описание проекта