editorConfig = $editor; if (isset($_POST['navID'])) { $registry->navID = $_POST['navID']; } $modelData = array(); $dbData = $_POST; switch ($request) { case 'getText': $modelData = Model\TextModel::getItem($dbData['ID']); break; case 'updateText': $dbData['text'] = Helper\Text::prepareText($dbData['text']); $modelData = Model\TextModel::update($dbData); break; case 'getSubline': $modelData = Model\SublineModel::getItem($dbData['ID']); break; case 'updateSubline': $dbData['text'] = trim(str_replace(array('

', '

'), '', $dbData['text'])); $modelData = Model\SublineModel::update($dbData); break; case 'getImageText': $modelData = Model\ImageTextModel::getItem($dbData['ID']); break; case 'updateImageText': $dbData['text'] = Helper\Text::prepareText($dbData['text']); $modelData = Model\ImageTextModel::update($dbData); break; case 'getNavigation': Model\NavigationModel::setFilter('1=1'); $modelData = Model\NavigationModel::getStructuredIndex(); break; case 'updateNavigation': $modelData = Model\NavigationModel::update($dbData); break; case 'insertNavigation': $dbData['navLink'] = Model\NavigationModel::getUniqueNavLink($dbData['navStart'], $dbData['navName']); $dbData['navHeadline'] = $dbData['navName']; $dbData['navID'] = Model\NavigationModel::insert($dbData); $mediaPath = $registry->editorConfig['mediaPath'] . $dbData['navID'] . '/'; $imageName = end(explode('/', $registry->editorConfig['imageDimension']['keyVisual']['standardImage'])); Model\ImageModel::copyStandardImage($mediaPath, $imageName, 'keyVisual'); $modelData = Model\NavigationModel::updateSortAfterInsert($dbData); break; case 'updateNavigationSort': $sortData = explode(',', $dbData['sortOrder']); $modelData = Model\NavigationModel::updateSort($sortData); break; case 'getHeadline': $modelData = Model\NavigationModel::getItem($dbData['ID']); break; case 'updateHeadline': $dbData['navHeadline'] = trim(str_replace(array('

', '

'), '', $dbData['navHeadline'])); $modelData = Model\NavigationModel::update($dbData); break; case 'insertContent': $sortData = explode(',', $dbData['sortOrder']); $navData = array(); foreach ($sortData as $key => $contentElement) { $contentData = explode('_', $contentElement); $contentData[1] = intval($contentData[1]); if ($contentData[1] === 0) { switch ($contentData[0]) { case 'Text': $newID = $modelData = Model\TextModel::insert(array('text' => 'Text')); $contentData[1] = $newID; break; case 'Subline': $newID = $modelData = Model\SublineModel::insert(array('text' => 'Überschrift')); $contentData[1] = $newID; break; case 'ImageText': $newID = $modelData = Model\ImageTextModel::insert(array('text' => 'Text', 'type' => 'small', 'navID' => $dbData['navID'])); $contentData[1] = $newID; break; } } $navData[] = array('Controller' => $contentData[0], 'ID' => $contentData[1]); } $navContent = json_encode($navData); Model\NavigationModel::update(array('navID' => $dbData['navID'], 'navContent' => $navContent)); break; case 'updateContentSort': $sortData = explode(',', $dbData['sortOrder']); $navData = array(); foreach ($sortData as $key => $contentElement) { $contentData = explode('_', $contentElement); $navData[] = array('Controller' => $contentData[0], 'ID' => $contentData[1]); } $navContent = json_encode($navData); $modelData = Model\NavigationModel::update(array('navID' => $dbData['navID'], 'navContent' => $navContent)); break; case 'deleteContentElement': Model\NavigationModel::init(array($dbData['navID']), true); $navContent = Model\NavigationModel::getContents(); foreach ($navContent as $key => $contentElement) { if ($contentElement['Controller'] === $dbData['editorType'] && $contentElement['ID'] === intval($dbData['editorDataID'])) { unset($navContent[$key]); } } $newNavData = array_values($navContent); $navContent = json_encode($newNavData); $modelData = Model\NavigationModel::update(array('navID' => $dbData['navID'], 'navContent' => $navContent)); switch ($dbData['editorType']) { case 'Subline': Model\SublineModel::delete($dbData['editorDataID']); break; case 'Text': Model\TextModel::delete($dbData['editorDataID']); break; case 'ImageText': Model\ImageTextModel::delete($dbData['editorDataID']); break; } break; case 'getKeyVisual': Model\NavigationModel::init(array($dbData['ID']), true); $keyVisualContent = Model\NavigationModel::getKeyVisual(); Model\ImageModel::setFilter('imageID IN (' . implode(', ', $keyVisualContent['IDs']) . ')'); $images = Model\ImageModel::getIndex(); $modelData = $keyVisualContent; $modelData['images'] = $images; break; case 'updateKeyVisual': Model\NavigationModel::init(array($dbData['navID']), true); $keyVisualContent = Model\NavigationModel::getKeyVisual(); $keyVisualContent['Type'] = $dbData['Type']; $keyVisualJSON = json_encode($keyVisualContent, JSON_UNESCAPED_UNICODE); $modelData = Model\NavigationModel::update(array('navID' => $dbData['navID'], 'navKeyVisual' => $keyVisualJSON)); break; case 'updateImage': $modelData = Model\ImageModel::update($dbData); break; case 'appendKeyVisual': $imageID = Model\ImageModel::insert($dbData); Model\NavigationModel::init(array($dbData['navID']), true); $keyVisualContent = Model\NavigationModel::getKeyVisual(); $keyVisualContent['IDs'][] = $imageID; $keyVisualJSON = json_encode($keyVisualContent, JSON_UNESCAPED_UNICODE); $modelData = Model\NavigationModel::update(array('navID' => $dbData['navID'], 'navKeyVisual' => $keyVisualJSON)); break; } if (!empty($modelData)) { echo json_encode($modelData); }