blade runner
Mitglied
Hallo,
ich bin dabei eine Pluginschnittstelle zu schreiben, welche eine Art 'Wizzard' für die benötigten Parameter der Plugins beinhaltet.
Die 'wizzard'-Methode des jewailigen Plugins bekommt nach und nach die vom User definierten Parameter und gibt der Hauptklasse ein Array mit weiter benötigten Parametern (+Hinweis für User, +Regex für Gültigkeit) zurück.
Das Ziel dieser Vorgehensweise ist, eine Art Designtool für eine XML-Datei.
Vorgehensweise:
1. Designtool fragt Plugin, welche Parameter das Plugin benötigt.
2. Plugin liefert als Antworte ein Array mit benötigten Parametern zurück.
3. Designtool erzeugt Formular, welches den User nach den benötigten Parametern fragt.
4. User füllt dieses Formular aus und sendet das Formular ab.
5. Designtool übergibt die Userdaten den Plugin und Plugin überprüft, ob nun alle benötigten Parameter ausgefüllt sind.
Anschließend gibt Plugin dementsprechend Erfolgsmeldung zurück,oder verlangt weitere Parameter.(weiter Punkt 3)
Dies Funktioniert auch soweit wunderbar
Hier der Code welcher Parameter zurückliefert, die ein Datum zu erzeugen.
Im ersten Durchlauf wird nur nach dem Datum und Format gefragt.
Datum kann 'today', 'beginMonth' oder 'specific' sein.
Format siehe date.
Wenn der User anschließend 'specific' auswählt, wird 'day', 'month', 'year' verlangt.
Ansonsten recht der Parameter 'date', da die Systemzeit dann alles ausrechnen kann.
Nun meine Problem:
Da dies recht umständlich und umfangreich zu erstellen ist (jedes Plugin braucht einen eigenen 'wizzard') würde ich gerne dies mittels DTD bzw. XML-Shema umsetzen.
Dies kann dann als Konstante in der konkreten Pluginklasse bereitgestellt werden.
Weiterhin braucht man dann keinen Pluginentwickler erklären, wie so ein Wizzard funktioniert, da im Netz wirklich genügend Infos über DTD bzw. XML-Shema steht.
Kennt jemand eine PHP-Klasse oder ähnliches, welches mir so etwas errechnet. Habe bisher nur von PEAR XML_DTD gefunden. Leider bekomme ich von dieser Klasse nur ein 'gut' oder 'schlecht' und keine Hinweise, was fehlt.
Dies selber zu programmieren würde glaube ich jeden zeitlichen Rahmen sprengen und das eigentliche Projekt soll ja fertig werden. ;-)
Oder hat jemand einen besseren Lösungsansatz, bin glaube ein wenig betriebsblind geworden?
Würde mich über eine ausgibige Diskussion freuen.
ich bin dabei eine Pluginschnittstelle zu schreiben, welche eine Art 'Wizzard' für die benötigten Parameter der Plugins beinhaltet.
Die 'wizzard'-Methode des jewailigen Plugins bekommt nach und nach die vom User definierten Parameter und gibt der Hauptklasse ein Array mit weiter benötigten Parametern (+Hinweis für User, +Regex für Gültigkeit) zurück.
Das Ziel dieser Vorgehensweise ist, eine Art Designtool für eine XML-Datei.
Vorgehensweise:
1. Designtool fragt Plugin, welche Parameter das Plugin benötigt.
2. Plugin liefert als Antworte ein Array mit benötigten Parametern zurück.
3. Designtool erzeugt Formular, welches den User nach den benötigten Parametern fragt.
4. User füllt dieses Formular aus und sendet das Formular ab.
5. Designtool übergibt die Userdaten den Plugin und Plugin überprüft, ob nun alle benötigten Parameter ausgefüllt sind.
Anschließend gibt Plugin dementsprechend Erfolgsmeldung zurück,oder verlangt weitere Parameter.(weiter Punkt 3)
Dies Funktioniert auch soweit wunderbar
Hier der Code welcher Parameter zurückliefert, die ein Datum zu erzeugen.
Code:
function wizzard($parameters){
$out=array();
//date
switch($parameters['date']){
case !'today'&&!'beginYear'&&!'beginMonth'&&!'specific':
unset($parameters['date']);
}
if(!isset($parameters['date'])){
$out['date']=array(
'values'=>array('specific','today','beginMonth','beginYear'),
'description'=>'\'Specific\' needs day, month and year parameter.',
'pattern'=>'^(specific|today|beginMonth|beginYear)$'
);
}else{
if($parameters['date']=='specific'){
if(!isset($parameters['day'])){
$out['day']=array(
'values'=>array(),
'description'=>'Day of month',
'pattern'=>'^\d+$'
);
}
if(!isset($parameters['month'])){
$out['month']=array(
'values'=>array(),
'description'=>'Month of year',
'pattern'=>'^\d+$'
);
}
if(!isset($parameters['year'])){
$out['year']=array(
'values'=>array(),
'description'=>'Year',
'pattern'=>'^\d+$'
);
}
}
}
//format
if(!isset($parameters['format'])){
$out['format']=array(
'values'=>array(),
'description'=>'See <a href="http://php.net/date">http://php.net/date</a>',
'pattern'=>'^.*$'
);
}
return $out;
}
Datum kann 'today', 'beginMonth' oder 'specific' sein.
Format siehe date.
Wenn der User anschließend 'specific' auswählt, wird 'day', 'month', 'year' verlangt.
Ansonsten recht der Parameter 'date', da die Systemzeit dann alles ausrechnen kann.
Nun meine Problem:
Da dies recht umständlich und umfangreich zu erstellen ist (jedes Plugin braucht einen eigenen 'wizzard') würde ich gerne dies mittels DTD bzw. XML-Shema umsetzen.
Dies kann dann als Konstante in der konkreten Pluginklasse bereitgestellt werden.
Weiterhin braucht man dann keinen Pluginentwickler erklären, wie so ein Wizzard funktioniert, da im Netz wirklich genügend Infos über DTD bzw. XML-Shema steht.
Kennt jemand eine PHP-Klasse oder ähnliches, welches mir so etwas errechnet. Habe bisher nur von PEAR XML_DTD gefunden. Leider bekomme ich von dieser Klasse nur ein 'gut' oder 'schlecht' und keine Hinweise, was fehlt.
Dies selber zu programmieren würde glaube ich jeden zeitlichen Rahmen sprengen und das eigentliche Projekt soll ja fertig werden. ;-)
Oder hat jemand einen besseren Lösungsansatz, bin glaube ein wenig betriebsblind geworden?
Würde mich über eine ausgibige Diskussion freuen.
Zuletzt bearbeitet: