Chyba nie da się tego zrobić w taki sposób jak chcesz to zrobić.
Od pewnego czasu LMS ma autoloader więc można osiągnąć podobny efekt na kilka innych sposobów:
1. Zrobić własną klasę dziedziczącą po LMS i w niej dodać swoją nową metodę lub metodę przesłaniającą obecnie dostępną:
class MyLMS extends LMS { public function myMethod() { echo 'myMethod'; } }
2. Dodać zupełnie oderwaną od klasy LMS nową klasę
class MyClass { public function myMethod() { echo 'myMethod'; } }
3. Jeśli chodzi o przesłonięcie istniejącej metody z LMS to można w większości przypadków dodać własnego "managera":
class MyFinanceManager extends LMSFinanceManager implements LMSFinanceManagerInterface {
public function GetCustomerAssignments($id, $show_expired = false) { $assignments = parent::GetCustomerAssignments($id, $show_expired); // tu robimy coś na zmiennej $assignment i zwracamy zmodyfikowaną return $assignments; } }
// rejestrujemy nowego managera $LMS->setFinanaceManager(new MyFinanceManager($LMS->getDb(), $LMS>getAuth(), $LMS->getCache(), $LMS->getSyslog()));
Dzięki autoloaderowi klasy MyLMS, MyClass i MyFinanceManager powinny być widoczne z innych pluginów (choć trzeba by było dorobić sobie sprawdzanie czy tak na pewno jest, czy ktoś nie wyłączył pluginu od którego zależy działanie naszego pluginu).
W dniu 03.02.2015 o 11:52, Przemysław Kudyba pisze:
Witam.
Przerabiam dodatki do LMS-a które jakiś czas temu nakodziłem, żeby robiły użytek z nowego stystemu pluginów w LMS. Mam w związku z tym pytanko: jak dorzucić z poziomu pluginu jakieś swoje metody do klasy LMS (a raczej instancji) tak, żeby były wydoczne dla funkcji spoza pluginu i możba było ich używać np. w innych pluginach ?
Pozdrawiam