function login_form_widget($num = 1) { $out = ''; $widget = 'login_form_widget_' . $num; // имя для опций = виджет + номер $options = mso_get_option($widget, 'plugins', array()); // получаем опции if (is_login()) { $out = '<p><strong>' . t('Привет,') . ' ' . getinfo('users_nik') . '!</strong><br> [<a href="' . getinfo('siteurl') . 'admin">' . t('управление') . '</a>] [<a href="' . getinfo('siteurl') . 'logout' . '">' . t('выйти') . '</a>] </p>'; } elseif ($comuser = is_login_comuser()) { if (!$comuser['comusers_nik']) { $cun = t('Привет!'); } else { $cun = t('Привет,') . ' ' . $comuser['comusers_nik'] . '!'; } $out = '<p><strong>' . $cun . '</strong><br> [<a href="' . getinfo('siteurl') . 'users/' . $comuser['comusers_id'] . '">' . t('своя страница') . '</a>] [<a href="' . getinfo('siteurl') . 'logout' . '">' . t('выйти') . '</a>] </p>'; } else { $after_form = isset($options['after_form']) ? $options['after_form'] : ''; $out = mso_login_form(array('login' => t('Логин (email):') . ' ', 'password' => t('Пароль:') . ' ', 'submit' => '', 'form_end' => $after_form), getinfo('siteurl') . mso_current_url(), false); } if ($out) { if (isset($options['header']) and $options['header']) { $out = mso_get_val('widget_header_start', '<h2 class="box"><span>') . $options['header'] . mso_get_val('widget_header_end', '</span></h2>') . $out; } } return $out; }
function loginza_auth_head($args = array()) { if (!is_login() and !is_login_comuser()) { echo '<script src="http://loginza.ru/js/widget.js"></script>'; } return $args; }
function auth_content_check($m) { if (is_login() || is_login_comuser()) { return $m[1]; } else { return 'Запись только для зарегистрированных'; } }
function captcha_autoload($args = array()) { if (!is_login() and !is_login_comuser()) { mso_hook_add('comments_content_end', 'captcha_go'); # хук на отображение картинки mso_hook_add('comments_new_captcha', 'captcha_new_comment'); # хук на обработку капчи } }
function mkj_sc_autoload() { $options = mso_get_option('plugin_mkj_sc', 'plugins', array()); if (isset($options['comusers']) and !$options['comusers'] or !is_login_comuser() and !is_login()) { // Удаляем чужую капчу. mso_remove_hook('comments_content_end'); mso_remove_hook('comments_new_captcha'); mso_remove_hook('comments_new_captcha_error'); // Капча MKJ SimpleCaptcha. mso_hook_add('comments_content_end', 'mkj_sc_show'); mso_hook_add('comments_new_captcha', 'mkj_sc_add'); mso_hook_add('comments_new_captcha_error', 'mkj_sc_error'); // Хук на <head></head> mso_hook_add('head', 'mkj_sc_head'); } }
function _my_comusers_main_menu_custom($menu = '') { $comuser = is_login_comuser(); $menu .= NR . '['; if ($comuser['comusers_nik']) { $menu .= NR . '# | ' . $comuser['comusers_nik']; } else { $menu .= NR . '# | Ваши ссылки'; } $menu .= NR . 'users/' . $comuser['comusers_id'] . ' | Своя страница'; $menu .= NR . 'http://max-3000.com/page/faq | ЧАВО для новичков'; $menu .= NR . 'http://max-3000.com/help | Центр помощи'; $menu .= NR . 'http://forum.max-3000.com/ | Форум поддержки'; $menu .= NR . 'logout | Выход'; $menu .= NR . ']'; return $menu; }
function auth_content_check($m) { static $options; # статик, чтобы не получать каждый раз опции if (!isset($options)) { $options = mso_get_option('plugin_auth_content', 'plugins', array()); if (!isset($options['message'])) { $options['message'] = 'Запись только для зарегистрированных'; } if (!isset($options['format'])) { $options['format'] = '%MESSAGE%'; } } if (is_login() || is_login_comuser()) { return $m[2]; } else { return str_ireplace('%MESSAGE%', isset($m[1]) && $m[1] != '' ? $m[1] : $options['message'], $options['format']); } }
exit('No direct script access allowed'); } /** * MaxSite CMS * (c) http://max-3000.com/ */ if ($fn = mso_find_ts_file('main/main-start.php')) { require $fn; } echo NR . '<div class="mso-type-loginform">' . NR; if (is_login()) { if (mso_segment(2) == 'error') { mso_redirect('loginform'); } eval(mso_tmpl_ts('type/loginform/units/loginform-user-tmpl.php')); } elseif ($comuser = is_login_comuser()) { if (mso_segment(2) == 'error') { mso_redirect('loginform'); } if (!$comuser['comusers_nik']) { $hello = t('Привет!'); } else { $hello = t('Привет,') . ' ' . $comuser['comusers_nik'] . '!'; } eval(mso_tmpl_ts('type/loginform/units/loginform-comuser-tmpl.php')); } else { $redirect_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : getinfo('siteurl'); if (mso_segment(2) == 'error') { eval(mso_tmpl_ts('type/loginform/units/loginform-error.php')); } // если разрешена регистрация, то выведем ссылку
$menu .= NR . 'admin/plugins | Плагины | | | i-puzzle-piece'; $menu .= NR . '---'; $menu .= NR . 'admin/options | Опции сайта | | | i-wrench'; $menu .= NR . 'admin/template_options | Настройки шаблона | | | i-gears'; // $menu .= NR . '---'; // $menu .= NR . 'http://max-3000.com/page/faq | ЧАВО для новичков'; // $menu .= NR . 'http://max-3000.com/help | Центр помощи'; // $menu .= NR . 'http://forum.max-3000.com/ | Форум поддержки'; if (function_exists('ushka')) { $menu .= NR . ushka('main-menu-admin'); } $menu .= NR . '---'; $menu .= NR . 'logout | Выход | | | i-unlock'; $menu .= NR . ']'; } elseif (is_login_comuser()) { $comuser = is_login_comuser(); $menu .= NR . '['; if ($comuser['comusers_nik']) { $menu .= NR . '# | ' . $comuser['comusers_nik'] . ' | Своя страница | | i-user'; } else { $menu .= NR . '# | Ваши ссылки'; } $menu .= NR . 'users/' . $comuser['comusers_id'] . ' | Своя страница'; $menu .= mso_hook('main_menu_add_comuser'); $menu .= NR . '---'; $menu .= NR . 'logout | Выход'; $menu .= NR . ']'; } if ($menu) { echo mso_menu_build($menu, 'selected', false); }
<?php if (!defined('BASEPATH')) { exit('No direct script access allowed'); } /** * MaxSite CMS * (c) http://max-3000.com/ */ require_once getinfo('common_dir') . 'comments.php'; # обработка отправленных данных - возвращает результат $res_post = mso_comuser_edit(); # получим всю информацию о комюзере из сессии или url $comuser_info = mso_get_comuser(); # отображение формы залогирования $login_form = !is_login_comuser(); # если нет данных юзера, то выводим форму if (!$comuser_info) { $login_form = true; } if ($f = mso_page_foreach('users-form-head-meta')) { require $f; } else { mso_head_meta('title', tf('Форма редактирования комментатора') . '. ' . getinfo('title')); // meta title страницы } if (!$comuser_info and mso_get_option('page_404_http_not_found', 'templates', 1)) { header('HTTP/1.0 404 Not Found'); } // теперь сам вывод if ($fn = mso_find_ts_file('main/main-start.php')) {
echo tf('Выйти'); ?> </a> </div> <?php } // комюзер ?> <?php mso_hook('comments_content_start'); ?> <textarea name="comments_content" id="comments_content" rows="10"></textarea> <?php if (!is_login() and !($comuser = is_login_comuser())) { // нет залогирования ?> <div class="comments-auth"> <?php if (mso_get_option('allow_comment_anonim', 'general', '1')) { ?> <p> <?php $t_hidden = mso_get_option('allow_comment_comusers', 'general', '1') ? 'type="radio" checked="checked"' : 'type="hidden"'; ?>
function mso_comuser_edit($args = array()) { global $MSO; if (!isset($args['css_ok'])) { $args['css_ok'] = 'comment-ok'; } if (!isset($args['css_error'])) { $args['css_error'] = 'comment-error'; } # id комюзера, который в сессии if (isset($MSO->data['session']['comuser']) and $MSO->data['session']['comuser']) { $id_session = $MSO->data['session']['comuser']['comusers_id']; } else { $id_session = false; } if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_comusers_activate_key'))) { # защита рефера mso_checkreferer(); # защита сессии - если не нужно закомментировать строчку! if ($MSO->data['session']['session_id'] != $post['f_session_id']) { mso_redirect(); } // получаем номер юзера id из f_submit[] $id = (int) mso_array_get_key($post['f_submit']); if (!$id) { return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный номер пользователя') . '</div>'; } # проверяем id в сессии с сабмитом // if ($id != $id_session) // return '<div class="' . $args['css_error']. '">'. t('Ошибочный номер пользователя'). '</div>'; $f_comusers_activate_key = trim($post['f_comusers_activate_key']); if (!$f_comusers_activate_key) { return '<div class="' . $args['css_error'] . '">' . tf('Неверный (пустой) ключ') . '</div>'; } // нужно проверить если у указанного комюзера не равные ключи // если они равны, то ничего не делаем $CI =& get_instance(); $CI->db->select('comusers_activate_string, comusers_activate_key'); $CI->db->from('comusers'); $CI->db->where('comusers_id', $id); $CI->db->limit(1); $query = $CI->db->get(); if ($query->num_rows() > 0) { $comuser = $query->result_array(); // данные комюзера if ($comuser[0]['comusers_activate_string'] == $comuser[0]['comusers_activate_key']) { // уже равны, активация не требуется return '<div class="' . $args['css_ok'] . '">' . tf('Активация уже выполнена') . '</div>'; } else { // ключи в базе не равны // сверяем с переданным ключом из формы if ($f_comusers_activate_key == $comuser[0]['comusers_activate_key']) { // верный ключ - обновляем в базе $CI->db->where('comusers_id', $id); $res = $CI->db->update('comusers', array('comusers_activate_string' => $f_comusers_activate_key)) ? '1' : '0'; $CI->db->cache_delete_all(); if ($res) { return '<div class="' . $args['css_ok'] . '">' . tf('Активация выполнена!') . '</div>'; } else { return '<div class="' . $args['css_error'] . '">' . tf('Ошибка БД при добавления ключа активации') . '</div>'; } } else { return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный ключ активации') . '</div>'; } } } else { // вообще нет такого комюзера return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный номер пользователя') . '</div>'; } } elseif ($post = mso_check_post(array('flogin_session_id', 'flogin_submit', 'flogin_user', 'flogin_password', 'flogin_redirect'))) { // логинимся через стандартную _mso_login() _mso_login(); return; } elseif ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_comusers_email', 'f_comusers_password', 'f_comusers_nik', 'f_comusers_url', 'f_comusers_icq', 'f_comusers_msn', 'f_comusers_jaber', 'f_comusers_date_birth', 'f_comusers_description', 'f_comusers_avatar_url'))) { if (!is_login_comuser()) { return '<div class="' . $args['css_error'] . '">' . tf('Ошибочные данные пользователя') . '</div>'; } # защита рефера mso_checkreferer(); # защита сессии - если не нужно закомментировать строчку! if ($MSO->data['session']['session_id'] != $post['f_session_id']) { mso_redirect(); } // получаем номер юзера id из f_submit[] $id = (int) mso_array_get_key($post['f_submit']); if (!$id) { return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный номер пользователя') . '</div>'; } # проверяем id в сессии с сабмитом if ($id != $id_session) { return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный номер пользователя') . '</div>'; } $f_comusers_email = trim($post['f_comusers_email']); $f_comusers_password = trim($post['f_comusers_password']); if (!$f_comusers_email or !$f_comusers_password) { return '<div class="' . $args['css_error'] . '">' . tf('Необходимо указать email и пароль') . '</div>'; } // проверим есть ли такой комюзер $CI =& get_instance(); $CI->db->select('*'); $CI->db->from('comusers'); # CodeIgniter экранирует where, даже когда только условия в полях $CI->db->where('comusers_activate_string=comusers_activate_key', '', false); // активация должна уже быть $CI->db->where(array('comusers_id' => $id, 'comusers_email' => $f_comusers_email, 'comusers_password' => $f_comusers_password)); $CI->db->limit(1); $query = $CI->db->get(); if ($query->num_rows() > 0) { // все ок - логин пароль верные $comuser = $query->result_array(); // данные комюзера $f_comusers_avatar_url = mso_strip($post['f_comusers_avatar_url'], false, array('\\', '|', '?', '%', '*', '`')); $allowed_ext = array('gif', 'jpg', 'jpeg', 'png'); // разрешенные типы $ext = strtolower(str_replace('.', '', strrchr($f_comusers_avatar_url, '.'))); // расширение файла if (!in_array($ext, $allowed_ext)) { $f_comusers_avatar_url = ''; } // запрещенный тип файла if (!isset($post['f_comusers_notify'])) { $post['f_comusers_notify'] = '0'; } if (!isset($post['f_comusers_skype'])) { $post['f_comusers_skype'] = ''; } // скайп $post = mso_clean_post(array('f_comusers_nik' => 'base', 'f_comusers_url' => 'base', 'f_comusers_icq' => 'base', 'f_comusers_msn' => 'base', 'f_comusers_jaber' => 'base', 'f_comusers_skype' => 'base', 'f_comusers_date_birth' => 'base', 'f_comusers_description' => 'base', 'f_comusers_notify' => 'int'), $post); $upd_date = array('comusers_nik' => strip_tags($post['f_comusers_nik']), 'comusers_url' => strip_tags($post['f_comusers_url']), 'comusers_icq' => strip_tags($post['f_comusers_icq']), 'comusers_msn' => strip_tags($post['f_comusers_msn']), 'comusers_jaber' => strip_tags($post['f_comusers_jaber']), 'comusers_skype' => strip_tags($post['f_comusers_skype']), 'comusers_date_birth' => strip_tags($post['f_comusers_date_birth']), 'comusers_description' => strip_tags($post['f_comusers_description']), 'comusers_avatar_url' => $f_comusers_avatar_url, 'comusers_notify' => $post['f_comusers_notify']); # pr($upd_date ); $CI->db->where('comusers_id', $id); $res = $CI->db->update('comusers', $upd_date) ? '1' : '0'; // если переданы метаполя, то обновляем и их if (isset($post['f_comusers_meta']) and $post['f_comusers_meta']) { //pr($post); foreach ($post['f_comusers_meta'] as $key => $val) { // вначале грохаем если есть такой ключ $CI->db->where('meta_table', 'comusers'); $CI->db->where('meta_id_obj', $id); $CI->db->where('meta_key', $key); $CI->db->delete('meta'); // теперь добавляем как новый $ins_data = array('meta_table' => 'comusers', 'meta_id_obj' => $id, 'meta_key' => $key, 'meta_value' => $val); $CI->db->insert('meta', $ins_data); } } $CI->db->cache_delete_all(); // mso_flush_cache(); // сбросим кэш if ($res) { return '<div class="' . $args['css_ok'] . '">' . tf('Обновление выполнено!') . '</div>'; } else { return '<div class="' . $args['css_error'] . '">' . tf('Ошибка БД при обновлении') . '</div>'; } } else { return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный email и пароль') . '</div>'; } } // обновление формы }
echo '</section>'; echo '</div>' . NR; } if ($f = mso_page_foreach('page-comments-posle-list')) { require $f; } if ($page['page_comment_allow'] and $page_text_ok) { // если запрещены комментарии и от анонимов и от комюзеров, то выходим if (mso_get_option('allow_comment_anonim', 'general', '1') or mso_get_option('allow_comment_comusers', 'general', '1')) { $to_login = tf('Вы можете <a href="#LOG#">войти</a> под своим логином или <a href="#REG#"> зарегистрироваться</a> на сайте.'); $to_login = str_replace('#LOG#', getinfo('site_url') . 'login', $to_login); $to_login = str_replace('#REG#', getinfo('site_url') . 'registration', $to_login); if (mso_get_option('new_comment_anonim_moderate', 'general', '1')) { $to_moderate = mso_get_option('form_comment_anonim_moderate', 'general', tf('Комментарий будет опубликован после проверки')); } else { $to_moderate = mso_get_option('form_comment_anonim', 'general', tf('Используйте нормальные имена')); } // если запрещены комментарии от анонимов и при этом нет залогиненности, то форму при простой форме не выводим if (!mso_get_option('allow_comment_anonim', 'general', '1') and !is_login() and !is_login_comuser() and mso_get_option('form_comment_easy', 'general', '0')) { if (mso_get_option('allow_comment_comusers', 'general', '1')) { eval(mso_tmpl_ts('type/page/units/page-comment-to-login-tmpl.php')); } } else { eval(mso_tmpl_ts('type/page/units/page-comment-form-tmpl.php')); } } } if ($comments or $page['page_comment_allow']) { echo NR . '</div><!-- /div.mso-type-page-comments -->' . NR; } # end file
<div class="comment-form"> <form action="" method="post"> <input type="hidden" name="comments_page_id" value="<?php echo $page_id; ?> "> <?php echo mso_form_session('comments_session'); ?> <?php if (!is_login()) { ?> <?php if (!($comuser = is_login_comuser())) { ?> <?php if (mso_get_option('allow_comment_anonim', 'general', '1')) { ?> <div class="comments-noreg"> <?php if (mso_get_option('allow_comment_comusers', 'general', '1')) { ?> <label><input type="radio" name="comments_reg" id="comments_reg_1" value="noreg" checked="checked" class="no-margin"> <span class="black"><?php echo tf('Не регистрировать/аноним'); ?> </span></label> <br> <?php