2014-09-11 2 views
0

Я создаю свой второй сайт и хочу использовать PHP, поэтому я могу легко вносить изменения в верхний и нижний колонтитулы каждой страницы без необходимости изменять более 40 страниц.Смущает PHP верхние и нижние колонтитулы

Я понимаю, что вы создаете страницу header.php и страницу footer.php, затем используйте include, чтобы поместить ее на любую страницу, которую вы создаете, однако я не хочу, чтобы заголовок включал doctype или теги заголовка или что-то еще, Я просто хочу, чтобы «тело» было частью заголовка, если хотите. фактические теги на каждой странице должны быть отдельными, поскольку это, по-видимому, самый простой способ сохранить названия страниц на каждой странице, возможно ли это? Я просмотрел веб-сайт, и большинство людей предлагает использовать какой-либо PHP-код для изменения названия на каждой странице, что, как представляется, является обходным решением вместо того, чтобы фактически предотвратить проблему в первую очередь, какие-либо идеи?

Благодаря

+1

Итак, как выглядит ваша текущая структура и код? –

+0

Это путь. Я всегда использую Smarty, потому что мне нравится его система с использованием блоков шаблонов и расширения макетов. [Smarty {block}] (http://www.smarty.net/docs/en/language.function.block.tpl) –

+0

Могу заставить меня звучать ослепляюще глупо, но в основном я закодировал всю домашнюю страницу этого сайта, в просто HTML и CSS по существу - только сейчас я смотрю на разделение верхних и нижних колонтитулов. –

ответ

1

Довольно простой Даниил, вы можете поместить включаемый файл в любом месте вы хотите.

Например:

<html> 
<head> 
    <title>This is your title pages</title> 
    <meta>This is your individual page meta data</meta> 
</head> 
<body> 
    <?php include 'header.php' ?> 
    <h2>This is your page title</h2> 
    <p>This is your page content</p> 
    <?php include 'footer.php' ?> 
</body> 
</html> 

И ваш заголовочный файл может выглядеть следующим образом:

<header> 
    <h1>This is your Site Title</h1> 
</header> 

И одинаково футере:

<footer> 
    <p>Your copyright info</p> 
</footer> 

Это делает заголовок включаемый файл на самом деле не тег head, где я думаю, что вы сбились с толку.

Надеюсь, что имеет смысл.

UPDATE: Так что в моем примере, фактические скомпилированные сделает так:

<html> 
<head> 
    <title>This is your title pages</title> 
    <meta>This is your individual page meta data</meta> 
</head> 
<body> 
    <header> 
     <h1>This is your Site Title</h1> 
    </header> 
    <h2>This is your page title</h2> 
    <p>This is your page content</p> 
    <footer> 
     <p>Your copyright info</p> 
    </footer> 
</body> 
</html> 
+0

Спасибо, Ли, очень хорошо объяснил. так что в основном я могу использовать php для размещения «фрагментов кода» в любом месте страницы? –

+0

Да, в очень простой форме. Это то, что включает. Основной файл читает строку «include» и в основном компилирует содержимое включенного файла в том месте, где есть include. – Lee

2

Это не обходной путь, это просто самый простой способ для достижения этой цели. Конечно, вы можете поместить некоторую логику и в header.php включить дополнительный файл с заголовком и т. Д. Для этой конкретной страницы, но почему сделать вашу жизнь намного сложнее?

<?php 

$title = 'My Title'; 
$stuff = 'Some random stuff'; 

include('header.php'); 

А потом в header.php у вас есть

<?php 

... 

<title> 
    <?php if(isset($title)) echo $title; else echo 'Generic Title'; ?> 
</title> 
-1

Я бежал всю гамму «делать сайты» и не серьезно с верхним/нижним колонтитулом до Я начал использовать фреймворк WordPress. И это было после ручного кодирования двух CMS и собственного набора электронной коммерции. : \ Мне нравится ответ @ mariobgr, это отличный первый шаг к чему-то модульному построению сайта.

Что я думаю, что вы ищете, скорее является ответом для страницы/контейнера/контента. header.php классически относятся к заголовкам HTML, проверке URL/POST/GET и безопасности. Иногда там работает javascript. Обычно header.php не будет иметь <body> или <HTML> теги, это больше. Теперь, когда вы открываете эту концепцию, я предлагаю вам подготовиться к CMS; например wordpress: индивидуальный контент находится в базе данных MySql, а затем у вас есть несколько файлов для обработки разнообразных функциональных ролей на страницах вашего сайта.

Тип несвязанного, но еще одного примера включает в себя: Мое последнее неофициальное «фреймворк» предназначалось для довольно значительного инструмента генератора отчетов о продажах.Вот пример иерархии; отступы в каждой include:

index.php 
    db.php   // connects to database 
    inc.js.php  // everything that's in <script> tags 
    inc.container.php  // isn't actually a page, is 1/3 page wide 
     class.dates.php  // meh, should be miraculously built in 
     inc.post.php  // POST processing to prefill form variables 
     inc.controls.php // Form w/buttons to change report info 
     inc.query.php  // epic MySql query 
     inc.report.php  // Churns the query data and spits out tables 
     inc.graph.php  // graphs data from above via CSS backround 
css/   // this is for jQuery 
js/    // this is for jQuery 
reports.css  // this is for me 

В действительности то, что начиналось как одна страница/index.phpinc.container.php стали, а затем я изменил index.php так, чтобы он мог иметь несколько отчетов «страниц» на одной веб-странице.

Я не очень ООП, поэтому я включаю все, что мне нужно, в index.php или container.php, хотя инк включает более глубокие уровни. Несколько ключевых переменных находятся в глобальной области, но container.php имеет машину состояний, которая управляет логикой. Это в основном «страница», хотя я отформатировал печатный носитель CSS, чтобы сделать 3 на две строки.

jQuery/Ajax может динамически добавлять и удалять больше контейнеров через элементы управления в каждом контейнере, так что это красиво. Это позволяет легко сравнивать аналогичные периоды времени или отчет за месяцы, кварталы и т. Д. Трюк к этому увеличил глобальную переменную javascript, чтобы jQuery знал, какой идентификатор div добавить или убить.

+0

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

Смежные вопросы