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.

dev-m
źródło

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

Dmitry Rekun
źródło
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ę.

Mathew Lenning
źródło
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