
<?php // config.inc.php: // lista dozwolonych modułów // index.php: // pobieranie nazwy modułu do działania // GetPageArgument() to moja funkcja do wybierania z _get[]ów i _post[]ów // ... // kod wywołujący dany moduł // include'uje moduł include_once('modules/'.$mode.'/module_code.php'); if (is_callable('main_'.$mode)) { $mdr_body = ''; $mdr_title = ''; // wywołuje funkcję main_md_nazwamodułu // i przekazuje jej referencje do zmiennych, gdzie ma być zwrócona treść if (call_user_func('main_'.$mode, &$mdr_body, &$mdr_title)) { $body .= $mdr_body; $page_title .= ' - '.$mdr_title; } else { $body .= 'Nie mogę wyświetlić żądanej treści'; } } else { } } else { $body .= "Nie mogę znalezc okreslonego modulu"; } // przykładowy plik, modules/md_content/module_code.php function main_md_content(&$body, &$title) { $result = ''; $cmd = GetPageArgument('cmd', ''); $content_id = GetPageArgument('content_id', 0); return get_content($content_id, $body, $title); } ?>
W katalogu /modules/md_nazwamodulu/ jest jeszcze zawsze plik module_admin.php do administracji oraz module_info.php z szybkimi do wyciągnięcia informacjami o module. Poza tym jest też oddzielna tablica $amodules[], która zawiera tablicę modułów wywoływanych zawsze, bez polecenia. Jakoś to wszystko działa... jestem tylko pewny jednej rzeczy - ten kod nie jest ani trochę bezpieczny. I celem tego tematu jest to, żebyście wskazali mi wszystkie możliwe furtki/błędy, które zostawiłem pisząc to. Jeśli gdzieś popełniłem coś naprawdę głupiego - opieprzcie mnie solidnie
