W Moim cms napisalem sobie system wtyczek.. W pewnym katalogu wrzucam odpowiedni pliczek a on dodaje ladnie rozne funkcje do systemu.
działa to tak..
kazdy plugin ma taka strukture: ( przykladowo faq.npl.php )
<? class faq { function faq() { //to, co nastepuje przy zaladowaniu wtyczki } //jakies tam funkcje function admin_faq() { //to, co dodaje funkcje do panelu admina.. } } ?>
Taki plugin jest ladowany prez nastepujacy kod:
<? $plugin = new Plugins; class Plugins { function Plugins() { include($plik); $this->p[$plik3[0]] = new $plik3[0]; } } } ?>
Wiec zeby odwolac sie do jakiejstam funkcji z pluginu np. show_faq() muszę zrobić <span style="font-weight: bold;">$plugin->p['faq']->show_faq();</span>
w strukturze wtyczki zwroccie uwage na funkcje admin_faq - odpowiedzialna jest za dodanie funkcjonalnosci do panelu admina.. jest ok, w panelu wywoluję ją poprzez ten kod:
<?php $funkcja='admin_'.$site[1]; if (function_exists($plugin->p[$site[1]]->$funkcja())) { $plugin->p[$site[1]]->$funkcja(); } else { $body=@errors('404. Brak takiej strony!', '« Wróć', 'java script:history.go(-1)'); } ?>
Gdzie <span style="font-weight: bold;">$site[1]</span> to zmienna z adresu, np. faq ;]
<span style="font-weight: bold;">SEDNO:</span>
i jest ok, acp chce zaladowac funkcję <span style="font-weight: bold;">admin_faq()</span>, ale..
Cytat
Fatal error: Call to undefined method faq::admin_faq() in /home/Wicko/www/nes/php/admin/admin.php on line 15
On chce sie odwolac nie do funkcji, tylko do metody w klasie. Jak to zmienic?
Z góry dziękuję, jeżeli nie rozumiecie to zapytajcie, nie bójcie się
