function checkMemoryLimit()
{
    global $_CORELANG;
    static $memoryLimit, $MiB2;
    if (!isset($memoryLimit)) {
        @(include UPDATE_PATH . '/lib/FRAMEWORK/System.class.php');
        $objSystem = new FWSystem();
        if ($objSystem === false) {
            setUpdateMsg(sprintf($_CORELANG['TXT_UPDATE_API_LOAD_FAILED'], UPDATE_PATH . '/lib/FRAMEWORK/System.class.php'));
            return false;
        }
        $memoryLimit = $objSystem->getBytesOfLiteralSizeFormat(@ini_get('memory_limit'));
        if (empty($memoryLimit)) {
            // set default php memory limit of 8MiBytes
            $memoryLimit = 8 * pow(1024, 2);
        }
        $MiB2 = 2 * pow(1024, 2);
    }
    $potentialRequiredMemory = memory_get_usage() + $MiB2;
    if ($potentialRequiredMemory > $memoryLimit) {
        // try to set a higher memory_limit
        if (!@ini_set('memory_limit', $potentialRequiredMemory)) {
            setUpdateMsg($_CORELANG['TXT_UPDATE_PROCESS_HALTED'], 'title');
            setUpdateMsg($_CORELANG['TXT_UPDATE_PROCESS_HALTED_RAM_MSG'] . '<br /><br />', 'msg');
            setUpdateMsg('<input type="submit" value="' . $_CORELANG['TXT_CONTINUE_UPDATE'] . '" name="updateNext" /><input type="hidden" name="processUpdate" id="processUpdate" />', 'button');
            return false;
        }
    }
    return true;
}
Beispiel #2
0
 /**
  * Load the image from the given file path
  *
  * Based on the ImageManager methods _imageCreateFromFile() and
  * _isImage()
  * @param   string    $file_path        The image file path
  * @return  resource                    The image resource on success,
  *                                      false otherwise
  */
 static function load($file_path)
 {
     if (!File::exists($file_path)) {
         return false;
     }
     $arrInfo = getimagesize(ASCMS_DOCUMENT_ROOT . '/' . $file_path);
     if (!is_array($arrInfo)) {
         //echo("load(): failed to determine image size<br />");
         return false;
     }
     // 1: GIF, 2: JPG, 3: PNG, others are not accepted
     if ($arrInfo[2] == 1 && !function_exists('imagecreatefromgif')) {
         return false;
     }
     switch ($arrInfo[2]) {
         case 1:
             $function = 'imagecreatefromgif';
             break;
         case 2:
             $function = 'imagecreatefromjpeg';
             break;
         case 3:
             $function = 'imagecreatefrompng';
             break;
         default:
             //echo("load(): unknown file type<br />");
             return false;
     }
     $memoryLimit = FWSystem::getBytesOfLiteralSizeFormat(@ini_get('memory_limit'));
     if (empty($memoryLimit)) {
         $memoryLimit = Image::MAXIMUM_UPLOAD_FILE_SIZE;
     }
     $potentialRequiredMemory = intval($arrInfo[0] * $arrInfo[1] * ($arrInfo['bits'] / 8) * $arrInfo['channels'] * 1.8);
     if (function_exists('memory_get_usage')) {
         $potentialRequiredMemory += memory_get_usage();
     } else {
         // add a default of 3 MB
         $potentialRequiredMemory += 3 * pow(1024, 2);
     }
     //echo("load(): potentialRequiredMemory $potentialRequiredMemory, memoryLimit $memoryLimit<br />");
     if ($potentialRequiredMemory > $memoryLimit) {
         // try to set a higher memory_limit
         if (!@ini_set('memory_limit', $potentialRequiredMemory)) {
             //echo("load(): failed to set memory limit<br />");
             return false;
         }
     }
     //echo("load(): calling $function($file_path)...<br />");
     return $function(ASCMS_DOCUMENT_ROOT . '/' . $file_path);
 }
Beispiel #3
0
 /**
  * Creates an image from an image file
  * @access   private
  * @param    string   $file   The path of the image
  * @return   resource         The image on success, the empty string otherwise
  */
 function _imageCreateFromFile($file)
 {
     $arrSizeInfo = getimagesize($file);
     if (!is_array($arrSizeInfo)) {
         return false;
     }
     $type = $this->_isImage($file);
     $potentialRequiredMemory = $arrSizeInfo[0] * $arrSizeInfo[1] * 1.8;
     switch ($type) {
         case self::IMG_TYPE_GIF:
             $function = 'imagecreatefromgif';
             break;
         case self::IMG_TYPE_JPEG:
             $function = 'imagecreatefromjpeg';
             $potentialRequiredMemory *= $arrSizeInfo['bits'] / 8 * ($arrSizeInfo['channels'] < 3 ? 3 : $arrSizeInfo['channels']);
             break;
         case self::IMG_TYPE_PNG:
             $function = 'imagecreatefrompng';
             $potentialRequiredMemory *= 4;
             break;
         default:
             return '';
     }
     require_once ASCMS_FRAMEWORK_PATH . '/System.class.php';
     $objSystem = new FWSystem();
     if ($objSystem === false) {
         return false;
     }
     $memoryLimit = $objSystem->getBytesOfLiteralSizeFormat(@ini_get('memory_limit'));
     if (empty($memoryLimit)) {
         // set default php memory limit of 8 MBytes
         $memoryLimit = 8 * pow(1024, 2);
     }
     if (function_exists('memory_get_usage')) {
         $potentialRequiredMemory += memory_get_usage();
     } else {
         // add a default of 3 MBytes
         $potentialRequiredMemory += 3 * pow(1024, 2);
     }
     if ($potentialRequiredMemory > $memoryLimit) {
         // try to set a higher memory_limit
         if (!ini_set('memory_limit', $potentialRequiredMemory) || $memoryLimit == $objSystem->getBytesOfLiteralSizeFormat(ini_get('memory_limit'))) {
             return '';
         }
     }
     return $function($file);
 }
 /**
  * Checking memory limit
  * 
  * @staticvar integer $memoryLimit
  * @staticvar integer $MiB2
  * 
  * @param integer $crawlerId
  * 
  * @return boolean
  */
 function checkMemoryLimit($crawlerId)
 {
     static $memoryLimit, $MiB2;
     if (!isset($memoryLimit)) {
         $memoryLimit = \FWSystem::getBytesOfLiteralSizeFormat(@ini_get('memory_limit'));
         if (empty($memoryLimit)) {
             // set default php memory limit of 8MiBytes
             $memoryLimit = 8 * pow(1024, 2);
         }
         $MiB2 = 2 * pow(1024, 2);
     }
     $potentialRequiredMemory = memory_get_usage() + $MiB2;
     if ($potentialRequiredMemory > $memoryLimit) {
         // try to set a higher memory_limit
         if (!@ini_set('memory_limit', $potentialRequiredMemory)) {
             $this->updateCrawlerStatus($crawlerId, self::RUN_STATUS_INCOMPLETE);
             die('The link spider script is interrupted due to insufficient memory is available.');
         }
     }
     return true;
 }
 /**
  * Checking memory limit
  * 
  * @param type $requiredMemoryLimit required memory limit
  * 
  * @return boolean
  */
 function checkMemoryLimit($requiredMemoryLimit)
 {
     if (empty($this->memoryLimit)) {
         $memoryLimit = \FWSystem::getBytesOfLiteralSizeFormat(@ini_get('memory_limit'));
         //if memory limit is empty then set default php memory limit of 8MiBytes
         $this->memoryLimit = !empty($memoryLimit) ? $memoryLimit : self::MiB2 * 4;
     }
     $potentialRequiredMemory = memory_get_usage() + $requiredMemoryLimit;
     if ($potentialRequiredMemory > $this->memoryLimit) {
         // try to set a higher memory_limit
         if (!@ini_set('memory_limit', $potentialRequiredMemory)) {
             \DBG::log('The link spider script is interrupted due to insufficient memory is available.');
             return false;
         }
     }
     return true;
 }
 function _configGeneral()
 {
     global $_ARRAYLANG, $_CORELANG;
     $status = true;
     $arrSettings = \User_Setting::getSettings();
     $this->_objTpl->addBlockfile('ACCESS_CONFIG_TEMPLATE', 'module_access_config_general', 'module_access_config_general.html');
     $this->_objTpl->setVariable(array('TXT_ACCESS_PROFILE' => $_ARRAYLANG['TXT_ACCESS_PROFILE'], 'TXT_ACCESS_PROFILE_AVATAR_PIC' => $_ARRAYLANG['TXT_ACCESS_PROFILE_AVATAR_PIC'], 'TXT_ACCESS_PERMISSIONS' => $_ARRAYLANG['TXT_ACCESS_PERMISSIONS'], 'TXT_ACCESS_YES' => $_ARRAYLANG['TXT_ACCESS_YES'], 'TXT_ACCESS_NO' => $_ARRAYLANG['TXT_ACCESS_NO'], 'TXT_ACCESS_ALLOW_USERS_DELETE_ACCOUNT' => $_ARRAYLANG['TXT_ACCESS_ALLOW_USERS_DELETE_ACCOUNT'], 'TXT_ACCESS_ALLOW_USERS_SET_PROFILE_ACCESS' => $_ARRAYLANG['TXT_ACCESS_ALLOW_USERS_SET_PROFILE_ACCESS'], 'TXT_ACCESS_ALLOW_USERS_SET_EMAIL_ACCESS' => $_ARRAYLANG['TXT_ACCESS_ALLOW_USERS_SET_EMAIL_ACCESS'], 'TXT_ACCESS_FRONTEND_BLOCK_FUNCTIONS' => $_ARRAYLANG['TXT_ACCESS_FRONTEND_BLOCK_FUNCTIONS'], 'TXT_ACCESS_CURRENTLY_ONLINE' => $_ARRAYLANG['TXT_ACCESS_CURRENTLY_ONLINE'], 'TXT_ACCESS_LAST_ACTIVE' => $_ARRAYLANG['TXT_ACCESS_LAST_ACTIVE'], 'TXT_ACCESS_LATEST_REGISTERED_USERS' => $_ARRAYLANG['TXT_ACCESS_LATEST_REGISTERED_USERS'], 'TXT_ACCESS_BIRTHDAYS' => $_ARRAYLANG['TXT_ACCESS_BIRTHDAYS'], 'TXT_ACCESS_ACTIVATE_BLOCK_FUNCTION' => $_ARRAYLANG['TXT_ACCESS_ACTIVATE_BLOCK_FUNCTION'], 'TXT_ACCESS_SHOW_USERS_ONLY_WITH_PHOTO' => $_ARRAYLANG['TXT_ACCESS_SHOW_USERS_ONLY_WITH_PHOTO'], 'TXT_ACCESS_MAX_USER_COUNT' => $_ARRAYLANG['TXT_ACCESS_MAX_USER_COUNT'], 'TXT_ACCESS_SAVE' => $_ARRAYLANG['TXT_ACCESS_SAVE'], 'TXT_ACCESS_PROFILE_PIC' => $_CORELANG['TXT_ACCESS_PROFILE_PIC'], 'TXT_ACCESS_MAX_WIDTH' => $_ARRAYLANG['TXT_ACCESS_MAX_WIDTH'], 'TXT_ACCESS_MAX_HEIGHT' => $_ARRAYLANG['TXT_ACCESS_MAX_HEIGHT'], 'TXT_ACCESS_MAX_FILE_SIZE' => $_ARRAYLANG['TXT_ACCESS_MAX_FILE_SIZE'], 'TXT_ACCESS_THUMBNAIL_WIDTH' => $_ARRAYLANG['TXT_ACCESS_THUMBNAIL_WIDTH'], 'TXT_ACCESS_THUMBNAIL_HEIGHT' => $_ARRAYLANG['TXT_ACCESS_THUMBNAIL_HEIGHT'], 'TXT_ACCESS_MAX_THUMBNAIL_WIDTH' => $_ARRAYLANG['TXT_ACCESS_MAX_THUMBNAIL_WIDTH'], 'TXT_ACCESS_MAX_THUMBNAIL_HEIGHT' => $_ARRAYLANG['TXT_ACCESS_MAX_THUMBNAIL_HEIGHT'], 'TXT_ACCESS_PICTURES' => $_ARRAYLANG['TXT_ACCESS_PICTURES'], 'TXT_ACCESS_OTHER_PICTURES' => $_ARRAYLANG['TXT_ACCESS_OTHER_PICTURES'], 'TXT_ACCESS_MISCELLANEOUS' => $_ARRAYLANG['TXT_ACCESS_MISCELLANEOUS'], 'TXT_ACCESS_STANDARD' => $_ARRAYLANG['TXT_ACCESS_STANDARD'], 'TXT_ACCESS_EMAIL' => $_ARRAYLANG['TXT_ACCESS_EMAIL'], 'TXT_ACCESS_SESSION_ON_INTERVAL' => $_ARRAYLANG['TXT_ACCESS_SESSION_ON_INTERVAL'], 'TXT_ACCESS_SESSION_DESCRIPTION' => $_ARRAYLANG['TXT_ACCESS_SESSION_DESCRIPTION'], 'TXT_ACCESS_SESSION_TITLE' => $_ARRAYLANG['TXT_ACCESS_SESSION_TITLE'], 'TXT_ACCESS_USE_SELECTED_ACCESS_FOR_EVERYONE' => $_ARRAYLANG['TXT_ACCESS_USE_SELECTED_ACCESS_FOR_EVERYONE'], 'TXT_ACCESS_CROP_THUMBNAIL_TXT' => $_ARRAYLANG['TXT_ACCESS_CROP_THUMBNAIL_TXT'], 'TXT_ACCESS_SCALE_THUMBNAIL_TXT' => $_ARRAYLANG['TXT_ACCESS_SCALE_THUMBNAIL_TXT'], 'TXT_ACCESS_BACKGROUND_COLOR' => $_ARRAYLANG['TXT_ACCESS_BACKGROUND_COLOR'], 'TXT_ACCESS_THUMBNAIL_GENERATION' => $_ARRAYLANG['TXT_ACCESS_THUMBNAIL_GENERATION'], 'TXT_ACCESS_USE_USERNAMES' => $_ARRAYLANG['TXT_ACCESS_USE_USERNAMES'], 'TXT_ACCESS_USE_USERNAMES_TOOLTIP' => $_ARRAYLANG['TXT_ACCESS_USE_USERNAMES_TOOLTIP'], 'TXT_ACCESS_SOCIALLOGIN_INFORMATION_TITLE' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_INFORMATION_TITLE'], 'TXT_ACCESS_DESCRIPTION' => $_ARRAYLANG['TXT_ACCESS_DESCRIPTION'], 'TXT_ACCESS_SOCIALLOGIN_DESCRIPTION' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_DESCRIPTION'], 'TXT_ACCESS_SOCIALLOGIN' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN'], 'TXT_ACCESS_ENABLE_SOCIALLOGIN' => $_ARRAYLANG['TXT_ACCESS_ENABLE_SOCIALLOGIN'], 'TXT_ACCESS_SOCIALLOGIN_PROVIDERS' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_PROVIDERS'], 'TXT_ACCESS_SOCIALLOGIN_SHOW_SIGN_UP' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_SHOW_SIGN_UP'], 'TXT_ACCESS_SOCIALLOGIN_SHOW_SIGN_UP_TOOLTIP' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_SHOW_SIGN_UP_TOOLTIP'], 'TXT_ACCESS_GROUP_ASSOCIATION_TEXT' => $_ARRAYLANG['TXT_ACCESS_GROUP_ASSOCIATION_TEXT'], 'TXT_ACCESS_AVAILABLE_GROUPS' => $_ARRAYLANG['TXT_ACCESS_AVAILABLE_GROUPS'], 'TXT_ACCESS_CHECK_ALL' => $_ARRAYLANG['TXT_ACCESS_CHECK_ALL'], 'TXT_ACCESS_UNCHECK_ALL' => $_ARRAYLANG['TXT_ACCESS_UNCHECK_ALL'], 'TXT_ACCESS_ASSOCIATED_GROUPS' => $_ARRAYLANG['TXT_ACCESS_ASSOCIATED_GROUPS'], 'TXT_ACCESS_USER_ACCOUNT_ACTIVATION_METHOD_TEXT' => $_ARRAYLANG['TXT_ACCESS_USER_ACCOUNT_ACTIVATION_METHOD_TEXT'], 'TXT_ACCESS_SOCIALLOGIN_ACTIVATED_AUTOMATICALLY' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_ACTIVATED_AUTOMATICALLY'], 'TXT_ACCESS_SOCIALLOGIN_ACTIVATED_NOT_AUTOMATICALLY' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_ACTIVATED_NOT_AUTOMATICALLY'], 'TXT_ACCESS_SOCIALLOGIN_ACTIVATION_TIME' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_ACTIVATION_TIME'], 'TXT_ACCESS_SOCIALLOGIN_UNCOMPLETED_SIGN_UP' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_UNCOMPLETED_SIGN_UP'], 'TXT_ACCESS_USER_ACCOUNT_VERIFICATION' => $_ARRAYLANG['TXT_ACCESS_USER_ACCOUNT_VERIFICATION'], 'TXT_ACCESS_USER_ACCOUNT_VERIFICATION_TEXT' => $_ARRAYLANG['TXT_ACCESS_USER_ACCOUNT_VERIFICATION_TEXT']));
     $this->_objTpl->setGlobalVariable(array('TXT_ACCESS_SOCIALLOGIN_MANUAL' => sprintf($_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_MANUAL'], "http://www.cloudrexx.com/wiki/de/index.php?title=Social_Login")));
     if (isset($_POST['access_save_settings'])) {
         // only administrators are allowed to modify the config
         if (!\Permission::hasAllAccess()) {
             \Permission::noAccess();
         }
         $arrSettings['user_delete_account']['status'] = !empty($_POST['access_permissions_delete_account']) ? intval($_POST['access_permissions_delete_account']) : 0;
         $arrSettings['user_config_profile_access']['status'] = !empty($_POST['access_permissions_profile_access']) ? intval($_POST['access_permissions_profile_access']) : 0;
         $arrSettings['user_config_email_access']['status'] = !empty($_POST['access_permissions_email_access']) ? intval($_POST['access_permissions_email_access']) : 0;
         $arrSettings['sociallogin']['status'] = function_exists('curl_init') && !empty($_POST['access_sociallogin_activate']) ? intval($_POST['access_sociallogin_activate']) : 0;
         $arrSettings['use_usernames']['status'] = !empty($_POST['access_permissions_use_usernames']) ? intval($_POST['access_permissions_use_usernames']) : 0;
         $arrSettings['sociallogin_show_signup']['status'] = !empty($_POST['access_sociallogin_show_signup']) ? intval($_POST['access_sociallogin_show_signup']) : 0;
         $arrSettings['sociallogin_assign_to_groups']['value'] = isset($_POST['access_user_associated_groups']) ? implode(',', $_POST['access_user_associated_groups']) : '';
         $arrSettings['sociallogin_active_automatically']['status'] = !empty($_POST['sociallogin_active_automatically']) ? intval($_POST['sociallogin_active_automatically']) : 0;
         $arrSettings['sociallogin_activation_timeout']['value'] = !empty($_POST['sociallogin_activation_timeout']) ? intval($_POST['sociallogin_activation_timeout']) : 10;
         $arrSettings['default_profile_access']['value'] = isset($_POST['access_user_profile_access']) && in_array($_POST['access_user_profile_access'], array('everyone', 'members_only', 'nobody')) ? $_POST['access_user_profile_access'] : 'members_only';
         $arrSettings['default_email_access']['value'] = isset($_POST['access_user_email_access']) && in_array($_POST['access_user_email_access'], array('everyone', 'members_only', 'nobody')) ? $_POST['access_user_email_access'] : 'members_only';
         if (!empty($_POST['access_blocks_currently_online_users'])) {
             $arrSettings['block_currently_online_users']['status'] = 1;
             $arrSettings['block_currently_online_users']['value'] = !empty($_POST['access_blocks_currently_online_users_user_count']) ? intval($_POST['access_blocks_currently_online_users_user_count']) : 0;
             $arrSettings['block_currently_online_users_pic']['status'] = !empty($_POST['access_blocks_currently_online_users_only_with_photo']) && intval($_POST['access_blocks_currently_online_users_only_with_photo']);
         } else {
             $arrSettings['block_currently_online_users']['status'] = 0;
         }
         if (!empty($_POST['access_blocks_last_active_users'])) {
             $arrSettings['block_last_active_users']['status'] = 1;
             $arrSettings['block_last_active_users']['value'] = !empty($_POST['access_blocks_last_active_users_user_count']) ? intval($_POST['access_blocks_last_active_users_user_count']) : 0;
             $arrSettings['block_last_active_users_pic']['status'] = !empty($_POST['access_blocks_last_active_users_only_with_photo']) && intval($_POST['access_blocks_last_active_users_only_with_photo']);
         } else {
             $arrSettings['block_last_active_users']['status'] = 0;
         }
         if (!empty($_POST['access_blocks_latest_registered_users'])) {
             $arrSettings['block_latest_reg_users']['status'] = 1;
             $arrSettings['block_latest_reg_users']['value'] = !empty($_POST['access_blocks_latest_registered_users_user_count']) ? intval($_POST['access_blocks_latest_registered_users_user_count']) : 0;
             $arrSettings['block_latest_reg_users_pic']['status'] = !empty($_POST['access_blocks_latest_registered_users_only_with_photo']) && intval($_POST['access_blocks_latest_registered_users_only_with_photo']);
         } else {
             $arrSettings['block_latest_reg_users']['status'] = 0;
         }
         if (!empty($_POST['access_blocks_birthday_users'])) {
             $arrSettings['block_birthday_users']['status'] = 1;
             $arrSettings['block_birthday_users']['value'] = !empty($_POST['access_blocks_birthday_users_user_count']) ? intval($_POST['access_blocks_birthday_users_user_count']) : 0;
             $arrSettings['block_birthday_users_pic']['status'] = !empty($_POST['access_blocks_birthday_users_only_with_photo']) && intval($_POST['access_blocks_birthday_users_only_with_photo']);
         } else {
             $arrSettings['block_birthday_users']['status'] = 0;
         }
         if (!empty($_POST['accessMaxProfilePicWidth'])) {
             $arrSettings['max_profile_pic_width']['value'] = intval($_POST['accessMaxProfilePicWidth']);
         }
         if (!empty($_POST['accessMaxProfilePicHeight'])) {
             $arrSettings['max_profile_pic_height']['value'] = intval($_POST['accessMaxProfilePicHeight']);
         }
         if (!empty($_POST['accessProfileThumbnailPicWidth'])) {
             $arrSettings['profile_thumbnail_pic_width']['value'] = intval($_POST['accessProfileThumbnailPicWidth']);
         }
         if (!empty($_POST['accessProfileThumbnailPicHeight'])) {
             $arrSettings['profile_thumbnail_pic_height']['value'] = intval($_POST['accessProfileThumbnailPicHeight']);
         }
         if (!empty($_POST['accessMaxProfilePicSize'])) {
             // TODO
             //                if (\FWSystem::getBytesOfLiteralSizeFormat($_POST['accessMaxProfilePicSize']) != $arrSettings['max_profile_pic_size']['value']) {
             //                    // resize profile pics
             //                }
             $arrSettings['max_profile_pic_size']['value'] = \FWSystem::getBytesOfLiteralSizeFormat($_POST['accessMaxProfilePicSize']);
         }
         if (isset($_POST['accessProfileThumbnailMethod']) && $_POST['accessProfileThumbnailMethod'] == 'scale') {
             $arrSettings['profile_thumbnail_method']['value'] = 'scale';
             $color = !empty($_POST['accessProfileThumbnailScaleColor']) ? contrexx_input2raw($_POST['accessProfileThumbnailScaleColor']) : NULL;
             $arrSettings['profile_thumbnail_scale_color']['value'] = $this->validateHexRGBColor($color);
         } else {
             $arrSettings['profile_thumbnail_method']['value'] = 'crop';
         }
         if (!empty($_POST['accessMaxPicWidth'])) {
             $arrSettings['max_pic_width']['value'] = intval($_POST['accessMaxPicWidth']);
         }
         if (!empty($_POST['accessMaxPicHeight'])) {
             $arrSettings['max_pic_height']['value'] = intval($_POST['accessMaxPicHeight']);
         }
         if (!empty($_POST['accessMaxThumbnailPicWidth'])) {
             $arrSettings['max_thumbnail_pic_width']['value'] = intval($_POST['accessMaxThumbnailPicWidth']);
         }
         if (!empty($_POST['accessMaxThumbnailPicHeight'])) {
             $arrSettings['max_thumbnail_pic_height']['value'] = intval($_POST['accessMaxThumbnailPicHeight']);
         }
         // user_account_verification is a checkbox, if this is not set, its not checked. If it is set, it is checked
         // 0 = unchecked, false, 1 = checked, active, true
         $arrSettings['user_account_verification']['value'] = 0;
         if (isset($_POST['user_account_verification'])) {
             $arrSettings['user_account_verification']['value'] = 1;
         }
         if (!empty($_POST['accessMaxPicSize'])) {
             // TODO
             //                if (\FWSystem::getBytesOfLiteralSizeFormat($_POST['accessMaxPicSize']) != $arrSettings['max_pic_size']['value']) {
             //                    // resize pics
             //                }
             $arrSettings['max_pic_size']['value'] = \FWSystem::getBytesOfLiteralSizeFormat($_POST['accessMaxPicSize']);
         }
         $session_on_interval = intval($_POST['sessioninterval']);
         if (trim($session_on_interval) != null) {
             if ($session_on_interval >= 0 && $session_on_interval <= 300) {
                 $arrSettings['session_user_interval']['value'] = $session_on_interval;
             }
         }
         if (!empty($_POST["sociallogin_providers"])) {
             \Cx\Lib\SocialLogin::updateProviders($_POST["sociallogin_providers"]);
         }
         if ($status) {
             if (\User_Setting::setSettings($arrSettings)) {
                 self::$arrStatusMsg['ok'][] = $_ARRAYLANG['TXT_ACCESS_CONFIG_SUCCESSFULLY_SAVED'];
                 if (!empty($_POST['access_force_selected_profile_access'])) {
                     if (!\User::forceDefaultProfileAccess()) {
                         self::$arrStatusMsg['error'][] = $_ARRAYLANG['TXT_ACCESS_SET_DEFAULT_PROFILE_ACCESS_FAILED'];
                     }
                 }
                 if (!empty($_POST['access_force_selected_email_access'])) {
                     if (!\User::forceDefaultEmailAccess()) {
                         self::$arrStatusMsg['error'][] = $_ARRAYLANG['TXT_ACCESS_SET_DEFAULT_EMAIL_ACCESS_FAILED'];
                     }
                 }
             } else {
                 self::$arrStatusMsg['error'][] = $_ARRAYLANG['TXT_ACCESS_CONFIG_FAILED_SAVED'];
                 self::$arrStatusMsg['error'][] = $_ARRAYLANG['TXT_ACCESS_TRY_TO_REPEAT_OPERATION'];
             }
         }
     }
     $curlAvailable = true;
     try {
         $socialloginProviders = \Cx\Lib\SocialLogin::getProviders();
     } catch (\Exception $e) {
         if (!function_exists('curl_init')) {
             $this->_objTpl->setVariable('TXT_ACCESS_SOCIALLOGIN_WARNING', $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_NEED_CURL']);
             $this->_objTpl->parse('sociallogin_need_curl');
             $curlAvailable = false;
         }
     }
     if ($curlAvailable) {
         $this->_objTpl->touchBlock('access_sociallogin_settings');
     } else {
         $this->_objTpl->hideBlock('access_sociallogin_settings');
     }
     // if the current user is no admin, show a message
     $currentUserIsAdmin = \FWUser::getFWUserObject()->objUser->getAdminStatus();
     if (!$currentUserIsAdmin) {
         $this->_objTpl->setVariable('TXT_ACCESS_SOCIALLOGIN_PERMISSION_DENIED', $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_PERMISSION_DENIED']);
         $this->_objTpl->parse('access_sociallogin_permission_denied');
     }
     $socialloginProviderRow = 0;
     foreach ($socialloginProviders as $socialloginProviderName => $providerObject) {
         $settings = $providerObject->getApplicationData();
         $paramId = 0;
         if ($currentUserIsAdmin) {
             foreach (call_user_func(\Cx\Lib\SocialLogin::getClassByProvider($socialloginProviderName) . '::configParams') as $configParam) {
                 $this->_objTpl->setVariable(array('TXT_ACCESS_SOCIALLOGIN_PROVIDER_PARAM_TITLE' => $_ARRAYLANG[$configParam], 'ACCESS_SOCIALLOGIN_PROVIDER_PARAM_VALUE' => contrexx_raw2xhtml(!empty($settings[$paramId]) ? $settings[$paramId] : ''), 'ACCESS_SOCIALLOGIN_PROVIDER_TOGGLE' => $providerObject->isActive() ? '' : 'none', 'ACCESS_SOCIALLOGIN_PROVIDER_NAME' => contrexx_raw2xhtml($socialloginProviderName), 'ACCESS_SOCIALLOGIN_PROVIDER_NAME_UPPER' => contrexx_raw2xhtml(ucfirst($socialloginProviderName))));
                 $this->_objTpl->parse('access_sociallogin_provider_params');
                 $paramId++;
             }
         }
         $this->_objTpl->setVariable(array('ACCESS_SOCIALLOGIN_PROVIDER_ROW' => $socialloginProviderRow % 2 == 0 ? 1 : 2, 'ACCESS_SOCIALLOGIN_PROVIDER_NAME' => contrexx_raw2xhtml($socialloginProviderName), 'ACCESS_SOCIALLOGIN_PROVIDER_NAME_UPPER' => contrexx_raw2xhtml(ucfirst($socialloginProviderName)), 'TXT_ACCESS_SOCIALLOGIN_PROVIDER_ENABLED' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_PROVIDER_ENABLED'], 'ACCESS_SOCIALLOGIN_PROVIDER_ENABLED_CHECKED' => $currentUserIsAdmin && $providerObject->isActive() ? 'checked="checked"' : '', 'ACCESS_SOCIALLOGIN_PROVIDER_DISABLED' => $currentUserIsAdmin ? '' : 'disabled="disabled"'));
         $this->_objTpl->parse('access_sociallogin_provider');
         $socialloginProviderRow++;
     }
     $this->_objTpl->setVariable(array('ACCESS_SOCIALLOGIN_TOGGLE' => $arrSettings['sociallogin']['status'] ? '' : 'none'));
     $arrAssignedGroups = explode(',', $arrSettings['sociallogin_assign_to_groups']['value']);
     $notAssignedGroups = '';
     $assignedGroups = '';
     $objFWUser = \FWUser::getFWUserObject();
     $objGroup = $objFWUser->objGroup->getGroups();
     while (!$objGroup->EOF) {
         $groupVar = in_array($objGroup->getId(), $arrAssignedGroups) ? 'assignedGroups' : 'notAssignedGroups';
         ${$groupVar} .= '<option value="' . $objGroup->getId() . '">' . contrexx_raw2xhtml($objGroup->getName()) . ' [' . $objGroup->getType() . ']</option>';
         $objGroup->next();
     }
     $this->_objTpl->setVariable(array('ACCESS_USER_NOT_ASSOCIATED_GROUPS' => $notAssignedGroups, 'ACCESS_USER_ASSOCIATED_GROUPS' => $assignedGroups));
     $this->parseAccountAttribute(null, 'profile_access', true, $arrSettings['default_profile_access']['value']);
     $this->parseAccountAttribute(null, 'email_access', true, $arrSettings['default_email_access']['value']);
     $this->_objTpl->setVariable(array('ACCESS_ALLOW_USERS_DELETE_ACCOUNT' => $arrSettings['user_delete_account']['status'] ? 'checked="checked"' : '', 'ACCESS_DONT_ALLOW_USERS_DELETE_ACCOUNT' => $arrSettings['user_delete_account']['status'] ? '' : 'checked="checked"', 'ACCESS_ALLOW_USERS_SET_PROFILE_ACCESS' => $arrSettings['user_config_profile_access']['status'] ? 'checked="checked"' : '', 'ACCESS_DONT_ALLOW_USERS_SET_PROFILE_ACCESS' => $arrSettings['user_config_profile_access']['status'] ? '' : 'checked="checked"', 'ACCESS_ALLOW_USERS_SET_EMAIL_ACCESS' => $arrSettings['user_config_email_access']['status'] ? 'checked="checked"' : '', 'ACCESS_DONT_ALLOW_USERS_SET_EMAIL_ACCESS' => $arrSettings['user_config_email_access']['status'] ? '' : 'checked="checked"', 'ACCESS_BLOCKS_CURRENTLY_ONLINE_USERS' => $arrSettings['block_currently_online_users']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_CURRENTLY_ONLINE_USERS_DISPLAY' => $arrSettings['block_currently_online_users']['status'] ? '' : 'none', 'ACCESS_BLOCKS_CURRENTLY_ONLINE_USERS_USER_COUNT' => $arrSettings['block_currently_online_users']['value'], 'ACCESS_BLOCKS_CURRENTLY_ONLINE_USERS_ONLY_WITH_PHOTO' => $arrSettings['block_currently_online_users_pic']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_LAST_ACTIVE_USERS' => $arrSettings['block_last_active_users']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_LAST_ACTIVE_USERS_DISPLAY' => $arrSettings['block_last_active_users']['status'] ? '' : 'none', 'ACCESS_BLOCKS_LAST_ACTIVE_USERS_USER_COUNT' => $arrSettings['block_last_active_users']['value'], 'ACCESS_BLOCKS_LAST_ACTIVE_USERS_ONLY_WITH_PHOTO' => $arrSettings['block_last_active_users_pic']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_LATEST_REGISTERED_USERS' => $arrSettings['block_latest_reg_users']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_LATEST_REGISTERED_USERS_DISPLAY' => $arrSettings['block_latest_reg_users']['status'] ? '' : 'none', 'ACCESS_BLOCKS_LATEST_REGISTERED_USERS_USER_COUNT' => $arrSettings['block_latest_reg_users']['value'], 'ACCESS_BLOCKS_LATEST_REGISTERED_USERS_ONLY_WITH_PHOTO' => $arrSettings['block_latest_reg_users_pic']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_BIRTHDAY_USERS' => $arrSettings['block_birthday_users']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_BIRTHDAY_USERS_DISPLAY' => $arrSettings['block_birthday_users']['status'] ? '' : 'none', 'ACCESS_BLOCKS_BIRTHDAY_USERS_USER_COUNT' => $arrSettings['block_birthday_users']['value'], 'ACCESS_BLOCKS_BIRTHDAY_USERS_ONLY_WITH_PHOTO' => $arrSettings['block_birthday_users_pic']['status'] ? 'checked="checked"' : '', 'ACCESS_MAX_PROFILE_PIC_WIDTH' => $arrSettings['max_profile_pic_width']['value'], 'ACCESS_MAX_PROFILE_PIC_HEIGHT' => $arrSettings['max_profile_pic_height']['value'], 'ACCESS_PROFILE_THUMBNAIL_PIC_WIDTH' => $arrSettings['profile_thumbnail_pic_width']['value'], 'ACCESS_PROFILE_THUMBNAIL_PIC_HEIGHT' => $arrSettings['profile_thumbnail_pic_height']['value'], 'ACCESS_MAX_PROFILE_PIC_SIZE' => \FWSystem::getLiteralSizeFormat($arrSettings['max_profile_pic_size']['value']), 'ACCESS_MAX_PIC_WIDTH' => $arrSettings['max_pic_width']['value'], 'ACCESS_MAX_PIC_HEIGHT' => $arrSettings['max_pic_height']['value'], 'ACCESS_MAX_THUMBNAIL_PIC_WIDTH' => $arrSettings['max_thumbnail_pic_width']['value'], 'ACCESS_MAX_THUMBNAIL_PIC_HEIGHT' => $arrSettings['max_thumbnail_pic_height']['value'], 'ACCESS_SESSION_USER_INTERVAL' => $arrSettings['session_user_interval']['value'], 'ACCESS_MAX_PIC_SIZE' => \FWSystem::getLiteralSizeFormat($arrSettings['max_pic_size']['value']), 'ACCESS_PROFILE_THUMBNAIL_CROP' => $arrSettings['profile_thumbnail_method']['value'] == 'crop' ? 'selected="selected"' : '', 'ACCESS_PROFILE_THUMBNAIL_SCALE' => $arrSettings['profile_thumbnail_method']['value'] == 'scale' ? 'selected="selected"' : '', 'ACCESS_PROFILE_THUMBNAIL_SCALE_BOX' => $arrSettings['profile_thumbnail_method']['value'] == 'scale' ? 'inline' : 'none', 'ACCESS_PROFILE_THUMBNAIL_SCALE_COLOR' => $arrSettings['profile_thumbnail_scale_color']['value'], 'ACCESS_USE_USERNAMES' => $arrSettings['use_usernames']['status'] ? 'checked="checked"' : '', 'ACCESS_DONT_USE_USERNAMES' => $arrSettings['use_usernames']['status'] ? '' : 'checked="checked"', 'ACCESS_SOCIALLOGIN_ENABLED' => $arrSettings['sociallogin']['status'] ? 'checked="checked"' : '', 'ACCESS_SOCIALLOGIN_NOT_ENABLED' => $arrSettings['sociallogin']['status'] ? '' : 'checked="checked"', 'ACCESS_SOCIALLOGIN_SHOW_SIGNUP_ENABLED' => $arrSettings['sociallogin_show_signup']['status'] ? 'checked="checked"' : '', 'ACCESS_SOCIALLOGIN_SHOW_SIGNUP_NOT_ENABLED' => $arrSettings['sociallogin_show_signup']['status'] ? '' : 'checked="checked"', 'ACCESS_SOCIALLOGIN_ACTIVATED_AUTOMATICALLY_ENABLED' => $arrSettings['sociallogin_active_automatically']['status'] ? 'checked="checked"' : '', 'ACCESS_SOCIALLOGIN_ACTIVATED_AUTOMATICALLY_NOT_ENABLED' => $arrSettings['sociallogin_active_automatically']['status'] ? '' : 'checked="checked"', 'ACCESS_SOCIALLOGIN_ACTIVATION_TIMEOUT' => intval($arrSettings['sociallogin_activation_timeout']['value']), 'ACCESS_USSER_ACCOUNT_VERIFICATION_CHECKED' => $arrSettings['user_account_verification']['value'] == 1 ? 'checked' : ''));
     $this->_objTpl->parse('module_access_config_general');
 }
 /**
  * Create an Image
  * @param     string        $strPathOld: The old path of the image
  * @param     string        $strPathNew: The new path for the created image
  * @param     string        $strFileOld: The name of the old file
  * @param     string        $strFileNew: The name of the new file
  * @param     integer        $intNewWidth: Width of the new image
  * @param     integer        $intNewHeight: Height of the new image
  * @param     integer        $intQuality: Quality of the new image
  */
 function createImages_JPG_GIF_PNG($strPathOld, $strPathNew, $strFileOld, $strFileNew, $intNewWidth, $intNewHeight, $intQuality)
 {
     global $_ARRAYLANG;
     //TODO: sometimes, strings are passed... this is a workaround
     $intNewWidth = intval($intNewWidth);
     $intNewHeight = intval($intNewHeight);
     //copy image
     $intSize = getimagesize($strPathOld . $strFileOld);
     //ermittelt die Gr��e des Bildes
     $intWidth = $intSize[0];
     //die Breite des Bildes
     $intHeight = $intSize[1];
     //die H�he des Bildes
     $strType = $intSize[2];
     //type des Bildes
     if (file_exists($strPathNew . $strFileNew)) {
         \Cx\Lib\FileSystem\FileSystem::makeWritable($strPathNew . $strFileNew);
     } else {
         try {
             $objFile = new \Cx\Lib\FileSystem\File($strPathNew . $strFileNew);
             $objFile->touch();
             $objFile->makeWritable();
         } catch (\Cx\Lib\FileSystem\FileSystemException $e) {
             \DBG::msg($e->getMessage());
         }
     }
     // TODO: Unfortunately, the functions imagegif(), imagejpeg() and imagepng() can't use the Cloudrexx FileSystem wrapper,
     //       therefore we need to set the global write access image files.
     //       This issue might be solved by using the output-buffer and write the image manually afterwards.
     //
     //       IMPORTANT: In case something went wrong (see bug #1441) and the path $strPathNew.$strFileNew refers to a directory
     //       we must abort the operation here, otherwise we would remove the execution flag on a directory, which would
     //       cause to remove any browsing access to the directory.
     if (is_dir($strPathNew . $strFileNew)) {
         return false;
     }
     \Cx\Lib\FileSystem\FileSystem::chmod($strPathNew . $strFileNew, 0666);
     //\Cx\Lib\FileSystem\FileSystem::CHMOD_FILE);
     //fix cases of zeroes
     if ($intNewWidth == 0) {
         if ($intNewHeight == 0) {
             $intNewHeight = $this->arrSettings['standard_height_abs'];
         }
         if ($intNewHeight == 0) {
             //set a standard value if the settings default to 0
             $intNewHeight = 100;
         }
         $intNewWidth = round($intWidth * $intNewHeight / $intHeight, 0);
     } else {
         if ($intNewHeight == 0) {
             $intNewHeight = round($intHeight * $intNewWidth / $intWidth, 0);
         }
     }
     $objSystem = new \FWSystem();
     if ($objSystem === false) {
         return false;
     }
     if (is_array($intSize)) {
         $memoryLimit = $objSystem->getBytesOfLiteralSizeFormat(@ini_get('memory_limit'));
         // a $memoryLimit of zero means that there is no limit. so let's try it and hope that the host system has enough memory
         if (!empty($memoryLimit)) {
             $potentialRequiredMemory = $intSize[0] * $intSize[1] * ($intSize['bits'] / 8) * $intSize['channels'] * 1.8 * 2;
             if (function_exists('memory_get_usage')) {
                 $potentialRequiredMemory += memory_get_usage();
             } else {
                 // add a default of 10 MBytes
                 $potentialRequiredMemory += 10 * pow(1024, 2);
             }
             if ($potentialRequiredMemory > $memoryLimit) {
                 // try to set a higher memory_limit
                 @ini_set('memory_limit', $potentialRequiredMemory);
                 $curr_limit = $objSystem->getBytesOfLiteralSizeFormat(@ini_get('memory_limit'));
                 if ($curr_limit < $potentialRequiredMemory) {
                     return false;
                 }
             }
         }
     } else {
         return false;
     }
     switch ($strType) {
         case 1:
             //GIF
             if ($this->boolGifEnabled) {
                 $handleImage1 = ImageCreateFromGif($strPathOld . $strFileOld);
                 $handleImage2 = @ImageCreateTrueColor($intNewWidth, $intNewHeight);
                 ImageCopyResampled($handleImage2, $handleImage1, 0, 0, 0, 0, $intNewWidth, $intNewHeight, $intWidth, $intHeight);
                 ImageGif($handleImage2, $strPathNew . $strFileNew);
                 ImageDestroy($handleImage1);
                 ImageDestroy($handleImage2);
             } else {
                 $this->strErrMessage = $_ARRAYLANG['TXT_GALLERY_NO_GIF_SUPPORT'];
             }
             break;
         case 2:
             //JPG
             if ($this->boolJpgEnabled) {
                 $handleImage1 = ImageCreateFromJpeg($strPathOld . $strFileOld);
                 $handleImage2 = ImageCreateTrueColor($intNewWidth, $intNewHeight);
                 ImageCopyResampled($handleImage2, $handleImage1, 0, 0, 0, 0, $intNewWidth, $intNewHeight, $intWidth, $intHeight);
                 ImageJpeg($handleImage2, $strPathNew . $strFileNew, $intQuality);
                 ImageDestroy($handleImage1);
                 ImageDestroy($handleImage2);
             } else {
                 $this->strErrMessage = $_ARRAYLANG['TXT_GALLERY_NO_JPG_SUPPORT'];
             }
             break;
         case 3:
             //PNG
             if ($this->boolPngEnabled) {
                 $handleImage1 = ImageCreateFromPNG($strPathOld . $strFileOld);
                 $handleImage2 = @ImageCreateTrueColor($intNewWidth, $intNewHeight);
                 ImageAlphaBlending($handleImage2, false);
                 ImageSaveAlpha($handleImage2, true);
                 ImageCopyResampled($handleImage2, $handleImage1, 0, 0, 0, 0, $intNewWidth, $intNewHeight, $intWidth, $intHeight);
                 ImagePNG($handleImage2, $strPathNew . $strFileNew);
                 ImageDestroy($handleImage1);
                 ImageDestroy($handleImage2);
             } else {
                 $this->strErrMessage = $_ARRAYLANG['TXT_GALLERY_NO_PNG_SUPPORT'];
             }
             break;
     }
     return true;
 }