Хочу научиться делать инклуды

Evgeniy T.
На сайте с 29.04.2007
Offline
101
1400

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

Николай В.
На сайте с 07.09.2006
Offline
62
#1
S
На сайте с 13.07.2007
Offline
56
#2

В Google, Яндекс, Rambler.

PS: тем, кто мне минусы кидает в репу - заметьте, тема не в разделе "Любые вопросы от новичков".

AN
На сайте с 14.03.2007
Offline
47
#3

Создаем два файла index.php и templete.php.

В index.php пишем:

<?php 

$content='Тут контент';
$title='Название страницы';
$meta1='Описание';
$meta2='Ключевые слова';
include("template.php");?>

В templete.php пишем:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head><title><?php echo ($title);?></title>
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251" />
<meta name="description" content="<?php echo ($meta1);?>" />
<meta name="keywords" content="<?php echo ($meta2);?>" />
<link rel="stylesheet" href="style.css" type="text/css" media="all" />
</head>
<body>
Тут код страницы, который одинаков для всех страниц, в нужном месте
прописываем <?php echo ($content);?>
</body></html>

Естественно можно вставлять любое количество переменных.

Верстка. Портфолио (http://webvector.ru/)
Николай В.
На сайте с 07.09.2006
Offline
62
#4

ASA_NN, на мой взгляд предложенное вами решение обладает парой минусов. Во-первых, при включенном register_globals, если файл с шаблоном доступен через http, мы получаем серьезную дыру. А во-вторых, очень неудобно запихивать контент в переменную, по крайней мере в ситуации ТС.

Поэтому я рекомендую простые шаблоны делить на «до контента» и «после контента» и оборачивать эти части в функции, а переменные передавать как параметры или объявлять их как global внутри функций.

template.php


<?
function top()
{
global $title, $meta1, $meta2;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head><title><?php echo ($title);?></title>
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251" />
<meta name="description" content="<?php echo ($meta1);?>" />
<meta name="keywords" content="<?php echo ($meta2);?>" />
<link rel="stylesheet" href="style.css" type="text/css" media="all" />
</head>
<body>
Тут код страницы, который одинаков для всех страниц, в нужном месте
прописываем
<?
}

function bottom()
{
?>
</body></html>
<?
}
?>

page.php


<?php
$title='Название страницы';
$meta1='Описание';
$meta2='Ключевые слова';

include("template.php");

top();
?>
Контент
<?
bottom();
?>
S
На сайте с 13.07.2007
Offline
56
#5
Николай В.:
Во-первых, при включенном register_globals, если файл с шаблоном доступен через http, мы получаем серьезную дыру.

Из чего делаем соответствующие выводы:

1) запихивать все templates в отдельную папку и закрывать к ней доступ и индексацию.

2) отключать register_globals.

И уж в ситуации ТС лучше запихивать в файл template контент.

I0
На сайте с 14.10.2006
Offline
142
#6

header.php

----------

<html>

<head>

<title><?=$title?></title>

</head>

<body>

----------

index.php

---------

<?

$title = 'Главная';

include 'header.php';

?>

<h1>Главная</h1>

Контент...Контент...

<?

include 'footer.php';

?>

---------

footer.php

----------

<hr>

Счетчики

<hr>

</body>

</html>

----------

Анализ сайта ( https://pr-cy.ru ) Проверка позиций - LINE ( https://line.pr-cy.ru ) 0,025 Р / ключ (конкуренты бесплатно)
L
На сайте с 11.06.2006
Offline
44
#7

Для маленьких сайтов-то проще и без php всякого...

Файлы обозвать .shtml и вставлять в них где надо:

<!--#include virtual="menu.txt"-->

а в файл menu.txt - хтмл код...

проще некуда и безопасность на уровне;)

regta
На сайте с 15.04.2006
Offline
320
#8
londonetz:
<!--#include virtual="menu.txt"-->

а в файл menu.txt - хтмл код...

Действительно, для минисайтов ssi - наиболее простое решение.

Только лучше всем файлам, даже инклюдам, присваивать расширение .shtm или .shtml

Тогда ssi-инструкции можно использовать во всех файлах.

Например, в том же самом файле menu можно избавиться от необходимости странице ссылаться на саму себя:

<!--#if expr="$DOCUMENT_URI=/index.shtml/" -->Это морда

<!--#else --><a href="index.shtml">Кликни сюда, попадешь на морду</a>

<!--#endif -->

Цитируйте, плиз, историю переписки в личке. Спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий