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

Форум PHP

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

 

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

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

тема: Организация структуры сайта
 
 автор: ПБ (Дмитрий)   (23.08.2004 в 23:19)   письмо автору
 
 

Возможно это не относится именно к РНР, но может кто ответит.
Суть вопроса:
Страничка состоит из нескольких блоков. При переходе к различным страницам меняется содержимое только одного. Если мне нужно изменить что-то в других блоках (например, добавить новую ссылку или банер), приходится переделывать и перекачивать все страницы. Как лучше организовать сайт, чтобы можно было внести изменение только в одном месте, а на остальных страничках всё менялось бы автоматически (как при использовании фреймов).
И можно ли сделать, чтобы при переходе от одной страницы к другой, в браузере перезагружалось только содержимое изменяемого блока или это неэффективно?
Сайт по ссылке.

   
 
 автор: cheops   (23.08.2004 в 23:37)   письмо автору
 
   для: ПБ (Дмитрий)   (23.08.2004 в 23:19)
 

Для этого можно использовать оператор include. Пусть отдельные блоки расположены в файлах block1.php, block2.php, block3.php. "Шапка" страницы top.php и завершение bottom.php, тогда в главную страницу можно поместить код:
<?php
 
include "top.php";
 include 
"block1.php";
 include 
"block2.php";
 include 
"block3.php";
 include 
"bottom.php";
?>

И так в каждой странице, тогда код в файлах block1.php и т.п. будет в единственном экземпляре. В include можно указывать относительные пути, например
<?php
 
include "../block1.php";
?>

включает файл расположенный на уровень выше.

   
 
 автор: ПБ (Дмитрий)   (24.08.2004 в 22:56)   письмо автору
 
   для: cheops   (23.08.2004 в 23:37)
 

Вот и вопросик новый.
Включил файл, расположенный на уровень выше. Но теперь все относительные пути в нем пытаются загрузить файлы из низшего уровня.

   
 
 автор: cheops   (24.08.2004 в 23:46)   письмо автору
 
   для: ПБ (Дмитрий)   (24.08.2004 в 22:56)
 

Нужно больше информации - мы то код не видим - тяжело на слух сообразить... :) Можно забить полуотносительные пути, определив, относительно какой директории следует рассматривать относительные пути:
например, относительно корня
<base href=http://fomichev.h12.ru/>

или относительно папки foto
<base href=http://fomichev.h12.ru/foto>

К каждому относительному пути будет добавляться путь из тэга <base>...

   
 
 автор: ПБ (Дмитрий)   (25.08.2004 в 00:29)   письмо автору
 
   для: cheops   (24.08.2004 в 23:46)
 

Понятно. А можно в элементе <base> указать не абсолютный путь, а относительный к корневому каталогу?

   
 
 автор: glsv (Дизайнер)   (23.08.2004 в 23:43)   письмо автору
 
   для: ПБ (Дмитрий)   (23.08.2004 в 23:19)
 

Сейчас очень популярно использовать структуру сайта из 3 блоков (3 файлов).
1. Шапка (Верхняя часть)
2. Собственно информационная часть
3. Завершение (Нижняя часть)

Т.е. страницы разбивают на 3 части:
В 1-ом файле - шапке содержится верхняя и левая часть страницы.
Во 2 файле - середина.
В 3 - ем - правая и нижняя части страницы.

Допустим, верхняя часть будет содержаться в файле header.php
Нижняя часть - в файле bottom.php
В результате. Все ваши страницы примут вид.

<?
include "header.php";
?>
Здесь средняя часть - информационная
<?
include "bottom.php";
?>

   
 
 автор: ПБ (Дмитрий)   (23.08.2004 в 23:52)   письмо автору
 
   для: glsv (Дизайнер)   (23.08.2004 в 23:43)
 

Спасибо, побробую. Т.е. это все-таки имеет отношение к РНР.
Значит, если что не будет получаться в этом направлении, я могу спрашивать :)

   
 
 автор: Hidden Demon   (24.08.2004 в 00:03)   письмо автору
 
   для: ПБ (Дмитрий)   (23.08.2004 в 23:52)
 

А я обычно использую примерно такой шаблон:


<table>
<tr><td colspan=2>
<? include 'header.php'?>
</td></tr>
<tr><td width=120> <? include 'menu.php'?></td>
<td>
 <?
/*
  Сам код информационной части страницы
*/
 
?>
</td></tr>
<tr><td colspan=2>
 <? include 'bottom.php'?>
</td></tr></table>

   
 
 автор: ПБ (Дмитрий)   (24.08.2004 в 00:33)   письмо автору
 
   для: Hidden Demon   (24.08.2004 в 00:03)
 

Это почти то же, что и выше. Я так и сделал. В общем, работает!!!
Тогда такой вопрос. В зависимости от того, на какой я странице, т.е. по какой ссылке зашел, в левом блоке должна быть соответствующая надпись. Например, главная или новости и т.д..
Это как?

   
 
 автор: glsv (Дизайнер)   (24.08.2004 в 00:41)   письмо автору
 
   для: ПБ (Дмитрий)   (24.08.2004 в 00:33)
 

Надпись выводится в header.php
пусть это будет выглядеть примерно так:

<?
....
echo 
"<h1> $namePage </h1>";
.....
?>


Тогда вы в ваших информационных файлах перед includ-ом шапки определяете переменную $namePage.


<?
  $namePage
="Новости";
  include 
"header.php";
.........

?>


И в левой части будет выводится то название что вам нужно.

   
 
 автор: ПБ (Дмитрий)   (24.08.2004 в 01:13)   письмо автору
 
   для: glsv (Дизайнер)   (24.08.2004 в 00:41)
 

Спасибо. Пока всё.

   
 
 автор: cheops   (24.08.2004 в 00:27)   письмо автору
 
   для: ПБ (Дмитрий)   (23.08.2004 в 23:52)
 

>Значит, если что не будет получаться в этом направлении, я
>могу спрашивать :)
Здесь можно обсуждать любые Web-вопросы с уклоном на PHP. В отличие от технологии Java или ASP, PHP не имеет собственной клиентской части и является чисто серверной компонентой. Вопросам по PHP всегда сопутствуют вопросы по HTML, JavaSript, HTTP, которые являются его неотъемлемым окружением, обеспечивающим выполнение задач на клиентской стороне. Поэтому вопросы и обсуждение, посвящённые им приветствуются. Как впрочем и вопросы по SQL и приёмам работы с базами данных.

   
 
 автор: glsv (Дизайнер)   (24.08.2004 в 00:36)   письмо автору
 
   для: ПБ (Дмитрий)   (23.08.2004 в 23:52)
 

>Значит, если что не будет получаться в этом направлении, я могу спрашивать :)
Конечно :)

   
 
 автор: Dimonti   (27.08.2004 в 08:40)   письмо автору
 
   для: glsv (Дизайнер)   (24.08.2004 в 00:36)
 

Такая мысль будоражит меня давно. Ранее сделал сайт на фреймах, но в виду некоторых, всем известных минусов, отказался от этой затеи и вернулся к html. Но возможности PHP меня поражают. Теперь занимаюсь PHP
Так вот такой вопрос начинающего. Страница состоит из3 блоков, структура с верху в низ.
Но 2 блок немного наезжает на 1

   
 
 автор: glsv (Дизайнер)   (27.08.2004 в 09:12)   письмо автору
 
   для: Dimonti   (27.08.2004 в 08:40)
 

>Но 2 блок немного наезжает на 1
Ну здесь надо смотреть код HTML. Так ничего не скажешь.

PS: Если выложите код, то заведите новую тему под этот вопрос.

   
 
 автор: J.Lex   (29.08.2004 в 18:37)   письмо автору
 
   для: ПБ (Дмитрий)   (23.08.2004 в 23:19)
 

хммм а switch,case или через бд попробывать можно!
можно также реализовать админ страницу или через форму менять весь хтмл а также пхп!
возможностей куча!

   
Rambler's Top100
вверх

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