Merge branch 'hotfix/2.5.3'

This commit is contained in:
Yuri Kuznetsov
2014-10-01 11:58:30 +03:00
34 changed files with 901 additions and 345 deletions
+13 -14
View File
@@ -4,23 +4,22 @@
DirectoryIndex index.php index.html
# PROTECTED DIRECTORIES
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule (?i)(data|api) - [F]
</IfModule>
RedirectMatch 403 (?i)/data/config\.php$
RedirectMatch 403 (?i)/data/logs
RedirectMatch 403 (?i)/data/cache
RedirectMatch 403 (?i)/data/upload
RedirectMatch 403 (?i)/application
RedirectMatch 403 (?i)/custom
RedirectMatch 403 (?i)/vendor
#END PROTECTED DIRECTORIES
<IfModule mod_rewrite.c>
RewriteEngine On
# PROTECTED DIRECTORIES
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/?(data|api)/ - [F]
RewriteRule ^/?data/config\.php$ - [F]
RewriteRule ^/?data/logs/ - [F]
RewriteRule ^/?data/cache/ - [F]
RewriteRule ^/?data/upload/ - [F]
RewriteRule ^/?application/ - [F]
RewriteRule ^/?custom/ - [F]
RewriteRule ^/?vendor/ - [F]
#END PROTECTED DIRECTORIES
RewriteRule .* - [E=HTTP_ESPO_CGI_AUTH:%{HTTP:Authorization}]
RewriteRule reset/?$ reset.html [QSA,L]
@@ -29,79 +29,85 @@ class Comparator extends \Doctrine\DBAL\Schema\Comparator
{
public function diffColumn(Column $column1, Column $column2)
{
$changedProperties = array();
if ( $column1->getType() != $column2->getType() ) {
{
$changedProperties = array();
if ( $column1->getType() != $column2->getType() ) {
//espo: fix problem with executing query for custom types
$column1DbTypeName = method_exists($column1->getType(), 'getDbTypeName') ? $column1->getType()->getDbTypeName() : $column1->getType()->getName();
$column2DbTypeName = method_exists($column2->getType(), 'getDbTypeName') ? $column2->getType()->getDbTypeName() : $column2->getType()->getName();
if (strtolower($column1DbTypeName) != strtolower($column2DbTypeName)) {
$changedProperties[] = 'type';
$changedProperties[] = 'type';
}
//END: espo
}
}
if ($column1->getNotnull() != $column2->getNotnull()) {
$changedProperties[] = 'notnull';
}
if ($column1->getNotnull() != $column2->getNotnull()) {
$changedProperties[] = 'notnull';
}
if ($column1->getDefault() != $column2->getDefault()) {
$changedProperties[] = 'default';
}
if ($column1->getDefault() != $column2->getDefault()) {
$changedProperties[] = 'default';
}
if ($column1->getUnsigned() != $column2->getUnsigned()) {
$changedProperties[] = 'unsigned';
}
if ($column1->getUnsigned() != $column2->getUnsigned()) {
$changedProperties[] = 'unsigned';
}
if ($column1->getType() instanceof \Doctrine\DBAL\Types\StringType) {
// check if value of length is set at all, default value assumed otherwise.
$length1 = $column1->getLength() ?: 255;
$length2 = $column2->getLength() ?: 255;
if ($length1 != $length2) {
$changedProperties[] = 'length';
}
if ($column1->getType() instanceof \Doctrine\DBAL\Types\StringType) {
// check if value of length is set at all, default value assumed otherwise.
$length1 = $column1->getLength() ?: 255;
$length2 = $column2->getLength() ?: 255;
if ($column1->getFixed() != $column2->getFixed()) {
$changedProperties[] = 'fixed';
}
}
/** Espo: column length can be increased only */
/*if ($length1 != $length2) {
$changedProperties[] = 'length';
}*/
if ($length2 > $length1) {
$changedProperties[] = 'length';
}
/** Espo: end */
if ($column1->getType() instanceof \Doctrine\DBAL\Types\DecimalType) {
if (($column1->getPrecision()?:10) != ($column2->getPrecision()?:10)) {
$changedProperties[] = 'precision';
}
if ($column1->getScale() != $column2->getScale()) {
$changedProperties[] = 'scale';
}
}
if ($column1->getFixed() != $column2->getFixed()) {
$changedProperties[] = 'fixed';
}
}
if ($column1->getAutoincrement() != $column2->getAutoincrement()) {
$changedProperties[] = 'autoincrement';
}
if ($column1->getType() instanceof \Doctrine\DBAL\Types\DecimalType) {
if (($column1->getPrecision()?:10) != ($column2->getPrecision()?:10)) {
$changedProperties[] = 'precision';
}
if ($column1->getScale() != $column2->getScale()) {
$changedProperties[] = 'scale';
}
}
// only allow to delete comment if its set to '' not to null.
if ($column1->getComment() !== null && $column1->getComment() != $column2->getComment()) {
$changedProperties[] = 'comment';
}
if ($column1->getAutoincrement() != $column2->getAutoincrement()) {
$changedProperties[] = 'autoincrement';
}
$options1 = $column1->getCustomSchemaOptions();
$options2 = $column2->getCustomSchemaOptions();
// only allow to delete comment if its set to '' not to null.
if ($column1->getComment() !== null && $column1->getComment() != $column2->getComment()) {
$changedProperties[] = 'comment';
}
$commonKeys = array_keys(array_intersect_key($options1, $options2));
$options1 = $column1->getCustomSchemaOptions();
$options2 = $column2->getCustomSchemaOptions();
foreach ($commonKeys as $key) {
if ($options1[$key] !== $options2[$key]) {
$changedProperties[] = $key;
}
}
$commonKeys = array_keys(array_intersect_key($options1, $options2));
$diffKeys = array_keys(array_diff_key($options1, $options2) + array_diff_key($options2, $options1));
foreach ($commonKeys as $key) {
if ($options1[$key] !== $options2[$key]) {
$changedProperties[] = $key;
}
}
$changedProperties = array_merge($changedProperties, $diffKeys);
$diffKeys = array_keys(array_diff_key($options1, $options2) + array_diff_key($options2, $options1));
return $changedProperties;
}
$changedProperties = array_merge($changedProperties, $diffKeys);
return $changedProperties;
}
}
@@ -420,7 +420,7 @@ class Permission
$owner = $defaultPermissions['user'];
if (empty($owner) && $usePosix) {
$owner = posix_getuid();
$owner = function_exists('posix_getuid') ? posix_getuid() : null;
}
if (empty($owner)) {
@@ -441,7 +441,7 @@ class Permission
$group = $defaultPermissions['group'];
if (empty($group) && $usePosix) {
$group = posix_getegid();
$group = function_exists('posix_getegid') ? posix_getegid() : null;
}
if (empty($group)) {
+2 -2
View File
@@ -33,9 +33,9 @@ class System
{
$serverSoft = $_SERVER['SERVER_SOFTWARE'];
preg_match('/^(.*)\//i', $serverSoft, $match);
preg_match('/^(.*?)\//i', $serverSoft, $match);
if (empty($match[1])) {
preg_match('/^(.*)\/?/i', $serverSoft, $match);
preg_match('/^(.*?)\/?/i', $serverSoft, $match);
}
$serverName = strtolower( trim($match[1]) );
+1
View File
@@ -0,0 +1 @@
+4
View File
@@ -94,6 +94,10 @@ class Installer
return $this->app->getContainer()->get('fileManager');
}
public function getVersion()
{
return $this->getConfig()->get('version');
}
protected function auth()
{
+98 -55
View File
@@ -1,55 +1,98 @@
<?php
class Language
{
private $defaultLanguage = 'en_US';
private $systemHelper;
public function __construct()
{
require_once 'SystemHelper.php';
$this->systemHelper = new SystemHelper();
}
protected function getSystemHelper()
{
return $this->systemHelper;
}
public function get($language)
{
if (empty($language)) {
$language = $this->defaultLanguage;
}
$langFileName = 'install/core/i18n/'.$language.'/install.json';
if (!file_exists($langFileName)) {
$langFileName = 'install/core/i18n/'.$this->defaultLanguage.'/install.json';
}
$i18n = file_get_contents($langFileName);
$i18n = json_decode($i18n, true);
$this->afterRetrieve($i18n);
return $i18n;
}
/**
* After retrieve actions
*
* @param array $i18n
* @return array $i18n
*/
protected function afterRetrieve(array &$i18n)
{
/** Get rewrite rules */
$serverType = $this->getSystemHelper()->getServerType();
$rewriteRules = $this->getSystemHelper()->getRewriteRules();
$i18n['options']['modRewriteHelp'][$serverType] = str_replace('{0}', $rewriteRules, $i18n['options']['modRewriteHelp'][$serverType]);
}
}
<?php
class Language
{
private $defaultLanguage = 'en_US';
private $systemHelper;
private $data = array();
public function __construct()
{
require_once 'SystemHelper.php';
$this->systemHelper = new SystemHelper();
}
protected function getSystemHelper()
{
return $this->systemHelper;
}
public function get($language)
{
if (isset($this->data[$language])) {
return $this->data[$language];
}
if (empty($language)) {
$language = $this->defaultLanguage;
}
$langFileName = 'install/core/i18n/'.$language.'/install.json';
if (!file_exists($langFileName)) {
$langFileName = 'install/core/i18n/'.$this->defaultLanguage.'/install.json';
}
$i18n = $this->getLangData($langFileName);
if ($language != $this->defaultLanguage) {
$i18n = $this->mergeWithDefaults($i18n);
}
$this->afterRetrieve($i18n);
$this->data[$language] = $i18n;
return $this->data[$language];
}
/**
* Merge current language with default one
*
* @param array $data
* @return array
*/
protected function mergeWithDefaults($data)
{
$defaultLangFile = 'install/core/i18n/'.$this->defaultLanguage.'/install.json';
$defaultData = $this->getLangData($defaultLangFile);
foreach ($data as $categoryName => &$labels) {
foreach ($defaultData[$categoryName] as $defaultLabelName => $defaultLabel) {
if (!isset($labels[$defaultLabelName])) {
$labels[$defaultLabelName] = $defaultLabel;
}
}
}
$data = array_merge($defaultData, $data);
return $data;
}
protected function getLangData($filePath)
{
$data = file_get_contents($filePath);
$data = json_decode($data, true);
return $data;
}
/**
* After retrieve actions
*
* @param array $i18n
* @return array $i18n
*/
protected function afterRetrieve(array &$i18n)
{
/** Get rewrite rules */
$serverType = $this->getSystemHelper()->getServerType();
$rewriteRules = $this->getSystemHelper()->getRewriteRules();
$i18n['options']['modRewriteHelp'][$serverType] = str_replace('{0}', $rewriteRules, $i18n['options']['modRewriteHelp'][$serverType]);
}
}
+154 -64
View File
@@ -24,22 +24,23 @@
class SystemHelper extends \Espo\Core\Utils\System
{
protected $requirements = array(
'phpVersion' => '5.4',
protected $requirements;
'exts' => array(
'json',
'mcrypt',
'pdo_mysql',
),
);
protected $apiPath;
protected $modRewriteUrl = '/api/v1/Metadata';
protected $modRewriteUrl = '/Metadata';
protected $writableDir = 'data';
protected $combineOperator = '&&';
public function __construct()
{
$config = include('config.php');
$this->requirements = $config['requirements'];
$this->apiPath = $config['apiPath'];
}
public function initWritable()
{
@@ -55,7 +56,6 @@ class SystemHelper extends \Espo\Core\Utils\System
return $this->writableDir;
}
public function checkRequirements()
{
$result['success'] = true;
@@ -64,10 +64,10 @@ class SystemHelper extends \Espo\Core\Utils\System
$result['errors']['phpVersion'] = $this->requirements['phpVersion'];
$result['success'] = false;
}
if (!empty($this->requirements['exts'])) {
foreach ($this->requirements['exts'] as $extName) {
if (!empty($this->requirements['phpRequires'])) {
foreach ($this->requirements['phpRequires'] as $extName) {
if (!extension_loaded($extName)) {
$result['errors']['exts'][] = $extName;
$result['errors']['phpRequires'][] = $extName;
$result['success'] = false;
}
}
@@ -77,62 +77,129 @@ class SystemHelper extends \Espo\Core\Utils\System
return $result;
}
public function checkDbConnection($hostName, $port, $dbUserName, $dbUserPass, $dbName, $dbDriver = 'pdo_mysql', $isCreateDatabase = true)
public function getRecommendationList($type = 'php', $data = null)
{
$list = array();
if ($type == 'mysql') {
$pdoConn = $this->getPdoConnection($data['dbHostName'], $data['dbPort'], $data['dbUserName'], $data['dbUserPass'], $data['dbName']);
}
$currentVersion = ($type == 'php') ? PHP_VERSION : $this->getMysqlSetting('version', $pdoConn);
$list[$type . 'Version'] = array(
'current' => $currentVersion,
'required' => $this->requirements[$type . 'Version'],
'acceptable' => true,
);
$recommendations = array_merge($this->requirements[$type . 'Requires'], $this->requirements[$type . 'Recommendations']);
foreach ($recommendations as $name => $requiredValue) {
$isExtension = false;
if (is_int($name)) {
$name = $requiredValue;
$acceptable = extension_loaded($name);
$currentValue = $acceptable ? 'On' : 'Off';
$isExtension = true;
} else {
$currentValue = ($type == 'php') ? ini_get($name) : $this->getMysqlSetting($name, $pdoConn);
$acceptable = ( isset($currentValue) && $this->convertToBytes($currentValue) >= $this->convertToBytes($requiredValue) ) ? true : false;
}
$list[$name] = array(
'current' => $currentValue,
'required' => $requiredValue,
'acceptable' => $acceptable,
'isExtension' => $isExtension,
);
}
return $list;
}
protected function getMysqlSetting($name, \PDO $pdoConnection)
{
$sth = $pdoConnection->prepare("SHOW VARIABLES LIKE '" . $name . "'");
$sth->execute();
$res = $sth->fetch(PDO::FETCH_NUM);
$version = empty($res[1]) ? null : $res[1];
return $version;
}
public function checkDbConnection($hostName, $port, $dbUserName, $dbUserPass, $dbName, $isCreateDatabase = true)
{
$result['success'] = true;
switch ($dbDriver) {
case 'mysqli':
$mysqli = (empty($port)) ? new mysqli($hostName, $dbUserName, $dbUserPass, $dbName) : new mysqli($hostName, $dbUserName, $dbUserPass, $dbName, $port);
if (!$mysqli->connect_errno) {
$mysqli->close();
}
else {
$result['errors']['dbConnect']['errorCode'] = $mysqli->connect_errno;
$result['errors']['dbConnect']['errorMsg'] = $mysqli->connect_error;
$result['success'] = false;
}
break;
$dbh = $this->getPdoConnection($hostName, $port, $dbUserName, $dbUserPass, $dbName);
case 'pdo_mysql':
try {
$dsn = "mysql:host={$hostName};" . ((!empty($port)) ? "port={$port};" : '') . "dbname={$dbName}";
$dbh = new PDO($dsn, $dbUserName, $dbUserPass);
$dbh = null;
} catch (PDOException $e) {
$result['errors']['dbConnect']['errorCode'] = $e->getCode();
$result['errors']['dbConnect']['errorMsg'] = $e->getMessage();
$result['success'] = false;
}
/** try to create a database */
if ($isCreateDatabase && !$result['success'] && $result['errors']['dbConnect']['errorCode'] == '1049') {
$dsn = "mysql:host={$hostName};" . ((!empty($port)) ? "port={$port}" : '');
$pdo = new PDO($dsn, $dbUserName, $dbUserPass);
$isCreated = true;
try {
$pdo->query("CREATE DATABASE IF NOT EXISTS `$dbName`");
} catch (PDOException $e) {
$isCreated = false;
}
if ($isCreated) {
return $this->checkDbConnection($hostName, $port, $dbUserName, $dbUserPass, $dbName, $dbDriver, false);
}
}
/** END: try to create a database */
break;
if ($dbh instanceof \PDOException) {
$result['errors']['dbConnect']['errorCode'] = $dbh->getCode();
$result['errors']['dbConnect']['errorMsg'] = $dbh->getMessage();
$result['success'] = false;
}
/** Check MySQL settings */
if ($result['success']) {
$currentMysqlVersion = $this->getMysqlSetting('version', $dbh);
if (isset($currentMysqlVersion) && version_compare($currentMysqlVersion, $this->requirements['mysqlVersion']) == -1) {
$result['errors']['mysqlVersion'] = $this->requirements['mysqlVersion'];
$result['success'] = false;
}
/** Check required MySQL settings */
foreach ($this->requirements['mysqlRequires'] as $name => $requiredValue) {
$currentValue = $this->getMysqlSetting($name, $dbh);
$acceptable = ( isset($currentValue) && $this->convertToBytes($currentValue) >= $this->convertToBytes($requiredValue) ) ? true : false;
if (!$acceptable) {
$result['errors']['mysqlSetting'] = array(
'errorCode' => 'mysqlSettingError',
'name' => $name,
'value' => $requiredValue,
);
$result['success'] = false;
}
}
}
/** try to create a database */
if ($isCreateDatabase && !$result['success'] && $result['errors']['dbConnect']['errorCode'] == '1049')
{
$dsn = "mysql:host={$hostName};" . ((!empty($port)) ? "port={$port}" : '');
$pdo = new PDO($dsn, $dbUserName, $dbUserPass);
$isCreated = true;
try {
$pdo->query("CREATE DATABASE IF NOT EXISTS `$dbName`");
} catch (PDOException $e) {
$isCreated = false;
}
if ($isCreated) {
return $this->checkDbConnection($hostName, $port, $dbUserName, $dbUserPass, $dbName, false);
}
}
/** END: try to create a database */
return $result;
}
public function getPdoConnection($hostName, $port, $dbUserName, $dbUserPass, $dbName)
{
try {
$dsn = "mysql:host={$hostName};" . ((!empty($port)) ? "port={$port};" : '') . "dbname={$dbName}";
$dbh = new PDO($dsn, $dbUserName, $dbUserPass);
} catch (PDOException $e) {
return $e;
}
return $dbh;
}
public function getBaseUrl()
{
$pageUrl = ($_SERVER["HTTPS"] == 'on') ? 'https://' : 'http://';
@@ -148,9 +215,14 @@ class SystemHelper extends \Espo\Core\Utils\System
return $baseUrl;
}
public function getApiPath()
{
return $this->apiPath;
}
public function getModRewriteUrl()
{
return $this->modRewriteUrl;
return $this->apiPath . $this->modRewriteUrl;
}
public function getChownCommand($path, $isSudo = false, $isCd = true)
@@ -160,8 +232,8 @@ class SystemHelper extends \Espo\Core\Utils\System
$path = implode(' ', $path);
}
$owner = posix_getuid();
$group = posix_getegid();
$owner = function_exists('posix_getuid') ? posix_getuid() : null;
$group = function_exists('posix_getegid') ? posix_getegid() : null;
$sudoStr = $isSudo ? 'sudo ' : '';
@@ -279,7 +351,7 @@ class SystemHelper extends \Espo\Core\Utils\System
$serverType = $this->getServerType();
$rules = array(
'nginx' => "location /api/v1/ {\n if (!-e " . '$request_filename' . "){\n rewrite ^/api/v1/(.*)$ /api/v1/index.php last; break;\n }\n}\n\nlocation / {\n rewrite reset/?$ reset.html break;\n}\n\nlocation /(data|api) {\n if (-e " . '$request_filename' . "){\n return 403;\n }\n}\n\nlocation /data/logs {\n return 403;\n}\nlocation /data/config.php$ {\n return 403;\n}\nlocation /data/cache {\n return 403;\n}\nlocation /data/upload {\n return 403;\n}\nlocation /application {\n return 403;\n}\nlocation /custom {\n return 403;\n}\nlocation /vendor {\n return 403;\n}",
'nginx' => "location /api/v1/ {\n if (!-e " . '$request_filename' . "){\n rewrite ^/api/v1/(.*)$ /api/v1/index.php last; break;\n }\n}\n\nlocation / {\n rewrite reset/?$ reset.html break;\n}\n\nlocation ^~ (data|api)/ {\n if (-e " . '$request_filename' . "){\n return 403;\n }\n}\n\nlocation ^~ /data/logs/ {\n return 403;\n}\nlocation ^~ /data/config.php {\n return 403;\n}\nlocation ^~ /data/cache/ {\n return 403;\n}\nlocation ^~ /data/upload/ {\n return 403;\n}\nlocation ^~ /application/ {\n return 403;\n}\nlocation ^~ /custom/ {\n return 403;\n}\nlocation ^~ /vendor/ {\n return 403;\n}",
);
if (isset($rules[$serverType])) {
@@ -289,4 +361,22 @@ class SystemHelper extends \Espo\Core\Utils\System
return '';
}
public function convertToBytes($value)
{
$value = trim($value);
$last = strtoupper(substr($value, -1));
switch ( $last )
{
case 'G':
$value = (int) $value * 1024;
case 'M':
$value = (int) $value * 1024;
case 'K':
$value = (int) $value * 1024;
}
return $value;
}
}
+1 -2
View File
@@ -40,9 +40,8 @@ if ($result['success'] && !empty($_REQUEST['dbName']) && !empty($_REQUEST['hostN
list($hostName, $port) = explode(':', trim($_REQUEST['hostName']));
$dbUserName = trim($_REQUEST['dbUserName']);
$dbUserPass = trim($_REQUEST['dbUserPass']);
$dbDriver = (!empty($_REQUEST['dbDriver']))? $_REQUEST['dbDriver'] : 'pdo_mysql';
$res = $systemHelper->checkDbConnection($hostName, $port, $dbUserName, $dbUserPass, $dbName, $dbDriver);
$res = $systemHelper->checkDbConnection($hostName, $port, $dbUserName, $dbUserPass, $dbName);
$result['success'] &= $res['success'];
if (!empty($res['errors'])) {
$result['errors'] = array_merge($result['errors'], $res['errors']);
@@ -0,0 +1,48 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
************************************************************************/
$phpConfig = $systemHelper->getRecommendationList();
$smarty->assign('phpConfig', $phpConfig);
$installData = $_SESSION['install'];
list($host, $port) = explode(':', $installData['hostName']);
$dbConfig = array(
'dbHostName' => $host,
'dbPort' => $port,
'dbName' => $installData['dbName'],
'dbUserName' => $installData['dbUserName'],
'dbUserPass' => $installData['dbUserPass'],
);
$mysqlConfig = $systemHelper->getRecommendationList('mysql', $dbConfig);
$dbConfig['dbHostName'] = $installData['hostName'];
unset($dbConfig['dbPort'], $dbConfig['dbUserPass']);
foreach ($dbConfig as $name => $value) {
$mysqlConfig[$name] = array(
'current' => $value,
'acceptable' => true,
);
}
$smarty->assign('mysqlConfig', $mysqlConfig);
+40
View File
@@ -0,0 +1,40 @@
<?php
return array(
'apiPath' => '/api/v1',
'requirements' => array(
'phpVersion' => '5.4',
'phpRequires' => array(
'JSON',
'mcrypt',
'pdo_mysql',
),
'phpRecommendations' => array(
'GD',
'IMAP',
'max_execution_time' => 180,
'max_input_time' => 180,
'memory_limit' => '256M',
'post_max_size' => '20M',
'upload_max_filesize' => '20M',
),
'mysqlVersion' => '5.1',
'mysqlRequires' => array(
),
'mysqlRecommendations' => array(
),
),
'blog' => 'http://blog.espocrm.com',
'twitter' => 'https://twitter.com/espocrm',
'forum' => 'http://forum.espocrm.com',
);
+11 -4
View File
@@ -12,7 +12,7 @@
"Step5 page title": "SMTP Einstellungen für ausgehende E-Mails",
"Errors page title": "Fehler",
"Finish page title": "Die Installation ist abgeschlossen",
"Congratulation! Welcome to EspoCRM!": "Gratulation! EspoCRM wurde erfolgreich installiert.",
"Congratulation! Welcome to EspoCRM": "Gratulation! EspoCRM wurde erfolgreich installiert.",
"Installation Guide": "Installationshandbuch",
"admin": "admin",
"localhost": "localhost",
@@ -25,8 +25,14 @@
"Next": "Weiter",
"Go to EspoCRM": "Zu EspoCRM",
"Re-check": "Überprüfung wiederholen",
"Version": "Version",
"Test settings": "Verbindung überprüfen",
"Database Settings Description": "Geben Sie die Verbindungsinformationen für Ihre MySQL Datebank ein (Hostname, Benutzername und Passwort). Sie können den Serverport z.B. so definieren: localhost:3306"
"Database Settings Description": "Geben Sie die Verbindungsinformationen für Ihre MySQL Datebank ein (Hostname, Benutzername und Passwort). Sie können den Serverport z.B. so definieren: localhost:3306",
"phpVersion": "PHP version",
"mysqlVersion": "MySQL version",
"dbHostName": "Host Name",
"dbName": "Datenbank Name",
"dbUserName": "Datenbank Benutzername"
},
"fields": {
"Choose your language": "Wählen Sie Ihre Sprache",
@@ -63,6 +69,7 @@
"Bad init Permission": "Zugriff verweigert für Verzeichnis \"{*}\". Bitte setzen Sie 775 für \"{*}\" oder führen Sie dieses Kommando in einem Terminal Fenster aus <pre><b>{C}<\/b><\/pre> Operation nicht erlaubt? Versuchen Sie das: {CSU}",
"Some errors occurred!": "Es sind Fehler passiert!",
"phpVersion": "Ihre PHP Version wird von EspoCRM nicht unterstützt. Bitte aktualisieren Sie zumindest auf {minVersion}",
"MySQLVersion": "Ihre MySQL Version wird von EspoCRM nicht unterstützt. Bitte aktualisieren Sie zumindest auf {minVersion}",
"The PHP extension was not found...": "Die <b>{extName}<\/b> PHP Erweiterung wurde nicht gefunden...",
"All Settings correct": "Alle Einstellungen sind korrekt",
"Failed to connect to database": "Konnte nicht zur Datenbank verbinden",
@@ -95,7 +102,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>Für die .htaccess Unterstützung ändern\/ergänzen Sie die Server Einstellungen innerhalb der &#60;VirtualHost&#62; Sektion (httpd.conf):<pre>&#60;Directory \/PATH_TO_ESPO\/&#62; <b>AllowOverride All<\/b> &#60;\/Directory&#62;<\/pre>Dann führen Sie dieses Kommando in einem Terminalfenster aus:<pre><b>service apache2 restart<\/b><\/pre><br>Um \"mod_rewrite\" zu aktivieren führen Sie diese Kommandos in einem Terminalfenster aus:<pre><b>a2enmod rewrite <br>service apache2 restart<\/b><\/pre>",
"linux": "<br><br>Um die RewriteBase Pfad hinzufügen, öffnen Sie eine Datei {API_PATH}.htaccess und ändern Sie die folgende Zeile:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>Für die .htaccess Unterstützung ändern\/ergänzen Sie die Server Einstellungen innerhalb der &#60;VirtualHost&#62; Sektion (httpd.conf):<pre>&#60;Directory \/PATH_TO_ESPO\/&#62; <b>AllowOverride All<\/b> &#60;\/Directory&#62;<\/pre>Dann führen Sie dieses Kommando in einem Terminalfenster aus:<pre><b>service apache2 restart<\/b><\/pre><br>Um \"mod_rewrite\" zu aktivieren führen Sie diese Kommandos in einem Terminalfenster aus:<pre><b>a2enmod rewrite <br>service apache2 restart<\/b><\/pre>",
"windows": "<br> <pre>1. Finden Sie die httpd.conf Datei (normalerweise in einem Verzeichnis conf, config oder ähnlich)<br> 2. Innerhalb der httpd.conf Datei aktivieren Sie die Zeile LoadModule rewrite_module modules\/mod_rewrite.so (entfernen Sie das # Zeichen vom Anfang der Zeile)<br> 3. Stellen Sie sicher, dass die Zeile ClearModuleList nicht auskommentiert ist, genauso wie die Zeile AddModule mod_rewrite.c. <\/pre>"
},
"microsoft-iis": {
@@ -103,7 +110,7 @@
}
},
"modRewriteHelp": {
"apache": "API Fehler: EspoCRM API nicht verfügbar<br>Mögliches Problem: deaktiviertes \"mod_rewrite\" des Apache Servers oder des .htaccess Supports.",
"apache": "API Fehler: EspoCRM API nicht verfügbar<br>Mögliches Problem: RewriteBase erforderlich, deaktiviertes \"mod_rewrite\" des Apache Servers oder des .htaccess Supports.",
"nginx": "API Error: EspoCRM API nicht verfügbar.<br>Fügen Sie diesen Code zu Nginx Host Config (innerhalb des \"server\" Blocks) hinzu:<br> <pre> {0} <\/pre>",
"microsoft-iis": "API Fehler: EspoCRM API nicht verfügbar<br>Mögliches Problem: deaktiviertes \"URL Rewrite\". Bitte überprüfen und aktivieren Sie das \"URL Rewrite\" Modul im IIS Server.",
"default": "API Fehler: EspoCRM API nicht verfügbar<br>Mögliches Problem: deaktiviertes Rewrite Modul. Bitte überprüfen und aktivieren Sie das Rewrite Modul (z.B. mod_rewrite im Apache Server) und die .htaccess Unterstützung."
+23 -6
View File
@@ -12,7 +12,8 @@
"Step5 page title": "SMTP settings for outgoing emails",
"Errors page title": "Errors",
"Finish page title": "Installation is complete",
"Congratulation! Welcome to EspoCRM!": "Congratulation! EspoCRM has been successfully installed.",
"Congratulation! Welcome to EspoCRM": "Congratulation! EspoCRM has been successfully installed.",
"More Information": "For more information,<br>please visit our blog: {BLOG}<br>follow us on twitter: {TWITTER}<br><br>If you have any suggestions or questions, please ask on the forum:<br>{FORUM}",
"Installation Guide": "Installation Guide",
"admin": "admin",
"localhost": "localhost",
@@ -25,8 +26,20 @@
"Next": "Next",
"Go to EspoCRM": "Go to EspoCRM",
"Re-check": "Re-check",
"Version": "Version",
"Test settings": "Test Connection",
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306."
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306.",
"Install": "Install",
"SetupConfirmation page title": "Recommended Settings",
"PHP Configuration": "Recommended PHP settings",
"MySQL Configuration": "MySQL Configuration",
"Configuration Instructions": "Configuration Instructions",
"phpVersion": "PHP version",
"mysqlVersion": "MySQL version",
"dbHostName": "Host Name",
"dbName": "Database Name",
"dbUserName": "Database User Name",
"OK": "OK"
},
"fields": {
"Choose your language": "Choose your language",
@@ -63,6 +76,7 @@
"Bad init Permission": "Permission denied for \"{*}\" directory. Please set 775 for \"{*}\" or just execute this command in the terminal <pre><b>{C}</b></pre>\n\tOperation not permitted? Try this one: {CSU}",
"Some errors occurred!": "Some errors occurred!",
"phpVersion": "Your PHP version is not supported by EspoCRM, please update to PHP {minVersion} at least",
"MySQLVersion": "Your MySQL version is not supported by EspoCRM, please update to MySQL {minVersion} at least",
"The PHP extension was not found...": "PHP Error: Extension <b>{extName}</b> is not found.",
"All Settings correct": "All Settings are correct",
"Failed to connect to database": "Failed to connect to database",
@@ -76,7 +90,7 @@
"createUser error": "createUser error",
"checkAjaxPermission error": "checkAjaxPermission error",
"Ajax failed": "Ajax failed",
"Cannot create user": "Cannot create user",
"Cannot create user": "Cannot create a user",
"Permission denied": "Permission denied",
"permissionInstruction": "<br>Run this in Terminal<pre><b>\"{C}\"</b></pre>",
"operationNotPermitted" : "Operation not permitted? Try this: <br>{CSU}",
@@ -86,7 +100,10 @@
"Thousand Separator and Decimal Mark equal": "Thousand Separator and Decimal Mark cannot be equal",
"1049": "Unknown database",
"2005": "Unknown MySQL server host",
"1045": "Access denied for user"
"1045": "Access denied for user",
"extension": "{0} extension is missing",
"option": "Recommended value is {0}",
"mysqlSettingError": "EspoCRM requires the MySQL setting \"{NAME}\" to be set to {VALUE}"
},
"options": {
"db driver": {
@@ -95,7 +112,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"linux": "<br><br>To add the RewriteBase path, open a file {API_PATH}.htaccess and change the following line:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"windows": "<br> <pre>1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)<br>\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules/mod_rewrite.so (remove the pound '#' sign from in front of the line)<br>\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n</pre>"
},
"microsoft-iis": {
@@ -103,7 +120,7 @@
}
},
"modRewriteHelp": {
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: RewriteBase required, disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"nginx": "API Error: EspoCRM API unavailable.<br> Add this code to your Nginx Host Config (inside \"server\" block):<br>\n<pre>\n{0}\n</pre>",
"microsoft-iis": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled \"URL Rewrite\". Please check and enable \"URL Rewrite\" Module in IIS server",
"default": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled Rewrite Module. Please check and enable Rewrite Module in your server (e.g. mod_rewrite in Apache) and .htaccess support."
+12 -5
View File
@@ -12,7 +12,7 @@
"Step5 page title": "Configuración SMTP para los correos salientes",
"Errors page title": "Errores",
"Finish page title": "La instalación ha finalizado",
"Congratulation! Welcome to EspoCRM!": "¡Enhorabuena! EspoCRM(Español) se ha instalado correctamente.",
"Congratulation! Welcome to EspoCRM": "¡Enhorabuena! EspoCRM(Español) se ha instalado correctamente.",
"Installation Guide": "Instrucciones de instalación",
"admin": "admin",
"localhost": "localhost",
@@ -24,8 +24,14 @@
"Next": "Siguiente",
"Go to EspoCRM": "Ir a EspoCRM(Español)",
"Re-check": "Revisar otra vez",
"Version": "Version",
"Test settings": "Test de conexión",
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306."
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306.",
"phpVersion": "PHP version",
"mysqlVersion": "MySQL version",
"dbHostName": "Hostname usualmente(localhost)",
"dbName": "Nombre de la Base de Datos",
"dbUserName": "Usuario de la Base de Datos"
},
"fields": {
"Choose your language": "Seleccione un lenguaje",
@@ -61,7 +67,8 @@
"messages": {
"Bad init Permission": "Permission denied for \"{*}\" directory. Please set 775 for \"{*}\" or just execute this command in the terminal <pre><b>{C}</b></pre>\n\tOperation not permitted? Try this one: {CSU}",
"Some errors occurred!": "Some errors occurred!",
"phpVersion": "PHP version should be >= {minVersion}",
"phpVersion": "Your PHP version is not supported by EspoCRM, please update to PHP {minVersion} at least",
"MySQLVersion": "Your MySQL version is not supported by EspoCRM, please update to MySQL {minVersion} at least",
"The PHP extension was not found...": "PHP Error: Extension <b>{extName}</b> is not found.",
"All Settings correct": "All Settings are correct",
"Failed to connect to database": "Failed to connect to database",
@@ -94,7 +101,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"linux": "<br><br>To add the RewriteBase path, open a file {API_PATH}.htaccess and change the following line:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"windows": "<br> <pre>1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)<br>\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules/mod_rewrite.so (remove the pound '#' sign from in front of the line)<br>\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n</pre>"
},
"microsoft-iis": {
@@ -102,7 +109,7 @@
}
},
"modRewriteHelp": {
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: RewriteBase required, disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"nginx": "API Error: EspoCRM API unavailable.<br> Add this code to your Nginx Host Config (inside \"server\" block):<br>\n<pre>\n{0}\n</pre>",
"microsoft-iis": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled \"URL Rewrite\". Please check and enable \"URL Rewrite\" Module in IIS server",
"default": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled Rewrite Module. Please check and enable Rewrite Module in your server (e.g. mod_rewrite in Apache) and .htaccess support."
+11 -4
View File
@@ -12,7 +12,7 @@
"Step5 page title": "Paramètres SMTP pour envoyer les emails",
"Errors page title": "Erreurs",
"Finish page title": "L'installation est terminée",
"Congratulation! Welcome to EspoCRM!": "Félicitation! EspoCRM a été installé avec succès.",
"Congratulation! Welcome to EspoCRM": "Félicitation! EspoCRM a été installé avec succès.",
"Installation Guide": "Instructions d'installation",
"admin": "admin",
"localhost": "localhost",
@@ -25,8 +25,14 @@
"Next": "Suivant",
"Go to EspoCRM": "Aller à EspoCRM",
"Re-check": "Revérifier",
"Version": "Version",
"Test settings": "Tester la Connexion",
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306."
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306.",
"phpVersion": "Version PHP",
"mysqlVersion": "Version MySQL",
"dbHostName": "Nom d'hôte",
"dbName": "Nom de la Base de Donnée",
"dbUserName": "Nom d'utilisateur de la base de donnée"
},
"fields": {
"Choose your language": "Choisissez votre langue",
@@ -63,6 +69,7 @@
"Bad init Permission": "Permission denied for \"{*}\" directory. Please set 775 for \"{*}\" or just execute this command in the terminal <pre><b>{C}</b></pre>\n\tOperation not permitted? Try this one: {CSU}",
"Some errors occurred!": "Des erreurs se sont produites !",
"phpVersion": "Your PHP version is not supported by EspoCRM, please update to PHP {minVersion} at least",
"MySQLVersion": "Your MySQL version is not supported by EspoCRM, please update to MySQL {minVersion} at least",
"The PHP extension was not found...": "L'extension PHP <b>{extName}</b> est introuvable...",
"All Settings correct": "Les Paramètres sont corrects",
"Failed to connect to database": "Impossible de connecter la base de donnée",
@@ -95,7 +102,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"linux": "<br><br>To add the RewriteBase path, open a file {API_PATH}.htaccess and change the following line:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"windows": "<br> <pre>1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)<br>\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules/mod_rewrite.so (remove the pound '#' sign from in front of the line)<br>\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n</pre>"
},
"microsoft-iis": {
@@ -103,7 +110,7 @@
}
},
"modRewriteHelp": {
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: RewriteBase required, disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"nginx": "API Error: EspoCRM API unavailable.<br> Add this code to your Nginx Host Config (inside \"server\" block):<br>\n<pre>\n{0}\n</pre>",
"microsoft-iis": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled \"URL Rewrite\". Please check and enable \"URL Rewrite\" Module in IIS server",
"default": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled Rewrite Module. Please check and enable Rewrite Module in your server (e.g. mod_rewrite in Apache) and .htaccess support."
+11 -4
View File
@@ -12,7 +12,7 @@
"Step5 page title": "SMTP instellingen voor uitgaande emails",
"Errors page title": "Fouten",
"Finish page title": "Installatie is compleet",
"Congratulation! Welcome to EspoCRM!": "Proficiat! EspoCRM heeft u succesvol geinstalleerd.",
"Congratulation! Welcome to EspoCRM": "Proficiat! EspoCRM heeft u succesvol geinstalleerd.",
"Installation Guide": "Installation Guide",
"admin": "admin",
"localhost": "localhost",
@@ -25,8 +25,14 @@
"Next": "Volgende",
"Go to EspoCRM": "Ga naar EspoCRM",
"Re-check": "Re-check",
"Version": "Versie",
"Test settings": "Test Verbinding",
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306."
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306.",
"phpVersion": "PHP versie",
"mysqlVersion": "MySQL versie",
"dbHostName": "Host Naam",
"dbName": "Database Naam",
"dbUserName": "Database Gebruikers Naam"
},
"fields": {
"Choose your language": "Kies uw taal",
@@ -63,6 +69,7 @@
"Bad init Permission": "Permission denied for \"{*}\" directory. Please set 775 for \"{*}\" or just execute this command in the terminal <pre><b>{C}</b></pre>\n\tOperation not permitted? Try this one: {CSU}",
"Some errors occurred!": "Er zijn fouten gevonden!",
"phpVersion": "Uw PHP versie wordt niet ondersteund door EspoCRM, u moet minimaal updaten naar PHP {minVersion}",
"MySQLVersion": "Uw MySQL versie wordt niet ondersteund door EspoCRM, u moet minimaal updaten naar MySQL {minVersion}",
"The PHP extension was not found...": "PHP Error: Extension <b>{extName}</b> is not found.",
"All Settings correct": "Alle Instellingen zijn juist",
"Failed to connect to database": "Kan geen verbinding maken met de database",
@@ -95,7 +102,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"linux": "<br><br>To add the RewriteBase path, open a file {API_PATH}.htaccess and change the following line:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"windows": "<br> <pre>1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)<br>\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules/mod_rewrite.so (remove the pound '#' sign from in front of the line)<br>\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n</pre>"
},
"microsoft-iis": {
@@ -103,7 +110,7 @@
}
},
"modRewriteHelp": {
"apache": "API Error: EspoCRM API niet beschikbaar.<br> Mogelijke Oorzaak: disabled \"mod_rewrite\" in Apache server of .htaccess ondersteuning.",
"apache": "API Error: EspoCRM API niet beschikbaar.<br> Mogelijke Oorzaak: RewriteBase vereist, disabled \"mod_rewrite\" in Apache server of .htaccess ondersteuning.",
"nginx": "API Error: EspoCRM API unavailable.<br> Add this code to your Nginx Host Config (inside \"server\" block):<br>\n<pre>\n{0}\n</pre>",
"microsoft-iis": "API Error: EspoCRM API niet beschikbaar.<br> Mogelijk probleem: disabled \"URL Rewrite\". Controleer en activeer \"URL Rewrite\" Module in IIS server",
"default": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled Rewrite Module. Please check and enable Rewrite Module in your server (e.g. mod_rewrite in Apache) and .htaccess support."
+11 -4
View File
@@ -12,7 +12,7 @@
"Step5 page title": "Ustawienia SMTP dla poczty wychodzącej",
"Errors page title": "Błędy",
"Finish page title": "Instalacja została ukończona",
"Congratulation! Welcome to EspoCRM!": "Gratuluje! EspoCRM zostało pomyślnie zainstalowane.",
"Congratulation! Welcome to EspoCRM": "Gratuluje! EspoCRM zostało pomyślnie zainstalowane.",
"Installation Guide": "Instrukcja instalacji",
"admin": "admin",
"localhost": "localhost",
@@ -25,8 +25,14 @@
"Next": "Następny",
"Go to EspoCRM": "Idź do EspoCRM",
"Re-check": "Sprawdź jeszcze raz",
"Version": "Wersja",
"Test settings": "Test połączenia z bazą danych",
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306."
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306.",
"phpVersion": "Wersja PHP",
"mysqlVersion": "Wersja MySQL",
"dbHostName": "Host Name",
"dbName": "Nazwa Bazy Danych",
"dbUserName": "Nazwa Użytkonika Bazy Danych"
},
"fields": {
"Choose your language": "Wybierz swój język",
@@ -63,6 +69,7 @@
"Bad init Permission": "Permission denied for \"{*}\" directory. Please set 775 for \"{*}\" or just execute this command in the terminal <pre><b>{C}</b></pre>\n\tOperation not permitted? Try this one: {CSU}",
"Some errors occurred!": "Wystapiły błędy!",
"phpVersion": "Wersja PHP nie jest wspierana przez EspoCRM, proszę wykonać aktualizację do minimalnej wersji PHP {minVersion}",
"MySQLVersion": "Wersja MySQL nie jest wspierana przez EspoCRM, proszę wykonać aktualizację do minimalnej wersji MySQL {minVersion}",
"The PHP extension was not found...": "PHP Error: Extension <b>{extName}</b> is not found.",
"All Settings correct": "Wszystkie ustwienia są poprawne",
"Failed to connect to database": "Błąd połączenia z bazą danych",
@@ -95,7 +102,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"linux": "<br><br>To add the RewriteBase path, open a file {API_PATH}.htaccess and change the following line:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"windows": "<br> <pre>1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)<br>\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules/mod_rewrite.so (remove the pound '#' sign from in front of the line)<br>\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n</pre>"
},
"microsoft-iis": {
@@ -103,7 +110,7 @@
}
},
"modRewriteHelp": {
"apache": "Błąd API: API jest nie dostępne.<br> Pradwdopodobnie: wyłączyłeś \"mod_rewrite\" w serwerze Apache lub .htaccess.",
"apache": "Błąd API: API jest nie dostępne.<br> Pradwdopodobnie: wymagane RewriteBase, wyłączyłeś \"mod_rewrite\" w serwerze Apache lub .htaccess.",
"nginx": "API Error: EspoCRM API unavailable.<br> Add this code to your Nginx Host Config (inside \"server\" block):<br>\n<pre>\n{0}\n</pre>",
"microsoft-iis": "Błąd API: API jest nie dostepne.<br> Pradopodobnie: wyłączyłeś \"URL Rewrite\". Proszę sprawdź i włącz \"URL Rewrite\" Moduł w IIS serwer",
"default": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled Rewrite Module. Please check and enable Rewrite Module in your server (e.g. mod_rewrite in Apache) and .htaccess support."
+11 -4
View File
@@ -12,7 +12,7 @@
"Step5 page title": "Setari SMTP pentru trimitere email-uri",
"Errors page title": "Erori",
"Finish page title": "Instalare finalizata",
"Congratulation! Welcome to EspoCRM!": "Felicitari! EspoCRM a fost instalat cu succes.",
"Congratulation! Welcome to EspoCRM": "Felicitari! EspoCRM a fost instalat cu succes.",
"Installation Guide": "Instrucțiuni de instalare",
"admin": "admin",
"localhost": "localhost",
@@ -25,8 +25,14 @@
"Next": "Inainte",
"Go to EspoCRM": "Mergi la EspoCRM",
"Re-check": "Re-verificare",
"Version": "Versiunea",
"Test settings": "Testare Conexiune",
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306."
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306.",
"phpVersion": "Versiune PHP",
"mysqlVersion": "Versiune MySQL",
"dbHostName": "Numele Server-ului",
"dbName": "Numele Bazei de Date",
"dbUserName": "Nume Utilizator Baza de Date"
},
"fields": {
"Choose your language": "Alege Limba",
@@ -63,6 +69,7 @@
"Bad init Permission": "Permission denied for \"{*}\" directory. Please set 775 for \"{*}\" or just execute this command in the terminal <pre><b>{C}</b></pre>\n\tOperation not permitted? Try this one: {CSU}",
"Some errors occurred!": "Am intampinat erori!",
"phpVersion": "Your PHP version is not supported by EspoCRM, please update to PHP {minVersion} at least",
"MySQLVersion": "Your MySQL version is not supported by EspoCRM, please update to MySQL {minVersion} at least",
"The PHP extension was not found...": "PHP Error: Extension <b>{extName}</b> is not found.",
"All Settings correct": "Toate setarile sunt corecte",
"Failed to connect to database": "Nu s-a reusit conectarea la Baza de Date",
@@ -95,7 +102,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"linux": "<br><br>To add the RewriteBase path, open a file {API_PATH}.htaccess and change the following line:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"windows": "<br> <pre>1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)<br>\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules/mod_rewrite.so (remove the pound '#' sign from in front of the line)<br>\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n</pre>"
},
"microsoft-iis": {
@@ -103,7 +110,7 @@
}
},
"modRewriteHelp": {
"apache": "Eroare API: API-ul EspoCRM nu este valabil.<br> Probleme posibile: este dezactivat \"mod_rewrite\" in server-ul Apache, sau in .htaccess.",
"apache": "Eroare API: API-ul EspoCRM nu este valabil.<br> Probleme posibile: RewriteBase necesar, este dezactivat \"mod_rewrite\" in server-ul Apache, sau in .htaccess.",
"nginx": "API Error: EspoCRM API unavailable.<br> Add this code to your Nginx Host Config (inside \"server\" block):<br>\n<pre>\n{0}\n</pre>",
"microsoft-iis": "Eroare API: API-ul EspoCRM nu este valabil.<br> Probleme posibile: este dezactivat \"URL Rewrite\". Verificati si activati modulul \"URL Rewrite\" in server-ul IIS",
"default": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled Rewrite Module. Please check and enable Rewrite Module in your server (e.g. mod_rewrite in Apache) and .htaccess support."
+14 -7
View File
@@ -12,7 +12,7 @@
"Step5 page title": "Giden epostalar için SMTP ayarları",
"Errors page title": "Hatalar",
"Finish page title": "Yükleme tamamlandı",
"Congratulation! Welcome to EspoCRM!": "Tebrikler! EspoCRM başarıyla yüklendi.",
"Congratulation! Welcome to EspoCRM": "Tebrikler! EspoCRM başarıyla yüklendi.",
"Installation Guide": "Kurulum Talimatları",
"admin": "Yçnetici",
"localhost": "localhost",
@@ -25,11 +25,17 @@
"Next": "Sonraki",
"Go to EspoCRM": "EspoCRM sayfama git",
"Re-check": "Tekrar Kontrol Et",
"Test settings": "Bağlantıyı Kontrol Et"
"Version": "Versiyon",
"Test settings": "Bağlantıyı Kontrol Et",
"phpVersion": "PHP sürümü",
"mysqlVersion": "MySQL sürümü",
"dbHostName": "Sunucu Adı",
"dbName": "Veritabanı adı",
"dbUserName": "Veritabanı Kullanıcı Adı"
},
"fields": {
"Choose your language": "Dili seçin",
"Database Name": "Veritabanı adı:",
"Database Name": "Veritabanı adı",
"Host Name": "Sunucu Adı",
"Port": "Bağlantı Noktası",
"Database User Name": "Veritabanı Kullanıcı Adı",
@@ -61,11 +67,12 @@
"messages": {
"Bad init Permission": "Permission denied for \"{*}\" directory. Please set 775 for \"{*}\" or just execute this command in the terminal <pre><b>{C}<\/b><\/pre>\n\tOperation not permitted? Try this one: {CSU}",
"Some errors occurred!": "Bazı hatalar oluştu!",
"Supported php version >=": "Desteklenen Php Sürümü >=",
"phpVersion": "Your PHP version is not supported by EspoCRM, please update to PHP {minVersion} at least",
"MySQLVersion": "Your MySQL version is not supported by EspoCRM, please update to MySQL {minVersion} at least",
"The PHP extension was not found...": "<b>{extName}<\/b> PHP eklentisi bulunamadı...",
"All Settings correct": "Tüm ayarlar doğru",
"Failed to connect to database": "Veritabanına bağlanma başarısız oldu",
"PHP version: ": "PHP sürümü:",
"PHP version": "PHP sürümü",
"You must agree to the license agreement": "Lisans sözleşmesini kabul etmelisiniz",
"Passwords do not match": "Şifreler eşleşmiyor",
"Enable mod_rewrite in Apache server": "Mod_rewrite ı Apache sunucusunda etkinleştirin",
@@ -94,7 +101,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory \/PATH_TO_ESPO\/&#62;\n <b>AllowOverride All<\/b>\n&#60;\/Directory&#62;<\/pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart<\/b><\/pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart<\/b><\/pre>",
"linux": "<br><br>To add the RewriteBase path, open a file {API_PATH}.htaccess and change the following line:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"windows": "<br> <pre>1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)<br>\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules\/mod_rewrite.so (remove the pound '#' sign from in front of the line)<br>\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n<\/pre>"
},
"microsoft-iis": {
@@ -102,7 +109,7 @@
}
},
"modRewriteHelp": {
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: RewriteBase required, disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"nginx": "API Error: EspoCRM API unavailable.<br> Add this code to your Nginx Host Config (inside \"server\" block):<br>\n<pre>\n{0}\n</pre>",
"microsoft-iis": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled \"URL Rewrite\". Please check and enable \"URL Rewrite\" Module in IIS server",
"default": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled Rewrite Module. Please check and enable Rewrite Module in your server (e.g. mod_rewrite in Apache) and .htaccess support."
+11 -4
View File
@@ -12,7 +12,7 @@
"Step5 page title": "Cài đặt SMTP cho email đi",
"Errors page title": "Lỗi",
"Finish page title": "Hoàn thành cài đặt",
"Congratulation! Welcome to EspoCRM!": "Xin chúc mừng bạn! EspoCRM đã được cài đặt thành công.",
"Congratulation! Welcome to EspoCRM": "Xin chúc mừng bạn! EspoCRM đã được cài đặt thành công.",
"Installation Guide": "Hướng dẫn cài đặt",
"admin": "admin",
"localhost": "localhost",
@@ -25,8 +25,14 @@
"Next": "Tiến",
"Go to EspoCRM": "Đi đến EspoCRM",
"Re-check": "Kiểm tra lại",
"Version": "Phiên bản",
"Test settings": "Kiểm tra kết nối",
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306."
"Database Settings Description": "Enter your MySQL database connection information (hostname, username and password). You can specify the server port for hostname like localhost:3306.",
"phpVersion": "Phiên bản PHP",
"mysqlVersion": "Phiên bản MySQL",
"dbHostName": "Tên máy chủ",
"dbName": "Tên cơ sở dữ liệu",
"dbUserName": "Tên truy cập csdl"
},
"fields": {
"Choose your language": "Chọn ngôn ngữ",
@@ -63,6 +69,7 @@
"Bad init Permission": "Permission denied for \"{*}\" directory. Please set 775 for \"{*}\" or just execute this command in the terminal <pre><b>{C}</b></pre>\n\tOperation not permitted? Try this one: {CSU}",
"Some errors occurred!": "Đã có lỗi xảy ra!",
"phpVersion": "Your PHP version is not supported by EspoCRM, please update to PHP {minVersion} at least",
"MySQLVersion": "Your MySQL version is not supported by EspoCRM, please update to MySQL {minVersion} at least",
"The PHP extension was not found...": "Không tìm thấy phần mở rộng <b>{extName}</b> của PHP",
"All Settings correct": "cài đặt thành công",
"Failed to connect to database": "Không thể kết nối tới csdl",
@@ -95,7 +102,7 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"linux": "<br><br>To add the RewriteBase path, open a file {API_PATH}.htaccess and change the following line:<pre># RewriteBase /</pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre><br>To enable .htaccess support add/edit the Server configuration settings inside your &#60;VirtualHost&#62; section (httpd.conf):<pre>&#60;Directory /PATH_TO_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Afterwards run this command in a Terminal:<pre><b>service apache2 restart</b></pre><br>To enable \"mod_rewrite\" run those commands in a Terminal:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre>",
"windows": "<br> <pre>1. Find the httpd.conf file (usually you will find it in a folder called conf, config or something along those lines)<br>\n2. Inside the httpd.conf file uncomment the line LoadModule rewrite_module modules/mod_rewrite.so (remove the pound '#' sign from in front of the line)<br>\n3. Also find the line ClearModuleList is uncommented then find and make sure that the line AddModule mod_rewrite.c is not commented out.\n</pre>"
},
"microsoft-iis": {
@@ -103,7 +110,7 @@
}
},
"modRewriteHelp": {
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"apache": "API Error: EspoCRM API unavailable.<br> Possible problems: RewriteBase required, disabled \"mod_rewrite\" in Apache server or .htaccess support.",
"nginx": "API Error: EspoCRM API unavailable.<br> Add this code to your Nginx Host Config (inside \"server\" block):<br>\n<pre>\n{0}\n</pre>",
"microsoft-iis": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled \"URL Rewrite\". Please check and enable \"URL Rewrite\" Module in IIS server",
"default": "API Error: EspoCRM API unavailable.<br> Possible problem: disabled Rewrite Module. Please check and enable Rewrite Module in your server (e.g. mod_rewrite in Apache) and .htaccess support."
+2 -4
View File
@@ -1,6 +1,3 @@
<header class="panel-heading">
<h4 class="panel-title">{$langs['labels']['Errors page title']}</h4>
</header>
<div class="panel-body body">
<div id="msg-box" class="alert alert-danger">{$errors}</div>
<div class="loading-icon hide"></div>
@@ -14,7 +11,7 @@
</form>
</div>
<footer class="modal-footer">
<button class="btn btn-primary" type="button" id="re-check">{$langs['labels']['Re-check']}</button>
<button class="btn btn-warning" type="button" id="re-check">{$langs['labels']['Re-check']}</button>
</footer>
<script>
{literal}
@@ -24,6 +21,7 @@
action: 'errors',
langs: {$langsJs},
modRewriteUrl: '{$modRewriteUrl}',
apiPath: '{$apiPath}',
serverType: '{$serverType}',
OS: '{$OS}'
}
+21 -8
View File
@@ -1,12 +1,23 @@
<header class="panel-heading">
<h4 class="panel-title">{$langs['labels']['Finish page title']}</h4>
</header>
<div class="panel-body body">
<form id="nav">
<div class="row">
<div class=" col-md-13">
<div class="panel-body" align="center">
{$langs['labels']['Congratulation! Welcome to EspoCRM!']}
<div class="message">
{$langs['labels']['Congratulation! Welcome to EspoCRM']}
</div>
<div class="more-information">
{assign var="blogLink" value="<a target=\"_blank\" href=\"{$config['blog']}\">{$config['blog']}</a>"}
{assign var="twitterLink" value="<a target=\"_blank\" href=\"{$config['twitter']}\">{$config['twitter']}</a>"}
{assign var="forumLink" value="<a target=\"_blank\" href=\"{$config['forum']}\">{$config['forum']}</a>"}
{assign var="message" value="{$langs['labels']['More Information']|replace:'{BLOG}':$blogLink}"}
{assign var="message" value="{$message|replace:'{TWITTER}':$twitterLink}"}
{assign var="message" value="{$message|replace:'{FORUM}':$forumLink}"}
{$message}
</div>
</div>
</div>
</div>
@@ -14,10 +25,12 @@
</div>
{if $cronHelp}
&nbsp;{$cronTitle}
<pre>
{$cronHelp}
</pre>
<div class="cron-help">
&nbsp;{$cronTitle}
<pre>
{$cronHelp}
</pre>
</div>
{/if}
<footer class="modal-footer">
<button class="btn btn-primary" type="button" id="start">{$langs['labels']['Go to EspoCRM']}</button>
+13 -1
View File
@@ -1,3 +1,15 @@
<div style="background-color: #4A6492; padding: 3px 10px;" class="panel-heading">
<img src="../client/img/logo.png">
</div>
</div>
<header class="panel-heading">
<div class="row">
<div class="col-md-10">
<h4 class="panel-title">
{$langs['labels']["{$action} page title"]}
</h4>
</div>
<div class="col-md-2 version" align="right">
{$langs['labels']['Version']} {$version}
</div>
</div>
</header>
+6 -10
View File
@@ -1,16 +1,13 @@
<header class="panel-heading">
<h4 class="panel-title">{$langs['labels']['Main page title']}</h4>
</header>
<form id="nav">
<div class="panel-body">
<div id="msg-box" class="alert hide"></div>
<div class="row">
<div class=" col-md-12">
<div class="col-md-12">
<div align="center">
<div class="content-img">
<img class="devices" src="img/devices.png" alt="EspoCRM">
</div>
{$langs['labels']['Main page header']}
<div class="content-img">
<img class="devices" src="img/devices.png" alt="EspoCRM">
</div>
{$langs['labels']['Main page header']}
</div>
</div>
</div>
@@ -34,8 +31,7 @@
</div>
<footer class="modal-footer">
<button class="btn btn-primary" type="button" id="start">{$langs['labels']['Start']}</button>
<button class="btn btn-primary" type="button" id="start">{$langs['labels']['Start']}</button>
</footer>
</form>
<script>
+123
View File
@@ -0,0 +1,123 @@
<div class="setup-confirmation panel-body body">
<div id="msg-box" class="alert hide"></div>
<form id="nav">
<div class="row">
<table class="table table-striped">
<thead>
<tr>
<th colspan="3">{$langs['labels']['PHP Configuration']}</th>
</tr>
</thead>
<tbody>
{foreach from=$phpConfig key=name item=value}
<tr>
<td class="col-md-4">
{if $langs['labels'][$name] eq ''}
{$name}
{else}
{$langs['labels'][{$name}]}
{/if}
</td>
<td class="col-md-4">{$value['current']}</td>
<td class="col-md-4">
{if $value['acceptable'] eq true}
<span class="ok">
{$langs['labels']['OK']}
</span>
{else}
<span class="remark">
{if $value['isExtension'] eq true}
{assign var="messageName" value="extension"}
{else}
{assign var="messageName" value="option"}
{/if}
{$langs['messages'][{$messageName}]|replace:'{0}':$value['required']}
</span>
{/if}
</td>
</tr>
{/foreach}
</tbody>
</table>
<table class="table table-striped">
<thead>
<tr>
<th colspan="2">{$langs['labels']['MySQL Configuration']}</th>
</tr>
</thead>
<tbody>
{foreach from=$mysqlConfig key=name item=value}
<tr>
<td class="col-md-4">
{if $langs['labels'][$name] eq ''}
{$name}
{else}
{$langs['labels'][{$name}]}
{/if}
</td>
<td class="col-md-4">{$value['current']}</td>
<td class="col-md-4">
{if $value['acceptable'] eq true}
<span class="ok">
{$langs['labels']['OK']}
</span>
{else}
<span class="remark">
{if $value['isExtension'] eq true}
{assign var="messageName" value="extension"}
{else}
{assign var="messageName" value="option"}
{/if}
{$langs['messages'][{$messageName}]|replace:'{0}':$value['required']}
</span>
{/if}
</td>
</tr>
{/foreach}
</tbody>
</table>
<div class="cell cell-website pull-right" align="right">
<a target="_blank" href="http://blog.espocrm.com/administration/server-configuration-for-espocrm/" style="font-weight:bold;">{$langs['labels']['Configuration Instructions']}</a>
</div>
<br>
<div class="loading-icon hide"></div>
</div>
</form>
</div>
<footer class="modal-footer">
<button class="btn btn-default" type="button" id="back">{$langs['labels']['Back']}</button>
<button class="btn btn-warning" type="button" id="re-check">{$langs['labels']['Re-check']}</button>
<button class="btn btn-primary" type="button" id="next">{$langs['labels']['Install']}</button>
</footer>
<script>
{literal}
$(function(){
{/literal}
var opt = {
action: 'setupConfirmation',
langs: {$langsJs},
modRewriteUrl: '{$modRewriteUrl}',
apiPath: '{$apiPath}',
serverType: '{$serverType}',
OS: '{$OS}'
}
{literal}
var installScript = new InstallScript(opt);
jQuery('#re-check').click(function(){
installScript.goTo('setupConfirmation');
});
})
{/literal}
</script>
+2 -5
View File
@@ -1,13 +1,10 @@
<header class="panel-heading">
<h4 class="panel-title">{$langs['labels']['Step1 page title']}</h4>
</header>
<div class="panel-body body">
<div id="msg-box" class="alert hide"></div>
<form id="nav">
<div class="row">
<div class=" col-md-12">
<div class="row">
<div class="cell cell-website col-sm-12 form-group">
<div class="cell cell-website col-sm-12 form-group">
<div class="field field-website">
<textarea rows="16" class="license-field">{$license}</textarea>
</div>
@@ -20,7 +17,7 @@
<label class="point-lbl" for="license-agree">&nbsp;&nbsp;&nbsp;{$langs['labels']['I accept the agreement']}</label>
</div>
</form>
</div>
<footer class="modal-footer">
<button class="btn btn-default" type="button" id="back">{$langs['labels']['Back']}</button>
+2 -5
View File
@@ -1,6 +1,3 @@
<header class="panel-heading">
<h4 class="panel-title">{$langs['labels']['Step2 page title']}</h4>
</header>
<div class="panel-body body">
<div id="msg-box" class="alert hide"></div>
@@ -24,13 +21,13 @@
<div class="cell cell-website col-sm-12 form-group">
<label class="field-label-website control-label">{$langs['fields']['Database User Name']} *</label>
<div class="field field-website">
<input type="text" value="{$fields['db-user-name'].value}" name="db-user-name" class="main-element form-control">
<input type="text" value="{$fields['db-user-name'].value}" name="db-user-name" class="main-element form-control" autocomplete="off">
</div>
</div>
<div class="cell cell-website col-sm-12 form-group">
<label class="field-label-website control-label">{$langs['fields']['Database User Password']}</label>
<div class="field field-website">
<input type="password" value="{$fields['db-user-password'].value}" name="db-user-password" class="main-element form-control">
<input type="password" value="{$fields['db-user-password'].value}" name="db-user-password" class="main-element form-control" autocomplete="off">
</div>
</div>
</div>
+4 -7
View File
@@ -1,6 +1,3 @@
<header class="panel-heading">
<h4 class="panel-title">{$langs['labels']['Step3 page title']}</h4>
</header>
<div class="panel-body body">
<div id="msg-box" class="alert hide"></div>
<div class="loading-icon hide"></div>
@@ -12,7 +9,7 @@
<div class="cell cell-website col-sm-12 form-group">
<label class="field-label-website control-label">{$langs['fields']['User Name']} *</label>
<div class="field field-website">
<input type="text" value="{$fields['user-name'].value}" name="user-name" class="main-element form-control">
<input type="text" value="{$fields['user-name'].value}" name="user-name" class="main-element form-control" autocomplete="off">
</div>
</div>
</div>
@@ -21,7 +18,7 @@
<div class="cell cell-website col-sm-12 form-group">
<label class="field-label-website control-label">{$langs['fields']['Password']} *</label>
<div class="field field-website">
<input type="password" value="{$fields['user-pass'].value}" name="user-pass" class="main-element form-control">
<input type="password" value="{$fields['user-pass'].value}" name="user-pass" class="main-element form-control" autocomplete="off">
</div>
</div>
</div>
@@ -30,7 +27,7 @@
<div class="cell cell-website col-sm-12 form-group">
<label class="field-label-website control-label">{$langs['fields']['Confirm Password']} *</label>
<div class="field field-website">
<input type="password" value="{$fields['user-confirm-pass'].value}" name="user-confirm-pass" class="main-element form-control">
<input type="password" value="{$fields['user-confirm-pass'].value}" name="user-confirm-pass" class="main-element form-control" autocomplete="off">
</div>
</div>
</div>
@@ -40,7 +37,6 @@
</form>
</div>
<footer class="modal-footer">
<button class="btn btn-default" type="button" id="back">{$langs['labels']['Back']}</button>
<button class="btn btn-primary" type="button" id="next">{$langs['labels']['Next']}</button>
</footer>
<script>
@@ -51,6 +47,7 @@
action: 'step3',
langs: {$langsJs},
modRewriteUrl: '{$modRewriteUrl}',
apiPath: '{$apiPath}',
serverType: '{$serverType}',
OS: '{$OS}'
}
+19 -22
View File
@@ -1,6 +1,3 @@
<header class="panel-heading">
<h4 class="panel-title main-title">{$langs['labels']['Step4 page title']}</h4>
</header>
<div class="panel-body body">
<div id="msg-box" class="alert hide"></div>
<div class="loading-icon hide"></div>
@@ -24,7 +21,7 @@
</select>
</div>
</div>
<div class="cell cell-timeFormat col-sm-6 form-group">
<label class="field-label-timeFormat control-label">
{$langs['fields']['Time Format']}
@@ -40,16 +37,16 @@
{/foreach}
</select>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="cell cell-timeZone col-sm-6 form-group">
<label class="field-label-timeZone control-label">
{$langs['fields']['Time Zone']}
</label>
<div class="field field-timeZone">
<select name="timeZone" class="form-control main-element">
<select name="timeZone" class="form-control main-element">
{foreach from=$settingsDefaults['timeZone'].options item=lbl key=val}
{if $val == $fields['timeZone'].value}
<option selected="selected" value="{$val}">{$lbl}</option>
@@ -60,13 +57,13 @@
</select>
</div>
</div>
<div class="cell cell-weekStart col-sm-6 form-group">
<label class="field-label-weekStart control-label">
{$langs['fields']['First Day of Week']}
</label>
<div class="field field-weekStart">
<select name="weekStart" class="form-control main-element">
<select name="weekStart" class="form-control main-element">
{foreach from=$settingsDefaults['weekStart'].options item=lbl key=val}
{if $val == $fields['weekStart'].value}
<option selected="selected" value="{$val}">{$lbl}</option>
@@ -77,15 +74,15 @@
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="cell cell-defaultCurrency col-sm-6 form-group">
<label class="field-label-defaultCurrency control-label">
{$langs['fields']['Default Currency']}
</label>
<div class="field field-defaultCurrency">
<select name="defaultCurrency" class="form-control main-element">
<select name="defaultCurrency" class="form-control main-element">
{foreach from=$settingsDefaults['defaultCurrency'].options item=lbl key=val}
{if $val == $fields['defaultCurrency'].value}
<option selected="selected" value="{$val}">{$lbl}</option>
@@ -96,8 +93,8 @@
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="cell cell-thousandSeparator col-sm-6 form-group">
<label class="field-label-thousandSeparator control-label">
@@ -107,7 +104,7 @@
<input type="text" class="main-element form-control" name="thousandSeparator" value="{$fields['thousandSeparator'].value}">
</div>
</div>
<div class="cell cell-decimalMark col-sm-6 form-group">
<label class="field-label-decimalMark control-label">
{$langs['fields']['Decimal Mark']} *</label>
@@ -115,15 +112,15 @@
<input type="text" class="main-element form-control" name="decimalMark" value="{$fields['decimalMark'].value}">
</div>
</div>
</div>
<div class="row">
</div>
<div class="row">
<div class="cell cell-language col-sm-6 form-group">
<label class="field-label-language control-label">
{$langs['fields']['Language']}
</label>
<div class="field field-language">
<select name="language" class="form-control main-element">
<select name="language" class="form-control main-element">
{foreach from=$settingsDefaults['language'].options item=lbl key=val}
{if $val == $fields['language'].value}
<option selected="selected" value="{$val}">{$lbl}</option>
@@ -134,10 +131,10 @@
</select>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</form>
</div>
<footer class="modal-footer">
<button class="btn btn-default" type="button" id="back">{$langs['labels']['Back']}</button>
+18 -21
View File
@@ -1,13 +1,10 @@
<header class="panel-heading">
<h4 class="panel-title main-title">{$langs['labels']['Step5 page title']}</h4>
</header>
<div class="panel-body body">
<div id="msg-box" class="alert hide"></div>
<div class="loading-icon hide"></div>
<form id="nav">
<form id="nav">
<div class="row">
<div class="col-md-8" style="width:100%" >
<div class="row">
<div class="cell cell-outboundEmailFromName col-sm-6 form-group">
<label class="field-label-outboundEmailFromName control-label">
@@ -16,7 +13,7 @@
<input type="text" class="main-element form-control" name="outboundEmailFromName" value="{$fields['outboundEmailFromName'].value}">
</div>
</div>
<div class="cell cell-outboundEmailFromAddress col-sm-6 form-group">
<label class="field-label-outboundEmailFromAddress control-label">
{$langs['fields']['From Address']}</label>
@@ -24,8 +21,8 @@
<input type="text" class="main-element form-control" name="outboundEmailFromAddress" value="{$fields['outboundEmailFromAddress'].value}">
</div>
</div>
</div>
</div>
<div class="row">
<div class="cell cell-outboundEmailIsShared col-sm-6 form-group">
<label class="field-label-outboundEmailIsShared control-label">
@@ -36,8 +33,8 @@
</div>
</div>
</div>
<br>
<br>
<div class="row">
<div class="cell cell-smtpServer col-sm-6 form-group">
<label class="field-label-smtpServer control-label">
@@ -55,9 +52,9 @@
<div class="field field-smtpPort">
<input type="text" class="main-element form-control" name="smtpPort" value="{$fields['smtpPort'].value}" pattern="[\-]?[0-9]*" maxlength="4">
</div>
</div>
</div>
</div>
<div class="row">
<div class="cell cell-smtpAuth col-sm-6 form-group">
<label class="field-label-smtpAuth control-label">
@@ -67,13 +64,13 @@
<input type="checkbox" name="smtpAuth" class="main-element" {if $fields['smtpAuth'].value} checked {/if}>
</div>
</div>
<div class="cell cell-smtpSecurity col-sm-6 form-group">
<label class="field-label-smtpSecurity control-label">
{$langs['fields']['smtpSecurity']}
</label>
<div class="field field-smtpSecurity">
<select name="smtpSecurity" class="form-control main-element">
<select name="smtpSecurity" class="form-control main-element">
{foreach from=$settingsDefaults['smtpSecurity'].options item=lbl key=val}
{if $val == $fields['smtpSecurity'].value}
<option selected="selected" value="{$val}">{$lbl}</option>
@@ -85,31 +82,31 @@
</div>
</div>
</div>
<div class="row">
<div class="cell cell-smtpUsername col-sm-6 form-group {if !$fields['smtpAuth'].value} hide {/if}">
<label class="field-label-smtpUsername control-label">
{$langs['fields']['smtpUsername']} *
</label>
<div class="field field-smtpUsername">
<input type="text" class="main-element form-control" name="smtpUsername" value="{$fields['smtpUsername'].value}">
<input type="text" class="main-element form-control" name="smtpUsername" value="{$fields['smtpUsername'].value}" autocomplete="off">
</div>
</div>
</div>
</div>
<div class="row">
<div class="cell cell-smtpPassword col-sm-6 form-group {if !$fields['smtpAuth'].value} hide {/if}">
<label class="field-label-smtpPassword control-label">
{$langs['fields']['smtpPassword']}
</label>
<div class="field field-smtpPassword">
<input type="password" class="main-element form-control" name="smtpPassword" value="{$fields['smtpPassword'].value}">
<input type="password" class="main-element form-control" name="smtpPassword" value="{$fields['smtpPassword'].value}" autocomplete="off">
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</form>
</div>
<footer class="modal-footer">
<button class="btn btn-default" type="button" id="back">{$langs['labels']['Back']}</button>
+54 -1
View File
@@ -23,6 +23,7 @@ select[name="user-lang"] {
}
.panel-title {
text-align: center;
margin-left: 16.6667%;
}
.loading-icon {
@@ -67,10 +68,62 @@ select[name="user-lang"] {
text-align: center;
width: 4%;
float: left;
}
.semicolon-sign {
margin-top: 5px;
}
.version {
font-size: 90%;
color: #999;
}
input[type=checkbox].btn-default {
margin: 0;
}
.cron-help {
margin: 20px;
}
.cron-help pre {
margin-top: 15px;
padding-top: 15px;
padding-bottom: 0;
}
.table {
border-bottom: 1px solid #e8eced;
}
.setup-confirmation {
padding: 8px;
}
.setup-confirmation .table > thead > tr > th, .setup-confirmation table td:first-child {
padding-left: 3%;
}
.setup-confirmation .cell-website {
margin-right: 10px;
}
.setup-confirmation .loading-icon {
margin-top: 10px;
}
span.remark {
color: #a94442;
font-weight: bold;
}
span.ok {
color: #87c956;
}
.more-information {
line-height: 1.5;
font-size: 16px;
margin-top: 100px;
}
+8 -1
View File
@@ -80,6 +80,7 @@ else {
$smarty->caching = false;
$smarty->setTemplateDir('install/core/tpl');
$smarty->assign("version", $installer->getVersion());
$smarty->assign("langs", $langs);
$smarty->assign("langsJs", json_encode($langs));
@@ -97,6 +98,8 @@ switch ($action) {
case 'step3':
case 'errors':
case 'setupConfirmation':
$smarty->assign("apiPath", $systemHelper->getApiPath());
$modRewriteUrl = $systemHelper->getModRewriteUrl();
$smarty->assign("modRewriteUrl", $modRewriteUrl);
$serverType = $systemHelper->getServerType();
@@ -119,12 +122,16 @@ switch ($action) {
$actionFile = $actionsDir.'/'.$action.'.php';
$tplName = $action.'.tpl';
$smarty->assign('tplName', $tplName);
$smarty->assign('action', ucfirst($action));
/** config */
$config = include('core/config.php');
$smarty->assign('config', $config);
if (!empty($actionFile) && file_exists('install/'.$actionFile)) {
include $actionFile;
}
if (!empty($actionFile) && file_exists('install/core/tpl/'.$tplName)) {
ob_clean();
$smarty->display('index.tpl');
+85 -19
View File
@@ -35,6 +35,10 @@ var InstallScript = function(opt) {
this.modRewriteUrl = opt.modRewriteUrl;
}
if (typeof(opt.apiPath) !== 'undefined') {
this.apiPath = opt.apiPath.substr(1) + '/';
}
if (typeof(opt.serverType) !== 'undefined') {
this.serverType = opt.serverType;
}
@@ -50,24 +54,24 @@ var InstallScript = function(opt) {
this.checkActions = [
{
'action': 'checkModRewrite',
'break': true,
'break': true
},
{
'action': 'checkPermission',
'break': true,
'break': true
},
{
'action': 'applySett',
'break': true,
'break': true
},
{
'action': 'buildDatabse',
'break': true,
},
'break': true
}/*,
{
'action': 'createUser',
'break': true,
},
'break': true
}*/
];
this.checkIndex = 0;
@@ -115,7 +119,7 @@ InstallScript.prototype.step1 = function() {
InstallScript.prototype.step2 = function() {
var self = this;
var backAction = 'step1';
var nextAction = 'step3';
var nextAction = 'setupConfirmation';
$('#back').click(function(){
$(this).attr('disabled', 'disabled');
@@ -155,9 +159,28 @@ InstallScript.prototype.step2 = function() {
})
}
InstallScript.prototype.step3 = function() {
InstallScript.prototype.setupConfirmation = function() {
var self = this;
var backAction = 'step2';
var nextAction = 'step3';
$('#back').click(function(){
$(this).attr('disabled', 'disabled');
self.goTo(backAction);
})
$("#next").click(function(){
$(this).attr('disabled', 'disabled');
self.showLoading();
self.actionsChecking();
})
}
InstallScript.prototype.step3 = function() {
var self = this;
var backAction = '';
var nextAction = 'step4';
$('#back').click(function(){
@@ -175,8 +198,25 @@ InstallScript.prototype.step3 = function() {
self.checkPass({
success: function(){
self.showLoading();
self.actionsChecking();
var data = self.userSett;
data['user-name'] = self.userSett.name;
data['user-pass'] = self.userSett.pass;
data.action = 'createUser';
$.ajax({
url: "index.php",
type: "POST",
data: data,
dataType: 'json',
})
.done(function(ajaxData){
if (typeof(ajaxData) != 'undefined' && ajaxData.success) {
self.goTo(nextAction);
} else {
$("#next").removeAttr('disabled');
self.showMsg({msg: self.getLang(ajaxData.errorMsg, 'messages'), error: true});
}
})
},
error: function(msg) {
$("#next").removeAttr('disabled');
@@ -369,6 +409,9 @@ InstallScript.prototype.checkSett = function(opt) {
if (typeof(errors.phpVersion) !== 'undefined') {
msg += self.getLang('phpVersion', 'messages').replace('{minVersion}', errors.phpVersion) + rowDelim;
}
if (typeof(errors.MySQLVersion) !== 'undefined') {
msg += self.getLang('MySQLVersion', 'messages').replace('{minVersion}', errors.MySQLVersion) + rowDelim;
}
if (typeof(errors.exts) !== 'undefined') {
var exts = errors.exts;
@@ -384,6 +427,13 @@ InstallScript.prototype.checkSett = function(opt) {
msg += errors.modRewrite+rowDelim;
}
if (typeof(errors.mysqlSetting) !== 'undefined') {
var mysqlSettingErrorMess = self.getLang(errors.mysqlSetting.errorCode, 'messages');
mysqlSettingErrorMess = mysqlSettingErrorMess.replace('{NAME}', errors.mysqlSetting.name);
mysqlSettingErrorMess = mysqlSettingErrorMess.replace('{VALUE}', errors.mysqlSetting.value);
msg += mysqlSettingErrorMess + rowDelim;
}
if (typeof(errors.dbConnect) !== 'undefined') {
if (typeof(errors.dbConnect.errorCode) !== 'undefined') {
var temp = self.getLang(errors.dbConnect.errorCode, 'messages');
@@ -431,9 +481,8 @@ InstallScript.prototype.validate = function() {
case 'step5':
fieldRequired = ['smtpUsername'];
break;
}
var len = fieldRequired.length;
for (var index = 0; index < len; index++) {
elem = $('[name="'+fieldRequired[index]+'"]').filter(':visible');
@@ -546,6 +595,7 @@ InstallScript.prototype.checkAction = function(dataMain) {
self.callbackChecking(dataMain);
return;
}
var currIndex = this.checkIndex;
var checkAction = this.checkActions[currIndex].action;
this.checkIndex++;
@@ -560,6 +610,7 @@ InstallScript.prototype.checkAction = function(dataMain) {
}
data.action = checkAction;
$.ajax({
url: "index.php",
type: "POST",
@@ -602,7 +653,7 @@ InstallScript.prototype.checkModRewrite = function() {
var self = this;
this.modRewriteUrl;
var urlAjax = '..'+this.modRewriteUrl;;
var urlAjax = '..'+this.modRewriteUrl;
var realJqXHR = $.ajax({
url: urlAjax,
type: "GET",
@@ -616,7 +667,6 @@ InstallScript.prototype.checkModRewrite = function() {
}
self.callbackModRewrite(data);
})
}
@@ -629,10 +679,12 @@ InstallScript.prototype.callbackModRewrite = function(data) {
this.checkAction(ajaxData);
return;
}
ajaxData.success = false;
if (typeof(this.langs) !== 'undefined') {
ajaxData.errorMsg = (typeof(this.langs['options']['modRewriteHelp'][this.serverType]) !== 'undefined')? this.langs['options']['modRewriteHelp'][this.serverType] : this.langs['options']['modRewriteHelp']['default'];
ajaxData.errorMsg += (typeof(this.langs['options']['modRewriteInstruction'][this.serverType]) !== 'undefined' && typeof(this.langs['options']['modRewriteInstruction'][this.serverType][this.OS]) !== 'undefined') ? this.langs['options']['modRewriteInstruction'][this.serverType][this.OS] : '';
ajaxData.errorMsg = ajaxData.errorMsg.replace("{ESPO_PATH}", this.getEspoPath(true)).replace("{API_PATH}", this.apiPath).replace("{API_PATH}", this.apiPath);
}
var realCheckIndex = this.checkIndex - 1;
if (typeof(this.checkActions[realCheckIndex]) != 'undefined'
@@ -650,7 +702,7 @@ InstallScript.prototype.callbackModRewrite = function(data) {
InstallScript.prototype.callbackChecking = function(data) {
this.hideLoading();
if (typeof(data) != 'undefined' && data.success) {
this.goTo('step4');
this.goTo('step3');
}
else {
var desc = (typeof(data.errorMsg))? data.errorMsg : '';
@@ -666,10 +718,24 @@ InstallScript.prototype.callbackChecking = function(data) {
}
}
InstallScript.prototype.getEspoPath = function(onlyPath) {
onlyPath = typeof onlyPath !== 'undefined' ? onlyPath : false;
var location = window.location.href;
if (onlyPath) {
location = window.location.pathname;
}
location = location.replace(/install\/?/, '');
return location;
}
InstallScript.prototype.goToEspo = function() {
var loc = window.location.href;
loc = loc.replace(/install\/?/, '');
window.location.replace(loc);
var location = this.getEspoPath();
window.location.replace(location);
}
window.InstallScript = InstallScript;
+8 -8
View File
@@ -5,35 +5,35 @@
<rewrite>
<rules>
<rule name="rule 1X" stopProcessing="true">
<match url="/?reset/?$" />
<match url="^/?reset/?$" />
<action type="Rewrite" url="reset.html" appendQueryString="true" />
</rule>
<rule name="RequestBlocking1" stopProcessing="true">
<match url="/?data/config\.php$" />
<match url="^/?data/config\.php$" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." />
</rule>
<rule name="RequestBlocking2" stopProcessing="true">
<match url="/?data/logs" />
<match url="^/?data/logs/" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." />
</rule>
<rule name="RequestBlocking3" stopProcessing="true">
<match url="/?data/cache" />
<match url="^/?data/cache/" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." />
</rule>
<rule name="RequestBlocking4" stopProcessing="true">
<match url="/?data/upload" />
<match url="^/?data/upload/" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." />
</rule>
<rule name="RequestBlocking5" stopProcessing="true">
<match url="/?application" />
<match url="^/?application/" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." />
</rule>
<rule name="RequestBlocking6" stopProcessing="true">
<match url="/?custom" />
<match url="^/?custom/" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." />
</rule>
<rule name="RequestBlocking7" stopProcessing="true">
<match url="/?vendor" />
<match url="^/?vendor/" />
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." />
</rule>
</rules>