Changeset 841:e1c6ec0a0736 for plugins/importExport/inc
- Timestamp:
- 07/09/12 16:53:05 (13 years ago)
- Branch:
- default
- Location:
- plugins/importExport/inc/flat
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/importExport/inc/flat/class.flat.backup.php
r840 r841 17 17 private $line_cols = array(); 18 18 private $line_name; 19 private $line_num; 19 20 20 21 private $replacement = array( … … 29 30 if (file_exists($file) && is_readable($file)) { 30 31 $this->fp = fopen($file,'rb'); 32 $this->line_num = 1; 31 33 } else { 32 34 throw new Exception(__('No file to read.')); … … 43 45 public function getLine() 44 46 { 45 if ( feof($this->fp)) {47 if (($line = $this->nextLine()) === false) { 46 48 return false; 47 49 } 48 49 $line = trim(fgets($this->fp));50 50 51 51 if (substr($line,0,1) == '[') … … 64 64 65 65 if (count($this->line_cols) != count($line)) { 66 throw new Exception( 'Invalid row count');66 throw new Exception(sprintf('Invalid row count at line %s',$this->line_num)); 67 67 } 68 68 … … 74 74 } 75 75 76 return new flatBackupItem($this->line_name,$res );76 return new flatBackupItem($this->line_name,$res,$this->line_num); 77 77 } 78 78 else … … 81 81 } 82 82 } 83 84 private function nextLine() 85 { 86 if (feof($this->fp)) { 87 return false; 88 } 89 $this->line_num++; 90 91 $line = fgets($this->fp); 92 $line = trim($line); 93 94 return empty($line) ? $this->nextLine() : $line; 95 } 83 96 } 84 97 … … 86 99 { 87 100 public $__name; 101 public $__line; 88 102 private $__data = array(); 89 103 90 public function __construct($name,$data )104 public function __construct($name,$data,$line) 91 105 { 92 106 $this->__name = $name; 93 107 $this->__data = $data; 108 $this->__line = $line; 94 109 } 95 110 -
plugins/importExport/inc/flat/class.flat.import.php
r840 r841 630 630 $this->stack['post_id']++; 631 631 } else { 632 throw new Exception(__('The backup file does not appear to be well formed.'));632 self::throwIdError($post->__name,$post->__line,'category'); 633 633 } 634 634 } … … 640 640 $this->insertMeta($meta); 641 641 } else { 642 throw new Exception(__('The backup file does not appear to be well formed.'));642 self::throwIdError($meta->__name,$meta->__line,'post'); 643 643 } 644 644 } … … 666 666 667 667 $this->insertPostMedia($post_media); 668 } else { 669 throw new Exception(__('The backup file does not appear to be well formed.')); 668 } elseif (!isset($this->old_ids['media'][(integer) $post_media->media_id])) { 669 self::throwIdError($post_media->__name,$post_media->__line,'media'); 670 }else { 671 self::throwIdError($post_media->__name,$post_media->__line,'post'); 670 672 } 671 673 } … … 678 680 $this->insertPing($ping); 679 681 } else { 680 throw new Exception(__('The backup file does not appear to be well formed.'));682 self::throwIdError($ping->__name,$ping->__line,'post'); 681 683 } 682 684 } … … 693 695 $this->stack['comment_id']++; 694 696 } else { 695 throw new Exception(__('The backup file does not appear to be well formed.')); 696 } 697 self::throwIdError($comment->__name,$comment->__line,'post'); 698 } 699 } 700 701 private static function throwIdError($name,$line,$related) 702 { 703 throw new Exception(sprintf( 704 __('ID of "%3$s" does not match on record "%1$s" at line %2$s of backup file.'), 705 html::escapeHTML($name), 706 html::escapeHTML($line), 707 html::escapeHTML($related) 708 )); 697 709 } 698 710
Note: See TracChangeset
for help on using the changeset viewer.