本文整理汇总了PHP中SiteTree::doPublish方法的典型用法代码示例。如果您正苦于以下问题:PHP SiteTree::doPublish方法的具体用法?PHP SiteTree::doPublish怎么用?PHP SiteTree::doPublish使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SiteTree
的用法示例。
在下文中一共展示了SiteTree::doPublish方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: publish
/**
* Simplifies publishing of an actual page instance (since migrations are run from command line).
*
* @param SiteTree $page
* @param bool $force If set to false, will not publish if the page has a draft version to prevent
* accidentally publishing a draft page.
*
* TODO: Possibly change default for $force to false, but will need to start versioning this module to help prevent issues with backward compatibility.
*
* @throws MigrationException
*/
public static function publish(SiteTree $page, $force = true)
{
try {
static::whileAdmin(function () use($page, $force) {
if ($page->isPublished() || $force) {
$page->doPublish();
} else {
$page->write();
}
});
} catch (Exception $e) {
throw new MigrationException("Cannot publish page: " . $e->getMessage(), 0, $e);
}
}
示例2: SiteTree
function testChangingClassOfDefaultLocaleTranslationChangesOthersWhenPublished()
{
// create an English SiteTree
$enST = new SiteTree();
$enST->Locale = 'en_US';
$enST->write();
$enST->doPublish();
// create and publish French and Spanish translations
$frST = $enST->createTranslation('fr_FR');
$this->assertTrue($frST->doPublish(), 'should have been able to publish French translation');
$esST = $enST->createTranslation('es_ES');
$this->assertTrue($esST->doPublish(), 'should have been able to publish Spanish translation');
// change the class name of the default locale's translation (as CMS admin would)
// and publish the change - we should see both versions of English change class
$enST->setClassName('Page');
$enST->doPublish();
$this->assertClass('Page', Versioned::get_one_by_stage('SiteTree', 'Stage', '"ID" = ' . $enST->ID));
$this->assertClass('Page', Versioned::get_one_by_stage('SiteTree', 'Live', '"ID" = ' . $enST->ID));
// and all of the draft versions of translations:
$this->assertClass('Page', Versioned::get_one_by_stage('SiteTree', 'Stage', '"ID" = ' . $frST->ID));
$this->assertClass('Page', Versioned::get_one_by_stage('SiteTree', 'Stage', '"ID" = ' . $esST->ID));
// and all of the live versions of translations as well:
$this->assertClass('Page', Versioned::get_one_by_stage('SiteTree', 'Live', '"ID" = ' . $frST->ID));
$this->assertClass('Page', Versioned::get_one_by_stage('SiteTree', 'Live', '"ID" = ' . $esST->ID));
}
示例3: publish
/**
* Simplifies publishing of an actual page instance (since migrations are run from command line).
*
* @param SiteTree $page
* @throws MigrationException
*/
public static function publish(SiteTree $page)
{
try {
static::loginAsAdmin();
$page->doPublish();
} catch (Exception $e) {
throw new MigrationException("Cannot publish page: " . $e->getMessage(), 0, $e);
}
}