Menambahkan toolbar default joomla di halaman tampilan komponen

10

Saya mengembangkan komponen mvc untuk joomla 2.5 dan 3.Dalam banyak komponen saya melihat mereka menambahkan tombol perintah default joomla seperti baru, edit, publikasikan, trash, opsi di atas halaman pengaturan mereka di sisi admin. Misalnya. jika ada komponen-> tautan web-> tautan halaman, saya berbicara tentang tombol-tombol perintah di kanan atas.

Jadi bagaimana cara saya menambahkan tombol-tombol perintah di halaman pengaturan komponen saya? ketika diklik akan melakukan tindakan masing-masing dan menunjukkan tampilan masing-masing. Misalnya, jika saya mengklik tombol "baru" itu akan menampilkan tampilan entri tambah komponen mvc saya seperti itu.

Jadi bagaimana saya bisa menambahkan tombol perintah joomla yang sepenuhnya bisa diterapkan di halaman pengaturan komponen saya di sisi admin.

dev-m
sumber

Jawaban:

12

Praktik terbaik adalah membuat addToolBar()metode di dalam kelas Tampilan Anda dan kemudian menggunakan JToolBarHelperkelas untuk membuat tombol perintah:

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

Jadi ini akan memanggil tugas / fungsi "tambah" / "edit" di controller yang Anda tentukan. Maka cukup panggil metode $this->addToolBar()View Anda display().

Referensi Membuat toolbar untuk komponen Anda

Dmitry Rekun
sumber
Saya hanya memiliki file controller.php di komponen saya dan di dalamnya saya memiliki fungsi function add() { JRequest::setVar('view', 'entry'); JRequest::setVar('layout', 'form'); parent::display(); }jadi dalam file view.html.php saya menambahkan JToolBarHelper :: addNewX ('controller.add'); lalu tombol baru muncul tetapi ketika diklik itu tidak masuk ke form tampilan saya malah menambahkan # ke url
dev-m
Coba hilangkan controller.task-JToolBarHelper::addNewX();
Dmitry Rekun
Hanya ditambahkan JToolBarHelper :: addNewX (); tetapi tidak berhasil.
dev-m
Maka Anda perlu membuat pengontrol yang tepat di bawah controllersdirektori. Lihat Menambahkan aksi backend
Dmitry Rekun
5

Anda harus memastikan bahwa tampilan yang menampilkan tombol memiliki formulir untuk dikirimkan. Nama formulir harus adminForm. Formulir juga harus memiliki bidang tersembunyi bernama tugas dan token yang dihasilkan secara dinamis. Saya tidak dapat mengingat API dari atas kepala saya, tetapi sesuatu seperti JHtml::_('form.token');(seseorang tolong perbaiki ini, jika saya salah)

Ini caranya.

Mathew Lenning
sumber
Masalah yang saya temukan sebelumnya adalah bahwa saya menggunakan nama form sebagai adminform bukan adminForm.it sepertinya joomla jenis case sensitif!
dev-m
Ini lebih merupakan hal JavaScript daripada spesifik Joomla. Ketika Anda mengklik tombol Anda sebenarnya memicu fungsi formulir JS kirim, jadi jika formulir tidak dapat ditemukan maka itu diam-diam gagal.
Mathew Lenning