本文整理汇总了PHP中WikiPage::doPurge方法的典型用法代码示例。如果您正苦于以下问题:PHP WikiPage::doPurge方法的具体用法?PHP WikiPage::doPurge怎么用?PHP WikiPage::doPurge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WikiPage
的用法示例。
在下文中一共展示了WikiPage::doPurge方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doPurge
/**
* Override handling of action=purge
* @return bool
*/
public function doPurge()
{
$this->loadFile();
if ($this->mFile->exists()) {
wfDebug('ImagePage::doPurge purging ' . $this->mFile->getName() . "\n");
DeferredUpdates::addUpdate(new HTMLCacheUpdate($this->mTitle, 'imagelinks'));
$this->mFile->purgeCache(['forThumbRefresh' => true]);
} else {
wfDebug('ImagePage::doPurge no image for ' . $this->mFile->getName() . "; limiting purge to cache only\n");
// even if the file supposedly doesn't exist, force any cached information
// to be updated (in case the cached information is wrong)
$this->mFile->purgeCache(['forThumbRefresh' => true]);
}
if ($this->mRepo) {
// Purge redirect cache
$this->mRepo->invalidateImageRedirect($this->mTitle);
}
return parent::doPurge();
}
示例2: execute
public function execute()
{
global $IP;
require_once "{$IP}/extensions/wikihow/common/S3.php";
define('WH_USE_BACKUP_DB', true);
$pageIds = array();
// allow for the input files to be specified on the command line
if ($this->getOption('stream')) {
$data = stream_get_contents(STDIN);
$data = array_map('trim', explode("\n", $data));
foreach ($data as $inputTitle) {
$title = Title::newFromText($inputTitle, 6);
if (!$title) {
continue;
}
$id = $title->getArticleID();
$pageIds[] = $id;
}
}
// if provided title, add that to the array
$titleText = $this->getOption('title');
if ($titleText) {
$title = Title::newFromText($titleText, 6);
$id = $title->getArticleID();
$pageIds[] = $id;
}
// if there is a start, add articles to the array
$start = $this->getOption('start');
if ($start) {
$dbr = wfGetDB(DB_SLAVE);
$options = array("page_id > {$start}", "page_namespace = 6");
$stop = $this->getOption('stop');
if ($stop) {
$options[] = "page_id < {$stop}";
}
$res = $dbr->select("page", "page_id", $options, __FILE__);
// put them all into an array first
foreach ($res as $row) {
$pageIds[] = $row->page_id;
}
}
$purgeTitles = array();
$filesToPurgeFromCDN = array();
foreach ($pageIds as $pageId) {
$title = Title::newFromID($pageId);
$file = wfLocalFile($title);
if (!$file) {
continue;
}
$userName = $file->getUser("text");
if (WatermarkSupport::isWikihowCreator($userName)) {
decho("file", $title->getText(), false);
if ($this->getOption('s3')) {
decho("will purge from s3", false, false);
self::purgeThumbnailsFromS3($file);
}
if ($this->getOption('regenerate')) {
decho("will regenerate thumbnails", $file->getThumbnails(), false);
WatermarkSupport::recreateThumbnails($file);
decho("regeneration of thumbnails complete", false, false);
}
if ($this->getOption('purgelocal')) {
decho("will purge local cache thumbnails", $file->getThumbnails(), false);
$file->purgeCache();
// get titles that point here so we can purge them and
// regenerate those pages so the thumbnails come back
$purgeTitles = array_unique(array_merge($purgeTitles, ImageHelper::getLinkedArticles($title)));
decho("purging of thumbnails complete", false, false);
}
if ($this->getOption('cdn')) {
$filesToPurgeFromCDN[] = $file;
}
}
}
//purge the titles that have linked to these images
foreach ($purgeTitles as $linkedTitle) {
decho('will purge', $linkedTitle, false);
// will now get the parser output to refresh the thumbnail
// or else cdn may get reset before the thumbnails are regenerated
$wp = new WikiPage($linkedTitle);
$wp->doPurge();
$po = ParserOptions::newFromUser($wgUser);
$wp->getParserOutput($po);
}
if ($this->getOption('cdn')) {
decho("will purge from cdn", false, false);
$this->purgeThumbnailsFromCDNetworks($filesToPurgeFromCDN);
}
}
示例3: doPurge
/**
* Override handling of action=purge
*/
public function doPurge()
{
$this->loadFile();
if ($this->mFile->exists()) {
wfDebug('ImagePage::doPurge purging ' . $this->mFile->getName() . "\n");
$update = new HTMLCacheUpdate($this->mTitle, 'imagelinks');
$update->doUpdate();
$this->mFile->upgradeRow();
$this->mFile->purgeCache(array('forThumbRefresh' => true));
} else {
wfDebug('ImagePage::doPurge no image for ' . $this->mFile->getName() . "; limiting purge to cache only\n");
// even if the file supposedly doesn't exist, force any cached information
// to be updated (in case the cached information is wrong)
$this->mFile->purgeCache(array('forThumbRefresh' => true));
}
return parent::doPurge();
}
示例4: doPurge
/**
* Override handling of action=purge
*/
public function doPurge()
{
global $wgCityId;
$this->loadFile();
if ($this->mFile->exists()) {
wfDebug('ImagePage::doPurge purging ' . $this->mFile->getName() . "\n");
// Wikia Change Start @author Scott Rabin (srabin@wikia-inc.com)
$task = (new \Wikia\Tasks\Tasks\HTMLCacheUpdateTask())->wikiId($wgCityId)->title($this->mTitle);
$task->call('purge', 'imagelinks');
$task->queue();
// Wikia Change End
$this->mFile->upgradeRow();
$this->mFile->purgeCache(array('forThumbRefresh' => true));
} else {
wfDebug('ImagePage::doPurge no image for ' . $this->mFile->getName() . "; limiting purge to cache only\n");
// even if the file supposedly doesn't exist, force any cached information
// to be updated (in case the cached information is wrong)
$this->mFile->purgeCache(array('forThumbRefresh' => true));
}
return parent::doPurge();
}