вопрос к опытным

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

RomanA
Forum Members
Forum Members
Posts: 18
Joined: Thu Aug 26, 2010 9:28 am

Re: вопрос к опытным

Post by RomanA »

Извините, что достаю пыльную тему, но, прошерстив форум, вижу, что у многих проблема с тем, что звучало в данной теме: "Вам следует понять и разобраться с философией CMS".
Чтение мануалов также не принесло полной ясности; видимо там отсутствуют какие-то важные 2-3 слова, очевидные для "опытных", но крайне необходимые для новичков в ЦМС.
Посему, первый "философский" вопрос: регулярно упоминается некая "smarty", как я понял система генерации ПХП-кода на основе шаблонов. Эта система как-то включена в ЦМС, или это независимый сторонний продукт?
2. Где находятся физически файлы шаблонов, создаваемые пользователем? Как в этом процессе участвует smarty? (встречал в одном из постов фразу: "ваш шаблон лежит там-то...", но не могу сейчас её найти)
3. Возник затык с подключением в шаблон собственного меню вместо стандартного в блоке перед {content}. Решил для получения ПЕРВОГО опыта повторить с помощью ЦМСМС простую первую страницу существующего сайта www.kbptula.ru. Она состоит из одной таблицы, в первой строке которой лежит JS-меню, а в нижних - вся остальная картинка. Так вот, вся нижняя часть пошла в {content}, а как прикрутить строку с менюшкой не понятно...
Для начала - всё :)
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

Re: вопрос к опытным

Post by von-hamster »

1. smarty - это шаблонизатор. Что из чего и куда конвертит - это для начала не важно. Важно то, что каждый шаблон имеет некоторый синтаксис, который в конечном итоге генерирует либо кусок либо полный html код. Прочитать про него можно на официальном сайте (http://www.smarty.net/). Там -же есть документация на русском языке.
2. cmsms использует smarty как основной шаблонизатор, и даже более того - часть функционала завязана именно на smarty, например - тэги и пользовательские тэги - это ничто иное как плагины для smarty. Но это тоже для более продвинутого использования системы.
3. Шаблоны для смарти могут храниться где угодно. Для системы - это либо база, либо файлы. В базе храняться шаблоны которые можно редактировать через систему. В файлах - обычно шаблоны для модулей, часть из которых может импортироваться в базу (например, модуль управления меню - по умолчанию шаблон берется из файла, но если необходимо - можно его импортировать в базу и изменить... Или создать шаблон с нуля).
4. Теперь по последнему вопросу:
Шаблоны страниц редактируются в "Оформление » Шаблоны" К каждой странице можно прикрепить свой шаблон.
Внутри шаблона используются тэги для использования функционала. Например, {content} - это тэг, который в указанном месте вставляет текст, который можно добавить при редактировании страницы. Более того - этот тэг имеет ряд параметров и можно добавить несколько таких тэгов в шаблон. Если такой шаблон прикрепить к странице - то при редактировании для каждого такого тэга появится отдельное поле для ввода текста.
{menu} - это тоже тэг. Он является интерфейсом для модуля управления меню (Оформление » Менеджер меню). У этого тэга есть ряд параметров. Посмотреть их можно во встроенной помощи - в правой верхней части, под шапкой есть ссылка "Помощь по работе с модулем" - там описаны параметры тэга, а так-же переменные, которые доступны внутри шаблона.
Соответственно - все, что тебе нужно - это открыть для редактирования нужный шаблон страницы (это можно сделать прямо из списка страниц - столбец    "Шаблон"), поставить в нужном месте тэг с параметром {menu template="название_твоего_шаблона"}, сохранить. Далее в менеджере меню добавить шаблон с именем "название_твоего_шаблона". Вобщем-то все...
RomanA
Forum Members
Forum Members
Posts: 18
Joined: Thu Aug 26, 2010 9:28 am

Re: вопрос к опытным

Post by RomanA »

Благодарю за столь развёрнутый ответ!
Философскую сторону ещё стоит спокойно обдумать, а вот по конкретике хочется уточнить.
Неправильность у меня была с использованием {menu template="название_шаблона"}, сделал так, меню появилось. Но теперь не понятно, куда нужно вставить пользовательский скрипт, обслуживающий меню. Это стандартный JS из Dreamweaver'a. Ставил его и в шаблон страницы в раздел , как в статичных страницах, и в {content}, и в шаблон меню - результаты отличается только местом положения кучи сообщений об ошибках смарти ;)
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

Re: вопрос к опытным

Post by von-hamster »

В смарти для определения тэгов служат фигурные скобки {}, соответственно при обработке шаблона, все, что внутри угловых скобок парсер пытается обработать как функцию/метод/переменную шаблонизатора. Для того, чтобы код вставлялся на страницу как есть - нужно этот код заключить в тэги:
{literal}Здесь код с фигурными скобками не обрабатывается.{/literal}

А вообще - яваскрипты и стили лучше выносить во внешние файлы, в шаблоне по возможности не использовать, а подключать...
RomanA
Forum Members
Forum Members
Posts: 18
Joined: Thu Aug 26, 2010 9:28 am

Re: вопрос к опытным

Post by RomanA »

Ага, про скобки, вроде, понятно, сейчас проверю...
А можно глупый вопрос?  :) А как подключить JS из внешнего файла? (система стоит на другом компе, и чтобы проверить сразу, надо пойти в другое здание)
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

Re: вопрос к опытным

Post by von-hamster »

Самое интересное, что разработчики позаботились о css, но не позаботились о js. Поэтому подключать скрипты приходится стандартным способом: Если еще нет скрипта, то создать файл, загрузить его через менеджер файлов, и в head указать на него ссылку: . Если есть - то просто указываем путь...
RomanA
Forum Members
Forum Members
Posts: 18
Joined: Thu Aug 26, 2010 9:28 am

Re: вопрос к опытным

Post by RomanA »

Да, интересно ;) Сейчас проверю.
Пока меню заработало после заключения скрипта в теги {literal} в шаблоне страницы.
Теперь надо понять, как задействовать имеющиеся пункты меню для связи с другими страницами...
RomanA
Forum Members
Forum Members
Posts: 18
Joined: Thu Aug 26, 2010 9:28 am

Re: вопрос к опытным

Post by RomanA »

Файл скрипта .js виден через менеджер в uploads/js/.
поместил на то же место в шаблоне страницы, где раньше был сам скрипт. Работать перестал :)
Кстсти, тот же файл появился и просто в uploads/.
Размещение вызова скрипта в метаданных страницы тоже ничего не даёт...
Last edited by RomanA on Wed Sep 22, 2010 12:08 pm, edited 1 time in total.
RomanA
Forum Members
Forum Members
Posts: 18
Joined: Thu Aug 26, 2010 9:28 am

Re: вопрос к опытным

Post by RomanA »

Бог с ней со вставкой JS, потом разберусь...
Задача такая: сделать средствами CMSMS аналогичное (или даже выпадающее) меню.
Думаю, действовать надо так (но как это сделать?):
1. Скопировать и обозвать по-своему имеющийся в ЦМС шаблон меню с верхним выпадающим меню.
2. Изменить его под имеющийся дизай.
3. Прилепить его в шаблон страницы (это понятно).
Last edited by RomanA on Thu Sep 30, 2010 12:31 pm, edited 1 time in total.
RomanA
Forum Members
Forum Members
Posts: 18
Joined: Thu Aug 26, 2010 9:28 am

Re: Вопросы к опытным

Post by RomanA »

Почти удалось повторить уже имеюющуюся страницу средствами ЦМСМС, для этого был взят и сильно упрощён один из стандартных шаблонов меню - "ShadowMenu Tab + 2 columns"; таблица стилей - "Navigation: ShadowMenu - Horizontal" также модифицирована под свой дизайн. Но работу меню, по-видимому, обслуживает ещё что-то в ЦМС... Что именно??
Last edited by RomanA on Thu Sep 30, 2010 12:40 pm, edited 1 time in total.
Fenik17
Power Poster
Power Poster
Posts: 450
Joined: Tue Jun 01, 2010 5:42 am

Re: вопрос к опытным

Post by Fenik17 »

Лучше скажи, что именно не получается.
RomanA
Forum Members
Forum Members
Posts: 18
Joined: Thu Aug 26, 2010 9:28 am

Re: вопрос к опытным

Post by RomanA »

Да нет, вроде бы всё задуманное постепенно получается, но мне не хватает общего понимания системы, поэтому стараюсь задавать более общие вопросы, а такие конкретные, но дилетантские вопросы, наверное, лучше в личку...

Ну, например, где редактируется та страница, которая открывается в сайте по умолчанию сразу после установки?
Как сделать так, чтобы состав меню на разных страницах одного уровня был разный?
Как заменить текст в пунктах меню на кртинки (о чём упомянуто в соседней ветке), ведь этим, видимо как раз и управляет та, не найденная мной пока, часть кода...

Наверняка, ответы на эти (или близкие по смыслу) вопросы уже есть в форуме, но далеко не всегда удаётся их найти в 46 страницах форума  ;)
Last edited by RomanA on Fri Oct 01, 2010 10:46 am, edited 1 time in total.
Post Reply

Return to “Russian - русский”