RSS   Twitter   Copiny   Copiny
Нашел ошибку? 

Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!

Модуль Joomla «Hello World!»

Попробуем создать простейший модуль Joomla. Для этого создадим в папке модулей, директорию mod_testmodule (testmodule - это имя нашего расширения). Внутри новой папки создадим два файла mod_testmodule.php и mod_testmodule.xml

/modules/mod_testmodule/mod_testmodule.xml
/modules/mod_testmodule/mod_testmodule.php

В mod_testmodule.xml поместим следующий код

<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
    <name>testmodule</name>
    <author>me</author>
    <version>1.0</version>
    <description>TEST example by joomla-book.ru</description>
    <files>
        <filename module="mod_testmodule">mod_testmodule.php</filename>
    </files>
</install>

На самом деле в этом файле может храниться очень много полезной и не очень информации, дополнительные настройки, локализации и прочее. Но в качестве простого примера, мы упростим xml почти до минимума. Здесь наc интересуют имя модуля, и список необходимых файлов (перечисляются внутри ).

А php-файл должен в свою очередь содержать следующий текст

<?php
    print "Hello world!";
?>

Теперь модуль готов к использованию. В панели управления Расширения - Менеджер модулей - Новый найдите свой модуль, он будет называться testmodule, и установите в желаемою позицию. Все бы хорошо, но возникает серьезная проблема, наш модуль может быть запущен без Joomla по прямой ссылке

http://myjoomla/modules/mod_testmodule/mod_testmodule.php

Чтобы этой неприятности не происходило, модифицируем наш исполняемый php файл.

<?php
    defined('_JEXEC') or die('Restricted access');
    echo JText::_('Hello World!');
?>

Первая строка проверяет глобальную константу, её объявление гарантирует нам, что модуль запущен самой Joomla, а не по прямой ссылке. JText - попытается найти перевод на текущий язык (у вас скорее всего на русский) среди файлов локализаций, в крайнем случае вернет то, что было передано в него.

Схема расположения элементов модуля Joomla

Схема простейшего модуля Joomla

Схема создана Михаилом

Смотрите также:
Комментарии (14) Добавить комментарий
  • Сергей
    Сергей
    10 Декабря 2011, 17:58
     ↑  +1  ↓     ответ

    Для какой версии joomla эта статья ?

    • Евгений
      Евгений
      11 Января 2012, 17:46
       ↑  0  ↓     ответ

      Там же чётко написано, в файле XML: version="1.5.0"

      Хотя, подозреваю, что данный модуль будет хорошо работать и в версии 1.6/1.7.

  • Андрей
    Андрей
    19 Декабря 2011, 23:45
     ↑  +1  ↓     ответ

    Спасибо!

    С плагином от сапы пол дня мучился, Ваш завелся сам.

    И прошу - прорекламируйтесь как ниб - второй раз боюсь не найти -)))

  • Денис
    Денис
    25 Декабря 2011, 04:26
     ↑  +2  ↓     ответ

    Спасибо огромное за этот сайт! Очень много систематизированной полезной информации!

  • саша
    саша
    22 Января 2012, 09:50
     ↑  0  ↓     ответ

    Респект и уважуха! Спасибо огромное за сайт.

  • Максимка
    Максимка
    31 Января 2012, 19:16
     ↑  0  ↓     ответ

    Данная шняга будет работать и на версии 1.7)), несмотря на "version="1.5.0".

    Автору огромное спасибо. Для новичка, вроде меня - статья гуд.

    Спасибо.

    Желаю всем удачи и процветания

  • Эд
    Эд
    09 Февраля 2012, 20:04
     ↑  +1  ↓     ответ

    Делал первый свой модуль) но возникла проблема. Сделал всё как написано выше, 10 раз перепроверял, всё верно, но когда устанавливаю модуль на сайт надписи Hello World не появляется. Быть может проблема в том, что виндовс нормально не генерирует PHP коды в файл и они не работают? (в конде кроме HTML мало что понимаю поэтому прошу простить если написал чушь)) Заранее спасибо ;-)

    • Музыка
      Музыка
      12 Сентября 2012, 12:01
       ↑  0  ↓     ответ

      Произошло тоже самое, просто забыла выставить, что модуль опубликован.

      Автору статьи большое спасибо за такие подробные статьи. Все понятно и все работает как надо.

  • Spot
    Spot
    13 Февраля 2012, 18:47
     ↑  +1  ↓     ответ

    ... В панели управления Расширения - Менеджер модулей - Новый найдите свой модуль, он будет называться testmodule...

    а у меня не появляется testmodule

  • Spot
    Spot
    13 Февраля 2012, 19:16
     ↑  +2  ↓     ответ

    разобрался, в Joomle 1.7 нужно нажать найти в менеджере расширений

  • Артур
    Артур
    21 Октября 2012, 05:21
     ↑  0  ↓     ответ

    При установке модуля и замене текста "Hello world" на "Привет мир" отображаются ????????. Почему так? Кодировка стоит UTF-8.

  • Сергей
    Сергей
    05 Мая 2013, 14:29
     ↑  +1  ↓     ответ

    Большое спасибо за прекрасный пример!

  • Sivik
    Sivik
    09 Января 2015, 22:31
     ↑  +3  ↓     ответ

    JInstaller: :Install: Не найден установочный XML-файл Joomla

    как с этим бороться? облазил весь инет, ответа так и не нашёл.

  • Иван
    Иван
    21 Марта 2016, 18:53
     ↑  +1  ↓     ответ

    Не работает, выдает ошибку на joomla 3.

Оставить комментарий




* обязательно для заполнения

1 введенный почтовый адрес используется только для обратной связи при ответах в комментариях и сервиса gravatar.com
.