lms icon indicating copy to clipboard operation
lms copied to clipboard

błąd w obsłudze HOOK-a?

Open chilek opened this issue 5 years ago • 4 comments

https://github.com/lmsgit/lms/blob/f38beefd947f5db5d2172e9c84c552c8bc2c5597/modules/customerassignmentadd.php#L40

powoduje, że dane zwrócone przez hook: https://github.com/lmsgit/lms/blob/f38beefd947f5db5d2172e9c84c552c8bc2c5597/modules/customerassignmentadd.php#L75

są pomijane w liniach w wierszach: https://github.com/lmsgit/lms/blob/f38beefd947f5db5d2172e9c84c552c8bc2c5597/modules/customerassignmentadd.php#L79-L84

Pytanie czy jest to celowe i będzie się częściej pojawiać, czy błąd? Najprościej było by przekazać result do hook i go ponownie pobrać przed zrobieniem extract. Niekoniecznie jest to najbardziej eleganckie.

(zgłoszenie utworzone na podstawie otrzymanego maila)

chilek avatar Jan 20 '20 11:01 chilek

Pytanie: po co w hooku walidującym zmieniać walidowane dane? Nie wiem czy w ogóle nie powinno wylecieć zwracanie $a z tego typu hook-a.

chilek avatar Jan 22 '20 15:01 chilek

Zdarzała się już potrzeba modyfikowania tego typu danych w zależności od specyficznych założeń użytkownika. Przykład: Klienci z miasta X mają mieć dzień wystawiania 1 z miasta Y dzień naliczania 15. Dodanie tego w pluginie modyfikującym zobowiązania pozwala uniknąć błędów pracowników. Przykład teoretyczny ale nie odbiega daleko od tego co się zdarzało i tego co chciałem zrealizować. Takie ograniczenie danych zmniejsza możliwości dostosowania LMS poprzez wtyczki.

ZdanowskiS avatar Jan 23 '20 01:01 ZdanowskiS

@ZdanowskiS zwróć uwagę, że extract($result); zmienia pewne właściwości zobowiązania (nie w tablicy asocjacyjnej $a). Czy hook powinien te dodatkowe dane uzyskiwać jako dodatkowe parametry czy raczej w ogóle ich nie powinien uzyskiwać, albo uzyskiwać w postaci podmienionych już pól w $a?

chilek avatar Jan 24 '20 18:01 chilek

Jeżeli w ramach LMS ma być możliwe modyfikowanie zachowania modułów pod indywidualne potrzeby przekazanie i odczytanie wszystkich danych z wtyczek jest niezbędne. Bez przekazania zmiennej i późniejszego odczytania moduł straci elastyczność. Przyjrzałem się jak zmieniane są właściwości zobowiązania. Zwracanie danych do $a być może w jakiejś sytuacji też będzie problemowe. Wydaje mi się jednak że w razie potrzeby wykonywane zmiany można odwrócić w ramach plugina. Prawdopodobnie zemści się to na kompatybilności wtyczek przy aktualizacjach, jeżeli walidacja ulegnie zmianie. Pytanie jak użycie dwóch zmiennych jako standardu wpłynie na inne modułu gdzie pojawi się extract? Czy będzie to jedna zmienna ($a) czy 2 zmienne przekazywane do hook, nie będzie to tak mocno ograniczać elastyczności jak obecna sytuacja.

ZdanowskiS avatar Jan 24 '20 22:01 ZdanowskiS