|
|
|
| Здравствуйте!
Зашел вот в тупик.
Пытаюсь переделать немного CMS к книге "Практика создания Web-сайтов".
Идея такая: любая страница сайта будет собираться из <DIV>'ов.
Соответственно добавил в таблицу paragraphes еще поле id_div, чтобы параграфы отображались в нудном блоке:
<body>
<?
require_once("./admin/config.php");
$query="SELECT * FROM articles WHERE id_article=".$_GET['id_article']; ?>
<div id="wrap">
<div id="1">
<? putarticle($_GET['id_article'], 1, 0, 0, ""); ?>
</div>
<div id="2">
<? putarticle($_GET['id_article'], 2, 0, 0, ""); ?>
</div>
<div id="3">
<? putarticle($_GET['id_article'], 3, 0, 0, ""); ?>
</div>
</div>
</body>
</html>
<?
function putarticle($id_article, $id_div, $pos, $listbegin, $begin_list)
{
$query = "SELECT * FROM paragraphes
WHERE id_article = $id_article AND id_div = $id_div AND pos = $pos";
$par = mysql_query($query);
if($par && mysql_num_rows($par)>0)
{
$paragraph = mysql_fetch_array($par);
// Закрытие списка
$end_list = "";
if($listbegin == 1)
{
if(!($paragraph['place'] == 3 && $paragraph['type']=='paragraph'))
{
$end_list = "</ul>";
$listbegin = 0;
}
}
if($listbegin == 2)
{
if(!($paragraph['place'] == 4 && $paragraph['type']=='paragraph'))
{
$end_list = "</ol>";
$listbegin = 0;
}
}
// Определяем тип элемента (загаловок, параграф или ссылка)
switch($paragraph['type'])
{
case 'title':
// Заголовок;
// Назначаем тегам h1, h2, h3 и т.д. класс стилевой таблицы
if($paragraph['place'] == 1) $cls = "class=artnamepage";
if($paragraph['place'] == 2) $cls = "class=artblockpage";
if($paragraph['place'] == 3) $cls = "class=artzag";
if($paragraph['place'] == 4) $cls = "class=artnamelisting";
if($paragraph['place'] == 5) $cls = "class=artnametable";
if($paragraph['place'] == 6) $cls = "class=artnamenote";
......
// Вывод параграфа
if ($paragraph['hide'] == 'show') echo $strname;
// Рекурсивно вызываем функцию putarticle()
putarticle($id_article,
$id_div,
$paragraph['id_paragraph'],
$listbegin,
$begin_list);
}
}
?>
|
Как бы мне изменить функцию putarticle из папки admin, чтобы при добавлении коректно заполнялось поле pos в таблице paragraphes?
Ведь теперь нужно вести три независимых отчета, начиная от pos=0 для первого элемента каждого <div>'а.... | |
|
|
|
|
|
|
|
для: Boris
(19.01.2007 в 15:02)
| | Не очень понятно какую роль выполняется слой? На каждую позицию теперь несколько слоёв? | |
|
|
|
|
|
|
|
для: cheops
(20.01.2007 в 02:35)
| | Идея такая:
В вашем варианте содержимое статьи выводится в одну колонку.
А если мне хочется разнообразить верстку страницы, например, часть вывести в левый столбец, часть в правый, часть вообще снизу и т.д.
Поэтому я сделал шаблон из слоев, а их взаимное расположение задам файлом CSS, который будет подключатся к основному в дополнение для каждой страницы с другой версткой. | |
|
|
|
|
|
|
|
для: Boris
(22.01.2007 в 07:32)
| | Т.е. каждый из параметров (дополнительным полем ENUM в таблице) помечается какому из слоёв он принадлежит? | |
|
|
|
|
|
|
|
для: cheops
(22.01.2007 в 11:22)
| | Спасибо за внимание ко мне.
Я уже решил эту проблему,
осталось динамическое меню пристегнуть :)
"Вывод дерева по щелчку"
Попробую показать скриншот того, что получилось:
Страница администрирования полностью повторяет дизайн соответствующей страницы сайта.
Каждый блок можно редактировать. (синие ссылки сверху). | |
|
|
|