//TODO: MENU try { $menus = $fcms->menu_getAll(); foreach ($menus as $key => $value) { try { $menu = $fcms->menu_tree($key); $$value='<ul>'; foreach ($menu as $key => $val) { if ($val['type'] == 'in-site') { $$value .= '<li><a href="' . $fcms->router_url('page', $val['href']) . '">' . $val['anchor'] . '</a></li>'; }//if else { $$value .= '<li><a href="' . $val['href'] . '">' . $val['anchor'] . '</a></li>'; }//else }//foreach $$value.= '</ul>'; }//try catch (exception $e) { $$value = $e->getMessage(); }//catch $fcms->tpl_putVar($value,$$value); }//foreach }//try catch (exception $e) { $page['content'] = $e->getMessage(); }
Funkcja menu_getAll() zwraca tablicę w coś w takim schemacie:
$menus[1] = 'nav_menu'; $menus[2] = 'left_menu'; //(...) $menus[mid]='n_menu'; //mid jest identyfikatorem który rozróżnia jakie linki przypisać do konkretnego menu
Funkcja menu_tree($mid) zwraca dane w podobny sposób:
Teraz pytania

1. Osobiście nie podobają mi się te dwie pętle - mimo że przewiduje tutaj bardzo małe tablice to i tak wolałbym to jakoś prościej (jak się da) zrobić. - jest na to jakiś sposób, bo niczego konkretnego nie znalazłem.
2. Użyłem w kodzie anonimowch funkcji, ale nie wiem czy one są wystarczająco szybkie. Zastanawiałem się, aby zamiast $$value dać $zmienna[$value] (nazwa value to zawartość elementu tablicy $menus), ale wtedy muszę jeszcze jedną pętlę dać, aby przekazać zawartość do prowizorycznego parsera (tutaj funkcja putVar()

Oraz aby nie nabijać sobie postów.
W swoim projekcie zamierzam wprowadzić proste moduły i który sposób ich ładowania będzie lepszy:
(...) $func($parms);
czy raczej za pomocą funkcji w stylu call_user_func_array?
I na koniec mam zapisane w pliku ini hasło i nazwę użytkownika bez żadnego hashowania (md5 itp) czy jak przez httaccess zablokuje dostęp do pliku to będzie wystarczające zabezpieczenie, czy jednak lepszy będzie plik php o podobnej strukturze:
[php]
<?php
$user['name']='nazwa';
$user['password']='hasło w md5 lub czyms podobnym';
?>
(dodam, że w tym wypadku przechowywanie hasła w bazie odpada bo moim zdaniem nie warto robić tabeli dla jednego rekordu.
Z góry dzięki za odpowiedź
