Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zarządzanie nazwami menu
tomsi
post
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Mam w katalogu Menu pliki np aktualnosci.php, wiadomosci.php, galeria.php. Pobieram te wszystkie pliki do zmiennej i wyświetlam w menu. W każdym z tych plików wprowadzam odpowiednie dane i ok. Problem polega tylko na tym, że w menu wyświetlają mi się te nazwy plików, a ja chciałbym żeby zamiast aktualnosci.php był napis Aktualności itd. Wiem, że można by to zrobić w tablicy, ale czy jest jakiś sposób żeby np. w katalogu Menu był jakiś plik .txt w którym byłyby nazwy plików i po jakimś separatorze ich nazwy, które były by widoczne na stronie. Dodawał bym tylko nowy plik do folderu o jakiejś nowej nazwie i po | podam nazwę, która byłaby widoczna w menu np.

aktualnosci.php|Aktualności
wiadomosci.php|Wiadomości
galeria.php|Galeria

No bo rozumiem, że automatyczna taka zamiana to byłaby ciężka do zrobionia bądź nawet niemożliwa.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Masz taki kod:
  1. <?php
  2.  
  3. class menuPosNameFinder {
  4.  
  5. private $data = array();
  6.  
  7. public function __construct($file) {
  8. $fileData = file($file);
  9. for ($i=0,$b=count($fileData);$i<$b;$i++) {
  10. list($key,$value) = explode('|',trim($fileData[$i]));
  11. $this->data[$key] = $value;
  12. }
  13. }
  14.  
  15. public function getPosName($fileName) {
  16. if (isset($this->data[$fileName]))
  17. return $this->data[$fileName];
  18. else return false;
  19. }
  20.  
  21. }
  22.  
  23. //tworzymy obiekt tej klasy, przekazując mu nazwę pliku z pozycjami
  24. $finder = new menuPosNameFinder('pozycje.txt');
  25.  
  26. //pierwsza i druga pozycja
  27. echo $finder->getPosName('index.php');
  28. echo '<br>';
  29. echo $finder->getPosName('asd.php');
  30. echo '<br>';
  31.  
  32. //trzecia pozycja: dodatkowo sprawdzamy, czy istnieje
  33. if (($pos = $finder->getPosName('inna.php')) !== false) echo $pos;
  34. else echo 'Brak pozycji';
  35.  
  36. ?>


Na dole masz 3 przykłady, jak pobierać dane z tej klasy. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Plik pozycje.txt wygląda tak:
Kod
index.php|Indeks
asd.php|Inna strona
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: 4.10.2025 - 00:45