TYPO3.CMS 6.2 Extension jquery.dataTables

Aus Vosp.freesn.de
Zur Navigation springen Zur Suche springen

typo3

Ziel ist es in einer typo3 Extension eine Datenbanktabelle auszulesen und in der Oberfläche (frontend) dynamisch darzustellen und manipulierbar (add,edit,delete row) zumachen. Unterschied zur Typo3 Extension jquery.dataTables.editable @deprecated Anleitung es wird nicht das JQuery-DataTables-Data Manager plugin verwendet, sondern darauf verzichtet die Tabelle innerhalb der Tabllenanzeige zu editieren

Verzeichnissstruktur

  • typo3conf/ext/ncfluid
    • typo3conf/ext/ncfluid/Classes
      • typo3conf/ext/ncfluid/Classes/Controller/
      • typo3conf/ext/ncfluid/Classes/Domain/
        • typo3conf/ext/ncfluid/Classes/Domain/Model/
        • typo3conf/ext/ncfluid/Classes/Domain/Repository/
    • typo3conf/ext/ncfluid/Configuration/
      • typo3conf/ext/ncfluid/Configuration/TCA/
      • typo3conf/ext/ncfluid/Configuration/TypoScript/
    • typo3conf/ext/ncfluid/Resources/
      • typo3conf/ext/ncfluid/Resources/Private/
        • typo3conf/ext/ncfluid/Resources/Private/Language/
        • typo3conf/ext/ncfluid/Resources/Private/Layouts/
        • typo3conf/ext/ncfluid/Resources/Private/Partials/
        • typo3conf/ext/ncfluid/Resources/Private/Templates/
          • typo3conf/ext/ncfluid/Resources/Private/Templates/Table/
      • typo3conf/ext/ncfluid/Resources/Public/
        • typo3conf/ext/ncfluid/Resources/Public/Stylesheets/

MVC

Datenmodell

View

Controller

Notizen

Probleme

Fatal error: Call to a member function replaceObject() on a non-object in typo3/sysext/extbase/Classes/Persistence/Repository.php on line 222

folgendes löst das Problem, weiß aber nicht genau ob das nicht anders besser geht:

Tx_Ncfluid_Domain_Repository_TableRepository wird nicht über initializeAction() genutzt, sondern extra noch mal geladen

class Tx_Ncfluid_Controller_TableController
	extends Tx_Extbase_MVC_Controller_ActionController {

// 	....

	public function updateAction(Tx_Ncfluid_Domain_Model_Table $tablerow) {

		$objectManager = t3lib_div::makeInstance('Tx_Extbase_Object_ObjectManager');
		$tableRepository = $objectManager->get('Tx_Ncfluid_Domain_Repository_TableRepository');		
		$tableRepository->update($tablerow);

//		alter code führte zur Fehlermeldung; 
//		@see initializeAction -- $this->tableRepository =& t3lib_div::makeInstance('Tx_Ncfluid_Domain_Repository_TableRepository');
//		$this->tableRepository->update($tablerow);
//		$this->flashMessageContainer->add('Your tablerow was updated.');

		$this->redirect('index');
	}

// 	....

Quellen