ďťż

Menu strony w HTML jedno menu na kilkadziesiąt stron

       

Podstrony


telcocafe

Mam witrynę w HTML, ktora ma kilkadziesiąt podstron, wszystkie mają takie same menu główne. Często zachodzi jednak konieczność dodnia do menu strony nowych pozycji i jest to bardzo uciążliwe, gdyż muszę edytować kilkadziesiąt stron :( Czy mozna zrobić, zeby był tylko jeden plik z menu strony, a wszystkie podstrony korzystały z tego pliku. Wtedy, aby dodać do menu jakąś pozycję, edytowąlym jeden plik, a nie kilkadziesiąt. Nie mam dostepu do MySQL, ale mam PHP. Macie jakieś pomysły? Ramki nie wchodza w grę :( Może coś z XML...



Zrób strone w ramkach. Więcej na stronie www.kurshtml.boo.pl Jeżeli nie da rady to zrób za pomocą polecenia include. Tu masz http://kess.snug.pl/...oad/szablon.zip gotowy szablon.
Użytkownik pawelstol edytował ten post 27 lipiec 2005, 18:44


Cześć,
jeśli masz php sprawa jest bardzo prosta. Na początek wszystkim plikom musisz nadać rozszerzenie php (zamiast obecnego html)
Potem tworzysz nowy plik, w którym umieszczasz jedynie menu i nazywasz go np. menu.php
Teraz we wszystkich plikach, w miejsce dotychczasowego kodu menu, dajesz krótkie polecenie:
<? include "menu.php"; ?>
(oczywiście, jeśli plik menu jest np. w katalogu wyżej, musisz odpowiednio zmodyfikować ścieżkę dostępu, np. <? include "../menu.php"; ?>)

I to wszystko. Teraz jeśli chcesz coś zmienić, wystarczy, że wyedytujesz plik menu.php, a zmiany będą widoczne na wszystkich stronach.

Cxz



Ja to zrobiłem tak: zamiast robić include na menu, to zrobiłem jeden plik z menusami logo i takim tam a na środku jest include z treścią :P wszystko byłoby dobrze gdyby nie wywyalało błędu:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home4/zu/zupy/zupy/index.php on line 83
treść skryptu jest taka:
<?php if ("$_GET['file']") include("$_GET['file']"); else iclude ("newsy.htm"); ?>
linia 83 to ta linia z if. Taki skrypt robił mi kolega i kiedyś działał, ale niechcący wywaliłem skrypt z kompa i musiałem go odtworzyć. Nie wiem co robić i proszę o pomoc, bo chce zrobic premierę serwisu jeszcze w lipcu.


Ja to zrobiłem tak: zamiast robić include na menu, to zrobiłem jeden plik z menusami logo i takim tam a na środku jest include z treścią :P [...]

To chyba trochę bez sensu. Plik menu masz jeden, a plików z treścią bardzo dużo, więc na każdej stronie musisz zmieniać ścieżkę do danej treści. Po co tak sobie utrudniać?
Użytkownik Cxz edytował ten post 28 lipiec 2005, 13:32
<?php if ("$_GET['file']") include("$_GET['file']"); else iclude ("newsy.htm"); ?>
Jak widac w tym skrypcie jest instrukcja GET. link wyglada www.strona.pl/index.php?file=plik.htm No i wtedy właśnie wykonuje się pierwsza część skryptu. Jakby jednak warunek postawiony przez if nie został spełniony mam domyślnie includująca się stronę newsy.htm Działa to jak w iframe src, jakis plik wczytuje się domyślnie, ale jest też name, dzięki niemu można przed odpowiedni link wczytać stronę do tego iframe. No ale ja nie chcę iframe i czekam na pomoc. Cxz, chyba mnie nie zrozumiałeś ;)


treść skryptu jest taka:
<?php if (isset($_GET['file'])) .... ?>


Dzięki Gesiek. No ale niestety nadal jest źle. Wywala mi coś takiego:

Parse error: parse error, unexpected T_ELSE in /home4/zu/zupy/zupy/index.php on line 85
No i ta 85 linia jest z po prostu zwykłym else. Nie wiem o co ma w tym chodzić :huh: wpisane jest po prostu else. Nie wiem o co chodzi. Te PHP chce mi po prostu rozwalić mózgownice.

---edit---
na www.translate.pl przetłumaczyło to tak:
"Robią rozbiór gramatyczny błąd: robią rozbiór gramatyczny błąd, nieoczekiwany *T*_JESZCZE w /*home4*/*zu*/*zupy*/*zupy*/*index.php* na linii (wiersz) 85"
Użytkownik wiklin edytował ten post 28 lipiec 2005, 19:32
Wrzuć źródło, z kosmosu tego nie da się poprawić. Tak BTW. to będzie błąd składni. Pomyliłeś się na { albo }.

<?php if ("$_GET['file']") include("$_GET['file']"); else iclude ("newsy.htm"); ?>
Już top wcześniej podałem. No a { i } nigdzie nie ma.

<?php if ("$_GET['file']") { include("$_GET['file']"); } else { include ("newsy.htm"); } ?>
Użytkownik 0lukasz0 edytował ten post 28 lipiec 2005, 20:00
:(:(:(:(:(:(:(
nicccccccccccc.
skrypt teraz tak wygląda:
<?php if (isset("$_GET['file']")) { include(isset("$_GET['file']")); } else { include ("newsy.htm"); } ?>
No i znów wywala mi błąd...

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home4/zu/zupy/zupy/index.php on line 83

<?php if (isset("$_GET['file']")) { include ("$_GET['file']"); } else { include ("newsy.htm"); } ?>

niestety, dalej się czegoś czepia :/

Parse error: parse error, unexpected '\"', expecting T_VARIABLE or '$' in /home4/zu/zupy/zupy/index.php on line 83

<Body>
<?
$b="body";
?>

Tutaj kod strony

Tu jest kod który trzeba wrzucić w miejsce w którym ma sie pokazywać zawartość pliku
<?
if($bo) {include("$bo.inc");} else {include("$b.inc");}
?>
Pliki z tekstem mają mieć rozszeżenie INC

A link do tekstu który pojawi sie po kliknieciu w odpowiednim miejscu ma postać
<a href="index.php?bo=nazwaplikubezrozszeżenia">Link</a>

Szablon strony ma mieć rozszerzenie php i mieć nazwe index.php
A tekst domyślnie pokazujący sie w miejscu dynamiczne podmienainym przez pliki
ma mieć nazwe body.inc

U mnie zadziałało!!!
Użytkownik krwawyjepetto edytował ten post 29 lipiec 2005, 10:17
<?php if (isset($_GET['file'])) { include($_GET['file']); } else { include("newsy.htm"); } ?>


No i znów wywala mi błąd...

Gesiek, musi to być koniecznie XML czy tam XHTML?

---edit---
Już działa!!!!!!!!!! :D
Dzięki Gesiek bardzo, moze się wyrobie przed 31 :)
No i dziękuję Ci 0lukasz0.
Obaoje mi bardzo pomogliście. Dzięki jeszcze raz.
Użytkownik wiklin edytował ten post 29 lipiec 2005, 11:12

Gesiek, musi to być koniecznie XML czy tam XHTML?

Ja nie wiem po co wy używacie GET mój sposób jest prostrzy i bardziej
praktyczny

Strona ma wyglądać tak że tylko jedna część (komurka tabeli) ma zmieniać swoją zawartość a reszta jest stała.

Zaraz pod znacznikiem <BODY>
piszemy takie coś

<?
$b="body";
?>

Teraz w miejsce gdzie ma sie dynamicznie wstawiać zawartość np. z pliku
wpisujemy takie coś

<?
if($bo) {include("$bo.inc");} else {include("$b.inc");}
?>

To jest praktycznie koniec teraz co z linkami otóż mają one taką postać

<a href="index.php?bo=nazwaplikubezrozszeżenia">Link</a>

Jak widać plik szablon z którego będzie wgrywana strona ma nazwe index.php
natomiast plik z tekstem który będzie dynamicznie wstawiany np. do komurki tabeli jest w tym samym folderze co plik index.php i ma nazwe w tym przypadku nazwaplikubezrozszeżenia.inc plik z tekstem ma rozszeżenie inc ale je pomijamy w kodzie.

Oczywiście pliki mogą mieć inne rozszeżenia np. TXT ale trzebo wprowadzić odpowiednie poprawki w kodzie.

Napewno sie zapytacie jak wskazać plik który ma sie pokazać w komórce zaraz po wgraniu strony.

Otóż plik ma nazwe body.inc i w nim piszemy np. wstęp

Po wgraniu strona domyślnie wstawia plik body.inc do komurki a po kliknięciu na odnośnik zawartość zmienia sie na inną.

Tak więc maqmy plik index.php który zawiera szablon strony
i body.inc z domyślnym tekstem.

I po co używać GET ??? Jak można prościej i praktyczniej
Użytkownik krwawyjepetto edytował ten post 29 lipiec 2005, 12:43

I po co używać GET ??? Jak można prościej i praktyczniej

Miło było poczytac Wasze wskazówki. Dopiero zaczynam z PHP i dzięki Wam poznałem różne rozwiązania. Myślę, ze to się przyda. Dziękuję i pozdrawiam :D

Ramki ,Ramki i jeszsze raz ramki :)

też miałem taki problem ale go tą metodą rozwiązałem ;)


Ramki ,Ramki i jeszsze raz ramki  :)

też miałem taki problem ale go tą metodą rozwiązałem ;)

Pisze na szybko więc może źle albo się powtarzam. Ale spróbuj zrobić oddzielny plik z ramka tj. ramka.htm gdzie będziesz miał wszystkie linki. Na każdej podstronie walisz krótki skrypt:
<?php  include ("ramki.html"); ?>
Automatycznie gdy zmienisz coś w pliku z ramkami na każdej stronie będzie ładowany zmieniony plik bez potrzeby edytowania na wszystkich podstronach.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.