Skip to content

Commit b227ec9

Browse files
authored
Merge pull request #54 from BrickOzp/basedirs
Add attachment basedirs to repair_settings
2 parents 68c14af + 9e1aa09 commit b227ec9

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

repair_settings.php

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
$txt['tasksdir'] = 'Tasks Directory';
9898
$txt['packagesdir'] = 'Packages Directory';
9999
$txt['export_dir'] = 'Exports Directory';
100+
$txt['attachment_basedirectories'] = 'Attachment Basedirectory';
100101
$txt['attachmentUploadDir'] = 'Attachment Directory';
101102
$txt['avatar_url'] = 'Avatar URL';
102103
$txt['avatar_directory'] = 'Avatar Directory';
@@ -532,6 +533,7 @@ function show_settings()
532533
'tasksdir' => array('flat', 'string'),
533534
'packagesdir' => array('flat', 'string'),
534535
'export_dir' => array('db', 'string'),
536+
'attachment_basedirectories' => array('db', 'array_string'),
535537
'attachmentUploadDir' => array('db', 'array_string'),
536538
'avatar_url' => array('db', 'string'),
537539
'avatar_directory' => array('db', 'string'),
@@ -549,13 +551,20 @@ function show_settings()
549551
'theme_path_url_settings' => array(),
550552
);
551553

554+
// These settings are optional and won't be shown if the don't exist
555+
$optional_settings = array(
556+
'path_url_settings' => array(
557+
'attachment_basedirectories'
558+
)
559+
);
560+
552561
// 1.x didn't have ssi_x, nor cachedir
553562
if ($context['is_legacy'])
554563
unset($known_settings['database_settings']['ssi_db_user'], $known_settings['database_settings']['ssi_db_passwd'], $known_settings['cache_settings']['cachedir'], $known_settings['path_url_settings']['custom_avatar_url'], $known_settings['path_url_settings']['custom_avatar_dir']);
555564

556565
// These settings didn't exist in 2.0 or 1.1
557566
if ($context['smfVersion'] == '2.0' || $context['smfVersion'] == '1.1')
558-
unset($known_settings['cache_settings']['cache_accelerator'], $known_settings['cache_settings']['cache_enable'], $known_settings['cache_settings']['cache_memcached'], $known_settings['path_url_settings']['tasksdir'], $known_settings['path_url_settings']['export_dir'], $known_settings['path_url_settings']['packagesdir']);
567+
unset($known_settings['cache_settings']['cache_accelerator'], $known_settings['cache_settings']['cache_enable'], $known_settings['cache_settings']['cache_memcached'], $known_settings['path_url_settings']['tasksdir'], $known_settings['path_url_settings']['export_dir'], $known_settings['path_url_settings']['packagesdir'], $known_settings['path_url_settings']['attachment_basedirectories']);
559568

560569
// Let's assume we don't want to change the current theme
561570
$settings['theme_default'] = 0;
@@ -729,6 +738,9 @@ function restoreAll()
729738

730739
foreach ($section as $setting => $info)
731740
{
741+
if (!array_key_exists($setting, $settings) && isset($optional_settings[$settings_section]) && in_array($setting, $optional_settings[$settings_section]))
742+
continue;
743+
732744
if ($info[0] == 'hidden')
733745
continue;
734746

@@ -969,6 +981,7 @@ function set_settings()
969981
$theme_updates = isset($_POST['themesettings']) ? $_POST['themesettings'] : array();
970982
$file_updates = isset($_POST['flatsettings']) ? $_POST['flatsettings'] : array();
971983
$attach_dirs = array();
984+
$attach_base_dirs = array();
972985

973986
if (empty($db_updates['theme_default']))
974987
unset($db_updates['theme_default']);
@@ -1068,6 +1081,12 @@ function set_settings()
10681081
$attach_dirs[$index] = $value[1];
10691082
unset($setString[$key]);
10701083
}
1084+
elseif (strpos($value[0], 'attachment_basedirectories') == 0 && strpos($value[0], 'attachment_basedirectories') !== false)
1085+
{
1086+
$index = substr($value[0], strlen('attachment_basedirectories_'));
1087+
$attach_base_dirs[$index] = $value[1];
1088+
unset($setString[$key]);
1089+
}
10711090
}
10721091

10731092
// Build the update string for attachment dirs
@@ -1077,6 +1096,8 @@ function set_settings()
10771096
if ($context['smfVersion'] == '2.1')
10781097
{
10791098
$setString[] = array('attachmentUploadDir', json_encode($attach_dirs));
1099+
if (!empty($attach_base_dirs))
1100+
$setString[] = array('attachment_basedirectories', json_encode($attach_base_dirs));
10801101
}
10811102
// Only one dir...or maybe nothing at all
10821103
elseif (count($attach_dirs) > 1)

0 commit comments

Comments
 (0)