Erste lauffähige Umgebung

This commit is contained in:
2017-01-09 07:12:57 +00:00
parent b974059208
commit 30efdc809c
25 changed files with 1770 additions and 193 deletions

View File

@@ -10,7 +10,7 @@
$editor['name'] = 'AHD Allradhaus GmbH';
if (ENVIRONMENT === 'local')
{
$editor['editorUrl'] = SCHEME . '://csteinle.ddns.net/rist-editors/';
$editor['editorUrl'] = SCHEME . '://csteinle.ddnss.de/rist-editors/';
$editor['editorVersion'] = '2.0.0';
}
elseif (ENVIRONMENT === 'production')
@@ -22,10 +22,18 @@ $editor['webserviceUrl'] = HOST_URL . str_replace(PATH_ROOT, '', dirname(__DIR__
$editor['imageTypes'] = array('image/png', 'image/jpeg', 'image/gif');
$editor['imageDimension']['image'] = array('width' => 480, 'height' => null, 'standardImage' => HTML_IMG . 'standard_upload.jpg', 'quality' => 95);
$editor['imageDimension']['keyVisual'] = array('width' => 1368, 'height' => 342, 'standardImage' => HTML_IMG . 'standard_upload.jpg', 'quality' => 95, );
$editor['imageDimension']['keyVisual'] = array('width' => 1368, 'height' => 342, 'standardImage' => HTML_IMG . 'header_upload.jpg', 'quality' => 95);
$editor['imageDimension']['thumb'] = array('width' => 152, 'quality' => 90);
$editor['imageDimension']['orig'] = array('width' => 2560, 'height' => 2560, 'quality' => 97);
$editor['imageDimension']['orig'] = array('width' => 1920, 'height' => 1920, 'quality' => 93);
$editor['contentElements'] = array('subline', 'text', 'textimage');
$editor['backendPrefix'] = PATH_PREFIX . '/' . str_replace(PATH_ROOT, '', dirname(__DIR__));
$editor['backendUrl'] = HOST_URL . str_replace(PATH_ROOT, '', dirname(__DIR__)) . '/webservice/requestData.php';
$editor['backendUrl'] = HOST_URL . str_replace(PATH_ROOT, '', dirname(__DIR__)) . '/webservice/requestData.php';
$editor['linkReplacements'] = array('AHD');
$editor['editorPrefix'] = 'ahd';
$editor['mediaPath'] = PATH_ROOT . 'media/' . $editor['editorPrefix'] . '/';
$editor['mediaPrefix'] = HTML_MED . $editor['editorPrefix'] . '/';
$editor['fileExtensions'] = array('image/png' => 'png', 'image/jpeg' => 'jpg', 'image/gif' => 'gif');

View File

@@ -22,5 +22,6 @@ $loader = require PATH_ROOT . '/vendor/autoload.php';
$registry = \Helper\Registry::getInstance();
$registry->editorConfig = $editor;
$registry->editorConfig['token'] = session_id();
$registry->editorConfig['sessionLanguage'] = $_SESSION['lang'];
$route = new \Route\FrontendRoute($siteID, true);

View File

@@ -6,22 +6,231 @@
*
* @copyright CS medien- & kommunikationssysteme (http://www.steinle-computer.de)
*/
//file_put_contents(__DIR__ . '/request.log', var_export($_POST, true) . "\n\n", FILE_APPEND);
/**
* Fehlende Authentifizierung abfangen
*/
if (!isset($_POST['token']) || !is_string($_POST['token']) || empty($_POST['token']))
{
die();
}
$token = $_POST['token'];
unset($_POST['token']);
session_start($_POST['token']);
/**
* Fehlende SESSION abfangen
*/
session_start($token);
if (!isset($_SESSION['userID']) || !is_numeric($_SESSION['userID']) || $_SESSION['userID'] < 1)
{
die();
}
if (!isset($_SESSION['isLoggedIn']) || $_SESSION['isLoggedIn'] !== true)
{
die();
}
file_put_contents(__DIR__ . '/request.log', var_export($_POST, true) . "\n\n", FILE_APPEND);
echo json_encode(1);
/**
* Fehlende Variablen abfangen
*/
if (!isset($_POST['request']) || $_POST['request'] === '')
{
die();
}
$request = $_POST['request'];
unset($_POST['request']);
$pathRoot = dirname(dirname(dirname(__DIR__))) . '/';
require_once($pathRoot . '.config/config_global.php');
require_once(dirname(__DIR__) . '/.config/editor_config.php');
$loader = require PATH_ROOT . '/vendor/autoload.php';
$registry = Helper\Registry::getInstance();
$registry->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('<h2>', '</h2>'), '', $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('<h1>', '</h1>'), '', $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);
}