3declare(strict_types=1);
21use Sabre\DAV\Exception\Forbidden;
22use Sabre\DAV\Exception\NotFound;
51 throw new Forbidden(
"The error info file is virtual and can therefore not be overwritten");
82 throw new Forbidden(
"The error info file cannot be renamed");
90 $already_seen_titles = array();
92 $problem_infos = array(
93 self::PROBLEM_DUPLICATE_OBJECTNAME => array(),
94 self::PROBLEM_FORBIDDEN_CHARACTERS => array(),
95 self::PROBLEM_INFO_NAME_DUPLICATE =>
false
98 foreach ($this->repo_helper->getChildrenOfRefId($this->container_ref_id) as
$ref_id) {
100 $dav_object = $this->dav_object_factory->retrieveDAVObjectByRefID(
$ref_id);
102 $title = $dav_object->getName();
104 if ($title === self::PROBLEM_INFO_FILE_NAME) {
106 } elseif (in_array($title, $already_seen_titles)) {
109 $already_seen_titles[] = $title;
113 $title = $this->repo_helper->getObjectTitleFromRefId(
$ref_id);
116 }
catch (Forbidden | NotFound | RuntimeException
$e) {
120 return $problem_infos;
128 $message_string =
"";
130 if ($problem_infos[self::PROBLEM_INFO_NAME_DUPLICATE]) {
131 $message_string .=
"# " . $this->
language->txt(
'webdav_problem_info_duplicate') .
"\n\n";
135 if (count($duplicates_list) > 0) {
136 $message_string .=
"# " . $this->
language->txt(
'webdav_duplicate_detected_title') .
"\n";
137 foreach ($duplicates_list as $duplicate_title) {
138 $message_string .= $duplicate_title .
"\n";
140 $message_string .=
"\n";
144 if (count($forbidden_character_titles_list) > 0) {
145 $message_string .=
"# " . $this->
language->txt(
'webdav_forbidden_chars_title') .
"\n";
146 foreach ($forbidden_character_titles_list as $forbidden_character_title) {
147 $message_string .= $forbidden_character_title .
"\n";
149 $message_string .=
"\n";
152 if (strlen($message_string) === 0) {
153 $message_string = $this->
language->txt(
'webdav_problem_free_container');
156 return $message_string;
159 public function delete():
void
161 throw new Forbidden(
"It is not possible to delete this file since it is just virtual.");
const PROBLEM_INFO_FILE_NAME
createMessageStringFromProblemInfoArray(array $problem_infos)
const PROBLEM_DUPLICATE_OBJECTNAME
__construct(int $container_ref_id, ilWebDAVRepositoryHelper $repo_helper, ilWebDAVObjFactory $dav_object_factory, ilLanguage $language)
const PROBLEM_INFO_NAME_DUPLICATE
ilWebDAVRepositoryHelper $repo_helper
ilWebDAVObjFactory $dav_object_factory
analyseObjectsOfDAVContainer()
const PROBLEM_FORBIDDEN_CHARACTERS
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const OBJECT_TITLE_NOT_DAVABLE