/** * Runs all/as many outstanding cron entries and outputs the * blank image. */ public static function runAndOutput() { @set_time_limit(180); $dependencies = new XenForo_Dependencies_Public(); $dependencies->preLoadData(); $cron = new XenForo_Cron(); $cron->outputImage(); $cron->run(); }
public function renderHtml() { $options = XenForo_Application::get('options'); $template = $this->createTemplateObject($this->_templateName, $this->_params); // Mini page bootstrapper :3 $dep = new XenForo_Dependencies_Public(); $this->_params = $dep->getEffectiveContainerParams($this->_params, $this->_params['request']); $this->_params['serverTimeInfo'] = XenForo_Locale::getDayStartTimestamps(); $template->setParams($this->_params); echo $template->render(); exit; }
protected function _getWrapper($selected, XenForo_ControllerResponse_View $subView) { $viewParams = array('selected' => $selected, 'tosUrl' => XenForo_Dependencies_Public::getTosUrl()); $wrapper = $this->responseView('XenForo_ViewPublic_Help_Wrapper', 'help_wrapper', $viewParams); $wrapper->subView = $subView; return $wrapper; }
public function __construct() { $startTime = microtime(true); $xf_path = Yii::getPathOfAlias('webroot') . '/forum'; Yii::registerAutoloader(array('XenforeLoader', 'autoload'), true); XenForo_Autoloader::getInstance()->setupAutoloader($xf_path . '/library'); XenForo_Application::initialize($xf_path . '/library', $xf_path); XenForo_Application::set('page_start_time', $startTime); XenForo_Application::disablePhpErrorHandler(); error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE ^ E_WARNING); $dependencies = new XenForo_Dependencies_Public(); $dependencies->preLoadData(); XenForo_Session::startPublicSession(); $this->visitor = XenForo_Visitor::getInstance(); /*$fc = new XenForo_FrontController(new XenForo_Dependencies_Public()); ob_start(); $fc->run(); $content = ob_get_clean();*/ }
public function renderRaw() { if ($this->_params['media']['media_type'] == 'video_embed') { $bbCodeParser = XenForo_BbCode_Parser::create(XenForo_BbCode_Formatter_Base::create('Base', array('view' => $this))); $html = new XenForo_BbCode_TextWrapper($this->_params['media']['media_tag'], $bbCodeParser); $this->_params['videoHtml'] = $html; } $this->_params['jQuerySource'] = XenForo_Dependencies_Public::getJquerySource(); $template = $this->createTemplateObject($this->_templateName, $this->_params); return $template; }
/** * Confirm agreement to revised set of terms and conditions on the site. */ public function actionTerms() { $agree = $this->_input->filterSingle('agree', XenForo_Input::UINT); if ($this->isConfirmedPost() && $agree) { $userId = XenForo_Visitor::getUserId(); $dw = XenForo_DataWriter::create('XenForo_DataWriter_User'); $dw->setExistingData($userId); $dw->set('agree_terms_th', 0); $dw->save(); return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $this->getDynamicRedirect(false, true)); } $viewParams = array('agree_to_terms' => true, 'tosUrl' => XenForo_Dependencies_Public::getTosUrl()); return $this->_getWrapper('account', 'terms', $this->responseView('XenForo_ViewPublic_Account_Terms', 'th_account_terms_agreetermsofserv', $viewParams)); }
public function actionDialog() { $styleId = $this->_input->filterSingle('style', XenForo_Input::UINT); if ($styleId) { $this->setViewStateChange('styleId', $styleId); } $dialog = $this->_input->filterSingle('dialog', XenForo_Input::STRING); $viewParams = array(); if ($dialog == 'media') { $viewParams['sites'] = $this->_getBbCodeModel()->getAllBbCodeMediaSites(); } $viewParams['jQuerySource'] = XenForo_Dependencies_Public::getJquerySource(); $viewParams['jQuerySourceLocal'] = XenForo_Dependencies_Public::getJquerySource(true); $viewParams['javaScriptSource'] = XenForo_Application::$javaScriptUrl; return $this->responseView('XenForo_ViewPublic_Editor_Dialog', 'editor_dialog_' . $dialog, $viewParams); }
protected function _setupExternalUser(array $data) { $this->_assertRegistrationActive(); if (XenForo_Dependencies_Public::getTosUrl() && !$this->_input->filterSingle('agree', XenForo_Input::UINT)) { throw $this->responseException($this->responseError(new XenForo_Phrase('you_must_agree_to_terms_of_service'))); } $writer = XenForo_DataWriter::create('XenForo_DataWriter_User'); $options = XenForo_Application::get('options'); if ($options->registrationDefaults) { $writer->bulkSet($options->registrationDefaults, array('ignoreInvalidFields' => true)); } $writer->bulkSet($data); $writer->set('user_group_id', XenForo_Model_User::$defaultRegisteredGroupId); $writer->set('language_id', XenForo_Visitor::getInstance()->get('language_id')); $customFields = $this->_input->filterSingle('custom_fields', XenForo_Input::ARRAY_SIMPLE); $customFieldsShown = array_keys($this->_getFieldModel()->getUserFields(array('registration' => true))); $writer->setCustomFields($customFields, $customFieldsShown); $auth = XenForo_Authentication_Abstract::create('XenForo_Authentication_NoPassword'); $writer->set('scheme_class', $auth->getClassName()); $writer->set('data', $auth->generate(''), 'xf_user_authenticate'); return $writer; }
/** * Static helper to execute a full request for SVG output. This will * instantiate the object, pull the data from $_REQUEST, and then output * the SVG. */ public static function run() { $dependencies = new XenForo_Dependencies_Public(); $dependencies->preLoadData(); $svgOutput = new self($_REQUEST); if ($svgOutput->handleIfModifiedSinceHeader($_SERVER)) { $svgOutput->displaySvg($svgOutput->renderSvg()); } }
/** * Default consturctor, instalizes XenForo classes and models. */ public function __construct() { $this->xfDir = dirname(__FILE__); require_once $this->xfDir . '/library/XenForo/Autoloader.php'; XenForo_Autoloader::getInstance()->setupAutoloader($this->xfDir . '/library'); XenForo_Application::initialize($this->xfDir . '/library', $this->xfDir); XenForo_Application::set('page_start_time', microtime(TRUE)); $deps = new XenForo_Dependencies_Public(); $deps->preLoadData(); // Disable XenForo's PHP error handler. XenForo_Application::disablePhpErrorHandler(); // Enable error logging for PHP. error_reporting(E_ALL & ~E_NOTICE); $this->models = new Models(); // TODO: Don't create models on init, only create them if they're being used (see Models::checkModel($model_name, $model)). $this->getModels()->setUserModel(XenForo_Model::create('XenForo_Model_User')); $this->getModels()->setAlertModel(XenForo_Model::create('XenForo_Model_Alert')); $this->getModels()->setUserFieldModel(XenForo_Model::create('XenForo_Model_UserField')); $this->getModels()->setAvatarModel(XenForo_Model::create('XenForo_Model_Avatar')); $this->getModels()->setModel('addon', XenForo_Model::create('XenForo_Model_AddOn')); $this->getModels()->setModel('database', XenForo_Application::get('db')); if ($this->hasAddon('XenResource') && $this->hasModel('XenResource_Model_Resource')) { $this->getModels()->setModel('resource', XenForo_Model::create('XenResource_Model_Resource')); } }
public function actionSteamRegister() { $this->_assertPostOnly(); $session = XenForo_Application::get('session'); if (!$session->get('steam_id')) { return $this->responseError('Lost Steam ID'); } // Get User Profile Data $id = $session->get('steam_id'); $sHelper = new Steam_Helper_Steam(); $steamProfileAPI = $sHelper->getSteamProfileAPI($id); $json_object = $sHelper->getJsonData($steamProfileAPI); $json_decoded = json_decode($json_object); if (!empty($json_decoded)) { $username = $json_decoded->response->players[0]->personaname; $avatar = $json_decoded->response->players[0]->avatarfull; } $userModel = $this->_getUserModel(); $userExternalModel = $this->_getUserExternalModel(); $doAssoc = $this->_input->filterSingle('associate', XenForo_Input::STRING) || $this->_input->filterSingle('force_assoc', XenForo_Input::UINT); if ($doAssoc) { $userId = $this->_associateExternalAccount(); $userExternalModel->updateExternalAuthAssociation('steam', $id, $userId); $this->updateUserStats($userId, $id); return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $this->getDynamicRedirect(false, false)); } $data = $this->_input->filter(array('username' => XenForo_Input::STRING, 'timezone' => XenForo_Input::STRING, 'email' => XenForo_Input::STRING, 'gender' => XenForo_Input::STRING, 'location' => XenForo_Input::STRING, 'dob_day' => XenForo_Input::UINT, 'dob_month' => XenForo_Input::UINT, 'dob_year' => XenForo_Input::UINT)); if (XenForo_Dependencies_Public::getTosUrl() && !$this->_input->filterSingle('agree', XenForo_Input::UINT)) { return $this->responseError(new XenForo_Phrase('you_must_agree_to_terms_of_service')); } $options = XenForo_Application::get('options'); $writer = XenForo_DataWriter::create('XenForo_DataWriter_User'); if ($options->registrationDefaults) { $writer->bulkSet($options->registrationDefaults, array('ignoreInvalidFields' => true)); } $writer->bulkSet($data); $auth = XenForo_Authentication_Abstract::create('XenForo_Authentication_NoPassword'); $writer->set('scheme_class', $auth->getClassName()); $writer->set('data', $auth->generate(''), 'xf_user_authenticate'); $writer->set('user_group_id', XenForo_Model_User::$defaultRegisteredGroupId); $writer->set('language_id', XenForo_Visitor::getInstance()->get('language_id')); $customFields = $this->_input->filterSingle('custom_fields', XenForo_Input::ARRAY_SIMPLE); $customFieldsShown = $this->_input->filterSingle('custom_fields_shown', XenForo_Input::STRING, array('array' => true)); $writer->setCustomFields($customFields, $customFieldsShown); $writer->advanceRegistrationUserState(false); $writer->preSave(); if ($options->get('registrationSetup', 'requireDob')) { // dob required if (!$data['dob_day'] || !$data['dob_month'] || !$data['dob_year']) { $writer->error(new XenForo_Phrase('please_enter_valid_date_of_birth'), 'dob'); } else { $userAge = $this->_getUserProfileModel()->getUserAge($writer->getMergedData(), true); if ($userAge < 1) { } else { if ($userAge < intval($options->get('registrationSetup', 'minimumAge'))) { // TODO: set a cookie to prevent re-registration attempts // But I don't care $writer->error(new XenForo_Phrase('sorry_you_too_young_to_create_an_account')); } } } } $writer->save(); $user = $writer->getMergedData(); if (!$options->steamAvatarReg) { unset($avatar); } if (!empty($avatar)) { $avatarFile = tempnam(XenForo_Helper_File::getTempDir(), 'xf'); $httpClient = XenForo_Helper_Http::getClient(preg_replace('/\\s+/', '%20', $avatar)); $response = $httpClient->request('GET'); if ($response->isSuccessful()) { file_put_contents($avatarFile, $response->getBody()); } // Apply Avatar try { $user = array_merge($user, $this->getModelFromCache('XenForo_Model_Avatar')->applyAvatar($user['user_id'], $avatarFile)); } catch (XenForo_Exception $e) { } @unlink($avatarFile); } $userExternalModel->updateExternalAuthAssociation('steam', $id, $user['user_id']); XenForo_Model_Ip::log($user['user_id'], 'user', $user['user_id'], 'register'); /* Cookies */ $userModel->setUserRememberCookie($user['user_id']); $session->changeUserId($user['user_id']); XenForo_Visitor::setup($user['user_id']); $this->updateUserStats($user['user_id'], $id); $redirect = $this->_input->filterSingle('redirect', XenForo_Input::STRING); $viewParams = array('user' => $user, 'redirect' => $redirect ? XenForo_Link::convertUriToAbsoluteUri($redirect) : '', 'steam' => true); return $this->responseView('XenForo_ViewPublic_Register_Process', 'register_process', $viewParams, $this->_getRegistrationContainerParams()); }
protected function _getWrapper($selected, XenForo_ControllerResponse_View $subView) { if ($this->_pagesCache !== null) { $pages = $this->_pagesCache; } else { $helpModel = $this->_getHelpModel(); $pages = $helpModel->preparePages($helpModel->getHelpPages()); } $viewParams = array('selected' => $selected, 'tosUrl' => XenForo_Dependencies_Public::getTosUrl(), 'pages' => $pages); $wrapper = $this->responseView('XenForo_ViewPublic_Help_Wrapper', 'help_wrapper', $viewParams); $wrapper->subView = $subView; return $wrapper; }
/** * Static helper to execute a full request for CSS output. This will * instantiate the object, pull the data from $_REQUEST, and then output * the CSS. */ public static function run() { $dependencies = new XenForo_Dependencies_Public(); $dependencies->preLoadData(); $class = XenForo_Application::resolveDynamicClass(__CLASS__); $cssOutput = new $class($_REQUEST); if ($cssOutput->handleIfModifiedSinceHeader($_SERVER)) { $cssOutput->displayCss($cssOutput->renderCss()); } }
<?php $startTime = microtime(true); $fileDir = dirname(__FILE__); @set_time_limit(120); ignore_user_abort(true); require $fileDir . '/library/XenForo/Autoloader.php'; XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library'); XenForo_Application::initialize($fileDir . '/library', $fileDir); XenForo_Application::set('page_start_time', $startTime); $dependencies = new XenForo_Dependencies_Public(); $dependencies->preLoadData(); /** @var XenForo_Model_Deferred $deferredModel */ $deferredModel = XenForo_Model::create('XenForo_Model_Deferred'); $deferredModel->setNextDeferredTime(XenForo_Application::$time + 30); $remaining = $deferredModel->run(false); $output = array('moreDeferred' => $remaining ? true : false); header('Content-Type: application/json; charset=UTF-8'); header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); echo json_encode($output);
<?php $startTime = microtime(true); $fileDir = dirname(__FILE__); require $fileDir . '/library/XenForo/Autoloader.php'; XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library'); XenForo_Application::initialize($fileDir . '/library', $fileDir); XenForo_Application::set('page_start_time', $startTime); $deps = new XenForo_Dependencies_Public(); $deps->preLoadData(); $response = new Zend_Controller_Response_Http(); $processor = new XenForo_UserUpgradeProcessor_PayPal(); $processor->initCallbackHandling(new Zend_Controller_Request_Http()); $logExtra = array(); $logMessage = false; try { if (!$processor->validateRequest($logMessage)) { $logType = 'error'; $response->setHttpResponseCode(500); } else { if (!$processor->validatePreConditions($logMessage)) { $logType = 'error'; } else { $logType = 'info'; $logMessage = $processor->processTransaction(); } } if (is_array($logMessage)) { $temp = $logMessage; list($logType, $logMessage) = $temp; }
/** * Registers a new account (or associates with an existing one) using Facebook. * * @return XenForo_ControllerResponse_Abstract */ public function actionFacebookRegister() { $this->_assertPostOnly(); $fbToken = $this->_input->filterSingle('fb_token', XenForo_Input::STRING); $fbUser = XenForo_Helper_Facebook::getUserInfo($fbToken); if (empty($fbUser['id'])) { return $this->responseError(new XenForo_Phrase('error_occurred_while_connecting_with_facebook')); } $userModel = $this->_getUserModel(); $userExternalModel = $this->_getUserExternalModel(); $doAssoc = $this->_input->filterSingle('associate', XenForo_Input::STRING) || $this->_input->filterSingle('force_assoc', XenForo_Input::UINT); if ($doAssoc) { $associate = $this->_input->filter(array('associate_login' => XenForo_Input::STRING, 'associate_password' => XenForo_Input::STRING)); $loginModel = $this->_getLoginModel(); if ($loginModel->requireLoginCaptcha($associate['associate_login'])) { return $this->responseError(new XenForo_Phrase('your_account_has_temporarily_been_locked_due_to_failed_login_attempts')); } $userId = $userModel->validateAuthentication($associate['associate_login'], $associate['associate_password'], $error); if (!$userId) { $loginModel->logLoginAttempt($associate['associate_login']); return $this->responseError($error); } $userExternalModel->updateExternalAuthAssociation('facebook', $fbUser['id'], $userId); XenForo_Helper_Facebook::setUidCookie($fbUser['id']); XenForo_Application::get('session')->changeUserId($userId); XenForo_Visitor::setup($userId); $redirect = XenForo_Application::get('session')->get('fbRedirect'); XenForo_Application::get('session')->remove('fbRedirect'); if (!$redirect) { $redirect = $this->getDynamicRedirect(false, false); } return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $redirect); } $this->_assertRegistrationActive(); $data = $this->_input->filter(array('username' => XenForo_Input::STRING, 'timezone' => XenForo_Input::STRING)); if (XenForo_Dependencies_Public::getTosUrl() && !$this->_input->filterSingle('agree', XenForo_Input::UINT)) { return $this->responseError(new XenForo_Phrase('you_must_agree_to_terms_of_service')); } $options = XenForo_Application::get('options'); $gender = ''; if (isset($fbUser['gender'])) { switch ($fbUser['gender']) { case 'man': case 'male': $gender = 'male'; break; case 'woman': case 'female': $gender = 'female'; break; } } $writer = XenForo_DataWriter::create('XenForo_DataWriter_User'); if ($options->registrationDefaults) { $writer->bulkSet($options->registrationDefaults, array('ignoreInvalidFields' => true)); } $writer->bulkSet($data); $writer->bulkSet(array('gender' => $gender, 'email' => $fbUser['email'], 'location' => isset($fbUser['location']['name']) ? $fbUser['location']['name'] : '')); if (!empty($fbUser['birthday'])) { $birthdayParts = explode('/', $fbUser['birthday']); if (count($birthdayParts) == 3) { list($month, $day, $year) = $birthdayParts; $userAge = $this->_getUserProfileModel()->calculateAge($year, $month, $day); if ($userAge < intval($options->get('registrationSetup', 'minimumAge'))) { // TODO: set a cookie to prevent re-registration attempts return $this->responseError(new XenForo_Phrase('sorry_you_too_young_to_create_an_account')); } $writer->bulkSet(array('dob_year' => $year, 'dob_month' => $month, 'dob_day' => $day)); } } if (!empty($fbUser['website'])) { list($website) = preg_split('/\\r?\\n/', $fbUser['website']); if ($website && Zend_Uri::check($website)) { $writer->set('homepage', $website); } } $auth = XenForo_Authentication_Abstract::create('XenForo_Authentication_NoPassword'); $writer->set('scheme_class', $auth->getClassName()); $writer->set('data', $auth->generate(''), 'xf_user_authenticate'); $writer->set('user_group_id', XenForo_Model_User::$defaultRegisteredGroupId); $writer->set('language_id', XenForo_Visitor::getInstance()->get('language_id')); $writer->advanceRegistrationUserState(false); $writer->preSave(); // TODO: option for extra user group $writer->save(); $user = $writer->getMergedData(); $avatarFile = tempnam(XenForo_Helper_File::getTempDir(), 'xf'); if ($avatarFile) { $data = XenForo_Helper_Facebook::getUserPicture($fbToken); if ($data && $data[0] != '{') { file_put_contents($avatarFile, $data); try { $user = array_merge($user, $this->getModelFromCache('XenForo_Model_Avatar')->applyAvatar($user['user_id'], $avatarFile)); } catch (XenForo_Exception $e) { } } @unlink($avatarFile); } $userExternalModel->updateExternalAuthAssociation('facebook', $fbUser['id'], $user['user_id']); XenForo_Model_Ip::log($user['user_id'], 'user', $user['user_id'], 'register'); XenForo_Helper_Facebook::setUidCookie($fbUser['id']); XenForo_Application::get('session')->changeUserId($user['user_id']); XenForo_Visitor::setup($user['user_id']); $redirect = $this->_input->filterSingle('redirect', XenForo_Input::STRING); $viewParams = array('user' => $user, 'redirect' => $redirect ? XenForo_Link::convertUriToAbsoluteUri($redirect) : '', 'facebook' => true); return $this->responseView('XenForo_ViewPublic_Register_Process', 'register_process', $viewParams, $this->_getRegistrationContainerParams()); }
/** * @return XenForo_ControllerResponse_Abstract */ public function actionEditor() { $styleId = $this->_input->filterSingle('style', XenForo_Input::UINT); if ($styleId) { $this->setViewStateChange('styleId', $styleId); } $viewParams = array('jQuerySource' => XenForo_Dependencies_Public::getJquerySource(), 'jQuerySourceLocal' => XenForo_Dependencies_Public::getJquerySource(true), 'javaScriptSource' => XenForo_Application::$javaScriptUrl); $type = $this->_input->filterSingle('type', XenForo_Input::STRING); $url = $this->_input->filterSingle('url', XenForo_Input::STRING); if (!in_array($type, array('album', 'content'))) { $type = 'album'; } if (empty($url)) { return $this->responseView('sonnb_XenGallery_ViewPublic_Editor_Attach', 'sonnb_xengallery_editor_' . $type, $viewParams); } else { $id = $this->_input->filterSingle('url', XenForo_Input::UINT); $size = $this->_input->filterSingle('size', XenForo_Input::STRING); if (!in_array($size, $this->_allowedBBCodeSizes)) { $size = sonnb_XenGallery_Model_ContentData::CONTENT_FILE_TYPE_MEDIUM; } $message = $bbcode = ''; if ($id) { switch ($type) { case 'content': $fetchOptions = array('join' => sonnb_XenGallery_Model_Content::FETCH_ALBUM); $content = $this->_getContentModel()->getContentById($id, $fetchOptions); $content = $this->_getContentModel()->prepareContent($content, $fetchOptions); if (empty($content)) { $message = new XenForo_Phrase('sonnb_xengallery_requested_photo_video_does_not_exist'); } elseif (!$this->_getContentModel()->canViewContentAndContainer($content, $content['album'], $errorKey)) { $message = new XenForo_Phrase($errorKey); } else { if (!empty($content['content_id'])) { switch ($content['content_type']) { case sonnb_XenGallery_Model_Photo::$contentType: $bbcode = "[photo=\"{$size}\"]{$content['content_id']}[/photo]"; break; case sonnb_XenGallery_Model_Video::$contentType: $bbcode = "[video]{$content['content_id']}[/video]"; break; } } } break; case 'album': default: $album = $this->_getAlbumModel()->getAlbumById($id); $album = $this->_getAlbumModel()->prepareAlbum($album); if (empty($album)) { $message = new XenForo_Phrase('sonnb_xengallery_requested_album_does_not_exist'); } elseif (!$this->_getAlbumModel()->canViewAlbum($album, $errorKey)) { $message = new XenForo_Phrase($errorKey); } else { if (!empty($album['album_id'])) { $bbcode = "[album=\"{$size}\"]{$album['album_id']}[/album]"; } } break; } } else { $url = $this->_getValidUrl($url); $routeUrlMatch = $this->parseRouteUrl($url); if ($routeUrlMatch) { switch ($type) { case 'content': if (!empty($routeUrlMatch['params']['content_id'])) { $contentId = intval($routeUrlMatch['params']['content_id']); $fetchOptions = array('join' => sonnb_XenGallery_Model_Content::FETCH_ALBUM); $content = $this->_getContentModel()->getContentById($contentId, $fetchOptions); $content = $this->_getContentModel()->prepareContent($content, $fetchOptions); if (empty($content)) { $message = new XenForo_Phrase('sonnb_xengallery_requested_photo_video_does_not_exist'); } elseif (!$this->_getContentModel()->canViewContentAndContainer($content, $content['album'], $errorKey)) { $message = new XenForo_Phrase($errorKey); } else { if (!empty($content['content_id'])) { switch ($content['content_type']) { case sonnb_XenGallery_Model_Photo::$contentType: $bbcode = "[photo=\"{$size}\"]{$content['content_id']}[/photo]"; break; case sonnb_XenGallery_Model_Video::$contentType: $bbcode = "[video]{$content['content_id']}[/video]"; break; } } } } else { $message = new XenForo_Phrase('sonnb_xengallery_your_url_is_not_valid_photo_video_url'); } break; case 'album': if (!empty($routeUrlMatch['params']['album_id'])) { $albumId = intval($routeUrlMatch['params']['album_id']); $album = $this->_getAlbumModel()->getAlbumById($albumId); $album = $this->_getAlbumModel()->prepareAlbum($album); if (empty($album)) { $message = new XenForo_Phrase('sonnb_xengallery_requested_album_does_not_exist'); } elseif (!$this->_getAlbumModel()->canViewAlbum($album, $errorKey)) { $message = new XenForo_Phrase($errorKey); } else { if (!empty($album['album_id'])) { $bbcode = "[album=\"{$size}\"]{$album['album_id']}[/album]"; } } } else { $message = new XenForo_Phrase('sonnb_xengallery_your_url_is_not_valid_album_url'); } break; default: $message = new XenForo_Phrase('sonnb_xengallery_your_url_is_invalid'); break; } } else { $message = new XenForo_Phrase('sonnb_xengallery_your_url_is_invalid'); } } return $this->responseView('sonnb_XenGallery_ViewPublic_Editor_Insert', '', array('message' => $message, 'bbcode' => $bbcode)); } }
/** * Static helper to execute a full request for proxy output */ public static function run() { $dependencies = new XenForo_Dependencies_Public(); $dependencies->preLoadData(); $class = XenForo_Application::resolveDynamicClass(__CLASS__); $proxyOutput = new $class($_REQUEST, $dependencies); $proxyOutput->output(); }
public function actionExternalRegister() { $this->_assertPostOnly(); $redirect = $this->_bdApiConsumer_getRedirect(); $userModel = $this->_getUserModel(); /** @var bdApiConsumer_XenForo_Model_UserExternal $userExternalModel */ $userExternalModel = $this->_getUserExternalModel(); $providerCode = $this->_input->filterSingle('provider', XenForo_Input::STRING); $provider = bdApiConsumer_Option::getProviderByCode($providerCode); if (empty($provider)) { return $this->responseNoPermission(); } $doAssoc = $this->_input->filterSingle('associate', XenForo_Input::STRING) || $this->_input->filterSingle('force_assoc', XenForo_Input::UINT); $userId = 0; if ($doAssoc) { $associate = $this->_input->filter(array('associate_login' => XenForo_Input::STRING, 'associate_password' => XenForo_Input::STRING)); $loginModel = $this->_getLoginModel(); if ($loginModel->requireLoginCaptcha($associate['associate_login'])) { return $this->responseError(new XenForo_Phrase('your_account_has_temporarily_been_locked_due_to_failed_login_attempts')); } $userId = $userModel->validateAuthentication($associate['associate_login'], $associate['associate_password'], $error); if (!$userId) { $loginModel->logLoginAttempt($associate['associate_login']); return $this->responseError($error); } } $refreshToken = $this->_input->filterSingle('refresh_token', XenForo_Input::STRING); $externalToken = bdApiConsumer_Helper_Api::getAccessTokenFromRefreshToken($provider, $refreshToken); if (empty($externalToken)) { return $this->responseError(new XenForo_Phrase('bdapi_consumer_error_occurred_while_connecting_with_x', array('provider' => $provider['name']))); } $externalVisitor = bdApiConsumer_Helper_Api::getVisitor($provider, $externalToken['access_token']); if (empty($externalVisitor)) { return $this->responseError(new XenForo_Phrase('bdapi_consumer_error_occurred_while_connecting_with_x', array('provider' => $provider['name']))); } if (empty($externalVisitor['user_email'])) { return $this->responseError(new XenForo_Phrase('bdapi_consumer_x_returned_unknown_error', array('provider' => $provider['name']))); } if (isset($externalVisitor['user_is_valid']) and isset($externalVisitor['user_is_verified'])) { if (empty($externalVisitor['user_is_valid']) or empty($externalVisitor['user_is_verified'])) { return $this->responseError(new XenForo_Phrase('bdapi_consumer_x_account_not_good_standing', array('provider' => $provider['name']))); } } if ($doAssoc) { $userExternalModel->bdApiConsumer_updateExternalAuthAssociation($provider, $externalVisitor['user_id'], $userId, array_merge($externalVisitor, array('token' => $externalToken))); XenForo_Application::getSession()->changeUserId($userId); XenForo_Visitor::setup($userId); return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $redirect); } if (bdApiConsumer_Option::get('bypassRegistrationActive')) { // do not check for registration active option } else { $this->_assertRegistrationActive(); } $data = $this->_input->filter(array('username' => XenForo_Input::STRING, 'timezone' => XenForo_Input::STRING)); // TODO: custom fields if (XenForo_Dependencies_Public::getTosUrl() && !$this->_input->filterSingle('agree', XenForo_Input::UINT)) { return $this->responseError(new XenForo_Phrase('you_must_agree_to_terms_of_service')); } $user = bdApiConsumer_Helper_AutoRegister::createUser($data, $provider, $externalToken, $externalVisitor, $this->_getUserExternalModel()); XenForo_Application::getSession()->changeUserId($user['user_id']); XenForo_Visitor::setup($user['user_id']); $viewParams = array('user' => $user, 'redirect' => $redirect); return $this->responseView('XenForo_ViewPublic_Register_Process', 'register_process', $viewParams, $this->_getRegistrationContainerParams()); }