Используя php, чтобы показать другое изображение логотипа заголовка, если класс тела дома? - PullRequest
3 голосов
/ 22 января 2012

Я работаю на веб-сайте, где домашняя страница имеет темный фон, но все остальные страницы имеют белый фон.

Я использую pho, чтобы добавить заголовочный файл для отображения логотипа, панель навигации,телефонные данные и т. д. на каждой странице.

Поскольку домашняя страница имеет темный фон, логотип имеет белый текст, а логотип, используемый на других страницах, имеет темный текст.

Я ищудля способа использования php, так что я включаю один заголовочный файл на каждой странице.Если домашняя страница имеет класс «home», отображается изображение логотипа с белым текстом, а на всех других страницах изображение логотипа с темным текстом.

что-то вроде этих строк:

if (body class="home") {

<img src="images/logo-with-white-text" />

else {

<img src="images/logo-with-dark-text" />

};

Возможно ли это?

Любая помощь или совет будет принята с благодарностью:)

Ответы [ 4 ]

4 голосов
/ 22 января 2012

Я предполагаю, что ваша домашняя страница в настоящее время выглядит примерно так:

<html>
    <head>...</head>
    <body class="home">
        ...
        <?php include 'header.php'; ?>
        ...

Вы можете сделать класс переменной и ссылаться на эту переменную из включенного заголовочного файла:

<?php $class = 'home'; ?>
<body class="<?php echo $class; ?>">
...
<?php include 'header.php' ?>
...

В header.php:

<?php if (isset($class) && $class == 'home'): ?>
    <img src="images/logo-with-white-text" />
<?php else: ?>
    <img src="images/logo-with-dark-text" />
<?php endif; ?>
3 голосов
/ 22 января 2012

Вы можете проверить, находитесь ли вы на домашней странице (в зависимости от вашей точной реализации) с помощью следующего фрагмента:

if (basename($_SERVER['SCRIPT_NAME']) == 'index.php') {
    // home page
}
else {
    // some other page
}

$_SERVER['SCRIPT_NAME'] содержит фактически загруженный файл относительно хоста до запроса-строка:

http://example.com/my/folder.php?a=b => /my/folder.php

Для получения дополнительной информации посмотрите basename в PHPруководство .

1 голос
/ 22 января 2012

Вам не нужен PHP для этого, если вы используете метод замены изображения для отображения изображения.

Как правило, вы используете <h1> или что-то для вашего логотипа с текстом, затем используете отрицательный text-indent, чтобы скрыть текст, установить высоту и ширину и использовать фоновое изображение для логотипа. Пример:

http://jsfiddle.net/nwNbb/

<h1 id="logo">My Website</h1>
#logo {
 text-indent:-999px;
 background:url(/path/to/logo.png);
 height:100px;
 width:500px;   
}

Затем в вашем CSS вы можете изменить фоновое изображение в зависимости от класса тела:

body.home #logo {
 background:url(/path/to/alternate-logo.png);
}

Вы также можете сделать замену изображения на изображениях :

http://jsfiddle.net/nwNbb/3/

img {
     /* 500x100 replacement image */
    background:url(http://lorempixum.com/500/100);

     /* hide original image */
    width:0;
    height:0;

     /* use padding to set width/height of replacement */
    padding:50px 250px;
}
1 голос
/ 22 января 2012

$_SERVER['REQUEST_URI'] содержит URL текущей страницы (после домена).Вместо этого вы можете проверить, что страница имеет URL-адрес домашней страницы с этим.

В зависимости от настроек у вас будет что-то вроде

<?php if ($_SERVER['REQUEST_URI'] == '/') : ?>
    <img src="images/logo-with-white-text" />
<?php else: ?>
    <img src="images/logo-with-white-text" />
<?php endif; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...