рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг phpBB / XenForo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░

рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдордВрдЪ (phpBB) рдкрд░ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд╛рдЗрдЯ (modX) рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЙрд╕ рд╕рдордп, рдордВрдЪ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рдереЗред MODxBB рд╕рдорд╛рдзрд╛рди рддрдм рдирд╣реАрдВ рдерд╛ рдФрд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ред

рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ
<?php global $modx, $phpbb_root_path, $phpEx, $user, $db, $config, $cache, $template, $auth; $phpbb_root_path = $modx->config['base_path'] . 'forum/'; define('IN_PHPBB', true); $phpEx = "php"; include($phpbb_root_path . 'includes/functions_install.' . $phpEx); include($phpbb_root_path . 'includes/functions_display.' . $phpEx); include($phpbb_root_path . 'common.' . $phpEx); include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx); $user->session_begin(); $auth->acl($user->data); $user->setup('ucp'); $login = array(); if(isset($_POST['logoutForum']) && $user->data['user_id'] != ANONYMOUS) $user->session_kill(); //  if(isset($_POST['login']) && $user->data['user_id'] == ANONYMOUS){ $username = request_var('username', '', true); $password = request_var('password', '', true); $autologin = (!empty($_POST['autologin'])) ? true : false; $viewonline = (!empty($_POST['viewonline'])) ? false : true; $login = $auth->login($username, $password, $autologin, $viewonline); } header('Content-type: text/html; charset=UTF-8'); header('Cache-Control: private, no-cache="set-cookie"'); header('Expires: 0'); header('Pragma: no-cache'); if((!empty($login) && $login['status'] == LOGIN_SUCCESS) || $user->data['user_id'] != ANONYMOUS){ if(!empty($login)) $auth->acl($user->data); $modx->setPlaceholder('UserName',get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour'])); echo $modx->getChunk('ExitBlock'); /* Hello [+UserName+] <form method="post" action="/[~[*id*]~]"><input type="submit" name="logoutForum" value="" /></form> */ } else{ if(isset($login['error_msg']) && $login['error_msg']){ //  $err = $user->lang[$login['error_msg']]; if ($login['error_msg'] == 'LOGIN_ERROR_USERNAME' || $login['error_msg'] == 'LOGIN_ERROR_PASSWORD'){ $err = (!$config['board_contact']) ? sprintf($user->lang[$login['error_msg']], '', '') : sprintf($user->lang[$login['error_msg']], '<a hrf="mailt:' . htmlspecialchars($config['board_contact']) . '">', '</a>'); } if($login['error_msg']=='LOGIN_ERROR_ATTEMPTS'){ //? $captcha = & phpbb_captcha_factory::get_instance($config['captcha_plugin']); $captcha->init(CONFIRM_LOGIN); $template->assign_vars(array('CAPTCHA_TEMPLATE' => $captcha->get_template())); $err = $user->lang[$login['error_msg']]; $err.='<br /><img sr="/forum/ucp.php?mode=confirm&confirm_id='.$template->_rootref['CONFIRM_IMAGE_LINK'].'" alt=" " /><br />   : <input type="text" name="confirm_code" id="confirm_code" size="8" maxlength="8" title=" " /><input type="hidden" name="confirm_id" id="confirm_id" value="'.$template->_rootref['CONFIRM_ID'].'" title=" " /><br />'; } $modx->setPlaceholder('ErrorMsg',$err); } echo $modx->getChunk('forumLoginForm'); /* <form method="post" action=""> [+ErrorMsg+]<BR> : <input type="text" name="username" id="username" size="10" title="login" /><br /> : <input type="password" name="password" id="password" size="10" title="password" /><br /> <input type="submit" name="login" value="" /> </form> */ } ?> 


рдХреЛрдб рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд░реНрджреЛрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рд╖рдп рдЗрд╕ рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛, рдЕрдЧрд░ рдПрдХ рджрд┐рди рд╡рд┐рдЪрд╛рд░ рдордВрдЪ рдЗрдВрдЬрди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдШреВрдордиреЗ рдХреЗ рдмрд╛рдж, XenForo рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдирд┐рд░реНрдзрд╛рд░рдг рдХрд╛рд░рдХ рдРрд╕реЗ рдЖрдЗрдЯрдо рдереЗ:
  1. рд╕реЛрд╢рд▓ рдмрдиреНрд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░
  2. PhpBB 3.0 рдордВрдЪ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рд╡рд┐рд╖рдпреЛрдВ рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
  3. рдЖрд░рд╛рдо рдХреЛрдб
  4. рд╕рдХреНрд░рд┐рдп рд╕рдореБрджрд╛рдп


рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ, рдЖрдпрд╛рдд рдХрд░реЗрдВ ... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдпрд╛рдд ID-Schnick рдХреЗ рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрд╛рдХрд┐ рдпрд╣ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░ рд╕рдХреЗ, рдЬреЛ рдкреБрд░рд╛рдиреЗ рдлрд╝реЛрд░рдо рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдЗрдЯ рдкрд░ рдЧрдП рдереЗред
рдЕрдм рд╕рд╛рдЗрдЯ рдкрд░ рд╣реА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдлреЙрд░реНрдо рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╣ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ XenForo рдХреЛрдб рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред
 <?php $noauth=isset($noauth)? $noauth : ''; //    ? $fileDir=$modx->config['base_path'].'forum/'; $startTime = microtime(true); require ($fileDir . '/library/XenForo/Autoloader.php'); XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library'); XenForo_Application::modxParserActive(); // XenForo,       XenForo_Application::initialize($fileDir . '/library', $fileDir); XenForo_Application::set('page_start_time', $startTime); XenForo_Session::startPublicSession(); $xfUser = XenForo_Visitor::getInstance(); $data=array(); if($xfUser->get('user_id')=='0'){ $data['back']=isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'/'; $data['linkauth']='forum/login/login'; $data['noauth']=$modx->getChunk($noauth); //   echo $modx->parseChunk('forumLoginForm', $data,'[+','+]'); /*[+noauth+]<BR> <form action="/[+linkauth+]" mthod="post" lass="xenForm " id="login" style="display: block"> <>/e-mail: <inut type="text" name="login" id="LoginControl" class="textCtrl" tabindex="101">&nbsp;&nbsp;&nbsp;&nbsp;:<inut type="password" name="password" class="textCtrl" id="ctrl_password" tabindex="102">&nbsp;&nbsp;&nbsp;&nbsp;<inut type="submit" class="button primary" value="" tabindex="104"></> <inut type="hidden" name="remember" value="1" id="ctrl_remember"> <inut type="hidden" name="cookie_check" value="1"> <inut type="hidden" name="redirect" value="[+back+]"> <inut type="hidden" name="_xfToken" value=""> </frm>*/ }else{ $data['UserName']=$xfUser->get('username'); echo $modx->parseChunk('ExitBlock', $data,'[+','+]'); } ?> 


рдФрд░ рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рд░рд╣рд╕реНрдпрдордпреА рдХрд╛рд░реНрдп modxParserActive рд╣реИред

рд▓рд╛рдЗрдмреНрд░реЗрд░реА / XenForo / рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ Application.php рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ XenForo_Application рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдирдП рдЪрд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреЛрдбрд╝реЗрдВ
 protected static $_modxParser = false; 

рдлрд┐рд░ рд╣рдо рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

 public static function modxParserActive() { self::$_modxParser = true; } public static function GetModxParser() { return self::$_modxParser; } 

рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ред рд╢реБрд░реБрдЖрддреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдХреЛрдб рдХреЛ рд▓рдкреЗрдЯреЗрдВ
 @ini_set('output_buffering', false); // see http://bugs.php.net/bug.php?id=36514 if (!@ini_get('output_handler')) while (@ob_end_clean()); error_reporting(E_ALL | E_STRICT & ~8192); set_error_handler(array('XenForo_Application', 'handlePhpError')); set_exception_handler(array('XenForo_Application', 'handleException')); 


рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ

 if(!self::GetModxParser()){ тАж... } 


рд╣рд╛рдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЬрди рдХреЛрдб рдХреЛ рдХреНрд░реЙрд▓ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдпрд╣реА рдмрд╛рдд рдереАред рдпрд╣ рдкреЛрд╕реНрдЯред рдЕрдм рддрдХ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ modx рдФрд░ XenForo рдХреЗ рдмреАрдЪ рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд╕рдВрдШрд░реНрд╖ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЙрдбреЗрдХреНрд╕ рдкрд░реНрд╕, рд╕рд┐рд░реНрдл ob_end_clean рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдирд┐рдкреЗрдЯ рдХрд░рддрд╛ рд╣реИ; рдФрд░ рдЪреВрдВрдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдореЙрдбреЗрдХреНрд╕ рд╕рднреА рдЖрдЧрд╛рдореА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдмрдлрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In136833/


All Articles