Strona 1 z 1

[php]Zastepstwo dla include lub require

: pn gru 22, 2003 11:50 pm
autor: butcher
Witam, mam problem...
Moja strona wyglada tak

[php]
<head>
<tilte> $tytul </title>
</head>

<body>
<?php include("menu.php"); ?>

<?php include("strona.php"); ?>

</body>
[/php]

(Pomijajamy bledy skladni), chodzi mi o to że zmienna $tytul jest dopiero w strona.php, a w momencie wyswietlana <title> ta zmienna nie jest znana, jesli sie da include wczesniej to wyswietla calosc jeszcze przed menu... jak to najprosciej rozwiazac? jest jakies polecenie ktore tylko pobiera zmienne z pliku?

Krzasz: Używaj BBCode

Re: [php]Zastepstwo dla include lub require

: wt gru 23, 2003 9:19 am
autor: ex
zrób tak:

# strona.php #

[php]
<?

$tytul="To jest mój tytuł ;-)";

$tresc_strony="Treść strony itp";

?>
[/php]


# index.php #

[php]
<?
include(strona.php);
?>

<title>
<? echo$tytul; ?>
</title>


Moja strona:

<? echo$tresc_strony; ?>

[/php]


Prawdopodonie w pliku strona.php miałeś funkcje echo.

Jak to Ci nie pomogło, to podaj kod pliku strona.php.

Re: [php]Zastepstwo dla include lub require

: wt gru 23, 2003 1:13 pm
autor: smook
dobrym sposobem jest tez rozdzielenie szablonu strony od pozostałych elementów np. w taki sposób.
index.php

Kod: Zaznacz cały

<?
$tytul='strona główna';
$lewa_kolumna=array('reklamy.inc','logowanie.inc','szukaj.inc');
$glowna_kolumna=array('strona_glowna.inc');
// wywolanie modulu do scalania strony
include('buduj_strone.php');
?>
i np. strony kontaktowej
kontakt.php

Kod: Zaznacz cały

<?
$tytul='kontakt z autorem';
$lewa_kolumna=array('reklamy.inc','mapka.inc','telefony.inc');
$glowna_kolumna=array('strona_kontakt.inc');
// wywolanie modulu do scalania strony
include('buduj_strone.php');
?>
i na koniec moduł składający stronę z kawałków
buduj_strone.php

Kod: Zaznacz cały

<html>
<head><title><? echo $tytul; ?></title></head>
<body>
<table><tr>
<td>
<?
// lewa kolumna
foreach($lewa_kolumna as $value)
{
  include($value);
}
?>
</td>
<td>
<?
// glowna kolumna
foreach($glowna_kolumna as $value)
{
  include($value);
}
?>
</td>
<tr><table>
</body>
</html>
W ten sposób mając stały szkielet strony, tworzenie kolejnych podstron polega tylko na utworzeniu małych pliczków o nazwie odpowiadającaj nazwie strony zawierających tablice z elementami które mają się pokaza + zmiennymi takimi jak np. tytuł

Re: [php]Zastepstwo dla include lub require

: wt gru 23, 2003 1:46 pm
autor: Dreen
dodatkowo zamiast:

[php]
<? echo $tytul; ?>
[/php]

mozna dac:

[php]
<?= $tytul ?>
[/php]

ale jest to zabieg czysto kosmetyczny mimo to poprawia nieco czytelnosc kodu i skraca czas pisania szczegolnie, jesli wstawiamy tak duzo zmiennych.
pozdrawiam.

Re: [php]Zastepstwo dla include lub require

: śr gru 24, 2003 5:21 pm
autor: butcher
[php]
<html>
<head>

<title> {tu powinien byc tytul, ze strony ponizej, ale skrypt nie zna zmiennej $tytul} </title>

</head>

<body>
<? include('menu.php'); ?>

<center>
<table width=790><tr><td>

<? include('strona.php'); ?>


</td></tr></table>
</body>
</html>
[/php]


natomiast tresc pliku strona.php to tylko
[php]

<? $title="To jest tytul"; ?>

bla bla bla {czyli reszta w zwyklym htmlu}
[/php]


hm, moze to po prostu sposob na tworzenie szablonu i bede go musial zmienic...