Webboard

Pełna wersja: Wspólny standard pisania pluginów
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam,
Jako że męczę się z zachłannością pluginu na kolorowe nicki postanowiłem napisać tutaj propozycję ustandaryzowania kilku rzeczy.
Sam projekt ma za zadanie poprawić kompatybilność pluginów osób, które postanowią stosować się do zaleceń tego nieoficjalnego standardu nie wpływając zbytnio na wydajność.

Jeżeli macie jakieś sugestie piszcie śmiało.

Ja ze swojej strony podam pierwszy projekt, który mam nadzieję będzie użyteczny.


System strażników
Zmienne byłyby wstawiane podobnie jak bloki w twigu.
Cytat:Przykład 1.1
<p>
    <span>
        {+NAME-OF-PLUGIN+}Zmienna1|Zmienna2|Zmienna3{+ENDofBLOCK+}
        Lorem Ipsum
    </span>
</p>

Zmienne z bloków nie mogą być o wartości {+ENDofBLOCK+} jednak dzięki bloku  {+.*?+} nie były by naruszane przez inne pluginy stosujące się do tego standardu.
Kiedy ma znaczenie stosowanie tego sposobu zapisu? Gdy np wpływamy na zmienne, które może wykorzystywać inny plugin. Dzięki temu zabiegowi możemy bez problemu używać zmiennych mybb bez obawy że inny kompatybilny plugin coś w nich zmienni. Może być to przydatne np przy wstawianiu zmiennych w szablon w miejscu zmiennej mybb.

Pozdrawiam
O ile dobrze rozumiem, to nie ma to za bardzo sensu - bo czasami (raczej częściej niż rzadziej) następuje konieczność nie tyle dodania czegoś, co zmodyfikowania całej zawartości zmiennej, właśnie ze względu na np. ograniczenia hooków.
A to z czym masz problem, czyli zachłanność, jest do rozwiązania za pomocą priorytetowania hooków, kolorowe nicki zostawiają spory zapas pod tym względem.
No właśnie tak kolorowo nie jest. Dobieram się do zmiennej a tenże plugin mi ją przekształca nieważne czy ustawię priorytet 5 czy 15
Sorry, ale coś tu bajerujesz :)
Taki przykładzik z modyfikacji tego pluginu.

1. Dodanie nowej funkcji na hook, ale o niższym priorytecie:


Kod PHP:
$plugins->add_hook('build_forumbits_forum''my_function'11);

function 
my_function(&$arg) {
    $arg['lastposter'] = '#AAAA#' $arg['lastposter'] . '#';



Efekt:

[attachment=10447]


No i na output można z tym już zrobić co się zechce.
tylko że ja działam na hooku pre_output_page
a w szablon wstawiam coś takiego {+LIGHTAVATARS+}forumdisplay_thread_lastpost|{$lastposterlink}{+ENDofBLOCK+}
Wiesz takie obejście ograniczeń hooków troszkę :D
Nadal nie widze w tym problemu, kolorwe nicki robią coś bardzo podobnego, również przez ograniczenia hooków.
To może podeślę ci plugin? Może tobie uda się znaleźć problem.