本文整理汇总了PHP中manager::storeModel方法的典型用法代码示例。如果您正苦于以下问题:PHP manager::storeModel方法的具体用法?PHP manager::storeModel怎么用?PHP manager::storeModel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类manager
的用法示例。
在下文中一共展示了manager::storeModel方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: uploadComplete
function uploadComplete($image)
{
global $wgServerName, $wgScriptPath, $wgServer, $wgVersion;
$urlServer = 'http://' . $wgServerName . $wgScriptPath;
//$classe = get_class($image);
if (compareMWVersion($wgVersion, '1.16.0') == -1) {
$localfile = $image->mLocalFile;
} else {
$localfile = $image->getLocalFile();
}
$path = utils::prepareString($localfile->mime, $localfile->size, $wgServer . $localfile->url);
if (!file_exists($path)) {
$dbr = wfGetDB(DB_SLAVE);
$lastRevision = Revision::loadFromTitle($dbr, $localfile->getTitle());
if ($lastRevision->getPrevious() == null) {
$rev_id = 0;
} else {
$rev_id = $lastRevision->getPrevious()->getId();
}
$revID = $lastRevision->getId();
$model = manager::loadModel($rev_id);
$patch = new Patch(false, true, null, $urlServer, $rev_id, null, null, null, $localfile->mime, $localfile->size, $localfile->url, null);
$patch->storePage($localfile->getTitle(), $revID);
//stores the patch in a wikipage
manager::storeModel($revID, $sessionId = session_id(), $model, $blobCB = 0);
}
return true;
}
示例2: logootIntegrateAtt
/**
*Integrates for attachment
*
* @param <String> $article
*/
function logootIntegrateAtt($article, $edit)
{
$dbr = wfGetDB(DB_SLAVE);
$dbr->immediateBegin();
$title = Title::newFromText($article);
$lastRevision = Revision::loadFromTitle($dbr, $title);
if ($lastRevision->getPrevious() == null) {
$rev_id = 0;
} else {
$rev_id = $lastRevision->getPrevious()->getId();
}
$revID = $lastRevision->getId();
$model = manager::loadModel($rev_id);
manager::storeModel($revID, $sessionId = session_id(), $model, $blobCB = 0);
if ($edit) {
$article = new Article($title);
$status = $article->doEdit($model->getText(), $summary = "");
}
return $revID;
}
示例3: run
function run()
{
global $wgServerName, $wgScriptPath, $wgServer, $wgScriptExtension;
$urlServer = 'http://' . $wgServerName;
wfProfileIn('DSMWUpdateJob::run()');
$revids = array();
$revids1 = array();
$page_ids = array();
//Getting all the revision ids of pages having been logootized
$db = wfGetDB(DB_SLAVE);
$model_table = $db->tableName('model');
$sql = "SELECT `rev_id` FROM {$model_table}";
$res = $db->query($sql);
while ($row = $db->fetchObject($res)) {
$revids[] = $row->rev_id;
}
$db->freeResult($res);
//if (count($revids)==0) $revids=array();
//Getting all the revision ids without the pages in the DSMW namespaces and
//Administration_pull_site_addition and Administration_pull_site_addition pages
$rev_table = $db->tableName('revision');
$page_table = $db->tableName('page');
$sql = "SELECT {$rev_table}.`rev_id` FROM {$rev_table}, {$page_table} WHERE\n `rev_page`=`page_id` and `page_namespace`!= 110 and `page_namespace`!= 200\n and `page_namespace`!= 210 and `page_namespace`!= 220 \nand `page_title`!= \"Administration_pull_site_addition\"\nand `page_title` != \"Administration_push_site_addition\"";
$res1 = $db->query($sql);
while ($row = $db->fetchObject($res1)) {
$revids1[] = $row->rev_id;
}
$db->freeResult($res1);
//if (count($revids1)==0) $revids1=array();
//Array_diff returns an array containing all the entries from $revids1 that are
//not present in $revids.
$diff = array_diff($revids1, $revids);
//get page ids of these revisions (each id must be unique in the array)
foreach ($diff as $id) {
$page_id = $db->selectField('revision', 'rev_page', array('rev_id' => $id));
$page_ids[] = $page_id;
}
$page_ids = array_unique($page_ids);
sort($page_ids);
//Now we can logootize:
if (count($page_ids) != 0) {
foreach ($page_ids as $pageid) {
$title = Title::newFromID($pageid);
$ns = $title->getNamespace();
$lastRev = Revision::loadFromPageId($db, $pageid);
$pageText = $lastRev->getText();
//load an empty model
$model = manager::loadModel(0);
$logoot = manager::getNewEngine($model, DSMWSiteId::getInstance()->getSiteId());
// new logootEngine($model);
$listOp = $logoot->generate("", $pageText);
$modelAfterIntegrate = $logoot->getModel();
$tmp = serialize($listOp);
$patchid = sha1($tmp);
if ($ns == NS_FILE || $ns == NS_IMAGE || $ns == NS_MEDIA) {
$apiUrl = $wgServer . $wgScriptPath . "/api" . $wgScriptExtension;
$onPage = str_replace(array(' '), array('%20'), $lastRev->getTitle()->getText());
$download = $apiUrl . "?action=query&titles=File:" . $onPage . "&prop=imageinfo&format=php&iiprop=mime|url|size";
$resp = Http::get($download);
$resp = unserialize($resp);
$a = $resp['query']['pages'];
$a = current($a);
$a = $a['imageinfo'];
$a = current($a);
$mime = $a['mime'];
$size = $a['size'];
$url = $a['url'];
$patch = new Patch(false, true, null, $urlServer . $wgScriptPath, 0, null, null, null, $mime, $size, $url, null);
$patch->storePage('File:' . $lastRev->getTitle()->getText(), $lastRev->getId());
} else {
$patch = new Patch(false, false, $listOp, $urlServer, 0);
$patch->storePage($lastRev->getTitle()->getText(), $lastRev->getId());
}
manager::storeModel($lastRev->getId(), $sessionId = session_id(), $modelAfterIntegrate, $blobCB = 0);
}
}
wfProfileOut('DSMWUpdateJob::run()');
return true;
}