Jump to content
  • 0

Элементы PHP на статичном сайте. Вывод шапки и подвала.


Nikolay Werner
 Share

Question

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

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

<?php include("header.php"); ?>

Всё выводится как надо и я уже обрадовался, что если мне понадобится исправить шапку, то не придется это делать на всех ...дцати страницах. Однако дальше столкнулся с проблемой ссылок.
Как быть с таким явлением, что страница не должна содержать ссылку на саму себя? То есть если я зашел на на страницу работ (site.ru/works/), то в меню пункт:

<div class="button"><a href="/works/" id="link-1">Портфолио</a><div class="button-bg" id="bg-1"></div></div>

перестал быть ссылкой. Или допустим я нахожусь на главной и логотип в шапке не является ссылкой, в то время как на всех остальных он кликабелен и ведет на главную.

Сразу родилась мысль написать несколько (три-четыре) вариантов кода шапки, благо он невелик, и после проверки url выводить тот или иной, например: "если главная, то блок-1, если работы, то блок-2, если обо мне, то блок-3, иначе (все остальные страницы) блок-4". Однако ввиду стремящихся к нулю знаний php для меня проблема написать подобное. Прошу помочь.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Эм, если не секрет - вам там помогли с киберфорума?

Тут есть загвоздка - при формировании ссылки нужен еще для неё отдельный класс (или добавка к существующему) для выделения страницы, на которой в данный момент пользователь,, что подразумевает динамическое формирование ссылки. Хотя можно и извратиться отбором по дереву... А вот лого, да, достаточно передать в его атрибут href метод-фильтр, который пропускает значение если страница не главная и ставит заглушку, если главная. В любом случае напрашивается некий класс хелпер для разделения лого и блоков, т.к блоков несколько и они однотипны и можно рендерить их сразу, хотя и в лого\блок можно захотеть добавить дополнительные данные. например, logo shema.org Поэтому любопытно, что там насоветовали, если не секрет.

Edited by bryknyk
Link to comment
Share on other sites

  • 0

Если сайт из 4 страниц, то возможно проще сделать 3-4 шапки и не переживать

 

Если же интересует решить проблему именно на php то выглядеть это будет так:

<div class="button">	<?php if ($_SERVER['REQUEST_URI'] == '/works/') : ?>	<span>Портфолио</span>	<?php else : ?>	<a href="/works/" id="link-1">Портфолио</a>	<?php endif; ?>	<div class="button-bg" id="bg-1"></div></div>

В данном коде вставлено условие которое проверяет если мы на странице '/works/' то выводит span если нет то выводит ссылку

Link to comment
Share on other sites

  • 0

Если сайт из 4 страниц, то возможно проще сделать 3-4 шапки и не переживать

 

Если же интересует решить проблему именно на php то выглядеть это будет так:

<div class="button">	<?php if ($_SERVER['REQUEST_URI'] == '/works/') : ?>	<span>Портфолио</span>	<?php else : ?>	<a href="/works/" id="link-1">Портфолио</a>	<?php endif; ?>	<div class="button-bg" id="bg-1"></div></div>

В данном коде вставлено условие которое проверяет если мы на странице '/works/' то выводит span если нет то выводит ссылку

Большое спасибо! К этому времени я проблему решил почти таким методом, но ваш код интереснее, поэтому теперь воспользуюсь им.

Эм, если не секрет - вам там помогли с киберфорума?

Тут есть загвоздка - при формировании ссылки нужен еще для неё отдельный класс (или добавка к существующему) для выделения страницы, на которой в данный момент пользователь,, что подразумевает динамическое формирование ссылки. Хотя можно и извратиться отбором по дереву... А вот лого, да, достаточно передать в его атрибут href метод-фильтр, который пропускает значение если страница не главная и ставит заглушку, если главная. В любом случае напрашивается некий класс хелпер для разделения лого и блоков, т.к блоков несколько и они однотипны и можно рендерить их сразу, хотя и в лого\блок можно захотеть добавить дополнительные данные. например, logo shema.org Поэтому любопытно, что там насоветовали, если не секрет.

Да, помогли, воспользовался сначала примерно такой конструкцией

<div class="button"><?php if ('/works/' == basename($_SERVER['REQUEST_URI'])) { echo 'Портфолио';} else {echo '<a href="/works/">Портфолио</a>';} ?><div class="button-bg" id="bg-1"></div></div>

Но предложенный здесь вариант показался интереснее (хотя метод тот же) поэтому лучше воспользуюсь им.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By Only091
      Помогите пожалуйста, не получается сделать постраничную навигацию. Делал все по урокам. в Итоге получилось сделать два разных каталога один с фильтрами другой с постраничной навигацией. И теперь я пытаюсь объединить два каталога. Но не получается. Сами файлы урока в архике каталог. Буду очень благодарен если мне помогут! catalog.phpcatalogDB.js
      каталог.7z
    • By stonelabs
      Всем привет!

      Наша компания (https://stone-labs.com/) ищет команды (!) разработчиков для реализации ряда заказных проектов. Местоположение не важно - мы практикуем удаленную работу.
       
      Обязательные требования:
      Laravel или Symfony frameworks jQuery (UI), JavaScript, Ajax, Bootstrap MySQL REST API, опыт внедрения Third-party APIs английский на уровне чтения и понимания технической документации опыт в разработке веб приложений и их архитектуры с нуля корректное использование git & pull request flow работа в дневное время во временной зоне UTC +3  
      Будет плюсом, если у вашей команды есть:
      опыт с GitLab CI/CD, Jenkins опыт с MySQL Cluster, MongoDB, PostgreSQL, Redis опыт с Vue.js опыт Linux администрирования, SSH, Nginx, DevOps  
      Если вам интересно сотрудничество, пожалуйста, пишите на наш ящик wanted@stone-labs.com 
    • By Defroing
      <form method="POST" action= "action_handler.php" id="form"> <section class="table_1"> <table class="iksweb"> <tbody> <tr> <td rowspan="3"><b>История компании «Mc donald's»</b> <h3 class="the">Кто основал компанию «Mc donald's»?</h3> <section class="conteiner"> <div class="checkbox"> <input type="checkbox" class="i-6" id="i6" value="0" name="formDoor[]"> <label for="i6" tabindex="12">Роналд Макдоналд</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="i7" value="0" name="formDoor[]"> <label for="i7" tabindex="13">Рэй Крок</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="checkbox_68" value="1" name="formDoor[]"> <label for="checkbox_68" tabindex="14">Братья Дик и Мак Макдоналд</label> </div> <div class="checkbox"> <input type="checkbox" class="i-6" id="checkbox_170" value="0" name="formDoor[]"> <label for="checkbox_170" tabindex="14">Клинт Иствуд</label> </div> <div class="out-block out-6"></div> </section> </td> </tr> </tbody> </table> <div class="dsw"> <button class="b-6" tabindex="11" id="btn-1" type="submit" name="formSubmit">Отправить</button> </div> </form> <?php mysql_connect("localhost", "root", ""); mysql_select_db('olala') or die(mysql_error()); if(isset($_GET['submit'])){ $arr=$_GET; foreach ($arr as $key => $value) { $reg="/^check/";//отбираю нужные элементы if( preg_match ($reg,$key )) { //$new_mass[]=$arr[$key]; //print_r($new_mass); echo $arr[$key]; $sql_1="INSERT INTO `table_one` (`name`) VALUES('$arr[$key]')"; mysql_query($sql_1) or die(mysql_error()); } } } ?>  Создаю опросник и хочу, чтобы чекбоксы заносились в БД(таблицу пока не создавал). Хотелось узнать на счёт php кода, сможете подсказать, что в нём не так (дать какие нибудь советы). В openserver опросник пока не выкладывал.
    • By seoww
      Доброго времени суток. Я не сильно знающий веб-разработчик, но учусь. Начал создавать интернет магазин. Написал код самого сайта, посмотрел видео как делаются интернет-магазины и теперь не могу разобраться с PhpMyAdmin. Я не понимаю как она взаимодействует с сайтом. В интернете погуглил, так ничего дельного найти и не смог. Помогите пожалуйста.
      P.S сильно в меня камни не кидайте, я только учусь 
      Всем добра!
    • By Gmansurov
      Нужно отправить текст на сайт, не знаю как это сделать и не могу найти форумы по этим темам. Google Cloud Platform. Помогите пожалуйста.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy