Diskuze: PHP - změna title
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Cele to mas takove divne. Normalne si na to clovek vytvori funkci, ulozi do promene a vypise pres echo promenou.
--- inc/func.php ---
function titulek () {...}
--- stranka.php ---
$page = array();
$page['stranka '] = stranka($_GET);
$page['title'] = $page['stranka '];
Nebo lepe, udelej si na to class primo s funkcemi pro generovani stranky.
Jinak, slo by to tez resit pres pole.
$stranka_all = array(
'aaa.htm' => array('titulek'=>'xxx'),
'bbb.htm' => array('titulek'=>'xxx'),
'ccc.htm' => array('titulek'=>'xxx'),
'error.htm' => array('titulek'=>'xxx')
);
$x = isset($_GET['mmm']) ? $_GET['mmm']: '';
$x = isset($stranky_all[$x]) ? $x : 'error.htm';
$stranka = $stranky_all[$x];
pamatuju si, jak jsem taky takhle programoval a ten problém s titulkem mi
taky způsoboval depresi
problém je právě v tom, co jsi popsal.... tedy, že titulek vypisuješ dřív, než se vůbec začne vykonávat kód stránky
řešením je úplně oddělit výkonný kód od vypisování výstupu... tedy nejdřív všechno připravit do proměnných a pak teprve vsechno nacpat do html a poslat ven
výsledné pořadí provádění:
timto máš kód podle honosných termínů MVC rozdělen na 3 části....
a také je timto postupem zavedeno použití šablon
a teď malý příklad:
index. php
$stranky = ["home", "about", "kontakt", "produkty"] ;
$stranka = "home" ;
if( in_array($_REQUEST["stranka"], $stranky, true) === true)
{
$stranka = $_REQUEST["stranka"] ;
}
$data = []; // inicializace pole promennych sablony
include("stranky/$stranka. php") ;
include("sablony/hlavicka. php");
include("sablony/stranky/$stranka. php");
include("sablony/paticka.php");
stranky/home. php
$data["titulek"] = "Vítej!":
$data["čas"] = "teď";
sablony/hlavicka. php
<html>
<head>
<link rel="stylesheet" type="text/css" href="styly.css" />
<title>
<?php echo $data["titulek"]; ?>
</title>
</head>
sablony/stranky/home.php
<h1>Vítej u nás.</h1>
<p>
Aktuální čas je právě <?php echo $data["cas"]; ?>
</p>
další level je zabalit kód do funkcí, aby se nám v globálním prostoru nepotulovaly proměnné
a další level je pohrát si s objekty a zabalit kód do tříd (pokud
ovšem nejsi zarytý příznivec funkcionalniho paradigmatu )
Zobrazeno 3 zpráv z 3.