public static function assertNoErrors(XenForo_DataWriter $dw, $checkMethod, $dataType) { switch (strtolower($checkMethod)) { case 'delete': case 'predelete': $checkMethod = 'preDelete'; break; case 'save': case 'presave': default: $checkMethod = 'preSave'; break; } $dw->{$checkMethod}(); if ($errors = $dw->getErrors()) { $errorString = implode("\n\t", $errors); XenForo_Helper_File::log('webdav-error', sprintf("%s:\n\t%s\n\t%s", $dataType, $dw->get('title'), $errorString), false); // Note that in order to have Dreamweaver actually show an error, we have to use 'Forbidden'. throw new Sabre_DAV_Exception_Forbidden($errorString); } }
public function assertNoDwErrors(XenForo_DataWriter $dw, $checkMethod, $dataType) { switch (strtolower($checkMethod)) { case 'delete': case 'predelete': $checkMethod = 'preDelete'; break; case 'save': case 'presave': default: $checkMethod = 'preSave'; break; } $dw->{$checkMethod}(); if ($errors = $dw->getErrors()) { $filePath = $this->getDirectory($dw->getMergedData()) . self::$s . $this->getFileName($dw->getMergedData()); if (count($errors) == 1) { $error = htmlspecialchars_decode($errors[key($errors)]); // Yes Nathan, I could use regex but fuu if (strpos($error, 'Line ') === 0) { $pos = strpos($error, ':'); $line = substr($error, 5, $pos - 5); $error = trim(substr($error, $pos + 1)); } $errorString = 'E: ' . $dataType . ' Error: ' . $error . " in " . $filePath; if (isset($line)) { $errorString .= ", line {$line} \n\n"; } else { $errorString .= "\n\n"; } } else { foreach ($errors as &$err) { $err = htmlspecialchars_decode($err); } $errorString = 'E: ' . $dataType . " Error: \nin " . $filePath . "\n"; $errorString .= implode("\n", $errors) . "\n\n"; } XenForo_Helper_File::log('devtools-error', str_replace("\n", ' ', $errorString)); $this->printDebugInfo($errorString); die; // throwing wasn't working with console so just doing this throw new XenForo_Exception($errorString); } }