Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Includowanie i dynamiczny tytuł
Forum PHP.pl > Forum > PHP
Tonic
Witam,

Chciałbym się dowiedzieć, w jaki sposób mogę includować podstrony mając dwie zmienne - nazwę skrótową, do której będą się odwoływać linki oraz pełna nazwę, która się pojawi na górze przeglądarki, dla czytelników. Żeby nie było, dwa dni szukałem i nie znalazłem tego, czego potrzebuję. Obecnie korzystam z takiego kodu:

  1. <?php
  2.  
  3.  
  4. switch( $_GET['id']) {
  5.  
  6. break;
  7.  
  8. case 'strona1':
  9.  
  10. include 'pages/strona1.php';
  11.  
  12. break;
  13.  
  14.  
  15. [ciach!]
  16.  
  17. default:
  18.  
  19. include 'pages/newsy.php';
  20.  
  21. }
  22.  
  23. ?>


Taki kod znajduje się w divie z treścią. Jedynie co w tej chwili mogę zrobić, to dodanie do znacznika <title> <?php echo($_GET['id']);?>. Wtedy pojawiają się tytuły podstron, ale one są skrótowe i to brzydko wygląda. Mógłbym zmienić nazwy case na pełne, ale byłoby mi trudniej zrobić nawigację.
pest
Równie dobrze możesz zastosować 2 razy taką konstrukcję - raz przy <title> raz przy tym <div> w którym masz treść.
Tonic
Cytat(pest @ 5.03.2008, 10:11:44 ) *
Równie dobrze możesz zastosować 2 razy taką konstrukcję - raz przy <title> raz przy tym <div> w którym masz treść.

Mógłbyś rozwinąć? Na PHP kompletnie się nie znam. Ale pokombinowałem i zauważyłem, że skorzystanie z echo w <title></title> działa, tj. kod ma taką postać


CODE


<title>

<?php


switch($_GET['id']) {

case 'newsy':
echo 'Nowości';
break;

case 'akwarele':
echo 'Akwarele i rysunki';
break;

}

?>

</title>



Ale tak patrzę na cały kod index.php i stwierdzam, że zrobił się długaśny. I chyba spowalnia poruszanie się po stronie.. Nie ma jakiejś innej schludniejszej metody na includowanie podstron w oparciu o dwie nazwy (jedną skrótową i drugą do tytułu)?
Xniver
Masz tu kod. Musisz jeszcze tylko umieścić zawartość stron w katalogu 'strony'(jak chcesz to możesz zmienić) oraz pozmieniać dane w array '$pages'
  1. <?php
  2. // Katalog w ,którym będziesz trzymał zawartość
  3. $pagesCat = 'strony';
  4.  
  5. // Dozwolone strony
  6. // 'id' => 'tytul'
  7. $pages = array(
  8. 'newsy' => 'Nowości',
  9. 'akwarele' => 'Akwarele',
  10. 'inne' => 'Inne'
  11. // ...
  12. );
  13.  
  14. // Sprawdzenie
  15. if(!isset($_GET['id']) || !isset($pages[$_GET['id']]))
  16. {
  17. $_GET['id'] = 'newsy'; // Domyslna strona
  18. }
  19.  
  20. // Tytul
  21. echo '<title>' . $pages[$_GET['id']] . '</title>';
  22.  
  23. // Zawartosc strony
  24. require_once './' . $pagesCat . '/' . $_GET['id'] . '.php';
  25. ?>
Tonic
Cytat(Xniver @ 7.03.2008, 14:01:02 ) *
Masz tu kod. Musisz jeszcze tylko umieścić zawartość stron w katalogu 'strony'(jak chcesz to możesz zmienić) oraz pozmieniać dane w array '$pages'

Kod działa świetnie, pod warunkiem, że wszystkie podstrony znajdują się w jednym katalogu. Ja akurat posortowałem większość podstron i umieściłem je w kilku katalogach (np. pages/wn, pages/elektronika). Można coś zrobić z tym fantem?
Xniver
  1. <?php
  2. // Katalog w ,którym będziesz trzymał zawartość
  3. $pagesCat = 'strony';
  4.  
  5. // Dozwolone strony
  6. // 'id' => array('title' =>'tytul', 'prefix' => 'podkatalogAlboNie')
  7. $pages = array(
  8. 'newsy' => array('title' => 'Nowości' , 'prefix' => 'podkatalog/'),
  9. 'akwarele' => array('title' => 'Akwarele', 'prefix' => ''), // bez podkatalogu
  10. 'inne'  => array('title' => 'Inne' , 'prefix' => 'podkatalog2/')
  11. // ...
  12. );
  13.  
  14. // Sprawdzenie
  15. if(!isset($_GET['id']) || !isset($pages[$_GET['id']]))
  16. {
  17. $_GET['id'] = 'newsy'; // Domyslna strona
  18. }
  19.  
  20. // Tytul
  21. echo '<title>' . $pages[$_GET['id']]['title'] . '</title>';
  22.  
  23. // Zawartosc strony
  24. require_once './' . $pagesCat . '/' . $pages[$_GET['id']]['prefix'] . $_GET['id'] . '.php';
  25. ?>
Tonic
Działa jak należy. Bardzo dziękuję za pomoc!
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.