Exemplo n.º 1
0
 public function addAction()
 {
     if (user::isGuest() && reg::getKey('/comments/only_reg')) {
         system::stop();
     }
     if (user::isGuest() && !system::validCapcha('random_image')) {
         system::json(array('error' => 1, 'data' => lang::get('FEEDBACK_ERROR1')));
     }
     // Добавляем новый комментарий
     $comment = new comment();
     $comment->setParentId(system::POST('parent_id'));
     $comment->setObjId(system::POST('obj_id'));
     $comment->setUserName(system::POST('username'));
     $comment->setEmail(system::POST('email'));
     $comment->setText(system::POST('text'));
     $comment->setSendEmail(system::POST('send_email'));
     $obj_id = $comment->save();
     if ($obj_id) {
         page::assign('current_url', system::POST('back_url'));
         $html = page::macros('comments')->view($comment->id());
         system::json(array('error' => 0, 'data' => $html));
     } else {
         system::json(array('error' => 2, 'data' => $comment->getErrorListText(' ')));
     }
     if (!empty($_POST['back_url']) && !system::isAjax()) {
         system::redirect($_POST['back_url'] . '#comment' . $obj_id, true);
     } else {
         system::stop();
     }
 }
Exemplo n.º 2
0
 public function viewAction()
 {
     if (system::issetUrl(2)) {
         $_SESSION['voting_' . system::url(2)] = 1;
         echo page::macros('voting')->objView(system::url(2));
     }
     system::stop();
 }
Exemplo n.º 3
0
 static function getMailHTML($release_id)
 {
     if ($release = ormObjects::get($release_id)) {
         if ($release->isInheritor('subscribe_msg')) {
             $subscribe = $release->getParent();
             page::$macros = 1;
             $mail = '';
             if (file_exists(TEMPL_DIR . '/subscription/mails/' . $subscribe->template . '.tpl')) {
                 include TEMPL_DIR . '/subscription/mails/' . $subscribe->template . '.tpl';
                 page::assign('domain_name', domains::curDomain()->getName());
                 page::assign('site_name', domains::curDomain()->getSiteName());
                 page::assign('base_email', domains::curDomain()->getEmail());
                 page::assign('subscribe.id', $subscribe->id);
                 page::assign('release.id', $release->id);
                 page::assign('release.name', $release->name);
                 page::assign('release.message', $release->message);
                 $sel = new ormSelect();
                 $sel->depends($release->id, 1462);
                 $num = 0;
                 $list = '';
                 while ($obj = $sel->getObject()) {
                     $num++;
                     page::assign('obj.num', $num);
                     page::assign('class-first', $num == 1 ? 'first' : '');
                     page::assign('class-last', $num == $sel->getObjectCount() ? 'last' : '');
                     page::assign('class-odd', $num % 2 == 0 ? 'odd' : '');
                     page::assign('class-even', $num % 2 != 0 ? 'even' : '');
                     page::assign('class-third', $num % 3 == 0 ? 'third' : '');
                     page::assign('obj.id', $obj->id);
                     page::assign('obj.url', $obj->url);
                     $obj->parseAllFields();
                     $list .= page::parse($TEMPLATE['list']);
                 }
                 page::assign('list', $list);
                 if (!empty($list)) {
                     page::fParse('list', $TEMPLATE['frame_list']);
                 }
                 $mail = page::parse($TEMPLATE['frame']);
             }
             return $mail;
         }
     }
 }
Exemplo n.º 4
0
    public function defAction()
    {
        // Устанавливаем статус системы "в режиме администрирования".
        system::$isAdmin = true;
        page::$macros = 0;
        // Попытка авторизации
        if (!empty($_POST['enter'])) {
            if (!user::auth($_POST['login'], $_POST['passw'])) {
                $this->showAuthForm(1);
            } else {
                header("Location: " . $_SERVER["HTTP_REFERER"]);
            }
        }
        // Если пользователь не админ, показываем форму авторизации
        if (!user::isAdmin()) {
            $this->showAuthForm();
        }
        // Определяем текущий домен
        domains::curDomain();
        // Выход из системы
        if (system::issetUrl(0) && system::url(0) == 'logout') {
            user::logout();
        }
        if (system::url(0) == 'showhide') {
            $_SESSION['SH_FIELDS'] = system::url(1) == 0 ? 'hide' : 'show';
            system::stop();
        }
        // Обработка запросов от поля ObjectLinks
        ui::checkObjectLinks();
        system::$defTemplate = MODUL_DIR . '/mpanel/template/default.tpl';
        // Определяем модуль
        if (!system::issetUrl(0)) {
            system::setUrl(0, user::getDefModul());
        }
        // Если есть ссылка на обработчик формы
        if (!empty($_POST['right'])) {
            system::setUrl(1, system::POST('right', isVarName));
        }
        // Определяем право
        if (system::issetUrl(1)) {
            // Проверяем существует ли указанное право
            if (user::issetRight(system::url(1))) {
                $currRight = system::url(1);
            } else {
                if (user::issetRight(str_replace('_proc', '', system::url(1)))) {
                    $currRight = system::url(1);
                }
            }
        } else {
            // Пытаемся найти право по умолчанию
            $def_right = user::getDefaultRight(system::url(0));
            if ($def_right) {
                $currRight = $def_right;
                system::setUrl(1, $def_right);
            }
        }
        $this->getMenu();
        page::assign('current_url', system::getCurrentUrl());
        page::assign('admin_url', system::au());
        if (!empty($currRight)) {
            // Определяем имя и метод контролера
            $pos = strpos($currRight, '_');
            if ($pos) {
                $class_name = '__' . substr($currRight, 0, $pos);
                $action_name = substr($currRight, $pos + 1, strlen($currRight) - $pos);
            } else {
                $class_name = '__' . $currRight;
                $action_name = 'defAction';
            }
            $mod_name = MODUL_DIR . '/' . system::url(0) . '/' . $class_name . '.php';
            // Пытаемся подгрузить модуль
            if (file_exists($mod_name)) {
                include $mod_name;
                if (file_exists(MODUL_DIR . '/' . system::url(0) . '/lang-ru.php')) {
                    include MODUL_DIR . '/' . system::url(0) . '/lang-ru.php';
                }
                ui::setHeader(lang::right($currRight));
                if (class_exists($class_name)) {
                    eval('$c = new ' . $class_name . '();');
                    if (ui::$stop) {
                        $content = '.';
                    } else {
                        if (method_exists($c, $action_name)) {
                            $content = call_user_func(array($c, $action_name));
                        }
                    }
                }
            }
            if (empty($content)) {
                $msg = lang::get('TEXT_PROC_NOTFOUND2') . '<br />' . system::getCurrentUrl() . '<br /><br />
	                        ' . lang::get('TEXT_PROC_NOTFOUND3') . '<br />' . $mod_name . '<br /><br />
	                        ' . lang::get('TEXT_PROC_NOTFOUND4');
                system::log(lang::get('TEXT_PROC_NOTFOUND') . ' ' . system::getCurrentUrl());
                ui::MessageBox(lang::get('TEXT_PROC_NOTFOUND'), $msg);
                system::redirect('/');
            }
        } else {
            system::log(lang::get('TEXT_ERROR_RIGHT_LOG') . system::getCurrentUrl());
            ui::MessageBox(lang::get('TEXT_ERROR_RIGHT'), lang::get('TEXT_ERROR_RIGHT2'));
            system::redirect('/');
        }
        //Производим сжатие страницы
        if (reg::getKey('/config/gzip')) {
            $PREFER_DEFLATE = false;
            $FORCE_COMPRESSION = false;
            $AE = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : $_SERVER['HTTP_TE'];
            $support_gzip = strpos($AE, 'gzip') !== FALSE || $FORCE_COMPRESSION;
            $support_deflate = strpos($AE, 'deflate') !== FALSE || $FORCE_COMPRESSION;
            if ($support_gzip && $support_deflate) {
                $support_deflate = $PREFER_DEFLATE;
            }
            if ($support_deflate) {
                header("Content-Encoding: deflate");
                ob_start("compress_output_deflate");
            } else {
                if ($support_gzip) {
                    header("Content-Encoding: gzip");
                    ob_start("compress_output_gzip");
                } else {
                    ob_start();
                }
            }
        }
        return ui::getMainHTML($content);
    }
Exemplo n.º 5
0
 public function rssAction()
 {
     if (!system::issetUrl(2)) {
         page::globalVar('h1', lang::get('RSS_TITLE'));
         page::globalVar('title', lang::get('RSS_TITLE'));
         return page::macros('structure')->rssList();
     } else {
         header("content-type: text/xml; charset=UTF-8");
         echo page::macros('structure')->rss(system::url(2));
         system::stop();
     }
 }
Exemplo n.º 6
0
 private static function checkSocialUser($user_info)
 {
     $sel = new ormSelect('user');
     $sel->where($sel->val('social_identity', '=', $user_info['identity']), $sel->val('social_type', '=', $user_info['social_type']));
     $sel->limit(1);
     if ($user = $sel->getObject()) {
         // Пользователь уже зарегистрирован
         $groups = $user->getParents();
         $sel = new ormSelect('user_group');
         $sel->where('id', '=', $groups, 'OR');
         $sel->where('active', '=', 1);
         if (!$user->active || $sel->getCount() < 1) {
             // Ошибка: Пользователь или группа выключены, авторизация не возможна
             echo lang::get('USERS_DISABLE_AUTH');
             die;
         } else {
             if (user::authHim($user)) {
                 // Пользователь авторизован, закрываем дочернее окно и возвращаемся на сайт
                 self::closeWindowAndOpen('/');
             }
         }
     } else {
         // Пользователь еще не создан, регистрируем
         if (reg::getKey('/users/confirm') || reg::getKey('/users/ask_email') && empty($user_info['email'])) {
             // Запрашивает согласие с правилами или e-mail
             $_SESSION['SOCIAL_AUTH_USER_INFO'] = $user_info;
             echo page::macros('users')->socialAuthConfirm();
         } else {
             // регистрируем
             $user = self::createUserForSocial($user_info);
             if ($user && !$user->issetErrors()) {
                 user::authHim($user);
                 self::closeWindowAndOpen('/');
             } else {
                 if ($user instanceof ormObject) {
                     echo $user->getErrorListText();
                 } else {
                     echo 'Unknown error';
                 }
             }
         }
         system::stop();
     }
 }
Exemplo n.º 7
0
 static function get404()
 {
     page::disableCacheForThisPage();
     page::globalVar('h1', lang::get('ERROR_404_TITLE'));
     page::globalVar('title', lang::get('ERROR_404_TITLE'));
     if (!($data = cache::get('error404'))) {
         $data = lang::get('ERROR_404_TEXT') . page::macros('structure')->menu('map');
         cache::set('error404', $data);
     }
     return $data;
 }
Exemplo n.º 8
0
 private function sendStateMsg()
 {
     if (!empty($this->obj)) {
         if ($this->change_state && ($state = ormObjects::get($this->obj->state)) && $state->info) {
             page::assign('order.id', $this->obj->id);
             page::assign('order.number', $this->getNumber());
             page::assign('order.cost', $this->getTotalCost());
             // Информация о доставке
             page::assign('order.delivery', $this->obj->_delivery);
             page::assign('order.delivery_price', $this->getDeliveryPrice());
             page::assign('order.name', $this->obj->delivery_name);
             page::assign('order.surname', $this->obj->delivery_surname);
             page::assign('order.phone', $this->obj->delivery_phone);
             page::assign('order.address', $this->obj->delivery_address);
             page::assign('username', user::get('surname') . ' ' . user::get('name'));
             page::assign('goods_list', page::macros('eshop')->goodsList($this->obj->id, 'goods_list_email'));
             $text = str_replace(array('{', '}'), '%', $state->email_msg);
             $title = str_replace(array('{', '}'), '%', $state->email_title);
             $mail = new phpmailer();
             $mail->WordWrap = 50;
             $mail->IsHTML(true);
             $mail->From = domains::curDomain()->getEmail();
             $mail->FromName = domains::curDomain()->getSiteName();
             $mail->Subject = page::parse($title);
             $mail->Body = page::parse($text);
             // Отправляем письмо пользователю
             $mail->AddAddress($this->obj->email);
             $mail->Send();
             // Отправляем письмо администратору
             if ($state->id == reg::getKey('/eshop/fisrt_state') && reg::getKey('/eshop/dubl_to_email')) {
                 $mail->ClearAddresses();
                 $mail->AddAddress(domains::curDomain()->getEmail());
                 $mail->Send();
             }
         }
     }
 }
Exemplo n.º 9
0
 public function change_passwordAction()
 {
     page::globalVar('h1', lang::get('USERS_CHANGE_PSW_H1'));
     page::globalVar('title', lang::get('USERS_CHANGE_PSW_H1'));
     return page::macros('users')->changePassword();
 }
Exemplo n.º 10
0
 public function order_viewAction()
 {
     return page::macros('eshop')->orderView(system::url(2));
 }