Deutsch| English
  #1  
Alt 08.11.2011, 16:58
Neuer Benutzer
 
Registriert seit: 08.11.2011
Beiträge: 13
Standard Module-Erstellung - Wie funktioniert 'CUSTOM'

Hallo zusammen,

Ich bräuchte bitte ein wenig Unterstützung bei der Erstellung eines Moduls:

Ich möchte gerne Externe-Daten im ISPconfig 3(.0.4) in einer Tabelle anzeigen lassen. Ich bin dabei über die einstellung "CUSTOM" (statt "SQL") gestoßen das mit einer Klasse oder Funktion gefüttert werden kann. Aber was / wie muss zurückgegeben werden damit es ISPconfig auswerten kann?

Ich wär um Unterstützer sehr Dankbar !
Mit Zitat antworten
  #2  
Alt 08.11.2011, 17:21
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Die Custom Datasource gibt ein ein assoziatives Array zurück.

Schau am besten mal in die Datei interface/lib/classes/custom_datasource.inc.php. Dort stehen alle custom datasoirces des Systems drin. Du legst am besten eine neue Datei im gleichen verzeichnis für Deine custom datasources an, die kann dann direkt aus der Form datei angesprichen werden, indem Du "custom_datasource" durch den Namen Deiner datei ersetzt.

Du kannst ja mal in die Form datei interface/web/sites/form/webdav_user.tform.php schauen, dort wird eine custom datasource eingesetzt.
Mit Zitat antworten
  #3  
Alt 09.11.2011, 15:06
Neuer Benutzer
 
Registriert seit: 08.11.2011
Beiträge: 13
Standard

Hallo,

Vielen Dank! Das hat mir schon um etwas weiter geholfen. Wenn ich das nun aber richtig interpretiere kann ich damit keine komplette Tabelle abrufen, sondern nur einzelne Felder?

Gibt es gegebenenfalls einen anderen Weg eine komplette (Standard)Tabelle zu füttern, ohne diese in die ISPconfig Datenbank zu laden?
Mit Zitat antworten
  #4  
Alt 09.11.2011, 15:27
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Zitat:
Vielen Dank! Das hat mir schon um etwas weiter geholfen. Wenn ich das nun aber richtig interpretiere kann ich damit keine komplette Tabelle abrufen, sondern nur einzelne Felder?
Richtig, bei der custom_datasource geht es ja um Quellen für Select Felder.

Zitat:
Gibt es gegebenenfalls einen anderen Weg eine komplette (Standard)Tabelle zu füttern, ohne diese in die ISPconfig Datenbank zu laden?
Ja, und zwar indem Du die Klasse zum Anzeigen der Liste wie bei allen Listen von listform_actions ableitetst und dann z.B. die Funktion getQueryString mit einer eigenen Funktion überschreibst (wenn Deine Daten auch in einer MySQL DB liegen) oder aber Du gleich die Hauptfunktion onLoad() überschreibst. Schau Dir mal die Klasse in der Datei listform_actions.inc.php an, ist an sich recht übersichtlich mit nur 160 Zeilen.
Mit Zitat antworten
  #5  
Alt 17.11.2011, 17:44
Neuer Benutzer
 
Registriert seit: 08.11.2011
Beiträge: 13
Standard

Hallo,

Das hat mir massiv weitergeholfen. Leider ist die API die ich einbinden wollte viel zu langsam und lagere nun doch alles auf die MySQL-Datenbank ein.

Gibt es beim Abruf der SQL Datenbank ein vordefiniertes verfahren für z.B. "left join" in eine Tabelle ein zu fügen?
Mit Zitat antworten
  #6  
Alt 17.11.2011, 18:29
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Der normale Fall in ISPConfig ist ja eine Abfrage ohne Join. Du kannst aber jede beliebige SQL Query verwenden, indem Du die default getQueryString Funktion in Deiner abgeleiteten listform Klasse überschreibst und dort die SQL Abfrage zusammenbaust und den SQL string als Rückgabewert lieferst.
Mit Zitat antworten
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an



Alle Zeitangaben in WEZ +2. Es ist jetzt 14:09 Uhr.


Powered by vBulletin® Version 3.8.1 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.0