Dodawanie własnych przycisków w edytorze TinyMCE 4.*

WordPress 3.9 zawiera aktualizację edytora wpisów TinyMCE do wersji 4.*. Oznacza to spore zmiany w API edytora – dlatego postanowiłem opisać dodawanie własnych przycisków do edytora z użyciem nowego API.

Spis treści

Kod z poniższych przykładów można znaleźć też na Githubie.

  1. Deklarowanie nowego przycisku TinyMCE
  2. Przycisk z etykietą tekstową
  3. Przycisk ze standardową ikonką
  4. Przycisk z niestandardową ikonką pochodzącą z Dashicons
  5. Własna grafika jako ikonka przycisku
  6. Dodajemy przyciskowi submenu
  7. Dodajemy też sub-submenu 😉
  8. Dodajemy popup po kliknięciu
  9. Rozbudowywujemy popup

Czytaj dalej Dodawanie własnych przycisków w edytorze TinyMCE 4.*

WordPress 3.8 i dostosowanie wyglądu opcji wtyczek i motywów

Dzisiaj ukazał się WordPress 3.8 RC. Jak pewnie wszyscy zainteresowani wiedzą, wersja ta niesie duże zmiany w wyglądzie kokpitu. Zmiany te oznaczają pewien problem – nawet jeżeli korzystaliście z natywnych kontrolek UI kokpitu, to i tak czasem coś może w opcjach Waszej wtyczki czy motywu wyglądać nie tak jak sobie wymarzyliście 😉

Dodatkowo pojawia się jeszcze jeden problem – nie każdy użytkownik WordPressa będzie korzystał od razu z wersji 3.8. Zatem teoretycznie wtyczki i motywy powinny zawierać style CSS dla kokpitu, które zadziałają w zależności od używanej wersji WordPressa.

Na szczęście rozwiązanie tego problemu w CSS jest bardzo proste. WordPress w elemencie body kokpitu dodaje dużo różnych klas CSS – wśród tych klas znajdują się klasy o nazwach branch-* i version-*. I to właśnie te klasy uratują nam skórę 🙂

Klasa branch-* zmienia się z każdym dużym wydaniem WordPressa – w wersji 3.7.1 nazywa się ona branch-3-7, natomiast w 3.8 ma już nazwę branch-3-8. Klasa version-* zmienia się przy każdej aktualizacji WordPressa więc w wypadku wersji 3.7.1 ma ona nazwę version-3-7-1 a w wypadku wersji 3.8 ma nazwę version-3-8.

Jak widać z naszego punktu widzenia klasa branch-* będzie bardziej wygodna niż klasa version-*, gdyż ta druga zmieni swoją nazwę przy najbliższej aktualizacji WordPressa.

Jak możecie się domyslić aby stworzyć kod CSS działający tylko w WordPressie 3.8, wystarczy poprzedzić modyfikowane selektory zapisem:

.branch-3-8

Zatem aby na przykład zmodyfikować wygląd paragrafów tylko w WordPressie 3.8 wystarczy selektor:

.branch-3-8 p

Dzięki temu paragrafy w starszych wersjach WordPressa się nie zmienią.

Co bardziej zapobiegliwi mogą od razu zaaplikować następujący kod:

.branch-3-8 p,
.branch-3-9 p

Ale wtedy muszą liczyć na to, że w panelu WordPressa 3.9 za wiele się nie zmieni 😉

Frazy językowe w skryptach JavaScript

WordPress oferuje wiele przydatnych mechanizmów, które znacząco ułatwiają życie developerów. Jednym z takich mechanizmów jest możliwość tworzenia fraz językowych, które da się przetłumaczyć poprzez pliki językowe w skryptach JavaScript.

JavaScript sam w sobie nie umożliwia łatwej podmiany pewnych fragmentów kodu na inne pochodzące z wyników działania po stronie serwera. Na szczęście znaleziono na ten problem łatwe rozwiązanie – wykorzystano następujacy wzorzec:

Frazy językowe zostają zgrupowane w tablicy asocjacyjnej, która jest dostępna w innych skryptach dając dostęp poprzez zapis tablica.nazwa_frazy. Tablica asocjacyjna generowana jest przez skrypt PHP i umieszczana w znaczniku script w sekcji head dokumentu przed wywołaniem skryptu którego dotyczy. Czytaj dalej Frazy językowe w skryptach JavaScript

Date Queries pojawią się w WordPressie 3.7

Uwaga! Wpis ten dotyczy ciągle rozwijanej funkcjonalności WordPressa 3.7 – jej działanie może ulec zmianie w toku prac nad nowym wydaniem WordPressa.

Wygląda na to, że WordPress 3.7 przyniesie nową, bardzo ciekawą funkcjonalność związaną z tworzeniem zapytań zwracających wpisy – możliwość określenia ram czasowych dla pobieranych danych. Otwiera to wiele ciekawych możliwości np. wyświetlanie wpisów z konkretnego miesiąca, prezentacja wpisów opublikowanych tylko po godzinie 18 itd.

Sama obsługa tego typu zapytań wygląda przyjaźnie i warto o tej zmianie pamiętać oraz ją uwzględnić w swoich planach – może to pozwolić na uniknięcie tworzenia własnych, wyszukanych zapytań z pominięciem warstwy abstrakcji jaką oferuje nam natywna klasa obsługi bazy danych.

Czytaj dalej Date Queries pojawią się w WordPressie 3.7