Skip to content

Commit

Permalink
Fixes #174 Move attachment copying to parent class
Browse files Browse the repository at this point in the history
  • Loading branch information
JN-Jones committed Jun 15, 2015
1 parent 0b86155 commit 01ddbd7
Show file tree
Hide file tree
Showing 12 changed files with 129 additions and 198 deletions.
33 changes: 5 additions & 28 deletions boards/ipb3/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,35 +23,12 @@ class IPB3_Converter_Module_Attachments extends Converter_Module_Attachments {

public $path_column = "attach_location";

function pre_setup()
public function get_upload_path()
{
global $mybb, $import_session;

// Set uploads path
if(!isset($import_session['uploadspath']))
{
$query = $this->old_db->simple_select("core_sys_conf_settings", "conf_value", "conf_key = 'upload_url'", array('limit' => 1));
$import_session['uploadspath'] = $this->old_db->fetch_field($query, 'conf_value');
$this->old_db->free_result($query);

if(my_substr($import_session['uploadspath'], -1) != '/') {
$import_session['uploadspath'] .= '/';
}
}

$this->check_attachments_dir_perms();

// Get number of polls per screen from form
if(isset($mybb->input['attachments_per_screen']))
{
$import_session['attachments_per_screen'] = intval($mybb->input['attachments_per_screen']);
}

if($mybb->input['uploadspath'])
{
// Test our ability to read attachment files from the forum software
$this->test_readability("attachments");
}
$query = $this->old_db->simple_select("core_sys_conf_settings", "conf_value", "conf_key = 'upload_url'", array('limit' => 1));
$uploadspath = $this->old_db->fetch_field($query, 'conf_value');
$this->old_db->free_result($query);
return $uploadspath;
}

function import()
Expand Down
17 changes: 7 additions & 10 deletions boards/ipb4/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,14 @@ class IPB4_Converter_Module_Attachments extends Converter_Module_Attachments {

public $path_column = "attach_location";

function pre_setup()
{
global $mybb, $import_session;

$this->check_attachments_dir_perms();
public $test_table = "core_attachments";

// IPB 4 seems to save the full location
$import_session['uploadspath'] = $mybb->input['uploadspath'] = "";

// Test our ability to read attachment files from the forum software
$this->test_readability("core_attachments");
function get_upload_path()
{
global $mybb;
// IPB 4 seems to save the full location - reset the input so the we check whether we can read the attachments
$mybb->input['uploadspath'] = "";
return "";
}

function import()
Expand Down
32 changes: 8 additions & 24 deletions boards/mybb/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,33 +23,17 @@ class MYBB_Converter_Module_Attachments extends Converter_Module_Attachments {

public $path_column = "attachname";

function pre_setup()
function get_upload_path()
{
global $import_session, $mybb;
$query = $this->old_db->simple_select("settings", "value", "name = 'bburl'", array('limit' => 1));
$bburl = $this->old_db->fetch_field($query, 'value');
$this->old_db->free_result($query);

// Set uploads path
if(!isset($import_session['uploadspath']))
{
$query = $this->old_db->simple_select("settings", "value", "name = 'bburl'", array('limit' => 1));
$bburl = $this->old_db->fetch_field($query, 'value');
$this->old_db->free_result($query);

$query = $this->old_db->simple_select("settings", "value", "name = 'uploadspath'", array('limit' => 1));
$import_session['uploadspath'] = str_replace('./', $bburl.'/', $this->old_db->fetch_field($query, 'value'));
$this->old_db->free_result($query);

if(my_substr($import_session['uploadspath'], -1) != '/') {
$import_session['uploadspath'] .= '/';
}
}

$this->check_attachments_dir_perms();
$query = $this->old_db->simple_select("settings", "value", "name = 'uploadspath'", array('limit' => 1));
$uploadspath = str_replace('./', $bburl.'/', $this->old_db->fetch_field($query, 'value'));
$this->old_db->free_result($query);

if($mybb->input['uploadspath'])
{
// Test our ability to read attachment files from the forum software
$this->test_readability("attachments");
}
return $uploadspath;
}

function import()
Expand Down
44 changes: 14 additions & 30 deletions boards/phpbb3/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,41 +23,25 @@ class PHPBB3_Converter_Module_Attachments extends Converter_Module_Attachments {

public $path_column = "physical_filename";

function pre_setup()
function get_upload_path()
{
global $import_session, $mybb;
$query = $this->old_db->simple_select("config", "config_value", "config_name = 'server_protocol'", array('limit' => 1));
$uploadspath = $this->old_db->fetch_field($query, 'config_value');
$this->old_db->free_result($query);

// Set uploads path
if(!isset($import_session['uploadspath']))
{
$query = $this->old_db->simple_select("config", "config_value", "config_name = 'server_protocol'", array('limit' => 1));
$import_session['uploadspath'] = $this->old_db->fetch_field($query, 'config_value');
$this->old_db->free_result($query);

$query = $this->old_db->simple_select("config", "config_value", "config_name = 'server_name'", array('limit' => 1));
$import_session['uploadspath'] .= $this->old_db->fetch_field($query, 'config_value');
$this->old_db->free_result($query);
$query = $this->old_db->simple_select("config", "config_value", "config_name = 'server_name'", array('limit' => 1));
$uploadspath .= $this->old_db->fetch_field($query, 'config_value');
$this->old_db->free_result($query);

$query = $this->old_db->simple_select("config", "config_value", "config_name = 'script_path'", array('limit' => 1));
$import_session['uploadspath'] .= $this->old_db->fetch_field($query, 'config_value').'/';
$this->old_db->free_result($query);
$query = $this->old_db->simple_select("config", "config_value", "config_name = 'script_path'", array('limit' => 1));
$uploadspath .= $this->old_db->fetch_field($query, 'config_value').'/';
$this->old_db->free_result($query);

$query = $this->old_db->simple_select("config", "config_value", "config_name = 'upload_path'", array('limit' => 1));
$import_session['uploadspath'] .= $this->old_db->fetch_field($query, 'config_value');
$this->old_db->free_result($query);
$query = $this->old_db->simple_select("config", "config_value", "config_name = 'upload_path'", array('limit' => 1));
$uploadspath .= $this->old_db->fetch_field($query, 'config_value');
$this->old_db->free_result($query);

if(my_substr($import_session['uploadspath'], -1) != '/') {
$import_session['uploadspath'] .= '/';
}
}

$this->check_attachments_dir_perms();

if($mybb->input['uploadspath'])
{
// Test our ability to read attachment files from the forum software
$this->test_readability("attachments");
}
return $uploadspath;
}

function import()
Expand Down
50 changes: 20 additions & 30 deletions boards/smf/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,42 +27,32 @@ class SMF_Converter_Module_Attachments extends Converter_Module_Attachments {

function pre_setup()
{
global $import_session, $mybb;

// Set uploads path
if(!isset($import_session['uploadspath']))
if($this->old_db->field_exists("file_hash", "attachments"))
{
$query = $this->old_db->simple_select("settings", "value", "variable = 'attachmentUploadDir'", array('limit' => 1));
$import_session['uploadspath'] = $this->old_db->fetch_field($query, 'value');
$this->old_db->free_result($query);

if(empty($import_session['uploadspath']))
{
$query = $this->old_db->simple_select("settings", "value", "variable = 'avatar_url'", array('limit' => 1));
$import_session['uploadspath'] = str_replace('avatars', 'attachments', $this->old_db->fetch_field($query, 'value'));
$this->old_db->free_result($query);
}

if(my_substr($import_session['uploadspath'], -1) != '/') {
$import_session['uploadspath'] .= '/';
}
$this->path_column = "ID_ATTACH,file_hash";
}
else
{
$this->path_column = "ID_ATTACH,filename";
}

$this->check_attachments_dir_perms();
parent::pre_setup();
}

if($mybb->input['uploadspath'])
function get_upload_path()
{
$query = $this->old_db->simple_select("settings", "value", "variable = 'attachmentUploadDir'", array('limit' => 1));
$uploadspath = $this->old_db->fetch_field($query, 'value');
$this->old_db->free_result($query);

if(empty($uploadspath))
{
// Test our ability to read attachment files from the forum software
if($this->old_db->field_exists("file_hash", "attachments"))
{
$this->path_column = "ID_ATTACH,file_hash";
}
else
{
$this->path_column = "ID_ATTACH,filename";
}
$this->test_readability("attachments");
$query = $this->old_db->simple_select("settings", "value", "variable = 'avatar_url'", array('limit' => 1));
$uploadspath = str_replace('avatars', 'attachments', $this->old_db->fetch_field($query, 'value'));
$this->old_db->free_result($query);
}

return $uploadspath;
}

function import()
Expand Down
32 changes: 8 additions & 24 deletions boards/smf2/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,36 +27,20 @@ class SMF2_Converter_Module_Attachments extends Converter_Module_Attachments {

public $path_column = "id_attach,file_hash";

function pre_setup()
function get_upload_path()
{
global $import_session, $mybb;
$query = $this->old_db->simple_select("settings", "value", "variable = 'attachmentUploadDir'", array('limit' => 1));
$uploadspath = $this->old_db->fetch_field($query, 'value');
$this->old_db->free_result($query);

// Set uploads path
if(!isset($import_session['uploadspath']))
if(empty($uploadspath))
{
$query = $this->old_db->simple_select("settings", "value", "variable = 'attachmentUploadDir'", array('limit' => 1));
$import_session['uploadspath'] = $this->old_db->fetch_field($query, 'value');
$query = $this->old_db->simple_select("settings", "value", "variable = 'avatar_url'", array('limit' => 1));
$uploadspath = str_replace('avatars', 'attachments', $this->old_db->fetch_field($query, 'value'));
$this->old_db->free_result($query);

if(empty($import_session['uploadspath']))
{
$query = $this->old_db->simple_select("settings", "value", "variable = 'avatar_url'", array('limit' => 1));
$import_session['uploadspath'] = str_replace('avatars', 'attachments', $this->old_db->fetch_field($query, 'value'));
$this->old_db->free_result($query);
}

if(my_substr($import_session['uploadspath'], -1) != '/') {
$import_session['uploadspath'] .= '/';
}
}

$this->check_attachments_dir_perms();

if($mybb->input['uploadspath'])
{
// Test our ability to read attachment files from the forum software
$this->test_readability("attachments");
}
return $uploadspath;
}

function import()
Expand Down
5 changes: 4 additions & 1 deletion boards/vbulletin3/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ function convert_data($data)

function after_insert($data, $insert_data, $aid)
{
global $mybb;
global $mybb, $lang;

if($data['thumbnail'])
{
Expand Down Expand Up @@ -158,6 +158,9 @@ function fetch_total()

return $import_session['total_attachments'];
}

// No need for an upload path, vb saves the complete file(!!!) in the database
function get_upload_path() {}
}


3 changes: 3 additions & 0 deletions boards/vbulletin4/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,9 @@ function fetch_total()

return $import_session['total_attachments'];
}

// No need for an upload path, vb saves the complete file(!!!) in the database
function get_upload_path() {}
}


24 changes: 9 additions & 15 deletions boards/wbb3/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,23 +25,17 @@ class WBB3_Converter_Module_Attachments extends Converter_Module_Attachments {

function pre_setup()
{
global $import_session, $mybb;
// Set uploads path
if(!isset($import_session['uploadspath']))
{
$query = $this->old_db->simple_select(WCF_PREFIX."option", "optionValue", "optionName='page_url' AND optionValue!=''");
$import_session['uploadspath'] = $this->old_db->fetch_field($query, "optionValue");
$import_session['uploadspath'] .= "/wcf/attachments/";
}
$this->test_table = WCF_PREFIX."attachment";

$this->check_attachments_dir_perms();

if($mybb->input['uploadspath'])
{
// Test our ability to read attachment files from the forum software
$this->test_readability(WCF_PREFIX."attachment");
}
parent::pre_setup();
}

function get_upload_path()
{
$query = $this->old_db->simple_select(WCF_PREFIX."option", "optionValue", "optionName='page_url' AND optionValue!=''");
$uploadspath = $this->old_db->fetch_field($query, "optionValue") . "/wcf/attachments/";
$this->old_db->free_result($query);
return $uploadspath;
}

function import()
Expand Down
24 changes: 9 additions & 15 deletions boards/wbb4/attachments.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,9 @@ class WBB4_Converter_Module_Attachments extends Converter_Module_Attachments {

function pre_setup()
{
global $import_session, $mybb;
// Set uploads path
if(!isset($import_session['uploadspath']))
{
$query = $this->old_db->simple_select(WCF_PREFIX."application", "domainName,domainPath", "isPrimary='1'");
$data = $this->old_db->fetch_array($query);
$import_session['uploadspath'] = "http://".$data['domainName'].$data['domainPath']."wcf/attachments/";
}
$this->test_table = WCF_PREFIX."attachment";

$this->check_attachments_dir_perms();

if($mybb->input['uploadspath'])
{
// Test our ability to read attachment files from the forum software
$this->test_readability(WCF_PREFIX."attachment");
}
parent::pre_setup();

// Don't ask - wbb...
$class = $this->old_db->escape_string("wbb\system\attachment\PostAttachmentObjectType");
Expand All @@ -51,6 +38,13 @@ function pre_setup()
$this->old_db->free_result($query);
}

function get_upload_path()
{
$query = $this->old_db->simple_select(WCF_PREFIX."application", "domainName,domainPath", "isPrimary='1'");
$data = $this->old_db->fetch_array($query);
return "http://".$data['domainName'].$data['domainPath']."wcf/attachments/";
}

function import()
{
global $import_session;
Expand Down
Loading

0 comments on commit 01ddbd7

Please sign in to comment.