Информация к новости
  • Просмотров: 6191
  • Автор: Сергей
  • Дата: 26-05-2011, 20:31
26-05-2011, 20:31

Пример модуля с использованием API. Вывод информации о зарегистрированных пользователях.

Категория: Уроки Dle


Сегодня я покажу простой пример написания модуля, который будет выводить информацию о зарегистрированных пользователях. Он использует 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.



Этот файл надо положить в папку /engine/modules , и дописать в файле engine/engine.php такие строки:
case "users" :
include ENGINE_DIR . '/modules/users.php';
break;
после такого кода:
switch ($do) {

Также, требуется создать файл users.tpl в папке текущего шаблона, и поместить в него тег "{users}". Остальное оформление - по вашему вкусу.

Модуль вызывается по ссылке http://имя-вашего-сайта/?do=users
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
^