Skip to content

Commit 516ebc1

Browse files
committed
Support for page rename and page duplicate
1 parent db43685 commit 516ebc1

File tree

2 files changed

+27
-21
lines changed

2 files changed

+27
-21
lines changed

admin/controller/editor/editor.php

+26-20
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,10 @@ private function loadThemeAssets() {
150150
}
151151

152152
function index() {
153-
$theme = sanitizeFileName($this->request->get['theme'] ?? false);
153+
$theme = $this->getTheme();
154154
$themeParam = ($theme ? '&theme=' . $theme : '');
155155
$view = View::getInstance();
156-
$view->themeBaseUrl = PUBLIC_PATH . 'themes/' . ($this->getTheme() ?? 'default') . '/';
156+
$view->themeBaseUrl = PUBLIC_PATH . 'themes/' . $theme . '/';
157157
$view->pages = $this->loadTemplateList($theme);
158158

159159
$this->loadThemeAssets();
@@ -169,7 +169,7 @@ function index() {
169169

170170
foreach ($results['posts'] as $post) {
171171
$slug = $post['slug'];
172-
$url = url('content/page/index',['slug' => $slug]);
172+
$url = url('content/page/index',['slug' => $slug, 'post_id' => $post['post_id']]);
173173

174174
$posts[$slug] = [
175175
'name' => $slug,
@@ -378,7 +378,7 @@ function rename() {
378378
}
379379

380380
$currentFile = $themeFolder . DS . $file;
381-
$targetFile = dirname($currentFile) . DS . basename($newfile); //save in same folder
381+
$targetFile = dirname($currentFile) . DS . slugify(basename($newfile)); //save in same folder
382382

383383
$message = ['success' => false, 'message' => __('Error!')];
384384

@@ -421,37 +421,42 @@ function rename() {
421421
$site_id[] = $item['site_id'];
422422
}
423423
}
424-
424+
425425
$startTemplateUrl = $data['template'] ?? "content/$type.html";
426-
$template = "content/$slug.html";
427-
428-
if (!@copy($themeFolder . DS . $startTemplateUrl, $themeFolder . DS . $template)) {
426+
$template = "content/$slug.html";
427+
428+
if (! @copy($themeFolder . DS . $startTemplateUrl, $themeFolder . DS . $template)) {
429429
$template = $data['template'] ?? '';
430430
}
431-
431+
432432
$result = $this->posts->add([
433433
'post' => [
434434
'post_content' => $data['post_content'],
435435
'taxonomy_item' => $taxonomy_item ?? [],
436-
'template' => $template,
436+
'template' => $template,
437437
] + $data,
438438
'site_id' => $site_id,
439439
]);
440440

441441
if ($result && isset($result['post'])) {
442-
$message = ['success' => true, 'url' => url('content/page/index', ['slug' => $slug]), 'message' => ucfirst($type) . __(' duplicated!')];
442+
$message = ['success' => true, 'url' => url('content/page/index', ['slug' => $slug, 'post_id' => $post_id]), 'message' => ucfirst($type) . ' ' . __('duplicated') . '!'];
443443
} else {
444444
$message = ['success' => false, 'message' => sprintf(__('Error duplicating %s!'), $type)];
445445
}
446446
}
447447
} else {
448-
$result = $this->posts->editContent($options);
449-
}
450-
451-
if ($result && isset($result['post_content'])) {
452-
$message = ['success' => true, 'url' => url('content/page/index', ['slug' => $slug]), 'message' => ucfirst($type) . __(' renamed!')];
453-
} else {
454-
$message = ['success' => false, 'message' => sprintf(__('Error renaming %s!'), $type)];
448+
$data = [
449+
'post_content' => ['name' => $name, 'slug' => $slug],
450+
'post_id' => $post_id,
451+
'language_id' => $this->global['language_id'],
452+
];
453+
$result = $this->posts->editContent($data);
454+
455+
if ($result && isset($result['post_content'])) {
456+
$message = ['success' => true, 'url' => url('content/page/index', ['slug' => $slug, 'post_id' => $post_id]), 'message' => ucfirst($type) . ' ' . __('renamed') . '!'];
457+
} else {
458+
$message = ['success' => false, 'message' => sprintf(__('Error renaming %s!'), $type)];
459+
}
455460
}
456461
}
457462
} else {
@@ -598,14 +603,15 @@ function save() {
598603

599604
//if plugins template use public path
600605
$isPlugin = false;
606+
601607
if (substr_compare($file,'/plugins/', 0, 9) === 0) {
602608
$fileName = DIR_PUBLIC . DS . ($folder ? $folder . DS : '') . $file;
603609
$isPlugin = true;
604610
} else {
605611
$fileName = $themeFolder . DS . ($folder ? $folder . DS : '') . $file;
606612
}
607-
608-
if (! $startTemplateUrl && !$isPlugin) {
613+
614+
if (! $startTemplateUrl && ! $isPlugin) {
609615
$backupFolder = $themeFolder . DS . 'backup' . DS;
610616

611617
if (is_writable($backupFolder)) {

install/sql/insert/admin/role.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ INSERT INTO `role` (`role_id`, `name`, `display_name`, `permissions`) VALUES
88
(7, 'shop', 'Shop', '{"allow":["index/index","product/*","order/*","media/media/scan"], "deny":[], "capabilities":["view_other_products","edit_other_products"]}'),
99
(8, 'vendor', 'Vendor', '{"allow":["index/index","product/*","order/*","media/media/scan"], "deny":["product/vendors/*","product/vendor/*","product/manufacturers/*", "product/manufacturer/*"]}'),
1010
(9, 'rest', 'Rest', '{"allow":["content/*"],"deny":["*/save","*/delete"], "capabilities":["view_other_products","edit_other_products"]}}'),
11-
(10, 'demo', 'Demo', '{"allow":["*"],"deny":["*/save","*/delete","*/rename","*/upload", "*/activate","*/deactivate","*/update","*/deletemenu"], "capabilities":["view_other_posts","view_other_products","view_other_sites"]}');
11+
(10, 'demo', 'Demo', '{"allow":["*"],"deny":["*/save","*/delete","*/rename","*/duplicate","*/upload", "*/activate","*/deactivate","*/update","*/deletemenu"], "capabilities":["view_other_posts","view_other_products","view_other_sites"]}');

0 commit comments

Comments
 (0)