Dzisiaj jest środa, 04 października 2023
Stwórz sobie własną chmurę tagówUstawienia renderowania w BlenderzeFotocyk
Czy wtyczki są dobre na wszystko?

Czy wtyczki są dobre na wszystko?

czwartek, 2021-03-11806Alib CyMeS, Internet, Programowanie

Zapewne większość z Was swoje strony lub blogi postawiła na Wordpressie. To system dla laików, wszystko da się w nim wyklikać, a wszelkie braki realizuje się przy pomocy wtyczek. Z drugiej strony bez tych wtyczek ten system jest po prostu niefunkcjonalny. Czy naprawdę wszytko trzeba tu realizować przy pomocy pluginów?

Wtyczki pochodzą z banku zdjęć Fotolia

Idea wtyczek jest fajna

Tego nie kwestionuję. Pobierasz, instalujesz, włączasz, ustawiasz i gotowe. Sam jakiś czas temu wprowadziłem taki mechanizm w swoim CMSie, ale tak naprawdę korzystam tylko z jednej wtyczki. Resztę potrzeb realizuję bezpośrednio w kodzie, bo plugin w takim wypadku to wytaczanie armaty na komara. No ale nie każdy umie programować.

Wtyczki jednak dosyć mocno obciążają system. O ile w programach desktopowych jest to niezauważalne (co nie znaczy, że tak samo szybkie i efektywne jakby zadanie było realizowane po prostu przez odpowiednią część programu), o tyle w aplikacjach webowych już tak. Każde odświeżenie strony to kilka zapytań do bazy danych, sprawdzenie obecności pluginu (może w międzyczasie ktoś go ręcznie wykasował), odczyt parametrów (też z bazy) i uruchomienie we wskazanym miejscu na stronie. W zasadzie jedyną zaletą pluginów jest ich uniwersalność. Wystarczy zainstalować (czasami po prostu skopiować pliki w odpowiednie miejsce), skonfigurować i niczym więcej się nie przejmować.

Ola Gościniak opublikowała kiedyś 10 zabójczych wtyczek do WordPressa. Chociaż nie jestem WordPressowcem, to zajrzałem z ciekawości. Kto wie, czy coś mnie nie zainspiruje do dodania jakiejś funkcjonalności do mojego CMSa? I prawdę mówiąc jestem bardzo zaskoczony, żeby nie powiedzieć: rozczarowany. Większość z nich moim zdaniem powinna być integralną częścią systemu, bo często jest to tylko kilka linijek faktycznego kodu rozciągnięte do całego panelu konfiguracji. Samo zintegrowanie ich z systemem zajmuje o wiele więcej.

Ola w odpowiedzi na mój komentarz stwierdziła, że „dzięki temu [brak tych dodatków w standardzie] czysty WordPress nie jest kobyłą i instalujesz konkretne moduły (wtyczki) wtedy, gdy są potrzebne”. Cóż, nie zgodzę się z tym. Goły WP wciąż jest kobyłą. A jako, że w swojej goliźnie niewiele oferuje, to stawianie serwisu zaczyna się od pobrania wtyczek do realizacji najbanalniejszych rzeczy. Większość z tych opisanych przez Olę przydałaby się niemal w każdym serwisie.

O jakie wtyczki mi chodzi?

Pozwolę je sobie opisać i porównać z tym, co jest w standardzie Alib CyMeS. Tak, chwalę się i uprawiam bezczelną autoreklamę :)

  • Redirection - bardzo istotna rzecz i często używana niemal w każdym aktywnym serwisie. Wiadomo, cały czas coś się dzieje, coś dochodzi, coś odchodzi, coś się zmienia. Dzięki wtyczce adres skasowanego wpisu możesz przekierować na inny, nie tracąc przy tym siły w SEO. Wprowadziłem tę funkcję do Alib CyMeS kilka lat temu jako zakładkę Przekierowania. Potem dodałem możliwość automatycznego tworzenia skróconych adresów, które mogą prowadzić do dowolnej strony w internecie, nie tylko w obrębie serwisu.
  • WP Maintenance Mode - W zasadzie też dosyć podstawowa rzecz i nie wymagająca wiele zachodu. To taka stronka zastępcza, gdy dłubiesz coś w kodzie strony i nie chcesz, żeby odwiedzający widzieli, co się aktualnie dzieje. U mnie co prawda nie ma zegara, ale nigdy nie był mi potrzebny. Zresztą trudno jest określić, czy konserwacja zajmie godzinę czy cały dzień.
  • Jetpack by WordPress - OK, przyznaję, tego nie mam. Faktycznie spory kombajn do różnych rzeczy, jak napisała Ola, chociaż też raczej dla wyklikiwaczy. Między innymi robi automatyczny backup strony, pomaga przy migracji (u mnie wystarczy skopiować serwis i bazę danych), podglądanie dziennika aktywności (takie podręczne logi - u mnie jest, ale nie używam), skanowanie strony w poszukiwaniu złośliwego oprogramowania, ochrona przed atakami itp. To całkiem niezła skarbnica pomysłów i na pewno kiedyś coś sobie z tego zapożyczę, o ile jeszcze nie mam :)
  • Adminimize - jedna z pierwszych rzeczy, które wprowadziłem, czyli ukrywanie niepotrzebnych zakładek w panelu admina. Robię serwisy dla różnych klientów i nie każdy potrzebuje dostępu do wszystkich zakładek panelu, czy to ze względów bezpieczeństwa (niektóre są tylko dla mnie, żeby uprościć sobie niektóre czynności programistyczne) czy ze względów funkcjonalnych (nie wszystkie funkcjonalności są używane na stronie, więc po co robić zamieszanie?). Na swoich stronach też wyłączam wszystko, z czego nie korzystam na bieżąco - na blogu mam w zasadzie dostęp tylko do managera plików i edytora wpisów. A jeśli wyłączę zakładkę w menu, to nawet jeśli ktoś wpisze jej bezpośredni adres, to nie będzie miał praw dostępu. Czy ten plugin w WP też tak działa czy tylko ukrywa samą pozycję w menu?
  • WP Google Maps - Fakt, dla klikaczy może to być bardzo przydatne, dla kodera jest to kilkanaście linijek kodu. Zamknąłem je kiedyś w jednej funkcji, więc wyświetlenie mapki ogranicza się do jednej linijki kodu i ewentualnie udostępnienie miejsca w panelu, gdzie klient wpisze sobie współrzędne, jeśli często chce przestawiać markery. Obecnie zresztą średnio przydatne, bo Google zaczęły monetyzować bardziej skomplikowane mapki, więc przerzuciłem się na OpenSteeet Maps.
  • Polylang - tworzenie wielojęzycznych stron z możliwością przełączania języka. Ja to realizuję to drzewiastą strukturą stron i menu. Dzięki temu od razu widać, co jest polskie, co angielskie a co niemieckie.
  • Orphans (Sierotki) - u mnie to dokładnie 3 linijki kodu zamknięte w jednej prostej funkcji, którą można dostosować do dowolnego języka (podobnego mechanizmu używam w narzędziu GREP w InDesignie). Jeśli ktoś chce, mogę podesłać odpowiednią funkcję :)
  • Loco Translate - tłumaczy angielskie frazy w motywach na polski. A nie można po prostu otworzyć tych kilku plików motywu i przetłumaczyć? Przecież to będzie dużo szybsze i bardziej eleganckie, bo translatory nie zawsze robią to z sensem.
  • Duplicate Post - tworzenie duplikatu postu, w celu utworzenia nowego na bazie istniejącego. Jakiś czas temu wprowadziłem to do mojego CMSa i jest to to zaledwie kilkanaście linijek kodu.
  • Simple Lightbox - pozwala tworzenie okienka do przeglądania powiększeń zdjęć z galerii wraz ze strzałkami do nawigacji. Tu można by dyskutować, czy jest sens trzymać to na stałe w systemie, w końcu nie każdy musi mieć galerię na stronie. Ja to dodałem po zrobieniu kilku serwisów z galeriami. Tak naprawdę jest to tylko nieco rozbudowana klasa do wyświetlania okienek, których i tak używam w panelu admina i prawie na każdej stronie. WordPress zresztą też używa, więc mogłoby się to spokojnie znaleźć standardowo w systemie i nie rozbudowywałoby go aż tak bardzo, żeby tłumaczyło to robienie specjalnego pluginu.

Generalnie oprócz Jetpacka, cała reszta jest do zrealizowania w prosty i szybki sposób bezpośrednio w podstawowym kodzie CMSa. Realnie zwiększyłoby to kod WordPressa nie więcej niż o kilka kilobajtów, to jest promilem w stosunku do obecnej objętości systemu. Dodanie tych podstawowych wtyczek powiększa i obciąża go w dużo większym stopniu.

Jeśli podoba Ci się wpis,
koniecznie zalajkuj,
skomentuj i zapisz się na