Dodanie domyślnego paska narzędzi joomla na stronie widoku komponentu


10

Rozwijam komponent mvc zarówno dla Joomla 2.5, jak i 3. W wielu komponentach widziałem, że dodali domyślne przyciski poleceń Joomla, takie jak nowy, edycja, publikacja, kosz, opcje u góry strony ustawień po stronie administratora. Na przykład. jeśli ktoś idzie komponenty-> strony internetowe-> linki strony, mówię o tych przyciskach poleceń w prawym górnym rogu.

Jak więc dodać te przyciski poleceń na stronie ustawień mojego komponentu? po kliknięciu wykona odpowiednią akcję i wyświetli odpowiedni widok. Na przykład, jeśli kliknę przycisk „nowy”, wyświetli się widok dodawania mojego komponentu mvc.

Jak mogę dodać w pełni działające przyciski poleceń joomla na stronie ustawień mojego komponentu po stronie administratora.

Odpowiedzi:


12

Najlepszą praktyką jest utworzenie addToolBar()metody w klasie View, a następnie użycie JToolBarHelperklasy do utworzenia przycisków poleceń:

protected function addToolBar()
{
  JToolBarHelper::addNew('yourcontroller.add');
  JToolBarHelper::editList('yourcontroller.edit');
}

Będą więc wywoływać zadanie / funkcję „dodaj” / „edytuj” w określonym kontrolerze. Następnie po prostu wywołaj metodę $this->addToolBar()swojego widoku display().

Odwołanie Tworzenie paska narzędzi dla komponentu


Mam tylko plik kontrolera controller.php w moim składniku, a wewnątrz niego mam funkcję, function add() { JRequest::setVar('view', 'entry'); JRequest::setVar('layout', 'form'); parent::display(); }więc w moim pliku view.html.php dodałem JToolBarHelper :: addNewX ('controller.add'); pojawia się nowy przycisk, ale po kliknięciu nie przechodzi do formularza widoku, zamiast tego dodaje # do adresu URL
dev-m

Spróbuj ominąć controller.task-JToolBarHelper::addNewX();
Dmitry Rekun

Dodano tylko JToolBarHelper :: addNewX (); ale nie działa.
dev-m

Następnie musisz utworzyć odpowiedni kontroler w controllerskatalogu. Zobacz Dodawanie akcji zaplecza
Dmitry Rekun

5

Musisz upewnić się, że widok, który wyświetla przyciski, ma formularz do przesłania. Nazwa formularza powinna mieć postać adminForm. Formularz powinien również zawierać ukryte pole o nazwie zadanie i token generowany dynamicznie. Nie mogę sobie przypomnieć API z góry mojej głowy, ale coś w tym rodzaju JHtml::_('form.token');(proszę, popraw to, jeśli się mylę)

To załatwi sprawę.


Problem, który odkryłem wcześniej, polegał na tym, że używałem nazwy formularza jako admin zamiast adminForm.it. Wydaje się, że joomla rozróżnia małe i wielkie litery!
dev-m

Jest to bardziej kwestia JavaScript niż Joomla. Po kliknięciu przycisków aktywujesz funkcję przesyłania formularza JS, więc jeśli formularz nie może zostać znaleziony, cicho się nie powiedzie.
Mathew Lenning
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.