Last revision: 28/12/10 */ // Someone is trying to hack us? if (!defined('JAPPIX_BASE')) { exit; } // Marker $valid_user = true; // Administrator name if (isset($_POST['user_name']) && !empty($_POST['user_name'])) { $user_name = trim($_POST['user_name']); } else { $valid_user = false; } // Administrator password (first) if (isset($_POST['user_password']) && !empty($_POST['user_password'])) { $user_password = trim($_POST['user_password']); } else { $valid_user = false; } // Administrator password (second) if (isset($_POST['user_repassword']) && $user_password != $_POST['user_repassword']) { $valid_user = false; } // Generate the users XML content if ($valid_user) { // Add our user manageUsers('add', array($user_name => $user_password)); // Reset the user name $user_name = ''; }
$users_removed = false; $users_remove = array(); // Try to get the users to remove foreach ($_POST as $post_key => $post_value) { // Is it an admin user? if (preg_match('/^admin_(.+)$/i', $post_key)) { // Update the marker $users_removed = true; // Push the value to the global array array_push($users_remove, $post_value); } } // Somebody has been removed if ($users_removed) { // Remove the users! manageUsers('remove', $users_remove); ?> <p class="info smallspace success"><?php _e("The chosen users have been removed."); ?> </p> <?php } else { ?> <p class="info smallspace fail"><?php _e("You must select one or more users to be removed!"); ?> </p> <?php } }
/** * Proccess Admin User Login Settings and various contional statements related to this plugin. * * @return string content or page protected message */ function user_login_admin() { $Feul = new Feul(); if (isset($Feul->first) && !isset($_GET['settings'])) { echo '<div class="error"><a href="load.php?id=user_login&settings">Кликните здесь</a>, чтобы выбрать метод хранения и другие параметры.</div>'; } ?> <link rel="stylesheet" type="text/css" href="../plugins/user-login/css/admin_style.css" /> <div style="width:100%;margin:0 -15px -15px -10px;padding:0px;"> <h3 class="floated">Плагин регистрации пользователей</h3> <div class="edit-nav clearfix"> <p> <a href="load.php?id=user_login&help">Помощь</a> <a href="load.php?id=user_login&settings">Настройки</a> <a href="load.php?id=user_login&email=yes">Письма</a> <a href="load.php?id=user_login&manage=yes">Управление</a> </p> </div> </div> </div> <div class="main" style="margin-top:-10px;"> <?php if (isset($_GET['email'])) { if (isset($_POST['send-email'])) { if (isset($_POST['send_all'])) { if ($Feul->Storage == 'XML') { $dir = SITEUSERSPATH . "*.xml"; // Make Edit Form For Each User XML File Found foreach (glob($dir) as $file) { $xml = simplexml_load_file($file) or die("Unable to load XML file!"); $Feul->processEmailUser($xml->EmailAddress, $xml->Username, $_POST['email'], $_POST['subject'], $_POST['post-email-message']); } echo '<div class="updated">Письма успешно отправлены</div>'; } elseif ($Feul->Storage == 'DB') { try { $sql = "SELECT * FROM " . $this->DB_Table_Name; foreach ($this->dbh->query($sql) as $row) { $Feul->processEmailUser($row['EmailAddress'], $row['Username'], $_POST['email'], $_POST['subject'], $_POST['post-email-message']); } echo '<div class="updated">Письма успешно отправлены</div>'; } catch (PDOException $e) { echo '<div class="error">Ошибка: ' . $e->getMessage() . '</div>'; } } } else { $emails = $Feul->processEmailUser($_POST['email_to'], null, $_POST['email'], $_POST['subject'], $_POST['post-email-message']); if ($emails != false) { echo '<div class="updated">Письма успешно отправлены</div>'; } } } global $text_area_name; $text_area_name = 'post-email-message'; ?> <h3>Настройки писем для пользователей</h3> <form method="post" action="load.php?id=user_login&email=yes&send-email=yes"> <div style="padding:10px;margin-bottom:15px;background-color:#f6f6f6;"> <p> <label for="from-email">Адрес электронной почты в поле "От"</label> <input type="text" name="email" class="text" value="<?php echo $Feul->getData('email'); ?> " /> </p> </div> <div style="padding:10px;margin-bottom:15px;background-color:#f6f6f6;"> <p> <label>Выбрать, чтобы отправить письма всем пользователям</label> <input type="checkbox" name="send_all" /> </p> <p style="margin-top:-10px; margin-bottom:10px;"> <label>ИЛИ:</label> </p> <p> <label for="subject">Введите адреса электронной почты получателей здесь. Разделять запятой.</label> <input style="width:100%!important;" type="text" name="email_to" class="text" value="" /> </p> </div> <div style="padding:10px;margin-bottom:15px;background-color:#f6f6f6;"> <p> <label for="subject">Тема электронного письма</label> <input style="width:50%!important;" type="text" name="subject" class="text" value="" /> </p> <label for="email-message">Содержание письма:</label> <textarea name="post-email-message"></textarea> <?php include USERLOGINPATH . 'ckeditor.php'; ?> <br><br><input type="submit" class="submit" name="send-email" value="Отправить" /> </div> </form> <?php } elseif (isset($_GET['settings'])) { if (isset($_POST['storage'])) { $submit_settings = $Feul->processSettings(); if ($submit_settings == true) { echo '<div class="updated">Настройки плагина успешно сохранены!</div>'; } else { echo '<div class="error">Настройки не могут быть сохранены!</div>'; } } elseif (isset($_GET['create_db'])) { $create_db = $Feul->createDB(); if ($create_db != false) { echo '<div class="updated">Создать базу данных</div>'; } } elseif (isset($_GET['create_tb'])) { $check_table = $Feul->checkTable(); if ($check_table == '1') { echo '<div class="error">Таблица базы данных уже существует.</div>'; } else { $create_table = $Feul->createDBTable(); $check_table_again = $Feul->checkTable(); if ($check_table_again == '1') { echo '<div class="updated">Таблица базы данных создана.</div>'; } elseif ($check_table_again != 1) { echo '<div class="error">Таблица базы данных не может быть создана.</div>'; } } } ?> <form method="post"> <h2>Параметры хранения</h2> <p> <label>Выберите метод хранения</label> <input type="radio" name="storage" value="XML" <?php if ($Feul->Storage == 'XML') { echo ' CHECKED'; } ?> /> Файлы XML <br/> <input type="radio" name="storage" value="DB" <?php if ($Feul->Storage == 'DB') { echo ' CHECKED'; } ?> /> Базы данных </p> <h4>Настройки базы данных</h4> <p> <label>Хост</label> <input type="text" class="text full" name="db_host" value="<?php if ($Feul->DB_Host == '') { } else { echo $Feul->DB_Host; } ?> " /> </p> <p> <label>Имя пользователя</label> <input type="text" class="text full" name="db_user" value="<?php if ($Feul->DB_User == '') { } else { echo $Feul->DB_User; } ?> " /> </p> <p> <label>Пароль</label> <input type="text" class="text full" name="db_pass" value="<?php if ($Feul->DB_Pass == '') { } else { echo $Feul->DB_Pass; } ?> " /> </p> <p> <label>Имя базы данных</label> Вы можете выбрать любое имя базы данных. <strong>Если авто-создание не удается,</strong> вам придется добавить префикс db_name к имени пользователя mysql <br>(например: username_dbname) <input type="text" class="text full" name="db_name" value="<?php if ($Feul->DB_Name == '') { echo ''; } else { echo $Feul->DB_Name; } ?> " /> </p> <p> <label>Имя таблицы базы данных</label> Мы настоятельно рекомендуем оставить это 'users'<br/> <input type="text" class="text full" name="db_table_name" value="<?php if ($Feul->DB_Table_Name == '') { echo 'users'; } else { echo $Feul->DB_Table_Name; } ?> " /> </p> <p> <label>Ошибки PDO (Сообщения об ошибках базы данных)</label> <input type="radio" name="errors" value="On" <?php if ($Feul->Errors == 'On') { echo ' CHECKED'; } ?> /> Включить <br/> <input type="radio" name="errors" value="Off" <?php if ($Feul->Errors == 'Off') { echo ' CHECKED'; } ?> /> Отключить </p> <p> <input type="submit" name="Feul_settings_form" class="submit" value="Сохранить" /> </p> <p> <a href="load.php?id=user_login&settings&create_db">Попытаться создать базу данных</a><br/> <a href="load.php?id=user_login&settings&create_tb">Попытаться создать таблицу базы данных</a> </p> </div> <div class="main" style="margin-top:-10px;"> <h2>Настройки электронной почты</h2> <p> <label>Редактировать адрес электронной почты "От"</label>Этот адрес указывается в поле "От" в письме, высылаемом пользователю после регистрации:<br/> <input type="text" name="post-from-email" class="text full" value="<?php echo $Feul->getData('email'); ?> " /> </p> </div> <div class="main" style="margin-top:-10px;"> <h2>CSS и предупреждение для незарегистрированных пользователей</h2> <p> <label>Редактировать CSS формы входа</label> <textarea name="post-login-container" class="full" style="height:300px;"> <?php echo $Feul->LoginCss; ?> </textarea> </p> <p> <label>Редактировать CSS сообщения после входа</label> <textarea name="post-welcome-box" class="full" style="height:300px;"> <?php echo $Feul->WelcomeCss; ?> </textarea> </p> <p> <label>Редактировать CSS формы регистрации</label> <textarea name="post-register-box" class="full" style="height:300px;"> <?php echo $Feul->RegisterCss; ?> </textarea> </p> <p> <label>Редактировать предупреждение</label> <textarea name="post-protected-message"> <?php global $text_area_name; $text_area_name = 'post-protected-message'; echo $Feul->ProtectedMessage; ?> </textarea> </p> <?php include USERLOGINPATH . 'ckeditor.php'; ?> <p> <input type="submit" name="Feul_settings_form" class="submit" value="Сохранить" /> </p> </form> <br/> <?php } elseif (isset($_GET['edit_user'])) { if (isset($_POST['Feul_edit_user'])) { if ($_POST['old_name'] != $_POST['usernamec']) { $change_name = $_POST['usernamec']; } else { $change_name = null; } $posted_password = $_POST['nano']; if (isset($_POST['userpassword'])) { $change_pass = $_POST['userpassword']; } else { $change_pass = null; } if ($Feul->Storage == 'XML') { $Feul->processEditUser($_POST['old_name'], $posted_password, $_POST['useremail'], $change_pass, $change_name); } elseif ($Feul->Storage == 'DB') { $Feul->processEditDBUser($_POST['userID'], $_POST['usernamec'], $posted_password, $_POST['useremail']); } if ($change_name != null) { print '<meta http-equiv="refresh" content="0;url=load.php?id=user_login&edit_user='******'">'; } } editUser($_GET['edit_user']); } elseif (isset($_GET['help'])) { if (isset($_GET['convert'])) { $convert = $Feul->convertXmlToDB(); echo '<div class="updated">Пользователи успешно конвертированы</div>'; } ?> <h2>Информация о плагние:</h2> <h4>Функции</h4> <p> <label>Показать форму входа:</label> <?php highlight_string('<?php echo show_login_box(); ?>'); ?> </p> <p> <label>Показать приветствие:</label> Если пользователь вошел, по умолчанию отображается "Добро пожаловать =Имя пользователя=" и ссылка для выхода из системы.<br/> <?php highlight_string('<?php echo welcome_message_login(); ?>'); ?> </p> <p> <label>Показать форму регистрации:</label> <?php highlight_string('<?php user_login_register(); ?>'); ?> </p> <h4>Отображение контента только авторизованным пользователям</h4> <ol> <li>Вы можете блокировать доступ к определенной странице, выбрав "Только для зарегистрированных" в "Свойствах" этой страницы.<br/> Если страница "Только для зарегистрированных", пока пользователь не войдет в систему он будет видеть "Предупреждение", которое можно отредактировать <a href="load.php?id=user_login&settings">здесь</a> </li><br/> <li> Если вы хотели бы разместить содержание приветствия или какой-либо код в шаблоне вам придется использовать немного PHP. <br/> Ниже приведен пример для показа "Hello World" только авторизированным пользователям.<br/> <pre> <?php highlight_string('<?php if(!empty($_SESSION[\'LoggedIn\'])) { ?>'); ?> Helo World <?php highlight_string('<?php } ?>'); ?> </pre> </li> </ol> <h4>Помощь и поддержка</h4> <p> Если вы обнаружили какие-либо баги/ошибки или нужна любая помощь, пожалуйста, посетите форум поддержки <a href="http://get-simple.info/forum/topic/2342/front-end-user-login-plugin-xml-ver-25/">здесь</a> </p> </div> <div class="main" style="margin-top:-10px;"> <h2>Преобразование файлов XML в базу данных</h2> <p> После клика на ссылке ниже файлы XML всех пользователей будут конвертированы в базу данных.<br/> <strong>Вы должны ввести все данные о базе данных на странице настроек, и база данных и таблицы должны быть созданы до преобразования.</strong><br/> <a href="load.php?id=user_login&help&convert">Конвертировать XML в базу данных</a> </p> <?php } else { if (isset($_GET['manage'])) { if (isset($_GET['adduser'])) { $Add_User = $Feul->processAddUserAdmin($_POST['usernamec'], $_POST['userpassword'], $_POST['useremail']); if ($Add_User == false) { echo '<div class="error">Имя пользователя уже создано.</div>'; } else { echo '<div class="updated">Пользователь успешно добавлен.</div>'; } } elseif (isset($_GET['deleteuser'])) { if ($Feul->Storage == 'XML') { $deleteUser = $Feul->deleteUser($_GET['deletename']); } elseif ($Feul->Storage == 'DB') { $deleteUser = $Feul->deleteUser($_GET['deleteuser']); } if ($deleteUser == true) { echo '<div class="updated" style="display: block;">' . $_GET['deletename'] . ' успешно удален</div>'; } else { echo '<div class="updated" style="display: block;"><span style="color:red;font-weight:bold;">ОШИБКА!!</span> - Невозможно удалить пользователя.</div>'; } } } manageUsers(); } }