Это всё
прекрасно, но все эти элементы - все на английском языке. Давайте
начнём создавать многоязычную версию управления. Создайте новый файл в
modinfo.phpв папке language/english . Напечатайте следующее в modinfo.php:
<?php
// Module Info
// The name of this module
define("_MI_MYMODULE_NAME","MyModule");
// A brief description of this module
define("_MI_MYMODULE_DESC","Shows a page with a title and some text");
?>
Сохраните этот файл и откройте снова xoops_version.php. Мы хотим здесь вставить константы, определённые в modinfo.php. Так, измените эти две линии :
$modversion['name'] = "MyModule;
становится
$modversion['name'] = _MI_MYMODULE_NAME;
и
$modversion['description'] = "Text to say what this module does:;
становится
$modversion['description'] = _MI_MYMODULE_DESC;
Структура формата имён : все заглавные с линией подчёркивания, MI для ModInfo, имя модуля, параметр имени.
Когда
Вы пожелаете добавить дополнительные языки позже , Вы должны сделать
копирование этих файлов в новую папку (скажем в russian) и перевести
соответствующий текст – или найти того, кто переведёт их для Вас.
Проверьте теперь панель управления и Вы увидите новую информацию о модуле.
Напоминаю : сначала надо обновить модуль.
Добавление логотипа модуля.
В
вашем меню всё ещё нет лого модуля. Создайте gif файл размером 96*18 пикселей с именем modulename_logo.gif и сохраните его в подпапке
Откройте снова xoops_version.php и добавьте в нашем случае:
Сохраните
файл, проверьте страницу Администрирования Модулей снова. Обновите в
случае необходимости и теперь мы должны увидеть лого модуля,
отображающееся на странице модулей и странице информации.
Добавление комментариев.
В вашем редакторе создайте блок текста подобно следующему:
/**
* MyModule модуль для RunCms. – Короткое описание
*
* Этот файл - часть модуля для RunCms. Она не делает
* ничего полезного вообще.
* Фактически это - полная трата места и просто
* демонстрация. – Длинное описание
*
* @package RunCms _MyModule
* @author Bob Janes <bob@bobjanes.com>
*
*/
/**
* Следующий комментарий . . .
*/
Вы
можете вводить сюда любой текст, только удостоверьтесь, что это все
заключено в комментарии.
Примечание: этот формат - часть спецификаций
PHPDocs..
Вставьте этот текст в начало каждого php файла в вашем модуле, т.е. сразу после строки <?php .
Добавьте
больше комментариев в ваши файлы, используя формат PHPDOCS, т.к. Вы
забудете идею вашего кода скорее, чем Вы можете себе это вообразить..
Добавляем блок.
Как
следующая часть нашего модуля мы добавим простой блок. Блок - контент,
который выводится в одной из сторон проекта или в центре
большинства страниц. Обратите внимание: правая колонка часто
выключается на других страницах, кроме стартовой страницы.
Написание кода блока
Подобно
нашей более ранней странице блок типично содержит название и некоторое
содержание, так что мы будем использовать почти точно такой же код в
начале.
Открываем index.php в вашем редакторе , сохраняем в подпапке
blocks как mymodule.php. Фактическое название не имеет значения, но на
сей раз это - не index.php. Этот файл не будет становиться отдельной
страницей, он только заполняет блок на существующей странице.
На
этой странице функция возвращает массив из двух элементов :
$block['title'] и $block['content']. Также модифицируйте ваш код
подобно этому:
<?php
function b_mymodule_show () {
$title = "Block Title";
$content = "All the things I want to say in my block. ";
$block['title'] = $title;
$block['content'] = $content;
return $block;
}
?>
Фактически
эти две длинные строки используют всего две переменные $title и
$content и могут быть полезными, когда мы имеем дело с большим количеством
кода.
Сообщите RunCms о вашем блоке.
Для снова отредактировать код в xoops_version.php. Откройте его снова и добавьте следующие строки.
<?php
//Blocks
// Tell E-Xoops the name of the function file in 'blocks'
$modversion['blocks'][1]['file'] = "mymodule.php";
// The name of the function to show the block
$modversion['blocks'][1]['show_func'] = "b_mymodule_show";
// The name of this block in the admin menu
$modversion['blocks'][1]['name'] = _MI_MYMODULE_BNAME;
// The description of this block in the admin menu
$modversion['blocks'][1]['description'] = _MI_MYMODULE_BDESC;
Эти строки подобны нашим более ранним элементам. Но ['blocks'][1] является немного другим. Данная конструкция позволяет нам иметь
массив ['blocks'][2] и т.д. позже, если они нам вдруг понадобятся.
Отметим,
что есть также еще две текстовых константы, которые необходимо
определить в modinfo.php. Так давайте добавим их , если вам необходимо,
то вместе с некоторыми комментария:
define("_MI_MYMODULE_BNAME","My Block");
define("_MI_MYMODULE_BDESC","Shows more text in a box");
Сохраните
этот файл, откройте ваш броузер и обновите модуль в Администрировании
модулей. На сей раз мы должны также установить права доступа к блоку в
Управлении группами. Перемещение Вашего блока.
Расположение
Вашего блока устанавливается в меню Панель Управления -> Блоки -
Управление блоками. Типовыми является пять видов расположения: правая
или левая сторона колонок ; и справа, слева или по центру в центральной
колонке. Попробуйте разное расположение для изучения результата.
Есть
также поле 'вес', которое решает, в каком порядке в столбце элемент
появится. Как и реальный вес, большее из этих значений - внизу, поэтому
используйте 0 для верхнего уровня в столбце и 1, 2, 3, 4, 5, и т.д. для
элементов, которые Вы хотите упорядочить далее вниз.
Примечание:
если Вы только желаете создать простой блок, тогда Вы можете создать
его, используя форму внизу страницы Администрации Блоков. Это
идеально подходит для простых блоков, как тот, который мы строили
здесь. Но мы хотим продолжить и достичь большего...
Установка опций для вашего блока.
Мы
можем еще модифицировать xoops_version.php, чтобы определить некоторые
xoops_version.phpснова и добавьте следующий код:
// Ряд опций, которые будут переданы функции
$modversion['blocks'][1]['options'] = "'red'|'white'|'blue'";
Это сделает массив доступным в нашей функции: $options[1] = 'red', например.
Откройте файл функции из подпапки blocks и отредактируйте вашу функцию подобным образом:
function b_mymodule_show ($options) {
$title = "Block Title";
$content = "All the things I want to say in my block. ";
$num = rand(0,2);
$content .= "Today is a ".$options[$num]." day.";
$block['title'] = $title;
$block['content'] = $content;
return $block;
}
Изменения - то, что мы добавили $options в имени функции и еще двух строках в середине функции.
Сохраните
файл. Обновите стартовую страницу RunCms и и Вы увидете, что
часть нашего нового текста показывается в нашем блоке - но не красной,
белой или синей опции. Вернитесь в управление модулем и обновите модуль
в Администрировании модулей (Вы действительно должны это делать каждый
раз, когда вносите изменения в xoops_version.php.)
Обновите
стартовую страницу снова, и Вы увидеть, что текст теперь включает нашу
опцию. Обновите страницу несколько раз в течение некоторого времени и
увидите, что 'цвет' переключается случайным образом между красным,
белым и синим.