yakamara / yform Goto Github PK
View Code? Open in Web Editor NEWYForm für REDAXO 5 – Formulare im Frontend und Backend mit Verwaltung von Datenbank-Tabellen.
License: MIT License
YForm für REDAXO 5 – Formulare im Frontend und Backend mit Verwaltung von Datenbank-Tabellen.
License: MIT License
Hey,
wenn ich E-Mail Template erstelle wäre eine "Übernehmen" Funktion klasse.
Da ändere ich ja doch am Anfang recht viel und muss jetzt immer "speichern", hochscrollen(!) und editieren :-))
LG
Oliver
Ho!
Wenn ich eine Action definiere in YForm und die ausführe, hat der Parameter viel zu viel Information doppelt und dreifach.
action|callback|MeineKlasse::methode
Das ist ein RAM-Killer und relativ umständlich zu nutzen. Der Output von nur einem Objekt ist mehrere tausend Zeilen lang wenn man ein paar Input-Felder definiert hat.
Wollte gerade via Installer von beta2 auf beta3 updaten:
InvalidArgumentException thrown in /me/full/path/redaxo/src/core/lib/util/finder.php on line 50
Folder "/me/full/path/redaxo/src/addons/yform/data" not found!
#0 /me/full/path/redaxo/src/core/lib/util/dir.php(71): rex_finder::factory('/is/htdocs/wp11...')
#1 /me/full/path/redaxo/src/addons/.new.yform/update.php(3): rex_dir::copy('/is/htdocs/wp11...', '/is/htdocs/wp11...')
#2 /me/full/path/redaxo/src/core/lib/packages/package.php(226): include('/is/htdocs/wp11...')
#3 /me/full/path/redaxo/src/addons/install/lib/api_package_update.php(57): rex_package->includeFile('../.new.yform/u...')
#4 /me/full/path/redaxo/src/addons/install/lib/api_package_download.php(40): rex_api_install_package_update->doAction()
#5 /me/full/path/redaxo/src/core/lib/api_function.php(130): rex_api_install_package_download->execute()
#6 /me/full/path/redaxo/src/core/backend.php(131): rex_api_function::handleCall()
#7 /me/full/path/redaxo/src/core/boot.php(105): require('/is/htdocs/wp11...')
#8 /me/full/path/redaxo/index.php(9): require('/is/htdocs/wp11...')
#9 {main}
REDAXO 5.0.1
PHP 5.6.17
Es wäre super, wenn es eine Möglichkeit gäbe, die Attribute (z.B. required, disabled, data usw.) und Klassen mit letztem Parameter für alle Inputfelder (auch Checkboxen und Radios) zu vergeben. Zur Zeit geht das nur mit "required" und "placeholder".
Wenn eine Class ausgewählt wird, wird diese dem Wrapper, z.B. form-group zugeordnet. Wenn man z.B. Redactor einsetzen will ist das nicht möglich. redactorEditor-full wird nicht dem Textfeld zugeordnet sondern dem Wrapper.
mit REX_YDATA[id="name" prefix="Name:"] Felder versehen, um die diversen Varianten abdecken zu können. Siehe REX_VARS
Weil mal über eine Drag & Drop - Lösung diskutiert wurde.
https://github.com/aiop/Bootstrap3-form-builder
Im Table-Manager hat in den Feldern date oder datetime die Checkbox "Aktuelles Datum" keine Auswirkung bei der Eingabe eines neuen Eintrags.
PlugIn setup konnte aus folgendem Grund nicht installiert werden:
Die package.yml fehlt!
Aktuelle Version von github
Ho!
Wenn ich im Modul auf eine der Value-Optionen klicke, lädt Redaxo via PJAX die Seite neu. Ich weiß nicht was hier geplant ist, aber cool wäre es wenn die Optionen dann direkt in das Textarea eingefügt werden. Vielleicht ist es das ja schon und wird nur durch PJAX unterbrochen.
lg Sascha
evtl. einmal die URL prüfen??
Javascript und CSS überprüfen
da es wohl ein ladezeitenproblem gibt bei der Google MAp und den lokalen Aufrufen.
Bei Verwendung des Captcha-Felds kommt folgender Fehler:
"ErrorException" thrown in .../redaxo/src/addons/yform/lib/yform/value/captcha.php on line 17
Fatal error: require_once(): Failed opening required '' (include_path='.:/usr/local/lib/php')
Wird es das Plugin wieder geben?
In der Navigation werden die Tabellen alphabetisch (a-z) sortiert angezeigt
Hier wird die Fehlermeldung von compare zwei mal ausgegeben:
password|password|Ihr Passwort:|
password|password_2|Password||no_db|
validate|empty|password|Bitte geben Sie ein Passwort ein.
validate|empty|password_2|Bitte geben Sie das Passwort nochmal ein.
validate|compare|password|password_2|!=|Bitte geben Sie zwei mal das gleiche Passwort ein.|
1/
via Param bestimmen wo die Fehlermeldung erscheinen. Hintergrund: Manchmal schreibt man vor dem Formular noch html, damit es bei der Dankesmeldung nicht mit ausgegeben wird. Die Fehler sollten aber eigentlich zw. html und dem eigentlichen Formular dann erscheinen.
2/
Reihenfolge der einzelnen Meldungen. Aktuell erscheinen die einzelnen Meldungen alphabetisch nach der validate Klasse und dann wie die Values notiert wurden.
Bsp.:
text|surname|Nachname|
validate|empty|surname|empty Nachname
validate|preg_match|surname|/regex/|regex Nachname
text|firstname|Vorname|
validate|empty|firstname|empty Vorname
validate|preg_match|firstname|/regex/|regex Vorname
Ausgabe:
empty Nachname
empty Vorname
regex Nachname
regex Vorname
Besser wäre die Ausgabe wie die Validierungen selbst notiert wurden
empty Nachname
regex Nachname
empty Vorname
regex Vorname
habe einen bug bei relationstabellen entdeckt. ich lege zwei normale tabellen (A,B) an und zusätzlich eine relationstabelle (C). in der relationstabelle (C) lege ich zwei be_manager_relation felder an, gebe als namen den tabellennamen inkl prefix der zu verknüpfenden normalen tabellen (A,B) an. ich lege in den normalen tabellen (A,B) jeweils ein be_manager_relation feld an, dort gebe ich als relationstabelle die dritte tabelle (C) an. beim hinzufügen von einträgen in einer der normalen tabellen (A,B) wird eine fehlermeldung ausgegeben (anbei), die relationstabelle wird nicht beschrieben. in rex4 mit XForm funktioniert es prima, in rex5 mit YForm gibt es das beschriebene problem. in der fehlermeldung steht noch etwas von "table rex_relation does not exist", sie existiert aber definitiv :)
Im "Backend Modul-Output" werden die Formulare gerendert. Hier sollte vielleicht nur eine Übersicht der gewählten Einstellungen dargestellt werden. (Oder irgendein Text "Ausgebe im Frontend").
LG
Oliver
Bekomme folgende Meldung, wenn ich das Test-Tableset verwende.
Es wurde keine Datei verwendet
Die Error-Mailadresse wird im Modul-Output noch als $REX['ERROR_EMAIL'] angegeben (an zwei Stellen), muss vermutlich ersetzt werden mit rex::getProperty('error_email').
match nicht, obwohl richtige Adresse.
Gerade bei der Einpflege ähnlicher Datensätze wäre das sehr nützlich.
z.b. bei der date überprüfung.
Falsch?
if ($this->getElement(5) == '2') {
$text = htmlspecialchars_decode($text);
$text = str_replace('<br />', '', $text);
$text = str_replace(''', '\'', $text);
$text = rex_a79_textile($text);
}
so dass man datensaetze zurücksetzen kann oder änderungen zurückverfolgen kann, optional aktivierbar.
Die Tabelle wurde nicht gefunden
Wenn keine Dateitypen bei einer Medialist angegeben werden, ist der das Argument types leer. (&args[types]=&)
Daraus folgt, dass die Dateiliste im Mediapool immer leer ist, da der Parameter ja gesetzt ist.
Für mich habe ich das nun erstmal sehr notdürftig (und auf die Schnelle) in der Datei /redaxo/src/addons/yform/plugins/manager/ytemplates/bootstrap/value.be_medialist.tpl.php angepasst:
`<?php
$buttonId = $counter;
$params = [];
$name = $params['name'] = $this->getFieldName();
$value = $params['value'] = htmlspecialchars($this->getValue());
$categoryId = $params['category'] = intval($this->getElement(4));
$preview = $params['preview'] = $this->getElement(3);
$types = $params['types'] = trim($this->getElement(5));
if (!$params['types']) {
unset($params['types']);
}
$widget = rex_var_medialist::getWidget($buttonId, $name, $value, $params);
`
Das müsste ich noch genauer untersuchen, ob das reicht. Dann würde ich u.U. noch einen Pull-Request zusammenstellen.
Ich habe gerade für Thomas Skerbis die Anbindung des Redactors im Tabellenmanager debugged und festgestellt, dass wenn man beim Bearbeiten eines Datensatzes auf "übernehmen" klickt die Karte nicht mehr funktioniert:
Uncaught ReferenceError: google is not defined
Dies liegt daran, dass die Google Maps (http://maps.google.com/maps/api/js?sensor=true) in dem Case nicht eingebunden wird. Übrigens wird der Parameter "sensor" nicht mehr benötigt.
Ho!
Ich würde die Values von YForm anderst sortieren. Entweder generell anderst, so dass Eingabefelder, Dropdowns, Checkboxen und andere reguläre Formular-Elemente als erstes in der Liste stehen, oder so dass man die Optionen in den Einstellungen einfach via Drag&Drop sortieren kann.
Als Nice2Have könnte man die Sortierung dann als JSON exportieren / importieren, damit man das nicht in den anderen Installationen jedes Mal neu einstellen muss.
Aktuell ist es einfach etwas lästig bis man "Text" findet.
Die grünen Pfeile symbolisieren die Drag&Drop Geschichte :)
Die Suchfunktion bei Table Manager-Tabellen zeigt keine als durchsuchbar gekennzeichneten Felder.
Nur der Suchen-Button selbst ist sichtbar.
Mir ist aufgefallen, dass nach einem Update auch selbst hinzugefügte VALUE und Ytemplates gelöscht werden. Ich würde mich über eine Lösung zur Ablage von eigenen Templates und Values freuen, die nicht bei einem Update überschrieben oder gelöscht werden.
Yform legt Tabellen in MyISAM an. Sollte aber hier wohl in InnoDB sein.
Der Aufruf von "Tabelle importieren" ist nicht möglich. Es kommt kein Dialog dazu.
Exportieren ist möglich.
wie kann ich das E-Mail Feld mit dem Wert aus dem Formular füllen?
text|email|E-Mail|#placeholder:E-Mail
Funktioniert nicht:
action|###email###|[email protected]|Mailsubject|Mailbody###name###
action|+++email+++|[email protected]|Mailsubject|Mailbody###name###
Funktioniert:
action|[email protected]|[email protected]|Mailsubject|Mailbody###name###
Man muss immer diese verwenden <br>
Die Eingabe wäre sicher benutzerfreundlicher, wenn der User via Drag&Drop die Eingabe-Widgets in ein Area ziehen und Sortieren kann. Mit einem Klick auf das Widget würde sich ein Layer/Overlay oder Accordion öffnen, in dem Optionen definiert werden wie Name, Titel, viele weitere Standard-Parameter und dann pro Widget eben für das Widget wichtige Parameter.
Das ganze würde dann als JSON gespeichert statt mit Pipe getrennt.
Hier wäre ein Beispiel - viel zu übertrieben aber so in etwa eben - http://formoid.com/
Und hier habe ich vor einiger Zeit mal einen Formulargenerator gebaut der mit solchen Daten arbeiten kann: https://github.com/Sioweb/Formulargenerator - als Beispiel wie der PHP-Code aussehen könnte. Der Generator ist enorm flexibel.
Sofern ich disabled nutze wie z.B.:
text|OfferingTyp|Typ|Hallo||#disabled:disabled
erhalte ich nach dem senden des Formulars:
sprich das value ist leer..
Wenn ich das disabled weg lasse funktioniert alles wie gewünscht.
Außer RexSearch benutzt ja kein nennenswertes Addon aktuell das Dashboard so richtig. Aber wäre das Dashboard nicht ein klasse Shortcut für yform-Tabellen?
Ich stelle mir das so vor: Jede Tabelle bekommt in yform zusätzlich noch eine Checkbox "im Dashboard anzeigen", jedes Feld ein "im Dashboard anzeigen". So könnte man die Dashboard-Ansicht aufwerten, in dem man z.B. die letzten registrierten User, die letzten Mitteilungen, oder was auch immer Kunden oder Nutzer der Website gerade in eine Tabelle eingetragen haben.
(Dies ist auch ein Vorschlag im Hinblick auf das Thema beim Redaxo-Tag, sich mehr gute Funktionen von anderen CMS abzuschauen. Wordpress z. B. ist ja da ziemlich umfangreich in seinem Dashboard)
Die Pflege von Tabellen einer Datenbank einer anderen Applikation könnte es ermöglichen externe Lösungen von Redaxo aus zu pflegen und zu betreuen.
Komischerweise wird ein "hidden" Field ohne "REQUEST" nicht im Quellcode ausgegeben:
Funktioniert nicht: hidden|hallo|welt||
Funktioniert: hidden|hallo|welt|REQUEST|
LG
O.
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.