Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] CMS problem z " A > B > C"
propage
post
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

Ostrzeżenie: (0%)
-----


Do tej pory pisałem strukturalnie. Tworze swój CMS/Framework i zastanawiam się nad jedną sprawą.

Jak rozwiązać sprawę wyświetlania nawigacji na stronie czyli "Jesteś tutaj : home > kategoria 1 > kategoria 2 > kategoria 3 > produkt"

Poziomów kategorii może być dowolnie wiele.
URL mają postać:

domena.pl/kategoria-1/kategoria-2/kategoria-3/produkt-1.html

ale do tego samego produktu można wejść też używając adresu

domena.pl/kategoria-1/kategoria-2/produkt-1.html


moja aplikacja wygląda mniej-więcej tak:

  1. <?php
  2. include_once('controllers/' . $subPage . '.php');
  3. $page = new $subPage($db);
  4. ?>



A tutaj kontroler produktu, kategorii i innych stron ma taką postać.

  1. <?php
  2. class product extends core
  3. {
  4.   function __contruct()
  5.   {
  6.       $this->name = $nazwa_produktu;
  7.       $this->trail->add(array($nazwa_produktu, $nazwa_produktu.'.html'));
  8.  
  9.       $url = explode ( '/', $_GET) ;
  10.  
  11.       $category_name = $url[count($url) - 2];
  12.      
  13.       if(count($url) > 2)
  14.       {
  15.         $parent = 'home';
  16.         include('controllers/home.php');
  17.       {
  18.        else
  19.        {
  20.        $parent = 'category';
  21.         include('controllers/category.php');
  22.        }
  23.      
  24.   }
  25.  
  26.   function display()
  27.   {
  28.    ....
  29.    }
  30. }
  31. class category extends core
  32. {
  33.    function __contruct(,,, $i)
  34.    {
  35.        $this->name = $nazwa_kategori;
  36.       $this->trail->add(array($nazwa_kategori, $nazwa_kategori));
  37.        $url = explode ( '/', $_GET) ;
  38.  
  39.        $category_name = $url[count($url) - (2+$i)];
  40.  
  41.         if(count($url) > 2)
  42.        {
  43.          $parent = 'home';
  44.          include('controllers/home.php');
  45.        
  46.        {
  47.         else
  48.         {
  49.            $i++;
  50.           $parent = 'category';
  51.              include('controllers/category.php');
  52.           $subsctegory new category(..., $i)
  53.         }
  54.    }
  55.  
  56.    function display()
  57.    {
  58.     ....
  59.     }
  60. }
  61. ?>



To jedyny pomysł na jaki wpadłem niestety. Aby nie tworzyć nowych plików. Czyli wszystki informacje potrzebne do wyświetlenia danej podstrony i stworzenia traila są w plikach, w każdym pliku jest zaznaczone co jest rodzicem danego pliku, wiec dla produktu np jet to kategoria a dla kategori strona głowna (w prostej wersji - przy jedno poziomowej kategorii)

Może ktoś podać jakiś inny pomysł rozwiązywania tego problemu? Może jakieś przykłady, CMS gdzie mogę podejrzeć inne rozwiązania?

Ten post edytował propage 22.03.2009, 20:42:36
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 18:37