public static function initDependencies(XenForo_Dependencies_Abstract $dependencies, array $data) { $xenOptions = XenForo_Application::get('options'); if ($dependencies instanceof XenForo_Dependencies_Public && $xenOptions->th_disableDebugMode_section != 'admin') { XenForo_Application::setDebugMode(false); } elseif ($dependencies instanceof XenForo_Dependencies_Admin && $xenOptions->th_disableDebugMode_section != 'public') { XenForo_Application::setDebugMode(false); } $initDependencies = new ThemeHouse_DisableDebug_Listener_InitDependencies($dependencies, $data); $initDependencies->run(); }
protected function _preDispatchFirst($action) { $configFile = XenForo_Application::getInstance()->getConfigDir() . '/config.php'; if (file_exists($configFile)) { XenForo_Application::getInstance()->loadDefaultData(); } else { XenForo_Application::set('config', XenForo_Application::getInstance()->loadDefaultConfig()); } XenForo_Application::setDebugMode(true); @set_time_limit(120); }
public function actionGetThread() { $threadid = $this->_input->filterSingle('threadid', XenForo_Input::UINT); $postid = $this->_input->filterSingle('postid', XenForo_Input::UINT); $signature = $this->_input->filterSingle('signature', XenForo_Input::UINT); $page = max($this->_input->filterSingle('page', XenForo_Input::UINT), 1); $perpage = $this->_input->filterSingle('perpage', XenForo_Input::UINT); if (!$perpage) { $perpage = XenForo_Application::get('options')->messagesPerPage; } $visitor = XenForo_Visitor::getInstance(); $user_model = $this->getModelFromCache('XenForo_Model_User'); $thread_model = $this->_getThreadModel(); $post_model = $this->_getPostModel(); $forum_model = $this->_getForumModel(); $session_model = $this->getModelFromCache('XenForo_Model_Session'); $helper = $this->getHelper('ForumThreadPost'); $post_helper = new ForumRunner_ControllerHelper_Post($this); try { list($thread_info, $forum_info) = $helper->assertThreadValidAndViewable($threadid, array('readUserId' => $visitor['user_id'], 'watchUserId' => $visitor['user_id']), array('readUserId' => $visitor['user_id'])); } catch (Exception $e) { json_error($e->getControllerResponse()->errorText->render()); } $gotopostid = 0; if ($page == FR_LAST_POST) { // Figure out our last post page and post id $options = $post_model->getPermissionBasedPostFetchOptions($thread_info, $forum_info); $read_date = $thread_model->getMaxThreadReadDate($thread_info, $forum_info); $first_unread = $post_model->getNextPostInThread($threadid, $read_date, $options); if (!$first_unread) { $first_unread = $post_model->getLastPostInThread($threadid, $options); } if ($first_unread) { $page = floor($first_unread['position'] / $perpage) + 1; $gotopostid = $first_unread['post_id']; } else { $page = 1; } } else { if ($postid) { try { list($tpost, $tthread, $tforum) = $helper->assertPostValidAndViewable($postid); } catch (Exception $e) { json_error($e->getControllerResponse()->errorText->render()); } $page = floor($tpost['position'] / $perpage) + 1; $gotopostid = $postid; } } if ($thread_model->isRedirect($thread_info)) { // Redirect thread! XXX RKJ } $this->canonicalizePageNumber($page, $perpage, $thread_info['reply_count'] + 1, 'threads', $thread_info); $post_options = array_merge($post_model->getPermissionBasedPostFetchOptions($thread_info, $forum_info), array('perPage' => $perpage, 'page' => $page, 'join' => XenForo_Model_Post::FETCH_USER | XenForo_Model_Post::FETCH_USER_PROFILE | XenForo_Model_Post::FETCH_FORUM, 'likeUserId' => $visitor['user_id'])); if (!empty($post_options['deleted'])) { $post_options['join'] |= XenForo_Model_Post::FETCH_DELETION_LOG; } $posts = $post_model->getPostsInThread($threadid, $post_options); $posts = $post_model->getAndMergeAttachmentsIntoPosts($posts); $mod = array(); $perms = $visitor->getNodePermissions($thread_info['node_id']); $thread_mod = $thread_model->addInlineModOptionToThread($thread_info, $forum_info, $perms); $max_post_date = $first_unread = $deleted = $moderated = 0; foreach ($posts as &$post) { $post_mod = $post_model->addInlineModOptionToPost($post, $thread_info, $forum_info, $perms); $mod = array_merge($mod, $post_mod); $post = $post_model->preparePost($post, $thread_info, $forum_info, $perms); if ($post['post_date'] > $max_post_date) { $max_post_date = $post['post_date']; } if ($post['isDeleted']) { $deleted++; } if ($post['isModerated']) { $moderated++; } if (!$first_unread && $post['isNew']) { $first_unread = $post['post_id']; } } $thread_model->markThreadRead($thread_info, $forum_info, $max_post_date, $visitor['user_id']); fr_update_subsent($thread_info['thread_id'], $max_post_date); $thread_model->logThreadView($threadid); $post_data = array(); foreach ($posts as &$post) { $user = $user_model->getUserById($post['user_id']); $online_info = $session_model->getSessionActivityRecords(array('user_id' => $post['user_id'], 'cutOff' => array('>', $session_model->getOnlineStatusTimeout()))); $is_online = false; if (count($online_info) == 1) { $is_online = true; } $fr_images = $docattach = array(); if (isset($post['attachments']) && is_array($post['attachments'])) { foreach ($post['attachments'] as $attachment) { $ext = strtolower($attachment['extension']); $link = XenForo_Link::buildPublicLink('attachments', $attachment); if ($ext == 'jpe' || $ext == 'jpeg' || $ext == 'png' || $ext == 'gif' || $ext == 'jpg') { $data = array('img' => fr_get_xenforo_bburl() . '/' . $link); if ($attachment['thumbnailUrl']) { $data['tmb'] = fr_get_xenforo_bburl() . '/' . $attachment['thumbnailUrl']; } $fr_images[] = $data; } else { if ($ext == 'pdf') { $docattach[] = fr_get_xenforo_bburl() . '/' . $link; } } } } list($text, $nuked_quotes, $images) = parse_post(fr_strip_smilies($this, XenForo_Helper_String::censorString($post['message'])), true); if (count($fr_images) > 0) { $text .= "<br/>"; foreach ($fr_images as $attachment) { $text .= "<img src=\"{$attachment['img']}\"/>"; } } foreach ($images as $image) { $fr_images[] = array('img' => $image); } $avatarurl = ''; if ($user !== false) { $avatarurl = process_avatarurl(XenForo_Template_Helper_Core::getAvatarUrl($user, 'm')); if (strpos($avatarurl, '/xenforo/avatars/avatar_') !== false) { $avatarurl = ''; } } $post_page = floor($post['position'] / XenForo_Application::get('options')->messagesPerPage) + 1; $out = array('post_id' => $post['post_id'], 'thread_id' => $post['thread_id'], 'forum_id' => $post['node_id'], 'forum_title' => prepare_utf8_string(strip_tags($post['node_title'])), 'username' => prepare_utf8_string(strip_tags($post['username'])), 'joindate' => prepare_utf8_string(XenForo_Locale::date($post['register_date'], 'absolute')), 'usertitle' => strip_tags(XenForo_Template_Helper_Core::helperUserTitle($user)), 'numposts' => $user ? $user['message_count'] : 0, 'userid' => $post['user_id'], 'canlike' => $post['canLike'] ? true : false, 'likes' => $post['like_date'] > 0 ? true : false, 'title' => prepare_utf8_string(XenForo_Helper_String::censorString($post['title'])), 'online' => $is_online, 'post_timestamp' => prepare_utf8_string(XenForo_Locale::dateTime($post['post_date'], 'absolute')), 'post_link' => fr_get_xenforo_bburl() . '/' . XenForo_Link::buildPublicLink('threads', $thread_info, array('page' => $post_page)) . '#post-' . $post['post_id'], 'fr_images' => $fr_images); if ($post['canDelete']) { $out['candelete'] = true; } if ($post['likes']) { $out['likestext'] = prepare_utf8_string($post_helper->likesHtml($post['post_id'], $post['likes'], $post['like_date'], $post['likeUsers'])); $like_users = ''; for ($i = 0; $i < count($post['likeUsers']); $i++) { if ($i != 0) { $like_users .= ', '; } $like_users .= $post['likeUsers'][$i]['username']; } $out['likesusers'] = prepare_utf8_string($like_users); } if ($avatarurl != '') { $out['avatarurl'] = $avatarurl; } if ($post['message_state'] == 'deleted') { $out += array('deleted' => true, 'del_username' => prepare_utf8_string(strip_tags($post['delete_username']))); if ($post['delete_reason']) { $out['del_reason'] = prepare_utf8_string($post['delete_reason']); } } else { if ($post['canEdit']) { $out += array('canedit' => $post['canEdit']); } $out += array('text' => $text, 'quotable' => $nuked_quotes, 'edittext' => prepare_utf8_string($post['message'])); } if (count($docattach)) { $out['docattach'] = $docattach; } if ($signature) { $sig = trim(strip_tags(remove_bbcode($post['signature'], true, true), '<a>')); $sig = str_replace(array("\t", "\r"), array('', ''), $sig); $sig = str_replace("\n\n", "\n", $sig); $out['sig'] = prepare_utf8_string($sig); } $post_data[] = $out; } $out = array('posts' => $post_data, 'total_posts' => $thread_info['reply_count'] + 1, 'page' => $page, 'canpost' => $thread_model->canReplyToThread($thread_info, $forum_info), 'canattach' => $forum_model->canUploadAndManageAttachment($forum_info), 'title' => prepare_utf8_string(XenForo_Helper_String::censorString($thread_info['title'])), 'thread_link' => process_avatarurl(XenForo_Link::buildPublicLink('threads', $thread_info, array('page' => $page))), 'subscribed' => $thread_info['thread_is_watched'] ? 1 : 0); if ($gotopostid) { $out['gotopostid'] = $gotopostid; } if ($thread_info['discussion_type'] == 'poll') { $poll_model = $this->_getPollModel(); $poll = $poll_model->getPollByContent('thread', $threadid); if ($poll) { $out['pollid'] = $poll['poll_id']; } } $modbit = 0; if (isset($mod['delete']) && $mod['delete']) { $modbit |= MOD_DELETEPOST; } if ($thread_info['sticky'] && isset($thread_mod['unstick']) && $thread_mod['unstick']) { $modbit |= MOD_UNSTICK; } if (!$thread_info['sticky'] && isset($thread_mod['stick']) && $thread_mod['stick']) { $modbit |= MOD_STICK; } if (isset($thread_mod['delete']) && $thread_mod['delete']) { $modbit |= MOD_DELETETHREAD; } XenForo_Application::setDebugMode(true); if ($thread_info['discussion_open'] && isset($thread_mod['lock']) && $thread_mod['lock']) { $modbit |= MOD_CLOSE; } if (!$thread_info['discussion_open'] && isset($thread_mod['unlock']) && $thread_mod['unlock']) { $modbit |= MOD_OPEN; } if (isset($thread_mod['move']) && $thread_mod['move']) { $modbit |= MOD_MOVETHREAD; } if (XenForo_Permission::hasPermission($visitor['permissions'], 'general', 'cleanSpam')) { $modbit |= MOD_SPAM_CONTROLS; } $out['mod'] = $modbit; return $out; }
* * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ header('content-type: application/json; charset: utf-8'); /** * Bridge to XenForo */ $startTime = microtime(true); $fileDir = '../../'; 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); XenForo_Application::disablePhpErrorHandler(); XenForo_Application::setDebugMode(false); XenForo_Application::$externalDataPath = $fileDir . '/data'; XenForo_Application::$externalDataUrl = $fileDir . '/data'; XenForo_Application::$javaScriptUrl = $fileDir . '/js'; restore_error_handler(); restore_exception_handler(); $options = XenForo_Application::get('options'); $STEAM_GAMEBANNER = $options->steamDisplayBanner; if (!empty($_GET['steamids'])) { /* * Fetch profile data */ $sHelper = new Steam_Helper_Steam(); $steamProfileAPI = $sHelper->getSteamProfileAPI($_GET['steamids']); $fullProfile = $_GET['fullprofile']; $contentJson = $sHelper->getJsonData($steamProfileAPI);
} if (php_sapi_name() !== "cli") { die("Oops. Please run this script at the command line"); } $libDir = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR; $xfPath = $libDir . "XenForo" . DIRECTORY_SEPARATOR; $autoloaderPath = $xfPath . DIRECTORY_SEPARATOR . "Autoloader.php"; if (!file_exists($autoloaderPath)) { ec("Checked " . $libDir . DIRECTORY_SEPARATOR . "Autoloader.php"); die("This file should be inside the AssociationMc directory in the library directory of a XenForo installation."); } /** @noinspection PhpIncludeInspection */ require_once $autoloaderPath; XenForo_Autoloader::getInstance()->setupAutoloader($libDir); XenForo_Application::initialize($libDir, $libDir); XenForo_Application::setDebugMode(true); $dependencies = new XenForo_Dependencies_Public(); $dependencies->preLoadData(); $db = XenForo_Application::getDb(); /** @var $db Zend_Db_Adapter_Abstract */ // Fun hack so we don't need a new function on the model :P $records = $db->fetchAll('SELECT *, HEX(minecraft_uuid) FROM xf_association_mc'); $totalRecords = count($records); ec("{$totalRecords} recoord(s) are to be processed." . PHP_EOL); $i = 0; foreach ($records as $record) { $hex = $record['HEX(minecraft_uuid)']; $xfId = $record['xenforo_id']; $lastUsername = $record['last_username']; ec("Processing user with id {$xfId}. Their last known username was {$lastUsername}. Their UUID is {$hex}."); ec("Requesting names info from Mojang...");