[2.xx] Ideensammlung

Dieser Bereich dient dazu, neue Features zu diskutieren und für die Entwicklung zu dokumentieren. // This area is dedicated to new features including proposals and documentation.
Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [2.xx] Ideensammlung

Beitrag von Screeze » 26.02.2011, 16:35:38

Worin unterscheiden sich die formulare denn in versch. sprachen?

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: [2.xx] Ideensammlung

Beitrag von welworx » 26.02.2011, 17:09:32

Unterscheiden sich eigentlich nur in den angezeigten Texten.

Mein ziel war es aber alle verschiedenen sprachen einer applikation auf einmal mit einem formular zu bearbeiten.

Konkretes bsp:
Termine modul welches alle Texte mehrsprachig in der db ablegt.

Damit man das einfach bearbeiten kann, läd das formular gleich alle texte. (So kann man das zb 1. leicht übersetzten und 2. gleich sicherstellen das überall was eingetragen wurde. Das wiederum macht die sprachumschaltung auf der website zuverlässiger)

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [2.xx] Ideensammlung

Beitrag von Screeze » 26.02.2011, 17:34:27

Wenn es nur um die Texte geht, tuhen es doch die *:getstring taglibs? dann definierst du die texte in einer config datei, und je nach aktueller sprache wird dann diese geladen, erweiterung problemlos möglich.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [2.xx] Ideensammlung

Beitrag von dr.e. » 26.02.2011, 20:06:15

Alternativ dazu können die <*:getstring />-Tags auch mit einer Datenbank-basierten Konfiguration gefüllt werden. Dann scheint mir deine Anforderung schon jetzt mit dem neuen Konfigurations-Konzept von 1.13 erfüllt zu sein.
Viele Grüße,
Christian

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: [2.xx] Ideensammlung

Beitrag von welworx » 26.02.2011, 20:12:46

Ja da ist es aber zur zeit so, dass das wie schon angesprochen für die buttons noch nicht gibt.



Und wenn man zum Bearbeiten mehrerer Sprachen ein formular erzeugen will, geht das zurzeit nur durch dynamische aufrufe in documentcontroller.

Sehr praktisch wäre auch, wenn man in den formulartaglibs auch definieren könnte, dass sie, falls keine übermittelten werte vorliegen, jene aus einer config laden.

stell mir das zb ungefähr so vor:

Code: Alles auswählen

<form:text name="title"  languages="de,en" defaultNamespaceForDefaultContent="modules::test" defaultConfigForDefaultContent="labels.db" section="eintrag1"/>
dieser taglib erzeugt dann ganz autmatisch folgendes:

Code: Alles auswählen

<div class="title-de form-de"><input type="text"  value="Deutsche Text" name="title_de"></div>
<div class="title-en form-en"><input type="text"  value="Englischer Text aus der config " name="title_en"></div>
Anmerkung: die div tags wären für die formatierung sehr hilfreich. Sollte man aber optional ein oder ausschalten können

Das würde das bearbeiten von Texten deutlich erleichtern. Das gepaart mit einer entsprechenden speicherroutine wäre sicher sehr praktisch.


Auf jedenfall würde ich dann auch dies alles auch im <html:form /> Tag einbauen, damit es automatisch für alle elemente definieren ist.
Klarerweise kann dies in den einzellnen elementen überschrieben werden.

Somit brauche ich, wenn ich zb die daten eines News Eintrages ändern will, nur mehr die sektion dynamisch einsetzten, erhalte ein formular mit allen vorhandenen einträgen in jeder definierten sprache.
(Jetzt mal überlegt für eine flache Hierarchie)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [2.xx] Ideensammlung

Beitrag von dr.e. » 26.02.2011, 20:52:46

Hallo Werner,

entweder gefällt mir der Ansatz noch nicht oder ich hab's noch nicht verstanden. :roll: Das Wesen der Formular-Elemente des APF sollte die Kapselung von Funktionen sein, die ein Text- oder Select-Feld etc. hat. Klar, die Beschriftung des Buttons ist noch ein Manko, aber der Rest funktioniert schon heute.

Die HTML-Formatierung (z.B. Erzeugen eines DIV) ist konzeptuell nicht Aufgabe eines Text-Feldes und die Beschriftung sollte im Sinne von sauberem HTML auch über <label />-Tags passieren. Dein Beispiel würde also aus meiner Sicht wie folgt funktionieren:

Code: Alles auswählen

<label for="title">Hier den Titel eingeben:</label>
<form:text id="title" name="title" />
Sofern man Daten-Quellen direkt per Tag anbinden will um Felder zu füllen würde ich gemäß des Listener-Konzepts der Forular-Tags aus Version 1.12 einen Tag vorschlagen, der das auch tut - ähnlich einem <form:addvalidator />-Tag. Ansonsten generierst du Abhängigkeiten zu den Controls, die sie a) nicht brauchen und die b) hinsichtlich der Tags nicht mehr wartbar sind. Man könnte also sowas wie einen <form:prefill />-Tag bauen, der ein Control vorbefüllt:

Code: Alles auswählen

<label for="title">Hier den Titel eingeben:</label>
<form:text id="title" name="title" />
<form:prefill 
  control="title"
  languages="de,en" 
  defaultNamespaceForDefaultContent="modules::test" 
  defaultConfigForDefaultContent="labels.db" 
  section="eintrag1"
/>
Das wiederum lässt zwar generisch abbilden, bringt dir aber für das Beispiel der News-Bearbeitung nichts, weil die Daten deiner News ja in einer Datenbank stehen. Damit müsstest du den Tag entweder immer auf deine Bedürfnisse anpassen oder die Inhalte gleich im Controller prefillen. Letzteres ist aktuell der konzeptuelle Weg, den ich immer noch generischer als diesen finde.

Aber vielleicht habe ich das auch einfach nicht verstanden... :)
Viele Grüße,
Christian

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: [2.xx] Ideensammlung

Beitrag von welworx » 26.02.2011, 21:17:27

... label
ok.
<form:prefill
wäre glaube ich eine sehr gute Erweiterung. (hier sollte man vermutlich das selbe machen wie beim importdesign. verschiedene varianten, aus config, model, ...)

Was ich aber dennoch sehr sinnvoll fände wäre die möglichkeit, dass man gewisse elemente für alle sprachen ausgeben kann.

du hast bereits das mit

Code: Alles auswählen

<form:prefill
  control="title"
  languages="de,en" 
die Sprachen angedeutet, nur gibts die formular felder noch nicht.

Ich fände es halt sehr praktisch wenn man mit einem taglib automatisiert für alle definierten sprachen die felder erhält.


Bei den News habe ich es zur zeit so realisiert, dass ich eine db tabelle mit id und veröffentlichungszeitraum sowei kategorie hab. in einer Tabelle die man mit dem db provider ansprechen kann liegen alle texte. Somit kann ich ganz einfach auf beliebig viele sprachen aufrüsten. (Falls sich zb herausstellt, dass die Website auf einmal 5 statt 2 sprachig wird ist das so sehr einfach machbar.

wenn ich aber jetzt in jedes formular (und ich finde es sehr praktisch dass die sprachen alle nebeneinander gelistet werden) überall die zusätzlichen felder einbauen muss dann ist dies nicht mehr so einfach machbar. (daher auch der dynamsiche ansatz)

Klar kann man auch das ganze so lösen, dass man jede News in jeder sprache nacheinander erstellt und speichert. finde ich aber für denjenigen der die news erstellt echt mühsam. Da ist es doch viel angenehmer das gleich alles auf einmal einzutragen bzw zu übersetzen. (aber darüber lässt sich sicher streiten ;) )


Was man natürlich in dem zusammenhang auch machen könnte wäre einen art schleife taglib. Der alle darin gelistete elemente entsprechend oft erstellt. (Müsste dann halt an den element namen immer den wert aus dem array anhängen. (diese liste muss man natürlich auf verschiedene weise erhalten können).

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: [2.xx] Ideensammlung

Beitrag von Screeze » 27.02.2011, 14:39:38

Was man natürlich in dem zusammenhang auch machen könnte wäre einen art schleife taglib. Der alle darin gelistete elemente entsprechend oft erstellt. (Müsste dann halt an den element namen immer den wert aus dem array anhängen. (diese liste muss man natürlich auf verschiedene weise erhalten können).
Einen Iterator im Formular hab ich auch schon paar mal vermisst kommt mir grade....

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [2.xx] Ideensammlung

Beitrag von dr.e. » 28.02.2011, 00:34:23

Hallo Werner,

jetzt verstehe ich deinen Ansatz. Darüber kann man in der Tat diskutieren und ich überlege gerade, ob das nicht ein Fall für einen Aufsatz auf die aktuellen Formular-Felder wäre - quasi eine Art Form-Generator dem du sagen kannst welches Set an Formular-Felder du hast und wie diese gruppiert sind (hier: Sprache). Vorteil einer solchen Vorgehensweise wäre, dass du das Prefilling auch auf diese konfigurative Art generisch bestimmen könntest. Andernfalls bleibst du an der ein oder anderen Stelle hängen, weil du keine generische Lösung schreiben kannst. Darüber sollten wir auf jeden Fall weiter sprechen.

Was ich auch ursprünglich mal für eine kommende Version angedacht hatte, war eine Workflow-Engine, mit der du Formular-basierte Workflows schreiben bzw. konfigurieren kannst. Evtl. ist das auch etwas, was man hier mit andenken könnte.
Viele Grüße,
Christian

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: [2.xx] Ideensammlung

Beitrag von welworx » 28.02.2011, 02:18:21

Was genau versteht man unter einer Workflow-Engine? Wie funktioniert die? Was ist der Zweck dieser?

Iterator wäre dennoch eine feine sache.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [2.xx] Ideensammlung

Beitrag von dr.e. » 28.02.2011, 23:45:29

Hi,

konzeptuell finde ich vom Ansatz her webwork/struts2 interessant, die basierend auf dem Front-Controller-Pattern eine Struktur schaffen, die in einer Action entcheidet, welches Ergebnis (=View) angezeigt wird. Da das APF eine HMVC-Struktur anbietet müsste man hier noch ein wenig Anpassung betreiben, aber die Idee ist, mehrseitige Workflows mit einer Konfiguration von Actions und Views abbilden zu können und dabei durch ein Framework unterstützt zu werden, das Workflow-Status/Models, ... schon für dich übernimmt.

Ein Punkt wäre dabei Formulare per Konfiguration definieren zu können um beispielsweise deine mehrsprachigen News über - mehr oder weniger - nur Konfiguration erzeugen zu können. Validierung und Filtering eingeschlossen. Du müsstest dann "nur" noch die Save-Action implementieren um die Daten zu persistieren. Soviel zumindest zur Vision. :)

Was die Iterator-Geschichte in Formularen angeht, ist das kein großer Act. Lass uns das mal für 1.14 vormerken.
Viele Grüße,
Christian

welworx
Beiträge: 620
Registriert: 27.09.2010, 19:29:44

Re: [2.xx] Ideensammlung

Beitrag von welworx » 01.03.2011, 00:00:30

Das mit der Vision kling cool! :) (wirkt so als ob dass dann wenns fertig ist eine menge arbeit erspart)

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: [2.xx] Ideensammlung

Beitrag von Megger » 17.05.2011, 22:54:55

Was für eine spätere Version vielleicht noch sinnvoll wäre ist, dass der GORM auch andere Datenbanksysteme unterstützt, wie zum Beispiel MSSQL, SQLite und PostgreSQL usw. Im Moment werden die Statements ja nur für MySQL generiert, da müsste man sich etwas überlegen, um das ganze dynamischer zu gestalten und da dies eine größere Sache werden wird, ist es für 2.x sinnvoll es auf dem Plan zu haben
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: [2.xx] Ideensammlung

Beitrag von dr.e. » 17.05.2011, 22:58:54

Korrekt. Weiter wäre noch sinnvoll, die Datenbank-Treiber noch ein wenig besser zu abstrahieren um z.B. bei allen Varianten prepared statements, bind statements o.ä. nutzen zu können.
Viele Grüße,
Christian

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: [2.xx] Ideensammlung

Beitrag von MrNiceGuy » 18.05.2011, 08:13:57

Wäre es nicht auch jetzt schon möglich MSSQL als Treiber anzubieten? *verwirrtbin*
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast