Сайт-флешка на 1 гиг.
 
Подписка
 
E-mail: 
     

СОЗДАТЬ СВОЙ САЙТ
ДОБАВЬ СВОЙ ФАЙЛ
ДОБАВИТЬ СВОЮ СТАТЬЮ
ДОБАВИТЬ КАРТИНКУ
несколько
________________________
ГЛАВНАЯ СТРАНИЦА
Архив с-о-ф-т-а
Архив статей
Архив картинок
Заметки мастера
ФОРУМ
_________________________
Д Л Я АДМИНА
Программы
Безопасность
Литература админу
Драйверы
__________________________
ДЛЯ ВЕБ-МАСТЕРА
Программы
Статьи веб-мастеру
Редакторы, конвертеры и архиваторы
Браузеры+плагины
Материал для сайтов
Работа с флешками (swf)
Флешки (swf)
gif-анимация (gif)
Литературка для веб-мастера
Регистрация доменов онлайн прямо здесь
_____________________
ЭКОНОМИЧЕСКИЙ ОТДЕЛ
Чёрный список мошенников интернета с обновлениями
Программы для бухгалтера
_________________________
ПРОГРАММЫ ДЛЯ ВСЕХ
Аудио-видео плееры
Программы для качающего
Программы для геймера
____________________
ОТДОХНУТЬ!
Бестселлеры
ПРИКОЛЫ
Высококачественные обои
Аватары
Опросы сообщества
__________________________
ВСЁ ДЛЯ МОБИЛЬНОГО ТЕЛЕФОНА
Проги для мобильника
Игры для мобилы
Темы для мобильника

Счетчики SEO
Метки









 
Календарь
 
<
Июнь 2012
>
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
 
Интересные сайты
 
  Вернуться на главнуюСайт-флешка на 1 гиг. / Заметки мастера / Размышления о UMI.CMS / Базовые шаблоны  

Базовые шаблоны

ДобавилТекст

Anonymous
Базовые шаблоны
1224 дня назад 25.01.2009 18:16:57 Цитата('1480324','1598893','5','10249')">Сообщить о спаме

Проще всего делать шаблоны на основе уже сверстанных в HTML статических страниц. Рассмотрим создание и подключение шаблона на примере. Допустим, уже есть HTML-файл такого содержания:


<html>
  <head>
  <meta name="description" content="описание сайта Василия Пупкина" />
  <meta name="keywords" content="Вася Василий Пупкин официальный сайт" />
  <title>Сайт Васи Пупкина: Главная страница</title>
  <link href="style.css" rel="stylesheet" type="text/css" />
  </head>

  <body>


<!-- начало меню -->

  <table border="1">
  <tr>
  <td><a href="/"><b>Главная</b></a></td>
  </tr>


  <tr>
  <td><a href="/about/">Обо мне</a></td>
  </tr>


  <tr>
  <td><a href="/me_and_me/">Я и мировое господство</a></td>
  </tr>


  <tr>
  <td><a href="/contacts/">Контакты</a></td>
  </tr>
  </table>

<!-- конец меню -->


  <h1>Главная страница</h1>

  <p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
  <p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
  <p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
  <p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
  <p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
  <p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>

  </body>
</html>

Для того, чтобы добавить шаблон в CMS, нужно создать файл в директории tpls/content, например, test.tpl, и вставить туда ваш HTML-код. CSS-файл следует положить в папку css/cms и назвать style.css. Изображения желательно положить в папку images. Не забудьте поменять пути ко всем изображениям и CSS-файлам.

Чтобы система «увидела» новый шаблон и начала использовать его для вывода страниц, шаблон необходимо добавить в систему. Для этого следует зайти в настройки модуля «Структура», вкладка «Шаблоны» (http://yourdomain.ru/admin/content/config/). Вы увидите список уже установленных шаблонов в каждом домене, которые существуют в выбранной языковой версии.

Чтобы подключить новый файл шаблона, заполните в самой нижней свободной строке поля «Название шаблона» (дайте ему какое-нибудь осмысленное название, например «Мой тестовый шаблон») и «Имя файла» (в нашем случае, «test.tpl») и нажмите кнопку «Сохранить».

Если вы хотите, чтобы этот шаблон использовался в качестве шаблона по умолчанию, поставьте напротив него отметку «Основной». Теперь при этот шаблон будет выбран по умолчанию в выпадающем списке выбора шаблонов. Так же он будет использоваться для вывода системных страниц, которые используют шаблон по умолчанию (Регистрация, Восстановление пароля, Карта сайта).

Шаблоны будут видны в выпадающем списке при редактировании каждой страницы:

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

Попробуйте создать новую страницу (убедитесь, что в опции «Шаблон дизайна» выбран новый шаблон) и посмотрите, что получилось на сайте.

На сайте должен появиться ваш HTML-шаблон. Но сейчас он статический. Теперь вам надо сделать его динамическим.

Для начала надо определить, какие части HTML-кода будут изменяться. В нашем случае изменяться будут:

заголовок окна <title>;

мета-теги keywords и description;

заголовок текста <h1>;

собственно текст;

меню сайта.


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

Например, в начале HTML-файла заданы мета-теги и тайтл:

<meta name="description" content="описание сайта Василия Пупкина" />
<meta name="keywords" content="Вася Василий Пупкин официальный сайт" />
 <title>Сайт Васи Пупкина: Главная страница</title>

Заменяем их на соответствующие макросы (список макросов дан в приложении):

<meta name="description" content="%description%" />
<meta name="keywords" content="%keywords%" />
<title>%title%</title>

Теперь система при формировании страниц будет брать мета-теги и тайтл, прописанные для каждой страницы индивидуально, и подставлять их вместо соответствующих макросов. Названия макросов запомнить очень просто.

Аналогично поступим с заголовком текста. Было так:

<h1>Главная страница</h1>

А станет так. Заголовок текста выводится макросом %header%:

<h1>%header%</h1>

Основной текст страницы тоже изменяется:

<p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
<p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
<p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
<p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
<p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>
<p>Текст обо мне: Текст обо мне: Текст обо мне: Текст обо мне: </p>

Для вывода основного текста страницы есть макрос %content%:

  %content%
   

В начало файла между тегами <head> и </head> вставляем строчку:

<script type="text/javascript" src="/js/easy.php"></script>

Эта строчка подключает функцию быстрого редактирования и другие полезные возможности. При помощи нее вы сможете, нажав Shift+D, быстро перейти к правке текущей страницы сайта или каких-либо ее фрагментов.

В итоге должно получиться следующее:

<html>
  <head>
  <meta name="description" content="%description%" />
  <meta name="keywords" content="%keywords%" />
  <title>%title%</title>
  <link href="style.css" rel="stylesheet" type="text/css" />
  <script type="text/javascript" src="/js/easy.php"></script>
  </head>
  <body>
 

<!-- начало меню -->
  <table border="1">
  <tr>
  <td><a href="/"><b>Главная</b></a></td>
  </tr>
 
  <tr>
  <td><a href="/about/">О компании</a></td>
  </tr>
 
 
  <tr>
  <td><a href="/projects/">Проекты</a></td>
  </tr>
 

  <tr>
  <td><a href="/contacts/">Контакты</a></td>
  </tr>
  </table>

<!-- конец меню -->

  <h1>%header%</h1>

  %content%
  </body>
</html>

Итак, мы сохраняем файл шаблона и смотрим на результат. Теперь страница практически полностью динамическая, за исключением меню. Предстоит «оживить» меню сайта. Посмотрим как сверстано меню:

<!-- начало меню -->
  <table border="1">
  <tr>
  <td><a href="/"><b>Главная</b></a></td>
  </tr>
 
  <tr>
  <td><a href="/about/">Обо мне</a></td>
  </tr>
 
 
  <tr>
  <td><a href="/me_and_me/">Я и мировое господство</a></td>
  </tr>
 
 
  <tr>
  <td><a href="/contacts/">Контакты</a></td>
  </tr>
  </table>
<!-- конец меню -->

Меню состоит из пунктов. Само меню как-то оформлено, да и у пунктов тоже есть оформление. Например, у всего меню может быть некая рамка или фон, текущий пункт меню может быть выделен жирным и т.п. Еще в одном меню могут быть разные уровни.

Выделим обрамление меню:

<!-- начало меню -->
  <table border="1">
 
  <!-здесь пойдут пункты меню -->
 
  </table>
<!-- конец меню -->

Пункт меню оформлен так:

<tr>
  <td><a href="/contacts/">Контакты</a></td>
</tr>

Текущий пункт меню оформлен по-другому:

<tr>
  <td><a href="/"><b>Главная</b></a></td>
</tr>

Исходный шаблон меню находится в файле /tpls/content/menu/default.tpl и выглядит так:

<?php
$FORMS = Array();
 
$FORMS['menu_block_level1'] = <<<END
 
%lines%
 
END;
 

$FORMS['menu_line_level1'] = <<<END
  <div class="menu"><a href="%link%" class="menu">%text%</a></div>
END;


$FORMS['menu_line_level1_a'] = <<<END
  <div class="menu_a"><span class="menu_a">%text%</span></div>
 
END;
?>

Вначале немного непонятно. На самом деле, все очень просто. Посмотрим на первую часть кода:

$FORMS['menu_block_level1'] = <<<END

%lines%

END;

Это блок, который называется menu_block_level1. Есть всего 3 типа таких блоков.

menu_block_level1 ― содержит HTML-обрамление меню;

menu_line_level1 ― содержит HTML-код пункта меню;

menu_line_level1_a ― то же самое, что и menu_line_level1, только используется для активного пункта меню.


Все, что расположено между <<<END и END; воспринимается, как html-шаблон (для всего меню или для отдельного пункта).

При генерации меню, система берет шаблоны пунктов (например, menu_line_level1), и ставит их друг за другом. Получается HTML-код, в котором содержатся все пункты меню. Этот код вставляется вместо макроса %lines%.

Итак, необходимо проставить код, который мы выделили выше (обрамление, пункты меню) в соответствующие блоки. Должно получиться примерно так:

<?php
$FORMS = Array();

 
$FORMS['menu_block_level1'] = <<<END

 
<!-- обрамление меню -->
  <table border="1">
  %lines%
  </table>
<!-- конец обрамления меню -->

END;

 

$FORMS['menu_line_level1'] = <<<END
 
<!-- пункт меню -->
  <tr>
  <td><a href="%link%">%text%</a></td>
  </tr>
<!-- конец пункта меню -->
 
END;

 


$FORMS['menu_line_level1_a'] = <<<END
 

<!-- активный пункт меню -->
  <tr>
  <td><a href="%link%"><b>%text%</b></a></td>
  </tr>
<!-- конец активного пункта меню -->
 
END;
?>

Мы уже знаем, что вместо %lines% система подставляет пункты меню с их HTML-обрамлением. Нам встретились новые макросы. Вместо %link% вставляется URL пункта меню, а вместо %text% ― текст (определяется в поле «название страницы»).

Теперь меню можно вставить в шаблон страницы макросом %menu%::

<html>
  <head>
  <meta name="description" content="%description%" />
  <meta name="keywords" content="%keywords%" />
  <title>%title%</title>
  <link href="style.css" rel="stylesheet" type="text/css" />
  <script type="text/javascript" src="/js/easy.php"></script>
  </head>
  <body>
 
<!-- начало меню -->
  %menu%
<!-- конец меню -->
 
  <h1>%header%</h1>
 
  %content%

  </body>
</html>

Шаблон готов. 

Если вы хотите на каких-то страницах сайта выводить меню по другому шаблону, нужно создать еще один файл с шаблоном меню в той же папке. Например, menu2.tpl. Соответственно, при подключении меню к шаблону страницы вместо %menu% надо написать немного по-другому: %content menu('menu2')%.

Работа этого и других макросов подробно описана в текущей документации. Работа с ними строится точно по такому же принципу: вы разбиваете необходимый кусок HTML-шаблона на отдельные части, подставлявляете в соответствующие блоки нужных шаблонов, вставляете на место этого куска соответствующий макрос и он начинает работать.

Пользовательские макросы
В шаблонах вы можете использовать не только макросы, входящие в состав системы UMI.CMS, но и собственные макросы. Вы можете создавать макросы двух типов:

Макросы, выводящие значение некоторой переменной (переменных). Примером могут служить рассмотренные выше макросы %title% и %keywords%.

Макросы, представляющие собой вызов PHP-функции. Вызов такого макроса имеет следующий вид: %<Имя класса> <Имя функции>()%, например %comments insert()%.


Чтобы создать макрос первого типа, например %my_string%, вам потребуется выполнить следующие действия: 

Откройте модуль «Шаблоны данных».

Откройте редактирование нужного типа данных (например, «Раздел сайта\Страница контента»).

Создайте новую группу полей с любым названием.

В этой группе полей создайте новое поле c названием «Моя строка» и «идентификатором» «my_string».

Выберите тип поля «Строка».

В редактировании страницы контента заполните поле «Моя строка», которое появилось после того, как вы отредактировали тип данных.


Теперь при выводе этой страницы вы можете использовать макрос %my_string%, который будет выводить значение этого поля. Макрос %my_string% работает аналогично макросу %data getProperty(id,my_string,template)%, если все блоки шаблона /tpls/data/template.tpl содержат только вызов макроса %value%.

Подробно о том, какие типы полей можно использовать, вы можете прочитать в пользовательской документации к модулю «Шаблоны данных» по адресу help.umi-cms.ru 

Если требуется создать макрос второго типа, вы можете использовать один их следующих двух способов.

Если новый макрос не будет входить в состав какого-либо модуля UMI.CMS и вызывать методы класса этого модуля, то можно использовать упрощенный порядок создания макроса. При этом достаточно открыть в папке /classes/modules/ файл custom.php и ввести исходный код PHP-функции, например:

<?php
  class custom {
  public function new_func() {
  ... код функции ...
  }
  };
?>

После этого вы можете включать в шаблоны созданный макрос, например custom new_func(), который будет выполнять соответствующую PHP-функцию.

Если же новый макрос будет входить в состав одного из модулей UMI.CMS и обращаться к методам соответствующего класса, то для создания такого макроса необходимо выполнить следующие действия:

Откройте папку класса для того модуля UMI.CMS, в котором будет использоваться создаваемый макрос. Например, если макрос предназначен для использования на странице новостей, откройте папку /classes/modules/news.

В этой папке откройте файл __custom.php и введите исходный код PHP-функции, например:

<?php
  abstract class __custom_news {
  public function new_func() {
  ... код функции ...
  }
  };
?>

Зарегистрируйте созданную функцию в реестре:

Откройте реестр. Для этого наберите в адресной строке браузера: http:/ваш_сайт/regedit/index.php. Если скрипт реестра не найден, запросите его в Службе Заботы о Клиентах; в корневой папке сайта создайте папку regedit и разместите в ней этот скрипт.

В реестре раскройте раздел modules, а в нем — подраздел, соответствующий нужному модулю (например, news). Далее раскройте подраздел func_perms. Вы увидите список групп прав доступа, которые можно назначить тому или иному пользователю.

Раскройте подраздел, соответствующий правам доступа, которые вы хотите предоставить к вашей функции. Например, если вы хотите предоставить посетителям вашего сайта доступ на чтение к вашей функции, откройте подраздел view. Добавьте вашу функцию в этот подраздел. Для этого в самой нижней, пустой строке подраздела введите имя функции (например, new_func) и произвольный комментарий.

Нажмите кнопку Сохранить.

Обновите парметры пользователя «Гость»: откройте модуль «Пользователи», затем откройте для редактирования данные пользователя «Гость» и нажмите кнопку Сохранить.

Теперь вы можете включать в шаблоны созданный макрос, например %news new_func()%, который будет выполнять соответствующую PHP-функцию.



Комментарии: 0 Просмотров: 8631
 
 
Имя Пароль
расширенный... ( / Регистрация )

Тема

В тексте можно использовать Wiki или HTML теги




 
Кто на сайте?
 
Анонимные: 16, Зарегистрированные: 0 (?)
 
Посетители
 
west11123 олег
16 дней назад 17.05.2012 02:15:04
olgusha08 петровы
23 дня назад 10.05.2012 11:01:03
ungurs У ДЯДИ ВОВЫ !!! кладоискатель
30 дней назад 03.05.2012 08:34:27
 
Топ комментаторов
 
fedoroff-ftp1 Сайт-флешка на 1 гиг.
Комментарии: 42
tvoy741 Регистрация Сайтов
Комментарии: 29
www4191 Система "Мой сайт"
Комментарии: 28
posap-best Олесь Псковин
Комментарии: 26
pcinfomaster
Комментарии: 26
 
 
Hello. And Bye.
36 дней назад 27.04.2012 10:20:32
Hello. And Bye.
36 дней назад 27.04.2012 07:16:30
Hello. And Bye.
36 дней назад 27.04.2012 03:31:34
Hello. And Bye.
36 дней назад 27.04.2012 00:41:33
Hello. And Bye.
37 дней назад 26.04.2012 20:26:26
Жалоба | Размещено на MyLivePage | | Design by Drive | © Kolobok smiles, Aiwan