PDA

Просмотр полной версии : Правильная заготовка под модуль для DLE



Dima_Turkow
28.12.2013, 22:00
http://prowebber.ru/uploads/posts/2013-10/1380641534_2013-09-29_171141.png

Для тех, кто ещё не умеет правильно писать модули для DLE эти сниппеты будут крайне полезны.
Сниппеты приведены без комментариев для непосредственной вставки в файл и лёгкого старта.
Полная же инструкция по созданию модуля без админки с конкретным примером находится тут (http://pafnuty.name/statyi/144-make-a-module.html)
Заготовка для модуля с кешированием, без шаблона

<?php
if (!defined('DATALIFEENGINE')) die("Go fuck yourself!");
$myConfig = array(
'cachePrefix' => !empty($cachePrefix) ? $cachePrefix : 'archives',
'cacheSuffix' => !empty($cacheSuffix) ? $cacheSuffix : false
);
$cacheName = md5(implode('_', $myConfig));
$myModule = false;
$myModule = dle_cache($myConfig['cachePrefix'], $cacheName . $config['skin'], $myConfig['cacheSuffix']);
if (!$myModule) {
$myModule = 'Hello World!'; // Результат работы модуля.
create_cache($myConfig['cachePrefix'], $myModule, $cacheName . $config['skin'], $myConfig['cacheSuffix']);
}
echo $myModule;
?>

Заготовка для модуля с кешированием и шаблоном

<?php
if (!defined('DATALIFEENGINE'))
die("Go fuck yourself!");
$userName = !empty($userName) ? $db->safesql(strip_tags(stripslashes($userName))) : false;
$myConfig = array(
'template' => !empty($template) ? $template : 'default',
'cachePrefix' => !empty($cachePrefix) ? $cachePrefix : 'news',
'cacheSuffix' => !empty($cacheSuffix) ? true : false
);
$cacheName = md5(implode('_', $myConfig));
$myModule = false;
$myModule = dle_cache($myConfig['cachePrefix'], $cacheName . $config['skin'], $myConfig['cacheSuffix']);
if (!$myModule) {
if (file_exists(TEMPLATE_DIR . '/' . $myConfig['template'] . '.tpl')) {
if (!isset($tpl)) {
$tpl = new dle_template();
$tpl->dir = TEMPLATE_DIR;
} else {
$tpl->result['myModule'] = '';
}
$tpl->load_template($myConfig['template'] . '.tpl');
$myVar = 'Hello World!'; // Результат работы модуля.
$tpl->set('{tag_name}', $myVar);
$tpl->compile('myModule');
$myModule = $tpl->result['myModule'];
create_cache($myConfig['cachePrefix'], $myModule, $cacheName . $config['skin'], $myConfig['cacheSuffix']);
$tpl->clear();
} else {
$myModule = '<b style="color:red">Отсутствует файл шаблона: ' . $config['skin'] . '/' . $myConfig['template'] . '.tpl</b>';
}
}
echo $myModule;
?>