Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc - dynamiczny header
Forum PHP.pl > Forum > PHP
davidos
Witajcie,
Jestem w trakcie uczenia się html`a, css i troche php w praktyce wink.gif
Stworzyłem sobie stronę, w której mam dynamiczny cały header, żebym nie musiał w każdym pliku zmieniać czegoś w np. menu wink.gif

Czyli mam na górze
  1. <?php include("header.php"); ?>


Mam galerie, i żeby działała w sekcji body muszę dodać
  1. <body onload="initLightbox()">
oraz dodać w headerze dodatkowe odnośniki, a nie chce zaśmiecać tym każdej podstrony.
Dlatego tez chciałem się zapytac jaki jest skrypt, abym mógł dodać w każdej podstronie dodatkowe odnośniki do sekcji <head> i body smile.gif

Z góry dzięki wink.gif
maniana
Czy header.php nie może mieć w sobie sekcji body? smile.gif
davidos
Oczywiście że ma, ale nie chcę żeby to się ładowało na każdej podstronie, tylko właśnie w galeri. Coś jakby ustawić w każdej podstronie zmienną, dzięki której zmienia sie <title> w każdej stronie, jakiś globalny odnośnik.. Po wpisaniu go w tej podstronie wink.gif
maniana
To niech pozostanie wszędzie inkludowny header a w nim przykładowo sprawdź czy aktualna strona to galeria. Jeśli tak to wyświetl body z inicjacją, jeśli nie to samo body... if i else, sprawa rozwiązana.
davidos
ehym..
Tutaj (jakbym to napisał) to robi się wszystko w headerze, a nie da sie tak że w headerze piszę zmienną a potem w pliku np. galeria.php pisze co ma być dodane do tego headeru?
Jeżeli się da.. Rozumiem że tu kodu nie dostane?
gitbejbe
tak jak napisał @maniana
jesli w headerze masz skrypty odpowiadające za galerie, to piszesz skrypt php, w którym sprawdzasz czy obecna strona to galeria. Jeśli tak, to wyswietlasz skrypty do galerii.
np:
  1. $adres_strony = $_SERVER[PHP_SELF];
  2. $dzielisz_adres = explode("/", $adres_strony);
  3. $nazwa_pliku = end($dzielisz_adres); // czyli ta zmienna będzie wskazywać na to czy jest to galeria.php czy coś innego
  4. //no i teraz waruenk
  5.  
  6. if($nazwa_pliku == 'galeria.php')
  7. {
  8. $body = 'onload="initLightbox()"';
  9. }
  10. else
  11. {
  12. $body = '';
  13. }


a w html
  1. <body <?php echo $body; ?>>
  2.  
  3. </body>


i podobnie możesz robić z pozostałymi rzeczami, które chciałbyś użyć tylko na danej stronie.

ps: pisane z głowy, ale powinno działać.
davidos
Jeżeli chodzi o samo body to działa i dzięki smile.gif
No ale jak próbuję tym sposobem dorzucić jeszcze $head to już nie działa, na stronie pokazuje się "'; } else { $body = ''; $head = ''; } ?> "
Kod mam taki:
  1. <? php
  2. $adres_strony = $_SERVER[PHP_SELF];
  3. $dzielisz_adres = explode("/", $adres_strony);
  4. $nazwa_pliku = end($dzielisz_adres); // czyli ta zmienna będzie wskazywać na to czy jest to galeria.php czy coś innego
  5. //no i teraz waruenk
  6.  
  7. if($nazwa_pliku == 'galeria.php')
  8. {
  9. $body = 'onload="initLightbox()"';
  10. $head = '<link rel="stylesheet" href="http://wizzziy.pl/strona/galeria/css/lightbox.css" type="text/css" media="screen" />
  11. <script type="text/javascript" src="http://wizzziy.pl/strona/galeria/js/prototype.lite.js"></script>
  12. <script type="text/javascript" src="http://wizzziy.pl/strona/galeria/js/moo.fx.js"></script>
  13. <script type="text/javascript" src="http://wizzziy.pl/strona/galeria/js/litebox-1.0.js"></script>';
  14. }
  15. else
  16. {
  17. $body = '';
  18. $head = '';
  19. }
  20. ?>

No a w polu head mam tak:
  1. ...
  2. <?php echo $head; ?>
  3. </head>
  4. <body <?php echo $body; ?> >


I od razu zapytam czy idzie zrobić coś takiego że w head dodam
  1. <title> <?php echo $title; ?> <title>
a w każdym pliku na początku będę dawał
  1. $title = "WizZziy.pl - Zleć Grafikę";
Czy jak to trzeba zrobić?

EDIT: Dziwne.. Nagle zaczęło działać ohmy.gif Więc czy poprawnie tamten kod napisałem?
gitbejbe
tak, kod jest ok.

I jak napisałeś, w ten sam sposób możesz dodawać odpowiednie dla Ciebie wartości w znaczniku <title> i tak naprawdę co jeszcze tylko chcesz i gdzie chcesz. Musisz tylko uważać na to aby, aby kod był dla Ciebie przejrzysty. PHP to piękny i prosty język ; )

ps: chcę + za pomoc tongue.gif ryzykowałem opierdziel od szefa, że nie pracuje a siedzę na forum ;p
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.