88 public function cloneCertificate(
92 string $webDir = CLIENT_WEB_DIR
94 $oldType = $oldObject->
getType();
95 $newType = $newObject->
getType();
97 if ($oldType !== $newType) {
99 'The types "%s" and "%s" for cloning does not match',
105 $newCertificate = $this->certificateFactory->create($newObject);
107 $templates = $this->templateRepository->fetchCertificateTemplatesByObjId($oldObject->
getId());
111 $backgroundImagePath =
$template->getBackgroundImagePath();
112 $backgroundImageFile = basename($backgroundImagePath);
113 $backgroundImageThumbnail = dirname($backgroundImagePath) .
'/background.jpg.thumb.jpg';
115 $newBackgroundImage =
'';
116 $newBackgroundImageThumbnail =
'';
118 if ($this->fileSystem->has($backgroundImagePath) &&
119 !$this->fileSystem->hasDir($backgroundImagePath)
121 $newBackgroundImage = $newCertificate->getBackgroundImageDirectory() . $backgroundImageFile;
122 $newBackgroundImageThumbnail = str_replace($webDir,
'', $newCertificate->getBackgroundImageThumbPath());
124 if ($this->fileSystem->has($newBackgroundImage) &&
125 !$this->fileSystem->hasDir($newBackgroundImage)
127 $this->fileSystem->delete($newBackgroundImage);
130 $this->fileSystem->copy(
131 $backgroundImagePath,
137 strlen($newBackgroundImageThumbnail) > 0 &&
138 $this->fileSystem->has($backgroundImageThumbnail) &&
139 !$this->fileSystem->hasDir($backgroundImageThumbnail)
141 if ($this->fileSystem->has($newBackgroundImageThumbnail) &&
142 !$this->fileSystem->hasDir($newBackgroundImageThumbnail)
144 $this->fileSystem->delete($newBackgroundImageThumbnail);
147 $this->fileSystem->copy(
148 $backgroundImageThumbnail,
149 $newBackgroundImageThumbnail
153 $newCardThumbImage =
'';
154 $cardThumbImagePath =
$template->getThumbnailImagePath();
156 if ($this->fileSystem->has($cardThumbImagePath) && !$this->fileSystem->hasDir($cardThumbImagePath)) {
157 $newCardThumbImage = $newCertificate->getBackgroundImageDirectory() . basename($cardThumbImagePath);
158 if ($this->fileSystem->has($newCardThumbImage) && !$this->fileSystem->hasDir($newCardThumbImage)) {
159 $this->fileSystem->delete($newCardThumbImage);
161 $this->fileSystem->copy(
169 $this->objectHelper->lookupType($newObject->
getId()),
181 $this->templateRepository->save($newTemplate);
186 $this->database->replace(
188 array(
'obj_id' => array(
'integer', $newObject->
getId())),
200 $sql =
'SELECT obj_id FROM il_certificate WHERE obj_id = ' . $this->database->quote($objectId,
'integer');
202 $query = $this->database->query($sql);
204 return $this->database->numRows(
$query);
An exception for terminatinating execution or to throw for unit testing.
__construct(ilDBInterface $database, ilCertificateFactory $certificateFactory, ilCertificateTemplateRepository $templateRepository, \ILIAS\Filesystem\Filesystem $fileSystem=null, ilLogger $logger=null, ilCertificateObjectHelper $objectHelper=null)
readActive(int $objectId)
Base class for ILIAS Exception handling.
Component logger with individual log levels by component id.
Class ilObject Basic functions for all objects.
getType()
get object type @access public
getId()
get object id @access public
const ILIAS_VERSION_NUMERIC
Class FlySystemFileAccessTest.