yakamara / redaxo_yform_docs Goto Github PK
View Code? Open in Web Editor NEWDokumentation für YForm
Dokumentation für YForm
Früher war es ja möglich, in der master.inc.php in R4 eine 2. Datenbankverbindung zu hinterlegen. Das geht ja auch in R5.
Und ich lese zwischen den Zeilen öfters, dass der Table Manager auch auf die 2. Datenbankverbindung zugreifen kann. Wie funktioniert das? Verstehe ich da was falsch?
Mehrfachbearbeiten von Suchergebnissen nun möglich.
Man kann einzele Felder bearbeiten. Jeder Datensatz wird dann nur um diese Änderung ergänzt und durchläuft bei der Veränderungen den normalen Eingabeprozess. D.h. auch Validierungen werden geprüft und eventuelle Funktionen werden durchgeführt
Slack
Frage: "Wie übertrage ich xform Tabellen (rex4) zu yform Tabellen (rex5)?"
Antwort: "xForm-Datenbank importieren, dann alle Felder löschen (die werden nur im Table Manager gelöscht, nicht in der Datenbank), dann Felder neu zuweisen. Und am besten gleich yForm 2.0 nehmen, denn da hat sich zu yForm 1.0 auch noch mal viel geändert."
Man sollte deutlicher machen, dass man Felder über den Table Manager problemlos löschen und neu zuweisen kann. Die Frage taucht hin und wieder auf (und mir war das früher auch nicht aufgefallen).
in rex5.2 habe ich yform 2.0 mit docs 2.0 installiert.
in den firefox devtools sehe ich dass eine http://localhost/redaxo_5.2.0/assets/addons/yform/plugins/docs/docs.css nicht geladen werde kann... 404...
im physikalischen ordner auf der platte existiert auch kein unterordner /docs/doc.css
php5.6.15
win10
Verstehe ich das Szenario richtig:
D.h. umgekehrt, dass ich nicht in nur einem Feld einer Datenbank-Tabelle suchen kann, sondern immer in allen gesucht wird?
Bräuchte Beispiele, wie man "Filter" richtig anwendet. Ist damit die WHERE-Klausel gemeint?
wurden an verschiedensten Feldern ergänzt .. Ein Review der Felder kann nicht schaden.. Sorry, war echt einiges..
Wie funktionieren sie? Was gibt es da für gebräuchliche Szenarien?
Wenn eine be_table befüllt wird, was enthält dann das Feld im Backend? csv mit Komma+Semikolon? Komma+Newline? JSON?
Damit auch Screenshots gezeigt werden können oder Muster-Imports verlinkt werden können.
Siehe auch https://github.com/aeberhard/dummy_documentation/issues/3
Laut doku soll das ja mit folgendem Code in Pipe Notation gehen:
action|db|tblname|[where(id=2)/main_where]
im YForm-Formbuilder
text|vorname|Vorname
text|name|Name
text|plz|PLZ
text|ort|Ort
action|db|rex_warenkorb
action|html|Daten gespeichert
Und die PHP Version dieses Beispiels scheint mir auch nicht komplett zu sein:
$yform = rex_yform::factory();
// aus dem Beispiel
$yform->setValueField('text', array("vorname","Vorname"));
$yform->setValueField('text', array("name","Name"));
$yform->setValueField('text', array("plz","PLZ"));
$yform->setValueField('text', array("ort","Ort"));
$yform->setActionField('db', array("rex_warenkorb"));
$yform->setActionField('html', array("Daten gespeichert"));
echo $yform->getForm();
Was ich eben erreichen möchte ist Formulardaten zu aktualisieren und den Code dafür in Pipe Notation aus einer Datenbank holen und action|db|tblname|[where(id=2)/main_where]
hier die id
durch einen Wert ersetzen. Letztlich den Formularcode ähnlich wie im Formbuilder mit yform->setFormData($formData)
ausgeben.
Beim Import wird jeder Datensatz "simuliert" eingegeben. D.h. es durchläuft die Validierungen und Indexierungen und Funktionen, als ob man es manuell eingegeben hätte. Und demnach kann ein Import auch mal Fehlschlagen
Wie funktioniert das?
Wann ergibt das Sinn? Konkretes Beispiel wäre super.
Reminder für mich:
upload. mediafile, ycom_auth_password
Bei upload/mediafile: Auch auf Unterschiede eingehen und erklären, wann was benötigt wird.
Änderung siehe yakamara/yform@cb9fba7
Bräuchte dazu mal ein paar sinnvolle Beispiele, wann das notwendig ist, insb. bei so Sachen wie checkbox, date.
Wo ist der Unterschied zwischen einem Feldtyp E-Mail und einem Textfeld mit Validierungsoption E-Mail? (Wäre das nicht ein Feld, das man aus yform kicken könnte @dergel?)
Kann es sein, dass der daterangpicker die Daten zusammen in einen String speichert?
Ist das sinnvoll für die weitere Bearbeitung?
Formulare, die im Frontend ausgegeben werden, benötigen in aller Regel einen Spamschutz. Hier könnte man in der Doku Beispiele zur Umsetzung machen.
Lösungsansatz honeypot http://www.redaxo.org/de/forum/php-html-css-mysql-f9/submit-button-disabled-spamschutz-t21308.html (Fragestellung: Geht das Prinzip auch ohne extra Klasse?)
Lösungsansatz zeitspanne: ____
Weitere Lösungsansätze?
Für folgende Felder (u.a.)
date, datetime, time, timestamp
Formatierungen, Widgets (select oder inputfeld darstellung) mit attributen (z.b. Datepicker oder inputmask) verknüpfbar
Machen die beide nicht mehr oder weniger das gleiche? Könnte man die nicht zusammenfassen? @dergel
"Ignoriere Offline-Kategorien" -> "Offline-Kategorien ausblenden."
Anwendungsbeispiel?
hier müsste Gregor schreiben wie man es ungefähr nutzt. Es gibt aber auch in den Issues bei yform ein paar Beispiele. Wenn man die Daten über dieses ORM verwendet, ziehen auch automatische die Historyfunktionen.
Wir haben das bei uns schon in der Firma, ich muss mich nur daran erinnern, sie hier hochzuladen und in der Doku zu verlinken.
Das Issue ist nur ein Reminder für mich.
https://github.com/yakamara/redaxo_yform_docs/blob/master/de_de/table_manager_feldtypen.md#be_select_category
Siehe yakamara/yform#173
Gibt's bisher noch nicht in der Doku.
<?php
// Für REDAXO CMS
// Erforderliches Addon: yform
//
//
// Datensatz aus Tabelle mit ID 2
$dataset = rex_yform_manager_dataset::get(2,Tabelle);
// oder:
// Neuen leeren Datensatz erstellen
// $dataset = rex_yform_manager_dataset::create(Tabelle);
// Formular auslesen
$yform = $dataset->getForm();
// Parameter festlegen
$yform->setObjectparams('form_method','get');
// Ziel des Formulars, sonst erhält man nur Index.php ...
$yform->setObjectparams('form_action',rex_getUrl(13));
// Sollen die Daten des Datensatzes ausgelesen werden? (true = ja , false = nein)
$yform->setObjectparams("getdata",true);
echo $dataset->executeForm($yform);
} ?>
Fehler
Die Bezeichnung wird doch ohnehin nicht angezeigt, oder?
Wann benötigt man emptyname überhaupt?
In der Doku gibt es 3 Möglichkeiten, einen Antwort-Text im YForm-Modul bzw. der PHP-Notation zu definieren.
answertext
nicht ausgegebenhtml
(action) und showtext
werden gleichzeitig ausgegeben.Hat das Gründe?
/cc @dergel
mit in die Doku aufnehmen
Feldname der Tabelle, dessen Werte als Select-Box oder im Popup angezeigt werden, bspw.
name
,title AS name
oderCONCAT('id', ' ', 'name') AS name
Dort ist keine SQL-Syntax möglich, sondern es ist eine eigene. Man trennt die Felder einfach mit einem Komma, ohne CONCAT
:
id, name
Konstante Strings setzt man in Anführungszeichen:
id, " ", name
Verwendet man als Anzeigefeld ein anderes Relationsfeld, wird dies aufgelöst, und dessen Anzeigefeld(-Kombi) genommen.
Beispiel: Wir haben eine Newstabelle mit einem Relationsfeld author_id
. Dies hat als Anzeigefeld diese Kombi: firstname, " ", lastname
In einer anderen Tabelle gibt es nun ein Relationsfeld news_id
wo man einen Newsartikel auswählen kann. In der Selectbox sollen die News im folgenden Format erscheinen: "Newstitel (Autor)".
Dazu notieren wir das Anzeigefeld so:
title, " (", author_id, ")"
YForm erkennt, dass author_id
ein Relationsfeld ist, und löst es gemäß dessen Anzeigefeld auf (Vorname und Nachname).
Heraus kommt dann sowas wie "Redaxo 5.2 ist raus (Gregor Harlan)".
Diese Auflösung erfolgt rekursiv, also beliebig tief.
Wert in der Datenbank: TueAMCESTEthCESTAMJul+02:00
objparam|form_ytemplate|dein_template,bootstrap
Todo
wie findet die Prüfung statt? RFC-Standardkonform oder einfach nur nach @-Zeichen?
Funktion erklären.
Howto übernehmen
yakamara/yform#134 (comment)
Falls man sein eigenes Formular mit YForm in PHP schreiben möchte und nicht via YForm-Modul mit Pipe. Siehe http://www.redaxo.org/de/forum/post117833.html#p117833 (XForm).
Hier hätte ich gerne ein paar typische Anwendungsszenarien genannt. Ideen?
Reminder für mich.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.