čaute,
potřeboval bych pomoct -> includuju obsah do indexu, něco na způsob jako uvádí Rellik na firstpage.wz.cz. jak ale mohu vyřešit aby se mi měnil titulek
(<title>) stránky? mám pocit, že to nějak jde, že si na každou includovanou stránku vložim něco na způsob:
$title = "Popisek aktuální stránky";
ale pak nevim, jak to dostanu do toho HEADu, do toho TITLE... =/
Hledej fci ob_start().
Diskuze:
Příspěvek od meca:
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=4532
Příspěvek od llook
http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=19413&forum=9&page=-1
Do toho TITLE ten text musíš dostat v okamžiku, kdy zobrazuješ hlavi4ku stránky. Něco jako:
< TITLE >$title< /TITLE >
Pokud to máš nějak takto:
HTML
HEAD
TITLE
BODY
if neco include
Budes muset prebudovat strukturu.
překopávat strukturu při takovym množství stránek (desítky) se mi faaakt nechce.
2 Thalia:
chápu-li správně, tak přes ob_start se dá načíst ta stránka ale ne jako include... mrknu do manuálu..
pokud to mas takto:
<head>
<title> sem to chces doplnit </title>
</head>
<body>
<?php include("stranky/$_GET[stranka].php"); ?>
</body>
za predpokladu, ze adresa vypada takto: http://server/skript.php?stranka=uvod
, tak nekam treba na zacatek includuj treba soubor title.inc.php , ktery bude obsahovat treba neco takovyho:
<?php
$title = array(
'uvod' => 'Úvodní stránka',
'strana1' => 'Nadpis stránky 1',
'dalsi' => 'Nadpis další stránky'
);
?>
a pak vyslednej dokument bude vypadat takto:
--------------------
<?php require("title.inc.php"); ?>
<head>
<title>
<?php echo $title[$_GET['stranka']]; ?>
</title>
<body>
<?php include("stranky/$_GET[stranka].php"); ?>
</body>
--------------------
2 donny: o tomhle způsobu jsem slyšel ale je to strašný pakárna..
tak jestli se ti to nelibi (i kdyz nechapu proc), tak muzes zkusit toto:
<?php ob_start(); ?>
<head>
<title><!-- zde se doplni titulek podle $titulek v includovanem souboru --></title>
</head>
<body>
<?php
include('soubor.php');
$data = ob_get_contents();
ob_end_clean();
echo preg_replace("/\<title\>.*\<\/title\>/ei","'<title>$titulek</title>'",$data);
// v druhem parametru preg_replace jsou dvoje jak uvozovky (vnejsi " ),
// tak apostrofy (vnitrni ' ), tak bacha na to!
?>
</body>
a ten includovany soubor.php:
------------------
<?php // tohle umisti nekam, asi nejlepe nahoru
$titulek = "Muj krasny titulek";
?>
a ve zbytku souboru je uz uplne jedno, co bude...
------------------
2MF: ale ano, to include provedeš právě v tom ob_start() a celé to uložíš do proměnné (viz odkazy z fóra jpw), kterou pak zobrazíš v body. Vzhledem k tomu, že to ob_start() se provede hned na začátku souboru, ještě před tagem < html>, tak pro dosazení $title do <title> bude již tato proměnná známá. Kdežto když to include provedež až v body, tedy po načtení meta tagů, tak už to do <title> jen těžko dostaneš.
Příklad kterej jsem narychlo někde našla:
<?php
ob_start();
$page = $_GET['page'];
$title = $_GET['title'];
if (!isset($page))
{
include "uvod.php";
}
elseif (file_exists("$page.php"))
{
include "$page.php";
}
else
{
include "404.php";
}
$obsah = ob_get_contents();
ob_end_clean();
?>
$a = new html_page();
include('stranku podle cehokoli. treba get); # v include je fce, ktera vrati obsah a fce ktera vrati jmeno titulku.
$a->add_content(get_contetn());
$a->title = get_title(); #
$a->render();
#jak proste ;-)
zajemcum o tyto skvele objekty je rad poskytnu.
Aha, ještě jsem zapomněla, za tím výše uvedeným kódem následuje
< html>
< head>
<title><?php echo $title; ?></title>
< /head>
Kdysi jsem to celé četla tuším na stránkách mecy, ale už to tam není.
2MzM: héééj ty si mi těmi svými objekty narušil monolog! :-D
Marek z Markova: me by to docela zajimalo... kdybys byl tak laskav a poslal mi to treba na mail (viz web). dekuju.
a, tonik, uz si vzpominam. :-) jasne, konzultace za pivo. Nechces delat na games-i? Jestli nezampomenu, tak to dneska odeslu... ale porad se to vyviji, nechces mi stim pomoct?
no tedka finisuju bakalarku, mam toho az nekam... ale az bude nejakej ten casek... v ramci dusevniho neupadku... bych prilozil tech par prstiku k dilu :-)
<HTML>Napred snad vsechny data nejak spracuju a potom je vypisuju, kdes videl delat to obracene? Pokud se ti nechce naucit se lepsimu strukturovani kodu tak se nikdy nedostanes dal nez za 1 low strankovou homepage.
ob_start() apd. by se mozna melo zakazat.. neni to funkce pro programatory</HTML>
njn, je to funkce pro deti, aby si mely s cim hrat na pisecku...
2 MzM (& Tonik):
pokud to někde máte, měl bych zájem... kdyžtak mi to pls. pošlete... dix
áá, ještě asi chybí todle, že?:
marcus.flintus(zavinac)volny.cz
a ještě jeden dotaz:
jak teda dělat strukturu? (když ob_start() je pro dětičky)?
jakou strukturu mas namysli?
padly tu názory, že ob_start je pro děti, a že pokud to chci udělat nějak elegantně, tak mam překopat strukturu... bohužel nevim, jak by měla vypadat =/ stejně to nebudu předělávat ale taky to není poslední web co jsem udělal ;-)
třeba:
zbi:
>Budes muset prebudovat strukturu.
Richard:
>Pokud se ti nechce naucit se lepsimu strukturovani ...
- to právě že chce, ale nevim, jak na to. ...
MF, jestli nezapomenu, dneska poslu.
Ostatni: ob_start(), jeste jsem ho nepouzil a nenapada me situace, kdy by se to muselo pouzit. Vlastne jedna ano, pouzivam cizi kod, ktery me k tomu nuti a nemuzu to ovlivnit jinym zpusobem.
Jinak, pokud ho potrebujete je spis nekde neco spatne...
Marek z Markova: a nebo je clovek linej uplne prepsat pulku kodu, protoze na konci chce poslat nejakou hlavicku...
2 MzM: díky ... ;-)
jinak jak ste tedy mysleli jinak tu strukturu? budu dělat nový weby, tak ať se přiučim.... Richarde?
noo taaaak.. nikdo?
a co řikáte na způsob danej soubor projet, a dostat z něj title regulárním výrazem?