本文整理汇总了PHP中Parser::setTitle方法的典型用法代码示例。如果您正苦于以下问题:PHP Parser::setTitle方法的具体用法?PHP Parser::setTitle怎么用?PHP Parser::setTitle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Parser
的用法示例。
在下文中一共展示了Parser::setTitle方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setUp
/** setup a basic parser object */
protected function setUp()
{
parent::setUp();
$contLang = Language::factory('en');
$this->setMwGlobals(array('wgLanguageCode' => 'en', 'wgContLang' => $contLang));
$this->testParser = new Parser();
$this->testParser->Options(ParserOptions::newFromUserAndLang(new User(), $contLang));
# initialize parser output
$this->testParser->clearState();
# Needs a title to do magic word stuff
$title = Title::newFromText('Tests');
$title->mRedirect = false;
# Else it needs a db connection just to check if it's a redirect (when deciding the page language)
$this->testParser->setTitle($title);
}
示例2: setUp
function setUp()
{
global $wgTitle, $wgParser;
$wgParser = new Parser();
$wgParser->Options(new ParserOptions());
$wgParser->clearState();
$wgParser->setTitle($wgTitle);
}
示例3: testRender
/**
* @dataProvider parametersProvider
* @since 2.0
* @param array $parameters
*/
public function testRender(array $parameters)
{
$parserHook = $this->getInstance();
$parser = new \Parser();
$parser->mOptions = new \ParserOptions();
$parser->clearState();
$parser->setTitle(\Title::newMainPage());
$renderResult = $parserHook->renderTag(null, $parameters, $parser);
$this->assertInternalType('string', $renderResult);
}
示例4: testRender
/**
* Triggers the render process with different sets of parameters to see if
* no errors or notices are thrown and the result indeed is a string.
*
* @dataProvider parametersProvider
* @since 2.0
* @param array $parameters
* @param string|null $expected
*/
public function testRender(array $parameters, $expected = null)
{
$parserHook = $this->getInstance();
$parser = new \Parser();
$parser->mOptions = new \ParserOptions();
$parser->clearState();
$parser->setTitle(\Title::newMainPage());
$renderResult = call_user_func_array(array($parserHook, 'renderFunction'), array_merge(array(&$parser), $parameters));
if (is_string($renderResult)) {
$this->assertTrue(true);
} else {
$this->assertInternalType('array', $renderResult);
$this->assertInternalType('string', $renderResult[0]);
}
if ($expected !== null) {
$this->assertEquals($expected, $renderResult[0]);
}
}
示例5: meaneditor_wiki2html
function meaneditor_wiki2html($article, $user, &$edit_context, &$wiki_text)
{
global $wgUploadPath, $wgArticlePath;
wfLoadExtensionMessages('MeanEditor');
$meaneditor_page_src = str_replace('$1', '', $wgArticlePath);
# Detect code sections (lines beginning with whitespace)
if (preg_match('/^[ \\t]/m', $wiki_text)) {
return deny_visual_because_of(wfMsg('reason_whitespace'), $edit_context);
}
# Detect custom tags: only <br />, super/sub-scripts and references are supported at the moment
# TODO: expand the safe list
# Especially problematic tags (do not even think about supporting them):
# <p> (would require special handling to disable normal paragraphing, confusing)
# <h*> (for headings not in TOC, strange closing tag)
# <b>,<i> (not to be confused with ''emphasis'' as <em>)
# <pre>, <nowiki> (if something gets implemented, better be the common leading spaces)
$wiki_text = str_replace('<br />', '__TEMP__TEMP__br', $wiki_text);
$wiki_text = str_replace('<br>', '__TEMP__TEMP__br', $wiki_text);
$wiki_text = str_replace('<references />', '__TEMP__TEMP__allreferences', $wiki_text);
$wiki_text = str_replace('<ref>', '__TEMP__TEMP__ref', $wiki_text);
$wiki_text = str_replace('</ref>', '__TEMP__TEMP__cref', $wiki_text);
$wiki_text = str_replace('<sup>', '__TEMP__TEMP__sup', $wiki_text);
$wiki_text = str_replace('</sup>', '__TEMP__TEMP__csup', $wiki_text);
$wiki_text = str_replace('<sub>', '__TEMP__TEMP__sub', $wiki_text);
$wiki_text = str_replace('</sub>', '__TEMP__TEMP__csub', $wiki_text);
if (!(strpos($wiki_text, '<') === FALSE && strpos($wiki_text, '>') === FALSE)) {
return deny_visual_because_of(wfMsg('reason_tag'), $edit_context);
}
$wiki_text = str_replace('__TEMP__TEMP__br', '<br />', $wiki_text);
$wiki_text = str_replace('__TEMP__TEMP__allreferences', 'references_here', $wiki_text);
$wiki_text = str_replace('__TEMP__TEMP__sup', '<sup>', $wiki_text);
$wiki_text = str_replace('__TEMP__TEMP__csup', '</sup>', $wiki_text);
$wiki_text = str_replace('__TEMP__TEMP__sub', '<sub>', $wiki_text);
$wiki_text = str_replace('__TEMP__TEMP__csub', '</sub>', $wiki_text);
$wiki_text = str_replace('__TEMP__TEMP__ref', '<ref>', $wiki_text);
$wiki_text = str_replace('__TEMP__TEMP__cref', '</ref>', $wiki_text);
# This characters are problematic only at line beginning
$unwanted_chars_at_beginning = array(':', ';');
foreach ($unwanted_chars_at_beginning as $uc) {
if (preg_match('/^' . $uc . '/m', $wiki_text)) {
return deny_visual_because_of(wfMsg('reason_indent', $uc), $edit_context);
}
}
# <hr>, from Parser.php... TODO: other regexps can be directly stolen from there
$wiki_text = preg_replace('/(^|\\n)-----*/', '\\1<hr />', $wiki_text);
#Collapse multiple newlines
# TODO: Compare Wikipedia:Don't_use_line_breaks
$wiki_text = preg_replace("/\n\n+/", "\n\n", $wiki_text);
$wiki_text = preg_replace('/^(.+?)$/m', '<p>$1</p>', $wiki_text);
#$wiki_text=preg_replace('/\'\'\'(.*?)\'\'\'/','<strong>$1</strong>',$wiki_text);
#$wiki_text=preg_replace('/\'\'(.*?)\'\'/','<em>$1</em>',$wiki_text);
$obp = new Parser();
$obp->clearState();
$obp->setTitle('');
$obp->mOptions = new ParserOptions();
$wiki_text = $obp->doAllQuotes($wiki_text);
#Substitute ===
$wiki_text = preg_replace('/(?:<p>|)\\s*===(.*?)===\\s*(?:<\\/p>|)/', '<h3>\\1</h3>', $wiki_text);
#Substitute ==
$wiki_text = preg_replace('/(?:<p>|)\\s*==(.*?)==\\s*(?:<\\/p>|)/', '<h2>\\1</h2>', $wiki_text);
#Substitute [[Image:a]]
#FIXME: do not require $wgHashedUploadDirectory = false
$wiki_text = preg_replace('/\\[\\[Image:(.*?)\\]\\]/', '<img alt="\\1" src="' . $wgUploadPath . '/\\1" />', $wiki_text);
#Create [[a|b]] syntax for every link
#TODO: What to do for the [[word (detailed disambiguation)|]] 'pipe trick'?
$wiki_text = preg_replace('/\\[\\[([^|]*?)\\]\\]/', '[[\\1|\\1]]', $wiki_text);
#Substitute [[ syntax (internal links)
if (preg_match('/\\[\\[([^|\\]]*?):(.*?)\\|(.*?)\\]\\]/', $wiki_text, $unwanted_matches)) {
return deny_visual_because_of(wfMsg('reason_special_link', $unwanted_matches[0]), $edit_context);
}
#Preserve #section links from the draconic feature detection
$wiki_text = preg_replace_callback('/\\[\\[(.*?)\\|(.*?)\\]\\]/', create_function('$matches', 'return "[[".str_replace("#","__TEMP_MEAN_hash",$matches[1])."|".str_replace("#","__TEMP_MEAN_hash",$matches[2])."]]";'), $wiki_text);
$wiki_text = preg_replace_callback('/<a href="(.*?)">/', create_function('$matches', 'return "<a href=\\"".str_replace("#","__TEMP_MEAN_hash",$matches[1])."\\">";'), $wiki_text);
$wiki_text = preg_replace('/\\[\\[(.*?)\\|(.*?)\\]\\]/', '<a href="' . $meaneditor_page_src . '\\1">\\2</a>', $wiki_text);
#Create [a b] syntax for every link
#(must be here, so that internal links have already been replaced)
$wiki_text = preg_replace('/\\[([^| ]*?)\\]/', '[\\1 _autonumber_]', $wiki_text);
#Substitute [ syntax (external links)
$wiki_text = preg_replace('/\\[(.*?) (.*?)\\]/', '<a href="\\1">\\2</a>', $wiki_text);
#Lists support
$wiki_text = preg_replace("/<p># (.*?)<\\/p>/", '<ol><li>\\1</li></ol>', $wiki_text);
$wiki_text = preg_replace("/<p>\\* (.*?)<\\/p>/", '<ul><li>\\1</li></ul>', $wiki_text);
$wiki_text = preg_replace("/<\\/ol>\n<ol>/", "\n", $wiki_text);
$wiki_text = preg_replace("/<\\/ul>\n<ul>/", "\n", $wiki_text);
# Crude but safe detection of unsupported features
# In the future, this could be loosened a lot, should also detect harmless uses
# TODO: Compare with MediaWiki security policy, ensure no mediawiki code can create unsafe HTML in the editor
# Allow numbered entities, these occur far too often and should be innocous
$wiki_text = str_replace('&#', '__TEMP__MEAN__nument', $wiki_text);
$unwanted_chars = array('[', ']', '|', '{', '}', '#', '*');
foreach ($unwanted_chars as $uc) {
if (!($unwanted_match = strpos($wiki_text, $uc) === FALSE)) {
return deny_visual_because_of(wfMsg('reason_forbidden_char', $uc), $edit_context);
}
}
# Restore numbered entities
$wiki_text = str_replace('__TEMP__MEAN__nument', '&#', $wiki_text);
#<ref> support
global $refs_div;
global $refs_num;
//.........这里部分代码省略.........
示例6: unsetApproval
/**
* Unsets the approved revision for this page in the approved_revs DB
* table; calls a "links update" on this page so that category
* information can be stored correctly, as well as info for
* extensions such as Semantic MediaWiki; and logs the action.
*/
public static function unsetApproval($title)
{
global $egApprovedRevsBlankIfUnapproved;
self::deleteRevisionApproval($title);
$parser = new Parser();
$parser->setTitle($title);
if ($egApprovedRevsBlankIfUnapproved) {
$text = '';
} else {
$text = self::getPageText($title);
}
$options = new ParserOptions();
$parser->parse($text, $title, $options);
$u = new LinksUpdate($title, $parser->getOutput());
$u->doUpdate();
self::setPageSearchText($title, $text);
$log = new LogPage('approval');
$log->addEntry('unapprove', $title, '');
wfRunHooks('ApprovedRevsRevisionUnapproved', array($parser, $title));
}
示例7: unsetApprovedFileInDB
public static function unsetApprovedFileInDB($title)
{
$parser = new Parser();
$parser->setTitle($title);
$fileTitle = $title->getDBkey();
$dbr = wfGetDB(DB_MASTER);
$dbr->delete('approved_revs_files', array('file_title' => $fileTitle));
// the unapprove page method had LinksUpdate and Parser objects here, but the page text has
// not changed at all with a file approval, so I don't think those are necessary.
$log = new LogPage('approval');
$log->addEntry('unapprove', $title, '');
wfRunHooks('ApprovedRevsFileRevisionUnapproved', array($parser, $title));
}
示例8: drawDiagram
function drawDiagram(Parser $parser, PPFrame $frame)
{
global $wgTitle;
$sumEditing = 0;
$pagesList = CDParameters::getInstance()->getPagesList();
$pageWithChanges = array();
foreach ($pagesList as $thisPageTitle) {
$names = getPageEditorsFromDb($thisPageTitle);
$changesForUsersForPage = getCountsOfEditing($names);
$thisPageTitleKey = $thisPageTitle->getText();
if ($thisPageTitle->getNsText() != "") {
$thisPageTitleKey = $thisPageTitle->getNsText() . ":" . $thisPageTitleKey;
// we can't use Title object this is a key with an array so we generate the Ns:Name key
}
$pageWithChanges[$thisPageTitleKey] = $changesForUsersForPage;
$sumEditing += evaluateCountOfAllEdits($changesForUsersForPage);
}
$text = drawPreamble();
foreach ($pageWithChanges as $thisPageTitleKey => $changesForUsersForPage) {
$drawer = CDDrawerFactory::getDrawer($changesForUsersForPage, $sumEditing, $thisPageTitleKey);
$text .= $drawer->draw();
}
$text .= "}</graphviz>";
// $text = getPie($changesForUsers, $sumEditing, $thisPageTitle);
$parser->disableCache();
$parser->setTitle(Title::newFromText("Main_page"));
$frame->getTitle(Title::newFromText("Main_page"));
$text = $parser->recursiveTagParse($text, $frame);
//this stuff just render my page
return $text;
}