本文整理汇总了PHP中eZ\Publish\API\Repository\ContentTypeService::removeFieldDefinition方法的典型用法代码示例。如果您正苦于以下问题:PHP ContentTypeService::removeFieldDefinition方法的具体用法?PHP ContentTypeService::removeFieldDefinition怎么用?PHP ContentTypeService::removeFieldDefinition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZ\Publish\API\Repository\ContentTypeService
的用法示例。
在下文中一共展示了ContentTypeService::removeFieldDefinition方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: processRemoveFieldDefinition
public function processRemoveFieldDefinition(FormActionEvent $event)
{
/** @var \eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft $contentTypeDraft */
$contentTypeDraft = $event->getData()->contentTypeDraft;
// Accessing FieldDefinition user selection through the form and not the data,
// as "selected" is not a property of FieldDefinitionData.
/** @var \Symfony\Component\Form\FormInterface $fieldDefForm */
foreach ($event->getForm()->get('fieldDefinitionsData') as $fieldDefForm) {
if ($fieldDefForm->get('selected')->getData() === true) {
$this->contentTypeService->removeFieldDefinition($contentTypeDraft, $fieldDefForm->getData()->fieldDefinition);
}
}
}
示例2: removeContentTypeDraftFieldDefinition
/**
* Deletes a field definition from a content type draft
*
* @param $contentTypeId
* @param $fieldDefinitionId
*
* @throws \eZ\Publish\Core\REST\Common\Exceptions\NotFoundException
* @return \eZ\Publish\Core\REST\Server\Values\NoContent
*/
public function removeContentTypeDraftFieldDefinition($contentTypeId, $fieldDefinitionId, Request $request)
{
$contentTypeDraft = $this->contentTypeService->loadContentTypeDraft($contentTypeId);
$fieldDefinition = null;
foreach ($contentTypeDraft->getFieldDefinitions() as $fieldDef) {
if ($fieldDef->id == $fieldDefinitionId) {
$fieldDefinition = $fieldDef;
}
}
if ($fieldDefinition === null) {
throw new Exceptions\NotFoundException("Field definition not found: '{$request->getPathInfo()}'.");
}
$this->contentTypeService->removeFieldDefinition($contentTypeDraft, $fieldDefinition);
return new Values\NoContent();
}
示例3: updateDraftFields
/**
* Update draft fields with diff data
*
* @param ContentTypeDraft $draft
* @param array $diff
* @param array $data
*/
private function updateDraftFields(ContentTypeDraft $draft, array $diff, array &$data)
{
// Remove fields which are missing in the new definition
foreach ($draft->fieldDefinitions as $fieldDefinition) {
if (in_array($fieldDefinition->identifier, $diff['remove'])) {
$this->contentTypeService->removeFieldDefinition($draft, $fieldDefinition);
}
}
// Add fields which are missing in the old content type
$fieldStructs = $data['field_definitions'];
//$this->getFieldDefinitionCreateStructs($data);
foreach ($fieldStructs as $fieldStruct) {
if (in_array($fieldStruct->identifier, $diff['add'])) {
$this->contentTypeService->addFieldDefinition($draft, $fieldStruct);
}
}
}
示例4: removeFieldDefinition
/**
* Remove a field definition from an existing Type.
*
* @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException If the given field definition does not belong to the given type
* @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to edit a content type
*
* @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft $contentTypeDraft
* @param \eZ\Publish\API\Repository\Values\ContentType\FieldDefinition $fieldDefinition
*/
public function removeFieldDefinition(ContentTypeDraft $contentTypeDraft, FieldDefinition $fieldDefinition)
{
$returnValue = $this->service->removeFieldDefinition($contentTypeDraft, $fieldDefinition);
$this->signalDispatcher->emit(new RemoveFieldDefinitionSignal(array('contentTypeDraftId' => $contentTypeDraft->id, 'fieldDefinitionId' => $fieldDefinition->id)));
return $returnValue;
}