本文整理汇总了PHP中utils::getLastPatchId方法的典型用法代码示例。如果您正苦于以下问题:PHP utils::getLastPatchId方法的具体用法?PHP utils::getLastPatchId怎么用?PHP utils::getLastPatchId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类utils
的用法示例。
在下文中一共展示了utils::getLastPatchId方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testGetLastPatchIdwithConc
function testGetLastPatchIdwithConc()
{
// $patch = new Patch('', '', '', '');
$lastPatchId = utils::getLastPatchId('cooper1', $this->p2pBot1->bot->wikiServer);
//assert
$this->assertFalse($lastPatchId);
//false because there's no previous patch
//unset ($patch);
/*1st patch*/
$pageName = "Patch:localhost/wiki19010";
$Patchcontent = 'Patch: patchID: [[patchID::Patch:Localhost/wiki19010]]
onPage: [[onPage::cooper1]] hasOperation: [[hasOperation::localhost/wiki1902;
Insert;( 5053487913627490220,42601d9c1af38da968d697efde65a473 ) 901;content]]
previous: [[previous::none]]';
$res = $this->p2pBot1->createPage($pageName, $Patchcontent);
//$patch = new Patch('', '', '', '');
$lastPatchId = utils::getLastPatchId('cooper1', $this->p2pBot1->bot->wikiServer);
//assert
$this->assertEquals('Patch:Localhost/wiki19010', $lastPatchId);
//unset ($patch);
/*2nd patch*/
$pageName = "Patch:localhost/wiki19020";
$Patchcontent = 'Patch: patchID: [[patchID::Patch:Localhost/wiki19020]]
onPage: [[onPage::cooper1]] hasOperation: [[hasOperation::localhost/wiki1902;
Insert;( 5053487913627490220,42601d9c1af38da968d697efde65a473 ) 901;content]]
previous: [[previous::Patch:Localhost/wiki19010]]';
$res = $this->p2pBot1->createPage($pageName, $Patchcontent);
//$patch = new Patch('', '', '', '');
$lastPatchId = utils::getLastPatchId('cooper1', $this->p2pBot1->bot->wikiServer);
//assert
$this->assertEquals('Patch:Localhost/wiki19020', $lastPatchId);
//unset ($patch);
/*3rd patch*/
$pageName = "Patch:localhost/wiki18020";
$Patchcontent = 'Patch: patchID: [[patchID::Patch:Localhost/wiki18020]]
onPage: [[onPage::cooper1]] hasOperation: [[hasOperation::localhost/wiki1902;
Insert;( 5053487913627490220,42601d9c1af38da968d697efde65a473 ) 901;content]]
previous: [[previous::Patch:Localhost/wiki19020]]';
$res = $this->p2pBot1->createPage($pageName, $Patchcontent);
//$patch = new Patch('', '', '', '');
$lastPatchId = utils::getLastPatchId('cooper1', $this->p2pBot1->bot->wikiServer);
//assert
$this->assertEquals('Patch:Localhost/wiki18020', $lastPatchId);
//unset ($patch);
/*4th patch*/
$pageName = "Patch:localhost/wiki18030";
$Patchcontent = 'Patch: patchID: [[patchID::Patch:Localhost/wiki18030]]
onPage: [[onPage::cooper1]] hasOperation: [[hasOperation::localhost/wiki1902;
Insert;( 5053487913627490220,42601d9c1af38da968d697efde65a473 ) 901;content]]
previous: [[previous::Patch:Localhost/wiki19020]]';
$res = $this->p2pBot1->createPage($pageName, $Patchcontent);
//$patch = new Patch('', '', '', '');
$lastPatchId = utils::getLastPatchId('cooper1', $this->p2pBot1->bot->wikiServer);
//assert
$patchid = array_shift($lastPatchId);
$this->assertEquals('Patch:Localhost/wiki18020', $patchid);
$patchid = array_shift($lastPatchId);
$this->assertEquals('Patch:Localhost/wiki18030', $patchid);
// unset ($patch);
/*5th patch*/
$pageName = "Patch:localhost/wiki17000";
$Patchcontent = 'Patch: patchID: [[patchID::Patch:Localhost/wiki17000]]
onPage: [[onPage::cooper1]] hasOperation: [[hasOperation::localhost/wiki1902;
Insert;( 5053487913627490220,42601d9c1af38da968d697efde65a473 ) 901;content]]
previous: [[previous::Patch:Localhost/wiki18030;Patch:Localhost/wiki18020]]';
$res = $this->p2pBot1->createPage($pageName, $Patchcontent);
//$patch = new Patch('', '', '', '');
$lastPatchId = utils::getLastPatchId('cooper1', $this->p2pBot1->bot->wikiServer);
//assert
$this->assertEquals('Patch:Localhost/wiki17000', $lastPatchId);
//unset ($patch);
/*6th patch*/
$pageName = "Patch:localhost/wiki19050";
$Patchcontent = 'Patch: patchID: [[patchID::Patch:Localhost/wiki19050]]
onPage: [[onPage::cooper1]] hasOperation: [[hasOperation::localhost/wiki1902;
Insert;( 5053487913627490220,42601d9c1af38da968d697efde65a473 ) 901;content]]
previous: [[previous::Patch:Localhost/wiki17000]]';
$res = $this->p2pBot1->createPage($pageName, $Patchcontent);
//$patch = new Patch('', '', '', '');
$lastPatchId = utils::getLastPatchId('cooper1', $this->p2pBot1->bot->wikiServer);
//assert
$this->assertEquals('Patch:Localhost/wiki19050', $lastPatchId);
//unset ($patch);
}
示例2: storePage
public function storePage($pageName, $rev)
{
wfDebugLog('p2p', '- ' . __METHOD__ . ' - ' . __CLASS__ . "- {$pageName} ({$rev} ; {$this->mPatchId} ; ) ");
global $wgUser;
$text = "\n[[Special:ArticleAdminPage|DSMW Admin functions]]\n\n" . "==Features==\n[[patchID::" . $this->mPatchId . "| ]]\n\n" . "'''SiteID:''' [[siteID::" . $this->mSiteId . "]]\n\n" . "'''SiteUrl:''' [[siteUrl::" . $this->mSiteUrl . "]]\n\n" . "'''Rev:''' [[Rev::" . $rev . "]]\n\n";
if ($this->mRemote) {
$text .= "'''Remote Patch'''\n\n";
} else {
$this->mPrevPatch = utils::getLastPatchId($pageName);
if ($this->mPrevPatch == false) {
$this->mPrevPatch = "none";
}
$this->mCausal = utils::searchCausalLink($pageName, $this->mCausal);
}
$text .= "'''Date:''' " . date(DATE_RFC822) . "\n\n";
if ($this->mAttachment) {
$text .= "'''Date of upload of the Attachment:''' [[DateAtt::" . $this->mDate . "]]\n\n" . "'''Mime:''' [[Mime::" . $this->mMime . "]]\n\n" . "'''Size:''' [[Size::" . $this->mSize . "]]\n\n" . "'''Url:''' [[Url::" . $this->mUrl . "]]\n\n";
}
$text .= "'''User:''' " . $wgUser->getName() . "\n\nThis is a patch of the article: [[onPage::" . $pageName . "]] <br>\n\n";
if (!$this->mAttachment) {
$text .= "==Operations of the patch==\n\n{| " . "class='wikitable' border='1' style='text-align:left; width:80%;'" . "\n|-\n" . "!bgcolor=#c0e8f0 scope=col | Type\n" . "!bgcolor=#c0e8f0 scope=col | Content\n" . "|-\n";
$liste_op = "";
$i = 1;
//op counter
foreach ($this->mOperations as $operation) {
$lineContent = $operation->getLineContent();
$lineContent1 = utils::contentEncoding($lineContent);
//base64 encoding
$type = "";
if ($operation->type() == LogootOperation::INSERT) {
// instanceof LogootIns)
$type = "Insert";
} else {
$type = "Delete";
}
$operationID = utils::generateID();
$liste_op .= '|[[hasOperation::' . $operationID . ';' . $type . ';' . $operation->getLogootPosition()->toString() . ';' . $lineContent1 . '| ]]' . $type;
//displayed text
$lineContent2 = $lineContent;
$liste_op .= "\n|<nowiki>" . $lineContent2 . " : " . $operation->getLogootPosition()->toString() . "</nowiki>\n|-\n";
}
$text .= $liste_op . '|}';
}
if (is_array($this->mPrevPatch)) {
$text .= "\n\n==Previous patch(es)==\n[[previous::";
foreach ($this->mPrevPatch as $prev) {
$text .= $prev . ';';
}
$text .= ']]';
} else {
$text .= "\n\n==Previous patch(es)==\n[[previous::" . $this->mPrevPatch . ']]';
}
$text .= "\n\n==Causal Link==\n[[causal::" . $this->mCausal . ']]';
$title = Title::newFromText($this->mID, PATCH);
$article = new Article($title);
$article->doEdit($text, $summary = "");
wfDebugLog('p2p', '- ' . __METHOD__ . ' - ' . __CLASS__ . "- ############# Début ###################");
wfDebugLog('p2p', $text);
wfDebugLog('p2p', '- ' . __METHOD__ . ' - ' . __CLASS__ . "- ############# Fin ###################");
}
示例3: integrate
/**
* A ChangeSet has patches which has operations
* this function is used to integrate these operations
* It's a local changeSet (downloaded from a remote site)
* @param <String> $changeSetId with NS
*/
function integrate($changeSetId, $patchIdList, $relatedPushServer, $csName)
{
//global $wgScriptExtension;
// $patchIdList = getPatchIdList($changeSetId);
// $lastPatch = utils::getLastPatchId($pageName);
global $wgServerName, $wgScriptPath, $wgScriptExtension, $wgOut;
$urlServer = 'http://' . $wgServerName . $wgScriptPath . "/index.php/{$csName}";
wfDebugLog('p2p', '@@@@@@@@@@@@@@@@@@@ - function integrate : ' . $changeSetId);
$i = 1;
$j = count($patchIdList);
$pages = array();
foreach ($patchIdList as $patchId) {
$name = 'patch';
$sub = substr($patchId, 6, 3);
wfDebugLog('p2p', ' -> patchId : ' . $patchId);
if (!utils::pageExist($patchId)) {
//if this patch exists already, don't apply it
wfDebugLog('p2p', ' -> patch unexist');
$url = utils::lcfirst($relatedPushServer) . "/api.php?action=query&meta=patch&papatchId=" . $patchId . '&format=xml';
wfDebugLog('p2p', ' -> getPatch request url ' . $url);
$patch = utils::file_get_contents_curl($url);
/*test if it is a xml file. If not, the server is not reachable via the url
* Then we try to reach it with the .php5 extension
*/
if (strpos($patch, "<?xml version=\"1.0\"?>") === false) {
$url = utils::lcfirst($relatedPushServer) . "/api.php5?action=query&meta=patch&papatchId=" . $patchId . '&format=xml';
wfDebugLog('p2p', ' -> getPatch request url ' . $url);
$patch = utils::file_get_contents_curl($url);
}
if (strpos($patch, "<?xml version=\"1.0\"?>") === false) {
$patch = false;
}
//echo $patch;
if ($patch === false) {
throw new MWException(__METHOD__ . ': Cannot connect to Push Server (Patch API)');
}
$patch = trim($patch);
wfDebugLog('p2p', ' -> patch content :' . $patch);
$dom = new DOMDocument();
$dom->loadXML($patch);
$patchs = $dom->getElementsByTagName($name);
//when the patch is not found, mostly when the id passed
//through the url is wrong
if (empty($patchs) || is_null($patchs)) {
throw new MWException(__METHOD__ . ': Error: Patch not found!');
}
// $patchID = null;
foreach ($patchs as $p) {
if ($p->hasAttribute("onPage")) {
$onPage = $p->getAttribute('onPage');
}
if ($p->hasAttribute("previous")) {
$previousPatch = $p->getAttribute('previous');
}
if ($p->hasAttribute("siteID")) {
$siteID = $p->getAttribute('siteID');
}
if ($p->hasAttribute("mime")) {
$Mime = $p->getAttribute('mime');
}
if ($p->hasAttribute("size")) {
$Size = $p->getAttribute('size');
}
if ($p->hasAttribute("url")) {
$Url = $p->getAttribute('url');
}
if ($p->hasAttribute("DateAtt")) {
$Date = $p->getAttribute('DateAtt');
}
if ($p->hasAttribute("siteUrl")) {
$SiteUrl = $p->getAttribute('siteUrl');
}
if ($p->hasAttribute("causal")) {
$causal = $p->getAttribute('causal');
}
}
$operations = null;
$op = $dom->getElementsByTagName('operation');
foreach ($op as $o) {
$operations[] = $o->firstChild->nodeValue;
}
$lastPatch = utils::getLastPatchId($onPage);
if ($lastPatch == false) {
$lastPatch = 'none';
}
// foreach ($operations as $operation) {
// $operation = operationToLogootOp($operation);
// if ($operation!=false && is_object($operation)) {
// logootIntegrate($operation, $onPage);
// }
// }
if (!in_array($onPage, $pages)) {
$onPage1 = str_replace(array(' '), array('_'), $onPage);
utils::writeAndFlush("<span style=\"margin-left:60px;\">Page: <A HREF=" . 'http://' . $wgServerName . $wgScriptPath . "/index.php/{$onPage1}>" . $onPage . "</A></span><br/>");
//.........这里部分代码省略.........
示例4: storePage
public function storePage($pageName, $rev)
{
global $wgUser;
$text = '
[[Special:ArticleAdminPage|DSMW Admin functions]]
==Features==
[[patchID::' . $this->mPatchId . '| ]]
\'\'\'SiteID:\'\'\' [[siteID::' . $this->mSiteId . ']]
\'\'\'SiteUrl:\'\'\' [[siteUrl::' . $this->mSiteUrl . ']]
\'\'\'Rev:\'\'\' [[Rev::' . $rev . ']]
';
if ($this->mRemote) {
$text .= '\'\'\'Remote Patch\'\'\'
';
} else {
$this->mPrevPatch = utils::getLastPatchId($pageName);
if ($this->mPrevPatch == false) {
$this->mPrevPatch = "none";
}
$this->mCausal = utils::searchCausalLink($pageName, $this->mCausal);
}
$text .= '\'\'\'Date:\'\'\' ' . date(DATE_RFC822) . '
';
if ($this->mAttachment) {
$text .= '\'\'\'Date of upload of the Attachment:\'\'\' [[DateAtt::' . $this->mDate . ']]
\'\'\'Mime:\'\'\' [[Mime::' . $this->mMime . ']]
\'\'\'Size:\'\'\' [[Size::' . $this->mSize . ']]
\'\'\'Url:\'\'\' [[Url::' . $this->mUrl . ']]
';
}
$text .= '\'\'\'User:\'\'\' ' . $wgUser->getName() . '
This is a patch of the article: [[onPage::' . $pageName . ']] <br>
';
if ($this->mAttachment == false) {
$text .= '==Operations of the patch==
{| class="wikitable" border="1" style="text-align:left; width:80%;"
|-
!bgcolor=#c0e8f0 scope=col | Type
!bgcolor=#c0e8f0 scope=col | Content
|-
';
if ($this->mRemote == true) {
foreach ($this->mOperations as $op) {
$opArr = explode(";", $op);
$text .= '|[[hasOperation::' . $op . '| ]]' . $opArr[1] . '
|<nowiki>' . utils::contentDecoding($opArr[3]) . '</nowiki>
|-
';
}
} else {
$i = 1;
// op counter
foreach ($this->mOperations as $operation) {
$lineContent = $operation->getLineContent();
$lineContent1 = utils::contentEncoding($lineContent);
// base64 encoding
$type = $operation instanceof LogootIns ? 'Insert' : 'Delete';
$operationID = utils::generateID();
$text .= '|[[hasOperation::' . $operationID . ';' . $type . ';' . $operation->getLogootPosition()->toString() . ';' . $lineContent1 . '| ]]' . $type;
// displayed text
$lineContent2 = $lineContent;
$text .= '
|<nowiki>' . $lineContent2 . '</nowiki>
|-
';
}
}
$text .= '|}';
}
if (is_array($this->mPrevPatch)) {
$text .= '
==Previous patch(es)==
[[previous::';
foreach ($this->mPrevPatch as $prev) {
$text .= $prev . ';';
}
$text .= ']]';
} else {
$text .= '
==Previous patch(es)==
[[previous::' . $this->mPrevPatch . ']]';
}
$text .= '
//.........这里部分代码省略.........
示例5: testPushWithChangeSet1
public function testPushWithChangeSet1()
{
$this->testCreatePush();
$this->assertTrue($this->p2pBot1->createPage('Arches', "content arches [[Category:titi]]", 'failed to create page Arches (' . $this->p2pBot1->bot->results . ')'));
$this->assertTrue($this->p2pBot1->createPage('Paris11', 'content Paris11 [[Category:titi]]', 'failed to create page Paris11 (' . $this->p2pBot1->bot->results . ')'));
$this->assertTrue($this->p2pBot1->push('PushFeed:PushCity11'), 'failed to push ' . $pushName . ' (' . $this->p2pBot1->bot->results . ')');
// assert that pushHead attribute is not null and the changeSet page exist
$pushFound = getSemanticRequest($this->p2pBot1->bot->wikiServer, '[[name::PushFeed:PushCity11]]', '-3FhasPushHead');
$this->assertNotEquals('', $pushFound[0]);
$CSIDFound = $pushFound[0];
assertPageExist($this->p2pBot1->bot->wikiServer, $CSIDFound);
// assert the changeSet created is ok
$CSFound = getSemanticRequest($this->p2pBot1->bot->wikiServer, '[[changeSetID::' . $CSIDFound . ']]', '-3FchangeSetID/-3FinPushFeed/-3FpreviousChangeSet/-3FhasPatch');
// assert inPushFeed
$this->assertEquals(strtolower('PushFeed:PushCity11'), strtolower($CSFound[1]), 'failed to push PushCity11, ChangeSet push name must be PushFeed:' . $pushName . ' but ' . $CSFound[1] . ' was found');
// assert previousChangeSet
$this->assertEquals('none', strtolower($CSFound[2]), 'failed to push PushCity11, ChangeSet previous must be None but ' . $CSFound[2] . ' was found');
$patchCS = explode(',', $CSFound[3]);
$this->assertTrue(count($patchCS) == 2, 'failed to push PushCity11, ChangeSet must contains 2 patchs but ' . count($patchCS) . ' patchs were found');
// assert patchs contains in the changeSet is ok
$lastPatchNancy = utils::getLastPatchId('Arches', $this->p2pBot1->bot->wikiServer);
$lastPatchParis = utils::getLastPatchId('Paris11', $this->p2pBot1->bot->wikiServer);
$assert1 = strtolower($lastPatchNancy) == strtolower($patchCS[0]) || strtolower($lastPatchNancy) == strtolower($patchCS[1]);
$assert2 = strtolower($lastPatchParis) == strtolower($patchCS[0]) || strtolower($lastPatchParis) == strtolower($patchCS[1]);
$this->assertTrue($assert1 && $assert2, 'failed to push ' . $pushName . ', wrong patch in changeSet');
}