diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 893f172cb7e..1e7793c9b20 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -291,16 +291,17 @@ asort($orders); // Affichage debut page -if ($mode==0) { $tagmode = 'common'; print $langs->trans("ModulesDesc")."
\n"; } -if ($mode==2) { $tagmode = 'other'; print $langs->trans("ModulesSpecialDesc")."
\n"; } -if ($mode==1) { $tagmode = 'interfaces'; print $langs->trans("ModulesInterfaceDesc")."
\n"; } -if ($mode==3) { $tagmode = 'functional'; print $langs->trans("ModulesJobDesc")."
\n"; } +if ($mode==0) { $tagmode = 'common'; print $langs->trans("ModulesDesc")."
\n"; } +if ($mode==2) { $tagmode = 'other'; print $langs->trans("ModulesSpecialDesc")."
\n"; } +if ($mode==1) { $tagmode = 'interfaces'; print $langs->trans("ModulesInterfaceDesc")."
\n"; } +if ($mode==3) { $tagmode = 'functional'; print $langs->trans("ModulesJobDesc")."
\n"; } +if ($mode==4) { $tagmode = 'marketplace'; print $langs->trans("ModulesMarketPlaceDesc")."
\n"; } print "
\n"; $h = 0; -$categidx=0; +$categidx=0; // Main if (! empty($categ[$categidx])) { $head[$h][0] = DOL_URL_ROOT."/admin/modules.php?mode=".$categidx; @@ -309,7 +310,7 @@ if (! empty($categ[$categidx])) $h++; } -$categidx=2; +$categidx=2; // Other if (! empty($categ[$categidx])) { $head[$h][0] = DOL_URL_ROOT."/admin/modules.php?mode=".$categidx; @@ -318,7 +319,7 @@ if (! empty($categ[$categidx])) $h++; } -$categidx=1; +$categidx=1; // Interfaces if (! empty($categ[$categidx])) { $head[$h][0] = DOL_URL_ROOT."/admin/modules.php?mode=".$categidx; @@ -327,7 +328,7 @@ if (! empty($categ[$categidx])) $h++; } -$categidx=3; +$categidx=3; // Not used if (! empty($categ[$categidx])) { $head[$h][0] = DOL_URL_ROOT."/admin/modules.php?mode=".$categidx; @@ -336,194 +337,242 @@ if (! empty($categ[$categidx])) $h++; } +$categidx=4; +//if (! empty($categ[$categidx])) +//{ + $head[$h][0] = DOL_URL_ROOT."/admin/modules.php?mode=".$categidx; + $head[$h][1] = $langs->trans("ModulesMarketPlaces"); + $head[$h][2] = 'marketplace'; + $h++; +//} + + dol_fiche_head($head, $tagmode, $langs->trans("Modules")); if ($mesg) print '
'.$mesg.'
'; -print "\n"; -print "\n"; -print " \n"; -print " \n"; -print " \n"; -print " \n"; -//print " \n"; -print " \n"; -print " \n"; -print "\n"; - -// Affichage liste modules - -$var=true; -$oldfamily=''; - -$familylib=array( -'base'=>$langs->trans("ModuleFamilyBase"), -'crm'=>$langs->trans("ModuleFamilyCrm"), -'products'=>$langs->trans("ModuleFamilyProducts"), -'hr'=>$langs->trans("ModuleFamilyHr"), -'projects'=>$langs->trans("ModuleFamilyProjects"), -'financial'=>$langs->trans("ModuleFamilyFinancial"), -'ecm'=>$langs->trans("ModuleFamilyECM"), -'technic'=>$langs->trans("ModuleFamilyTechnic"), -'other'=>$langs->trans("ModuleFamilyOther") -); -foreach ($orders as $key => $value) +if ($mode != 4) { - $tab=explode('_',$value); - $family=$tab[0]; $numero=$tab[1]; + print "
".$langs->trans("Family")."".$langs->trans("Module")."".$langs->trans("Description")."".$langs->trans("Version")."".$langs->trans("DbVersion")."".$langs->trans("Status")."".$langs->trans("SetupShort")."
\n"; + //print "\n"; + print ''."\n"; + //print " \n"; + print " \n"; + print " \n"; + print " \n"; + //print " \n"; + print " \n"; + print " \n"; + print "\n"; - $modName = $filename[$key]; - $objMod = $modules[$key]; - $const_name = 'MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',get_class($objMod))); + // Affichage liste modules - // Load all lang files of module - if (isset($objMod->langfiles) && is_array($objMod->langfiles)) + $var=true; + $oldfamily=''; + + $familylib=array( + 'base'=>$langs->trans("ModuleFamilyBase"), + 'crm'=>$langs->trans("ModuleFamilyCrm"), + 'products'=>$langs->trans("ModuleFamilyProducts"), + 'hr'=>$langs->trans("ModuleFamilyHr"), + 'projects'=>$langs->trans("ModuleFamilyProjects"), + 'financial'=>$langs->trans("ModuleFamilyFinancial"), + 'ecm'=>$langs->trans("ModuleFamilyECM"), + 'technic'=>$langs->trans("ModuleFamilyTechnic"), + 'other'=>$langs->trans("ModuleFamilyOther") + ); + foreach ($orders as $key => $value) { - foreach($objMod->langfiles as $domain) - { - $langs->load($domain); - } - } + $tab=explode('_',$value); + $family=$tab[0]; $numero=$tab[1]; - // Print a separator if we change family - //print ""; - if ($oldfamily && $family!=$oldfamily && $atleastoneforfamily) { - print "\n \n\n"; - $atleastoneforfamily=0; - //print ""; - } + $modName = $filename[$key]; + $objMod = $modules[$key]; - if ($objMod->special == $mode) - { - $atleastoneforfamily++; - $var=!$var; + if ($objMod->special != $mode) continue; // Discard if not for tab - print "\n"; + $const_name = 'MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',get_class($objMod))); - print " "; + //if ($oldfamily && $family!=$oldfamily && $atleastoneforfamily) { + if ($family!=$oldfamily) { + print "\n \n\n"; + $atleastoneforfamily=0; + //print ""; } - else + + if ($objMod->special == $mode) { - print ' '; - } - print "\n"; + $atleastoneforfamily++; + $var=!$var; - // Picto - print ' '; + print "\n"; - // Name - print '\n"; - - // Desc - print "\n"; - - // Version - print "\n"; - - // Activate/Disable and Setup - print "'."\n"; + //print ' '; } + //print "\n"; - if (! empty($objMod->config_page_url) && !$disableSetup) + // Picto + print ' '; + + // Name + print '\n"; + + // Desc + print "\n"; + + // Version + print "\n"; + + // Activate/Disable and Setup (2 columns) + if (! empty($conf->global->$const_name)) + { + $disableSetup = 0; + + print "\n"; - } - else if (preg_match('/^([^@]+)@([^@]+)$/i',$objMod->config_page_url,$regs)) - { - print ''; + print $langs->trans("Required"); + if ($conf->global->MAIN_MODULE_MULTICOMPANY && $user->entity) $disableSetup++; + print ''."\n"; } else { - print ''; + print ''; + print img_picto($langs->trans("Activated"),'on'); + print ''."\n"; } + + if (! empty($objMod->config_page_url) && !$disableSetup) + { + if (is_array($objMod->config_page_url)) + { + print ' \n"; + } + else if (preg_match('/^([^@]+)@([^@]+)$/i',$objMod->config_page_url,$regs)) + { + print ''; + } + else + { + print ''; + } + } + else + { + print ""; + } + } else { - print ""; + print "\n \n"; } - } - else - { - if (! empty($objMod->always_enabled)) - { - // Ne devrait pas arriver. - } - - // Module non actif - print ''; - print img_picto($langs->trans("Disabled"),'off'); - print "\n \n"; + print "\n"; } - print "\n"; } - + print "
".$langs->trans("Family")."".$langs->trans("Module")."".$langs->trans("Description")."".$langs->trans("Version")."".$langs->trans("DbVersion")."".$langs->trans("Status")."".$langs->trans("SetupShort")."
xx".$oldfamily."-".$family."-".$atleastoneforfamily."
yy".$oldfamily."-".$family."-".$atleastoneforfamily."
"; - if ($family!=$oldfamily) + // Load all lang files of module + if (isset($objMod->langfiles) && is_array($objMod->langfiles)) { + foreach($objMod->langfiles as $domain) + { + $langs->load($domain); + } + } + + // Print a separator if we change family + //print "
xx".$oldfamily."-".$family."-".$atleastoneforfamily."
"; $familytext=empty($familylib[$family])?$family:$familylib[$family]; print $familytext; - $oldfamily=$family; + print "
yy".$oldfamily."-".$family."-".$atleastoneforfamily."
'; - if (! empty($objMod->picto)) - { - if (preg_match('/^\//i',$objMod->picto)) print img_picto('',$objMod->picto,'',1); - else print img_object('',$objMod->picto); - } - else - { - print img_object('','generic'); - } - print '
'.$objMod->getName(); - print ""; - print nl2br($objMod->getDesc()); - print ""; - print $objMod->getVersion(); - print ""; - if (! empty($conf->global->$const_name)) - { - $disableSetup = 0; - - // Module actif - if (! empty($objMod->always_enabled) || (($conf->global->MAIN_MODULE_MULTICOMPANY && $objMod->core_enabled) && ($user->entity || $conf->entity!=1))) + //print ' '; + if ($family!=$oldfamily) { - print $langs->trans("Required"); - if ($conf->global->MAIN_MODULE_MULTICOMPANY && $user->entity) $disableSetup++; + $familytext=empty($familylib[$family])?$family:$familylib[$family]; + //print $familytext; + $oldfamily=$family; } else { - print ''; - print img_picto($langs->trans("Activated"),'on'); - print ''; + if (! empty($objMod->picto)) { - if (is_array($objMod->config_page_url)) + if (preg_match('/^\//i',$objMod->picto)) print img_picto('',$objMod->picto,'',1); + else print img_object('',$objMod->picto); + } + else + { + print img_object('','generic'); + } + print ''.$objMod->getName(); + print ""; + print nl2br($objMod->getDesc()); + print ""; + print $objMod->getVersion(); + print ""; + + // Module actif + if (! empty($objMod->always_enabled) || (($conf->global->MAIN_MODULE_MULTICOMPANY && $objMod->core_enabled) && ($user->entity || $conf->entity!=1))) { - print ' '; - $i=0; - foreach ($objMod->config_page_url as $page) - { - $urlpage=$page; - if ($i++) - { - print ''.img_picto(ucfirst($page),"setup").' '; - // print ''.ucfirst($page).' '; - } - else - { - if (preg_match('/^([^@]+)@([^@]+)$/i',$urlpage,$regs)) - { - print ''.img_picto($langs->trans("Setup"),"setup").' '; - } - else - { - print ''.img_picto($langs->trans("Setup"),"setup").' '; - } - } - } - print "'.img_picto($langs->trans("Setup"),"setup").''.img_picto($langs->trans("Setup"),"setup").''; + $i=0; + foreach ($objMod->config_page_url as $page) + { + $urlpage=$page; + if ($i++) + { + print ''.img_picto(ucfirst($page),"setup").' '; + // print ''.ucfirst($page).' '; + } + else + { + if (preg_match('/^([^@]+)@([^@]+)$/i',$urlpage,$regs)) + { + print ''.img_picto($langs->trans("Setup"),"setup").' '; + } + else + { + print ''.img_picto($langs->trans("Setup"),"setup").' '; + } + } + } + print "'.img_picto($langs->trans("Setup"),"setup").''.img_picto($langs->trans("Setup"),"setup").'  "; + + if (! empty($objMod->always_enabled)) + { + // Ne devrait pas arriver. + } + + // Module non actif + print ''; + print img_picto($langs->trans("Disabled"),'off'); + print "  
\n"; } -print "\n"; +else +{ + // Marketplace + print "\n"; + print "\n"; + //print ''; + print ''; + print ''; + print ''; + $var=!$var; + print "\n"; + $url='http://www.dolistore.com'; + print ''; + print ''; + print ''; + print ''; + + + print "
'.$langs->trans("Logo").''.$langs->trans("WebSiteDesc").''.$langs->trans("URL").'
'.$langs->trans("DoliStoreDesc").''.$url.'
\n"; +} + + +dol_fiche_end(); // Pour eviter bug mise en page IE print '
'; diff --git a/htdocs/admin/system/about.php b/htdocs/admin/system/about.php index 194c1e4023d..61e0959d288 100644 --- a/htdocs/admin/system/about.php +++ b/htdocs/admin/system/about.php @@ -80,6 +80,9 @@ print ''; print '
  • '; print ''.$langs->trans("OfficialDemo").''; print '
  • '; +print '
  • '; +print ''.$langs->trans("OfficialMarketPlace").''; +print '
  • '; if (preg_match('/^fr_/i',$langs->getDefaultLang())) { diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index dee8a7dccad..51059ef7ff8 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -171,6 +171,11 @@ ModulesDesc=Dolibarr modules define which functionality is enabled in software. ModulesInterfaceDesc=The Dolibarr modules interface allows you to add features depending on external software, systems or services. ModulesSpecialDesc=Special modules are very specific or seldom used modules. ModulesJobDesc=Business modules provide simple predefined setup of Dolibarr for a particular business. +ModulesMarketPlaceDesc=You can find more modules to download on external web sites on the Internet... +ModulesMarketPlaces=More modules... +DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules +WebSiteDesc=Web site providers you can search to find more modules... +URL=Link BoxesAvailable=Boxes available BoxesActivated=Boxes activated ActivateOn=Activate on @@ -232,7 +237,7 @@ ModuleFamilyOther=Other ModuleFamilyTechnic=Mutli-modules tools ModuleFamilyExperimental=Experimental modules ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=ECM +ModuleFamilyECM=Electronic Content Management (ECM) MenuHandlers=Menu handlers MenuAdmin=Menu editor ThisIsProcessToFollow=This is setup to process: diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index b1b9147755f..696b7848f2f 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -171,6 +171,11 @@ ModulesDesc= Les modules Dolibarr définissent les fonctionnalités disponibles ModulesInterfaceDesc= Les modules d'interfaces sont des modules qui permettent de lier Dolibarr à des systèmes, applications ou services externes. ModulesSpecialDesc= Les modules complémentaires sont des modules à usage très spécifique ou moins courant que les modules standards. ModulesJobDesc= Les modules métiers très spécifiques permettent une préconfiguration simplifiée de Dolibarr pour un métier spécifique. +ModulesMarketPlaceDesc=D'autres modules/extensions sont disponibles en téléchargement sur des sites externes sur Internet... +ModulesMarketPlaces=Plus de modules... +DoliStoreDesc=DoliStore, la place de marché officielle des modules et extensions complémentaires pour Dolibarr ERP/CRM +WebSiteDesc=Sites fournisseurs à consulter pour trouver plus de modules... +URL=Lien BoxesAvailable= Boîtes disponibles BoxesActivated= Boîtes activées ActivateOn= Activer sur @@ -231,7 +236,7 @@ ModuleFamilyOther= Autre ModuleFamilyTechnic= Outils multi-modules ModuleFamilyExperimental= Modules expérimentaux (ne pas utiliser en production) ModuleFamilyFinancial= Modules financiers (Compta/trésorerie) -ModuleFamilyECM= GED +ModuleFamilyECM= Gestion Electronique de Documents (GED) MenuHandlers= Gestionnaires menu MenuAdmin= Edition menu ThisIsProcessToFollow= Voici la procédure à suivre: diff --git a/htdocs/theme/common/dolistore.jpg b/htdocs/theme/common/dolistore.jpg new file mode 100644 index 00000000000..4c330cdc184 Binary files /dev/null and b/htdocs/theme/common/dolistore.jpg differ