TimeField in eigenem Einkaufswelt Element

Hallo zusammen,

ich versuche aktuell ein eigenes Einkaufswelt Element über ein Plugin einzubinden. Leider funktioniert das ganze noch nicht so ganz, wie es sollte.
Ich gehe nach folgender Anleitung vor: http://community.shopware.com/Eigene-Einkaufswelten-Elemente-erstellen_detail_1459.html
und versuche ein TimeField in meinem Element zu verwenden.

Die Install-Methode in der Bootstrap.php sieht wie folgt aus:

public function install()
{
    $component = $this->createEmotionComponent(array(
		'name' => 'Countdown-Element',
		'template' => 'emotion_countdown',
		'cls' => 'emotion-my-countdown',
		'description' => 'Element Beschreibung.'			
	));
		
	$component->createTinyMceField(array(
		'name' => 'countdown_text',
		'defaultValue' => 'Countdown:',
		'fieldLabel' => 'Text',
		'supportText' => 'Countdown Text',
		'allowBlank' => false
	));
		
	$component->createTextField(array(
		'name' => 'countdown_date',
		'fieldLabel' => 'Endzeitpunkt (Datum)',
		'supportText' => 'An welchem Tag soll der Countdown enden?',
		'allowBlank' => false
	));
	
	$component->createTimeField(array(
		'name' => 'countdown_time',
		'fieldLabel' => 'Endzeitpunkt (Zeit)',
		'supportText' => 'Um welche Uhrzeit soll der Countdown enden?',
		'allowBlank' => false,
		'defaultValue' => 1,
		'helpTitle' => 1,
		'helpText' => 1,
	));
		
	$this->subscribeEvent(
		'Enlight_Controller_Action_PostDispatchSecure_Widgets_Campaign',
		'extendsEmotionTemplates'
	);
		
	return array('success' => true, 'invalidateCache' => array('backend'));
}

Das Problem ist nun aber, dass das TimeField nicht funktionieren möchte. Sobald ich das Element in eine Einkaufswelt hinzufüge und bearbeite erscheint korrekt die Eingabemaske für das Element. Jedoch passiert, bei einem Klick auf das “Uhrensymbol” (eig. sollte hier die das Select-Menü ausklappen mit den verschiedenen Uhrzeiten zur Auswahl) garnichts. Es wird auch kein Fehler in den Chrome Developer Tools angezeigt.

Wenn ich das Eingabefenster des Elementes schließe und neu öffne, wird mir die komplette Darstellung im Backend zerschossen. Die Menüs in der Navigation klappen nicht mehr auf, die Fenster sehen alle verbuggt aus und lassen sich nicht mehr schließen usw. Ab hier hilft es nur noch das Backend komplett neu zu laden.

Jemand eine Idee woran das liegen kann? Das DateField funktioniert absolut problemlos, nur beim TimeField mag es nicht so.

Verwendete Shopware Version ist 5.1.1

Danke
Gruß iLuHa

Ok, also das DateField funktioniert komischerweiße korrekt.

Beim TimeField erhalte ich folgende Fehler wenn ich auf das “Uhren-Symbol” klicke:

Beim ersten klick (öffnen):

  • Uncaught TypeError: Cannot read property ‘type’ of undefined (ext-all.js?201510221322:18)

Beim zweiten klick (schließen):

  • Uncaught TypeError: Cannot read property ‘removeChild’ of null (ext-all.js?201510221322:18)

 

Komisch ist auch, dass ich folgende Werte erhalte bei einer manuellen Eingabe:

DateField: 2016-04-19T00:00:00 (Eingabe: 19.04.2016)

TimeField: 2008-01-01T17:10:00 (Eingabe: 17:10)

Hat niemand eine Ahnung wieso das TimeField einen Fehler wirft und nicht richtig verwendet werden kann?

Hallo Ihr Lieben,

wir haben die Doku für das Erstellen eigener Einkaufswelten-Elemente aktualisiert.
Ihr findet eine neue Version der Doku inkl. überarbeitetem Beispiel-Plugin unter:

https://developers.shopware.com/developers-guide/custom-shopping-world-elements/

Ab der Version 5.2 wurden einige Fehler in den Standard-Feldern wie z.B. dem Time-Feld behoben.

Sonnige Grüße,
​Phil

1 Like