Чтение онлайн

на главную - закладки

Жанры

Разрботка расширений для CMS Joomla
Шрифт:

(есть увеличенное изображение)

Рис. 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":"[email protected]", "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).

(есть увеличенное изображение)

Рис. 1.8. Пункт меню во фронтенде

Создание панелей инструментов

Вспомните приведенное выше описание функционала, доступного администратору нашей системы. Соответственно, на панели инструментов для управления списком вопросов необходимы следующие кнопки:

отправить уведомление о вопросе эксперту по электронной почте;

присвоить вопросу категорию;

отправить ответ автору вопроса по электронной почте;

редактировать вопрос (в том числе: задать дату снятия вопроса с публикации; скрыть от посетителей сайта отдельные поля вопроса; ответить на вопрос);

удалить вопрос.

Для начала создайте файл /administrator/components/com_myquestions/toolbar.myquestions.html.php:

<?php defined('_JEXEC') or die('Restricted access'); class TOOLBAR_myquestions { function _REPLY { JToolBarHelper::title(JText::_('COM_MYQUESTIONS_TOOLBAR_TITLE'), 'generic.png'); JToolBarHelper::custom('sendToExpert', 'send.png', '', 'COM_MYQUESTIONS_TOOLBAR_SEND_TO_EXPERT', false); JToolBarHelper::custom('sendAnswer', 'send.png', '', 'COM_MYQUESTIONS_TOOLBAR_SEND_ANSWER', false); JToolBarHelper::save; JToolBarHelper::apply; JToolBarHelper::cancel; } function _DEFAULT { JToolBarHelper::title(JText::_('COM_MYQUESTIONS_TOOLBAR_TITLE'), 'generic.png'); JToolBarHelper::editList('reply','COM_MYQUESTIONS_REPLY'); JToolBarHelper::deleteList(JText::_('COM_MYQUESTIONS_TOOLBAR_REMOVE_QUESTIONS_CONFIRMATION')); } } ?>

Поделиться:
Популярные книги

Отморозки

Земляной Андрей Борисович
Фантастика:
научная фантастика
7.00
рейтинг книги
Отморозки

Цеховик. Книга 2. Движение к цели

Ромов Дмитрий
2. Цеховик
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цеховик. Книга 2. Движение к цели

Гримуар темного лорда V

Грехов Тимофей
5. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда V

Комендант некромантской общаги 2

Леденцовская Анна
2. Мир
Фантастика:
юмористическая фантастика
7.77
рейтинг книги
Комендант некромантской общаги 2

Попаданка в деле, или Ваш любимый доктор

Марей Соня
1. Попаданка в деле, или Ваш любимый доктор
Фантастика:
фэнтези
5.50
рейтинг книги
Попаданка в деле, или Ваш любимый доктор

Ведьмак. Назад в СССР

Подус Игорь
1. Ведьмак. Назад в СССР
Фантастика:
попаданцы
альтернативная история
6.60
рейтинг книги
Ведьмак. Назад в СССР

Здравствуй, 1984-й

Иванов Дмитрий
1. Девяностые
Фантастика:
альтернативная история
6.42
рейтинг книги
Здравствуй, 1984-й

Огромный. Злой. Зеленый

Новикова Татьяна О.
1. Большой. Зеленый... ОРК
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Огромный. Злой. Зеленый

Черный маг императора

Герда Александр
1. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора

Мое ускорение

Иванов Дмитрий
5. Девяностые
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Мое ускорение

Вечный. Книга IV

Рокотов Алексей
4. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга IV

Я еще князь. Книга XX

Дрейк Сириус
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще князь. Книга XX

Матабар IV

Клеванский Кирилл Сергеевич
4. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар IV

Лорд Системы

Токсик Саша
1. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
4.00
рейтинг книги
Лорд Системы