protected function _preSave() { parent::_preSave(); $code = $this->get('affiliate_code'); if (empty($code)) { $this->setAffiliateCode(); } if ($this->isInsert()) { $invitationModel = $this->_getInvitationModel(); $cookieVal = XenForo_Helper_Cookie::getCookie('ref'); if ($cookieVal) { $cookieParts = explode('_', $cookieVal); if (isset($cookieParts[1])) { $ref = $cookieParts[1]; $invitation = false; if ($cookieParts[0] == 'u') { $invitation = $invitationModel->getUserByCode($ref); } else { if ($cookieParts[0] == 'i') { $invitation = $invitationModel->getInvitationByCode($ref); } } if ($invitation) { if ($cookieParts[0] == 'i') { self::$_invitationId = $invitation['invite_id']; } $this->set('ref_user_id', $invitation['user_id']); } } } } }
public function getBlocks($getCookies = false, $layout1 = false, $layout2 = false, $layout3 = false) { if ($layout1) { if ($layout1 && ($layout = $this->getModelFromCache('EWRporta_Model_Layouts')->getLayoutById($layout1)) || $layout2 && ($layout = $this->getModelFromCache('EWRporta_Model_Layouts')->getLayoutById($layout2)) || $layout3 && ($layout = $this->getModelFromCache('EWRporta_Model_Layouts')->getLayoutById($layout3))) { $layout = unserialize($layout['blocks']); } elseif ($layout1 != 'portal') { return array(); } } $blocks = $this->fetchAllKeyed("\n\t\t\tSELECT *, 'disabled' AS position\n\t\t\t\tFROM EWRporta_blocks\n\t\t\tWHERE active = 1\n\t\t\tORDER BY block_id ASC\n\t\t", 'block_id'); if (!empty($layout)) { $_blocks = array(); foreach ($layout as $key => $position) { if (!empty($blocks[$key])) { $_blocks[$key] = array('position' => $position) + $blocks[$key]; } } $blocks = $_blocks + $blocks; } if ($getCookies && ($cookies = XenForo_Helper_Cookie::getCookie('EWRporta'))) { $_blocks = array(); foreach ($cookies as $key => $cookie) { if (!empty($blocks[$key]) && !empty($cookie['position'])) { $position = $blocks[$key]['locked'] ? $blocks[$key]['position'] : $cookie['position']; $_blocks[$key] = array('position' => $position) + $blocks[$key]; } } $blocks = $_blocks + $blocks; } return $blocks; }
public static function getVisitor(XenForo_Visitor &$visitor) { if (class_exists('Sedo_DetectBrowser_Listener_Visitor') && isset($visitor->getBrowser['isMobile'])) { //External Addon $isMobile = $visitor->getBrowser['isMobile']; $isTablet = $visitor->getBrowser['isTablet']; } else { //XenForo $isMobile = XenForo_Visitor::isBrowsingWith('mobile'); $isTablet = ''; } if (!empty($isMobile)) { $options = XenForo_Application::get('options'); $mobileStyle = $options->sedoDefaultMobileStyle; if (!empty($isTablet)) { $mobileStyle = $options->sedoDefaultTabletStyle; } if (!empty($visitor['user_id'])) { //Only for members => guests use the default style option (unless they have choosen to use another style =>cookie: style_id) XenForo_Helper_Cookie::deleteCookie('style_id'); //case: visitor changed the default style, then log $getCookie = XenForo_Helper_Cookie::getCookie('mobile_style_id'); // the mobile_style_id is set here: Sedo_MobileStyleSelector_ControllerPublic_Misc if ($getCookie == false) { //No cookie => continue to force mobile style $visitor['style_id'] = $mobileStyle; } } //Force style if ($options->sedoForceMobileStyle && $visitor->style_id != $mobileStyle) { $visitor['style_id'] = $mobileStyle; } } }
public function loadInput($input) { $prefs = ['pref_location' => $input->filterSingle('pref_location', XenForo_Input::STRING, ['default' => '']), 'pref_distance' => $input->filterSingle('pref_distance', XenForo_Input::UINT, ['default' => 0]), 'pref_city' => $input->filterSingle('pref_city', XenForo_Input::STRING, ['default' => '']), 'pref_country' => $input->filterSingle('pref_country', XenForo_Input::STRING, ['default' => '']), 'pref_lat' => $input->filterSingle('pref_lat', XenForo_Input::FLOAT, ['default' => '0']), 'pref_lng' => $input->filterSingle('pref_lng', XenForo_Input::FLOAT, ['default' => '0']), 'pref_cats' => $input->filterSingle('pref_cats', XenForo_Input::ARRAY_SIMPLE, ['default' => [7]]), 'pref_subcats' => $input->filterSingle('pref_subcats', XenForo_Input::ARRAY_SIMPLE, ['default' => [31]]), 'pref_alert_on_new' => $input->filterSingle('pref_alert_on_new', XenForo_Input::INT, ['default' => 1]), 'pref_email_on_new' => $input->filterSingle('pref_email_on_new', XenForo_Input::INT, ['default' => 1]), 'pref_cat' => 0, 'pref_subcat' => 0]; $subcat = $cat = 0; foreach (array_keys($prefs['pref_cats']) as $val) { $cat += (int) $val; } foreach (array_keys($prefs['pref_subcats']) as $val) { $subcat += (int) $val; } $saved_prefs = ['pref_location' => '', 'pref_distance' => 0, 'pref_city' => '', 'pref_country' => '', 'pref_lat' => 0, 'pref_lng' => 0, 'pref_cats' => 7, 'pref_subcats' => 31, 'pref_alert_on_new' => 1, 'pref_email_on_new' => 1, 'pref_cat' => 0, 'pref_subcat' => 0]; if ($this->userId > 0) { //use data $_db = $_db = XenForo_Application::getDb(); $saved_prefs = $_db->fetchRow("SELECT * FROM geek_listings_prefs WHERE pref_user_id=? AND pref_type_id=? ", [$this->userId, $this->typeId]); } else { //use cookies? $test = XenForo_Helper_Cookie::getCookie('GeekListing_prefs_' . $this->type['pref_type_id']); if ($test) { $saved_prefs = unserialize($test); } } $save = $prefs['pref_cat'] != $cat || $prefs['pref_subcat'] != $subcat || $prefs['pref_location'] != $saved_prefs['pref_location'] || $prefs['pref_lat'] != $saved_prefs['pref_lat'] || $prefs['pref_lng'] != $saved_prefs['pref_lng'] || $prefs['pref_alert_on_new'] != $saved_prefs['pref_alert_on_new'] || $prefs['pref_email_on_new'] != $saved_prefs['pref_email_on_new'] || $prefs['pref_city'] != $saved_prefs['pref_city'] || $prefs['pref_country'] != $saved_prefs['pref_country']; $prefs['pref_cat'] = $cat; $prefs['pref_subcat'] = $subcat; if ($save) { $this->save($prefs); } }
public function actionRevert() { if ($cookies = XenForo_Helper_Cookie::getCookie('EWRporta')) { foreach ($cookies as $key => $cookie) { XenForo_Helper_Cookie::deleteCookie('EWRporta[' . $key . '][order]'); XenForo_Helper_Cookie::deleteCookie('EWRporta[' . $key . '][position]'); } } return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('portal/blocks')); }
/** * Fetches $styleId from cookie if it's available, or returns the default style ID. * * @param int $allowMaster If true, allow the master style to be returned * * @return integer */ public function getStyleIdFromCookie($allowMaster = true) { $styleId = XenForo_Helper_Cookie::getCookie('edit_style_id'); if ($styleId === false) { $styleId = XenForo_Application::debugMode() ? 0 : XenForo_Application::get('options')->defaultStyleId; } if ((!$allowMaster || !XenForo_Application::debugMode()) && !$styleId) { $styleId = XenForo_Application::get('options')->defaultStyleId; } return $styleId; }
public function actionIndex() { $class = $this->_input->filterSingle('class', XenForo_Input::STRING); if ($class) { return $this->responseReroute(__CLASS__, 'view'); } $addOns = $this->_getAddOnModel()->getAllAddOns(); $xenOptions = XenForo_Application::get('options'); $addOnSelected = ''; if ($xenOptions->th_dataWriters_enableAddOnChooser) { $addOnId = $this->_input->filterSingle('addon_id', XenForo_Input::STRING); if (!empty($GLOBALS['ThemeHouse_DataWriters_Route_PrefixAdmin_DataWriters']) && !$addOnId) { $addOnId = XenForo_Helper_Cookie::getCookie('edit_addon_id'); } if ($addOnId && !empty($addOns[$addOnId])) { XenForo_Helper_Cookie::setCookie('edit_addon_id', $addOnId); $addOn = $addOns[$addOnId]; $addOnSelected = $addOnId; $this->canonicalizeRequestUrl(XenForo_Link::buildAdminLink('add-ons/data-writers', $addOn)); } else { $this->canonicalizeRequestUrl(XenForo_Link::buildAdminLink('add-ons/data-writers')); XenForo_Helper_Cookie::deleteCookie('edit_addon_id'); } } $addOns['XenForo'] = array('addon_id' => 'XenForo', 'active' => true, 'title' => 'XenForo'); $rootPath = XenForo_Autoloader::getInstance()->getRootDir(); $dataWriters = array(); $dataWriterCount = 0; $totalDataWriters = 0; foreach ($addOns as $addOnId => $addOn) { $dataWriterPath = $rootPath . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $addOnId) . DIRECTORY_SEPARATOR . 'DataWriter'; if (!file_exists($dataWriterPath)) { continue; } $directory = new RecursiveDirectoryIterator($dataWriterPath); $iterator = new RecursiveIteratorIterator($directory); $regex = new RegexIterator($iterator, '/^.+\\.php$/i', RecursiveRegexIterator::GET_MATCH); foreach ($regex as $fileinfo) { $classPath = str_replace($rootPath, '', $fileinfo[0]); $classPath = pathinfo($classPath, PATHINFO_DIRNAME) . DIRECTORY_SEPARATOR . pathinfo($classPath, PATHINFO_FILENAME); $dirs = explode(DIRECTORY_SEPARATOR, $classPath); $dirs = array_filter($dirs); $className = implode('_', $dirs); if (!$xenOptions->th_dataWriters_enableAddOnChooser || !$addOnSelected || $addOnId == $addOnSelected) { $dataWriters[$addOnId][$className] = array('class' => $className, 'filename' => pathinfo($classPath, PATHINFO_FILENAME)); $dataWriterCount++; } $totalDataWriters++; } } unset($addOns['XenForo']); $viewParams = array('addOns' => $addOns, 'addOnSelected' => $addOnSelected, 'dataWriters' => $dataWriters, 'dataWriterCount' => $dataWriterCount, 'totalDataWriters' => $totalDataWriters); return $this->responseView('ThemeHouse_DataWriters_ViewAdmin_DataWriter_List', 'th_datawriter_list_datawriters', $viewParams); }
/** * Fetches $styleId from cookie if it's available, or returns the default style ID. * * @return integer */ protected function _getStyleIdFromCookie() { $styleId = XenForo_Helper_Cookie::getCookie('edit_style_id'); if ($styleId === false) { $styleId = XenForo_Application::debugMode() ? 0 : XenForo_Application::get('options')->defaultStyleId; } if (!XenForo_Application::debugMode() && !$styleId) { $styleId = XenForo_Application::get('options')->defaultStyleId; } return $styleId; }
/** * Gets the selected inline mod IDs. * * @param boolean $fromCookie True to read from the cookie input * * @return array */ public function getInlineModIds($fromCookie = true) { $ids = $this->_input->filterSingle($this->inlineModKey, XenForo_Input::UINT, array('array' => true)); if ($fromCookie) { $cookie = XenForo_Helper_Cookie::getCookie('inlinemod_' . $this->inlineModKey); if (is_string($cookie)) { $ids = array_merge($ids, explode(',', $cookie)); $ids = array_map('intval', $ids); $ids = array_unique($ids); } } return $ids; }
public function setupVisitorFromUpgradeCookie() { $cookie = XenForo_Helper_Cookie::getCookie('upgrade'); if (!$cookie) { return false; } /** @var $userModel XenForo_Model_User */ $userModel = $this->getModelFromCache('XenForo_Model_User'); $userId = $userModel->loginUserByRememberCookie($cookie); if ($userId) { XenForo_Visitor::setup($userId); } return $userId; }
public static function getContentSort(&$order, &$orderDirection, &$defaultOrder = null, &$defaultOrderDirection = null) { $xenOptions = XenForo_Application::getOptions(); $defaultOrder = $xenOptions->sonnbXG_sortPhoto; switch ($defaultOrder) { case 'content_updated_date': case 'content_date': case 'comment_count': case 'view_count': case 'likes': case 'recently_liked': $defaultOrderDirection = 'desc'; break; case 'position': default: $defaultOrder = 'position'; $defaultOrderDirection = 'asc'; break; } $orderCookie = XenForo_Helper_Cookie::getCookie('sonnbXG_content_order'); if (empty($order)) { if ($orderCookie === false) { $order = $defaultOrder; XenForo_Helper_Cookie::setCookie('sonnbXG_content_order', $order); } else { $order = $orderCookie; } } elseif ($orderCookie !== $order) { XenForo_Helper_Cookie::setCookie('sonnbXG_content_order', $order); } switch ($order) { case 'content_updated_date': case 'content_date': case 'comment_count': case 'view_count': case 'likes': case 'recently_liked': $defaultOrderDirection = 'desc'; break; case 'position': default: $defaultOrderDirection = 'asc'; break; } if (empty($orderDirection)) { $orderDirection = $defaultOrderDirection; } }
public function actionRunDeferred() { $redirect = $this->getDynamicRedirectIfNot(XenForo_Link::buildAdminLink('tools/run-deferred')); $input = $this->_input->filter(array('execute' => XenForo_Input::UINT)); /* @var $deferModel XenForo_Model_Deferred */ $deferModel = $this->getModelFromCache('XenForo_Model_Deferred'); $status = ''; $canCancel = false; if (XenForo_Helper_Cookie::getCookie('cancel_defer')) { $deferModel->cancelFirstRunnableDeferred(); XenForo_Helper_Cookie::deleteCookie('cancel_defer'); } if ($input['execute'] && $this->_request->isPost()) { $continued = $deferModel->run(true, null, $status, $canCancel); if (!$continued) { return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $redirect); } } $viewParams = array('status' => $status, 'canCancel' => $canCancel, 'redirect' => $redirect); $containerParams = array('containerTemplate' => 'PAGE_CONTAINER_SIMPLE', 'allowManualDeferredRun' => false); return $this->responseView('XenForo_ViewAdmin_Tools_RunDeferred', 'tools_run_deferred', $viewParams, $containerParams); }
/** * * @see XenForo_ControllerAdmin_Phrase::_getPhraseAddEditResponse() */ protected function _getPhraseAddEditResponse(array $phrase, $inputLanguageId, $inputPhraseId = 0) { $response = parent::_getPhraseAddEditResponse($phrase, $inputLanguageId, $inputPhraseId = 0); if ($response instanceof XenForo_ControllerResponse_View) { $addOnId = $this->_input->filterSingle('addon_id', XenForo_Input::STRING); if (!empty($GLOBALS['XenForo_Route_PrefixAdmin_Phrases']) && !$addOnId) { $addOnId = XenForo_Helper_Cookie::getCookie('edit_addon_id'); } if ($addOnId && empty($phrase['addon_id'])) { $template['addon_id'] = $addOnId; $response->params['addOnSelected'] = $addOnId; } $phrase = $response->params['phrase']; if (empty($phrase['title'])) { $title = $this->_input->filterSingle('title', XenForo_Input::STRING); $response->params['phrase']['title'] = $title; } if (empty($response->params['redirect'])) { $response->params['redirect'] = $this->getDynamicRedirect(); } } return $response; }
protected function _preDispatch($action) { parent::_preDispatch($action); $this->_visitor = XenForo_Visitor::getInstance(); if (!$this->_type['type_perms']) { $this->_type['type_perms'] = []; } else { $this->_type['type_perms'] = unserialize($this->_type['type_perms']); } if ($this->_visitor['user_id']) { $this->_filter = $this->_getFilterModel()->getByUserIdAndType($this->_visitor['user_id'], $this->_type['type_id']); } else { $test = XenForo_Helper_Cookie::getCookie('GeekListing_filter_' . $this->_type['type_id']); if ($test !== false) { $this->_filter = @unserialize($test); } } foreach ($this->_type['type_perms'] as $k => $v) { $yes = false; if (is_array($v) && in_array(-1, $v)) { $yes = true; } else { if (is_array($v)) { foreach ($v as $p) { if ($this->_visitor->isMemberOf($p, true)) { $yes = true; break; } } } else { $yes = $this->_visitor->isMemberOf($v, true); } } $this->_perms[$k] = $yes; } }
public function actionMultiQuote() { $input = $this->_input->filter(array('formId' => XenForo_Input::STRING, 'quoteSelections' => array(XenForo_Input::STRING, 'array' => true))); if ($this->_request->has('postIds')) { $mode = 'quote'; $quoteIds = $this->_input->filterSingle('postIds', array(XenForo_Input::STRING, 'array' => true)); $postIds = array(); foreach ($quoteIds as $quoteId) { $postId = preg_replace('/^(\\d+)(-\\d+)?$/', '$1', $quoteId); $postIds[$postId] = $postId; } } else { $mode = 'overlay'; $cookieValue = XenForo_Helper_Cookie::getCookie('MultiQuote'); $postIds = explode(',', $cookieValue); } if (empty($postIds)) { return $this->responseError(new XenForo_Phrase('no_messages_selected')); } $visitor = XenForo_Visitor::getInstance(); $threadModel = $this->_getThreadModel(); $postModel = $this->_getPostModel(); $posts = $postModel->getPostsByIds($postIds, array('join' => XenForo_Model_Post::FETCH_USER | XenForo_Model_Post::FETCH_THREAD | XenForo_Model_Post::FETCH_FORUM, 'permissionCombinationId' => $visitor['permission_combination_id'])); // permission filter foreach ($posts as $postId => $post) { $post['permissions'] = XenForo_Permission::unserializePermissions($post['node_permission_cache']); if (!$postModel->canViewPostAndContainer($post, $post, $post, $null, $post['permissions'])) { unset($posts[$postId]); } } $viewParams = array('formId' => $input['formId']); $bbCodeModel = $this->getModelFromCache('XenForo_Model_BbCode'); if ($mode == 'overlay') { $datedPosts = array(); foreach ($posts as $postId => $post) { $i = 1; $quoteId = $postId . '-1'; if (array_key_exists($quoteId, $input['quoteSelections'])) { do { $message = $bbCodeModel->getBbCodeFromSelectionHtml($input['quoteSelections'][$quoteId]); $datedPosts[$post['post_date']][$quoteId] = $post; $datedPosts[$post['post_date']][$quoteId]['message'] = $message; $quoteId = $postId . '-' . ++$i; } while (array_key_exists($quoteId, $input['quoteSelections'])); } else { $datedPosts[$post['post_date']][$postId] = $post; } } ksort($datedPosts); $posts = array(); foreach ($datedPosts as $postDate => $postIds) { foreach ($postIds as $postId => $post) { $posts[$postId] = $post; } } if (empty($posts)) { // clear the cookie, as its value is invalid or unusable XenForo_Helper_Cookie::deleteCookie('MultiQuote'); return $this->responseError(new XenForo_Phrase('selected_messages_not_found')); } $viewParams['posts'] = $posts; return $this->responseView('XenForo_ViewPublic_Thread_MultiQuoteOverlay', 'thread_multi_quote_overlay', $viewParams); } else { $orderedPosts = array(); foreach ($quoteIds as $quoteId) { $postId = $this->_getPostIdFromQuoteId($quoteId); if (isset($posts[$postId])) { $orderedPosts[$quoteId] = $posts[$postId]; if (array_key_exists($quoteId, $input['quoteSelections'])) { $message = $bbCodeModel->getBbCodeFromSelectionHtml($input['quoteSelections'][$quoteId]); $orderedPosts[$quoteId]['message'] = $message; } } } $viewParams['posts'] = $orderedPosts; $quotes = ''; foreach ($orderedPosts as $post) { $quotes .= trim($postModel->getQuoteTextForPost($post)) . "\n\n"; } $viewParams['quote'] = trim($quotes); return $this->responseView('XenForo_ViewPublic_Thread_MultiQuote', '', $viewParams); } }
public function actionTwoStepTrustedDisable() { $this->_assertPostOnly(); $this->assertPasswordConfirmed(3600); $currentKey = XenForo_Helper_Cookie::getCookie('tfa_trust', $this->getRequest()); $userId = XenForo_Visitor::getUserId(); /** @var XenForo_Model_Tfa $tfaModel */ $tfaModel = $this->getModelFromCache('XenForo_Model_Tfa'); if ($this->_input->filterSingle('others', XenForo_Input::BOOLEAN)) { $tfaModel->deleteUserTrustedRecords($userId, $currentKey); } else { if ($currentKey) { $tfaModel->deleteUserTrustedRecord($userId, $currentKey); } } return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('account/two-step')); }
/** * This simply gets public session, from cookies if necessary. * * @param Zend_Controller_Request_Http $request * * @return XenForo_Session */ public static function getPublicSession(Zend_Controller_Request_Http $request) { $class = XenForo_Application::resolveDynamicClass('XenForo_Session'); /** @var $session XenForo_Session */ $session = new $class(); $session->start(); if (!$session->sessionExists()) { $cookiePrefix = XenForo_Application::get('config')->cookie->prefix; $userCookie = $request->getCookie($cookiePrefix . 'user'); if ($userCookie) { /** @var $userModel XenForo_Model_User */ $userModel = XenForo_Model::create('XenForo_Model_User'); if ($userId = $userModel->loginUserByRememberCookie($userCookie)) { $user = $userModel->getFullUserById($userId); /** @var $tfaModel XenForo_Model_Tfa */ $tfaModel = XenForo_Model::create('XenForo_Model_Tfa'); if (XenForo_Application::getConfig()->enableTfa && $user['use_tfa'] && $tfaModel->userRequiresTfa($user['user_id'])) { $trustedKey = XenForo_Helper_Cookie::getCookie('tfa_trust', $request); if ($trustedKey && $tfaModel->getUserTrustedRecord($user['user_id'], $trustedKey)) { // computer is trusted $allowLogin = true; } else { $allowLogin = false; $session->set('tfaLoginUserId', $user['user_id']); $session->set('tfaLoginDate', time()); $session->set('tfaLoginRedirect', true); } } else { $allowLogin = true; } if ($allowLogin) { $userModel->setUserRememberCookie($user['user_id']); $session->userLogin($user['user_id'], $user['password_date']); } } else { XenForo_Helper_Cookie::deleteCookie('user', true); } } if (!empty($_SERVER['HTTP_USER_AGENT'])) { $session->set('userAgent', $_SERVER['HTTP_USER_AGENT']); $session->set('robotId', $session->getRobotId($_SERVER['HTTP_USER_AGENT'])); } if (!empty($_SERVER['HTTP_REFERER'])) { $session->set('referer', $_SERVER['HTTP_REFERER']); $session->set('fromSearch', $session->isSearchReferer($_SERVER['HTTP_REFERER'])); } } return $session; }
/** * Phrase index. This is a list of phrases, so redirect this to a * language-specific list. * * @return XenForo_ControllerResponse_Redirect */ public function actionPhrases() { $languageModel = $this->_getLanguageModel(); $addOnModel = $this->_getAddOnModel(); $languageId = $this->_input->filterSingle('language_id', XenForo_Input::STRING); $addOnId = $this->_input->filterSingle('addon_id', XenForo_Input::STRING); $phraseFilter = $this->_input->filterSingle('phrase_filter', XenForo_Input::STRING); if ($addOnId == '') { $addOnId = XenForo_Helper_Cookie::getCookie('edit_addon_id') ? XenForo_Helper_Cookie::getCookie('edit_addon_id') : 'All'; } if ($languageId == '') { $languageId = $languageModel->getLanguageIdFromCookie(); } if ($phraseFilter == '') { $phraseFilter = XenForo_Helper_Cookie::getCookie('phrase_filter') ? XenForo_Helper_Cookie::getCookie('phrase_filter') : 'existing'; } if ($languageId && in_array($phraseFilter, array('found', 'undefined')) || !$languageId && in_array($phraseFilter, array('untranslated'))) { $phraseFilter = 'existing'; } $phraseModel = $this->_getPhraseModel(); if (!$phraseModel->canModifyPhraseInLanguage($languageId)) { return $this->responseError(new XenForo_Phrase('phrases_in_this_language_can_not_be_modified')); } $page = $this->_input->filterSingle('page', XenForo_Input::UINT); $perPage = 100; $conditions = array(); if ($addOnId != 'All') { $conditions['addon_id'] = $addOnId; } $conditions['phrase_filter'] = $phraseFilter; $filter = $this->_input->filterSingle('_filter', XenForo_Input::ARRAY_SIMPLE); if ($filter && isset($filter['value'])) { $conditions['title'] = array($filter['value'], empty($filter['prefix']) ? 'lr' : 'r'); $filterView = true; } else { $filterView = false; } $fetchOptions = array('page' => $page, 'perPage' => $perPage); if ($phraseFilter == 'undefined' or $phraseFilter == 'found') { $allPhrases = $phraseModel->getAllPhrasesInMasterLanguage(); //$limitOptions = $phraseModel->prepareLimitFetchOptions($fetchOptions); $phrases = array(); $foundPhrases = $this->_getUndefinedPhrases($addOnId); $foundPhrases = array_unique($foundPhrases); sort($foundPhrases); //$limitedFoundPhrases = $foundPhrases; foreach ($foundPhrases as $phraseTitle) { $phrase = isset($allPhrases[$phraseTitle]) ? $allPhrases[$phraseTitle] : array('title' => $phraseTitle, 'phrase_state' => 'custom'); if ($phraseFilter == 'found' || $phraseFilter == 'undefined' && !isset($allPhrases[$phraseTitle])) { $phrases[] = $phrase; } } $totalPhrases = count($phrases); $page = null; $perPage = null; //die(Zend_Debug::dump($phrases)); } else { $phrases = $phraseModel->getEffectivePhraseListForLanguage($languageId, $conditions, $fetchOptions); $totalPhrases = $phraseModel->countEffectivePhrasesInLanguage($languageId, $conditions, $fetchOptions); } if (is_array($phrases)) { // set an edit_language_id cookie so we can switch to another area and maintain the current style selection XenForo_Helper_Cookie::setCookie('edit_language_id', $languageId); XenForo_Helper_Cookie::setCookie('edit_addon_id', $addOnId); XenForo_Helper_Cookie::setCookie('phrase_filter', $phraseFilter); } else { XenForo_Helper_Cookie::setCookie('edit_language_id', 0); XenForo_Helper_Cookie::setCookie('edit_addon_id', 'All'); XenForo_Helper_Cookie::setCookie('phrase_filter', 'existing'); } $viewParams = array('phrases' => $phrases, 'languages' => $languageModel->getAllLanguagesAsFlattenedTree($languageModel->showMasterLanguage() ? 1 : 0), 'masterLanguage' => $languageModel->showMasterLanguage() ? $languageModel->getLanguageById(0, true) : array(), 'language' => $languageModel->getLanguageById($languageId, true), 'addOns' => $addOnModel->getAllAddOns(), 'addOn' => $addOnId == 'XenForo' ? array('addon_id' => 'XenForo', 'title' => 'XenForo') : $addOnModel->getAddOnById($addOnId), 'addOnId' => $addOnId, 'phraseFilter' => $phraseFilter, 'phraseFilterTitle' => new XenForo_Phrase('devkit_' . $phraseFilter), 'page' => $page, 'perPage' => $perPage, 'totalPhrases' => $totalPhrases, 'filterView' => $filterView, 'filterMore' => $filterView && $totalPhrases > $perPage); return $this->responseView('XenForo_ViewAdmin_Phrase_List', 'phrase_list', $viewParams); }
public function getUserTfaTrustedKey() { return XenForo_Helper_Cookie::getCookie('tfa_trust', $this->_controller->getRequest()); }
/** * Fetches $languageId from cookie if it's available, or returns the default language ID. * * @return integer */ public function getLanguageIdFromCookie() { $languageId = XenForo_Helper_Cookie::getCookie('edit_language_id'); if ($languageId === false) { $languageId = XenForo_Application::debugMode() ? 0 : XenForo_Application::get('options')->defaultLanguageId; } if (!XenForo_Application::debugMode() && !$languageId) { $languageId = XenForo_Application::get('options')->defaultLanguageId; } return $languageId; }
/** * * @see XenForo_ControllerAdmin_Option::_getOptionAddEditResponse() */ protected function _getOptionAddEditResponse(array $option, array $relations = array()) { $response = parent::_getOptionAddEditResponse($option, $relations); if ($response instanceof XenForo_ControllerResponse_View) { $addOnId = $this->_input->filterSingle('addon_id', XenForo_Input::STRING); if (!empty($GLOBALS['XenForo_Route_PrefixAdmin_Options']) && !$addOnId) { $addOnId = XenForo_Helper_Cookie::getCookie('edit_addon_id'); } if (count($relations) == 1) { $groupIds = array_keys($relations); $groupId = reset($groupIds); $group = $this->_getOptionGroupOrError($groupId); $response->params['group'] = $group; } if ($addOnId && empty($option['addon_id'])) { $template['addon_id'] = $addOnId; $response->params['addOnSelected'] = $addOnId; if (empty($option['option_id']) && isset($groupId)) { $option['new_option_id'] = $groupId . '_'; $response->params['option'] = $option; } } } return $response; }
/** * Phrase searching. * * @return XenForo_ControllerResponse_Abstract */ public function actionSearch() { $languageModel = $this->_getLanguageModel(); $defaultLanguageId = XenForo_Application::debugMode() ? 0 : XenForo_Application::get('options')->defaultLanguageId; if ($this->_input->inRequest('language_id')) { $languageId = $this->_input->filterSingle('language_id', XenForo_Input::UINT); } else { $languageId = XenForo_Helper_Cookie::getCookie('edit_language_id'); if ($languageId === false) { $languageId = $defaultLanguageId; } } if ($this->_input->filterSingle('search', XenForo_Input::UINT)) { $phraseModel = $this->_getPhraseModel(); $input = $this->_input->filter(array('title' => XenForo_Input::STRING, 'phrase_text' => XenForo_Input::STRING, 'phrase_case_sensitive' => XenForo_Input::UINT, 'phrase_state' => array(XenForo_Input::STRING, 'array' => true))); if (!$phraseModel->canModifyPhraseInLanguage($languageId)) { return $this->responseError(new XenForo_Phrase('phrases_in_this_language_can_not_be_modified')); } $conditions = array(); if (!empty($input['title'])) { $conditions['title'] = $input['title']; } if (!empty($input['phrase_text'])) { $conditions['phrase_text'] = $input['phrase_text']; if (!empty($input['phrase_case_sensitive'])) { $conditions['phrase_case_sensitive'] = true; } } if ($languageId && !empty($input['phrase_state']) && count($input['phrase_state']) < 3) { $conditions['phrase_state'] = $input['phrase_state']; } if (empty($conditions)) { return $this->responseError(new XenForo_Phrase('please_complete_required_fields')); } $phrases = $phraseModel->getEffectivePhraseListForLanguage($languageId, $conditions); $viewParams = array('language' => $languageModel->getLanguageById($languageId, true), 'phrases' => $phrases); return $this->responseView('XenForo_ViewAdmin_Phrase_SearchResults', 'phrase_search_results', $viewParams); } else { $showMaster = $languageModel->showMasterLanguage(); $viewParams = array('languages' => $languageModel->getAllLanguagesAsFlattenedTree($showMaster ? 1 : 0), 'masterLanguage' => $showMaster ? $languageModel->getLanguageById(0, true) : false, 'languageId' => $languageId); return $this->responseView('XenForo_ViewAdmin_Phrase_Search', 'phrase_search', $viewParams); } }
public function getAdminStyleIdFromCookie($allowMaster = true) { $styleId = XenForo_Helper_Cookie::getCookie('brass_edit_style_id'); if ($styleId === false) { $styleId = XenForo_Application::debugMode() ? 0 : XenForo_Application::get('options')->BRASS_defaultAdminStyleId; } if ((!$allowMaster || !XenForo_Application::debugMode()) && !$styleId) { $styleId = XenForo_Application::get('options')->BRASS_defaultAdminStyleId; } /* if($styleId == 1) { $styleModel = XenForo_Model::create('XenForo_Model_Style'); $styleModel->setAdminStyles(true); $styles = (XenForo_Application::isRegistered('adminStyles') ? XenForo_Application::get('adminStyles') : $styleModel->getAllStyles() ); if(empty($styles)) { return 0; } $style = reset($styles); $this->getModelFromCache('XenForo_Model_Option')->updateOptions( array('BRASS_defaultAdminStyleId' => $style['style_id'] )); return $style['style_id']; } */ return $styleId; }
public function updateViews($media) { if (!XenForo_Helper_Cookie::getCookie('EWRmedio_' . $media['media_id'])) { $this->_getDb()->query("\n\t\t\t\tUPDATE EWRmedio_media\n\t\t\t\tSET media_views = media_views+1\n\t\t\t\tWHERE media_id = ?\n\t\t\t", $media['media_id']); $media['media_views']++; } XenForo_Helper_Cookie::setCookie('EWRmedio_' . $media['media_id'], '1', 86400); $this->standardizeViewingUserReference($viewingUser); $userID = $viewingUser['user_id']; if ($userID) { $this->_getDb()->query(' INSERT INTO EWRmedio_read (user_id, media_id, media_read_date) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE media_read_date = VALUES(media_read_date) ', array($userID, $media['media_id'], XenForo_Application::$time)); } return $media; }
/** * Displays the list of orphan phrases in the specified language. * * @return XenForo_ControllerResponse_Abstract */ public function actionOrphanPhrases() { $languageId = $this->_input->filterSingle('language_id', XenForo_Input::UINT); $language = $this->_getLanguageOrError($languageId, true); $languageModel = $this->_getLanguageModel(); $phraseModel = $this->_getPhraseModel(); if (!$phraseModel->canModifyPhraseInLanguage($languageId)) { return $this->responseError(new XenForo_Phrase('phrases_in_this_language_can_not_be_modified')); } $addOns = $this->_getAddOnModel()->getAllAddOns(); $addOnId = $this->_input->filterSingle('addon_id', XenForo_Input::STRING); if (!empty($GLOBALS['XenForo_Route_PrefixAdmin_Languages']) && !$addOnId) { $addOnId = XenForo_Helper_Cookie::getCookie('edit_addon_id'); } else { XenForo_Helper_Cookie::setCookie('edit_addon_id', $addOnId); } if ($addOnId) { $addOn = $addOns[$addOnId]; } else { $addOn = array('addon_id' => ''); } $this->canonicalizeRequestUrl(XenForo_Link::buildAdminLink('add-ons/languages/orphan-phrases', $addOn, $language)); // set an edit_language_id cookie so we can switch to another area and // maintain the current style selection XenForo_Helper_Cookie::setCookie('edit_language_id', $languageId); $page = $this->_input->filterSingle('page', XenForo_Input::UINT); $perPage = 100; $conditions = array('addon_id' => $addOnId); $filter = $this->_input->filterSingle('_filter', XenForo_Input::ARRAY_SIMPLE); if ($filter && isset($filter['value'])) { $conditions['title'] = array($filter['value'], empty($filter['prefix']) ? 'lr' : 'r'); $filterView = true; } else { $filterView = false; } $fetchOptions = array('page' => $page, 'perPage' => $perPage); $totalPhrases = $phraseModel->countOrphanPhrasesInLanguage($languageId, $conditions, $fetchOptions); $viewParams = array('addOns' => $addOns, 'addOnSelected' => $addOnId, 'phrases' => $phraseModel->getOrphanPhraseListForLanguage($languageId, $conditions, $fetchOptions), 'languages' => $languageModel->getAllLanguagesAsFlattenedTree($languageModel->showMasterLanguage() ? 1 : 0), 'masterLanguage' => $languageModel->showMasterLanguage() ? $languageModel->getLanguageById(0, true) : array(), 'language' => $languageModel->getLanguageById($languageId, true), 'page' => $page, 'perPage' => $perPage, 'totalPhrases' => $totalPhrases, 'filterView' => $filterView, 'filterMore' => $filterView && $totalPhrases > $perPage); return $this->responseView('ThemeHouse_Phrases_ViewAdmin_Phrase_OrphanList', 'th_orphan_phrase_list_phrases', $viewParams); }
/** * Gets the effective set of container params. This includes combining * and specific container params with any global ones. For example, a specific * container param may refer to the section the page is in, so this function * could load the other options that are specific to this section. * * @param array $params Container params from the controller/view * @param Zend_Controller_Request_Http $request * * @return array */ public function getEffectiveContainerParams(array $params, Zend_Controller_Request_Http $request) { $options = XenForo_Application::get('options'); $visitor = XenForo_Visitor::getInstance(); $params['canSearch'] = $visitor->canSearch(); $params['canUploadAvatar'] = $visitor->canUploadAvatar(); $params['canEditSignature'] = $visitor->canEditSignature(); $params['canEditProfile'] = $visitor->canEditProfile(); $params['canUpdateStatus'] = $visitor->canUpdateStatus(); $params['canStartConversation'] = $visitor->canStartConversations(); $params['canViewProfilePosts'] = $visitor->canViewProfilePosts(); $params['isAwaitingEmailConfirmation'] = $visitor['user_id'] && in_array($visitor['user_state'], array('email_confirm', 'email_confirm_edit')); $params['isEmailBouncing'] = $visitor['user_id'] && $visitor['user_state'] == 'email_bounce'; $params['tosUrl'] = self::getTosUrl(); $params['jQuerySource'] = self::getJquerySource(); $params['jQuerySourceLocal'] = self::getJquerySource(true); $params['javaScriptSource'] = XenForo_Application::$javaScriptUrl; $params['showBoardClosedNotice'] = !$options->boardActive && XenForo_Visitor::getInstance()->get('is_admin'); $params['showCookieNotice'] = $options->showFirstCookieNotice && XenForo_Helper_Cookie::getCookie('session') === false && XenForo_Helper_Cookie::getCookie('user') === false; $requestPaths = XenForo_Application::get('requestPaths'); $params['isIndexPage'] = $requestPaths['fullUri'] == XenForo_Link::buildPublicLink('full:index'); $params = XenForo_Application::mapMerge($params, parent::getEffectiveContainerParams($params, $request), $this->_getCronContainerParams(), $this->_getStyleLanguageChangerParams($request), $this->_getNavigationContainerParams(empty($params['majorSection']) ? '' : $params['majorSection'])); if ($options->enableNotices) { $this->_preloadNoticeTemplates($params, $request); } XenForo_CodeEvent::fire('container_public_params', array(&$params, $this)); return $params; }
/** * Template searching. * * @return XenForo_ControllerResponse_Abstract */ public function actionSearch() { $styleModel = $this->_getStyleModel(); $defaultStyleId = XenForo_Application::debugMode() ? 0 : XenForo_Application::get('options')->defaultStyleId; if ($this->_input->inRequest('style_id')) { $styleId = $this->_input->filterSingle('style_id', XenForo_Input::UINT); } else { $styleId = XenForo_Helper_Cookie::getCookie('edit_style_id'); if ($styleId === false) { $styleId = $defaultStyleId; } } if ($this->_input->filterSingle('search', XenForo_Input::UINT)) { $templateModel = $this->_getTemplateModel(); $input = $this->_input->filter(array('title' => XenForo_Input::STRING, 'template' => XenForo_Input::STRING, 'template_case_sensitive' => XenForo_Input::UINT, 'template_state' => array(XenForo_Input::STRING, 'array' => true))); if (!$templateModel->canModifyTemplateInStyle($styleId)) { return $this->responseError(new XenForo_Phrase('templates_in_this_style_can_not_be_modified')); } $conditions = array(); if (!empty($input['title'])) { $conditions['title'] = $input['title']; } if (!empty($input['template'])) { // translate @x searches to "{xen:property x" as that is what is stored $propertyModel = $this->_getStylePropertyModel(); $properties = $propertyModel->keyPropertiesByName($propertyModel->getEffectiveStylePropertiesInStyle($styleId)); $text = $propertyModel->convertAtPropertiesForSearch($input['template'], $properties); $conditions['template'] = $text; if (!empty($input['template_case_sensitive'])) { $conditions['template_case_sensitive'] = true; } } if ($styleId && !empty($input['template_state']) && count($input['template_state']) < 3) { $conditions['template_state'] = $input['template_state']; } if (empty($conditions)) { return $this->responseError(new XenForo_Phrase('please_complete_required_fields')); } $templates = $templateModel->getEffectiveTemplateListForStyle($styleId, $conditions); $viewParams = array('style' => $styleModel->getStyleById($styleId, true), 'templates' => $templates); return $this->responseView('XenForo_ViewAdmin_Template_SearchResults', 'template_search_results', $viewParams); } else { $showMaster = $styleModel->showMasterStyle(); $viewParams = array('styles' => $styleModel->getAllStylesAsFlattenedTree($showMaster ? 1 : 0), 'masterStyle' => $showMaster ? $styleModel->getStyleById(0, true) : false, 'styleId' => $styleId); return $this->responseView('XenForo_ViewAdmin_Template_Search', 'template_search', $viewParams); } }
public function updateViews($page) { if (!XenForo_Helper_Cookie::getCookie('EWRcarta_' . $page['page_id'])) { $this->_getDb()->query("\n\t\t\t\tUPDATE EWRcarta_pages\n\t\t\t\tSET page_views = page_views+1\n\t\t\t\tWHERE page_id = ?\n\t\t\t", $page['page_id']); $page['page_views']++; } XenForo_Helper_Cookie::setCookie('EWRcarta_' . $page['page_id'], '1', 86400); $this->standardizeViewingUserReference($viewingUser); $userID = $viewingUser['user_id']; if ($userID) { $this->_getDb()->query(' INSERT INTO EWRcarta_read (user_id, page_id, page_read_date) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE page_read_date = VALUES(page_read_date) ', array($userID, $page['page_id'], XenForo_Application::$time)); } return $page; }