// Include core library require 'imscp-lib.php'; iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onResellerScriptStart); check_login('reseller'); /** @var $cfg iMSCP_Config_Handler_File */ $cfg = iMSCP_Registry::get('config'); $tpl = new iMSCP_pTemplate(); $tpl->define_dynamic(array('layout' => 'shared/layouts/ui.tpl', 'page' => 'reseller/layout.tpl', 'page_message' => 'layout', 'logo_remove_button' => 'page', 'layout_colors_block' => 'page', 'layout_color_block' => 'layout_colors_block')); /** * Dispatches request */ if (isset($_POST['uaction'])) { if ($_POST['uaction'] == 'updateIspLogo') { layout_updateUserLogo() ?: set_page_message(tr('Logo successfully updated.'), 'success'); } elseif ($_POST['uaction'] == 'deleteIspLogo') { layout_deleteUserLogo() ?: set_page_message(tr('Logo successfully removed.'), 'success'); } elseif ($_POST['uaction'] == 'changeLayoutColor' && isset($_POST['layoutColor'])) { if (layout_setUserLayoutColor($_SESSION['user_id'], $_POST['layoutColor'])) { if (!isset($_SESSION['logged_from_id'])) { $_SESSION['user_theme_color'] = $_POST['layoutColor']; set_page_message(tr('Layout color successfully updated.'), 'success'); } else { set_page_message(tr("Reseller's layout color successfully updated."), 'success'); } } else { set_page_message(tr('Unknown layout color.'), 'error'); } } elseif ($_POST['uaction'] == 'changeShowLabels') { layout_setMainMenuLabelsVisibility($_SESSION['user_id'], clean_input($_POST['mainMenuShowLabels'])); set_page_message(tr('Main menu labels visibility successfully updated.'), 'success'); } else {
/** * Updates user logo * * Note: Only administrators and resellers can have their own logo. * * @author Laurent Declercq <*****@*****.**> * @return bool TRUE on success, FALSE otherwise */ function layout_updateUserLogo() { /** @var $cfg iMSCP_Config_Handler_File */ $cfg = iMSCP_Registry::get('config'); // closure that is run before move_uploaded_file() function - See the // Utils_UploadFile() function for further information about implementation // details $beforeMove = function ($cfg) { $tmpFilePath = $_FILES['logoFile']['tmp_name']; // Checking file mime type if (!($fileMimeType = checkMimeType($tmpFilePath, array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png')))) { set_page_message(tr('You can only upload images.'), 'error'); return false; } // Retrieving file extension (gif|jpeg|png) if ($fileMimeType == 'image/pjpeg' || $fileMimeType == 'image/jpeg') { $fileExtension = 'jpeg'; } else { $fileExtension = substr($fileMimeType, -3); } // Getting the image size list($imageWidth, $imageHeigth) = getimagesize($tmpFilePath); // Checking image size if ($imageWidth > 500 || $imageHeigth > 90) { set_page_message(tr('Images have to be smaller than 500 x 90 pixels.'), 'error'); return false; } // Building an unique file name $fileName = sha1(utils_randomString(15) . '-' . $_SESSION['user_id']) . '.' . $fileExtension; // Return destination file path return $cfg->GUI_ROOT_DIR . '/data/persistent/ispLogos/' . $fileName; }; if (($logoPath = utils_uploadFile('logoFile', array($beforeMove, $cfg))) === false) { return false; } else { if ($_SESSION['user_type'] == 'admin') { $userId = 1; } else { $userId = $_SESSION['user_id']; } // We must catch old logo before update $oldLogoFile = layout_getUserLogo(false, false); exec_query('UPDATE `user_gui_props` SET `logo` = ? WHERE `user_id` = ?', array(basename($logoPath), $userId)); // Deleting old logo (we are safe here) - We don't return FALSE on failure. // The administrator will be warned through logs. layout_deleteUserLogo($oldLogoFile, true); } return true; }
iMSCP_Events_Aggregator::getInstance()->dispatch(iMSCP_Events::onAdminScriptStart); check_login('admin'); /** @var $cfg iMSCP_Config_Handler_File */ $cfg = iMSCP_Registry::get('config'); $tpl = new iMSCP_pTemplate(); $tpl->define_dynamic(array('layout' => 'shared/layouts/ui.tpl', 'page' => 'admin/layout.tpl', 'page_message' => 'layout', 'logo_remove_button' => 'page', 'layout_colors_block' => 'page', 'layout_color_block' => 'layout_colors_block')); /** * Dispatches request */ if (isset($_POST['uaction'])) { if ($_POST['uaction'] == 'updateIspLogo') { if (layout_updateUserLogo()) { set_page_message(tr('Logo successfully updated.'), 'success'); } } elseif ($_POST['uaction'] == 'deleteIspLogo') { if (layout_deleteUserLogo()) { set_page_message(tr('Logo successfully removed.'), 'success'); } } elseif ($_POST['uaction'] == 'changeShowLabels') { layout_setMainMenuLabelsVisibility($_SESSION['user_id'], clean_input($_POST['mainMenuShowLabels'])); set_page_message(tr('Main menu labels visibility successfully updated.'), 'success'); } elseif ($_POST['uaction'] == 'changeLayoutColor' && isset($_POST['layoutColor'])) { $userId = isset($_SESSION['logged_from_id']) ? $_SESSION['logged_from_id'] : $_SESSION['user_id']; if (layout_setUserLayoutColor($userId, $_POST['layoutColor'])) { $_SESSION['user_theme_color'] = $_POST['layoutColor']; set_page_message(tr('Layout color successfully updated.'), 'success'); } else { set_page_message(tr('Unknown layout color.'), 'error'); } } else { set_page_message(tr('Unknown action: %s', tohtml($_POST['uaction'])), 'error');