использовать общий шаблон для всех страниц сайта - PullRequest
0 голосов
/ 25 июля 2010

хорошо, название не имело особого смысла, но это то, что я планирую сделать. Я разработал шаблон для моего сайта, с телом головы и div для конкретных вещей и всего. Веб-сайт состоит из файла заголовка, файла нижнего колонтитула, правого столбца, выпадающего меню верхнего колонтитула и основного тела, которое будет отображаться под выпадающим меню верхнего колонтитула, слева от правого столбца и над нижним колонтитулом. Прямо сейчас есть некоторый контент, это основная часть тела. Я пытаюсь добиться того, чтобы при нажатии на любую ссылку в любой другой части веб-страницы я хотел, чтобы этот контент отображался в этом основном теле. Прямо сейчас я копирую этот шаблон на каждую страницу, но я хочу сохранить этот стандартный шаблон как index.php, а затем заменить основной контент, основываясь на нажатой ссылке. Это сайт на основе php. Есть ли примеры, где я могу увидеть, как этого можно достичь? или есть ли стандартная процедура для этого. Пожалуйста, ведите меня, спасибо.

Ответы [ 4 ]

1 голос
/ 25 июля 2010

Вот очень простой способ сделать это:

index.php

<?php

function putPage($page) {
    // put a list of allowed pages here
    $allowed = array('page1', 'page2');

    $page = trim($page);
    $page = (in_array($page, $allowed)) ? $page : 'home';

    echo @file_get_contents('.\html\\' . $page . '.html');

}

?>

<html>
    <head>
        <title>Title</title>
        <!-- put stylesheets, js files, etc. here -->
    </head>
    <body>
        <!-- you can have a nav bar or something here -->
        <div class="navbar">
            <a href="?page=page1">Page 1</a> <a href="?page=page2">Page 2</a>
        </div>
        <?php  putPage($_GET['page']); ?>
        <!-- put a footer here -->
    </body>
</html>

Затем просто поместите страницы .html с содержимым в подпапку html. Скрипт извлечет их и вставит в тело.

0 голосов
/ 25 июля 2010

Я использую это:

<?php

        $pag = array(1 => 'Home.php', 3 => '2.php');
        echo require $pag[(int)@$_GET['p'] | 1];
?>
0 голосов
/ 25 июля 2010

Это называется либо представлением шаблона , поскольку вы полностью строите HTML-код своей ссылки в PHP.Вы создаете шаблон макета страницы, содержащий несколько подстановочных знаков.Вы загружаете шаблон в строку и используете строковые замены или функции XML (более причудливые, но только наводящие на размышления, если преобразование более сложное).

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

0 голосов
/ 25 июля 2010

Есть несколько способов добиться этого. От руки два очевидных, которые я бы сказал:

  1. Ajax для получения контента с обработчиками событий, прикрепленными к ссылкам / кнопкам / меню, которые генерируют основное содержимое, специфичное для запроса.
    Это требует сценариев на стороне сервера и клиента для достижения. W3 AJAX

  2. Или используйте mod_rewrite с apache, чтобы определить, какой контент загружать на страницу index.php. Например, при перезаписи мода вы можете иметь ссылку http://www.site.com/subject/content/item# в качестве структуры ссылки. Это может привести к www.site.com/index.php?subject=&content=&id= И эти значения GET позволят вам определить, что отображать в области основного контента. Для этого требуются сценарии на стороне сервера и настройка apache или (любого веб-сервера с функциональностью, аналогичной mod_rewrite). mod_rewrite - apache

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...