Autor Zpráva
Rbn_R
Profil
Dobrý den,
v php se moc neorientuju, ale na svých stránkách jsem využil vkládání obsahu stránky pomocí php. Všechno skvěle funguje, ale potřeboval byhc aby se s obsahem měnila i metatagy(keywords, description) a title, jelikož tyto údaje jsou všechny stejné na všech stránkách.
<html>
<head>
<meta name="keywords" content="Klíčová slova" />
<meta name="description" content="Popis stránky" />
<title>Titulek</title>
</head>
<body>
 ....nějaké divy atd ...
 <?php
								if (isset($_GET["stranka"]) && substr_count($_GET["stranka"], "/") < 1)
									$stranka = $_GET["stranka"];
								else
									$stranka = "kontakty";
									$soubor = "obsah/$stranka.php";
								if (file_exists($soubor))
									include $soubor;
								else 
									include "obsah/stranka_nenalezena.php";                        
							?> 

 ....nějaké divy atd ...
</body>
</html> 


Obsah se načte z jiného souboru a vloží do stránky. Každý obsah pro příslušnou stránku má svůj vlastní soubor. Potřeboval bych aby s vloženým příslušným obsahem se změnil nebo vložil title, description a keywords.
Rbn_R
Profil
Tento PHP kód jsem si našel na internetu takže to není moje práce. Jak říkám v PHP se zrovna moc neorientuju.

Děkuju za případné rady
__construct
Profil
Už sa to tu riešilo - stačí hľadať
ShiraNai7
Profil
Prostě načítej obsah před tím, než sestavuješ samotnou stránku.
Rbn_R
Profil
ShiraNai7
Takže title by vypadalo takhle
<title> <? echo $title; ?></title>


a v příslušeném souboru s obsahem bych na začátku nadefinoval title
<? $title= "titulek";?>


ale jak načíst ten soubor hned na začátku ale obsah vložit až na konci? tohle vložit hned na začátek kódu?
<?php
                                if (isset($_GET["stranka"]) && substr_count($_GET["stranka"], "/") < 1)
                                    $stranka = $_GET["stranka"];
                                else
                                    $stranka = "kontakty";
                                    $soubor = "obsah/$stranka.php";
                                if (file_exists($soubor))
                                    include $soubor;
                                else 
                                    include "obsah/stranka_nenalezena.php";                        
                            ?> 


ale jak upravit to vkládání aby se obsah zobrazil až tak kde předtím a ne hned na začátku?
ShiraNai7
Profil
index.php
<?php

// aktivace bufferu
ob_start();

// nacteni stranky
$stranka = (isset($_GET['stranka']) ? basename($_GET['stranka']) : 'kontakty');
if(file_exists($soubor = 'obsah/'.$stranka.'.php')) include $soubor;
else include 'obsah/stranka_nenalezena.php';

// definice promennych, ktere nejsou
if(!isset($titulek)) $titulek = 'Bez titulku';
if(!isset($keywords)) $keywords = 'vychozi,klicova,slova';
if(!isset($description)) $description = 'Výchozí popis stránky';

// ziskani obsahu a vypnuti bufferu
$obsah = ob_get_contents();
ob_end_clean();

?>
<html>
<head>
<meta name="keywords" content="<?php echo $keywords; ?>" />
<meta name="description" content="<?php echo $description; ?>" />
<title><?php echo $titulek; ?></title>
</head>
<body>
 ....nějaké divy atd ...
 
<?php echo $obsah; ?> 

 ....nějaké divy atd ...
</body>
</html>


Ukázka souboru stránky:
<?php

// nastaveni stranky
$titulek = 'Olala titulek';
$keywords = 'olala,klicova,slova';
$description = 'Olala popis';

?>
<h1>Test</h1>
<p>Testovací stránka.</p>
Rbn_R
Profil
Mockrát děkuji. Funfuje to přesně jak jsem potřeboval.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: