Drupal 7 upload Sub Logo Advanced Theme Settings
In many cases you might need to upload a second logo for a theme. In this case you would like to upload a second logo from admin.
You will need to add this code in your theme-settings.php page. (Remember to replace ‘yourtheme’ with the name of your current Drupal theme).
function yourtheme_form_system_theme_settings_alter(&$form, &$form_state) {
$form['logo']['settings']['sublogo'] = array(
'#type' => 'fieldset',
'#title' => t('Second logo'),
'#description' => t("Second logo for your page")
);
$logo_path = theme_get_setting('sublogo_path');
// If $logo_path is a public:// URI, display the path relative to the files
// directory; stream wrappers are not end-user friendly.
if (file_uri_scheme($logo_path) == 'public') {
$logo_path = file_uri_target($logo_path);
}
$form['logo']['settings']['sublogo']['sublogo_path'] = array(
'#type' => 'textfield',
'#title' => t('Path to second logo'),
'#default_value' => $logo_path,
);
$form['logo']['settings']['sublogo']['sublogo_upload'] = array(
'#type' => 'file',
'#title' => t('Upload second logo'),
);
$form['#submit'][] = 'yourtheme_settings_submit';
}
function yourtheme_settings_submit($form, &$form_state) {
$settings = array();
// Check for a new uploaded file, and use that if available.
if ($file = file_save_upload('sublogo_upload')) {
$parts = pathinfo($file->filename);
$destination = 'public://' . $parts['basename'];
$file->status = FILE_STATUS_PERMANENT;
if (file_copy($file, $destination, FILE_EXISTS_REPLACE)) {
$_POST['sublogo_path'] = $form_state['values']['sublogo_path'] = $destination;
}
}
}
In admin you will have a look this this:
For front-end display of sub logo you will need this code –
$sub_logo = '';
if($file_create_url(theme_get_setting('sublogo_path')))
{
$sub_logo = file_create_url(variable_get('file_public_path', conf_path() . '/files/').theme_get_setting('sublogo_path'));
?>
<img src="<?php echo $sub_logo; ?>" alt="" />
<?php
}
Ta da! You have successfully created a place to dynamically upload a sub logo from admin. And learnt Drupal 7 upload Sub Logo advanced theme settings.

Debdatta has more than 13 years in IT induustry and software engineering. Currently 6 years in data science, and machine learning. She holds a Master of Computer Applications degree and Executive Post Graduate Program Degree in Data Science. She is passionate about research, data-driven decisions, and technology’s role in business growth.
