Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skąd pobierać titile, keywordsy itp .. ;)
Forum PHP.pl > Forum > PHP
Damiankossek
No więc witam,

Zapewne gdzieś tam w moich poprzednich pytaniach wspominałem że piszę CMSa opartego na Kohanie smile.gif ...
No i teraz mam mały problem ponieważ np. chciałbym aby użytkownik mógł zmieniać zawartość <title>, <meta> itp.
To już nie jest taki problem jak zrobić taki formularz i jak przekazać to do widoku smile.gif

Ale mam następujący problem jak i gdzie to zamieścić żeby można to póżniej prosto edytować ?

Wg. mnie najfajniej aby wszystko było zawarte w tablicy np.

  1. Plik pagesettings.php
  2.  
  3. return array('title' => 'Strona firmy X', 'keywords' => 'budownictwo, sciany');
  4.  


No i pobrać i wyświetlić te dane to nie problem, ale w razie edycji tych danych poprzez formularz, jak to zapisać z powrotem do tej tablicy?
Bo pierwsza koncepcja jaka przychodzi mi do głowy to pobrać zawartość tego pliku a póżniej np. poprzez str_replace podmieniać zawartość pliku, ale wydaje mi się to problematyczną i niepraktyczną metodą.

Myślałem jeszcze nad plikami w stylu: title.txt , keywords.txt itp. ale czy to jest dobre rozwiązanie ? W zasadzie proste do zrobienia i po moich przemyśleniach jedyna sensowna metoda, ale być może można to lepiej zrobić ?
amii
A dlaczego nie w bazie danych? Takie operacje zwykle wykonuje się na bazie.
lukaskolista
COnfig w Kohana jest raczej do ustawiania na sztywno w plikach, nie do edycji przez uzytkownikow strony. Moze po prostu zrob tablice z konfiguracja, zserializuj ja i zapisz do pliku. Mozesz tez uzyc XML lub bazy danych
batman
~Damiankossek
Proszę poprawić tytuł. W przeciwnym razie temat zostanie zamknięty.
thek
Ech... Popraw ten tytuł to raz, a dwa, że najwygodniej jest sobie utworzyć Kontroler dziedziczący po Template (nazwijmy go Mainsite), z pewnym widokiem bazowym (nazwijmy go Base). W konstruktorze Mainsite ustawiasz sobie zmienną $this->template->title na jakąś wartość domyślną i wyświetlasz w Base.
  1. class Mainsite_Controller extends Template_Controller {
  2. public $template = 'base'; //podstawowy widok/szablon (views/base.php)
  3. public function __construct() {
  4. $this->template = 'base';//lub inny wedle uznania, ja mam tu IF, który wybiera spośród dwóch, ale base jest domyślny i oba zawierają szkielet całej strony, jej layout
  5. parent::__construct();
  6. $this->template->title = 'Jakiś domyślny tytuł';
  7. };
  8. };

Inne kontrolery w razie potrzeby dziedziczą po Mainsite, dzięki czemu masz dostęp do owej zmiennej template->title i śmiało w swoich konstruktorach mogą ją nadpisywać winksmiley.jpg
  1. class Main_Controller extends Mainsite_Controller {
  2. public function __construct() {
  3. parent::__construct();
  4. $this->template->title = 'Sami sobie ustawiamy';
  5. }
  6. }
Damiankossek
Thek, podałeś fajną metode lecz ja chcę mieć możliwość edycji tych danych z poziomu strony, lecz i tak wykorzystam Twoją metode bo jest wygodna. A co do pobierania danych, to pobiorę je z bazy smile.gif Myślałem jednak że takie dane trzyma się na plikach.

Pozdrawiam i dziękuje

P.S Sorry za nazwe tematu tongue.gif
thek
Jeśli chcesz edytować z poziomu strony to też żaden problem. Ja mam plik konfiguracyjny i przy wywoływaniu odpowiedniej wyciągam te dane z niego smile.gif Równie dobrze mogę użyć do tego celu bazy, co jest myślę wygodniejsze w przypadku dynamicznego tworzenia tytułu, gdzie tytuł ów jest naprawdę częsty w zmianach.
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.