diff --git a/.editorconfig b/.editorconfig
index bdd599d30..4eb414385 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -280,7 +280,7 @@ ij_javascript_while_brace_force = always
ij_javascript_while_on_new_line = false
ij_javascript_wrap_comments = false
-[{*.ctp,*.hphp,*.inc,*.module,*.php,*.php4,*.php5,*.phtml}]
+[{*.ctp, *.hphp, *.inc, *.module, *.php, *.php4, *.php5, *.phtml}]
indent_style = tab
ij_continuation_indent_size = 4
ij_smart_tabs = true
@@ -289,8 +289,8 @@ ij_php_align_assignments = false
ij_php_align_class_constants = false
ij_php_align_group_field_declarations = false
ij_php_align_inline_comments = false
-ij_php_align_key_value_pairs = false
-ij_php_align_multiline_array_initializer_expression = false
+ij_php_align_key_value_pairs = true
+ij_php_align_multiline_array_initializer_expression = true
ij_php_align_multiline_binary_operation = false
ij_php_align_multiline_chained_methods = false
ij_php_align_multiline_extends_list = false
diff --git a/.make/license/updateLicenses.php b/.make/license/updateLicenses.php
index 706378247..7531aa003 100644
--- a/.make/license/updateLicenses.php
+++ b/.make/license/updateLicenses.php
@@ -10,10 +10,6 @@
* `curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe`
* this is a Windows port : https://stedolan.github.io/jq/
*
- * Known bug on Windows :
- * Licenses added from Composer contains a path in the product node (N°3870)
- * `C:\Dev\wamp64\www\itop-dev\.make\license/../..//lib/symfony/console`
- *
* Licenses sources :
* * `composer licenses --format json` (see https://getcomposer.org/doc/03-cli.md#licenses)
* * keep every existing nodes with `/licenses/license[11]/product/@scope` not in ['lib', 'datamodels']
@@ -70,39 +66,83 @@ function get_license_nodes($file_path)
$xp = new DOMXPath($dom);
$licenseList = $xp->query('/licenses/license');
- $licenses = iterator_to_array($licenseList);
+ $licenses = iterator_to_array($licenseList);
usort($licenses, 'sort_by_product');
+
return $licenses;
}
+/** @noinspection SuspiciousAssignmentsInspection */
+function fix_product_name(DOMNode &$oProductNode)
+{
+ $sProductNameOrig = $oProductNode->nodeValue;
+
+ // sample : `C:\Dev\wamp64\www\itop-27\.make\license/../..//lib/symfony/polyfill-ctype`
+ $sProductNameFixed = remove_dir_from_string($sProductNameOrig, 'lib/');
+
+ // sample : `C:\Dev\wamp64\www\itop-27\.make\license/../..//datamodels/2.x/authent-cas/vendor/apereo/phpcas`
+ $sProductNameFixed = remove_dir_from_string($sProductNameFixed, 'vendor/');
+
+ $oProductNode->nodeValue = $sProductNameFixed;
+}
+
+function remove_dir_from_string($sString, $sNeedle)
+{
+ if (strpos($sString, $sNeedle) === false) {
+ return $sString;
+ }
+
+ $sStringTmp = strstr($sString, $sNeedle);
+ $sStringFixed = str_replace($sNeedle, '', $sStringTmp);
+
+ // DEBUG trace O:)
+// echo "$sNeedle = $sString => $sStringFixed\n";
+
+ return $sStringFixed;
+}
+
$old_licenses = get_license_nodes($xmlFilePath);
//generate file with updated licenses
$generated_license_file_path = __DIR__."/provfile.xml";
-exec("bash " . __DIR__ . "/gen-community-license.sh $iTopFolder > ". $generated_license_file_path);
+echo "- Generating licences...";
+exec("bash ".__DIR__."/gen-community-license.sh $iTopFolder > ".$generated_license_file_path);
+echo "OK!\n";
+
+echo "- Get licenses nodes...";
$new_licenses = get_license_nodes($generated_license_file_path);
-exec("rm -f ". $generated_license_file_path);
+unlink($generated_license_file_path);
foreach ($old_licenses as $b) {
$aProductNode = get_product_node($b);
- if (get_scope($aProductNode) !== "lib" && get_scope($aProductNode) !== "datamodels" )
- {
+ if (get_scope($aProductNode) !== "lib" && get_scope($aProductNode) !== "datamodels") {
$new_licenses[] = $b;
}
}
usort($new_licenses, 'sort_by_product');
+echo "OK!\n";
+echo "- Overwritting Combodo license file...";
$new_dom = new DOMDocument("1.0");
$new_dom->formatOutput = true;
$root = $new_dom->createElement("licenses");
$new_dom->appendChild($root);
foreach ($new_licenses as $b) {
- $node = $new_dom->importNode($b,true);
- $root->appendChild($new_dom->importNode($b,true));
+ $node = $new_dom->importNode($b, true);
+
+ // N°3870 fix when running script in Windows
+ // fix should be in gen-community-license.sh but it is easier to do it here !
+ if (strncasecmp(PHP_OS, 'WIN', 3) === 0) {
+ $oProductNodeOrig = get_product_node($node);
+ fix_product_name($oProductNodeOrig);
+ }
+
+ $root->appendChild($node);
}
-$new_dom->save($xmlFilePath);
\ No newline at end of file
+$new_dom->save($xmlFilePath);
+echo "OK!\n";
\ No newline at end of file
diff --git a/setup/compiler.class.inc.php b/setup/compiler.class.inc.php
index d904eb35b..8f9c6f63d 100644
--- a/setup/compiler.class.inc.php
+++ b/setup/compiler.class.inc.php
@@ -71,7 +71,7 @@ class MFCompiler
* @var string
* @since 2.7.5 3.0.0 N°4020
*/
- public const REBUILD_HKEYS_NEVER= APPROOT.'data/.setup-rebuild-hkeys-never';
+ const REBUILD_HKEYS_NEVER = APPROOT.'data/.setup-rebuild-hkeys-never';
/** @var \ModelFactory */
protected $oFactory;
diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php
index 8a1446352..9c22a2f55 100644
--- a/setup/setuputils.class.inc.php
+++ b/setup/setuputils.class.inc.php
@@ -1013,8 +1013,8 @@ class SetupUtils
$oPage, $bIsItopInstall, $sDBServer, $sDBUser, $sDBPwd, $sDBName, $sDBPrefix, $bTlsEnabled, $sTlsCA,
$sNewDBName = ''
) {
- $sWikiVersion = utils::GetItopVersionWikiSyntax(); //eg : '2_7_0';
- $sMysqlTlsWikiPageUrl = 'https://wiki.openitop.org/doku.php?id='.$sWikiVersion.':install:php_and_mysql_tls';
+ $sWikiVersion = utils::GetItopVersionWikiSyntax(); //eg : '2_7_0';
+ $sMysqlTlsWikiPageUrl = 'https://www.itophub.io/wiki/page?id='.$sWikiVersion.':install:php_and_mysql_tls';
$oPage->add('
| ');
$oPage->add(' |