Changeset 840:f7157873644c
- Timestamp:
- 07/09/12 14:44:20 (13 years ago)
- Branch:
- default
- Location:
- plugins/importExport
- Files:
-
- 4 added
- 9 edited
- 4 moved
Legend:
- Unmodified
- Added
- Removed
-
plugins/importExport/_admin.php
r324 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 12 12 if (!defined('DC_CONTEXT_ADMIN')) { return; } 13 13 14 $_menu['Plugins']->addItem(__('Import/Export'),'plugin.php?p=importExport','index.php?pf=importExport/icon.png', 15 preg_match('/plugin.php\?p=importExport(&.*)?$/',$_SERVER['REQUEST_URI']), 16 $core->auth->check('admin',$core->blog->id)); 17 18 # Files needed by flat files import / export 19 $__autoload['backupFile'] = dirname(__FILE__).'/inc/flat/class.backupFile.php'; 20 $__autoload['dcImport'] = dirname(__FILE__).'/inc/flat/class.dc.import.php'; 21 $__autoload['dbExport'] = dirname(__FILE__).'/inc/flat/class.db.export.php'; 14 $_menu['Plugins']->addItem( 15 __('Import/Export'), 16 'plugin.php?p=importExport', 17 'index.php?pf=importExport/icon.png', 18 preg_match('/plugin.php\?p=importExport(&.*)?$/',$_SERVER['REQUEST_URI']), 19 $core->auth->check('admin',$core->blog->id) 20 ); 22 21 23 22 $core->addBehavior('adminDashboardFavs','importExportDashboardFavs'); … … 25 24 function importExportDashboardFavs($core,$favs) 26 25 { 27 $favs['importExport'] = new ArrayObject(array('importExport','Import/Export','plugin.php?p=importExport', 28 'index.php?pf=importExport/icon.png','index.php?pf=importExport/icon-big.png', 29 'admin',null,null)); 26 $favs['importExport'] = new ArrayObject(array( 27 'importExport', 28 __('Import/Export'), 29 'plugin.php?p=importExport', 30 'index.php?pf=importExport/icon.png', 31 'index.php?pf=importExport/icon-big.png', 32 'admin',null,null 33 )); 30 34 } 31 35 ?> -
plugins/importExport/_define.php
r464 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 15 15 /* Name */ "Import / Export", 16 16 /* Description*/ "Import and Export your blog", 17 /* Author */ "Olivier Meunier", 18 /* Version */ '2.4', 19 array( 20 'permissions' => 'admin', 21 'priority' => 10 22 ) 17 /* Author */ "Olivier Meunier & Contributors", 18 /* Version */ '3.0', 19 /* Perm */ 'admin' 23 20 ); 24 21 ?> -
plugins/importExport/inc/class.dc.export.flat.php
r557 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 16 16 public function setInfo() 17 17 { 18 $this->type = 'e ';18 $this->type = 'export'; 19 19 $this->name = __('Flat file export'); 20 20 $this->description = __('Exports a blog or a full Dotclear installation to flat file.'); … … 31 31 try 32 32 { 33 $exp = new dbExport($this->core->con,$fullname,$this->core->prefix);33 $exp = new flatExport($this->core->con,$fullname,$this->core->prefix); 34 34 fwrite($exp->fp,'///DOTCLEAR|'.DC_VERSION."|single\n"); 35 35 … … 84 84 $_SESSION['export_file'] = $fullname; 85 85 $_SESSION['export_filename'] = $_POST['file_name']; 86 $_SESSION['export_filezip'] = !empty($_POST['file_zip']); 86 87 http::redirect($this->getURL().'&do=ok'); 87 88 } … … 99 100 try 100 101 { 101 $exp = new dbExport($this->core->con,$fullname,$this->core->prefix);102 $exp = new flatExport($this->core->con,$fullname,$this->core->prefix); 102 103 fwrite($exp->fp,'///DOTCLEAR|'.DC_VERSION."|full\n"); 103 104 $exp->exportTable('blog'); … … 123 124 $_SESSION['export_file'] = $fullname; 124 125 $_SESSION['export_filename'] = $_POST['file_name']; 126 $_SESSION['export_filezip'] = !empty($_POST['file_zip']); 125 127 http::redirect($this->getURL().'&do=ok'); 126 128 } … … 140 142 141 143 ob_end_clean(); 142 header('Content-Disposition: attachment;filename='.$_SESSION['export_filename']); 143 header('Content-Type: text/plain; charset=UTF-8'); 144 readfile($_SESSION['export_file']); 145 unlink($_SESSION['export_file']); 146 unset($_SESSION['export_file']); 147 unset($_SESSION['export_filename']); 148 exit; 144 145 if (substr($_SESSION['export_filename'],-4) == '.zip') { 146 $_SESSION['export_filename'] = substr($_SESSION['export_filename'],0,-4);//.'.txt'; 147 } 148 149 # Flat export 150 if (empty($_SESSION['export_filezip'])) { 151 152 header('Content-Disposition: attachment;filename='.$_SESSION['export_filename']); 153 header('Content-Type: text/plain; charset=UTF-8'); 154 readfile($_SESSION['export_file']); 155 156 unlink($_SESSION['export_file']); 157 unset($_SESSION['export_file'],$_SESSION['export_filename'],$_SESSION['export_filezip']); 158 exit; 159 } 160 # Zip export 161 else { 162 try 163 { 164 $file_zipname = $_SESSION['export_filename'].'.zip'; 165 166 $fp = fopen('php://output','wb'); 167 $zip = new fileZip($fp); 168 $zip->addFile($_SESSION['export_file'],$_SESSION['export_filename']); 169 170 header('Content-Disposition: attachment;filename='.$file_zipname); 171 header('Content-Type: application/x-zip'); 172 173 $zip->write(); 174 175 unlink($_SESSION['export_file']); 176 unset($zip,$_SESSION['export_file'],$_SESSION['export_filename'],$file_zipname); 177 exit; 178 } 179 catch (Exception $e) 180 { 181 unset($zip,$_SESSION['export_file'],$_SESSION['export_filename'],$file_zipname); 182 @unlink($_SESSION['export_file']); 183 184 throw new Exception(__('Failed to compress export file.')); 185 } 186 } 149 187 } 150 188 } … … 154 192 echo 155 193 '<form action="'.$this->getURL(true).'" method="post">'. 156 '<fieldset><legend>'.__('Export a blog').'</legend>'. 157 '<p>'.sprintf(__('This will create an export of your current blog: %s'), 158 '<strong>'.html::escapeHTML($this->core->blog->name).'</strong>').'</p>'. 159 '<p><label for="file_name" class="classic">'.__('File name:').'</label>'. 160 form::field(array('file_name','file_name'),25,255,date('Y-m-d-').html::escapeHTML($this->core->blog->id.'-backup.txt')). 161 '<input type="submit" value="'.__('Export').'" />'. 194 '<fieldset><legend>'.__('Single blog').'</legend>'. 195 '<p>'.sprintf(__('This will create an export of your current blog: %s'),html::escapeHTML($this->core->blog->name)).'</p>'. 196 197 '<p><label for="file_name">'.__('File name:').'</label>'. 198 form::field(array('file_name','file_name'),50,255,date('Y-m-d-').html::escapeHTML($this->core->blog->id.'-backup.txt')). 199 '</p>'. 200 201 '<p><label for="file_zip" class="classic">'. 202 form::checkbox(array('file_zip','file_zip'),1).' '. 203 __('Compress file').'</label>'. 204 '</p>'. 205 206 '<p class="zip-dl"><a href="media.php?d=&zipdl=1">'. 207 __('You may also want to download your media directory as a zip file').'</a></p>'. 208 209 '<p><input type="submit" value="'.__('Export').'" />'. 162 210 form::hidden(array('do'),'export_blog'). 163 211 $this->core->formNonce().'</p>'. 164 '<p class="zip-dl"><a href="media.php?d=&zipdl=1">'.165 __('You may also want to download your media directory as a zip file').'</a></p>'.166 '</f ieldset></form>';212 213 '</fieldset>'. 214 '</form>'; 167 215 168 216 if ($this->core->auth->isSuperAdmin()) … … 170 218 echo 171 219 '<form action="'.$this->getURL(true).'" method="post">'. 172 '<fieldset><legend>'.__('Export all content').'</legend>'. 173 '<p><label for="file_name2" class="classic">'.__('File name:').'</label>'. 174 form::field(array('file_name','file_name2'),25,255,date('Y-m-d-').'dotclear-backup.txt'). 175 '<input type="submit" value="'.__('Export all content').'" />'. 220 '<fieldset><legend>'.__('Multiple blogs').'</legend>'. 221 '<p>'.__('This will create an export of all the content of your database.').'</p>'. 222 223 '<p><label for="file_name2">'.__('File name:').'</label>'. 224 form::field(array('file_name','file_name2'),50,255,date('Y-m-d-').'dotclear-backup.txt'). 225 '</p>'. 226 227 '<p><label for="file_zip2" class="classic">'. 228 form::checkbox(array('file_zip','file_zip2'),1).' '. 229 __('Compress file').'</label>'. 230 '</p>'. 231 232 '<p><input type="submit" value="'.__('Export').'" />'. 176 233 form::hidden(array('do'),'export_all'). 177 234 $this->core->formNonce().'</p>'. 178 '</fieldset></form>'; 235 236 '</fieldset>'. 237 '</form>'; 179 238 } 180 239 } -
plugins/importExport/inc/class.dc.ieModule.php
r270 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 12 12 if (!defined('DC_RC_PATH')) { return; } 13 13 14 class dcIeModule14 abstract class dcIeModule 15 15 { 16 16 public $type; … … 28 28 $this->setInfo(); 29 29 30 $this->id = get_class($this); 31 if (!$this->type) { 32 throw new Exception('No type for module'.$this->id); 30 if (!in_array($this->type,array('import','export'))) { 31 throw new Exception(sprintf('Unknow type for module %s',get_class($this))); 33 32 } 34 35 $this->url = 'plugin.php?p=importExport&t='.$this->type.'&f='.$this->id;36 33 37 34 if (!$this->name) { 38 35 $this->name = get_class($this); 39 36 } 37 38 $this->id = get_class($this); 39 $this->url = sprintf('plugin.php?p=importExport&type=%s&module=%s',$this->type,$this->id); 40 40 } 41 41 … … 44 44 } 45 45 46 protected function setInfo() 47 { 48 } 46 abstract protected function setInfo(); 49 47 50 48 final public function getURL($escape=false) 51 49 { 52 if ($escape) { 53 return html::escapeHTML($this->url); 54 } 55 return $this->url; 50 return $escape ? html::escapeHTML($this->url) : $this->url; 56 51 } 57 52 58 public function process($do) 59 { 60 } 53 abstract public function process($do); 61 54 62 public function gui() 63 { 64 } 55 abstract public function gui(); 65 56 66 57 protected function progressBar($percent) -
plugins/importExport/inc/class.dc.import.dc1.php
r270 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 40 40 protected function setInfo() 41 41 { 42 $this->type = 'i ';42 $this->type = 'import'; 43 43 $this->name = __('Dotclear 1.2 import'); 44 44 $this->description = __('Import a Dotclear 1.2 installation into your current blog.'); -
plugins/importExport/inc/class.dc.import.feed.php
r557 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 19 19 public function setInfo() 20 20 { 21 $this->type = 'i ';21 $this->type = 'import'; 22 22 $this->name = __('Feed import'); 23 23 $this->description = __('Imports a feed as new entries.'); … … 81 81 82 82 echo 83 '<h3>'.__('Import from a feed').'</h3>'.84 '<p>'.sprintf(__('This will import a feed (RSS or Atom) a as new content in the current blog: %s.'),85 '<strong>'.html::escapeHTML($this->core->blog->name).'</strong>').'</p>'.86 83 '<form action="'.$this->getURL(true).'" method="post">'. 84 '<fieldset><legend>'.__('Single blog').'</legend>'. 85 '<p>'.sprintf(__('This will import a feed (RSS or Atom) a as new content in the current blog: %s.'),html::escapeHTML($this->core->blog->name)).'</p>'. 87 86 88 '<div class="fieldset">'. 87 '<p><label for="feed_url">'.__('Feed URL:').'</label>'. 88 form::field('feed_url',50,300,html::escapeHTML($this->feed_url)).'</p>'. 89 90 '<p>'. 89 91 $this->core->formNonce(). 90 92 form::hidden(array('do'),1). 91 '<p><label for="feed_url">'.__('Feed URL:').'</label>'. 92 form::field('feed_url',40,300,html::escapeHTML($this->feed_url)).'</p>'. 93 '<p><input type="submit" value="'.__('Import').'" /></p>'. 94 '</div>'. 93 '<input type="submit" value="'.__('Import').'" /></p>'. 94 95 '</fieldset>'. 95 96 '</form>'; 96 97 } -
plugins/importExport/inc/class.dc.import.flat.php
r557 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 18 18 public function setInfo() 19 19 { 20 $this->type = 'i ';20 $this->type = 'import'; 21 21 $this->name = __('Flat file import'); 22 22 $this->description = __('Imports a blog or a full Dotclear installation from flat file.'); … … 55 55 56 56 try { 57 $bk = new dcImport($this->core,$file); 57 # Try to unzip file 58 $unzip_file = $this->unzip($file); 59 if (false !== $unzip_file) { 60 $bk = new flatImport($this->core,$unzip_file); 61 } 62 # Else this is a normal file 63 else { 64 $bk = new flatImport($this->core,$file); 65 } 66 58 67 $bk->importSingle(); 59 68 } catch (Exception $e) { 69 @unlink($unzip_file); 60 70 if ($to_unlink) { 61 71 @unlink($file); … … 63 73 throw $e; 64 74 } 75 @unlink($unzip_file); 65 76 if ($to_unlink) { 66 77 @unlink($file); … … 95 106 96 107 try { 97 $bk = new dcImport($this->core,$file); 108 # Try to unzip file 109 $unzip_file = $this->unzip($file); 110 if (false !== $unzip_file) { 111 $bk = new flatImport($this->core,$unzip_file); 112 } 113 # Else this is a normal file 114 else { 115 $bk = new flatImport($this->core,$file); 116 } 117 98 118 $bk->importFull(); 99 119 } catch (Exception $e) { 120 @unlink($unzip_file); 100 121 if ($to_unlink) { 101 122 @unlink($file); … … 103 124 throw $e; 104 125 } 126 @unlink($unzip_file); 105 127 if ($to_unlink) { 106 128 @unlink($file); … … 128 150 return; 129 151 } 152 153 $public_files = array_merge(array('-' => ''),$this->getPublicFiles()); 154 $has_files = (boolean) (count($public_files) - 1); 130 155 131 156 echo … … 155 180 156 181 echo 157 '<h3>'.__('Import a single blog').'</h3>'.158 '<p>'.sprintf(__('This will import a single blog backup as new content in the current blog: %s.'),159 '<strong>'.html::escapeHTML($this->core->blog->name).'</strong>').'</p>'.160 182 '<form action="'.$this->getURL(true).'" method="post" enctype="multipart/form-data">'. 161 162 '<div class="fieldset">'. 183 '<fieldset><legend>'.__('Single blog').'</legend>'. 184 '<p>'.sprintf(__('This will import a single blog backup as new content in the current blog: %s.'),html::escapeHTML($this->core->blog->name)).'</p>'. 185 186 '<p><label for="up_single_file">'.__('Upload a backup file').'</label>'. 187 '<input type="file" id="up_single_file" name="up_single_file" size="20" />'. 188 '</p>'; 189 190 if ($has_files) { 191 echo 192 '<p><label for="public_single_file">'.__('or pick up a local file in your public directory').' '. 193 form::combo('public_single_file',$public_files). 194 '</label></p>'; 195 } 196 197 echo 198 '<p>'. 163 199 $this->core->formNonce(). 164 200 form::hidden(array('do'),1). 165 201 form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE). 166 '<p><label for="up_single_file">'.__('Upload a backup file').'</label>'. 167 '<input type="file" id="up_single_file" name="up_single_file" size="20" />'. 168 '</p>'; 169 170 $public_files = $this->getPublicFiles(); 171 172 $empty = empty($public_files); 173 $public_files = array_merge(array('-' => ''),$public_files); 174 echo 175 '<p><label for="public_single_file">'.__('or pick up a local file in your public directory').' '. 176 form::combo('public_single_file',$public_files, '', '', '', $empty). 177 '</label></p>'; 178 179 echo 180 '<p><input type="submit" value="'.__('Import').'" /></p>'. 181 '</div>'. 202 '<input type="submit" value="'.__('Import').'" /></p>'. 203 204 '</fieldset>'. 182 205 '</form>'; 183 206 … … 185 208 { 186 209 echo 187 '<h3>'.__('Import a full backup file').'</h3>'.188 210 '<form action="'.$this->getURL(true).'" method="post" enctype="multipart/form-data" id="formfull">'. 189 '<div>'.form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE).'</div>'. 190 191 '<div class="fieldset">'. 211 '<fieldset><legend>'.__('Multiple blogs').'</legend>'. 212 '<p>'.__('This will reset all the content of your database, except users.').'</p>'. 213 214 '<p><label for="up_full_file">'.__('Upload a backup file').'</label>'. 215 '<input type="file" id="up_full_file" name="up_full_file" size="20" />'. 216 '</p>'; 217 218 if ($has_files) { 219 echo 220 '<p><label for="public_full_file">'.__('or pick up a local file in your public directory').'</label>'. 221 form::combo('public_full_file',$public_files). 222 '</p>'; 223 } 224 225 echo 226 '<p><label for="your_pwd" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label>'. 227 form::password('your_pwd',20,255).'</p>'. 228 229 '<p>'. 192 230 $this->core->formNonce(). 193 231 form::hidden(array('do'),1). 194 232 form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE). 195 '<p><label for="up_full_file">'.__('Upload a backup file').'</label>'. 196 '<input type="file" id="up_full_file" name="up_full_file" size="20" />'. 197 '</p>'; 198 199 echo 200 '<p><label for="public_full_file">'.__('or pick up a local file in your public directory').'</label>'. 201 form::combo('public_full_file',$public_files, '', '', '', $empty). 202 '</p>'; 203 204 echo 205 '<p class="form-note warning"><strong>'.__('Warning: This will reset all the content of your database, except users.').'</strong></p>'. 206 207 '<p><label for="your_pwd" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label>'. 208 form::password('your_pwd',20,255).'</p>'. 209 210 '<p><input type="submit" value="'.__('Import').'" /></p>'. 211 '</div>'. 233 '<input type="submit" value="'.__('Import').'" /></p>'. 234 235 '</fieldset>'. 212 236 '</form>'; 213 237 } … … 225 249 if (is_file($entry_path) && is_readable($entry_path)) 226 250 { 227 $fp = fopen($entry_path,'rb'); 228 if (strpos(fgets($fp),'///DOTCLEAR|') === 0) { 251 # Do not test each zip file content here, its too long 252 if (substr($entry_path,-4) == '.zip') { 253 $public_files[$entry] = $entry_path; 254 } 255 elseif (self::checkFileContent($entry_path)) { 229 256 $public_files[$entry] = $entry_path; 230 257 } 231 fclose($fp);232 258 } 233 259 } 234 260 } 235 261 return $public_files; 262 } 263 264 protected static function checkFileContent($entry_path) 265 { 266 $ret = false; 267 268 $fp = fopen($entry_path,'rb'); 269 $ret = strpos(fgets($fp),'///DOTCLEAR|') === 0; 270 fclose($fp); 271 272 return $ret; 273 } 274 275 private function unzip($file) 276 { 277 $zip = new fileUnzip($file); 278 279 if ($zip->isEmpty()) { 280 $zip->close(); 281 return false;//throw new Exception(__('File is empty or not a compressed file.')); 282 } 283 284 foreach($zip->getFilesList() as $zip_file) 285 { 286 # Check zipped file name 287 if (substr($zip_file,-4) != '.txt') { 288 continue; 289 } 290 291 # Check zipped file contents 292 $content = $zip->unzip($zip_file); 293 if (strpos($content,'///DOTCLEAR|') !== 0) { 294 unset($content); 295 continue; 296 } 297 298 $target = path::fullFromRoot($zip_file,dirname($file)); 299 300 # Check existing files with same name 301 if (file_exists($target)) { 302 $zip->close(); 303 unset($content); 304 throw new Exception(__('Another file with same name exists.')); 305 } 306 307 # Extract backup content 308 if (file_put_contents($target,$content) === false) { 309 $zip->close(); 310 unset($content); 311 throw new Exception(__('Failed to extract backup file.')); 312 } 313 314 $zip->close(); 315 unset($content); 316 317 # Return extracted file name 318 return $target; 319 } 320 321 $zip->close(); 322 throw new Exception(__('No backup in compressed file.')); 236 323 } 237 324 } -
plugins/importExport/inc/class.dc.import.wp.php
r807 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 61 61 protected function setInfo() 62 62 { 63 $this->type = 'i ';63 $this->type = 'import'; 64 64 $this->name = __('WordPress import'); 65 65 $this->description = __('Import a WordPress installation into your current blog.'); -
plugins/importExport/inc/flat/class.flat.backup.php
r270 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 12 12 if (!defined('DC_RC_PATH')) { return; } 13 13 14 class backupFile14 class flatBackup 15 15 { 16 16 protected $fp; … … 74 74 } 75 75 76 return new backupFileItem($this->line_name,$res);76 return new flatBackupItem($this->line_name,$res); 77 77 } 78 78 else … … 83 83 } 84 84 85 class backupFileItem85 class flatBackupItem 86 86 { 87 87 public $__name; -
plugins/importExport/inc/flat/class.flat.export.php
r270 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 12 12 if (!defined('DC_RC_PATH')) { return; } 13 13 14 class dbExport14 class flatExport 15 15 { 16 16 private $con; -
plugins/importExport/inc/flat/class.flat.import.php
r298 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 12 12 if (!defined('DC_RC_PATH')) { return; } 13 13 14 class dcImport extends backupFile14 class flatImport extends flatBackup 15 15 { 16 16 private $core; -
plugins/importExport/index.php
r696 r840 2 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 3 # 4 # This file is part of Dotclear2.4 # This file is part of importExport, a plugin for DotClear2. 5 5 # 6 # Copyright (c) 2003-201 1Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2012 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 12 12 if (!defined('DC_CONTEXT_ADMIN')) { return; } 13 13 14 require dirname(__FILE__).'/inc/class.dc.ieModule.php'; 14 function listImportExportModules($core,$modules) 15 { 16 $res = ''; 17 foreach ($modules as $id) 18 { 19 $o = new $id($core); 20 21 $res .= 22 '<dt><a href="'.$o->getURL(true).'">'.html::escapeHTML($o->name).'</a></dt>'. 23 '<dd>'.html::escapeHTML($o->description).'</dd>'; 24 25 unset($o); 26 } 27 return '<dl class="modules">'.$res.'</dl>'; 28 } 15 29 16 $modules = new ArrayObject(); 17 $modules['i'] = new ArrayObject(array( 18 'dcImportFlat' => dirname(__FILE__).'/inc/class.dc.import.flat.php', 19 'dcImportFeed' => dirname(__FILE__).'/inc/class.dc.import.feed.php' 20 )); 21 $modules['e'] = new ArrayObject(array( 22 'dcExportFlat' => dirname(__FILE__).'/inc/class.dc.export.flat.php' 23 )); 24 25 if ($core->auth->isSuperAdmin()) { 26 $modules['i']['dcImportDC1'] = dirname(__FILE__).'/inc/class.dc.import.dc1.php'; 27 $modules['i']['dcImportWP'] = dirname(__FILE__).'/inc/class.dc.import.wp.php'; 28 } 30 $modules = new ArrayObject(array('import' => array(),'export' => array())); 29 31 30 32 # --BEHAVIOR-- importExportModules … … 32 34 33 35 $type = null; 34 if (!empty($_REQUEST['t ']) && ($_REQUEST['t'] == 'e' || $_REQUEST['t'] == 'i')) {35 $type = $_REQUEST['t '];36 if (!empty($_REQUEST['type']) && in_array($_REQUEST['type'],array('export','import'))) { 37 $type = $_REQUEST['type']; 36 38 } 37 39 38 $current_module = null; 39 if ($type && !empty($_REQUEST['f'])) { 40 if (isset($modules[$type][$_REQUEST['f']])) { 41 require_once $modules[$type][$_REQUEST['f']]; 42 $current_module = new $_REQUEST['f']($core); 43 $current_module->init(); 40 $module = null; 41 if ($type && !empty($_REQUEST['module'])) { 42 43 if (isset($modules[$type]) && in_array($_REQUEST['module'],$modules[$type])) { 44 45 $module = new $_REQUEST['module']($core); 46 $module->init(); 44 47 } 45 48 } 46 49 47 if ($type && $ current_module !== null && !empty($_REQUEST['do']))50 if ($type && $module !== null && !empty($_REQUEST['do'])) 48 51 { 49 52 try { 50 $ current_module->process($_REQUEST['do']);53 $module->process($_REQUEST['do']); 51 54 } catch (Exception $e) { 52 55 $core->error->add($e->getMessage()); 53 56 } 54 57 } 55 ?> 58 59 $title = __('Import/Export'); 60 61 echo ' 56 62 <html> 57 63 <head> 58 <title><?php echo __('Import/Export'); ?></title> 59 <style type="text/css"> 60 dl.modules dt { 61 font-weight: bold; 62 font-size: 1.1em; 63 margin: 1em 0 0 0; 64 } 65 dl.modules dd { 66 margin: 0 0 1.5em 0; 67 } 68 div.ie-progress { 69 background: #eee; 70 margin: 1em 0; 71 } 72 div.ie-progress div { 73 height: 10px; 74 width: 0; 75 font-size: 0.8em; 76 line-height: 1em; 77 height: 1em; 78 padding: 2px 0; 79 text-align: right; 80 background: green url(index.php?pf=importExport/progress.png) repeat-x top left; 81 color: white; 82 font-weight: bold; 83 -moz-border-radius: 2px; 84 } 85 </style> 86 <script type="text/javascript" src="index.php?pf=importExport/script.js"></script> 64 <title>'.$title.'</title> 65 <link rel="stylesheet" type="text/css" href="index.php?pf=importExport/style.css" /> 66 '.dcPage::jsLoad('index.php?pf=importExport/js/script.js').' 87 67 <script type="text/javascript"> 88 68 //<![CDATA[ 89 dotclear.msg.please_wait = '<?php echo html::escapeJS(__("Please wait...")); ?>';69 '.dcPage::jsVar('dotclear.msg.please_wait',__('Please wait...')).' 90 70 //]]> 91 71 </script> 92 72 </head> 93 <body> 73 <body>'; 94 74 95 <?php 96 if ($type && $current_module !== null) 97 { 98 echo '<h2><a href="'.$p_url.'">'.__('Import/Export').'</a>'.99 ' › <span class="page-title">'.html::escapeHTML($current_module->name).'</span></h2>';75 if ($type && $module !== null) { 76 echo 77 '<h2><a href="'.$p_url.'">'.$title.'</a>'. 78 ' › <span class="page-title">'.html::escapeHTML($module->name).'</span></h2>'. 79 '<div id="ie-gui">'; 100 80 101 echo '<div id="ie-gui">';102 $current_module->gui();81 $module->gui(); 82 103 83 echo '</div>'; 104 84 } 105 else 106 { 107 echo '<h2 class="page-title">'.__('Import/Export').'</h2>'; 108 echo '<h3>'.__('Import').'</h3>'; 109 110 echo '<dl class="modules">'; 111 foreach ($modules['i'] as $k => $v) 112 { 113 require_once $v; 114 $o = new $k($core); 115 116 echo 117 '<dt><a href="'.$o->getURL(true).'">'.html::escapeHTML($o->name).'</a></dt>'. 118 '<dd>'.html::escapeHTML($o->description).'</dd>'; 119 120 unset($o); 121 } 122 echo '</dl>'; 123 124 echo '<h3>'.__('Export').'</h3>'; 125 126 echo '<dl class="modules">'; 127 foreach ($modules['e'] as $k => $v) 128 { 129 require_once $v; 130 $o = new $k($core); 131 132 echo 133 '<dt><a href="'.$o->getURL(true).'">'.html::escapeHTML($o->name).'</a></dt>'. 134 '<dd>'.html::escapeHTML($o->description).'</dd>'; 135 136 unset($o); 137 } 138 echo '</dl>'; 85 else { 86 echo 87 '<h2 class="page-title">'.$title.'</h2>'. 88 '<h3>'.__('Import').'</h3>'.listImportExportModules($core,$modules['import']). 89 '<h3>'.__('Export').'</h3>'.listImportExportModules($core,$modules['export']); 139 90 } 91 92 echo ' 93 </body> 94 </html>'; 140 95 ?> 141 142 </body>143 </html>
Note: See TracChangeset
for help on using the changeset viewer.