Сегодня
23 ноября 2024
1:11

Мега Информатик функционирует с 20 февраля 2006 года. На сайте вы найдёте массу полезной информации по созданию сайтов и игр. Сайты - на php, игры - c++ и delphi - directx 9c и 8.1
создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
     
     
  Добро пожаловать в систему управления сайтом megainformatic cms !  
     
  [назад]  
     
 

7)  Создание шаблонов

 
     
 

В предыдущих уроках мы уже рассмотрели основы того, как можно подойти к созданию вашего сайта. Принципиально эти шаги являются универсальными и подойдут вам в применении к любой cms, потому что принципы использования html, css и php во всех системах подобны.

Главным отличием megainformatic cms является независимость и снятие многих ограничений на внедрение дополнительных модулей. Однако цена этому - крайняя минимализация и упрощение функционала.

 
     
  Рассмотрим каким образом можно с одной стороны немного усложнить систему, а с другой - получить некоторый набор новых возможностей.  
     
  Основная задача - это то, чтобы все страницы сайта выглядели в едином стиле, включая страницы модулей - поиск по сайту (search.php), карта сайта (map.php), модули обработки заказов (after_buy.php, after_pay_kind.php, buyer_data.php, accept_order.php).  
     
 

Казалось бы - самым простым способом является взятие необходимого кода из index.php и вставка в эти файлы. В принципе да, но не совсем так.

Если мы просто возьмем сейчас тот код, который уже есть в index.php и скопируем его и вставим в код этих модулей (еще не забудьте про соответствующие изменения), то в дальнейшем нам придется при изменении оформления - при использовании нового шаблона - вручную обновлять код html и css и во всех модулях, в который мы его вставим.

А как же сделать лучше тогда ? Спросите вы.

Воспользуемся опытом, который можно позаимствовать из других CMS. Мы конечно возьмём самый простейший вариант. И вот как он выглядит:

 
     
 

1) Сейчас у нас есть index.php, который содержит html, css код оформления нашего сайта, а также необходимый php код отвечающий за вывод контента и подключение других модулей; Модули которые я перечислил выше оформления не содержат вообще - только необходимый минимум php кода для обеспечения своей функциональности;

2) Шаг первый - мы должны разбить код файла index.php на 4 логические части -

header.php, menu.php, content.php, footer.php

эти файлы мы поместим в отдельную папку blocks

в файл header.php пойдёт весь код начиная от начала файла index.php и до строки

<div id="top"><a href="http://www.megainformatic.ru"><img src="images/skin/top.jpg" alt="создание игр, уроки, создание сайтов" width="800" height="111" border="0"></a></div>

включительно

 
     
 

в файл menu.php пойдёт весь код между строками -

<!-- ====== MENU ========= -->

<!-- ====== MENU ========= -->

 
     
 

в файл content.php нужно вставить код между строками -

начиная со строки следующей сразу же за блоком меню

<div id="infoleft">

и до второго появления строки

<!-- =============/ CONTENT ================ --> включительно !

оставшийся код пойдёт в файл footer.php

 
     
 

после того как эти файлы будут созданы, вам останется изменить код файла index.php на следующий -

 

 
     
 

<?php

/* ========================================================================

megainformatic cms 16.01.2011

http://www.megainformatic.ru

Автор: Синицин Андрей Сергеевич (megainformatic)


***************************

данный файл является главной частью вашего сайта - он содержит ссылки на все остальные блоки,
отвечающие за формирование - заголовочной части (header), меню (menu), основного
информационного блока - контент (content), нижней части страницы (footer).

========================================================================
*/

include "blocks/header.php";
include "blocks/menu.php";
include "blocks/content.php";
include "blocks/footer.php";

?>

 
     
 

сохранить изменения и проверить работу обновленного сайта. Если вы всё сделали правильно и всё работает без ошибок, то пришла пора добавить использование оформления шаблона в другие модули.

Каким образом ? А по аналогии с тем, что мы сотворили с index.php - мы разбили весь его код на 4 независимые части, которые теперь отвечают за формирование - заголовочной части шаблона сайта (header), блока меню (menu), контента (content), нижней части страницы (footer).

Значит чтобы превратить например модуль map.php в оформленный по шаблону мы вставляем в его начало следующий код

 
     
 

<?php

/* ========================================================================

megainformatic cms 16.01.2011

http://www.megainformatic.ru

Автор: Синицин Андрей Сергеевич (megainformatic)


***************************

модуль формирования карты сайта map.php

========================================================================
*/

$pagetitle_overloaded = "Мега Информатик - Карта сайта"; /*данная переменная определяет новый заголовок для страницы, иначе он берется из модуля header.php */

include "blocks/header.php";
include "blocks/menu.php";

 

?>

 
     
  Созданную карту сайта надо выводить в блоке контент (content.php), но поскольку этот блок по-умолчанию отвечает за вывод статей сайта, то мы его не можем взять, требуется его переделка и тут можно поступить двояко - либо создать видоизмененный файл content.php, назвав его как то по-другому и подключив директивой include, либо просто взять весь код оттуда и внеся изменения добавить в модуль map.php, мы так и поступим - вот что надо взять из модуля content.php -  
     
 

<div id="infoleft">

<div id="infoleft_content" align="justify">
<font color="#0000FF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Сегодня</font>
<?php
$mounth = date("n");
$day = date("j");
$year = date("Y");
$time = date("G:i ");
$mounth_ru = "";
switch ( $mounth )
{
case 1: {
$mounth_ru = "января";
break;
}

case 2: {
$mounth_ru = "февраля";
break;
}

case 3: {
$mounth_ru = "марта";
break;
}

case 4: {
$mounth_ru = "апреля";
break;
}

case 5: {
$mounth_ru = "мая";
break;
}

case 6: {
$mounth_ru = "июня";
break;
}

case 7: {
$mounth_ru = "июля";
break;
}

case 8: {
$mounth_ru = "августа";
break;
}

case 9: {
$mounth_ru = "сентября";
break;
}

case 10: {
$mounth_ru = "октября";
break;
}

case 11: {
$mounth_ru = "ноября";
break;
}

case 12: {
$mounth_ru = "декабря";
break;
}

}
echo "<font color=\"#0000FF\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> $day $mounth_ru $year года $time </font><br>";
?>
Здравствуйте!
Вы попали на исследовательско-креативный сайт Мега Информатик. Наша цель
- создание, накопление и популяризация знаний в области создания компьютерных
игр, а также собственно создание игр.

</div>

</div>

<div id="inforight">

<div id="inforight_content" align="justify">
Мега Информатик функционирует с 20 февраля 2006 года, когда был создан первый
сайт на хостинге pochta.ru. Много воды утекло с тех пор. Уже нет хостинга
boom.ru, на котором также размещался сайт, хостинг pochta.ru объединился
с qip.ru. Много событий произошло и в жизни самого сайта. О самых последних
новостях Вы сейчас и узнаете.
</div>

</div>



<!-- ====== CONTENT ================= -->

<div id="content-container" align="justify">

<div id="content">

 
     
  далее вставляем код, который непосредственно отвечает за оформление и вывод карты сайта  
     
 

<table width="85%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>&nbsp;</td>
<td><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Карта
Сайта megainformatic.ru</font></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>

<?php
include "config.php";

$pageid = 1;
$pagetitle = "сайт Мега Информатик - Новости";
//for ( $pageid = 1; $pageid <= 62; $pageid++ )
while ( $pagetitle != "" )
{
$pagetitle = "сайт Мега Информатик - Новости";

if ($rc = mysql_connect($dbhost, $dbuser, $dbpassw))
{
mysql_select_db($dbsite);
$table = "papers";

$sql = "SELECT * FROM $table WHERE pageid = '$pageid'";
$s = mysql_query($sql);

$a = mysql_fetch_array($s);
$pagetitle = $a[pagetitle];


if ($pagetitle == "" )
{
$pageid = 2;
$pagetitle = "сайт Мега Информатик - Новости";
break;
}

mysql_free_result($s);
}

echo "<tr>
<td>&nbsp;</td>
<td><p><a href=\"index.php?page=".$pageid."\"><font size='2'

face='Verdana, Arial, Helvetica, sans-serif'>".$pagetitle."</font></a></p></td>
<td>&nbsp;</td>
</tr>
";
$pageid++;
}

?>

</table>

</div>

</div>

<!-- =============/ CONTENT ================ -->

 
     
  и как обычно подключаем вывод нижней части страницы -  
     
  <?php
include "blocks/footer.php";
?>
 
     
  Другие модули оформить по шаблону можно аналогично.  
     
 

В следующих наших уроках нас ждут обновления системы на тему -

- переключение шаблонов через админку сайта, новый вариант системы шаблонов;

- отслеживание в админке списка статей, проектов, пользователей;