Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как создаются большие сайты?
 
 автор: Владимир55   (24.02.2009 в 11:08)   письмо автору
 
 

В одном из своих постов я упомянул, что на моем сайте несколько десятков тысяч страниц, каждая из которых выполнена в виде самостоятельного htm файла. На что один из гуру заметил, что всё это неплохо бы переделать.

Видимо, сайты с многостраничным контентом делаются как-то иначе.

Как именно?

  Ответить  
 
 автор: ddhvvn   (24.02.2009 в 11:42)   письмо автору
 
   для: Владимир55   (24.02.2009 в 11:08)
 

Я несколько растерян. Вы тут довольно давно и создаете довольно много тем.
Поверить не могу, что Вы не знаете другого способа, заключающегося в хранении контанта в БД и не знаете, что такое шаблоны )

  Ответить  
 
 автор: Владимир55   (24.02.2009 в 12:03)   письмо автору
 
   для: ddhvvn   (24.02.2009 в 11:42)
 

"Поверить не могу, что Вы не знаете другого способа..."

Поверье.
И, если не сложно, то расскажите поподробнее.

  Ответить  
 
 автор: ddhvvn   (24.02.2009 в 12:15)   письмо автору
 
   для: Владимир55   (24.02.2009 в 12:03)
 

Ну если кратко (по-другому, сейчас никак, потому что, извините, с@пли ручьем и голова тяжелая) и упрощенно.
Создаете таблицу pages

-----------------------------------------------------------------
|----- page_id -----|------- title-------|---- content ----|
-----------------------------------------------------------------

Предположим в таблице уже есть данные.
Создаете файл header.php

<html>
<head>
<title><?=$page['title']?></title>
</head>
<body>
<!-- тут меню и все такое -->

Файд footer.php
</body>
</html>

Создаете файл 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, чтоб было "покрасивее" и удобнее.

  Ответить  
 
 автор: cheops   (24.02.2009 в 12:15)   письмо автору
 
   для: Владимир55   (24.02.2009 в 11:08)
 

В самом простом случае, в каждый файл включают шапку и завершение
<?php
  
// Шапка страницы
  
$pagename "Название страницы";
  
$keywords "Ключевые слова";
  require_once(
"top.php");

  
// Содержимое страницы

  // Завершение страницы
  
require_once("bottom.php");
?>

Это позволяет изменять ссылки в шапках, подвалах страниц и их дизайн, исправив всего два файла top.php и bottom.php, вместо того чтобы перелопачивать десятки тысяч страниц. Можно ещё более усилить разделение дизайна, воспользовавшись шаблонами - условными обозначениями которые заменяются на заранее заданные конструкции. Грубо говоря пишите вы посреди текста последовательность %LOGO%, а на странице она заменяется на логотип вашего сайта. Тогда, даже если у вас страницы по организации сильно отличаются друг от друга - можно сосредоточить все от чего зависит дизайн в одном месте. Смена дизайна в этом случае также не будет представлять трудности и не потребует много времени.

В HTML-файле все смешано, текст, оформление, логика. Вводя в систему базу данных - вы отделяете текст от логики и оформления. Вводя шаблоны, вы отделяете оформление от логики. Все три компоненты - можно будет править независимо друг от друга. Что называется "Разделяй и властвуй".

  Ответить  
 
 автор: Владимир55   (24.02.2009 в 12:39)   письмо автору
 
   для: cheops   (24.02.2009 в 12:15)
 

Я делаю очень близко к тому, о чем Вы рассказали: хотя и без базы данных, но с применением многочисленных инклудов, позволяющих одномоментно менять ту информацию, которая является общей для всех страниц, а также подключать требующиеся сервисы (счетчики и т.п.). Есть и коды индивидуаотного назначения, исполняемые в зависимости от адреса. Но при этом количество файлов равно количеству страниц сайта.

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

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

  Ответить  
 
 автор: cheops   (24.02.2009 в 13:05)   письмо автору
 
   для: Владимир55   (24.02.2009 в 12:39)
 

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

  Ответить  
 
 автор: Mookapek   (24.02.2009 в 20:00)   письмо автору
 
   для: cheops   (24.02.2009 в 12:15)
 

ишите вы посреди текста последовательность %LOGO%, а на странице она заменяется на логотип вашего сайта
А я вот не понял, зачем это надо? Почему не написать сразу адрес, где логотип лежит?

  Ответить  
 
 автор: BinLaden   (24.02.2009 в 20:27)   письмо автору
 
   для: Mookapek   (24.02.2009 в 20:00)
 

> Почему не написать сразу адрес, где логотип лежит?

А если Вы этого не знаете? В том смысле, что он меняется от определенных условий (праздники или еще что-то).

  Ответить  
 
 автор: cheops   (25.02.2009 в 00:49)   письмо автору
 
   для: Mookapek   (24.02.2009 в 20:00)
 

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

  Ответить  
 
 автор: Mookapek   (25.02.2009 в 01:19)   письмо автору
 
   для: cheops   (25.02.2009 в 00:49)
 

То есть, как я понял, надо завести отдельный скрипт с адресами, а потом его подключать?
url.php
<?php 
$logo 
"/image/logo.jpeg";
?>

index.php

<?php
include("url.php");

echo 
"<img src=$logo>";
?>

  Ответить  
 
 автор: cheops   (25.02.2009 в 02:13)   письмо автору
 
   для: Mookapek   (25.02.2009 в 01:19)
 

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

  Ответить  
 
 автор: Mookapek   (25.02.2009 в 20:58)   письмо автору
 
   для: cheops   (25.02.2009 в 02:13)
 

Вот про шаблоны я мало слышал, и в ваших книгах не встречал подобных тем. Или я что-то упустил?

  Ответить  
 
 автор: cheops   (26.02.2009 в 09:09)   письмо автору
 
   для: Mookapek   (25.02.2009 в 20:58)
 

Да, мы их почти не затрагиваем в книгах. Дело в том, что это своеобразный мини-язык, а в Web и без этого языков с избытком. Чтобы что-то разумное написать приходится отбрасывать ряд составляющих. Если описывать создание сайта с использованием PHP, MySQL, XHTML, JavaScript + AJAX, Flash, регулярных выражений, шаблонов, и т.п. может получиться порядочная каша из которой будет трудно что-то понять. Создавая книги мы в первую очередь стремимся, чтобы они были понятны.

  Ответить  
 
 автор: serjinio   (27.02.2009 в 09:14)   письмо автору
 
   для: Mookapek   (25.02.2009 в 01:19)
 

url.php
<?
$logo 
"/image/logo.jpeg";
echo 
'<img src='.$logo.' />'
 


index.php
<?
require_once("url.php");
 


так быстрее работать будет.

  Ответить  
 
 автор: cheops   (27.02.2009 в 12:54)   письмо автору
 
   для: serjinio   (27.02.2009 в 09:14)
 

Вот ещё один прекрасный пример, если логотип выводится в 70-ти текстах, расположенных на разных уровнях сайта - вставить при помощи require_once() его в середину статьи будет очень и очень затруднительно. Тут удобнее воспользоваться шаблонами.

  Ответить  
 
 автор: Alexx   (14.03.2009 в 00:26)   письмо автору
 
   для: Mookapek   (25.02.2009 в 01:19)
 

пишите пожалуйста нормально,


   echo "<img src=".$logo.">";


ну сил нет потом читать подобное... да и быстрей работать будет.

  Ответить  
 
 автор: Гекко   (14.03.2009 в 11:43)   письмо автору
 
   для: Alexx   (14.03.2009 в 00:26)
 

> пишите пожалуйста нормально,

Чем Ваш вариант "нормальнее"?

  Ответить  
 
 автор: cheops   (14.03.2009 в 14:07)   письмо автору
 
   для: Alexx   (14.03.2009 в 00:26)
 

Нормально, это когда атрибут src в кавычки заключен
<?php
   
echo "<img src='$logo'>";
?>

  Ответить  
 
 автор: serjinio   (16.03.2009 в 07:00)   письмо автору
 
   для: cheops   (14.03.2009 в 14:07)
 

<?php
   
echo '<img src="'.$logo.'" alt="'.$a.'" width="'.$w.'" height="'.$h.'" />';
?> 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования