Index: install/prerequisites.php =================================================================== --- install/prerequisites.php (revision 15549) +++ install/prerequisites.php (working copy) @@ -144,9 +144,8 @@ $ret['display_errors'] = $this->isPhpSettingChangeable('display_errors', '1'); $ret['error_reporting'] = $this->canChangeErrorReporting(); $ret['date.timezone'] = ini_get('date.timezone') != ''; + $ret['variables_order'] = $this->_hasLetters(ini_get('variables_order'), Array ('G', 'P', 'C', 'S')); - $ret['variables_order'] = strpos(ini_get('variables_order'), 'GPC') !== false; - $output_buffering = strtolower(ini_get('output_buffering')); $ret['output_buffering'] = $output_buffering == 'on' || $output_buffering > 0; @@ -154,6 +153,21 @@ } /** + * Determines of a setting string has all given letters (ignoring order) in it + * + * @param string $setting + * @param Array $search_letters + * @return bool + * @access protected + */ + protected function _hasLetters($setting, $search_letters) + { + $setting = preg_replace('/(' . implode('|', $search_letters) . ')/', '*', $setting); + + return substr_count($setting, '*') == count($search_letters); + } + + /** * Detects if error reporting can be changed at runtime * * @return bool Index: install/step_templates/sys_requirements.tpl =================================================================== --- install/step_templates/sys_requirements.tpl (revision 15549) +++ install/step_templates/sys_requirements.tpl (working copy) @@ -11,26 +11,26 @@ '; $check_titles = Array ( - 'php_version' => 'PHP version: 5.2.0+ (required)', - 'url_rewriting' => 'URL Rewriting Support (optional)', - 'java' => 'Java (optional)', + 'php_version' => 'PHP version 5.2.0 or above*', + 'url_rewriting' => 'URL rewriting support', + 'java' => 'Java template compression', 'sep1' => 'PHP extensions:', - 'memcache' => '- Memcache (optional)', - 'curl' => '- Curl (required)', - 'simplexml' => '- SimpleXML (required)', - 'spl' => '- Standard PHP Library (required)', - 'freetype' => '- Freetype (required)', - 'gd_version' => '- GD 1.8+ (required)', - 'jpeg' => '- JPEG (required)', - 'mysql' => '- MySQL (required)', - 'json' => '- JSON (required)', + 'memcache' => '- Memory caching support', + 'curl' => '- Accessing remote resources (via cURL)*', + 'simplexml' => '- XML document processing (via SimpleXML)*', + 'spl' => '- Standard PHP Library (SPL)*', + 'freetype' => '- TrueType font support (via Freetype)*', + 'gd_version' => '- GD Graphics Library 1.8 or above*', + 'jpeg' => '- JPEG images support*', + 'mysql' => '- Database connectivity (via MySQL)*', + 'json' => '- JSON processing support*', 'sep2' => 'PHP settings:', - 'memory_limit' => "- ini_set('memory_limit', ...) works (optional)", - 'display_errors' => "- ini_set('display_errors', ...) works (optional)", - 'error_reporting' => "- error_reporting(...) works (optional)", - 'date.timezone' => "- ini_get('date.timezone') - timezone set (required)", - 'variables_order' => "- ini_get('variables_order') - contains \"GPC\" string", - 'output_buffering' => "- ini_get('output_buffering') > 0 - works (required)", + 'memory_limit' => "- Memory requirements changing on the fly", + 'display_errors' => "- Prevent script errors in production environment", + 'error_reporting' => "- Change error detalization level", + 'date.timezone' => "- Web server timezone is explicitly set*", + 'variables_order' => '- Needed super-global arrays registered', + 'output_buffering' => "- Script output buffering enabled*", ); $output = sprintf($heading_tpl, 'Server-side requirements'); Index: install/steps_db.xml =================================================================== --- install/steps_db.xml (revision 15569) +++ install/steps_db.xml (working copy) @@ -219,6 +219,112 @@ For example, if you enter "inp_" into the prefix field, the table named Categories will be named inp_Categories.

]]> - System Requirements Check option should be used to ensure proper system behavior in the current environment.]]> + The System Requirements Check option should be used to ensure proper system behavior in the current environment.

+

+ PHP version 5.2.0 or above*
+ Use this PHP version or better to ensure normal website operation on every day basis. +

+

+ URL rewriting support
+ Allows to build nice looking SEO urls without specifying "/index.php" in each of them. +

+

+ Java template compression
+ When Java is installed on web server, then it's possible to use YUI Compressor + to minify HTML, CSS and JavaScript output of website. This allows to make websites, which opens even faster, then before. +

+

+ Memory caching support
+ When available use Memcached memory object caching system for data caching. + Will severely improve website performance under heavy load and page loading speed in general. +

+

+ Accessing remote resources (via cURL)
+ Allows to perform data retrieval from other websites (e.g. rss feeds) in background. Data retrieval internally is done + using cURL library, that must be installed on web server. +

+

+ XML document processing (via SimpleXML)*
+ In-Portal uses XML files to store module/theme meta data. This + library is used keep In-Portal + code clean as fast even, when processing XML files. +

+

+ Standard PHP Library (SPL)*
+ Usage of this library guarantees memory + efficient way to manage files and data structures across In-Portal. +

+

+ TrueType font support (via Freetype)*
+ This library allows to use TrueType fonts inside produced images. In particular it's used for Captcha code generation. +

+

+ GD Graphics Library 1.8 or above*
+ This library is used to perform various manipulations (e.g. resize, crop, etc.) + on user-uploaded images. +

+

+ JPEG images support*
+ Support image manipulations on user-uploaded images *.jpg and *.jpeg file extensions. +

+

+ Database connectivity (via MySQL)*
+ In-Portal uses MySQL database as it's persistent data storage. +

+

+ JSON processing support*
+ JSON data format is used to implement AJAX + approach and perform complete page reload only, when necessary. +

+

+ Memory requirements changing on the fly
+ In-Portal requires at least 16 megabytes of memory to operate normally. However some resource consuming + operations (like link validation) might consume more memory, then usual. To ensure, that such operations + never fail In-Portal changes maximally allowed memory limit on the fly. See + memory_limit setting + for more info. +

+

+ Prevent script errors in production environment
+ Prevents any errors to be shown on website, that might happen due incorrect web server configuration. See + display_errors setting + for more info. +

+

+ Change error detalization level
+ Ensures, that all error types are shown in development environment and none in production environment. See + error_reporting setting + for more info. +

+

+ Web server timezone is explicitly set*
+ Web server timezone must be set explicitly to ensure correct date/time calculations and display across the website. + See date.timezone + setting for more info. +

+

+ Needed super-global arrays registered
+ Internally In-Portal relies on super-global array (e.g. $_SERVER, $_POST, etc.) presense inside a script. To make that happen + variables_order setting must contain + following letters: "G", "P", "C", "S". +

+

+ Script output buffering enabled*
+ Output buffering is needed to allow usage of GZIP compression of page output. See + output_buffering + setting for more info. +

+

+ Cookies enabled
+ However In-Portal can work without cookies (by adding ?sid=XXXXXXXX into each page url), but it's strongly + advised to use cookies-enabled web browser for better user expirience. +

+

+ JavaScript enabled
+ JavaScript might not be required on Front-End (depends on used theme), but it must be enabled in web browser + during installation and Admin Console usage. +

+ ]]>
\ No newline at end of file