From b698a12de991ced1c0e4f812d6a3192cc2690532 Mon Sep 17 00:00:00 2001 From: Jonathan Brain <3941269+BrainforgeUK@users.noreply.github.com> Date: Sat, 27 May 2023 12:09:16 +0100 Subject: [PATCH 1/6] Update TemplateModel.php Avoids unexpected message on template admin. --- .../com_templates/src/Model/TemplateModel.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index e75946afbd990..5668534444013 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -1810,11 +1810,23 @@ public function getMediaFiles() $path = Path::clean(JPATH_ROOT . '/media/templates/' . ($template->client_id === 0 ? 'site' : 'administrator') . '/' . $template->element . '/'); $this->mediaElement = $path; + if (!is_dir($path)) { + // Just in case a template does not include any media + mkdir($path, 0777, true); + } + + $result = $this->getDirectoryTree($path); + if (!is_writable($path)) { $app->enqueueMessage(Text::_('COM_TEMPLATES_DIRECTORY_NOT_WRITABLE'), 'error'); } + else if (empty($result)) { + // Add some default folders + foreach(['css', 'images', 'js', 'sccs'] as $folder) + { + mkdir($path . '/' . $folder, 0777, true); + } - if (is_dir($path)) { $result = $this->getDirectoryTree($path); } From dee453dbb4030d9fa75c2c5e7e1c9fcec8e70831 Mon Sep 17 00:00:00 2001 From: Jonathan Brain <3941269+BrainforgeUK@users.noreply.github.com> Date: Sun, 28 May 2023 15:50:21 +0100 Subject: [PATCH 2/6] Update administrator/components/com_templates/src/Model/TemplateModel.php Fixed PHP code style. Co-authored-by: Richard Fath --- .../components/com_templates/src/Model/TemplateModel.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index 5668534444013..333bf6e242090 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -1819,11 +1819,9 @@ public function getMediaFiles() if (!is_writable($path)) { $app->enqueueMessage(Text::_('COM_TEMPLATES_DIRECTORY_NOT_WRITABLE'), 'error'); - } - else if (empty($result)) { + } elseif (empty($result)) { // Add some default folders - foreach(['css', 'images', 'js', 'sccs'] as $folder) - { + foreach(['css', 'images', 'js', 'sccs'] as $folder) { mkdir($path . '/' . $folder, 0777, true); } From 8d450006fcce4957e0993f8d5f77c4ded25205e6 Mon Sep 17 00:00:00 2001 From: Jonathan Brain <3941269+BrainforgeUK@users.noreply.github.com> Date: Sun, 28 May 2023 16:10:25 +0100 Subject: [PATCH 3/6] Update administrator/components/com_templates/src/Model/TemplateModel.php Style correction. Co-authored-by: Richard Fath --- .../components/com_templates/src/Model/TemplateModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index 333bf6e242090..ec507750c0844 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -1821,7 +1821,7 @@ public function getMediaFiles() $app->enqueueMessage(Text::_('COM_TEMPLATES_DIRECTORY_NOT_WRITABLE'), 'error'); } elseif (empty($result)) { // Add some default folders - foreach(['css', 'images', 'js', 'sccs'] as $folder) { + foreach (['css', 'images', 'js', 'sccs'] as $folder) { mkdir($path . '/' . $folder, 0777, true); } From e6ebbb213d26b4e72897a2823c008c3729be7814 Mon Sep 17 00:00:00 2001 From: Jonathan Brain <3941269+BrainforgeUK@users.noreply.github.com> Date: Sun, 28 May 2023 16:24:40 +0100 Subject: [PATCH 4/6] Update TemplateModel.php Removed mkdir for css, image, js, sccs and replace entry result with current folder as that forces the empty folder to appear on the 'Templates: Customise' page, thus overcoming the original problem. --- .../com_templates/src/Model/TemplateModel.php | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index ec507750c0844..f4100501c3f2c 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -1815,18 +1815,16 @@ public function getMediaFiles() mkdir($path, 0777, true); } - $result = $this->getDirectoryTree($path); - - if (!is_writable($path)) { - $app->enqueueMessage(Text::_('COM_TEMPLATES_DIRECTORY_NOT_WRITABLE'), 'error'); - } elseif (empty($result)) { - // Add some default folders - foreach (['css', 'images', 'js', 'sccs'] as $folder) { - mkdir($path . '/' . $folder, 0777, true); - } + if (!is_writable($path)) { + $app->enqueueMessage(Text::_('COM_TEMPLATES_DIRECTORY_NOT_WRITABLE'), 'error'); + } - $result = $this->getDirectoryTree($path); - } + $result = $this->getDirectoryTree($path); + + if (empty($result)) { + // Make sure empty folder appears in 'Templates: Customise' page. + $result = ['.']; + } return $result; } From 5089b7ac65d437d0cc7385a4875611b136536fb0 Mon Sep 17 00:00:00 2001 From: Jonathan Brain <3941269+BrainforgeUK@users.noreply.github.com> Date: Sun, 28 May 2023 16:29:01 +0100 Subject: [PATCH 5/6] Update TemplateModel.php Replaced tabs with spaces. --- .../com_templates/src/Model/TemplateModel.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index f4100501c3f2c..f7bdcae8abab0 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -1815,16 +1815,16 @@ public function getMediaFiles() mkdir($path, 0777, true); } - if (!is_writable($path)) { - $app->enqueueMessage(Text::_('COM_TEMPLATES_DIRECTORY_NOT_WRITABLE'), 'error'); - } + if (!is_writable($path)) { + $app->enqueueMessage(Text::_('COM_TEMPLATES_DIRECTORY_NOT_WRITABLE'), 'error'); + } - $result = $this->getDirectoryTree($path); + $result = $this->getDirectoryTree($path); - if (empty($result)) { - // Make sure empty folder appears in 'Templates: Customise' page. - $result = ['.']; - } + if (empty($result)) { + // Make sure empty folder appears in 'Templates: Customise' page. + $result = ['.']; + } return $result; } From 1bf43eb5727540c1273d5647a2c749394076264c Mon Sep 17 00:00:00 2001 From: Jonathan Brain <3941269+BrainforgeUK@users.noreply.github.com> Date: Wed, 31 May 2023 13:36:45 +0100 Subject: [PATCH 6/6] Update administrator/components/com_templates/src/Model/TemplateModel.php Co-authored-by: George Wilson --- .../components/com_templates/src/Model/TemplateModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index f7bdcae8abab0..f29a555b890de 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -1812,7 +1812,7 @@ public function getMediaFiles() if (!is_dir($path)) { // Just in case a template does not include any media - mkdir($path, 0777, true); + Folder::create($path); } if (!is_writable($path)) {