Genauso klappt es auch gut. Danke dir.
Ankündigung
Collapse
No announcement yet.
efg für Contao 3.5 (aktuelle Infos dazu)
Collapse
This is a sticky topic.
X
X
-
Sers hat jemand ebenfalls das Folgende Problem mit der aktuellsten Version?Zitat von jenda Beitrag anzeigenTomas hat mir geschrieben, dass er leider demnächst nicht so schnell zu der definitiven Version kommt. Aber dafür hat er das Wichtigste bereits behoben und für 3.5.x kompatibel gemacht. Die Version muss man sich unter https://bitbucket.org/thk/efg/get/develop.zip
Umgebung: Contao 3.5.12
EFG: Aktueller Master/Branch
Problem:
Ich habe ein Selectdatenbankfeld aus dem ich mir meine Daten hole. Die Daten werden auf der nächsten Seite ganz normal ausgegeben. (Auf der nächsten Seite wird der Inhalt über form::feldname) angezeigt. Das funktionierte bisher ohne Probleme.
Die Daten in der Datenbank sind wie folgt Aufgebaut:
Bezeichung - Adresse
Die Adresse ist wiederum bisher wie folgt hinterlegt gewesen in der Datenbank:
Name
Straße
Ort
Jeweils eine neue Zeile innherhalb des Datenbankfeldes "Adresse"
Mit der aktuellsten Version erscheint immer der Fehler: Ungültige Eingabe
Ich habe den Fehler soweit eingrenzen können, dass ich sagen kann, dass es an der Verteilung des Inhalts auf jeweils einer neuen Zeile (angelegt mittels Enter-Taste im PHP-Myadmin) liegt. Nehme ich den manuellen Umbruch raus, funktioniert alles. In der bisher letzten Version der Erweiterungsverwaltung gab es dieses Problem nicht. Hat da jemand einen Ansatz?
Comment
-
Ich konnte den Fehler auf die Datei:
system/modules/efg/forms/EfgFormLookupSelectMenu.php eingrenzen
Dort gibt es folgenden neuen Abschnitt:
PHP-Code:public function validate()
{
$mandatory = $this->mandatory;
$options = $this->getPost($this->strName);
// Check if there is at least one value
if ($mandatory && is_array($options))
{
foreach ($options as $option)
{
if (strlen($option))
{
$this->mandatory = false;
break;
}
}
}
$varInput = $this->validator($options);
// Check for a valid option (see #4383)
if (!empty($varInput) && !$this->isValidOption($varInput))
{
$this->addError(sprintf($GLOBALS['TL_LANG']['ERR']['invalid'], (is_array($varInput) ? implode(', ', $varInput) : $varInput)));
}
// Add class "error"
if ($this->hasErrors())
{
$this->class = 'error';
}
else
{
$this->varValue = $varInput;
}
// Reset the property
if ($mandatory)
{
$this->mandatory = true;
}
}
Kommentiere ich die Zeile
Aus funktioniert das Formular ohne Probleme.PHP-Code:$this->addError(sprintf($GLOBALS['TL_LANG']['ERR']['invalid'], (is_array($varInput) ? implode(', ', $varInput) : $varInput)));
Aber das ist ja nicht Zielführend. Jemand eine Idee?Last edited by Acta; 12.05.2016, 15:24.
Comment
-
Thomas (thk) hat keine Zeit, das hat er oder andere für ihn schon mehrmals hier geschrieben.
Es gibt bereits andere Leute, die sein Repo geklont haben oder beobachten. Ich auch schon mal, habe es dann aber schnell wieder liegen gelassen, so wie alle
Aber weiter entwickeln oder Fehler beheben kann nur er, weil es wohl niemanden gibt, der so viel Zeit investieren will oder kann, um diese doch etwas komplexe Erweiterung zu studieren.
Comment
-
Man könnte das ein oder andere Feature ja zB. für contao-leads in Auftrag geben. zB Auflistung im Frontend + Editierung wäre sicher eine praktische Erweiterung von contao-leads (und ist auch schon als feature request vorhanden, zumindest für die Auflistung: https://github.com/terminal42/contao-leads/issues/13).
Comment
-
Also ich habe die Version 2.2.2 testweise auf Contao 3.5.12 aufgesetzt, und eigentlich läuft es grundsätzlich. Auch mit Auflistung im FE. Mit welchen Versionen arbeitest du denn?
lg
Clavis
PS: "grundsätzlich" meint die Extension läuft, ohne das System zu beeinträchtigen, aber vor allem bei der Datenspeicherung bzw. FE-Auflistung ist es etwas buggy. Einen Produktiveinsatz würde ich derzeit wohl eher nicht in Betracht ziehen.
Comment
-
Wie auch schon in bitbucket erwähnt, der Vollständigkeit halber auch hier: Eigentlich schon. Das ist die Fehlerausgabe der Validierung, die es vorher nicht gab. Die Klasse erweitert die Klasse Widget von Contao und ruft vor dieser Fehlerausgabe zwei Funktionen aus dieser Klasse aus und kommt nur zum Tragen, wenn dort eine ungültige Eingabe festgestellt wird. Dh. bislang wurde nur nicht geprüft, ob deine Eingabe valide ist, jetzt schon. Es handelt sich so gesehen, wahrscheinlich nicht um einen Bug sondern um ein neues Feature. Wenn es für dich mit dem Auskommentieren als Workaround funktioniert, belasse es so und bei einem Update (sollte ja nicht zu oft vorkommen) musst du dieses dann erneut einfügen.Zitat von Acta Beitrag anzeigenIch konnte den Fehler auf die Datei:
system/modules/efg/forms/EfgFormLookupSelectMenu.php eingrenzen
Dort gibt es folgenden neuen Abschnitt:
PHP-Code:public function validate()
{
$mandatory = $this->mandatory;
$options = $this->getPost($this->strName);
// Check if there is at least one value
if ($mandatory && is_array($options))
{
foreach ($options as $option)
{
if (strlen($option))
{
$this->mandatory = false;
break;
}
}
}
$varInput = $this->validator($options);
// Check for a valid option (see #4383)
if (!empty($varInput) && !$this->isValidOption($varInput))
{
$this->addError(sprintf($GLOBALS['TL_LANG']['ERR']['invalid'], (is_array($varInput) ? implode(', ', $varInput) : $varInput)));
}
// Add class "error"
if ($this->hasErrors())
{
$this->class = 'error';
}
else
{
$this->varValue = $varInput;
}
// Reset the property
if ($mandatory)
{
$this->mandatory = true;
}
}
Kommentiere ich die Zeile
Aus funktioniert das Formular ohne Probleme.PHP-Code:$this->addError(sprintf($GLOBALS['TL_LANG']['ERR']['invalid'], (is_array($varInput) ? implode(', ', $varInput) : $varInput)));
Aber das ist ja nicht Zielführend. Jemand eine Idee?
Comment
-
Diese Funktionen prüfen in erster Linie, ob das zu erwartende/eingestellte geprüft wird (bei einem Pflichtfeld z.B. ob ein Wert eingetragen ist, gibt es einen nummerischen Wert, wenn einer verlangt wird, etc.). In diesem Fall gibt das Contao und nicht EFG vor, was valide ist. Du kannst daher deine Einstellungen für das Formularfeld prüfen, evt. kannst du es auch so lösen. Es geht ja hierbei um das ConditionalSelectMenue, oder? Und da werden anscheinend irgendwo diese mehrzeiligen Werte nicht als valide interpretiert (ist auch ungewöhnlich). Aber ich weiß z.B. zu wenig über Dein System um Dir mehr sagen zu können. Interessant wären z.B. die Einstellungen deines Formularfeldes und die Tabellenstruktur in der DB und Einstellungen der Spalte.Zitat von Acta Beitrag anzeigenServus ... aber warum sind denn mehrzeilige Datenbankeinträge nicht "valide"?
Ich mein klar es ist eine einfache Lösung meines Problems, aber so wirklich gefallen tut sie mir nicht.
LG
Comment

Comment