Главная > Уроки Dle > Привер использования DLE API - смена группы пользователя с отправкой уведомления
Привер использования DLE API - смена группы пользователя с отправкой уведомления26-05-2011, 20:24. Разместил: Сергей |
После долгой паузы, вызванной некоторыми событиями из личной жизни и учебы, расскажу вам о том, что я сегодня вечером делал для одного студенческого сайта. Есть сайт, для доступа к определенным разделам которого надо находиться в определенной группе. В данном случае, группа называется "Студенты", и имеет идентификатор группы, равный восьми. Мне откровенно надоело вручную переводить людей в эту группу, каждый раз заходя в админпанель, в раздел управления пользователями. Поэтому я решил написать простой скрипт, который использовет возможности API для Datalife Engine. Далее, просто код, с минимумом комментариев: <? ############################################# #made exclusively for http://apache.kiev.ua # ############################################# if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } include_once(ENGINE_DIR . '/api/api.class.php');//подключаем API if ($_REQUEST['username']) {$data=$dle_api->take_user_by_name($_REQUEST['username']);}//проверяем, передавалось ли имя пользователя через форму этому же скрипту if ($data['user_id']==0 && $_REQUEST['username']) {$status = "<div style='color:red'>Пользователь не найден!</div>";}//если идентифакатор равен нулю при том, что имя пользователя все-таки передавалось форме, говорим, что такого пользователя вообще нету else if (!$_REQUEST['username']) {$status="<div style='color:grey'>Ожидается действие со стороны пользователя...</div>";}//это мы говорим, если никто ничего не отправлял через форму else if ($data['user_group']==8) {$status="<div style='color:green'>Пользователь в группе.</div>";}//это потомучто мы как раз переводим в группу с номером 8 else if ($data['user_group']!=4) {$status="<div style='color:red'>Невозможно перевести! Идентификатор группы ".$data['user_group']." и ее уже сменить нельзя.</div>";}// это на тот случай, если пользователь находится в той группе, из которой его нельзя переводить (админ, модератор, гость и т.д.) $content = "Состояние: ".$status."<hr>"; if ($user_group[$member_id['user_group']]['moderation'])//если тому, кто открывает эту страницу дозволена модерация, то выводим форму { $content .= <<<HTML <form action="index.php?do=regroup" method="post">Кого перевести: <input name="username" type="text" size="30" maxlength="30"> <input value="Сменить группу на 'Студенты'" type="submit"> </form> HTML; } else $content="<center>Вам тут делать нечего.</center>";//а это - если открывшему страницу не дозволена модерация. $tmp=$data;//копия данных о пользователе, которого мы хотим редактировать if ($_REQUEST['username'] && $data['user_id']>0 && $data['user_group']>=4 && $data['user_group']!=8) //если пользователь найден, имеет группу больше 3 (тоесть, не админ, модератор, журналист), и не находится уже в группе "Студенты" { $content .="Последнее изменение: <br><strong>".$_REQUEST['username']."</strong> id:".$data['user_id']." текущая группа:<strong> ".$data['user_group']."</strong>"; $data=$dle_api->change_user_group($data['user_id'],8); //то переводим его в группу "Студенты" $tmp=$dle_api->send_pm_to_user($data['user_id'], "Перевод в группу", "Вы были переведены в группу 'СТУДЕНТЫ'", "robot"); //и высылаем ему ЛС с уведомлением об этом. } $tpl->load_template( 'static.tpl' );//открываем шаблон статической страницы (он самый простой обычно - ничего лишнего) $tpl->set( '{static}', $content);//заменяем в шаблоне тег "{static}" на то, что нам надо вывести на экран $tpl->compile( 'content' );//собираем шаблон $tpl->clear();//удаляем временные данные ?> Вернуться назад |