Example #1
0
 protected function _getAttachment(XenForo_Model $model)
 {
     if ($this->_attachment === null) {
         $this->_attachment = $model->getModelFromCache('XenForo_Model_Attachment')->getAttachmentById($this->_mediaDw->get('attachment_id'));
     }
     return $this->_attachment;
 }
Example #2
0
 protected function _getVideoData(XenForo_Model $model)
 {
     if ($this->_videoData === null) {
         $this->_videoData = $model->getModelFromCache('sonnb_XenGallery_Model_VideoData')->getDataByDataId($this->_videoDw->get('content_data_id'));
     }
     return $this->_videoData;
 }
Example #3
0
 protected function _getPhotoData(XenForo_Model $model)
 {
     if ($this->_photoData === null) {
         $dataId = $this->_photoDw->get('photo_data_id');
         if (empty($dataId)) {
             // sonnb - XenGallery v2.0.0
             $dataId = $this->_photoDw->get('content_data_id');
         }
         $this->_photoData = $model->getModelFromCache('sonnb_XenGallery_Model_PhotoData')->getDataByDataId($dataId);
     }
     return $this->_photoData;
 }
Example #4
0
 public function getDescription(XenForo_Model $model)
 {
     $resource = $this->_resourceDw->getMergedData();
     $resource = $model->getModelFromCache('XenResource_Model_Resource')->prepareResource($resource, null, $this->getViewingUser());
     $resource = $model->getModelFromCache('XenResource_Model_Resource')->prepareResourceCustomFields($resource, array(), $this->getViewingUser());
     $params = array('resource' => $resource);
     if ($resource['user_id'] == $this->getViewingUserId()) {
         return $this->_getSimulationTemplate('bdsocialshare_description_xenresource_resource', $params);
     } else {
         return $this->_getSimulationTemplate('bdsocialshare_description_xenresource_resource_aut', $params);
     }
 }
 /**
  * Gets the visible reports of this content type for the viewing user.
  *
  * @see XenForo_ReportHandler_Abstract:getVisibleReportsForUser()
  */
 public function getVisibleReportsForUser(array $reports, array $viewingUser)
 {
     $reportsByUser = array();
     foreach ($reports as $reportId => $report) {
         $info = unserialize($report['content_info']);
         $reportsByUser[$info['profile_user_id']][] = $reportId;
     }
     $users = XenForo_Model::create('XenForo_Model_User')->getUsersByIds(array_keys($reportsByUser), array('join' => XenForo_Model_User::FETCH_USER_PRIVACY, 'followingUserId' => $viewingUser['user_id']));
     $userProfileModel = XenForo_Model::create('XenForo_Model_UserProfile');
     foreach ($reportsByUser as $userId => $userReports) {
         $remove = false;
         if (isset($users[$userId]) && !$userProfileModel->canViewFullUserProfile($users[$userId], $null, $viewingUser)) {
             $remove = true;
         } else {
             if (!XenForo_Permission::hasPermission($viewingUser['permissions'], 'profilePost', 'editAny') && !XenForo_Permission::hasPermission($viewingUser['permissions'], 'profilePost', 'deleteAny')) {
                 $remove = true;
             }
         }
         if ($remove) {
             foreach ($userReports as $reportId) {
                 unset($reports[$reportId]);
             }
         }
     }
     return $reports;
 }
Example #6
0
 public function execute(array $deferred, array $data, $targetRunTime, &$status)
 {
     $data = array_merge(array('position' => 0, 'batch' => 100, 'delete' => false), $data);
     $data['batch'] = max(1, $data['batch']);
     /* @var $statsModel XenForo_Model_Stats */
     $statsModel = XenForo_Model::create('XenForo_Model_Stats');
     if ($data['position'] == 0) {
         // delete old stats cache if required
         if (!empty($data['delete'])) {
             $statsModel->deleteStats();
         }
         // an appropriate date from which to start... first thread, or earliest user reg?
         $data['position'] = min(XenForo_Model::create('XenForo_Model_Thread')->getEarliestThreadDate(), XenForo_Model::create('XenForo_Model_User')->getEarliestRegistrationDate());
         // start on a 24 hour increment point
         $data['position'] = $data['position'] - $data['position'] % 86400;
     } else {
         if ($data['position'] > XenForo_Application::$time) {
             return true;
         }
     }
     $endPosition = $data['position'] + $data['batch'] * 86400;
     $statsModel->buildStatsData($data['position'], $endPosition);
     $data['position'] = $endPosition;
     $actionPhrase = new XenForo_Phrase('rebuilding');
     $typePhrase = new XenForo_Phrase('daily_statistics');
     $status = sprintf('%s... %s (%s)', $actionPhrase, $typePhrase, XenForo_Locale::date($data['position'], 'absolute'));
     return $data;
 }
Example #7
0
 /**
  * Gets the specified model object from the cache. If it does not exist,
  * it will be instantiated.
  *
  * @param string $class Name of the class to load
  *
  * @return XenForo_Model
  */
 public function getModelFromCache($class)
 {
     if (!isset($this->_modelCache[$class])) {
         $this->_modelCache[$class] = XenForo_Model::create($class);
     }
     return $this->_modelCache[$class];
 }
Example #8
0
 public function getUser()
 {
     $visitor = XenForo_Visitor::getInstance();
     $userModel = XenForo_Model::create('XenForo_Model_User');
     $userInfo = $userModel->getFullUserById($visitor->getUserId());
     return $userInfo;
 }
 /**
  *
  * @return XenForo_Model_Thread
  */
 protected function _getThreadModel()
 {
     if (!$this->_threadModel) {
         $this->_threadModel = XenForo_Model::create('XenForo_Model_Thread');
     }
     return $this->_threadModel;
 }
Example #10
0
 public static function runOften()
 {
     $feeds = XenForo_Model::create('DigitalPointSocialBar_Model_SocialBar')->getSlugsFromOptions();
     shuffle($feeds);
     // randomize order in case someone has absurd number of lists attached to forums (would need to be more than 180 unique) to work around Twitter API limits
     $cacheObject = XenForo_Application::getCache();
     $twitter = DigitalPointSocialBar_Helper_Twitter::getService(XenForo_Application::getOptions()->dpTwitterAccessToken, XenForo_Application::getOptions()->dpTwitterAccessTokenSecret, XenForo_Application::getOptions()->dpTwitterUsername);
     // forum specific feeds
     if ($feeds) {
         foreach ($feeds as $slug) {
             $tweets_array = array();
             $results = $twitter->listsStatuses(array('slug' => $slug, 'owner_screen_name' => XenForo_Application::getOptions()->dpTwitterUsername, 'count' => 250, 'include_rts' => 1, 'include_entities' => 1));
             if (count($results)) {
                 try {
                     for ($i = 0; $i < count($results); $i++) {
                         $tweet = $results[$i];
                         if (is_object($tweet->user)) {
                             $screen_name = $tweet->user->screen_name;
                             if (!@isset($tweets_array[$screen_name])) {
                                 $tweets_array[$screen_name] = DigitalPointSocialBar_Helper_Twitter::parseTweet($tweet);
                             }
                         }
                     }
                     $cacheObject->save(json_encode(array_values($tweets_array)), 'social_bar_' . str_replace('-', '_', $slug), array(), 604800);
                     // 7 day cache
                 } catch (Exception $e) {
                 }
             }
         }
     }
 }
Example #11
0
 public function execute(array $deferred, array $data, $targetRunTime, &$status)
 {
     $data = array_merge(array('startLanguage' => 0, 'startPhrase' => 0, 'position' => 0, 'mapped' => false), $data);
     /* @var $phraseModel XenForo_Model_Phrase */
     $phraseModel = XenForo_Model::create('XenForo_Model_Phrase');
     if ($data['startLanguage'] == 0 && $data['startPhrase'] == 0 && !$data['mapped']) {
         $s = microtime(true);
         $phraseModel->insertPhraseMapForLanguages($phraseModel->buildPhraseMapForLanguageTree(0), true);
         $data['mapped'] = true;
         $maxExec = $targetRunTime ? $targetRunTime - (microtime(true) - $s) : 0;
     } else {
         $maxExec = $targetRunTime;
     }
     $actionPhrase = new XenForo_Phrase('rebuilding');
     $typePhrase = new XenForo_Phrase('phrases');
     $status = sprintf('%s... %s %s', $actionPhrase, $typePhrase, str_repeat(' . ', $data['position']));
     if (!$targetRunTime || $maxExec > 1) {
         $result = $phraseModel->compileAllPhrases($maxExec, $data['startLanguage'], $data['startPhrase']);
     } else {
         $result = false;
     }
     if ($result === true) {
         return false;
     } else {
         if ($result) {
             $data['startLanguage'] = $result[0];
             $data['startPhrase'] = $result[1];
         }
         $data['position']++;
         return $data;
     }
 }
 public function run()
 {
     /* @var $classModel ThemeHouse_Objects_Model_Class */
     $classModel = XenForo_Model::create('ThemeHouse_Objects_Model_Class');
     $classes = $classModel->getAllClasses();
     if (self::$_dependencies instanceof XenForo_Dependencies_Public) {
         $routes = self::$_data['routesPublic'];
     } elseif (self::$_dependencies instanceof XenForo_Dependencies_Admin) {
         $routes = self::$_data['routesAdmin'];
     }
     foreach ($classes as $class) {
         $routePrefix = '';
         if (self::$_dependencies instanceof XenForo_Dependencies_Public) {
             $routePrefix = isset($class['route_prefix']) ? $class['route_prefix'] : '';
         } elseif (self::$_dependencies instanceof XenForo_Dependencies_Admin) {
             $routePrefix = isset($class['route_prefix_admin']) ? $class['route_prefix_admin'] : '';
         }
         if ($routePrefix && !isset($routes[$routePrefix])) {
             $routes[$routePrefix]['build_link'] = 'all';
             if (self::$_dependencies instanceof XenForo_Dependencies_Public) {
                 $routes[$routePrefix]['route_class'] = 'ThemeHouse_Objects_Route_Prefix_Objects';
             } elseif (self::$_dependencies instanceof XenForo_Dependencies_Admin) {
                 $routes[$routePrefix]['route_class'] = 'ThemeHouse_Objects_Route_PrefixAdmin_Objects';
             }
         }
     }
     if (self::$_dependencies instanceof XenForo_Dependencies_Public) {
         XenForo_Link::setHandlerInfoForGroup('public', $routes);
     } elseif (self::$_dependencies instanceof XenForo_Dependencies_Admin) {
         XenForo_Link::setHandlerInfoForGroup('admin', $routes);
     }
     parent::run();
 }
Example #13
0
 /**
  * Gets visible moderation queue entries for specified user.
  *
  * @see XenForo_ModerationQueueHandler_Abstract::getVisibleModerationQueueEntriesForUser()
  */
 public function getVisibleModerationQueueEntriesForUser(array $contentIds, array $viewingUser)
 {
     /* @var $profilePostModel XenForo_Model_ProfilePost */
     $profilePostModel = XenForo_Model::create('XenForo_Model_ProfilePost');
     $profilePosts = $profilePostModel->getProfilePostsByIds($contentIds);
     $profileUserIds = array();
     foreach ($profilePosts as $profilePost) {
         $profileUserIds[] = $profilePost['profile_user_id'];
     }
     $users = XenForo_Model::create('XenForo_Model_User')->getUsersByIds($profileUserIds, array('join' => XenForo_Model_User::FETCH_USER_PRIVACY, 'followingUserId' => $viewingUser['user_id']));
     $output = array();
     foreach ($profilePosts as $profilePost) {
         if (!isset($users[$profilePost['profile_user_id']])) {
             continue;
         }
         $user = $users[$profilePost['profile_user_id']];
         $canManage = true;
         if (!$profilePostModel->canViewProfilePostAndContainer($profilePost, $user, $null, $viewingUser)) {
             $canManage = false;
         } else {
             if (!XenForo_Permission::hasPermission($viewingUser['permissions'], 'profilePost', 'editAny') || !XenForo_Permission::hasPermission($viewingUser['permissions'], 'profilePost', 'deleteAny')) {
                 $canManage = false;
             }
         }
         if ($canManage) {
             $output[$profilePost['profile_post_id']] = array('message' => $profilePost['message'], 'user' => array('user_id' => $profilePost['user_id'], 'username' => $profilePost['username']), 'title' => new XenForo_Phrase('profile_post_for_x', array('username' => $user['username'])), 'link' => XenForo_Link::buildPublicLink('profile-posts', $profilePost), 'contentTypeTitle' => new XenForo_Phrase('profile_post'), 'titleEdit' => false);
         }
     }
     return $output;
 }
Example #14
0
 /**
  * @return XenForo_Model_Category
  */
 protected function _getCategoryModel()
 {
     if ($this->_categoryModel === null) {
         $this->_categoryModel = XenForo_Model::create('XenForo_Model_Category');
     }
     return $this->_categoryModel;
 }
Example #15
0
 /**
  * Displays a form to change the visitor's language, or changes it if a language_id is present.
  *
  * @return XenForo_ControllerResponse_Abstract
  */
 public function actionLanguage()
 {
     $visitor = XenForo_Visitor::getInstance();
     if ($this->_input->inRequest('language_id')) {
         $this->_checkCsrfFromToken($this->_input->filterSingle('_xfToken', XenForo_Input::STRING));
         $languageId = $this->_input->filterSingle('language_id', XenForo_Input::UINT);
         if ($languageId) {
             $languages = XenForo_Application::isRegistered('languages') ? XenForo_Application::get('languages') : XenForo_Model::create('XenForo_Model_Language')->getAllLanguagesForCache();
             if (!isset($languages[$languageId])) {
                 $languageId = 0;
             }
         }
         if ($visitor['user_id']) {
             $dw = XenForo_DataWriter::create('XenForo_DataWriter_User');
             $dw->setExistingData($visitor['user_id']);
             $dw->set('language_id', $languageId);
             $dw->save();
             XenForo_Helper_Cookie::deleteCookie('language_id');
         } else {
             XenForo_Helper_Cookie::setCookie('language_id', $languageId, 86400 * 365);
         }
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $this->getDynamicRedirect(false, false));
     } else {
         $languages = XenForo_Application::isRegistered('languages') ? XenForo_Application::get('languages') : XenForo_Model::create('XenForo_Model_Language')->getAllLanguagesForCache();
         $viewParams = array('languages' => $this->getModelFromCache('XenForo_Model_Language')->getAllLanguages(), 'redirect' => $this->getDynamicRedirect(false, false));
         return $this->responseView('XenForo_ViewPublic_Misc_Language', 'language_chooser', $viewParams);
     }
 }
Example #16
0
 protected function _render(array $widget, $positionCode, array $params, XenForo_Template_Abstract $renderTemplateObject)
 {
     $mediaCloudModel = XenForo_Model::create('EWRmedio_Model_Keywords');
     //		$model = XenForo_Model::create('EWRporta_Model_Options');
     //		$option = $model->getOptionById('MediaCloud');
     $options = XenForo_Application::get('options');
     $sidebar['keywords'] = $mediaCloudModel->getKeywordCloud($options->EWRmedio_cloudcount, $options->EWRmedio_mincloud, $options->EWRmedio_maxcloud);
     if ($options->EWRmedio_animatedcloud && $sidebar['keywords']) {
         $sidebar['animated'] = $mediaCloudModel->getAnimatedCloud($sidebar['keywords']);
     }
     /*		$limit = $option['limit'];
     		$mincloud = $option['mincloud'];
     		$maxcloud = $option['maxcloud'];
     		$animated = $option['animated'];
     		
     		$cloud['keywords'] = $mediaCloudModel->getKeywordCloud($limit, $mincloud, $maxcloud);
     
     		if ($animated && $cloud['keywords'])
     		{
     			$cloud['animated'] = $mediaCloudModel->getAnimatedCloud($cloud['keywords']);
     		}*/
     $viewParams = array('MediaCloud' => $sidebar);
     $renderTemplateObject->setParams($viewParams);
     return $renderTemplateObject->render();
 }
Example #17
0
 /**
  *
  * @see XenForo_DataWriter_DiscussionMessage_Post::_messagePreSave()
  */
 protected function _messagePreSave()
 {
     if ($this->isDiscussionFirstMessage() && isset($GLOBALS['XenForo_ControllerPublic_Forum'])) {
         $visitor = XenForo_Visitor::getInstance();
         $this->set('original_poster_th', array('user_id' => $visitor->user_id, 'username' => $visitor->username));
     }
     if (!empty($GLOBALS['XenForo_ControllerPublic_Thread'])) {
         /* @var $controller XenForo_ControllerPublic_Thread */
         $controller = $GLOBALS['XenForo_ControllerPublic_Thread'];
         $this->set('original_poster_th', array('user_id' => $this->get('user_id'), 'username' => $this->get('username')));
         /* @var $userModel XenForo_Model_User */
         $userModel = XenForo_Model::create('XenForo_Model_User');
         $input = $controller->getInput()->filter(array('post_as_user_id' => XenForo_Input::UINT, 'post_as_username' => XenForo_Input::STRING));
         if ($input['post_as_username']) {
             $user = $userModel->getUserByName($input['post_as_username']);
             $input['post_as_user_id'] = $user['user_id'];
         }
         if (!isset($user) && $input['post_as_user_id']) {
             $user = $userModel->getUserById($input['post_as_user_id']);
         }
         if (isset($user) && $userModel->canPostAsDifferentUser($user)) {
             $this->set('user_id', $user['user_id']);
             $this->set('username', $user['username']);
             if (XenForo_Application::get('options')->th_postAsUser_updateLastActivity) {
                 /* @var $userModel XenForo_Model_User */
                 $userModel = $this->getModelFromCache('XenForo_Model_User');
                 $request = $controller->getRequest();
                 $routeMatch = $controller->getRouteMatch();
                 $userModel->updateSessionActivity($user['user_id'], $request->getClientIp(false), $routeMatch->getControllerName(), $routeMatch->getAction(), 'valid', $request->getUserParams());
             }
         }
     }
     parent::_messagePreSave();
 }
Example #18
0
 /**
  * @return XenGallery_Model_Media
  */
 protected function _getMediaModel()
 {
     if (!$this->_mediaModel) {
         $this->_mediaModel = XenForo_Model::create('XenGallery_Model_Media');
     }
     return $this->_mediaModel;
 }
Example #19
0
 public function execute(array $deferred, array $data, $targetRunTime, &$status)
 {
     $data = array_merge(array('position' => 0, 'batch' => 100), $data);
     $data['batch'] = max(1, $data['batch']);
     /* @var $trophyModel XenForo_Model_Trophy */
     $trophyModel = XenForo_Model::create('XenForo_Model_Trophy');
     $trophies = $trophyModel->getAllTrophies();
     if (!$trophies) {
         return true;
     }
     /* @var $userModel XenForo_Model_User */
     $userModel = XenForo_Model::create('XenForo_Model_User');
     $userIds = $userModel->getUserIdsInRange($data['position'], $data['batch']);
     if (sizeof($userIds) == 0) {
         return true;
     }
     $data['position'] = end($userIds);
     $users = $userModel->getUsers(array('user_state' => 'valid', 'is_banned' => 0, 'user_id' => $userIds), array('join' => XenForo_Model_User::FETCH_USER_FULL));
     $userTrophies = $trophyModel->getUserTrophiesByUserIds(array_keys($users));
     foreach ($users as $user) {
         $trophyModel->updateTrophiesForUser($user, isset($userTrophies[$user['user_id']]) ? $userTrophies[$user['user_id']] : array(), $trophies);
         $trophyModel->updateTrophyPointsForUser($user['user_id']);
     }
     $actionPhrase = new XenForo_Phrase('rebuilding');
     $typePhrase = new XenForo_Phrase('trophies');
     $status = sprintf('%s... %s (%s)', $actionPhrase, $typePhrase, XenForo_Locale::numberFormat($data['position']));
     return $data;
 }
Example #20
0
 protected function _postSave()
 {
     parent::_postSave();
     $page = XenForo_Model::create('XenForo_Model_Page')->getPages();
     $this->_getDataRegistryModel()->set('brcnsCacheDataPage', $page);
     $this->getModelFromCache('XenForo_Model_Style')->updateAllStylesLastModifiedDate();
 }
Example #21
0
 public static function runSyncGroups()
 {
     $QCDB = WebSync_Database_Core::getQuartzcoreDatabase();
     $options = XenForo_Application::get('options');
     $userModel = XenForo_Model::create('XenForo_Model_User');
     $userFieldModel = XenForo_Model::create('XenForo_Model_UserField');
     if ($options->syncGroups) {
         $fetchOptions = array('validOnly' => true);
         $users = $userModel->getAllUsers($fetchOptions);
         foreach ($users as $user) {
             $hasUpdated = false;
             $coreId = $userFieldModel->getUserFieldValues($user['user_id'])['CoreID'];
             $secondaryGroups = $user['secondary_group_ids'];
             $groups_raw = file_get_contents($options->restApiUrl . 'group.php?action=getAllGroups');
             $groups = json_decode($groups_raw, true);
             while ($groupId = mysqli_fetch_array($groups)) {
                 $group_raw = file_get_contents($options->restApiUrl . 'group.php?action=getGroup&id=' . $groupId);
                 $group = json_decode($group_raw);
                 foreach ($userGroups as $userGroup) {
                     if ($userGroup == $group['site_group_id']) {
                         $player_raw = file_get_contents($options->restApiUrl . 'player.php?action=updatePlayer&id=' . $coreId . '&primaryGroupID=' . $group['id'] . '&apikey=07af7e75676eab410d1f83937d7afb62');
                         $player = json_decode($player_raw, true);
                         $hasUpdated = $player['hasUpdated'];
                     }
                 }
             }
             if ($hasUpdated == false) {
                 $player_raw = file_get_contents($options->restApiUrl . 'player.php?action=updatePlayer&id=' . $coreId . '&primaryGroupID=2&apikey=07af7e75676eab410d1f83937d7afb62');
                 $player = json_decode($player_raw, true);
                 $hasUpdated = $player['hasUpdated'];
             }
         }
     }
 }
Example #22
0
 protected function _deleteContent(array $content, $reason, array $viewingUser)
 {
     XenForo_Model::create('Nobita_Teams_Model_Team')->deleteTeam($content['team_id'], 'soft');
     /*XenForo_Model_Log::logModeratorAction('team', $content, 'delete_soft', array(
     			'reason' => $reason), $content);
     		*/
 }
Example #23
0
 protected function _getWidgetPageModel()
 {
     if ($this->_widgetPageModel === null) {
         $this->_widgetPageModel = XenForo_Model::create('WidgetFramework_Model_WidgetPage');
     }
     return $this->_widgetPageModel;
 }
Example #24
0
 /**
  * @return XenForo_Model_UserField
  */
 protected function _getUserFieldModel()
 {
     if ($this->_userFieldModel === null) {
         $this->_userFieldModel = XenForo_Model::create('XenForo_Model_UserField');
     }
     return $this->_userFieldModel;
 }
Example #25
0
 /**
  * @param int $position
  * @param array $options
  * @param string $detailedMessage
  * @return bool|int|string|true
  */
 public function rebuild($position = 0, array &$options = array(), &$detailedMessage = '')
 {
     $options['batch'] = max(1, isset($options['batch']) ? $options['batch'] : 10);
     /* @var sonnb_XenGallery_Model_Location $locationModel */
     $locationModel = XenForo_Model::create('sonnb_XenGallery_Model_Location');
     $locations = $locationModel->getLocationsWithoutCoordinate($position, $options['batch']);
     if (count($locations) < 1) {
         return true;
     }
     XenForo_Db::beginTransaction();
     $db = XenForo_Application::getDb();
     /** @var sonnb_XenGallery_Model_Location $locationModel */
     $locationModel = XenForo_Model::create('sonnb_XenGallery_Model_Location');
     foreach ($locations as $locationId => $location) {
         $position = $location['location_id'];
         try {
             $client = XenForo_Helper_Http::getClient($locationModel->getGeocodeUrlForAddress($location['location_name']));
             $response = $client->request('GET');
             $response = @json_decode($response->getBody(), true);
             if (empty($response['results'][0])) {
                 continue;
             }
             $address = $response['results'][0]['formatted_address'];
             $lat = $response['results'][0]['geometry']['location']['lat'];
             $lng = $response['results'][0]['geometry']['location']['lng'];
             $db->update('sonnb_xengallery_location', array('location_name' => $address, 'location_lat' => $lat, 'location_lng' => $lng), array('location_id = ?' => $location['location_id']));
         } catch (Exception $e) {
             continue;
         }
     }
     XenForo_Db::commit();
     $detailedMessage = XenForo_Locale::numberFormat($position);
     return $position;
 }
Example #26
0
 protected function _uninstall_0()
 {
     $this->_getDb()->query("\n\t\t\tDROP TABLE IF EXISTS\n\t\t\t\t`EWRcarta_cache`,\n\t\t\t\t`EWRcarta_history`,\n\t\t\t\t`EWRcarta_pages`,\n\t\t\t\t`EWRcarta_templates`;\n\t\t");
     $this->_getDb()->query("DELETE IGNORE FROM `xf_content_type` WHERE content_type = 'wiki'");
     $this->_getDb()->query("DELETE IGNORE FROM `xf_content_type_field` WHERE content_type = 'wiki'");
     XenForo_Model::create('XenForo_Model_ContentType')->rebuildContentTypeCache();
 }
Example #27
0
 /**
  * Gets the visible reports of this content type for the viewing user.
  *
  * @see XenForo_ReportHandler_Abstract:getVisibleReportsForUser()
  */
 public function getVisibleReportsForUser(array $reports, array $viewingUser)
 {
     $reportsByForum = array();
     foreach ($reports as $reportId => $report) {
         $info = unserialize($report['content_info']);
         $reportsByForum[$info['node_id']][] = $reportId;
     }
     /* @var $forumModel XenForo_Model_Forum */
     $forumModel = XenForo_Model::create('XenForo_Model_Forum');
     $forums = $forumModel->getForumsByIds(array_keys($reportsByForum), array('permissionCombinationId' => $viewingUser['permission_combination_id']));
     $forums = $forumModel->unserializePermissionsInList($forums, 'node_permission_cache');
     foreach ($reportsByForum as $forumId => $forumReports) {
         $remove = false;
         if (!isset($forums[$forumId])) {
             $remove = true;
         } else {
             $forum = $forums[$forumId];
             if (!XenForo_Permission::hasContentPermission($forum['permissions'], 'editAnyPost') && !XenForo_Permission::hasContentPermission($forum['permissions'], 'deleteAnyPost')) {
                 $remove = true;
             }
         }
         if ($remove) {
             foreach ($forumReports as $reportId) {
                 unset($reports[$reportId]);
             }
         }
     }
     return $reports;
 }
Example #28
0
 /**
  * 
  * @return sonnb_XenGallery_Model_Photo
  */
 protected function _getPhotoModel()
 {
     if (!$this->_photoModel) {
         $this->_photoModel = XenForo_Model::create('sonnb_XenGallery_Model_Photo');
     }
     return $this->_photoModel;
 }
Example #29
0
 /**
  * Gets visible moderation queue entries for specified user.
  *
  * @see XenForo_ModerationQueueHandler_Abstract::getVisibleModerationQueueEntriesForUser()
  */
 public function getVisibleModerationQueueEntriesForUser(array $contentIds, array $viewingUser)
 {
     /* @var $resourceModel XenResource_Model_Resource */
     $resourceModel = XenForo_Model::create('XenResource_Model_Resource');
     $resources = $resourceModel->getResourcesByIds($contentIds, array('join' => XenResource_Model_Resource::FETCH_DESCRIPTION));
     $categories = XenForo_Model::create('XenResource_Model_Category')->getAllCategories(array('permissionCombinationId' => $viewingUser['permission_combination_id']));
     $output = array();
     foreach ($resources as $resource) {
         if (!isset($categories[$resource['resource_category_id']])) {
             continue;
         }
         $category = $categories[$resource['resource_category_id']];
         $categoryPermissions = XenForo_Permission::unserializePermissions($category['category_permission_cache']);
         $canManage = true;
         if (!$resourceModel->canViewResourceAndContainer($resource, $category, $null, $viewingUser, $categoryPermissions)) {
             $canManage = false;
         } else {
             if (!XenForo_Permission::hasContentPermission($categoryPermissions, 'editAny') || !XenForo_Permission::hasContentPermission($categoryPermissions, 'deleteAny') || !XenForo_Permission::hasContentPermission($categoryPermissions, 'approveUnapprove')) {
                 $canManage = false;
             }
         }
         if ($canManage) {
             $output[$resource['resource_id']] = array('message' => $resource['description'], 'user' => array('user_id' => $resource['user_id'], 'username' => $resource['username']), 'title' => $resource['title'], 'link' => XenForo_Link::buildPublicLink('resources', $resource), 'contentTypeTitle' => new XenForo_Phrase('resource'), 'titleEdit' => true);
         }
     }
     return $output;
 }
Example #30
0
 public static function installCode()
 {
     if (XenForo_Application::$versionId < 1020070) {
         throw new XenForo_Exception('Digital Point Better Analytics requires XenForo 1.2.0 or newer.', true);
     }
     try {
         $fieldId = 'analytics_cid';
         if (!XenForo_Model::create('XenForo_Model_UserField')->getUserFieldById($fieldId)) {
             $dw = XenForo_DataWriter::create('XenForo_DataWriter_UserField');
             $dw->set('field_id', 'analytics_cid');
             $dw->setExtraData(XenForo_DataWriter_UserField::DATA_TITLE, 'Google Analytics Client ID');
             $dw->setExtraData(XenForo_DataWriter_UserField::DATA_DESCRIPTION, 'Unique identifier used by Google Analytics.');
             $dw->set('display_group', 'preferences');
             $dw->set('display_order', 100);
             $dw->set('field_type', 'textbox');
             $dw->set('match_type', 'none');
             $dw->set('max_length', 0);
             $dw->set('required', 0);
             $dw->set('show_registration', 0);
             if (XenForo_Application::$versionId >= 1030000) {
                 $dw->set('moderator_editable', 0);
             }
             $dw->set('viewable_profile', 0);
             $dw->set('viewable_message', 0);
             $dw->set('user_editable', 'never');
             $dw->save();
         }
     } catch (Zend_Db_Exception $e) {
         return false;
     }
 }