New: Add path to installed dir of external modules + Name and web of

module provider.
This commit is contained in:
Laurent Destailleur 2013-10-28 01:37:04 +01:00
parent c81bb60384
commit 93c5720579
5 changed files with 40 additions and 16 deletions

View File

@ -39,13 +39,11 @@ For users:
- New: [ task #165 ] Add import/export of multiprices.
- New: Add Maghreb regions and departments.
- New: A more responsive desgin for statistic box of home page.
- Qual: Implement same rule for return value of all command line scripts (0 when success, <>0 if error).
- New: [ task #1005 ] Adapting to Spanish legislation bill numbering
- New: [ task #1011 ] Now supplier order and invoice deal with payment terms and mode.
- New: [ task #1014 ] Add option to recursivly add parent category.
- New: [ task #1016 ] Can define a specific numbering for deposits.
- New: [ task #918 ] Stock replenishment.
- Fix: [ bug #992 ] Proforma invoices don't have a separated numeric count.
- New : Add pdf link into supplier invoice list and supplier order list.
- New : Genrate auto the PDF for supplier invoice.
- New : Add category into filter webservice thirdparty method getListOfThirdParties.
@ -60,12 +58,15 @@ For users:
- New: Add hidden option MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS.
- New: Can send an email from thirdparty card.
- New: Can cancel holidays that were previously validated.
- Fix: [bug #1022] correct margin calculation for credit notes.
- New: Can choose contact on event (action com) creation, and filtred by thirdparty.
- New: Add hidden option MAIN_FORCE_DEFAULT_STATE_ID.
- New: Add page to make mass stock movement.
- New: Add field oustanding limit into thirdparty properties.
- New: Can enter a vat payment of zero.
- New: Add path to installed dir of external modules + Name and web of module provider.
- Qual: Implement same rule for return value of all command line scripts (0 when success, <>0 if error).
- Fix: [ bug #992 ] Proforma invoices don't have a separated numeric count.
- Fix: [ bug #1022 ] correct margin calculation for credit notes.
For translators:
- Qual: Normalized sort order of all languages files with english reference files.
@ -86,7 +87,6 @@ For developers:
MAIN_MOTD_SETUPPAGE, MAIN_MOTD_SETUPPAGE, MAIN_HOME now accept "|langfile" into translation
key to use a specific language file.
- New: Make some changes to allow usage of several alternative $dolibarr_main_url_root variables.
Fix also several bugs with old code.
- Qual: All nowrap properties are now using CSS class nowrap.
- Qual: Move hardcoded code of module mailmanspip into trigger.
- New: Into POST forms, if you can add a parameter DOL_AUTOSET_COOKIE with a vlue that is list name,
@ -97,6 +97,7 @@ For developers:
- New: A trigger can return an array of error strings instead of one error string.
- New: Add method to use a dictionnary as a combo box.
- New: Add update method for web service product.
- Fix also several bugs with old code.
WARNING: Following change may create regression for some external modules, but was necessary to make
Dolibarr better:

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
@ -154,22 +154,21 @@ foreach ($modulesdir as $dir)
$const_name = 'MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',get_class($objMod)));
if ($objMod->version == 'development' && (empty($conf->global->$const_name) && ($conf->global->MAIN_FEATURES_LEVEL < 2))) $modulequalified=0;
if ($objMod->version == 'experimental' && (empty($conf->global->$const_name) && ($conf->global->MAIN_FEATURES_LEVEL < 1))) $modulequalified=0;
// We discard modules according to property disabled
// We discard modules according to property disabled
if (isset($objMod->hidden) && $objMod->hidden) $modulequalified=false;
// Define array $categ with categ with at least one qualified module
if ($modulequalified)
{
$modules[$i] = $objMod;
$filename[$i]= $modName;
$orders[$i] = $objMod->family."_".$j; // Sort by family, then by module number
$special = isset($specialtostring[$objMod->special])?$specialtostring[$objMod->special]:'unknown';
$dirmod[$i] = $dir;
// Set categ[$i]
$special = isset($specialtostring[$objMod->special])?$specialtostring[$objMod->special]:'unknown';
if ($objMod->version == 'development' || $objMod->version == 'experimental') $special='expdev';
//print "x".$modName." ".$orders[$i]." ".$special."\n<br>";
if (isset($categ[$special])) $categ[$special]++; // Array of all different modules categories
else $categ[$special]=1;
$dirmod[$i] = $dir;
$j++;
$i++;
}
@ -337,7 +336,7 @@ if ($mode != 'marketplace')
// Print a separator if we change family
//print "<tr><td>xx".$oldfamily."-".$family."-".$atleastoneforfamily."<br></td><tr>";
//if ($oldfamily && $family!=$oldfamily && $atleastoneforfamily) {
if ($family!=$oldfamily)
if ($family!=$oldfamily)
{
print '<tr class="liste_titre">'."\n";
print '<td colspan="5">';
@ -391,7 +390,16 @@ if ($mode != 'marketplace')
// Version
print '<td align="center" valign="top" class="nowrap">';
print $objMod->getVersion();
$version=$objMod->getVersion();
$dirofmodule=$dirmod[$key];
if ($objMod->isCoreOrExternalModule() == 'external')
{
$text=$langs->trans("ExternalModule",$dirofmodule);
if (! empty($objMod->editor_name) && $objMod->editor_name != 'dolibarr') $text.=' - '.$objMod->editor_name;
if (! empty($objMod->editor_web) && $objMod->editor_web != 'www.dolibarr.org') $text.=' - '.$objMod->editor_web;
print $form->textwithpicto($version, $text, 1, 'help');
}
else print $version;
print "</td>\n";
// Activate/Disable and Setup (2 columns)
@ -401,7 +409,6 @@ if ($mode != 'marketplace')
print '<td align="center" valign="middle">';
// Module actif
if (! empty($objMod->always_enabled) || ((! empty($conf->multicompany->enabled) && $objMod->core_enabled) && ($user->entity || $conf->entity!=1)))
{
print $langs->trans("Required");
@ -459,7 +466,7 @@ if ($mode != 'marketplace')
}
else
{
{
print '<td align="center" valign="middle">';
if (! empty($objMod->always_enabled))

View File

@ -262,7 +262,7 @@ abstract class DolibarrModules
/**
* Retourne la version du module.
* Return module version.
* Pour les modules a l'etat 'experimental', retourne la traduction de 'experimental'
* Pour les modules 'dolibarr', retourne la version de Dolibarr
* Pour les autres modules, retourne la version du module
@ -282,6 +282,20 @@ abstract class DolibarrModules
}
/**
* Return if a module is a core or external module
*
* @return string 'core', 'external' or 'unknown'
*/
function isCoreOrExternalModule()
{
if ($this->version == 'dolibarr') return 'core';
if (! empty($this->version) && ! in_array($this->version,array('experimental','development'))) return 'external';
if (! empty($this->editor_name) || ! empty($this->editor_web)) return 'external';
return 'unknown';
}
/**
* Return list of lang files related to module
*

View File

@ -379,6 +379,7 @@ LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone nu
KeepEmptyToUseDefault=Keep empty to use default value
DefaultLink=Default link
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
ExternalModule=External module - Installed into directory %s
# Modules
Module0Name=Users & groups

View File

@ -379,6 +379,7 @@ LinkToTest=Lien cliquable généré pour l'utilisateur <strong>%s</strong> (cliq
KeepEmptyToUseDefault=Laisser ce champ vide pour utiliser la valeur par défaut
DefaultLink=Lien par défaut
ValueOverwrittenByUserSetup=Attention, cette valeur peut être écrasée par une valeur spécifique à la configuration de l'utilisateur (chaque utilisateur pouvant avoir sa propre URL « clicktodial »)
ExternalModule=Module externe - Installé dans le répertoire %s
# Modules
Module0Name=Utilisateurs & groupes