Административная часть компонента не менее важна чем часть сайта. В ней можно вывести все настройки компонента, которые вам нужны. По сути часть сайта и админки похожи, но для админки есть уже масса готовых структур, таких как сохранить, применить, удалить, сортировка, редактор, постраничная навигация, эти классы нужно только вызвать и подключить. Начнём с точки входа и контроллера, они мало чем отличаются от части сайта. Правда в точке входа мы подключим файл helper.

Стоит отметить что создание и управление админкой стало намного проще. Структура и код остались почти такими же, но зато пользоваться админкой и разбивать структуру вывода данных стало удобнее. Впрочем это можно оценить если сделать большую структуру, мы создадим полноценный функционал, у вас будет всё что есть и в стандартных компонентах joomla 3.x

Откройте файл административной части mycomponents.php и внесите в него следующий код. Код прокомментирован что бы легче было разобраться.

<?php
/*Это точка входа в компонент, отсюда начинается старт, 
и запускается всё остальное, а именно контроллер который 
в дальнейшем вызывает модель, вид, и шаблон.*/

//Запрет прямого доступа к файлу/странице
defined('_JEXEC') or die;

//Проверка доступа к компоненту, авторизован пользователь или нет
if (!JFactory::getUser()->authorise('core.manage', 'com_mycomponents'))
{
	return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
}

//Получить экземпляр контроллер с префиксом
$controller	= JControllerLegacy::getInstance('Mycomponents');

//Выполнение задачи task
$controller->execute(JFactory::getApplication()->input->get('task'));

//Редирект контроллера, если установленно контроллером
$controller->redirect();

 

Теперь нужно создать контроллер. Он вызовит нам главную страницу нашего компонента mycomponent код прокомментирован. Откройте файл административной части controller.php

<?php
// Запрет к прямому доступу. Если кто то попытается обратиться к файлу напрямую, 
//joomla выдаст пустую страницу.
defined('_JEXEC') or die;
 
/**
 * Главный контроллер компонента mycomponent. Данный 
 * контроллер вызовет из папки controllers файл mycomponents 
 * он то и вызовет всё остальное модель вид.
 */
class MycomponentsController extends JControllerLegacy
{

	//Возвращение способа отображения, кешируемый или нет
	public function display($cachable = false, $urlparams = false)
	{
	
	//Добавление файла помощи и пунктов навигации, /helpers/priceleafs.php
	//что бы пользователь мог перемещаться по страницам компонента, всё меню будет выводиться 
	//в файле helpers.
		require_once JPATH_COMPONENT.'/helpers/mycomponents.php';

		$view   = $this->input->get('view', 'mycomponents');
		$layout = $this->input->get('layout', 'default');
		$id     = $this->input->getInt('id');

		// Проверка формы редактирования
		if (
				$view == 'mycomponent' && 
				$layout == 'edit' && 
				!$this->checkEditId('com_mycomponents.edit.mycomponent', $id)
			) {
			$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id));
			$this->setMessage($this->getError(), 'error');
			$this->setRedirect(
					JRoute::_('index.php?option=com_mycomponents&view=mycomponents', false)
				);

			return false;
		}
// Отображаем представление
		parent::display();
//Вернуть значение
		return $this;
	}
}