1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-18 10:51:21 +02:00

Flextype Admin Panel: Entries - move functionality issues #179 #165

This commit is contained in:
Awilum
2019-07-04 18:25:00 +03:00
parent ad2f440255
commit b0a8cdb365

View File

@@ -355,20 +355,25 @@ class EntriesController extends Controller
// Get Query Params
$query = $request->getQueryParams();
$entry_name = $this->getEntryID($query);
// Get Entry from Query Params
$entry_id = $this->getEntryID($query);
// Get current Entry ID
$entry_id_current = Arr::last(explode("/", $entry_id));
// Fetch entry
$entry = $this->entries->fetch($this->getEntryID($query));
// Set Entries ID in parts
// Set Entries IDs in parts
if (isset($query['id'])) {
$parts = explode("/", $query['id']);
} else {
$parts = [0 => ''];
}
$entries_list = [];
$_entries_list = $this->entries->fetchAll('', ['order_by' => ['field' => ['slug']]]);
// Get entries list
$entries_list['/'] = '/';
foreach ($_entries_list as $_entry) {
foreach ($this->entries->fetchAll('', ['order_by' => ['field' => ['slug']], 'recursive' => true]) as $_entry) {
if ($_entry['slug'] != '') {
$entries_list[$_entry['slug']] = $_entry['slug'];
} else {
@@ -380,11 +385,11 @@ class EntriesController extends Controller
$response,
'plugins/admin/views/templates/content/entries/move.html',
[
'entry_path_current' => $entry_name,
'entries_list' => $entries_list,
'name_current' => Arr::last(explode("/", $entry_name)),
'entry_parent' => implode('/', array_slice(explode("/", $entry_name), 0, -1)),
'menu_item' => 'entries',
'entries_list' => $entries_list,
'entry_id_current' => $entry_id_current,
'entry_id_path_current' => $entry_id,
'entry_id_path_parent' => implode('/', array_slice(explode("/", $entry_id), 0, -1)),
'parts' => $parts,
'i' => count($parts),
'last' => Arr::last($parts),
@@ -414,20 +419,24 @@ class EntriesController extends Controller
*/
public function moveProcess(Request $request, Response $response)
{
// Get data from POST
$data = $request->getParsedBody();
if (!$this->entries->has($data['parent_entry'] . '/' . $data['name_current'])) {
if (!$this->entries->has($data['parent_entry'] . '/' . $data['entry_id_current'])) {
if ($this->entries->rename(
$data['entry_path_current'],
$data['parent_entry'] . '/' . $this->slugify->slugify($data['name_current'])
$data['entry_id_path_current'],
$data['parent_entry'] . '/' . $this->slugify->slugify($data['entry_id_current'])
)) {
$this->flash->addMessage('success', __('admin_message_entry_moved'));
} else {
$this->flash->addMessage('error', __('admin_message_entry_was_not_moved'));
}
return $response->withRedirect($this->router->pathFor('admin.entries.index') . '?id=' . $data['parent_entry']);
} else {
$this->flash->addMessage('error', __('admin_message_entry_was_not_moved'));
}
return $response->withRedirect($this->router->pathFor('admin.entries.index') . '?id=' . (($data['parent_entry'] == '/') ? '' : $data['parent_entry']));
}
/**