Newer
Older
namespace SGalinski\TypoScriptReferenceFrontend\Controller;
/* *
* This script belongs to the TYPO3 Flow package "SGalinski.TypoScriptReferenceFrontend".*
* *
* */
use SGalinski\TypoScriptReferenceFrontend\Domain\Model\Attribute;
use SGalinski\TypoScriptReferenceFrontend\Service\TsrefRestService;
use SGalinski\TypoScriptReferenceFrontend\Utilities\Conversion;
class TsrefController extends \TYPO3\Flow\Mvc\Controller\ActionController {
* @var TsrefRestService
*/
protected $tsrefRestService;
/**
* The constructor is used for dependency injection.
*
* @param TsrefRestService $service
*/
public function __construct(TsrefRestService $service) {
$this->tsrefRestService = $service;
}
/**
* The action which fetches the data for typoScript reference page, and displays the page.
* @param int $typeId
* @return void
public function indexAction($typeId = NULL) {
if ($typeId !== NULL) {
$selectedType = $this->tsrefRestService->getAttributeById($typeId);
$properties = $this->tsrefRestService->getPropertiesByParentId($typeId);
$this->view->assign('properties', $properties);
$this->view->assign('selectedType', $selectedType);
// If the type extends a type (superType), the superType name is being fetched among other fields
if (isset($selectedType->parent_id)) {
$superType = $this->tsrefRestService->getAttributeById($selectedType->parent_id);
$this->view->assign('superType', $superType);
}
$types = Conversion::toAssociativeIdNamesArray($this->tsrefRestService->getTypes());
$this->view->assign('types', $types);
/**
* Adds a new type.
*
* @param Attribute $theType
public function submitTypeAction(Attribute $theType, $editForm) {
if ($editForm) {
$result = $this->tsrefRestService->editAttribute($theType);
$result = $this->tsrefRestService->addNewAttribute($theType);
$this->forward('index', 'tsref', 'SGalinski.TypoScriptReferenceFrontend');
}
/**
* Prepares and opens the page for adding new / editing the type
* @param int $theTypeId
*/
public function editTypeAction($theTypeId = NULL) {
$theType = new Attribute();
if ($theTypeId !== NULL) {
// Edit type
$selectedTypeAsStdClass = $this->tsrefRestService->getAttributeById($theTypeId);
$theType->initialiseAttribute($selectedTypeAsStdClass);
$this->view->assign('selectedType', $selectedTypeAsStdClass);
}
$types = $this->tsrefRestService->getTypes();
$associativeTypes = Conversion::toAssociativeIdNamesArray($types);
$typo3Groups = $this->tsrefRestService->getAllTypo3Groups();
$this->view->assign('typo3Groups', $typo3Groups);
$this->view->assign('editForm', ($theTypeId !== NULL));
/**
* Prepares and opens the page for adding new / editing the property
*
* @param int $parentTypeId
* @param int $thePropertyId
*/
public function editPropertyAction($parentTypeId, $thePropertyId = NULL) {
// $theProperty = new Attribute();
//
// if ($thePropertyId !== NULL) {
// // Edit type
// $selectedPropertyAsStdClass = $this->tsrefRestService->getAttributeById($thePropertyId);
// $theProperty->initialiseAttribute($selectedPropertyAsStdClass);
// $this->view->assign('selectedType', $selectedTypeAsStdClass);
// }
//
// $types = $this->tsrefRestService->getTypes();
// $associativeTypes = Conversion::toAssociativeIdNamesArray($types);
// $typo3Groups = $this->tsrefRestService->getAllTypo3Groups();
//
// $this->view->assign('typo3Groups', $typo3Groups);
// $this->view->assign('types', $associativeTypes);
// $this->view->assign('theType', $theProperty);
// $this->view->assign('editForm', ($thePropertyId !== NULL));
}