Aby rozwinąć: Chciałbym wykorzystać ten sam kod Modal / wygląd (jak w wp.media.Modal, wp.media.FocusManager), aby otworzyć modal mojego własnego niestandardowego okna dialogowego, a nie edytora multimediów. W przeszłości używałem do tego grubych elementów, ale wp.media.Modal wydaje się być drogą przyszłości dla modałów - nie wspominając o tym, że wygląda świetnie.
Pogrzebałem trochę w źródle JS i doszedłem do kilku możliwych rozwiązań:
- „Pożycz” kod media-views.js i użyj go w mojej wtyczce.
- „Rozszerz” wp.media.Modal (w końcu jest to widok szkieletowy).
- Utwórz niestandardową implementację, jQueryUI itp.
- Po prostu poddaj się i użyj grubego.
Pożyczanie wydaje się nieco mniej niebezpieczne niż używanie wp.media.Model.extend ({}), ale marnotrawstwo. Nie jestem wielkim fanem modów jQueryUI, ale to by wystarczyło. W tym samym czasie mogłem wykonać niestandardową implementację modów (lub oprzeć ją na innej lib).
Wydaje mi się, że brakuje mi czegoś oczywistego: czy ktoś to ściągnął, czy też nowy kod modalny biblioteki multimediów jest „zbyt nowy”, aby umożliwić ponowne użycie?
Odpowiedzi:
Późna odpowiedź i edycja. Oświadczenie: Poniżej nie ma kodu kopiowania i wklejania.
Szorstki szkic
Ponieważ nigdy nie próbowałem nadużywać modalności medialnej do niczego innego, oto krótki przegląd, naszkicowany przez wyrwanie części z projektu, nad którym aktualnie pracuję. To nie gotowy pójść przykładem, ale powinno przynieść Ci wystarczająco blisko. Przeczytaj uważnie komentarze i zaimplementuj następujący PHP w swoich obiektach.
PHP
W naszym konstruktorze rejestrujemy nasze skrypty, dodajemy pola meta zawierające informacje i przycisk multimediów, filtrujemy dodatkowe typy MIME (np. ZIP) i dbamy o zapisanie dodatkowych danych:
Pamiętaj, aby przerwać, jeśli nie potrzebujesz tego skryptu na określonej stronie. Oszczędza to pamięć, czas żądania i pomaga utrzymać instalację w czystości.
Następnie dodajemy meta box. Wewnątrz funkcji możemy polegać na właściwości
$post
objectspost_type
, która zostanie ustawiona również dla nowych postów. Ponieważ już zarejestrowaliśmy wywołania zwrotne w konstruktorze dla odpowiednich zaczepów kontekstowych, możemy po prostu wziąć dowolny typ posta, który się pojawi.Dodatkowe typy MIME
Po prostu wrzuć tablicę, która zastępuje lub dodaje domyślne typy MIME modułu Media Modal. Możesz także dodać lub zastąpić inne ustawienia. Wystarczy
var_dump( $settings );
zobaczyć co zwrotna zapewnia. Upewnij się również, że nie przechwytujemy niewłaściwego typu postu.Renderuj zawartość
Zapisz dane
Wreszcie upewniamy się, że nasze dane zostały poprawnie zapisane i zostaną sprawdzone. Używaj wszystkich
esc_*()
funkcji, rzutowania, nonces i czego nie.Ostatnia uwaga, przed przejściem do przykładu JS: Kod jest wykreślany z bieżącego projektu. Więc - jak już wspomniano - nie będzie działać domyślnie! To tylko przewodnik i nic więcej.
JavaScript
Sam javascript jest dość prosty. Nie. Ale jak widać, wstrzykuję zarówno funkcję jQuery jako niestandardowy zlokalizowany obiekt skryptu do funkcji. Odtąd będziesz musiał dodać dowolną logikę, której możesz potrzebować. Podstawowe otoczenie dla różnych stanów i wywołań zwrotnych jest zapewnione i
console.log()
są obecne.Poradniki
Dominik Schilling - autor menedżera multimediów WP 3.5 - napisał zestaw demonstracji modaliów medialnych. Możesz je wyświetlić na GitHub .
źródło