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();
 }
示例#2
0
 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);
 }
示例#3
0
文件: Thread.php 项目: Sywooch/forums
 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);
示例#5
0
}
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...");