コード例 #1
0
ファイル: ErrorHandler.php プロジェクト: Sywooch/forums
 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);
     }
 }
コード例 #2
0
 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);
     }
 }