本文整理汇总了PHP中SiteTree::onBeforeWrite方法的典型用法代码示例。如果您正苦于以下问题:PHP SiteTree::onBeforeWrite方法的具体用法?PHP SiteTree::onBeforeWrite怎么用?PHP SiteTree::onBeforeWrite使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SiteTree
的用法示例。
在下文中一共展示了SiteTree::onBeforeWrite方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: onBeforeWrite
function onBeforeWrite()
{
if ($this->EmailBodyTemplate) {
$this->EmailBodyTemplate = self::stripSSFromFilename($this->EmailBodyTemplate);
}
return parent::onBeforeWrite();
}
示例2: onBeforeWrite
function onBeforeWrite() {
if($this->LegacyURL) {
$SQL_legacyURL = Convert::raw2sql($this->LegacyURL);
$existingPages = DataObject::get_one(
'Page',
"URLSegment = '{$SQL_legacyURL}'"
);
if($existingPages) {
$this->LegacyURL = null;
}
}
parent::onBeforeWrite();
}
示例3: onBeforeWrite
/**
* Apply the parent holder media type and update any respective media type attributes.
*/
public function onBeforeWrite()
{
parent::onBeforeWrite();
// Set the default media page date to the current time.
if (is_null($this->Date)) {
$this->Date = SS_Datetime::now()->Format('Y-m-d H:i:s');
}
// Confirm that the external link exists.
if ($this->ExternalLink) {
if (stripos($this->ExternalLink, 'http') === false) {
$this->ExternalLink = 'http://' . $this->ExternalLink;
}
$file_headers = @get_headers($this->ExternalLink);
if (!$file_headers || strripos($file_headers[0], '404 Not Found')) {
$this->ExternalLink = null;
}
}
// Apply the changes from each media type attribute.
foreach ($this->record as $name => $value) {
if (strrpos($name, 'MediaAttribute')) {
$ID = substr($name, 0, strpos($name, '_'));
$attribute = MediaAttribute::get_by_id('MediaAttribute', $ID);
$attribute->Content = $value;
$attribute->write();
}
}
// Apply the parent holder media type.
$parent = $this->getParent();
if ($parent) {
$type = $parent->MediaType();
if ($type->exists()) {
$this->MediaTypeID = $type->ID;
$type = $type->Title;
} else {
$existing = MediaType::get_one('MediaType');
$parent->MediaTypeID = $existing->ID;
$parent->write();
$this->MediaTypeID = $existing->ID;
$type = $existing->Title;
}
// Merge the default and custom default media types and their respective attributes.
$temporary = array();
foreach (self::$custom_defaults as $default => $attributes) {
if (isset(self::$page_defaults[$default])) {
self::$page_defaults[$default] = array_unique(array_merge(self::$page_defaults[$default], $attributes));
} else {
$temporary[$default] = $attributes;
}
}
$defaults = array_merge(self::$page_defaults, $temporary);
// Apply existing attributes to a new media page.
if (!$this->MediaAttributes()->exists()) {
// Retrieve existing attributes for the respective media type.
$attributes = MediaAttribute::get()->innerJoin('MediaPage', 'MediaAttribute.MediaPageID = MediaPage.ID')->innerJoin('MediaType', 'MediaPage.MediaTypeID = MediaType.ID')->where("MediaType.Title = '" . Convert::raw2sql($type) . "' AND MediaAttribute.LinkID = -1");
if ($attributes->exists()) {
foreach ($attributes as $attribute) {
// Create a new attribute for each one found.
$new = MediaAttribute::create();
$new->Title = $attribute->Title;
$new->LinkID = $attribute->ID;
$new->MediaPageID = $this->ID;
$this->MediaAttributes()->add($new);
$new->write();
}
} else {
if (isset($defaults[$type])) {
foreach ($defaults[$type] as $attribute) {
$new = MediaAttribute::create();
$new->Title = $attribute;
$new->LinkID = -1;
$new->MediaPageID = $this->ID;
$this->MediaAttributes()->add($new);
$new->write();
}
}
}
}
}
}
示例4: onBeforeWrite
/**
* Handles the UseAsRootForMainNavigation property on before write.
*
* @return void
*
* @author Sebastian Diel <sdiel@pixeltricks.de>
* @since 07.10.2014
*/
protected function onBeforeWrite()
{
parent::onBeforeWrite();
$request = Controller::curr()->getRequest();
/* @var $request SS_HTTPRequest */
if ($request->postVar('ID') == $this->ID && $request->postVar('UseAsRootForMainNavigation') == '1') {
$this->UseAsRootForMainNavigation = true;
}
if ($this->isChanged('UseAsRootForMainNavigation')) {
$changed = $this->getChangedFields(false, 1);
$ch = $changed['UseAsRootForMainNavigation'];
if ($this->UseAsRootForMainNavigation) {
DB::query('UPDATE SilvercartPage SET UseAsRootForMainNavigation = 0 WHERE ID != ' . $this->ID);
} elseif ($ch['before'] != $ch['after']) {
$this->UseAsRootForMainNavigation = true;
}
}
}