/**
  * Returns delete note if applicable.
  * 
  * @return	string
  */
 public function getDeleteNote()
 {
     if ($this->logEntry === null) {
         return '';
     }
     return WCF::getLanguage()->getDynamicVariable('filebase.entry.file.deleted', array('file' => $this));
 }
Exemple #2
0
 /**
  * @see	\wcf\form\IForm::save()
  */
 public function save()
 {
     AbstractForm::save();
     // set cookies
     if ($this->useCookies == 1) {
         UserAuthenticationFactory::getInstance()->getUserAuthentication()->storeAccessData($this->user, $this->username, $this->password);
     }
     $oldSessionID = WCF::getSession()->sessionID;
     // change user
     WCF::getSession()->changeUser($this->user);
     // get redirect url
     $this->checkURL();
     $this->saved();
     if (isset($_REQUEST['s']) && $_REQUEST['s'] == $oldSessionID && $oldSessionID != WCF::getSession()->sessionID) {
         // force instant redirect to avoid issues with non-cookie login and the already defined SID_ARG_* constants
         if (preg_match('~[?&]s=[a-f0-9]{40}~i', $this->url)) {
             $this->url = preg_replace('~([?&])s=[a-f0-9]{40}~i', '$1s=' . WCF::getSession()->sessionID, $this->url);
         } else {
             $this->url .= mb_strpos($this->url, '?') === false ? '?' : '&';
             $this->url .= 's=' . WCF::getSession()->sessionID;
         }
         HeaderUtil::redirect($this->url);
         exit;
     }
     // redirect to url
     WCF::getTPL()->assign('__hideUserMenu', true);
     HeaderUtil::delayedRedirect($this->url, WCF::getLanguage()->get('wcf.user.login.redirect'));
     exit;
 }
 /**
  * @see	\wcf\system\option\IOptionType::getData()
  */
 public function getData(Option $option, $newValue)
 {
     $number = str_replace(WCF::getLanguage()->get('wcf.global.thousandsSeparator'), '', $newValue);
     $number = str_replace(WCF::getLanguage()->get('wcf.global.decimalPoint'), '.', $number);
     if (!preg_match('~^(?:\\d*)\\.?\\d+~', $number, $matches)) {
         return 0;
     }
     $number = $matches[0];
     if (preg_match('/[kmgt]i?b$/i', $newValue, $multiplier)) {
         switch (mb_strtolower($multiplier[0])) {
             case 'tb':
                 $number *= 1000;
             case 'gb':
                 $number *= 1000;
             case 'mb':
                 $number *= 1000;
             case 'kb':
                 $number *= 1000;
                 break;
             case 'tib':
                 $number *= 1024;
             case 'gib':
                 $number *= 1024;
             case 'mib':
                 $number *= 1024;
             case 'kib':
                 $number *= 1024;
                 break;
         }
     }
     return $number;
 }
 /**
  * @see	\wcf\system\user\activity\event\IUserActivityEvent::prepare()
  */
 public function prepare(array $events)
 {
     $commentIDs = array();
     foreach ($events as $event) {
         $commentIDs[] = $event->objectID;
     }
     $commentList = new CommentList();
     $commentList->getConditionBuilder()->add('comment.commentID IN (?)', array($objectIDs));
     $commentList->readObjects();
     $comments = $commentList->getObjects();
     foreach ($events as $event) {
         if (isset($comments[$event->objectID])) {
             $comment = $comments[$event->objectID];
             $page = PageCache::getInstance()->getPage($comment->objectID);
             if ($page !== null) {
                 if (!$page->canRead()) {
                     continue;
                 }
                 $event->setIsAccessible();
                 $text = WCF::getLanguage()->getDynamicVariable('wcf.user.profile.recentActivity.pageComment', array('page' => $page));
                 $event->setTitle($text);
                 $event->setDescription($comment->getFormattedMessage());
                 continue;
             }
         }
         $event->setIsOrphaned();
     }
 }
 /**
  * @see	\wcf\system\option\IOptionType::getData()
  */
 public function getData(Option $option, $newValue)
 {
     $newValue = str_replace(' ', '', $newValue);
     $newValue = str_replace(WCF::getLanguage()->get('wcf.global.thousandsSeparator'), '', $newValue);
     $newValue = str_replace(WCF::getLanguage()->get('wcf.global.decimalPoint'), '.', $newValue);
     return floatval($newValue);
 }
 /**
  * @see	\wcf\system\user\activity\event\IUserActivityEvent::prepare()
  */
 public function prepare(array $events)
 {
     $responseIDs = array();
     foreach ($events as $event) {
         $responseIDs[] = $event->objectID;
     }
     $responseList = new CommentResponseList();
     $responseList->getConditionBuilder()->add("comment_response.responseID IN (?)", array($responseIDs));
     $responseList->readObjects();
     $responses = $responseList->getObjects();
     $commentIDs = $comments = array();
     foreach ($responses as $response) {
         $commentIDs[] = $response->commentID;
     }
     if (!empty($commentIDs)) {
         $commentList = new CommentList();
         $commentList->getConditionBuilder()->add("comment.commentID IN (?)", array($commentIDs));
         $commentList->readObjects();
         $comments = $commentList->getObjects();
     }
     // fetch news entries
     $entryIDs = $entry = array();
     foreach ($comments as $comment) {
         $entryIDs[] = $comment->objectID;
     }
     if (!empty($entryIDs)) {
         $entryList = new ViewableEntryList();
         $entryList->getConditionBuilder()->add("news_entry.entryID IN (?)", array($entryIDs));
         $entryList->readObjects();
         $entry = $entryList->getObjects();
     }
     $userIDs = $user = array();
     foreach ($comments as $comment) {
         $userIDs[] = $comment->userID;
     }
     if (!empty($userIDs)) {
         $userList = new UserList();
         $userList->getConditionBuilder()->add("user_table.userID IN (?)", array($userIDs));
         $userList->readObjects();
         $users = $userList->getObjects();
     }
     foreach ($events as $event) {
         if (isset($responses[$event->objectID])) {
             $response = $responses[$event->objectID];
             $comment = $comments[$response->commentID];
             if (isset($entry[$comment->objectID]) && isset($users[$comment->userID])) {
                 $newsEntry = $entry[$comment->objectID];
                 if (!$newsEntry->canRead()) {
                     continue;
                 }
                 $event->setIsAccessible();
                 $text = WCF::getLanguage()->getDynamicVariable('cms.recentActivity.newsCommentResponse', array('commentAuthor' => $users[$comment->userID], 'entry' => $newsEntry));
                 $event->setTitle($text);
                 $event->setDescription($response->getExcerpt());
                 continue;
             }
         }
         $event->setIsOrphaned();
     }
 }
 /**
  * @see	\wcf\page\IPage::readData()
  */
 public function readData()
 {
     parent::readData();
     // add breadcrumbs
     WCF::getBreadcrumbs()->add(new Breadcrumb(WCF::getLanguage()->get('cms.header.menu.news'), LinkHandler::getInstance()->getLink('NewsOverview', array('application' => 'cms'))));
     WCF::getBreadcrumbs()->add($this->entry->getDecoratedObject()->getBreadcrumb());
 }
 /**
  * @see	\wcf\system\search\acp\IACPSearchResultProvider::search()
  */
 public function search($query)
 {
     if (!WCF::getSession()->getPermission('admin.system.package.canUpdatePackage') && !WCF::getSession()->getPermission('admin.system.package.canUninstallPackage')) {
         return array();
     }
     $results = array();
     // search by language item
     $conditions = new PreparedStatementConditionBuilder();
     $conditions->add("languageID = ?", array(WCF::getLanguage()->languageID));
     $conditions->add("languageItem LIKE ?", array('wcf.acp.package.packageName.package%'));
     $conditions->add("languageItemValue LIKE ?", array('%' . $query . '%'));
     $sql = "SELECT\t\tlanguageItem\n\t\t\tFROM\t\twcf" . WCF_N . "_language_item\n\t\t\t" . $conditions;
     $statement = WCF::getDB()->prepareStatement($sql);
     $statement->execute($conditions->getParameters());
     $packageIDs = array();
     while ($row = $statement->fetchArray()) {
         $packageIDs[] = str_replace('wcf.acp.package.packageName.package', '', $row['languageItem']);
     }
     $conditions = new PreparedStatementConditionBuilder(false);
     if (!empty($packageIDs)) {
         $conditions->add("packageID IN (?)", array($packageIDs));
     }
     $sql = "SELECT\t*\n\t\t\tFROM\twcf" . WCF_N . "_package\n\t\t\tWHERE\tpackageName LIKE ?\n\t\t\t\tOR package LIKE ?\n\t\t\t\t" . (count($conditions->getParameters()) ? "OR " . $conditions : "");
     $statement = WCF::getDB()->prepareStatement($sql);
     $statement->execute(array_merge(array($query . '%', $query . '%'), $conditions->getParameters()));
     while ($package = $statement->fetchObject('wcf\\data\\package\\Package')) {
         $results[] = new ACPSearchResult($package->getName(), LinkHandler::getInstance()->getLink('Package', array('id' => $package->packageID, 'title' => $package->getName())));
     }
     return $results;
 }
 public function prepare(array $events)
 {
     $objectIDs = array();
     foreach ($events as $event) {
         $objectIDs[] = $event->objectID;
     }
     // comments
     $commentList = new CommentList();
     $commentList->getConditionBuilder()->add("comment.commentID IN (?)", array($objectIDs));
     $commentList->readObjects();
     $comments = $commentList->getObjects();
     // get news
     $newsIDs = array();
     foreach ($comments as $comment) {
         $newsIDs[] = $comment->objectID;
     }
     $list = new NewsList();
     $list->getConditionBuilder()->add("news.newsID IN (?)", array($newsIDs));
     $list->readObjects();
     $newss = $list->getObjects();
     foreach ($events as $event) {
         if (isset($comments[$event->objectID])) {
             $comment = $comments[$event->objectID];
             if (isset($newss[$comment->objectID])) {
                 $news = $newss[$comment->objectID];
                 $text = WCF::getLanguage()->getDynamicVariable('wcf.user.profile.recentActivity.newsComment', array('news' => $news));
                 $event->setTitle($text);
                 $event->setDescription($comment->getFormattedMessage());
                 $event->setIsAccessible();
             }
         } else {
             $event->setIsOrphaned();
         }
     }
 }
 /**
  * @see    \wcf\system\like\IViewableLikeProvider::prepare()
  */
 public function prepare(array $likes)
 {
     $entryIDs = array();
     foreach ($likes as $like) {
         $entryIDs[] = $like->objectID;
     }
     // fetch entries
     $entryList = new EntryList();
     $entryList->setObjectIDs($entryIDs);
     $entryList->readObjects();
     $entries = $entryList->getObjects();
     // set message
     foreach ($likes as $like) {
         if (isset($entries[$like->objectID])) {
             $entry = $entries[$like->objectID];
             // check permissions
             if (!$entry->canRead()) {
                 continue;
             }
             $like->setIsAccessible();
             // short output
             $text = WCF::getLanguage()->getDynamicVariable('wcf.like.title.de.incendium.cms.like.likeableNews', array('entry' => $entry, 'like' => $like));
             $like->setTitle($text);
             // output
             $like->setDescription($entry->getExcerpt());
         }
     }
 }
 /**
  * @see	\wcf\system\SingletonFactory::init()
  */
 protected function init()
 {
     // set default tags
     $this->addTag('description', 'description', WCF::getLanguage()->get(META_DESCRIPTION));
     $this->addTag('keywords', 'keywords', WCF::getLanguage()->get(META_KEYWORDS));
     $this->addTag('og:site_name', 'og:site_name', WCF::getLanguage()->get(PAGE_TITLE), true);
 }
Exemple #12
0
 /**
  * @see	\wcf\system\bbcode\IBBCode::getParsedTag()
  */
 public function getParsedTag(array $openingTag, $content, array $closingTag, BBCodeParser $parser)
 {
     if ($parser->getOutputType() == 'text/html') {
         $quoteLink = !empty($openingTag['attributes'][1]) ? $openingTag['attributes'][1] : '';
         $externalQuoteLink = !empty($openingTag['attributes'][1]) ? !ApplicationHandler::getInstance()->isInternalURL($openingTag['attributes'][1]) : false;
         if (!$externalQuoteLink) {
             $quoteLink = preg_replace('~^https?://~', RouteHandler::getProtocol(), $quoteLink);
         }
         $quoteAuthor = !empty($openingTag['attributes'][0]) ? $openingTag['attributes'][0] : '';
         $quoteAuthorObject = null;
         if ($quoteAuthor && !$externalQuoteLink) {
             $quoteAuthorLC = mb_strtolower(StringUtil::decodeHTML($quoteAuthor));
             foreach (MessageEmbeddedObjectManager::getInstance()->getObjects('com.woltlab.wcf.quote') as $user) {
                 if (mb_strtolower($user->username) == $quoteAuthorLC) {
                     $quoteAuthorObject = $user;
                     break;
                 }
             }
         }
         WCF::getTPL()->assign(array('content' => $content, 'quoteLink' => $quoteLink, 'quoteAuthor' => $quoteAuthor, 'quoteAuthorObject' => $quoteAuthorObject, 'isExternalQuoteLink' => $externalQuoteLink));
         return WCF::getTPL()->fetch('quoteBBCodeTag');
     } else {
         if ($parser->getOutputType() == 'text/simplified-html') {
             return WCF::getLanguage()->getDynamicVariable('wcf.bbcode.quote.text', array('content' => $content, 'cite' => !empty($openingTag['attributes'][0]) ? $openingTag['attributes'][0] : '')) . "\n";
         }
     }
 }
 /**
  * Returns the label of the input element.
  * 
  * @param	string		$identifier
  * @return	string
  */
 protected function getLabel($identifier)
 {
     if (isset($this->labels[$identifier])) {
         return '<label for="' . $identifier . '">' . WCF::getLanguage()->get($this->labels[$identifier]) . '</label>';
     }
     return '';
 }
 public function readData()
 {
     parent::readData();
     WCF::getBreadcrumbs()->add(new Breadcrumb(WCF::getLanguage()->get('cms.page.news'), LinkHandler::getInstance()->getLink('NewsCategoryList', array('application' => 'cms'))));
     $excludedCategoryIDs = array_diff(NewsCategory::getAccessibleCategoryIDs(), NewsCategory::getAccessibleCategoryIDs(array('canAddNews')));
     $categoryTree = new NewsCategoryNodeTree('de.codequake.cms.category.news', 0, false, $excludedCategoryIDs);
     $this->categoryList = $categoryTree->getIterator();
     $this->categoryList->setMaxDepth(0);
     if (empty($_POST)) {
         $dateTime = DateUtil::getDateTimeByTimestamp(TIME_NOW);
         $dateTime->setTimezone(WCF::getUser()->getTimeZone());
         $this->time = $dateTime->format('c');
     } else {
         $dateTime = DateUtil::getDateTimeByTimestamp(@strtotime($this->time));
         $dateTime->setTimezone(WCF::getUser()->getTimeZone());
         $this->time = $dateTime->format('c');
     }
     // default values
     if (empty($_POST)) {
         $this->username = WCF::getSession()->getVar('username');
         // multilingualism
         if (!empty($this->availableContentLanguages)) {
             if ($this->languageID) {
                 $language = LanguageFactory::getInstance()->getUserLanguage();
                 $this->languageID = $language->languageID;
             }
             if (!isset($this->availableContentLanguages[$this->languageID])) {
                 $languageIDs = array_keys($this->availableContentLanguages);
                 $this->languageID = array_shift($languageIDs);
             }
         }
     }
 }
 /**
  * @see	\wcf\system\user\activity\event\IUserActivityEvent::prepare()
  */
 public function prepare(array $events)
 {
     $objectIDs = array();
     foreach ($events as $event) {
         $objectIDs[] = $event->objectID;
     }
     // fetch entrys
     $entryList = new EntryList();
     $entryList->setObjectIDs($objectIDs);
     $entryList->readObjects();
     $entries = $entryList->getObjects();
     // set message
     foreach ($events as $event) {
         if (isset($entries[$event->objectID])) {
             if (!$entries[$event->objectID]->canRead()) {
                 continue;
             }
             $event->setIsAccessible();
             // title
             $text = WCF::getLanguage()->getDynamicVariable('filebase.recentActivity.entry', array('entry' => $entries[$event->objectID]));
             $event->setTitle($text);
             // description
             $event->setDescription($entries[$event->objectID]->getExcerpt());
         } else {
             $event->setIsOrphaned();
         }
     }
 }
	/**
	 * @see	wcf\system\option\IOptionType::getData()
	 */
	public function getData(Option $option, $newValue) {
		$number = StringUtil::replace(WCF::getLanguage()->get('wcf.global.thousandsSeparator'), '', $newValue);
		$d = preg_quote(WCF::getLanguage()->get('wcf.global.decimalPoint'), '~');
		if (!preg_match('~^(?:\d*)(?:'.$d.')?\d+~', $number, $matches)) return 0;
		
		$number = $matches[0];
		if (preg_match('/[kmgt]i?b$/i', $newValue, $multiplier)) {
			switch (StringUtil::toLowerCase($multiplier[0])) {
				case 'tb':
					$number *= 1000;
				case 'gb':
					$number *= 1000;
				case 'mb':
					$number *= 1000;
				case 'kb':
					$number *= 1000;
				break;
				case 'tib':
					$number *= 1024;
				case 'gib':
					$number *= 1024;
				case 'mib':
					$number *= 1024;
				case 'kib':
					$number *= 1024;
				break;
			}
		}
		
		return $number;
	}
 /**
  * @see	\wcf\page\IPage::readData()
  */
 public function readData()
 {
     parent::readData();
     $serverList = new PackageUpdateServerList();
     $serverList->readObjects();
     foreach ($serverList as $server) {
         if (preg_match('~https?://store.woltlab.com/(?P<wcfMajorRelease>[a-z]+)/~', $server->serverURL, $matches)) {
             $this->updateServers[$matches['wcfMajorRelease']] = $server;
         }
     }
     foreach ($this->products as $packageUpdateID => $product) {
         $wcfMajorRelease = $product['wcfMajorRelease'];
         if (!isset($this->productData[$wcfMajorRelease])) {
             $this->productData[$wcfMajorRelease] = array();
         }
         $languageCode = WCF::getLanguage()->languageCode;
         $packageName = isset($product['packageName'][$languageCode]) ? $product['packageName'][$languageCode] : $product['packageName']['en'];
         $this->productData[$wcfMajorRelease][$packageUpdateID] = array('author' => $product['author'], 'authorURL' => $product['authorURL'], 'package' => $product['package'], 'packageName' => $packageName, 'pluginStoreURL' => $product['pluginStoreURL'], 'version' => array('available' => $product['lastVersion'], 'installed' => ''), 'status' => isset($this->updateServers[$wcfMajorRelease]) ? 'install' : 'unavailable');
         $package = PackageCache::getInstance()->getPackageByIdentifier($product['package']);
         if ($package !== null) {
             $this->productData[$wcfMajorRelease][$packageUpdateID]['version']['installed'] = $package->packageVersion;
             if (Package::compareVersion($product['lastVersion'], $package->packageVersion, '>')) {
                 $this->productData[$wcfMajorRelease][$packageUpdateID]['status'] = 'update';
             } else {
                 if (Package::compareVersion($product['lastVersion'], $package->packageVersion, '=')) {
                     $this->productData[$wcfMajorRelease][$packageUpdateID]['status'] = 'upToDate';
                 }
             }
         }
         if (isset($this->updateServers[$wcfMajorRelease]) && $this->updateServers[$wcfMajorRelease]->lastUpdateTime == 0) {
             $this->productData[$wcfMajorRelease][$packageUpdateID]['status'] = 'requireUpdate';
         }
     }
 }
 /**
  * @see	\wcf\system\user\activity\event\IUserActivityEvent::prepare()
  */
 public function prepare(array $events)
 {
     $newsIDs = array();
     foreach ($events as $event) {
         $newsIDs[] = $event->objectID;
     }
     $newsList = new ViewableNewsList();
     $newsList->getConditionBuilder()->add("news.newsID IN (?)", array($newsIDs));
     $newsList->readObjects();
     $newsEntries = $newsList->getObjects();
     foreach ($events as $event) {
         if (isset($newsEntries[$event->objectID])) {
             $news = $newsEntries[$event->objectID];
             if (!$news->canRead()) {
                 continue;
             }
             $event->setIsAccessible();
             $text = WCF::getLanguage()->getDynamicVariable('news.recentActivity.likedNews', array('news' => $news));
             $event->setTitle($text);
             $event->setDescription($news->getExcerpt());
         } else {
             $event->setIsOrphaned();
         }
     }
 }
 /**
  * @see	\wcf\page\IPage::readData()
  */
 public function readData()
 {
     parent::readData();
     // stats
     if (LINKLIST_ENABLE_STATISTICS) {
         $this->stats = array_merge(StatsCacheBuilder::getInstance()->getData(), UserStatsCacheBuilder::getInstance()->getData());
     }
     // get categories
     $categoryTree = new LinklistCategoryNodeTree('de.incendium.linklist.category');
     $this->categoryList = $categoryTree->getIterator();
     $this->categoryList->setMaxDepth(0);
     // get featured entries
     $this->featuredEntryList = new AccessibleEntryList();
     $this->featuredEntryList->getConditionBuilder()->add('entry.isFeatured = ?', array(1));
     $this->featuredEntryList->sqlLimit = 10;
     $this->featuredEntryList->sqlOrderBy = 'RAND()';
     $this->featuredEntryList->readObjects();
     // remove default breadcrumb entry and set current page as 'website'
     if (WCF::isLandingPage()) {
         MetaTagHandler::getInstance()->addTag('og:url', 'og:url', LinkHandler::getInstance()->getLink('Linklist', array('application' => 'linklist')), true);
         MetaTagHandler::getInstance()->addTag('og:type', 'og:type', 'website', true);
         MetaTagHandler::getInstance()->addTag('og:title', 'og:title', WCF::getLanguage()->get(PAGE_TITLE), true);
         MetaTagHandler::getInstance()->addTag('og:description', 'og:description', WCF::getLanguage()->get(PAGE_DESCRIPTION), true);
     }
 }
 /**
  * @see	\wcf\system\template\IModifierTemplatePlugin::execute()
  */
 public function execute($tagArgs, TemplateEngine $tplObj)
 {
     if (($lang = $tplObj->get('__language')) === null) {
         $lang = WCF::getLanguage();
     }
     return $lang->getDynamicVariable($tagArgs[0]);
 }
Exemple #21
0
	/**
	 * Handles a http request.
	 *
	 * @param	string		$application
	 * @param	boolean		$isACPRequest
	 */
	public function handle($application = 'wcf', $isACPRequest = false) {
		$this->isACPRequest = $isACPRequest;
		
		if (!RouteHandler::getInstance()->matches()) {
			throw new SystemException("Cannot handle request, no valid route provided.");
		}
		
		// build request
		$this->buildRequest($application);
		
		// handle offline mode
		if (!$isACPRequest && defined('OFFLINE') && OFFLINE) {
			if (!WCF::getSession()->getPermission('admin.general.canViewPageDuringOfflineMode') && !$this->activeRequest->isAvailableDuringOfflineMode()) {
				if (isset($_SERVER['X-Requested-With']) && ($_SERVER['X-Requested-With'] == 'XMLHttpRequest')) {
					throw new AJAXException(WCF::getLanguage()->get('wcf.ajax.error.permissionDenied'), AJAXException::INSUFFICIENT_PERMISSIONS);
				}
				else {
					WCF::getTPL()->assign(array(
						'templateName' => 'offline'
					));
					WCF::getTPL()->display('offline');
				}
				
				exit;
			}
		}
		
		// start request
		$this->activeRequest->execute();
	}
 /**
  * @see	\wcf\system\comment\manager\ICommentManager::getTitle()
  */
 public function getTitle($objectTypeID, $objectID, $isResponse = false)
 {
     if ($isResponse) {
         return WCF::getLanguage()->get('filebase.commentResponse');
     }
     return WCF::getLanguage()->getDynamicVariable('filebase.comment');
 }
	/**
	 * @see	wcf\system\clipboard\action\IClipboardAction::execute()
	 */
	public function execute(array $objects, $actionName) {
		$item = parent::execute($objects, $actionName);
		
		if ($item === null) {
			return null;
		}
		
		// handle actions
		switch ($actionName) {
			case 'assignToGroup':
				$item->setURL(LinkHandler::getInstance()->getLink('UserAssignToGroup'));
			break;
			
			case 'delete':
				$item->addInternalData('confirmMessage', WCF::getLanguage()->getDynamicVariable('wcf.clipboard.item.com.woltlab.wcf.user.delete.confirmMessage', array(
					'count' => $item->getCount()
				)));
			break;
			
			case 'exportMailAddress':
				$item->setURL(LinkHandler::getInstance()->getLink('UserEmailAddressExport'));
			break;
			
			case 'sendMail':
				$item->setURL(LinkHandler::getInstance()->getLink('UserMail'));
			break;
		}
		
		return $item;
	}
Exemple #24
0
 /**
  * @see	\wcf\page\IPage::readData()
  */
 public function readData()
 {
     parent::readData();
     // add breadcrumbs
     if (MODULE_MEMBERS_LIST) {
         WCF::getBreadcrumbs()->add(new Breadcrumb(WCF::getLanguage()->get('wcf.user.members'), LinkHandler::getInstance()->getLink('MembersList')));
     }
 }
 /**
  * @see	\wcf\page\IPage::readParameters()
  */
 public function readParameters()
 {
     parent::readParameters();
     // registration disabled
     if (!WCF::getUser()->userID && REGISTER_DISABLED) {
         throw new NamedUserException(WCF::getLanguage()->get('wcf.user.register.error.disabled'));
     }
 }
 /**
  * Returns the available payment methods for selection.
  * 
  * @return	array<string>
  */
 public function getPaymentMethodSelection()
 {
     $selection = array();
     foreach ($this->objectTypes as $objectType) {
         $selection[$objectType->objectType] = WCF::getLanguage()->get('wcf.payment.' . $objectType->objectType);
     }
     return $selection;
 }
Exemple #27
0
	/**
	 * Returns the confirm message for package uninstallation.
	 * 
	 * @return	array<string>
	 */
	public function getConfirmMessage() {
		return array(
			'confirmMessage' => WCF::getLanguage()->getDynamicVariable('wcf.acp.package.uninstallation.confirmDependentPackages', array(
				'package' => $this->packageEditor->getDecoratedObject(),
				'showDependentPackages' => true
			))
		);
	}
Exemple #28
0
 /**
  * @see	\wcf\system\user\online\location\IUserOnlineLocation::get()
  */
 public function get(UserOnline $user, $languageVariable = '')
 {
     $page = PageCache::getInstance()->getPage($user->objectID);
     if (!$page || !$page->canRead()) {
         return '';
     }
     return WCF::getLanguage()->getDynamicVariable($languageVariable, array('page' => $page));
 }
 /**
  * @see	\wcf\system\option\IOptionType::getFormElement()
  */
 public function getFormElement(Option $option, $value)
 {
     $selectOptions = CaptchaHandler::getInstance()->getCaptchaSelection();
     if ($option->allowemptyvalue) {
         $selectOptions = array_merge(array('' => WCF::getLanguage()->get('wcf.captcha.useNoCaptcha')), $selectOptions);
     }
     return WCF::getTPL()->fetch('selectOptionType', 'wcf', array('selectOptions' => $selectOptions, 'option' => $option, 'value' => $value));
 }
 /**
  * @see	\wcf\data\IEditableObject::create()
  */
 public static function create(array $parameters = array())
 {
     $descriptions = array();
     if (isset($parameters['description']) && is_array($parameters['description'])) {
         if (count($parameters['description']) > 1) {
             $descriptions = $parameters['description'];
             $parameters['description'] = '';
         } else {
             $parameters['description'] = reset($parameters['description']);
         }
     }
     $cronjob = parent::create($parameters);
     // save cronjob description
     if (!empty($descriptions)) {
         // set default value
         if (isset($descriptions[''])) {
             $defaultValue = $descriptions[''];
         } else {
             if (isset($descriptions['en'])) {
                 // fallback to English
                 $defaultValue = $descriptions['en'];
             } else {
                 if (isset($descriptions[WCF::getLanguage()->getFixedLanguageCode()])) {
                     // fallback to the language of the current user
                     $defaultValue = $descriptions[WCF::getLanguage()->getFixedLanguageCode()];
                 } else {
                     // fallback to first description
                     $defaultValue = reset($descriptions);
                 }
             }
         }
         // fetch data directly from database during framework installation
         if (!PACKAGE_ID) {
             $sql = "SELECT\t*\n\t\t\t\t\tFROM\twcf" . WCF_N . "_language_category\n\t\t\t\t\tWHERE\tlanguageCategory = ?";
             $statement = WCF::getDB()->prepareStatement($sql);
             $statement->execute(array('wcf.acp.cronjob'));
             $languageCategory = $statement->fetchObject('wcf\\data\\language\\category\\LanguageCategory');
             $languages = new LanguageList();
             $languages->readObjects();
         } else {
             $languages = LanguageFactory::getInstance()->getLanguages();
             $languageCategory = LanguageFactory::getInstance()->getCategory('wcf.acp.cronjob');
         }
         $sql = "INSERT INTO\twcf" . WCF_N . "_language_item\n\t\t\t\t\t\t(languageID, languageItem, languageItemValue, languageCategoryID, packageID)\n\t\t\t\tVALUES\t\t(?, ?, ?, ?, ?)\n\t\t\t\tON DUPLICATE KEY UPDATE languageItemValue = VALUES(languageItemValue)";
         $statement = WCF::getDB()->prepareStatement($sql);
         foreach ($languages as $language) {
             $value = $defaultValue;
             if (isset($descriptions[$language->languageCode])) {
                 $value = $descriptions[$language->languageCode];
             }
             $statement->execute(array($language->languageID, 'wcf.acp.cronjob.description.cronjob' . $cronjob->cronjobID, $value, $languageCategory->languageCategoryID, $cronjob->packageID));
         }
         // update cronjob
         $cronjobEditor = new CronjobEditor($cronjob);
         $cronjobEditor->update(array('description' => 'wcf.acp.cronjob.description.cronjob' . $cronjob->cronjobID));
     }
     return $cronjob;
 }