Сегодня я покажу простой пример написания модуля, который будет выводить информацию о зарегистрированных пользователях. Он использует DLE API. Это позволит уменьшить кол-во строк кода, который будет в конкретно этом случае отвечать за получение информации о пользователе из базы.
Сразу к делу - вот код модуля. Модуль будет называться "users"
Код файла users.php:
<?
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}
include_once ('engine/api/api.class.php');
$tpl->result['content'] = dle_cache( "users", $config['skin'] );//пробуем взять значения из кеша
if( ! $tpl->result['content'] ) {//если в кеше пусто,
$tpl->load_template( 'users.tpl' );//открываем шаблон вывода инфы
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users" );//получаем кол-во юзеров из БД
$stats_users = $row['count'];
$toprint=null;//инициализируем переменную, которая будет содержать инфу о пользователях
if ($is_logged AND $user_group[$member_id['user_group']]['allow_all_edit']) //даем доступ к просмотру и-мейлов только тем, кто залогинен, и имеет права редактора/админа
{
$data='<table border="0px" style="border-bottom:1px solid #EEEEEE"><tr><td><b>ID</b></td><td width="150px"><b>Имя:</b></td><td><b>E-mail:</b></td><td><b>регистрация:</b></td></tr>';
for($i=1;$i<=$stats_users;$i++)
{
$info = $dle_api->take_user_by_id($i);//а вот и использование API. получаем информацию о юзере по его идентификатору.
$data=$data.'<tr><td>'.$i.'</td><td>'.$info[name].' </td><td> '.$info[email].'</td><td>'.date("d m y",$info[reg_date]).'</td></tr>';//выводим данные о юзере в
}
$data=$data.'</table>';
}
else//эту инфу могут видеть все остальные
{
$data='<table border="0px" style="border-bottom:1px solid #EEEEEE"><tr><td><b>ID</b></td><td width="150px"><b>Имя:</b></td><td><b>регистрация:</b></td></tr>';
for($i=1;$i<=$stats_users;$i++)
{
$info = $dle_api->take_user_by_id($i);//аналогично, используя API получаем инфу о юзерах
$data=$data.'<tr><td>'.$i.'</td><td>'.$info[name].' </td><td>'.date("d m y",$info[reg_date]).'</td></tr>';
}
$data=$data.'</table>';
}
}
$tpl->set( '{users}', $data );//заменяем в шаблоне тег "{users}" на информацию, полученную из БД
$tpl->compile( 'content' );//"компилируем" информацию из шаблона
$tpl->clear();//удаляем мусор
create_cache( "users", $tpl->result['content'], $config['skin'] );//создаем кеш
?>
* This source code was highlighted with Source Code Highlighter.
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}
include_once ('engine/api/api.class.php');
$tpl->result['content'] = dle_cache( "users", $config['skin'] );//пробуем взять значения из кеша
if( ! $tpl->result['content'] ) {//если в кеше пусто,
$tpl->load_template( 'users.tpl' );//открываем шаблон вывода инфы
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users" );//получаем кол-во юзеров из БД
$stats_users = $row['count'];
$toprint=null;//инициализируем переменную, которая будет содержать инфу о пользователях
if ($is_logged AND $user_group[$member_id['user_group']]['allow_all_edit']) //даем доступ к просмотру и-мейлов только тем, кто залогинен, и имеет права редактора/админа
{
$data='<table border="0px" style="border-bottom:1px solid #EEEEEE"><tr><td><b>ID</b></td><td width="150px"><b>Имя:</b></td><td><b>E-mail:</b></td><td><b>регистрация:</b></td></tr>';
for($i=1;$i<=$stats_users;$i++)
{
$info = $dle_api->take_user_by_id($i);//а вот и использование API. получаем информацию о юзере по его идентификатору.
$data=$data.'<tr><td>'.$i.'</td><td>'.$info[name].' </td><td> '.$info[email].'</td><td>'.date("d m y",$info[reg_date]).'</td></tr>';//выводим данные о юзере в
}
$data=$data.'</table>';
}
else//эту инфу могут видеть все остальные
{
$data='<table border="0px" style="border-bottom:1px solid #EEEEEE"><tr><td><b>ID</b></td><td width="150px"><b>Имя:</b></td><td><b>регистрация:</b></td></tr>';
for($i=1;$i<=$stats_users;$i++)
{
$info = $dle_api->take_user_by_id($i);//аналогично, используя API получаем инфу о юзерах
$data=$data.'<tr><td>'.$i.'</td><td>'.$info[name].' </td><td>'.date("d m y",$info[reg_date]).'</td></tr>';
}
$data=$data.'</table>';
}
}
$tpl->set( '{users}', $data );//заменяем в шаблоне тег "{users}" на информацию, полученную из БД
$tpl->compile( 'content' );//"компилируем" информацию из шаблона
$tpl->clear();//удаляем мусор
create_cache( "users", $tpl->result['content'], $config['skin'] );//создаем кеш
?>
* This source code was highlighted with Source Code Highlighter.
Этот файл надо положить в папку /engine/modules , и дописать в файле engine/engine.php такие строки:
case "users" :
include ENGINE_DIR . '/modules/users.php';
break;
после такого кода:
switch ($do) {
Также, требуется создать файл users.tpl в папке текущего шаблона, и поместить в него тег "{users}". Остальное оформление - по вашему вкусу.
Модуль вызывается по ссылке http://имя-вашего-сайта/?do=users