|
|
|
| В одном из своих постов я упомянул, что на моем сайте несколько десятков тысяч страниц, каждая из которых выполнена в виде самостоятельного htm файла. На что один из гуру заметил, что всё это неплохо бы переделать.
Видимо, сайты с многостраничным контентом делаются как-то иначе.
Как именно? | |
|
|
|
|
|
|
|
для: Владимир55
(24.02.2009 в 11:08)
| | Я несколько растерян. Вы тут довольно давно и создаете довольно много тем.
Поверить не могу, что Вы не знаете другого способа, заключающегося в хранении контанта в БД и не знаете, что такое шаблоны ) | |
|
|
|
|
|
|
|
для: ddhvvn
(24.02.2009 в 11:42)
| | "Поверить не могу, что Вы не знаете другого способа..."
Поверье.
И, если не сложно, то расскажите поподробнее. | |
|
|
|
|
|
|
|
для: Владимир55
(24.02.2009 в 12:03)
| | Ну если кратко (по-другому, сейчас никак, потому что, извините, с@пли ручьем и голова тяжелая) и упрощенно.
Создаете таблицу pages
-----------------------------------------------------------------
|----- page_id -----|------- title-------|---- content ----|
-----------------------------------------------------------------
|
Предположим в таблице уже есть данные.
Создаете файл header.php
<html>
<head>
<title><?=$page['title']?></title>
</head>
<body>
<!-- тут меню и все такое -->
|
Файд footer.php
Создаете файл index.php
<?php
//подключаемся к БД, это думаю, знаете как, если нет, то поищите
$page_id = $_GET['page_id'];
$get_page = mysql_query('SELECT * FROM pages WHERE page_id='.$page_id);
$page = mysql_fetch_assoc($get_page);
include('header.php');
echo $page['content'];
//или делаем все что надо и результат также выводим
include('footer.php');
?>
|
Можно "привлечь" mod_rewritre, чтоб было "покрасивее" и удобнее. | |
|
|
|
|
|
|
|
для: Владимир55
(24.02.2009 в 11:08)
| | В самом простом случае, в каждый файл включают шапку и завершение
<?php
// Шапка страницы
$pagename = "Название страницы";
$keywords = "Ключевые слова";
require_once("top.php");
// Содержимое страницы
// Завершение страницы
require_once("bottom.php");
?>
|
Это позволяет изменять ссылки в шапках, подвалах страниц и их дизайн, исправив всего два файла top.php и bottom.php, вместо того чтобы перелопачивать десятки тысяч страниц. Можно ещё более усилить разделение дизайна, воспользовавшись шаблонами - условными обозначениями которые заменяются на заранее заданные конструкции. Грубо говоря пишите вы посреди текста последовательность %LOGO%, а на странице она заменяется на логотип вашего сайта. Тогда, даже если у вас страницы по организации сильно отличаются друг от друга - можно сосредоточить все от чего зависит дизайн в одном месте. Смена дизайна в этом случае также не будет представлять трудности и не потребует много времени.
В HTML-файле все смешано, текст, оформление, логика. Вводя в систему базу данных - вы отделяете текст от логики и оформления. Вводя шаблоны, вы отделяете оформление от логики. Все три компоненты - можно будет править независимо друг от друга. Что называется "Разделяй и властвуй". | |
|
|
|
|
|
|
|
для: cheops
(24.02.2009 в 12:15)
| | Я делаю очень близко к тому, о чем Вы рассказали: хотя и без базы данных, но с применением многочисленных инклудов, позволяющих одномоментно менять ту информацию, которая является общей для всех страниц, а также подключать требующиеся сервисы (счетчики и т.п.). Есть и коды индивидуаотного назначения, исполняемые в зависимости от адреса. Но при этом количество файлов равно количеству страниц сайта.
Я понимаю, что можно сократить количество страниц, введя динамические адреса, поредством которых можно на одном файле показать хоть тысячу различных текстов.
Но я подумал, что, может быть, профессионалы знают ещё какой-то способ. | |
|
|
|
|
|
|
|
для: Владимир55
(24.02.2009 в 12:39)
| | >Но я подумал, что, может быть, профессионалы знают ещё какой-то способ.
Да нет, ничего сверхестественного нет. Да можно заменить 10000 страниц сотней, однако, в вашем случае это просто перенос текстов в базу данных. Все остальное у вас судя по всему уже давно сделано. | |
|
|
|
|
|
|
|
для: cheops
(24.02.2009 в 12:15)
| | ишите вы посреди текста последовательность %LOGO%, а на странице она заменяется на логотип вашего сайта
А я вот не понял, зачем это надо? Почему не написать сразу адрес, где логотип лежит? | |
|
|
|
|
|
|
|
для: Mookapek
(24.02.2009 в 20:00)
| | > Почему не написать сразу адрес, где логотип лежит?
А если Вы этого не знаете? В том смысле, что он меняется от определенных условий (праздники или еще что-то). | |
|
|
|
|
|
|
|
для: Mookapek
(24.02.2009 в 20:00)
| | Кроме того, текстов, где он встречается может быть много - тысячи - если вдруг понадобится поменять - может уйти много времени. При таком подходе - вы меняете адрес в одном месте, в том числе исключая возможность, что где-то забудете поправить текст. | |
|
|
|
|
|
|
|
для: cheops
(25.02.2009 в 00:49)
| | То есть, как я понял, надо завести отдельный скрипт с адресами, а потом его подключать?
url.php
<?php
$logo = "/image/logo.jpeg";
?>
|
index.php
<?php
include("url.php");
echo "<img src=$logo>";
?>
|
| |
|
|
|
|
|
|
|
для: Mookapek
(25.02.2009 в 01:19)
| | Да, что-то вроде этого, только если при выводе из базы данных интерпретировать PHP-переменные будет крайне затруднительно, то позменять шаблоны - будет гораздо проще. | |
|
|
|
|
|
|
|
для: cheops
(25.02.2009 в 02:13)
| | Вот про шаблоны я мало слышал, и в ваших книгах не встречал подобных тем. Или я что-то упустил? | |
|
|
|
|
|
|
|
для: Mookapek
(25.02.2009 в 20:58)
| | Да, мы их почти не затрагиваем в книгах. Дело в том, что это своеобразный мини-язык, а в Web и без этого языков с избытком. Чтобы что-то разумное написать приходится отбрасывать ряд составляющих. Если описывать создание сайта с использованием PHP, MySQL, XHTML, JavaScript + AJAX, Flash, регулярных выражений, шаблонов, и т.п. может получиться порядочная каша из которой будет трудно что-то понять. Создавая книги мы в первую очередь стремимся, чтобы они были понятны. | |
|
|
|
|
|
|
|
для: Mookapek
(25.02.2009 в 01:19)
| | url.php
<?
$logo = "/image/logo.jpeg";
echo '<img src='.$logo.' />';
|
index.php
<?
require_once("url.php");
|
так быстрее работать будет. | |
|
|
|
|
|
|
|
для: serjinio
(27.02.2009 в 09:14)
| | Вот ещё один прекрасный пример, если логотип выводится в 70-ти текстах, расположенных на разных уровнях сайта - вставить при помощи require_once() его в середину статьи будет очень и очень затруднительно. Тут удобнее воспользоваться шаблонами. | |
|
|
|
|
|
|
|
для: Mookapek
(25.02.2009 в 01:19)
| | пишите пожалуйста нормально,
echo "<img src=".$logo.">";
|
ну сил нет потом читать подобное... да и быстрей работать будет. | |
|
|
|
|
|
|
|
для: Alexx
(14.03.2009 в 00:26)
| | > пишите пожалуйста нормально,
Чем Ваш вариант "нормальнее"? | |
|
|
|
|
|
|
|
для: Alexx
(14.03.2009 в 00:26)
| | Нормально, это когда атрибут src в кавычки заключен
<?php
echo "<img src='$logo'>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.03.2009 в 14:07)
| |
<?php
echo '<img src="'.$logo.'" alt="'.$a.'" width="'.$w.'" height="'.$h.'" />';
?>
|
| |
|
|
|