From 0461bae2962cf7554174012e4b5f2aab0e79284d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 31 Aug 2010 23:36:52 +0000 Subject: [PATCH] New: Add more space for module description New: Add dolistore in module setup area. --- htdocs/admin/modules.php | 353 +++++++++++++++++------------- htdocs/admin/system/about.php | 3 + htdocs/langs/en_US/admin.lang | 7 +- htdocs/langs/fr_FR/admin.lang | 7 +- htdocs/theme/common/dolistore.jpg | Bin 0 -> 2641 bytes 5 files changed, 216 insertions(+), 154 deletions(-) create mode 100644 htdocs/theme/common/dolistore.jpg 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 0000000000000000000000000000000000000000..4c330cdc184bedee72af6891fd0ba75c1c6c6322 GIT binary patch literal 2641 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 QQC~DpH;>NVjbKjx9se)gQvd(} literal 0 HcmV?d00001