/** * The given content type group is deleted * * @param mixed $contentTypeGroupId * * @throws \eZ\Publish\Core\REST\Server\Exceptions\ForbiddenException * @return \eZ\Publish\Core\REST\Server\Values\NoContent */ public function deleteContentTypeGroup($contentTypeGroupId) { $contentTypeGroup = $this->contentTypeService->loadContentTypeGroup($contentTypeGroupId); $contentTypes = $this->contentTypeService->loadContentTypes($contentTypeGroup); if (!empty($contentTypes)) { throw new ForbiddenException('Only empty content type groups can be deleted'); } $this->contentTypeService->deleteContentTypeGroup($contentTypeGroup); return new Values\NoContent(); }
public function deleteContentTypeGroupAction(Request $request, $contentTypeGroupId) { $contentTypeGroup = $this->contentTypeService->loadContentTypeGroup($contentTypeGroupId); $deleteForm = $this->createForm(new ContentTypeGroupDeleteType(), ['contentTypeGroupId' => $contentTypeGroupId]); $deleteForm->handleRequest($request); if ($deleteForm->isValid()) { try { $this->contentTypeService->deleteContentTypeGroup($contentTypeGroup); $this->notify('content_type.group.deleted', ['%identifier%' => $contentTypeGroup->identifier], 'content_type'); } catch (InvalidArgumentException $e) { $this->notifyError('content_type.group.cannot_delete.has_content_types', ['%identifier%' => $contentTypeGroup->identifier], 'content_type'); } $this->redirectToRouteAfterFormPost('admin_contenttypeGroupList'); } // Form validation failed. Send errors as notifications. foreach ($deleteForm->getErrors(true) as $error) { $this->notifyErrorPlural($error->getMessageTemplate(), $error->getMessagePluralization(), $error->getMessageParameters(), 'ezrepoforms_content_type'); } return $this->redirectToRouteAfterFormPost('admin_contenttypeGroupList'); }
/** * Delete a Content Type Group. * * This method only deletes an content type group which has content types without any content instances * * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to delete a content type group * @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException If a to be deleted content type has instances * * @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup $contentTypeGroup */ public function deleteContentTypeGroup(ContentTypeGroup $contentTypeGroup) { $returnValue = $this->service->deleteContentTypeGroup($contentTypeGroup); $this->signalDispatcher->emit(new DeleteContentTypeGroupSignal(array('contentTypeGroupId' => $contentTypeGroup->id))); return $returnValue; }