valueRepo = $valueRepo; $this->layoutRepo = $layoutRepo; $this->elementTypesTemplatesRepository = $elementTypesTemplatesRepository; $this->elementMediaRepository = $elementMediaRepository; } /** * @param array $pages_id [description] * * @return bool|Exception [description] */ public function deletedByPages(array $pages_id) { $values = $this->valueRepo->findByPages($pages_id); if (!empty($values)) { $deletedValues = $this->valueRepo->removeMultiple($values); if (!$deletedValues instanceof Exception) { $result = $deletedValues; } else { $result = $deletedValues; } } else { $result = true; } return $result; } /** * @param array $exportIds [description] * @param int $templateId [description] * * @return bool|Exception [description] */ public function deleteExportsTemplate(array $exportIds, int $templateId) { $elementTypesTemplates = $this->elementTypesTemplatesRepository->findByExportIds($exportIds); $elementTypesTemplatesToUpdate = []; foreach ($elementTypesTemplates as $elementTypesTemplate) { $templates = $elementTypesTemplate->getTemplates(); $indexTemplateToRemove = array_search($templateId, array_column($templates, 'id')); if (false !== $indexTemplateToRemove) { unset($templates[$indexTemplateToRemove]); $elementTypesTemplate->setTemplates($templates); if ($templateId === $elementTypesTemplate->getDefaultTemplate()) { $elementTypesTemplate->setDefaultTemplate(null); } $elementTypesTemplatesToUpdate[] = $elementTypesTemplate; } else { continue; } } if (!empty($elementTypesTemplatesToUpdate)) { $result = $this->elementTypesTemplatesRepository->saveMultiple($elementTypesTemplatesToUpdate); } else { $result = true; } return $result; } /** * [Delete all related records from element_type_template_configuration and export_value tables where twig variables are associated.] * * @param array $variables * * @return bool|Exception */ public function deleteByVariables(array $variables) { $result = true; $layouts = $this->layoutRepo->findByTemplateTwigIds($variables); if (!empty($layouts)) { $deletedLayouts = $this->layoutRepo->removeMultiple($layouts); if (!$deletedLayouts instanceof Exception) { $values = $this->valueRepo->findByTemplateFieldIds($variables); if (!empty($values)) { $deletedValues = $this->valueRepo->removeMultiple($values); $result = $deletedValues; } } else { $result = $deletedLayouts; } } return $result; } /** * [Delete all related records from export_media where mediaIds are associated.] * * @param array $mediaIds * * @return bool|Exception */ public function deleteByMediaIds(array $mediaIds) { $result = true; $medias = $this->elementMediaRepository->findByTemplateMediaIds($mediaIds); if (!empty($medias)) { $result = $this->elementMediaRepository->removeMultiple($medias); } return $result; } }