本文整理匯總了PHP中Node::getNodeRef方法的典型用法代碼示例。如果您正苦於以下問題:PHP Node::getNodeRef方法的具體用法?PHP Node::getNodeRef怎麽用?PHP Node::getNodeRef使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Node
的用法示例。
在下文中一共展示了Node::getNodeRef方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: replace
public function replace(Node $node)
{
if (!$node->getNodeRef()->isFullyQualified()) {
return $this->add($node);
}
if ($this->refExists($node->getNodeRef())) {
return $this->edit($node);
} else {
return $this->add($node);
}
}
示例2: loadAudioTagsCms
public function loadAudioTagsCms($nothing, $nothing, Node $node)
{
if ($node->getNodePartials()->getOutPartials() != "") {
$tagDefs = $node->getNodeRef()->getElement()->Schema->getTagDefs();
foreach ($tagDefs as $k => $tagDef) {
if ($tagDef->Partial->TagAspect == 'audio') {
$node->getNodePartials()->increaseOutPartials('#' . $tagDef->Partial->TagRole . '.#original.#url');
}
}
}
}
示例3: loadImageTagsThumbnailsCms
public function loadImageTagsThumbnailsCms($nothing, $nothing, Node $node)
{
return;
if ($node->getNodePartials()->getOutPartials() != "") {
$tagDefs = $node->getNodeRef()->getElement()->Schema->getTagDefs();
foreach ($tagDefs as $k => $tagDef) {
if ($tagDef->Partial->TagAspect == 'images') {
$node->getNodePartials()->increaseOutPartials('#' . $tagDef->Partial->TagRole . '.#thumbnails.#url,#' . $tagDef->Partial->TagRole . '.#thumbnails.#width,#' . $tagDef->Partial->TagRole . '.#thumbnails.#height');
}
}
}
}
示例4: edit
public function edit(Node $node)
{
$existingNode = $this->getByNodeRef($node->getNodeRef());
$this->NodePermissions->checkThrow(__FUNCTION__, $node->getNodeRef(), $node, false);
if ($node->getNodeRef()->getSlug() != $node->getSlug()) {
$newNodeRef = new NodeRef($node->getNodeRef()->getElement(), $node->getSlug());
$this->NodePermissions->checkThrow('rename', $node->getNodeRef(), $newNodeRef, false);
}
if ($existingNode->Status == 'deleted' && $node->Status != 'deleted') {
return $this->undelete($node->getNodeRef());
}
if ($existingNode->Status != 'deleted' && $node->Status == 'deleted') {
return $this->delete($node->getNodeRef());
}
if ($existingNode->Status != 'published' && $node->Status == 'published') {
$this->NodePermissions->checkThrow('publish', $node->getNodeRef(), $node, false);
}
if ($existingNode->Status == 'published' && $node->Status != 'published') {
$this->NodePermissions->checkThrow('unpublish', $node->getNodeRef(), $node, false);
}
return parent::edit($node);
}
示例5: editInternal
protected function editInternal(Node $node)
{
$existingNode = $this->NodeLookupDAO->getByNodeRef($node->getNodeRef());
$this->Logger->debug('Editing node [' . $node->getNodeRef() . '] with partials [' . $node->getNodePartials() . ']');
// update the record
$primaryKey = $this->NodeDBMeta->getPrimaryKey($node->getNodeRef());
$id = $existingNode->getID();
$node->{$primaryKey} = $id;
$node->ID = $id;
$db = $this->getConnectionForWrite($node->getNodeRef());
$oldArray = $this->NodeMapper->nodeToPersistentArray($existingNode);
$newArray = $this->NodeMapper->nodeToPersistentArray($node);
// save meta
$changedMeta = $this->NodeMetaDAO->saveMeta($db, $node->getNodeRef(), $id, $node->getNodePartials()->getMetaPartials(), $node->getMetas(), $node->getNodePartials()->getRestrictedMetaPartials());
// save the tags
$changedOut = $this->NodeTagsDAO->saveOutTags($db, $node->getNodeRef(), $id, $node->getNodePartials()->getOutPartials(), $node->getOutTags(), $node->getNodePartials()->getRestrictedOutPartials());
$changedIn = $this->NodeTagsDAO->saveInTags($db, $node->getNodeRef(), $id, $node->getNodePartials()->getInPartials(), $node->getInTags(), $node->getNodePartials()->getRestrictedInPartials());
if (array_intersect_key($oldArray, $newArray) != $newArray) {
$newArray['ModifiedDate'] = $this->DateFactory->newStorageDate();
$node->ModifiedDate = $newArray['ModifiedDate'];
$db->updateRecord($db->quoteIdentifier($this->NodeDBMeta->getTableName($node->getNodeRef())), $newArray, "{$primaryKey} = {$db->quote($id)}");
}
}
示例6: validateMetas
protected function validateMetas(Node $node, Node $obj, NodeSchema $schema, $mode)
{
$processed_metas = array();
$metas = $obj->getMetas();
// Check all metas passed against the meta defs.
foreach ($metas as $meta) {
// Ensure the meta has a meta_def
$meta_def = $schema->getMetaDef($meta->getMetaName());
$this->getErrors()->rejectIfInvalid($this->resolveField($node->getNodeRef(), $meta->getMetaName(), $obj instanceof Section ? $obj : null), 'meta', $meta_def->Title, $meta->getValue(), $meta_def->Validation);
$processed_metas[] = $meta->getMetaName();
}
$meta_defs = $schema->getMetaDefs();
// Check all meta defs that haven't been processed
// These meta defs must only match partials that we have.
$meta_partials = PartialUtils::unserializeMetaPartials($node->getNodePartials()->getMetaPartials());
$re_meta_partials = PartialUtils::unserializeMetaPartials($node->getNodePartials()->getRestrictedMetaPartials());
foreach ($meta_defs as $meta_def) {
if (in_array($meta_def->Id, $processed_metas)) {
continue;
}
if ($mode == 'edit' && !$this->metaInScope($schema, new Meta($meta_def->Id, ''), $meta_partials, $re_meta_partials)) {
continue;
}
// Validate the meta def with a null value
$this->getErrors()->rejectIfInvalid($this->resolveField($node->getNodeRef(), $meta_def->Id, $obj instanceof Section ? $obj : null), 'meta', $meta_def->Title, null, $meta_def->Validation);
$processed_metas[] = $meta_def->Id;
}
}
示例7: defaultsOnNode
public function defaultsOnNode(Node &$node)
{
foreach ($this->NodeDBMeta->getPersistentFields() as $key) {
$default = $this->NodeDBMeta->getDefault($key);
if ($default != null && !isset($node->{$key})) {
$node->{$key} = $this->TypeConverter->convertFromString($this->NodeDBMeta->getValidationExpression($key), $default);
}
}
$metaDefs = $node->getNodeRef()->getElement()->getSchema()->getMetaDefs();
foreach ($metaDefs as $metaDef) {
$default = $metaDef->Default;
if ($default != null && !$node->hasMeta($metaDef->Id)) {
$node->setMeta($metaDef->Id, $this->TypeConverter->convertFromString($metaDef->Validation, $default));
}
}
}
示例8: convertMeta
protected function convertMeta(Node $node, NodeSchema &$schema, Errors &$errors, $name, $value, $rawValue)
{
$meta_def = $schema->getMetaDef($name);
$validation = $meta_def->Validation->getValidationArray();
$key = $meta_def->Id;
$fieldTitle = $meta_def->Title;
try {
$value = $this->TypeConverter->convertFromString($meta_def->Validation, $value, $rawValue);
} catch (TypeConversionException $tce) {
$errors->addFieldError('invalid', $this->NodeValidator->resolveField($node->getNodeRef(), $key), 'field', $fieldTitle, $value, $tce->getMessage());
}
return $value;
}
示例9: loadNonFieldLike
public function loadNonFieldLike($nothing, $nothing, Node &$node)
{
$tagDefs = $node->getNodeRef()->getElement()->Schema->getTagDefs();
foreach ($tagDefs as $k => $tagDef) {
if (!$tagDef->isFieldlike()) {
$params = $this->Request->getParameters();
$direction = ucfirst($tagDef->Direction);
$tagsArray = array();
$hashed = '#' . ltrim($tagDef->Id, '#');
if (array_key_exists($direction . 'Tags', $params) && is_array($params[$direction . 'Tags']) && array_key_exists($hashed, $params[$direction . 'Tags']) && is_array($params[$direction . 'Tags'][$hashed])) {
$tags = $params[$direction . 'Tags'][$hashed];
foreach ((array) $tags as $key => $tag) {
$tagsArray[] = new Tag($tag);
}
}
if ($direction == 'In') {
foreach ($tagsArray as $tag) {
$node->addInTag($tag);
}
} else {
foreach ($tagsArray as $tag) {
$node->addOutTag($tag);
}
}
}
}
}
示例10: _buildNodeJSON
/**
* Build Node JSON structure with thumbnail information.
*/
protected function _buildNodeJSON(Node $node, $includeOriginal = false, $includeThumbnails = false)
{
$data = new stdClass();
$data->slug = $node->Slug;
$data->element = $node->Element->Slug;
$data->title = $node->Title;
$data->status = $node->Status;
$data->activeDate = $node->ActiveDate;
$data->recordLink = $node->RecordLink;
$data->sortOrder = $node->SortOrder;
if ($includeOriginal) {
$nodeRef = $node->getNodeRef();
if ($nodeRef->getElement()->hasAspect('images') || $nodeRef->getElement()->hasAspect('temporary-zipped-media')) {
// Build the original and thumbnail info as well
foreach (array('url', 'size', 'width', 'height') as $f) {
$data->{$f} = $node->jump("#original.#{$f}");
if (is_numeric($data->{$f})) {
$data->{$f} = intval($data->{$f});
}
}
} else {
// Include the URL for non image media
$data->url = $node->jump("#original.#url");
}
}
$json = $node->getMetaValue('#thumbnails-json');
if ($json != null) {
$thumbnails = JSONUtils::decode($json);
if ($includeThumbnails) {
$data->thumbnails = $thumbnails;
$data->thumbnailsPending = (array) $this->_getPendingThumbnails($node->getElement()->getSlug(), $thumbnails);
}
foreach ($thumbnails as $thmb) {
if ($thmb->value == $this->imagesThumbnailCmsSize) {
$data->thumbnailUrl = $thmb->url;
break;
}
}
}
return $data;
}
示例11: replaceNodeFile
/**
* Replaces the file associated with the file node then updates the node.
*
* @param Node $fileNode
* @param Element $parentElement
* @param string $newFile Full path to the new file
* @param string $newFileName the new desired filename
* @return Node
*/
protected function replaceNodeFile(Node $fileNode, Element $parentElement, $newFile, $newFileName)
{
// get storage facility
$fileElement = $fileNode->getNodeRef()->getElement();
list($storageFacility, $sfParams) = $this->deriveStorageFacility($fileElement);
$oldId = $fileNode->Title;
// add the new file
$newId = $storageFacility->findUniqueFileID($sfParams, $this->buildFilename($newFileName));
$file = new StorageFacilityFile($newId, $newFile);
$file = $storageFacility->putFile($sfParams, $file);
// set the new id as title
$fileNode->Title = $file->getID();
// get metrics
list($width, $height) = ImageUtils::getImageDimensions($newFile);
// and mime-type
$mimetype = FileSystemUtils::getMimetype($file->getExtension());
// update the meta fields
$fileNode->setMeta('#url', $file->getURL());
$fileNode->setMeta('#mimetype', $mimetype);
$fileNode->setMeta('#size', filesize($newFile));
$fileNode->setMeta('#width', $width);
$fileNode->setMeta('#height', $height);
$fileNode->setMeta('#parent-element', $parentElement->Slug);
// do the update
$this->RegulatedNodeService->edit($fileNode);
// if different ID, we need to remove old file,
// but first make sure new record is committed
if ($oldId != $newId) {
// force commit changes
$this->TransactionManager->commit()->begin();
// delete existing file
$storageFacility->deleteFile($sfParams, $oldId);
}
return $fileNode;
}
示例12: resolveLinkedNodes
public function resolveLinkedNodes(Node $node, NodePartials $nodePartials = null, $forceReadWrite = true, $checkJumpPermissions = false)
{
$node->OutTags = $this->NodeTagsDAO->findOutTags(null, $node->getNodeRef(), null, $nodePartials->getOutPartials(), $forceReadWrite, $checkJumpPermissions, $nodePartials->getRestrictedOutPartials(), true, $node->OutTags);
$node->InTags = $this->NodeTagsDAO->findInTags(null, $node->getNodeRef(), null, $nodePartials->getInPartials(), $forceReadWrite, $checkJumpPermissions, $nodePartials->getRestrictedInPartials(), true, $node->InTags);
return $node;
}