|
|
|
| Возможно это не относится именно к РНР, но может кто ответит.
Суть вопроса:
Страничка состоит из нескольких блоков. При переходе к различным страницам меняется содержимое только одного. Если мне нужно изменить что-то в других блоках (например, добавить новую ссылку или банер), приходится переделывать и перекачивать все страницы. Как лучше организовать сайт, чтобы можно было внести изменение только в одном месте, а на остальных страничках всё менялось бы автоматически (как при использовании фреймов).
И можно ли сделать, чтобы при переходе от одной страницы к другой, в браузере перезагружалось только содержимое изменяемого блока или это неэффективно?
Сайт по ссылке. | |
|
|
|
|
|
|
|
для: ПБ (Дмитрий)
(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";
?>
|
включает файл расположенный на уровень выше. | |
|
|
|
|
|
|
|
для: cheops
(23.08.2004 в 23:37)
| | Вот и вопросик новый.
Включил файл, расположенный на уровень выше. Но теперь все относительные пути в нем пытаются загрузить файлы из низшего уровня. | |
|
|
|
|
|
|
|
для: ПБ (Дмитрий)
(24.08.2004 в 22:56)
| | Нужно больше информации - мы то код не видим - тяжело на слух сообразить... :) Можно забить полуотносительные пути, определив, относительно какой директории следует рассматривать относительные пути:
например, относительно корня
<base href=http://fomichev.h12.ru/>
|
или относительно папки foto
<base href=http://fomichev.h12.ru/foto>
|
К каждому относительному пути будет добавляться путь из тэга <base>... | |
|
|
|
|
|
|
|
для: cheops
(24.08.2004 в 23:46)
| | Понятно. А можно в элементе <base> указать не абсолютный путь, а относительный к корневому каталогу? | |
|
|
|
|
|
|
|
для: ПБ (Дмитрий)
(23.08.2004 в 23:19)
| | Сейчас очень популярно использовать структуру сайта из 3 блоков (3 файлов).
1. Шапка (Верхняя часть)
2. Собственно информационная часть
3. Завершение (Нижняя часть)
Т.е. страницы разбивают на 3 части:
В 1-ом файле - шапке содержится верхняя и левая часть страницы.
Во 2 файле - середина.
В 3 - ем - правая и нижняя части страницы.
Допустим, верхняя часть будет содержаться в файле header.php
Нижняя часть - в файле bottom.php
В результате. Все ваши страницы примут вид.
<?
include "header.php";
?>
Здесь средняя часть - информационная
<?
include "bottom.php";
?>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(23.08.2004 в 23:43)
| | Спасибо, побробую. Т.е. это все-таки имеет отношение к РНР.
Значит, если что не будет получаться в этом направлении, я могу спрашивать :) | |
|
|
|
|
|
|
|
для: ПБ (Дмитрий)
(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>
|
| |
|
|
|
|
|
|
|
для: Hidden Demon
(24.08.2004 в 00:03)
| | Это почти то же, что и выше. Я так и сделал. В общем, работает!!!
Тогда такой вопрос. В зависимости от того, на какой я странице, т.е. по какой ссылке зашел, в левом блоке должна быть соответствующая надпись. Например, главная или новости и т.д..
Это как? | |
|
|
|
|
|
|
|
для: ПБ (Дмитрий)
(24.08.2004 в 00:33)
| | Надпись выводится в header.php
пусть это будет выглядеть примерно так:
<?
....
echo "<h1> $namePage </h1>";
.....
?>
|
Тогда вы в ваших информационных файлах перед includ-ом шапки определяете переменную $namePage.
<?
$namePage="Новости";
include "header.php";
.........
?>
|
И в левой части будет выводится то название что вам нужно. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(24.08.2004 в 00:41)
| | Спасибо. Пока всё. | |
|
|
|
|
|
|
|
для: ПБ (Дмитрий)
(23.08.2004 в 23:52)
| | >Значит, если что не будет получаться в этом направлении, я
>могу спрашивать :)
Здесь можно обсуждать любые Web-вопросы с уклоном на PHP. В отличие от технологии Java или ASP, PHP не имеет собственной клиентской части и является чисто серверной компонентой. Вопросам по PHP всегда сопутствуют вопросы по HTML, JavaSript, HTTP, которые являются его неотъемлемым окружением, обеспечивающим выполнение задач на клиентской стороне. Поэтому вопросы и обсуждение, посвящённые им приветствуются. Как впрочем и вопросы по SQL и приёмам работы с базами данных. | |
|
|
|
|
|
|
|
для: ПБ (Дмитрий)
(23.08.2004 в 23:52)
| | >Значит, если что не будет получаться в этом направлении, я могу спрашивать :)
Конечно :) | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(24.08.2004 в 00:36)
| | Такая мысль будоражит меня давно. Ранее сделал сайт на фреймах, но в виду некоторых, всем известных минусов, отказался от этой затеи и вернулся к html. Но возможности PHP меня поражают. Теперь занимаюсь PHP
Так вот такой вопрос начинающего. Страница состоит из3 блоков, структура с верху в низ.
Но 2 блок немного наезжает на 1 | |
|
|
|
|
|
|
|
для: Dimonti
(27.08.2004 в 08:40)
| | >Но 2 блок немного наезжает на 1
Ну здесь надо смотреть код HTML. Так ничего не скажешь.
PS: Если выложите код, то заведите новую тему под этот вопрос. | |
|
|
|
|
|
|
|
для: ПБ (Дмитрий)
(23.08.2004 в 23:19)
| | хммм а switch,case или через бд попробывать можно!
можно также реализовать админ страницу или через форму менять весь хтмл а также пхп!
возможностей куча! | |
|
|
|