protected function getSelectionChoices()
 {
     $contentTypeChoices = [];
     foreach ($this->contentTypeService->loadContentTypeGroups() as $group) {
         foreach ($this->contentTypeService->loadContentTypes($group) as $contentType) {
             $contentTypeChoices[$contentType->id] = $contentType->getName($contentType->mainLanguageCode);
         }
     }
     return $contentTypeChoices;
 }
示例#2
0
 /**
  * @return ContentType[]
  */
 protected function getContentTypeList()
 {
     $contentTypes = array();
     foreach ($this->contentTypeService->loadContentTypeGroups() as $contentTypeGroup) {
         $contentTypes = array_merge($contentTypes, $this->contentTypeService->loadContentTypes($contentTypeGroup));
     }
     return $contentTypes;
 }
 public function viewContentTypeGroupAction($contentTypeGroupId)
 {
     $contentTypeGroup = $this->contentTypeService->loadContentTypeGroup($contentTypeGroupId);
     $createForm = $this->createForm(new ContentTypeCreateType($this->contentTypeService), ['contentTypeGroupId' => $contentTypeGroupId]);
     $contentTypes = $this->contentTypeService->loadContentTypes($contentTypeGroup);
     $canDelete = $this->isGranted(new Attribute('class', 'delete'));
     $deleteFormsById = [];
     $canDeleteById = [];
     foreach ($contentTypes as $contentType) {
         $contentTypeId = $contentType->id;
         $deleteFormsById[$contentTypeId] = $this->createForm(new ContentTypeDeleteType(), ['contentTypeId' => $contentTypeId])->createView();
         $canDeleteById[$contentTypeId] = $canDelete && !$this->contentTypeService->isContentTypeUsed($contentType);
     }
     return $this->render('eZPlatformUIBundle:ContentType:view_content_type_group.html.twig', ['group' => $contentTypeGroup, 'content_types' => $contentTypes, 'can_edit' => $this->isGranted(new Attribute('class', 'update')), 'can_create' => $this->isGranted(new Attribute('class', 'create')), 'can_delete_by_id' => $canDeleteById, 'create_form' => $createForm->createView(), 'delete_forms_by_id' => $deleteFormsById]);
 }
 public function viewContentTypeGroupAction($contentTypeGroupId)
 {
     $contentTypeGroup = $this->contentTypeService->loadContentTypeGroup($contentTypeGroupId);
     $createForm = $this->createForm(new ContentTypeCreateType($this->contentTypeService), ['contentTypeGroupId' => $contentTypeGroupId]);
     $contentTypes = $this->contentTypeService->loadContentTypes($contentTypeGroup);
     $canDelete = $this->isGranted(new Attribute('class', 'delete'));
     $deleteFormsById = [];
     $canDeleteById = [];
     foreach ($contentTypes as $contentType) {
         $contentTypeId = $contentType->id;
         $deleteFormsById[$contentTypeId] = $this->createForm(new ContentTypeDeleteType(), ['contentTypeId' => $contentTypeId])->createView();
         $countQuery = new Query(['filter' => new Query\Criterion\ContentTypeId($contentTypeId), 'limit' => 0]);
         $contentCount = $this->searchService->findContent($countQuery, [], false)->totalCount;
         $canDeleteById[$contentTypeId] = $canDelete && $contentCount == 0;
     }
     return $this->render('eZPlatformUIBundle:ContentType:view_content_type_group.html.twig', ['group' => $contentTypeGroup, 'content_types' => $contentTypes, 'can_edit' => $this->isGranted(new Attribute('class', 'update')), 'can_create' => $this->isGranted(new Attribute('class', 'create')), 'can_delete_by_id' => $canDeleteById, 'create_form' => $createForm->createView(), 'delete_forms_by_id' => $deleteFormsById]);
 }
 /**
  * Get Content Type objects which belong to the given content type group
  *
  * @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup $contentTypeGroup
  *
  * @return \eZ\Publish\API\Repository\Values\ContentType\ContentType[] Which have status DEFINED
  */
 public function loadContentTypes(ContentTypeGroup $contentTypeGroup)
 {
     return $this->service->loadContentTypes($contentTypeGroup);
 }