本文整理汇总了PHP中SpecialPage::getTitleFor方法的典型用法代码示例。如果您正苦于以下问题:PHP SpecialPage::getTitleFor方法的具体用法?PHP SpecialPage::getTitleFor怎么用?PHP SpecialPage::getTitleFor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SpecialPage
的用法示例。
在下文中一共展示了SpecialPage::getTitleFor方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
public function execute($subpage)
{
global $wgOut, $wgRequest, $wgUser, $wgCacheEpoch, $wgCityId;
wfProfileIn(__METHOD__);
$this->setHeaders();
$this->mTitle = SpecialPage::getTitleFor('cacheepoch');
if ($this->isRestricted() && !$this->userCanExecute($wgUser)) {
$this->displayRestrictionError();
wfProfileOut(__METHOD__);
return;
}
//no WikiFactory (internal wikis)
if (empty($wgCityId)) {
$wgOut->addHTML(wfMsg('cacheepoch-no-wf'));
wfProfileOut(__METHOD__);
return;
}
if ($wgRequest->wasPosted()) {
$wgCacheEpoch = wfTimestampNow();
$status = WikiFactory::setVarByName('wgCacheEpoch', $wgCityId, $wgCacheEpoch, wfMsg('cacheepoch-wf-reason'));
if ($status) {
$wgOut->addHTML('<h2>' . wfMsg('cacheepoch-updated', $wgCacheEpoch) . '</h2>');
} else {
$wgOut->addHTML('<h2>' . wfMsg('cacheepoch-not-updated') . '</h2>');
}
} else {
$wgOut->addHTML('<h2>' . wfMsg('cacheepoch-header') . '</h2>');
}
$wgOut->addHTML(Xml::openElement('form', array('action' => $this->mTitle->getFullURL(), 'method' => 'post')));
$wgOut->addHTML(wfMsg('cacheepoch-value', $wgCacheEpoch) . '<br>');
$wgOut->addHTML(Xml::submitButton(wfMsg('cacheepoch-submit')));
$wgOut->addHTML(Xml::closeElement('form'));
wfProfileOut(__METHOD__);
}
示例2: execute
function execute($par)
{
/**
* Some satellite ISPs use broken precaching schemes that log people out straight after
* they're logged in (bug 17790). Luckily, there's a way to detect such requests.
*/
if (isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '&') !== false) {
wfDebug("Special:Userlogout request {$_SERVER['REQUEST_URI']} looks suspicious, denying.\n");
throw new HttpError(400, $this->msg('suspicious-userlogout'), $this->msg('loginerror'));
}
$this->setHeaders();
$this->outputHeader();
// Make sure it's possible to log out
$session = MediaWiki\Session\SessionManager::getGlobalSession();
if (!$session->canSetUser()) {
throw new ErrorPageError('cannotlogoutnow-title', 'cannotlogoutnow-text', [$session->getProvider()->describe(RequestContext::getMain()->getLanguage())]);
}
$user = $this->getUser();
$oldName = $user->getName();
$user->logout();
$loginURL = SpecialPage::getTitleFor('Userlogin')->getFullURL($this->getRequest()->getValues('returnto', 'returntoquery'));
$out = $this->getOutput();
$out->addWikiMsg('logouttext', $loginURL);
// Hook.
$injected_html = '';
Hooks::run('UserLogoutComplete', [&$user, &$injected_html, $oldName]);
$out->addHTML($injected_html);
$out->returnToMain();
}
示例3: execute
/**
* Main execution point
*
* @param string $subpage
*/
function execute($subpage)
{
// Anons don't get a watchlist
$this->requireLogin('watchlistanontext');
$output = $this->getOutput();
$request = $this->getRequest();
$this->addHelpLink('Help:Watching pages');
$output->addModules(array('mediawiki.special.changeslist.visitedstatus'));
$mode = SpecialEditWatchlist::getMode($request, $subpage);
if ($mode !== false) {
if ($mode === SpecialEditWatchlist::EDIT_RAW) {
$title = SpecialPage::getTitleFor('EditWatchlist', 'raw');
} elseif ($mode === SpecialEditWatchlist::EDIT_CLEAR) {
$title = SpecialPage::getTitleFor('EditWatchlist', 'clear');
} else {
$title = SpecialPage::getTitleFor('EditWatchlist');
}
$output->redirect($title->getLocalURL());
return;
}
$this->checkPermissions();
$user = $this->getUser();
$opts = $this->getOptions();
$config = $this->getConfig();
if (($config->get('EnotifWatchlist') || $config->get('ShowUpdatedMarker')) && $request->getVal('reset') && $request->wasPosted()) {
$user->clearAllNotifications();
$output->redirect($this->getPageTitle()->getFullURL($opts->getChangedValues()));
return;
}
parent::execute($subpage);
}
示例4: formatLogEntry
static function formatLogEntry($type, $action, $title, $sk, $parameters)
{
$msg = "lqt-log-action-{$action}";
switch ($action) {
case 'merge':
if ($parameters[0]) {
$msg = 'lqt-log-action-merge-across';
} else {
$msg = 'lqt-log-action-merge-down';
}
break;
case 'move':
$smt = new SpecialMoveThread();
$rightsCheck = $smt->checkUserRights($parameters[1] instanceof Title ? $parameters[1] : Title::newFromText($parameters[1]), $parameters[0] instanceof Title ? $parameters[0] : Title::newFromText($parameters[0]));
if ($rightsCheck === true) {
$parameters[] = Message::rawParam(Linker::link(SpecialPage::getTitleFor('MoveThread', $title), wfMessage('revertmove')->text(), array(), array('dest' => $parameters[0])));
} else {
$parameters[] = '';
}
break;
default:
// Give grep a chance to find the usages:
// lqt-log-action-move, lqt-log-action-split, lqt-log-action-subjectedit,
// lqt-log-action-resort, lqt-log-action-signatureedit
$msg = "lqt-log-action-{$action}";
break;
}
array_unshift($parameters, $title->getPrefixedText());
$html = wfMessage($msg, $parameters);
if ($sk === null) {
return StringUtils::delimiterReplace('<', '>', '', $html->inContentLanguage()->parse());
}
return $html->parse();
}
示例5: getActionLinks
public function getActionLinks() {
if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) // Action is hidden
|| $this->entry->getSubtype() !== 'move'
|| !$this->context->getUser()->isAllowed( 'move' ) )
{
return '';
}
$params = $this->extractParameters();
$destTitle = Title::newFromText( $params[3] );
if ( !$destTitle ) {
return '';
}
$revert = Linker::linkKnown(
SpecialPage::getTitleFor( 'Movepage' ),
$this->msg( 'revertmove' )->escaped(),
array(),
array(
'wpOldTitle' => $destTitle->getPrefixedDBkey(),
'wpNewTitle' => $this->entry->getTarget()->getPrefixedDBkey(),
'wpReason' => $this->msg( 'revertmove' )->inContentLanguage()->text(),
'wpMovetalk' => 0
)
);
return $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
}
示例6: doTagRow
function doTagRow($tag, $hitcount)
{
$user = $this->getUser();
$newRow = '';
$newRow .= Xml::tags('td', null, Xml::element('code', null, $tag));
$disp = ChangeTags::tagDescription($tag);
if ($user->isAllowed('editinterface')) {
$disp .= ' ';
$editLink = Linker::link(Title::makeTitle(NS_MEDIAWIKI, "Tag-{$tag}"), $this->msg('tags-edit')->escaped());
$disp .= $this->msg('parentheses')->rawParams($editLink)->escaped();
}
$newRow .= Xml::tags('td', null, $disp);
$msg = $this->msg("tag-{$tag}-description");
$desc = !$msg->exists() ? '' : $msg->parse();
if ($user->isAllowed('editinterface')) {
$desc .= ' ';
$editDescLink = Linker::link(Title::makeTitle(NS_MEDIAWIKI, "Tag-{$tag}-description"), $this->msg('tags-edit')->escaped());
$desc .= $this->msg('parentheses')->rawParams($editDescLink)->escaped();
}
$newRow .= Xml::tags('td', null, $desc);
$active = isset($this->definedTags[$tag]) ? 'tags-active-yes' : 'tags-active-no';
$active = $this->msg($active)->escaped();
$newRow .= Xml::tags('td', null, $active);
$hitcountLabel = $this->msg('tags-hitcount')->numParams($hitcount)->escaped();
$hitcountLink = Linker::link(SpecialPage::getTitleFor('Recentchanges'), $hitcountLabel, array(), array('tagfilter' => $tag));
// add raw $hitcount for sorting, because tags-hitcount contains numbers and letters
$newRow .= Xml::tags('td', array('data-sort-value' => $hitcount), $hitcountLink);
return Xml::tags('tr', null, $newRow) . "\n";
}
示例7: __construct
/**
* Constructor
*/
public function __construct()
{
global $wgUser;
parent::__construct('ChangeAuthor', 'changeauthor');
$this->selfTitle = SpecialPage::getTitleFor('ChangeAuthor');
$this->skin = $wgUser->getSkin();
}
示例8: getFormattedValue
/**
* (non-PHPdoc)
* @see EPPager::getFormattedValue()
*/
protected function getFormattedValue($name, $value)
{
switch ($name) {
case 'id':
$value = Linker::linkKnown(SpecialPage::getTitleFor('Student', $value), htmlspecialchars($this->getLanguage()->formatNum($value, true)));
break;
case 'user_id':
$user = User::newFromId($value);
$name = $user->getRealName() === '' ? $user->getName() : $user->getRealName();
$value = Linker::userLink($value, $name) . Linker::userToolLinks($value, $name);
break;
case 'first_enroll':
case 'last_active':
$value = htmlspecialchars($this->getLanguage()->date($value));
break;
case 'active_enroll':
$value = wfMsgHtml($value === '1' ? 'epstudentpager-yes' : 'epstudentpager-no');
break;
case '_courses_current':
$value = $this->getLanguage()->pipeList(array_map(function (EPCourse $course) {
return $course->getLink();
}, $this->currentObject->getCoursesWithState('current', 'name')));
break;
}
return $value;
}
示例9: logFeedback
public function logFeedback($params, $itemId)
{
$title = SpecialPage::getTitleFor('FeedbackDashboard', $itemId);
$reason = wfMessage('moodbar-log-reason')->params($params['type'], $params['comment'])->text();
$log = new LogPage('moodbar');
$log->addEntry('feedback', $title, $reason);
}
示例10: onInternalParseBeforeLinks
/**
* This method will be called before an article is displayed or previewed.
* For display and preview we strip out the semantic properties and append them
* at the end of the article.
*
* @param Parser $parser
* @param string $text
*/
static public function onInternalParseBeforeLinks( &$parser, &$text ) {
global $smwgStoreAnnotations, $smwgLinksInValues;
SMWParseData::stripMagicWords( $text, $parser );
// Store the results if enabled (we have to parse them in any case,
// in order to clean the wiki source for further processing).
$smwgStoreAnnotations = smwfIsSemanticsProcessed( $parser->getTitle()->getNamespace() );
SMWParserExtensions::$mTempStoreAnnotations = true; // used for [[SMW::on]] and [[SMW:off]]
// Process redirects, if any (it seems that there is indeed no more direct way of getting this info from MW)
if ( $smwgStoreAnnotations ) {
$rt = Title::newFromRedirect( $text );
if ( !is_null( $rt ) ) {
$p = new SMWDIProperty( '_REDI' );
$di = SMWDIWikiPage::newFromTitle( $rt, '__red' );
SMWParseData::getSMWData( $parser )->addPropertyObjectValue( $p, $di );
}
}
// only used in subsequent callbacks, forgotten afterwards
SMWParserExtensions::$mTempParser = $parser;
// In the regexp matches below, leading ':' escapes the markup, as known for Categories.
// Parse links to extract semantic properties.
if ( $smwgLinksInValues ) { // More complex regexp -- lib PCRE may cause segfaults if text is long :-(
$semanticLinkPattern = '/\[\[ # Beginning of the link
(?:([^:][^]]*):[=:])+ # Property name (or a list of those)
( # After that:
(?:[^|\[\]] # either normal text (without |, [ or ])
|\[\[[^]]*\]\] # or a [[link]]
|\[[^]]*\] # or an [external link]
)*) # all this zero or more times
(?:\|([^]]*))? # Display text (like "text" in [[link|text]]), optional
\]\] # End of link
/xu';
$text = preg_replace_callback( $semanticLinkPattern, array( 'SMWParserExtensions', 'parsePropertiesCallback' ), $text );
} else { // Simpler regexps -- no segfaults found for those, but no links in values.
$semanticLinkPattern = '/\[\[ # Beginning of the link
(?:([^:][^]]*):[=:])+ # Property name (or a list of those)
([^\[\]]*) # content: anything but [, |, ]
\]\] # End of link
/xu';
$text = preg_replace_callback( $semanticLinkPattern, array( 'SMWParserExtensions', 'simpleParsePropertiesCallback' ), $text );
}
// Add link to RDF to HTML header.
// TODO: do escaping via Html or Xml class.
SMWOutputs::requireHeadItem(
'smw_rdf', '<link rel="alternate" type="application/rdf+xml" title="' .
htmlspecialchars( $parser->getTitle()->getPrefixedText() ) . '" href="' .
htmlspecialchars(
SpecialPage::getTitleFor( 'ExportRDF', $parser->getTitle()->getPrefixedText() )->getLocalUrl( 'xmlmime=rdf' )
) . "\" />"
);
SMWOutputs::commitToParser( $parser );
return true; // always return true, in order not to stop MW's hook processing!
}
示例11: actionCreate
function actionCreate($action, $article)
{
if ($action != 'create') {
return true;
}
global $wgRequest;
$prefix = $wgRequest->getVal('prefix');
$text = $wgRequest->getVal('title');
if ($prefix && strpos($text, $prefix) !== 0) {
$title = Title::newFromText($prefix . $text);
if (is_null($title)) {
global $wgTitle;
$wgTitle = SpecialPage::getTitleFor('Badtitle');
throw new ErrorPageError('badtitle', 'badtitletext');
} elseif ($title->getArticleID() == 0) {
acRedirect($title, 'edit');
} else {
acRedirect($title, 'create');
}
} elseif ($wgRequest->getVal('section') == 'new' || $article->getID() == 0) {
acRedirect($article->getTitle(), 'edit');
} else {
global $wgOut;
$text = $article->getTitle()->getPrefixedText();
$wgOut->setPageTitle($text);
$wgOut->setHTMLTitle(wfMsg('pagetitle', $text . ' - ' . wfMsg('createbox-create')));
$wgOut->addWikiMsg('createbox-exists');
}
return false;
}
示例12: showLanguage
protected function showLanguage($code, $users)
{
$out = $this->getOutput();
$lang = $this->getLanguage();
$usernames = array_keys($users);
$userStats = $this->getUserStats($usernames);
// Information to be used inside the foreach loop.
$linkInfo = array();
$linkInfo['rc']['title'] = SpecialPage::getTitleFor('Recentchanges');
$linkInfo['rc']['msg'] = $this->msg('supportedlanguages-recenttranslations')->escaped();
$linkInfo['stats']['title'] = SpecialPage::getTitleFor('LanguageStats');
$linkInfo['stats']['msg'] = $this->msg('languagestats')->escaped();
$local = Language::fetchLanguageName($code, $lang->getCode(), 'all');
$native = Language::fetchLanguageName($code, null, 'all');
if ($local !== $native) {
$headerText = $this->msg('supportedlanguages-portallink')->params($code, $local, $native)->escaped();
} else {
// No CLDR, so a less localised header and link title.
$headerText = $this->msg('supportedlanguages-portallink-nocldr')->params($code, $native)->escaped();
}
$out->addHtml(Html::rawElement('h2', array('id' => $code), $headerText));
// Add useful links for language stats and recent changes for the language.
$links = array();
$links[] = Linker::link($linkInfo['stats']['title'], $linkInfo['stats']['msg'], array(), array('code' => $code, 'suppresscomplete' => '1'), array('known', 'noclasses'));
$links[] = Linker::link($linkInfo['rc']['title'], $linkInfo['rc']['msg'], array(), array('translations' => 'only', 'trailer' => "/" . $code), array('known', 'noclasses'));
$linkList = $lang->listToText($links);
$out->addHTML("<p>" . $linkList . "</p>\n");
$this->makeUserList($users, $userStats);
}
示例13: sendGiftNotificationEmail
/**
* Sends the notification about a new gift to the user who received the
* gift, if the user wants notifications about new gifts and their e-mail
* is confirmed.
*
* @param $user_id_to Integer: user ID of the receiver of the gift
* @param $user_from Mixed: name of the user who sent the gift
* @param $gift_id Integer: ID number of the given gift
* @param $type Integer: gift type; unused
*/
public function sendGiftNotificationEmail( $user_id_to, $user_from, $gift_id, $type ) {
$gift = Gifts::getGift( $gift_id );
$user = User::newFromId( $user_id_to );
$user->loadFromDatabase();
if ( $user->isEmailConfirmed() && $user->getIntOption( 'notifygift', 1 ) ) {
$giftsLink = SpecialPage::getTitleFor( 'ViewGifts' );
$updateProfileLink = SpecialPage::getTitleFor( 'UpdateProfile' );
if ( trim( $user->getRealName() ) ) {
$name = $user->getRealName();
} else {
$name = $user->getName();
}
$subject = wfMsgExt( 'gift_received_subject', 'parsemag',
$user_from,
$gift['gift_name']
);
$body = wfMsgExt( 'gift_received_body', 'parsemag',
$name,
$user_from,
$gift['gift_name'],
$giftsLink->getFullURL(),
$updateProfileLink->getFullURL()
);
$user->sendMail( $subject, $body );
}
}
示例14: execute
function execute($query)
{
global $wgOut;
wfProfileIn('SpecialURIResolver::execute (SMW)');
if (is_null($query) || trim($query) === '') {
if (stristr($_SERVER['HTTP_ACCEPT'], 'RDF')) {
$wgOut->redirect(SpecialPage::getTitleFor('ExportRDF')->getFullURL(array('stats' => '1')), '303');
} else {
$this->setHeaders();
$wgOut->addHTML('<p>' . wfMessage('smw_uri_doc', 'http://www.w3.org/2001/tag/issues.html#httpRange-14')->parse() . '</p>');
}
} else {
$query = SMWExporter::decodeURI($query);
$query = str_replace('_', '%20', $query);
$query = urldecode($query);
$title = Title::newFromText($query);
// In case the title doesn't exists throw an error page
if ($title === null) {
$wgOut->showErrorPage('badtitle', 'badtitletext');
} else {
$wgOut->redirect(stristr($_SERVER['HTTP_ACCEPT'], 'RDF') ? SpecialPage::getTitleFor('ExportRDF', $title->getPrefixedText())->getFullURL(array('xmlmime' => 'rdf')) : $title->getFullURL(), '303');
}
}
wfProfileOut('SpecialURIResolver::execute (SMW)');
}
示例15: execute
public function execute()
{
$params = $this->extractRequestParams();
global $wgFeed, $wgFeedClasses, $wgSitename, $wgLanguageCode;
if (!$wgFeed) {
$this->dieUsage('Syndication feeds are not available', 'feed-unavailable');
}
if (!isset($wgFeedClasses[$params['feedformat']])) {
$this->dieUsage('Invalid subscription feed type', 'feed-invalid');
}
global $wgMiserMode;
if ($params['showsizediff'] && $wgMiserMode) {
$this->dieUsage('Size difference is disabled in Miser Mode', 'sizediffdisabled');
}
$msg = wfMessage('Contributions')->inContentLanguage()->text();
$feedTitle = $wgSitename . ' - ' . $msg . ' [' . $wgLanguageCode . ']';
$feedUrl = SpecialPage::getTitleFor('Contributions', $params['user'])->getFullURL();
$target = $params['user'] == 'newbies' ? 'newbies' : Title::makeTitleSafe(NS_USER, $params['user'])->getText();
$feed = new $wgFeedClasses[$params['feedformat']]($feedTitle, htmlspecialchars($msg), $feedUrl);
$pager = new ContribsPager($this->getContext(), array('target' => $target, 'namespace' => $params['namespace'], 'year' => $params['year'], 'month' => $params['month'], 'tagFilter' => $params['tagfilter'], 'deletedOnly' => $params['deletedonly'], 'topOnly' => $params['toponly'], 'showSizeDiff' => $params['showsizediff']));
$feedItems = array();
if ($pager->getNumRows() > 0) {
foreach ($pager->mResult as $row) {
$feedItems[] = $this->feedItem($row);
}
}
ApiFormatFeedWrapper::setResult($this->getResult(), $feed, $feedItems);
}