[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
[gelöst]: yForm - Erweiterung der Funktionen - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
site-concept
Beiträge: 52
Registriert: 15. Nov 2011, 17:02

[gelöst]: yForm - Erweiterung der Funktionen

28. Okt 2016, 11:31

Hallo zusammen,

gibt es eine Möglichkeit in der Datenübersicht eigene Funktionen zu platzieren, mittels Extension-Point oder ähnlichem?
Ich würde gerne z.B. neben "editieren", "löschen" einen weiteren Link platzieren "kopieren/duplizieren".
In einigen Projekten gäbe es da noch weitere Fälle, wie "Export erzeugen" oder "E-Mail senden".

Kennt jemand eine Möglichkeit, wie ich da eingreifen könnte und trotzdem updatefähig bleiben kann?

Freue mich über Eure Anregungen.

VG

Pascal
Zuletzt geändert von site-concept am 3. Nov 2016, 12:16, insgesamt 1-mal geändert.

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: yForm - Erweiterung der Funktionen

3. Nov 2016, 09:36

Hi...
in R5 gibt es ein Addon (nicht im backend ersichtlich) /projects/...
in diesem Addon kannst du im /lib/ Verzeichnis eigene class reinhängen. Diese werden automatisch geladen (autoloader / der kann nur classen autom. laden). Ebenso empfiehlt es sich hier deine Erweiterungen/Funktionen etc reinzuschreiben und R5 via boot.php bekannt zu machen (include/reqire... etc...).'
Soweit mir bekannt ist das /projects/ "sicher" vor einem update ;)

grz. Chris

site-concept
Beiträge: 52
Registriert: 15. Nov 2011, 17:02

Re: yForm - Erweiterung der Funktionen

3. Nov 2016, 12:15

Hi Chris,

danke für deinen Beitrag. Das war mir noch nicht bekannt.
Ich nutze bisher ein eigenes Addon um weitere Classen und Funktionen zu laden.

Es ging mir aber mehr darum den Einstieg in yForm zu finden, um dort die Ansichten etwas zu erweitern.
Ich habe mir den Quelltext noch einmal im Detail angesehen und konnte jetzt über zwei ExtensionPoints die Kopier/Duplizierungsfunktion realisieren.

Die Lösung könnte man in "project" hinterlegen, wie von dir vorgeschlagen oder in einem eigenen Addon.

Code: Alles auswählen

class SC_yFormExtension {
	
	public static function extendTableOverview($objExtensionPoint) {
		self::addButton_Duplicate($objExtensionPoint);
	}
	
	public static function extendFunctions($objExtensionPoint) {
		self::addFunction_Duplicate($objExtensionPoint);
	}	
	

	private static function addButton_Duplicate($objExtensionPoint) {
	    $objList = $objExtensionPoint->getSubject();
	    
		$strLinkText = 'duplizieren';
	    $objList->addColumn($strLinkText, '<i class="fa fa-clone"></i> ' . $strLinkText);
	    $objList->setColumnLayout($strLinkText, ['', '<td class="rex-table-action">###VALUE###</td>']);
	    $objList->setColumnParams($strLinkText, array('data_id' => '###id###', 'func' => 'duplicate', 'start' => rex_request('start', 'string'), 'sort' => rex_request('sort', 'string'), 'sorttype' => rex_request('sorttype', 'string'), 'list' => rex_request('list', 'string')));    
	    
	    return $objList;	
	}
	
	private static function addFunction_Duplicate($objExtensionPoint) {
	    $objSubject = $objExtensionPoint->getSubject();
	    $func = rex_request('func', 'string', '');
	    $table_name = rex_request('table_name', 'string', '');
	    $data_id = rex_request('data_id', 'int', '');    
	    	    
	    if ($func == 'duplicate' && $data_id) {
			$sf = rex_sql::factory();
			$sf->setDebug(false);			
			$strSqlQuery = "CREATE TEMPORARY TABLE tmp SELECT * FROM ".$table_name." WHERE id=".$data_id;
			$sf->setQuery($strSqlQuery);
			$strSqlQuery = "UPDATE tmp SET id=NULL";
			$sf->setQuery($strSqlQuery);
			$strSqlQuery = "INSERT INTO ".$table_name." SELECT * FROM tmp";
			$sf->setQuery($strSqlQuery);
			
	        $func = 'list';            
	    }    
	    
	    return $objSubject;			
	}		
}


rex_extension::register('YFORM_DATA_LIST', 'SC_yFormExtension::extendTableOverview');

rex_extension::register('YFORM_MANAGER_DATA_PAGE', 'SC_yFormExtension::extendFunctions');
Viele Grüße

Pascal

Zurück zu „AddOns / Packages [R5]“