Главная · Статьи · Файлы · Фото галерея · Видео онлайн
Библиотека
По авторам
По жанрам
Поиск по названию
Навигация
Главная
Статьи
Файлы
Обратная связь
Фото галерея
Видео онлайн
Поиск

Работа
Заказать сайт или программу

Примеры работ
Последние статьи
Технология уничтожения
«Мы – русские»
Ф.М. Достоевский - Д...
Европа против России...
Первые английские ко...
Reklama

Урок 14. Движок сайта

Таблицы


gmenu


CREATE TABLE IF NOT EXISTS `gmenu` (

`id` smallint(3) NOT NULL auto_increment,

`name` text NOT NULL,

`mod` varchar(20) NOT NULL default '',

`por` smallint(6) NOT NULL default '0',

`lr` varchar(1) NOT NULL default 'l',

`php` int(1) NOT NULL default '0',

PRIMARY KEY (`id`),

KEY `por` (`por`)

)



INSERT INTO `gmenu` (`id`, `name`, `mod`, `por`, `lr`, `php`) VALUES

(6, 'Статистика', '', 3, 'r', 0),

(4, 'Навигация', '', 1, 'l', 0);

 


описание полей таблицы дано в уроке 14.




menu


CREATE TABLE IF NOT EXISTS `menu` (

`idm` smallint(3) NOT NULL auto_increment,

`id_rodm` smallint(3) NOT NULL default '0',

`namem` varchar(30) NOT NULL default '',

`modm` varchar(20) NOT NULL default '',

PRIMARY KEY (`idm`)

)





INSERT INTO `menu` (`idm`, `id_rodm`, `namem`, `modm`) VALUES

(1, 4, 'Новости', 'news'),

(2, 4, 'Статьи', 'stati'),

(3, 4, 'Файлы', 'file'),

(4, 4, 'Юмор', 'prikol'),

(5, 4, 'Видио', 'vidio');

 


idm - ID записи


id_rodm  - ID
главного меню к которому привязан данный пункт меню


namem - имя пункта меню, которое будет выведено на
сайт


modm - имя модуля,
который будет вызываться при выборе этого пункта






modules


CREATE TABLE IF NOT EXISTS `modules` (

`id` smallint(6) NOT NULL auto_increment,

`module` varchar(30) NOT NULL default '',

`pathm` varchar(100) NOT NULL default '',

PRIMARY KEY (`id`)

)



INSERT INTO `modules` (`id`, `module`, `pathm`) VALUES

(1, 'news', 'modules/news/index.php'),

(2, 'prikol', 'modules/prikol/index.php'),

(3, 'stati', 'modules/stati/index.php'),

(4, 'file', 'modules/file/index.php'),

(5, 'vidio', 'modules/vidio/index.php'),

(6, 'reg', 'modules/login/reg.php');

 


id - ID записи


module - имя модуля


pathm - путь к файлу модуля


Общая структура сайта


Сайт будет строится по такой структуре.


index.php основной файл сайта


inc папка в которой лежат вспомогательные
файлы


modules папка в которой лежат папки и файлы
подключаемых модулей


 


В папке inc мы положим файлы


head.php - файл в котором описан заголовок сайта с
банером


foot.php - файл в котором описан низ сайта с
копирайтом и т.д.


consait.php - файл конфигурации сайла, с насройками
для подключения к базе MySQL и стандартными функциями.


menul.php- файл вывода левой колонки блоков


menur.php - файл вывода правой колонки блоков


module.php  - файл обработки и вывода модулей
на сайт




disign


CREATE TABLE IF NOT EXISTS `disign` (

`name` varchar(20) NOT NULL default '',

`text` longtext NOT NULL

)





INSERT INTO `disign` (`name`, `text`) VALUES

('foot', '<TABLE cellSpacing=0 cellPadding=0 width=991 border=0 marginheight="0"
\r\nmarginwidth="0" topmargin="0" leftmargin="0">\r\n <TBODY>\r\n <TR>\r\n <TD
vAlign=top width=60><IMG height=41 \r\n src="img/footer_left.gif"
width=60></TD>\r\n <TD vAlign=center align=middle width="100%" \r\n background="img/footer_center.gif"><A
\r\n href=""><B><A href="mailto:allmustdie@citadelchaos.ru"><FONT \r\n color=#ffffff>AllMustDie</A>&nbsp;Progamming
2000-2009</B></FONT></A><br></font><font color=red>Использование информации с
сайта без согласия авторов запрещено</font></TD>\r\n <TD vAlign=top width=60><IMG
height=41 \r\n src="img/footer_right.gif" \r\nwidth=60></TD></TR></TBODY></TABLE>'),

('head', '<center><table border="0" cellpadding="0" cellspacing="0" >\r\n <tr>\r\n<img
src="img/logo.gif">\r\n </tr>\r\n</table>\r\n</center>');

 


Тут всего 2 записи - для верха файла и низа.


name - имя блока


text - содержимое блока


Шаблон сайт


В принципе шаблон вы можете создать свой, со своим оформлением.


В качестве шаблона сайта будем использовать таблицу вида





<table border="0" width="100%" >

<tr>

<td width="100%">&nbsp;</td>

</tr>

<tr>

<td width="16%">&nbsp;</td>

<td width="67%">&nbsp;</td>

<td width="17%">&nbsp;</td>

</tr>

<tr>

<td width="100%">&nbsp;</td>

</tr>

</table>


Вид таблицы быдет такой. Только линии таблицы будет не видиными. Для этого
указывается border="0". Т.е. ширина линии равно 0. И потому не видима.


Вывод будет осуществлятся в этик ячейках таблицы














head.php
menul.php module.php menur.php
foot.php

Для вызова вспомогательных файлов используем include.


В файле index.php теперь  пропишем все, что мы
тут напридумывали.


<table border="0" width="100%" >

<tr>

<td width="100%"><? include("head.php");</td>

</tr>

<tr>

<td width="16%"><? include("menul.php");</td>

<td width="67%"><? include("module.php");</td>

<td width="17%"><? include("menur.php");</td>

</tr>

<tr>

<td width="100%"><? include("foot.php");</td>

</tr>

</table>


Вспомогательные файлы


consite.php описание содерджимого этого
файла в Уроке 14.


$sql_host = "";

$sql_user = "";

$sql_pass = "";

$sql_db = "";





$link = mysql_connect($sql_host, $sql_user, $sql_pass)or die("Связи нет\n");

mysql_select_db($sql_db)or die("Нету связи никакой - лучше связи ....\n");

 


 


head.php


<?

require "consait.php";



$query="SELECT * FROM disign where name=\"head\"";

$result=mysql_query($query);

while ($row = mysql_fetch_array($result))

{

$text = $row[text];

}

echo $text;



?>


Как видим из файла disign мы выбераем запись с
именем - head. И выводим содерживое поля
text на экран.


foot.php


<?

require "consait.php";



$query="SELECT * FROM disign where name=\"foot\"";

$result=mysql_query($query);

while ($row = mysql_fetch_array($result))

{

$text = $row[text];

}

echo $text;



?>


Тоже самое, только выбираем запись "foot".


menul.php


<?

require "consait.php";



$query="SELECT * FROM gmenu where lr='l' ORDER BY por ASC ";

$result=mysql_query($query);

while ($row = mysql_fetch_array($result))

{

$id = $row[id];

$name = $row[name];

$mod = $row[mod];

$por = $row[por];

$php = $row[php];

if($php==1)

echo "<hr><h5>",eval($name),"</h5>";

else

echo "<hr><h5>$name</h5>";



//Под меню



$query1="SELECT * FROM menu where id_rodm=$id group by namem";

$result1=mysql_query($query1);

while ($rowm = mysql_fetch_array($result1))

{

$id_rodm = $rowm[id_rodm];

$namem = $rowm[namem];

$modm = $rowm[modm];

$porm = $rowm[porm];

echo "<li><a href=\"?modul=$modm\">$namem</a><br></li>";



}

//конец подменю

}



?>


Левое меню. Из gmenu выбираем блоки имеющие
значение поля lr равное l.


Значение поля php определяет выводим ли мы просто
содерживое поля name или обрабатываем его содержимое
как PHP-код. Для этого проверяем значение. Если оно
равно 1, то значение name выполняем, как код. Для
этого используется функция eval. Эта функция вы
полняет строку текста как РНР-код. Так же по полю por
осуществляется сортировка выведеного на экран.  ORDER BY
por ASC
 сортировка в алфавитном порядке.  ORDER
BY por DESC
 - в обратном порядке.


Внутри цикла выводящего заголовки блоков, выводим пункты меню этого блока.
SELECT * FROM menu where id_rodm=$id group by namem 
- выбираем по значению ID равного
ID-
блока из gmenu.


Выводим полученные значения как ссылки вида ?modul=<имя>


menur.php


<?

require "consait.php";



$query="SELECT * FROM gmenu where lr='r' ORDER BY por ASC ";

$result=mysql_query($query);

while ($row = mysql_fetch_array($result))

{

$id = $row[id];

$name = $row[name];

$mod = $row[mod];

$por = $row[por];

$php = $row[php];



if($php==1)

echo "<hr><h5>",eval($name),"</h5>";

else

echo "<hr><h5>$name</h5>";



//Под меню



$query1="SELECT * FROM menu where id_rodm=$id group by namem";

$result1=mysql_query($query1);

while ($rowm = mysql_fetch_array($result1))

{

$id_rodm = $rowm[id_rodm];

$namem = $rowm[namem];

$modm = $rowm[modm];

$porm = $rowm[porm];

echo "<li><a href=\"?modul=$modm\">$namem</a><br></li>";



}

//конец подменю



}



?>


 


Тоже самое, что и левое меню. Но для правой части нашего сайта.


module.php


<?

require "consait.php";

if($modul)

$query="SELECT * FROM modules where module=\"$modul\"";

else

$query="SELECT * FROM modules where module=\"news\"";

$result=mysql_query($query);

while ($row = mysql_fetch_array($result))

{

$id = $row[id];

$module = $row[module];

$pathm = $row[pathm];

}

include "$pathm";



?>


Файл обрабатывающий ссылку ?modul=<имя> 
для вывода указанного модуля.


По имени переменной modul из ссылки мы из базы
выбираем нужный файл для выполнения - include "$pathm";.
Если значения переменной modul не указано,  то
вызывается модуль news. У меня это модуль новостей.
Т.е. вы попадете автоматом на главную страницу сайта.


На следующем уроке рассмотрим регистрацию и авторизацию на сайте.


На данный момент до ума не доведено.


 


Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь.
Сейчас на сайте
Гостей: 1
На сайте нет зарегистрированных пользователей

Пользователей: 1
Не активированный пользователь: 0
новичок: AMD
Статистика
Яндекс.Метрика
Rambler's Top100


PR-CY.ru
Protected by Copyscape Online Plagiarism Checker
Back To Top Back To Top Back To Top

Best Viewed 1280x1024