Шрифт:
(есть увеличенное изображение)
Рис. 1.3. Выполнение SQL-запроса
Теперь введите следующий SQL-запрос. Предполагается, что префикс таблиц вашей базы данных - "jos_". Если вы указали при установке Joomla другой префикс, замените "jos_" на него.
INSERT INTO `jos_extensions`(`name`, `type`, `element`, `folder`, `client_id`, `manifest_cache`, `params`, `custom_data`, `system_data`) VALUES('myquestions', 'component', 'com_myquestions', '', 1, '{"legacy":false, "name":"Моя система «вопрос – ответ»", "type":"component", "creationDate":"2012", "author":"me", "copyright":"(с) me", "authorEmail":"mymail@example.ru", "authorUrl":"http:\\/\\/www.example.ru", "version":"1.0", "description":"Мой первый компонент для Joomla", "group":""}', '{}', '', '');
Как видите, мы задали название расширения - "myquestions", тип расширения - компонент и некоторую информацию о нем и его авторе.
Первые папки и файлы. Добавление пунктов меню
Создайте две папки под названием com_myquestions:
в папке /components;
в папке /administrator/components.
Создайте файл /components/com_myquestions/myquestions.phpследующего содержания:
<?php defined('_JEXEC') or die('Restricted access'); echo 'Моя система «вопрос – ответ»'; ?>
Как видите, пока наш компонент просто будет выводить надпись "Моя система "вопрос - ответ"".
Не забудьте, что Joomla работает в кодировке UTF-8 и, следовательно, ваши PHP-файлы должны быть в той же кодировке. Например, в популярном текстовом редакторе Notepad++ кодировка изменяется с помощью пункта меню " Кодировка", из подпунктов которого нужно выбрать " Преобразовать в UTF-8 без BOM".
Теперь сохраните файл и обновите страницу ссылка: http://localhost/joomla/index.php?option=com_myquestionsв браузере. Страница примет следующий вид (рис. 1.4).
(есть увеличенное изображение)
Рис. 1.4. Первый результат во фронтенде
Создайте файл /administrator/components/com_myquestions/admin.myquestions.php:
<?php defined('_JEXEC') or die('Restricted access'); echo 'Моя система «вопрос – ответ»'; ?>
Наберите в адресной строке браузера строку ссылка: http://localhost/joomla/administrator/index.php?option=com_myquestions. Результат должен выглядеть так, как на рис. 1.5.
(есть увеличенное изображение)
Рис. 1.5. Первый результат в бэкенде
Добавим эти ссылки в меню фронтенда и бэкенда. Для этого выясним, какой idбыл присвоен нашему компоненту в таблице jos_extensions. В phpMyAdminвойдите в эту таблицу и найдите расширение com_myquestions. Вероятно, оно находится в последней строке. Посмотрите, какое значение стоит в поле extension_id. Например, на рис. 1.6 видно, что в данном случае idравен 10006.
(есть увеличенное изображение)
Рис. 1.6. Определение id компонента
Теперь выполните SQL-запрос, не забыв заменить "10006" на найденный вами id:
INSERT INTO `jos_menu`(`menutype`, `title`, `alias`, `path`, `link`, `type`, `level`, `component_id`, `access`, `img`, `params`, `client_id`) VALUES('menu', 'com_myquestions_menu', 'My Questions', 'My Questions', 'index.php? option=com_myquestions', 'component', 1, 10006, 1, 'class:component', '', 1);
После выполнения данного запроса в меню " Компоненты" бэкенда появится новый подпункт со ссылкой на наш компонент. Однако он будет называться " myquestions", так как мы еще не задали перевод для строки com_myquestions_menu. Чтобы задать его, создайте языковой файл /administrator/language/ru-RU/ru-RU.com_myquestions.sys.iniследующего содержания:
COM_MYQUESTIONS_MENU="Моя система «вопрос – ответ»"
Зайдите в бэкенд. В меню " Компоненты" появился пункт " Моя система "вопрос - ответ"" (рис. 1.7).
Рис. 1.7. Пункт меню в бэкенде
Теперь создайте пункт меню фронтенда. Для этого зайдите в " Меню" - " Менеджер меню", нажмите на ссылку " Главное меню", а затем на кнопку " Создать". Выберите тип пункта меню " Внешний URL", в поле " Заголовок меню" введите " Моя система "вопрос - ответ"", а в поле " Ссылка" - ссылку на фронтенд нашего компонента: ссылка: http://localhost/joomla/index.php?option=com_myquestionsи нажмите " Сохранить". Обновите любую страницу фронтенда и убедитесь, что появился новый пункт меню (рис. 1.8).