Написание простого модуля для ReloadCMS 1.2.x

Писать дополнительные модули для ReloadCMS очень просто, давайте рассмотрим процесс написания простейшего модуля на примере маленького каталога изображений отображающего уменьшенный вариант изображения при наведении курсора на ссылку.

Для начала нам нужно определиться какого типа у нас будет модуль. Для этого заходим в каталог modules/general и создаем каталог модуля например imagelist. Стандартный модуль в простейшем случае состоит из 2-х файлов: module.php и index.php в которых содержиться, соответственно, описание модуля и его код. Далее нам потребуеться создать каталог данных для нашей маленькой галерейки. Давайте он будет размещаться в нашем стандартном DATA_PATH описанном в common.php, наш каталог с данными (в нашем случае с картинками) будет называться photos. Итак перейдем собственно к написанию модуля. Для начала опишем его в файле module.php, который в нашем исполнении будет иметь вид:

<?php
$this->registerModule($module, 'main', __('Image lister'), 'ReloadCMS Team'); 
?>

в этом фрагменте собственно говориться что данный модуль являеться модулем типа main называемым

__('Image lister')

и созданный ReloadCMS Team. Обратите внимание на вот такой

__('....')

вид строчных переменных - он являеться локализируемым в языковых файлах (как это работает легко понять посмотрев например содержимое каталога /languages/russian/).

Код размещенный в index.php будет выглядеть так:

<?php
$javascript='<SCRIPT LANGUAGE="JavaScript">
function doButtons(picimage) {
eval("document[\'picture\'].src = " + picimage + ".src"); }';
$result='<table border=0 style="border:1px solid #00000F">
<tr><td align="left">
';
$i=0;
$imagelist=rcms_scandir(DATA_PATH.'photos');
foreach ($imagelist as $eachimage)
{
$javascript.='var ima'.$i.' = new Image();';
$javascript.='ima'.$i.'.src = "'.DATA_PATH.'photos/'.$eachimage.'";';
$result.='<a href = "http://reloadcms.com/" onmouseover = "doButtons(\'ima'.$i.'\')">Photo: '.$eachimage.'</a><br>'."\n";
$i++;
}
$result.='<td>
<img name=picture src="'.DATA_PATH.'photos/blank.gif" width=300 height=190 border=0></td>
</tr>
</table>
';
$javascript.='</script>';
show_window(__('Image list'),$javascript.$result,'center');
?>

Итак рассмотрим приемы которые могут не стыковаться с вашим знанием чистого PHP. Для вывода информации в ReloadCMS используеться функция show_window имеющая следующий синтаксис:

show_window('Заголовок окна','содержимое','алигн');

Использованная в данном примере функция rcms_scandir являеться прямым аналогом scandir из PHP 5.x - с мелкими улучшениями и переносимостью на PHP 4.x.
Далее наш код являеться полностью стандартным PHP кодом в котором вы можете воплотить все ваши сокровенные идеи и желания ;)

Готовый модуль описанный в этом примере вы можете скачать по адресу http://reloadcms.com/unsupported/imagelister.tgz
З.Ы. Для того чтобы создать ссылку на наш свеженаписанный модуль нам следует просто в управлении дополнительными ссылками прописать module:imagelister. Результатом наших деяний должно получиться нечто выглядещее приблизительно так:

 
reloadcms-dev/ru/dev/simplemod.txt · Last modified: 2007/09/29 00:38 by nightfly
 

Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki