示例#1
0
// 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 {
示例#2
0
/**
 * 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;
}
示例#3
0
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');