Im Vorfeld: Dieser Bugreport müsste eigentlich ins "Forum > Fehler > Woltlab Blog" Forum, aber da habe ich keine Rechte zum Themen erstellen, da ich nicht direkt Kunde bin.
Wenn man einen Blog Artikel bearbeitet dann das Erstellungsdatum (Label "Datum") entfernt (durch klicken des 'X' rechts neben dem DatePicker) kommt nach dem Abschicken folgende Fehlermeldung:
System Information
PHP Version:
7.2.1
WoltLab Suite Core:
3.1.2 pl 1
Peak Memory Usage:
7.08/128 MiB
Request URI:
/woltlab/blog/index.php?entry-edit/1/
Referrer:
http://localhost/woltlab/blog/index.php?entry-edit/1/
User Agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
Error
Error Type:
Error
Error Message:
Call to a member function getTimestamp() on boolean
File:
P:\xampp\htdocs\woltlab\blog\lib\form\EntryEditForm.class.php (117)
Stack Trace:
#0 P:\xampp\htdocs\woltlab\lib\form\AbstractForm.class.php (60):
blog\form\EntryEditForm->validate()
#1 P:\xampp\htdocs\woltlab\lib\form\AbstractForm.class.php (113):
wcf\form\AbstractForm->submit()
#2 P:\xampp\htdocs\woltlab\lib\form\AbstractCaptchaForm.class.php (67):
wcf\form\AbstractForm->readData()
#3 P:\xampp\htdocs\woltlab\lib\form\MessageForm.class.php (281):
wcf\form\AbstractCaptchaForm->readData()
#4 P:\xampp\htdocs\woltlab\blog\lib\form\EntryAddForm.class.php (287):
wcf\form\MessageForm->readData()
#5 P:\xampp\htdocs\woltlab\blog\lib\form\EntryEditForm.class.php (201):
blog\form\EntryAddForm->readData()
#6 P:\xampp\htdocs\woltlab\lib\page\AbstractPage.class.php (291):
blog\form\EntryEditForm->readData()
#7 P:\xampp\htdocs\woltlab\lib\page\AbstractPage.class.php (114):
wcf\page\AbstractPage->show()
#8 P:\xampp\htdocs\woltlab\lib\system\request\Request.class.php (83):
wcf\page\AbstractPage->__run()
#9 P:\xampp\htdocs\woltlab\lib\system\request\RequestHandler.class.php (96):
wcf\system\request\Request->execute()
#10 P:\xampp\htdocs\woltlab\blog\index.php (9):
wcf\system\request\RequestHandler->handle('blog')
Display More
Und zwar kommt das durch den entryDateDatePicker der $_POST['entryDate'] leert.
In der Datei blog\lib\form\EntryEditForm.class.php Zeile 104 ist $_POST['entryDate'] zwar gesetzt aber leer. Das müsste um && !empty($_POST['entryDate']) erweitert werden. Dann wird auch in Zeile 118 throw new UserInputException('entryDate', 'invalid'); ausgeführt.
Grund dafür ist das \DateTime::createFromFormat('Y-m-d\TH:i:sP', '') (Zeile 106: $this->entryDateObj = \DateTime::createFromFormat('Y-m-d\TH:i:sP', $this->entryDate); ) FALSE zurückgibt.
Des weiteren sollte man das 'X' beim entryDateDatePicker entfernt werden, damit man gar nicht erst ein leeres Datum abschicken kann
Ich hoffe, dass ich das ausführlich genug erklärt habe, denn ich befürchte, dass ich nach dem Verschieben ins Fehlerforum vom Blog nicht mehr Antworten kann