Strona 1 z 2

Menu wczytywane z pliku zewnętrznego - jak?

: wt sty 20, 2009 8:08 pm
autor: Regulus
mam taki kod:

Kod: Zaznacz cały

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2"/>

inne <META> tagi

<linkrel="stylesheet" HREF="style.css" type="text/css"/>
<link rel="stylesheet" href="menustyle.css" type="text/css"/>
<title></title>


<!--[if gte IE 5.5]>
<script language="JavaScript" src="ie.js" type="text/JavaScript"></script>
<![endif]-->
</head>
<body>

<div id="menu">
<div id="menupasek">Menu ::.</div>
<!--początek menu -->
<ul id="navmenu">
  <li><a href="#">O nas +</a>
  <ul>
          <li><A HREF="kontakt.html" TARGET="_self">Kontakt</a></li>
		  <li><A HREF="#" TARGET="_self">Głosy Radia</a>
		 <ul>
          <li><A HREF="danusia.html" TARGET="_self">Danusia </a></li>
          <li><A HREF="finezja.html" TARGET="_self">Finezja</a></li>
          <!-- kolejne zakladki menu -->         
</li>
        </ul>
		  </li>
		<li><a href="#">Nasze audycje</a></li>
		<li><a href="#">Ramówka - nasze perełki</a></li>
		<li><a href="#">Historia Radia</a> 
			<ul>
				<li><a href="#">Historia</a></li>
          		<li><a href="#">Byli z nami</a></li>
          		<li><a href="#">To już było</a></li>
        	</ul>
		</li>
		  	<li><a href="#">Zostań prezenterem</a></li>
		  	<li><a href="#">licencje</a></li>
        </ul></li>
		
  
  <li><a href="#">Lista przebojów - Top 10</a></li>
  <li><a href="#">Rozrywka +</a>
    <ul>
      <li><a href="#">Fotogaleria</a></li>
      <li><a href="#">Wasza twórczość</a></li>
	  <li><a href="#">Forum Radia</a></li>
	  <li><a href="#">Księga gosci</a></li>
      <li><a href="#">Humor</a></li>
	  
    </ul>
  </li>
  <li><a href="#">Wydarzenia +</a>
    <ul>
      <li><a href="#">Wydarzenia w Radio</a>
        <!--<ul>
          <li><a href="http://www.free-css.com/">qrayg</a></li>
          <li><a href="http://www.free-css.com/">qArcade</a></li>
          <li><a href="http://www.free-css.com/">qLoM</a></li>
          <li><a href="http://www.free-css.com/">qDT</a></li>
        </ul>  -->
      </li>
      <li><a href="#">Z krju i ze świata</a></li>
	  
    </ul>
  </li>
  <li><a href="#">Patronat</a>
  <li><a href="#">Linki +</a>
    <ul>
      <li><a href="#">Forum Radia na NK</a>
      </li>
      <li><a href="#">Polecamy +</a>
        <ul>
          
          <li><a href="#">Link 1</a></li>
          <li><a href="#">Link 2</a></li>
        </ul>
      </li>
    </ul>
  </li>

  <li><BR/>
<BR/>
</li>
</ul> 
<!-- koniec menu -->
</div>

<div id="dol">
<!-- początek dolnej -->

<div id="srodek-d">
<!-- poczatek lewej dolnej -->
<div id="sr-pasek-d"><!-- pasek prawy dolny -->
Licencje ::.
</div>
<div id="txt-srodek-d">
<!-- tekst okna -->
tekst strony prawy 
<!-- koniec tekstu okna -->

</div>

<!-- koniec prawej dolnej -->
</div>


<!-- koniec dolnej glownej  -->
</div>
<div class="pasek_770a"></DIV>
<div id="stopka">stopka


</div>
</body/>
</html>

jak wczytać menu z zewnętrznego pliku

Kod: Zaznacz cały

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2"/>
inne <META> tagi
<linkrel="stylesheet" HREF="style.css" type="text/css"/>
<link rel="stylesheet" href="style.css" type="text/css"/>
<title></title>


<!--[if gte IE 5.5]>
<script language="JavaScript" src="ie.js" type="text/JavaScript"></script>
<![endif]-->
</head>
<body>
<div id="menu">

TU TRZEBA WCZYTAĆ MENU

<!-- koniec menu -->
</div>

<div id="dol">
<!-- początek dolnej -->

<div id="srodek-d">
<!-- poczatek lewej dolnej -->
<div id="sr-pasek-d"><!-- pasek prawy dolny -->
Licencje ::.
</div>
<div id="txt-srodek-d">
<!-- tekst okna -->
tekst strony prawy 
<!-- koniec tekstu okna -->

</div>

<!-- koniec prawej dolnej -->
</div>


<!-- koniec dolnej glownej  -->
</div>
<div class="pasek_770a"></DIV>
<div id="stopka">stopka


</div>
</body/>
</html>
Chodzi o to, że cały serwis ma 19 podstron i nie chcę wprowadzać ewentualnych zmian menu w 19 dokumentach, tylko w jednym np "menu.html" i wczytywać go do wszystkich podstron.


Podejrzewam że wgrę wchodzi php, więc proszę o maksymalnie łopatologiczną i w miarę Waszej woli wyczerpującą odpowiedź , gdyż php jest mi nieznany. :(

R.

Re: Menu wczytywane z pliku zewnętrznego - jak?

: wt sty 20, 2009 10:51 pm
autor: ooo_michal
1. Serwer musi obsługiwać PHP
2. Wszystkie podstrony muszą mieć rozszerzenie .php
3. tam, gdzie chcesz wstawić menu piszesz[php]<?php
include('menu.html');
?>
?>[/php]

Re: Menu wczytywane z pliku zewnętrznego - jak?

: czw sty 22, 2009 11:50 am
autor: Regulus
Dzięki, to może mógłbyś mi jeszcze napisać jak z takiego menu wczytać strone do DIV'a

[php]
<div name="menu id="menu">
<?php
include('menu.html');
?>
</div>
<div name="wczytywana strona">
wczytywana_strona.html
</div>
[/php]


1. Jak ma wyglądać link do:
wczytywana_strona.html w pliku menu.html.
2. jakie ma mieć atrybuty <div>, do którego będzie wczytywany plik:
wczytywana_strona.html

Rozwiązanie zamiast <frameset>, lub <iframe>


R.

Re: Menu wczytywane z pliku zewnętrznego - jak?

: czw sty 22, 2009 12:16 pm
autor: htmlowiecii
przeglądarka będzie widziała menu jakby było częścią strony więc jak w pliku z menu będą linki typu [xml]<a href="strona">strona</a> [/xml]to problemu nie będzie

Re: Menu wczytywane z pliku zewnętrznego - jak?

: czw sty 22, 2009 12:40 pm
autor: Regulus
To to rozumiem ale, to spowoduje odświeżenie całej strony jak sądzę, a ja chciałem by z linku umieszczonym w menu doczytywanym za pomocą

[php]<?php
include('menu.html');
?>[/php]

wczytywać tylko to, co będzie się zmieniać w

[xml]<div name="wczytywana strona"></div>[/xml]

, a reszta strony, by się nie przeładowywała, tak jak jest w przypadku iframe, gdzie jedynie zmieniana jest zawartość ramki pływającej.

Krótko:



[xml]
<div name="1stały element strony">
zawierajacy stałe elementy strony
</div>
<div name="doczytywane menu">
<?php
include('menu.html');
?>
</div>
<div name ="2stały element strony">
inne stałe elementy strony
</div>
<div name="wczytywana_strona">
treści elementy w odrębnych plikach *html, podmieniane po kliknięciu w linki, w doczytywanym menu.html
</div>
<div name ="3stały element strony">
inne stałe elementy strony
</div>
[/xml]

Czyli
1. Jakie powinny być atrybuty linków umieszczonych w doczytywanym menu.html?
2. Jakie atrybuty powinien mieć <div> w który będą wczytywane treści z zewnętrznych dokumentów html?


R.

Re: Menu wczytywane z pliku zewnętrznego - jak?

: czw sty 22, 2009 1:31 pm
autor: ooo_michal
No to już tylko ajax. Ale myślę, że nie będzie to najlepsze rozwiązanie ze względu na to, że użytkownik może mieć wyłączony JS.

Według mnie powinieneś na początek zrobić tak:
1. plik index.php

Kod: Zaznacz cały

<div name="menu id="menu"> 
<?php 
include('menu.html'); 
?> 
</div> 
<div name="wczytywana strona"> 
<?php 
include('content.php'); 
?> 
</div>
W powyższym pliku robisz sobie cały layout itp. i w wybranych miejscach dołączasz menu i skrypt ładujący treść.

2. menu.html

Kod: Zaznacz cały

<a href="index.php?page=home">Strona główna</a><br>
<a href="index.php?page=download">Pliki do pobrania</a>
...
3. content.php[php]<?php
$strony['home'] = 'home.html';
$strony['download'] = 'download.html';
$strony['e404'] = '404.html';

if (isset($_POST['page']) && isset($strony[$_POST['page']])) {
include($strony[$_POST['page']]);
} elseif (isset($_GET['page']) && isset($strony[$_GET['page']])) {
include($strony[$_GET['page']]);
} elseif (isset($_GET['page']) || isset($_POST['page'])) {
include($strony['e404']);
} else {
include($strony['home']);
}
?>[/php]

4. Elementy w menu tworzysz analogicznie do tych, które dostałeś powyżej.

Kod: Zaznacz cały

    $strony['home']     ->   adres w linku: "index.php?page=home"
    $strony['download']     ->   adres w linku: "index.php?page=download"
5. 404.html zawiera treść wyświetlaną, jeśli dla ?page=costam nie ma przypisanego pliku html. można też zamiast tego wyświetlać stronę główną. Wtedy content.php wygląda tak: [php]<?php
$strony['home'] = 'home.html';
$strony['download'] = 'download.html';
$strony['e404'] = '404.html';

if (isset($_POST['page']) && isset($strony[$_POST['page']])) {
include($strony[$_POST['page']]);
} elseif (isset($_GET['page']) && isset($strony[$_GET['page']])) {
include($strony[$_GET['page']]);
} else {
include($strony['home']);
}
?>[/php]

Póżniej będzie można dodać do tego AJAX (żeby ładowała się tylko treść) ale najpierw opanuj to. W razie problemów służę pomocą.

Re: Menu wczytywane z pliku zewnętrznego - jak?

: czw sty 22, 2009 1:58 pm
autor: Regulus
To dla mnie na razie chińszczyzna 8O.

to może prościej było by tak?


[xml]

<div name="menu">
<ul>
<li><a href =" "name=" "></a></li>
<li><a href =" "name=" "></a></li>
</ul>
</div>
<div name="zmieniana_tresc">
doczytywany zewnętrzny html
</div>
<div name="stały element strony">
jakiś stały element strony
</div>
[/xml]


Jak w takim razie powinny wygladać linki?
Jak w takim razie powinny wygladać atrybuty dla:
[xml]<div name="zmieniana_tresc"></div>[/xml]

Re: Menu wczytywane z pliku zewnętrznego - jak?

: czw sty 22, 2009 2:23 pm
autor: ooo_michal
1. Z tego co pamiętam to dla DIV nie ma czegoś takiego jak name="". Wcześniej nie zwróciłem na to uwagi. Stosuj samo id=""
2. DIV ze zmienną treścią nie potrzebuje żadnych dodatkowych atrybutów.
3. Wygląd linków:

Kod: Zaznacz cały

<a href="index.php?page=nazwa_strony_ktora_bedzie_sie_zmieniac">Link</a>
A w pliku content.php dla każdego linku z menu wpisujesz linijkę:[php]$strony['ta_sama_nazwa_co_jest_w_menu_w_adresie_zaraz_po_znaku_rownosci'] = 'plik_zawierajacy_tresc_ktora_ma_sie_ladowac.html');[/php]
4. Całą pozostałą resztę zostawiasz bez zmian.


PS. Jakby co to możesz pisać na gg:10295945 - będzie szybciej

Re: Menu wczytywane z pliku zewnętrznego - jak?

: czw sty 22, 2009 3:41 pm
autor: Regulus
Czyli:

w menu robię tak, w pliku index.HTML piszę: [xml]<a href="index.php?page=strona1">Link</a>
[/xml]- to rozumiem

Potem mam utworzyć plik o nazwie content.php? i wklepać dla każdego linku to, ze zminą nazw stron: [php]
<?php
$strony['strona1']='strona1.html');
?>
[/php]

Co w <div>, gdzie ma być wczytywany strona1.html?
Przepraszam za moją zieloność :oops:


ps. @ooo_michal pisałem na gg, jak mi tam odpiszesz, to tu chyba już nie musisz się powtarzać, no chyba że z pożytkiem dla innych wyjaśnisz, też tu


R.

Re: Menu wczytywane z pliku zewnętrznego - jak?

: sob lut 14, 2009 8:18 pm
autor: Regulus
Zrobiłem tak:


[xml]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- ... onal.dtd"/>
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2"/>
<META NAME="Keywords" CONTENT=""/>
<META NAME="Description" CONTENT=""/>
<META NAME="Robots" CONTENT="ALL, INDEX"/>
<link rel="stylesheet" type="text/css" href="webstylcss.css"/>
<title>Webstyl</title>
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="iehacks.css" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="ie7hacks.css" />
<![endif]-->
</head>

<body>
<div id="banner">
<div id="menu">
<ul>
<li><A HREF="index.php?page=home.html">home</A></li>
<li><A HREF="index.php?page=strona1" >strona1</A></li>
<li><A HREF="index.php?page=strona2" >strona2</A></li>
<li><A HREF="index.php?page=strona3" >strona3</A></li>
<li><A HREF="index.php?page=strona4">strona4</A></li>
</ul>
</div>
</div>
<div class="listwa"></div>
<div id="glownatlo">

<?php
include('onas.html');
include('content.php');
?>

</div>
</div>
<div class="listwa"></div>
<div id="stopka"></div>
</body>
</html>
[/xml]

plik content.php:[php]
<?php
$strony['onas']='home.html';
$strony['oferta']='strona1.html';
$strony['wzory']='strona2.html';
$strony['cennik']='strona3.html';
$strony['kontakt']='strona4.html';
?>[/php]

Wczytuje się "na dzień dobry" plik home.html, jednak nie doczytują się pozostałe pliki po kliknięciu w odnośniki menu.

Jak to powinno wyglądać, by działało?

Re: Menu wczytywane z pliku zewnętrznego - jak?

: sob lut 14, 2009 9:19 pm
autor: ooo_michal
Kurde no przecież w content.php ma jeszcze być [php]<?php
if (isset($_POST['page']) && isset($strony[$_POST['page']])) {
include($strony[$_POST['page']]);
} elseif (isset($_GET['page']) && isset($strony[$_GET['page']])) {
include($strony[$_GET['page']]);
} else {
include($strony['home']);
}
?>[/php]przecież o tym pisałem

Re: Menu wczytywane z pliku zewnętrznego - jak?

: ndz lut 15, 2009 12:13 am
autor: Regulus
Faktycznie, sorry zakręciłem się ;-) wszystko gra :) dzięki


R.

Re: Menu wczytywane z pliku zewnętrznego - jak?

: ndz lut 15, 2009 3:08 pm
autor: Regulus
Jeszcze jeden drobiazg, wiem że to jest irytujące, jak ktoś o takie proste rzeczy głowę zawraca ale:

zastosowałem to w pliku content.php[php]<?php
$strony['home']='home.html';
$strony['oferta']='strona1.html';
$strony['wzory']='strona2.html';
$strony['cennik']='strona3.html';
$strony['e404'] = 'e404.html';


if (isset($_POST['page']) && isset($strony[$_POST['page']])) {
include($strony[$_POST['page']]);
} elseif (isset($_GET['page']) && isset($strony[$_GET['page']])) {
include($strony[$_GET['page']]);
} elseif (isset($_GET['page']) || isset($_POST['page'])) {
include($strony['home']);
} else {
include($strony['e404']);
}
?>
[/php]


[xml]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- ... onal.dtd"/>
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2"/>
<META NAME="Keywords" CONTENT=""/>
<META NAME="Description" CONTENT=""/>
<META NAME="Robots" CONTENT="ALL, INDEX"/>
<link rel="stylesheet" type="text/css" href="webstylcss.css"/>
<title>title</title>
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="iehacks.css" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="ie7hacks.css" />
<![endif]-->
</head>

<body>
<div id="banner">
<div id="menu">
<ul>
<li><A HREF="index.php?page=home.html">home</A></li>
<li><A HREF="index.php?page=strona1" >strona1</A></li>
<li><A HREF="index.php?page=strona2" >strona2</A></li>
<li><A HREF="index.php?page=strona3" >strona3</A></li>
<li><A HREF="index.php?page=strona4">strona4</A></li>
</ul>
</div>
</div>
<div class="listwa"></div>
<div id="glownatlo">

<?php

include('content.php');
?>

</div>
</div>
<div class="listwa"></div>
<div id="stopka">
<?php

include('stopka.ini');
?>
</div>
</body>
</html>
[/xml]

Re: Menu wczytywane z pliku zewnętrznego - jak?

: pn lut 16, 2009 11:49 am
autor: Regulus
To, co tu nie trybi?;-)
Dlaczego wczytuje mi się błędem 404?

a po kliknięciu w kontakt, (którego de' facto celowo niema), wyświetla się "O nas"?

Oczywiście pliki:
home.html (ten ma się wczytać na dzień dobry);
strona1.html;
strona2.html;
strona3.html;
404.html;

są na serwerze i ścieżki sś poprawne do nich poprawne



a gdy robię tak jak jest we wzorze ooo_michal wyrzej:
[php]<?php
$strony['home']='home.html';
$strony['strona1']='strona1.html';
$strony['strona2']='strona2.html';
$strony['strona3']='strona3.html';
$strony['e404'] = 'e404.html';


if (isset($_POST['page']) && isset($strony[$_POST['page']])) {
include($strony[$_POST['page']]);
} elseif (isset($_GET['page']) && isset($strony[$_GET['page']])) {
include($strony[$_GET['page']]);
} elseif (isset($_GET['page']) || isset($_POST['page'])) {
include($strony['e404']);
} else {
include($strony['home']);
}
?>[/php]

to owszem, na "dzień dobry się wczytuje prawidłowo, ale po kliknięciu w "home" wyśwetla mi bład 404


R.

Re: Menu wczytywane z pliku zewnętrznego - jak?

: pn lut 16, 2009 8:57 pm
autor: ooo_michal
to owszem, na "dzień dobry się wczytuje prawidłowo, ale po kliknięciu w "home" wyśwetla mi bład 404
Bo w menu masz

Kod: Zaznacz cały

<A HREF="index.php?page=home.html"> home </A>
A powinno być

Kod: Zaznacz cały

<A HREF="index.php?page=home"> home </A>
Popraw i powinno być dobrze.

a po kliknięciu w kontakt, (którego de' facto celowo niema), wyświetla się "O nas"
Ale o co tu ci biega to nie wiem... Nie widze ani żadnego kontaktu w menu ani żadnego O nas w całym kodzie.