Dinamik Başlıklar soru

5 Cevap php

Nasıl bu kurulum ile başlıkları (i kelime thats düşünüyorum) mümkün dinamiği var yapmak istiyorsunuz? Ben bir profili inceleyen kulüpler Örneğin ben bunun içinde 'USERNAME Profil görüntüleniyor söylemek istiyorum <title>. Nasıl bu her Ödevler sayfada html üst koymadan mümkün yapabilir?

Çok teşekkürler.

ve MVC'ın hakkında konuşmaya başlayın please dont, ben o ihtiyacım yok

<html>
<head>
<title>KALASHNIKOV - $??</title>    
</head>
<body>

<?php

switch($area) {

// The default page
default:
include_once('pages/main.php');
break;  

// This is for registering an account
case 'register':
include_once('pages/register.php');
break;

// This is to log in!! (obviously)
case 'login':       
include_once('pages/login.php');
break;

// This is for logging out
case 'logout':
logout();
break;

}

?>

</body>
</html>

5 Cevap

Her sayfanın üst kısmında HTML koymak istemiyorsanız Eh, ben header.php, hangi böyle bir şey görünmelidir gibi, ayrı bir dosyaya sahip varsayalım:

<html>
<head>
<title><?= $page_title ?> - My Site</title>
</head>

Ve sonra sayfaların her biri, sen gibi, $page_title dahil etmeden önce ayarlamak zorunda

$page_title = 'My Page';
include 'header.php'

Her neyse, bu konuda giderek bir yolu.

Her alt sayfa gibi bir şey yapmanız gerekir:

<?php require('header.php') ?>

header.php gibi bir şey olurdu burada:

<title>KALASHNIKOV - <?php echo $GLOBALS['pageTitle'] ?></title>

veya şablonlar ve parçacıkları için destek bulunmaktadır zend framework kullanın

Ben, böyle bir dizi oluşturmak istiyorum php dosyanızın üstüne (çok karmaşık olabilir ama sitenize daha büyük büyümek olabileceği gibi, bu gibi çözmek daha kolay olacak):

<?php
error_reporting(E_ALL); // that's always good

$sites = array(
    'default' => array(
        'pages/main.php',
        'Main title'
    ),
    'register' => array(
        'pages/register.php',
        'Register'
    ),
    'login' => arary(
        'pages/login.php',
        'Login'
    }
);

$title = array_key_exists($area,$sites) ? $sites[$area][1] : $sites['default'][1];
?>
<html>
<head>
<title>KALASHNIKOV - <?=$title?></title>    
</head>
<body>
<?php
if (array_key_exists($area,$sites))
    require $sites[$area][0];
else
    require $sites['default'][1];
?>

Sayfanızda bu yere koymak:

<script language="JavaScript">document.title ="KALASHNIKOV - blablabla";</script>

Eğer fazladan bir katman yarar olabilir gibi görünüyor. Aksine içerik sayfası içerik eklemek için switch kullanmak yerine, bir switch içeriği ve başlığı (ve bulabileceğiniz başka bir şey ayarlamak için kullandığı ayrı bir komut dosyası olabilir Gerekli).

$title = "KALASHNIKOV - "
$include_page = "content.php"
$content_page = "pages/404.php";
switch($area) {

// The default page
default:
    $content_page = 'pages/main.php';
    break;  

// This is for registering an account
case 'register':
    $content_page = 'pages/register.php';
    break;

// This is to log in!! (obviously)
case 'login':       
    $content_page = 'pages/login.php';
    break;

// This is for logging out
case 'logout':
    $include_page = 'logout.php';
    break;

}

require_once $include_page;

content.php:

<html>
<head>
<title><?php echo $title; ?></title>    
</head>
<body>

<?php require_once $content_page; ?>

</body>
</html>

sonra logout.php logout() çağırır ve orada ne olursa olsun ben bunu idare ediyorsun bilmiyorum yok.

Bu yöntem aynı zamanda daha iyi her zaman iyi bir fikirdir sunum mantık ayrılmasını destekler.