diff --git a/ChangeLog b/ChangeLog index a834ef3e56a..891b27ba78f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,13 @@ For developers: * Code changes to be more compatible with PSR2 * Removed trigger USER_LOGOUT, USER_LOGIN, USER_LOGIN_FAILED (Some hooks are already dedicated for that) +WARNING: + +Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: +* If you use some links like viewimages.php?modulepart=mycompany&file=... in you external modules, you must + replace them with links like viewimages.php?modulepart=mycompany&file=logos/... (note that link change only for + modulepart=mycompany that now works like others). + ***** ChangeLog for 8.0.1 compared to 8.0.0 ***** @@ -235,7 +242,8 @@ Following changes may create regressions for some external modules, but were nec * Remove method Categorie:get_nb_categories() that was not used. * Hook getnomurltooltip provide a duplicate feature compared to hook getNomUrl so all hooks getnomurltooltip are now replaced with hook getNomUrl. - +* The substitution key __CONTACTCIVNAME__ is no longer present, it has been replaced by __CONTACT_NAME_{TYPE}__ + where {TYPE} is contact type code (BILLING, SHIPPING, CUSTOMER, ... see contact type dictionnary). ***** ChangeLog for 7.0.3 compared to 7.0.2 ***** diff --git a/README.md b/README.md index b68e8b65558..dfd9d70ab7c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # DOLIBARR ERP & CRM -![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/develop.svg) ![Downloads per day](https://img.shields.io/sourceforge/dm/dolibarr.svg) +![Downloads per day](https://img.shields.io/sourceforge/dm/dolibarr.svg) + +|6|7|8|develop| +|----------|----------|----------|----------| +|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/6.0.svg)|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/7.0.svg)|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/8.0.svg)|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/develop.svg)| Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…). diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index 7e8532e5225..20d0a5200a5 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -128,16 +128,16 @@ complete_dictionary_with_modules($taborder,$tabname,$tablib,$tabsql,$tabsqlsort, // Define elementList and sourceList (used for dictionary type of contacts "llx_c_type_contact") $elementList = array(); - // Must match ids defined into eldy.lib.php - $sourceList = array( - '1' => $langs->trans('AccountingJournalType1'), - '2' => $langs->trans('AccountingJournalType2'), - '3' => $langs->trans('AccountingJournalType3'), - '4' => $langs->trans('AccountingJournalType4'), - '5' => $langs->trans('AccountingJournalType5'), - '8' => $langs->trans('AccountingJournalType8'), - '9' => $langs->trans('AccountingJournalType9') - ); +// Must match ids defined into eldy.lib.php +$sourceList = array( + '1' => $langs->trans('AccountingJournalType1'), + '2' => $langs->trans('AccountingJournalType2'), + '3' => $langs->trans('AccountingJournalType3'), + '4' => $langs->trans('AccountingJournalType4'), + '5' => $langs->trans('AccountingJournalType5'), + '8' => $langs->trans('AccountingJournalType8'), + '9' => $langs->trans('AccountingJournalType9'), +); /* * Actions @@ -294,10 +294,10 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) //$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition } -if (GETPOST('actioncancel')) -{ - //$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition -} +//if (GETPOST('actioncancel')) +//{ +// $_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition +//} if ($action == 'confirm_delete' && $confirm == 'yes') // delete { diff --git a/htdocs/accountancy/class/accountancycategory.class.php b/htdocs/accountancy/class/accountancycategory.class.php index fec51f84cee..b0c3adb7edd 100644 --- a/htdocs/accountancy/class/accountancycategory.class.php +++ b/htdocs/accountancy/class/accountancycategory.class.php @@ -195,18 +195,18 @@ class AccountancyCategory // extends CommonObject { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."c_accounting_category"); - if (! $notrigger) - { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. + // Uncomment this and change MYOBJECT to your own tag if you + // want this action call a trigger. + //if (! $notrigger) + //{ - //// Call triggers - //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - //$interface=new Interfaces($this->db); - //$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf); - //if ($result < 0) { $error++; $this->errors=$interface->errors; } - //// End call triggers - } + // // Call triggers + // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; + // $interface=new Interfaces($this->db); + // $result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf); + // if ($result < 0) { $error++; $this->errors=$interface->errors; } + // // End call triggers + //} } // Commit or rollback @@ -334,18 +334,17 @@ class AccountancyCategory // extends CommonObject if (! $error) { - if (! $notrigger) - { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - - //// Call triggers - //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - //$interface=new Interfaces($this->db); - //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); - //if ($result < 0) { $error++; $this->errors=$interface->errors; } - //// End call triggers - } + // Uncomment this and change MYOBJECT to your own tag if you + // want this action call a trigger. + //if (! $notrigger) + //{ + // // Call triggers + // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; + // $interface=new Interfaces($this->db); + // $result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); + // if ($result < 0) { $error++; $this->errors=$interface->errors; } + // // End call triggers + //} } // Commit or rollback @@ -390,18 +389,17 @@ class AccountancyCategory // extends CommonObject if (! $error) { - if (! $notrigger) - { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - - //// Call triggers - //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - //$interface=new Interfaces($this->db); - //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); - //if ($result < 0) { $error++; $this->errors=$interface->errors; } - //// End call triggers - } + // Uncomment this and change MYOBJECT to your own tag if you + // want this action call a trigger. + //if (! $notrigger) + //{ + // // Call triggers + // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; + // $interface=new Interfaces($this->db); + // $result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); + // if ($result < 0) { $error++; $this->errors=$interface->errors; } + // // End call triggers + //} } // Commit or rollback diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 00bf3c15dcb..5d9572da684 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -335,18 +335,15 @@ class BookKeeping extends CommonObject dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } - if (! $error) { + // Uncomment this and change MYOBJECT to your own tag if you + // want this action to call a trigger. + //if (! $error && ! $notrigger) { - if (! $notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action to call a trigger. - - // // Call triggers - // $result=$this->call_trigger('MYOBJECT_CREATE',$user); - // if ($result < 0) $error++; - // // End call triggers - } - } + // // Call triggers + // $result=$this->call_trigger('MYOBJECT_CREATE',$user); + // if ($result < 0) $error++; + // // End call triggers + //} // Commit or rollback if ($error) { @@ -566,15 +563,15 @@ class BookKeeping extends CommonObject if (! $error) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element . $mode); - if (! $notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action to call a trigger. + // Uncomment this and change MYOBJECT to your own tag if you + // want this action to call a trigger. + //if (! $notrigger) { - // // Call triggers - // $result=$this->call_trigger('MYOBJECT_CREATE',$user); - // if ($result < 0) $error++; - // // End call triggers - } + // // Call triggers + // $result=$this->call_trigger('MYOBJECT_CREATE',$user); + // if ($result < 0) $error++; + // // End call triggers + //} } // Commit or rollback @@ -1131,15 +1128,15 @@ class BookKeeping extends CommonObject dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } - if (! $error && ! $notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. + // Uncomment this and change MYOBJECT to your own tag if you + // want this action calls a trigger. + //if (! $error && ! $notrigger) { - // // Call triggers - // $result=$this->call_trigger('MYOBJECT_MODIFY',$user); - // if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} - // // End call triggers - } + // // Call triggers + // $result=$this->call_trigger('MYOBJECT_MODIFY',$user); + // if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} + // // End call triggers + //} // Commit or rollback if ($error) { @@ -1205,17 +1202,15 @@ class BookKeeping extends CommonObject $this->db->begin(); - if (! $error) { - if (! $notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. + // Uncomment this and change MYOBJECT to your own tag if you + // want this action calls a trigger. + //if (! $error && ! $notrigger) { - // // Call triggers - // $result=$this->call_trigger('MYOBJECT_DELETE',$user); - // if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} - // // End call triggers - } - } + // // Call triggers + // $result=$this->call_trigger('MYOBJECT_DELETE',$user); + // if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} + // // End call triggers + //} if (! $error) { $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element.$mode; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 45387722719..4f4932fe08f 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -153,7 +153,7 @@ $y = $year_current; $buttonbind = '' . $langs->trans("ValidateHistory") . ''; print_barre_liste($langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1); -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); print '
'; print ''; @@ -229,7 +229,7 @@ print '
'; print_barre_liste($langs->trans("OverviewOfAmountOfLinesBound"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', ''); +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', ''); print '
'; print '
'; @@ -309,7 +309,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print '
'; print_barre_liste($langs->trans("OtherInfo"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); - //print_fiche_titre($langs->trans("OtherInfo"), '', ''); + //print load_fiche_titre($langs->trans("OtherInfo"), '', ''); print '
'; print '
'; diff --git a/htdocs/accountancy/expensereport/index.php b/htdocs/accountancy/expensereport/index.php index 7f906e93879..837a8c36630 100644 --- a/htdocs/accountancy/expensereport/index.php +++ b/htdocs/accountancy/expensereport/index.php @@ -150,7 +150,7 @@ $buttonbind = 'trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); print '
'; print '
'; @@ -221,7 +221,7 @@ print '
'; print_barre_liste($langs->trans("OverviewOfAmountOfLinesBound"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', ''); +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', ''); print '
'; @@ -297,7 +297,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print '
'; print_barre_liste($langs->trans("OtherInfo"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); - //print_fiche_titre($langs->trans("OtherInfo"), '', ''); + //print load_fiche_titre($langs->trans("OtherInfo"), '', ''); print '
'; print '
'; diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php index 53ba48ff9d9..ac674eb95e0 100644 --- a/htdocs/accountancy/index.php +++ b/htdocs/accountancy/index.php @@ -55,7 +55,7 @@ if ($conf->accounting->enabled) print $langs->trans("AccountancyAreaDescIntro")."
\n"; print "
\n";print "
\n"; - print_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."
\n"; + print load_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."
\n"; print '
'; print "
\n"; @@ -131,7 +131,7 @@ if ($conf->accounting->enabled) print "
\n"; - print_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionFreq"), '', ''); + print load_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionFreq"), '', ''); print '
'; print "
\n"; $step = 0; diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index 3e6a6991f6c..d0ee7579f3b 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -150,7 +150,7 @@ $buttonbind = '
trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); print '
'; print '
'; @@ -221,7 +221,7 @@ print '
'; print_barre_liste($langs->trans("OverviewOfAmountOfLinesBound"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', ''); +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', ''); print '
'; print '
'; @@ -295,7 +295,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print '
'; print_barre_liste($langs->trans("OtherInfo"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); - //print_fiche_titre($langs->trans("OtherInfo"), '', ''); + //print load_fiche_titre($langs->trans("OtherInfo"), '', ''); print '
'; print '
'; diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 63e3e6d13a5..90f20ca323d 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -2636,6 +2636,7 @@ class Adherent extends CommonObject $outputlangs = new Translate('', $conf); $outputlangs->setDefaultLang(empty($adherent->thirdparty->default_lang) ? $mysoc->default_lang : $adherent->thirdparty->default_lang); $outputlangs->loadLangs(array("main", "members")); + dol_syslog("sendReminderForExpiredSubscription Language set to ".$outputlangs->defaultlang); $arraydefaultmessage=null; $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION; diff --git a/htdocs/admin/holiday.php b/htdocs/admin/holiday.php index e2d1cfca145..f6306f787c3 100644 --- a/htdocs/admin/holiday.php +++ b/htdocs/admin/holiday.php @@ -1,8 +1,7 @@ - * Copyright (C) 2011-2015 Philippe Grand - * Copyright (C) 2013 Juanjo Menent - * Copyright (C) 2018 Charlene Benke + * Copyright (C) 2011-2018 Philippe Grand + * Copyright (C) 2018 Charlene Benke * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,9 +29,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php'; -$langs->load("admin"); -$langs->load("errors"); -$langs->load("holiday"); +// Load translation files required by the page +$langs->loadLangs(array("admin", "errors", "holiday")); if (!$user->admin) accessforbidden(); @@ -341,7 +339,6 @@ print "\n"; clearstatcache(); -$var=true; foreach ($dirmodels as $reldir) { foreach (array('','/doc') as $valdir) @@ -379,7 +376,6 @@ foreach ($dirmodels as $reldir) if ($modulequalified) { - $var = !$var; print ''; print ''; print ''; print "\n"; -$var=true; $substitutionarray=pdf_getSubstitutionArray($langs, array('objectamount'), null, 2); $substitutionarray['__(AnyTranslationKey)__']=$langs->trans("Translation"); @@ -482,7 +477,6 @@ $htmltext = ''.$langs->trans("AvailableVariables").':
'; foreach($substitutionarray as $key => $val) $htmltext.=$key.'
'; $htmltext.='
'; -$var=! $var; print '
'; print (empty($module->name)?$name:$module->name); print "\n"; @@ -474,7 +470,6 @@ print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'; print $form->textwithpicto($langs->trans("FreeLegalTextOnHolidays"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'tooltiphelp'); print '
'; diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 71656475e6f..89f0f028e1e 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -598,17 +598,18 @@ if ($mode == 'common') } // Print a separator if we change family - if ($familykey!=$oldfamily) - { - if ($oldfamily) print '

'; + if ($familykey != $oldfamily) { + if ($oldfamily) { + print '
'; + } - $familytext=empty($familyinfo[$familykey]['label'])?$familykey:$familyinfo[$familykey]['label']; - print_fiche_titre($familytext, '', ''); + $familytext = empty($familyinfo[$familykey]['label'])?$familykey:$familyinfo[$familykey]['label']; + print load_fiche_titre($familytext, '', ''); print '
'; - print ''."\n"; + print '
'."\n"; - $atleastoneforfamily=0; + $atleastoneforfamily=0; } $atleastoneforfamily++; diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index fe09ee14378..9843c6a4fb0 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -171,7 +171,7 @@ llxHeader('', $langs->trans($page_name)); // Subheader $linkback = '' . $langs->trans("BackToModuleList") . ''; -print_fiche_titre($langs->trans($page_name), $linkback); +print load_fiche_titre($langs->trans($page_name), $linkback); // Configuration header $head = multicurrencyAdminPrepareHead(); diff --git a/htdocs/admin/pdf.php b/htdocs/admin/pdf.php index 52ffa53ad59..76b3cf76b57 100644 --- a/htdocs/admin/pdf.php +++ b/htdocs/admin/pdf.php @@ -32,11 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('admin', 'languages', 'other')); - -$langs->load("companies"); -$langs->load("products"); -$langs->load("members"); +$langs->loadLangs(array('admin', 'languages', 'other', 'companies', 'products', 'members')); if (! $user->admin) accessforbidden(); diff --git a/htdocs/admin/salaries.php b/htdocs/admin/salaries.php index c5ec770e393..a68a4bda5a6 100644 --- a/htdocs/admin/salaries.php +++ b/htdocs/admin/salaries.php @@ -75,7 +75,7 @@ if ($action == 'update') llxHeader('',$langs->trans('SalariesSetup')); $form = new Form($db); -if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db); +if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db); $linkback=''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans('SalariesSetup'),$linkback,'title_setup'); diff --git a/htdocs/admin/supplierinvoice_extrafields.php b/htdocs/admin/supplierinvoice_extrafields.php index 65ce01a4faf..bbda698a778 100644 --- a/htdocs/admin/supplierinvoice_extrafields.php +++ b/htdocs/admin/supplierinvoice_extrafields.php @@ -4,7 +4,7 @@ * Copyright (C) 2004-2013 Laurent Destailleur * Copyright (C) 2012 Regis Houssin * Copyright (C) 2012 Florian Henry - * Copyright (C) 2013 Philippe Grand + * Copyright (C) 2013-2018 Philippe Grand * Copyright (C) 2013 Juanjo Menent * * This program is free software; you can redistribute it and/or modify @@ -32,17 +32,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; // Load translation files required by the page -$langs->load("orders"); +$langs->loadLangs(array("admin", "other", "bills", "orders", "suppliers")); if (!$user->admin) accessforbidden(); -$langs->load("admin"); -$langs->load("other"); -$langs->load("bills"); -$langs->load("orders"); -$langs->load("suppliers"); - $extrafields = new ExtraFields($db); $form = new Form($db); diff --git a/htdocs/admin/system/filecheck.php b/htdocs/admin/system/filecheck.php index 65a9354a19f..0418830cce8 100644 --- a/htdocs/admin/system/filecheck.php +++ b/htdocs/admin/system/filecheck.php @@ -422,7 +422,7 @@ if (! $error && $xml) $outcurrentchecksum = ''.$checksumget.''; } - print_fiche_titre($langs->trans("GlobalChecksum")).'
'; + print load_fiche_titre($langs->trans("GlobalChecksum")).'
'; print $langs->trans("ExpectedChecksum").' = '. $outexpectedchecksum .'
'; print $langs->trans("CurrentChecksum").' = '. $outcurrentchecksum; @@ -438,4 +438,3 @@ llxFooter(); $db->close(); exit($error); - diff --git a/htdocs/admin/tools/dolibarr_import.php b/htdocs/admin/tools/dolibarr_import.php index aca900c1cbc..9dc3deec5ac 100644 --- a/htdocs/admin/tools/dolibarr_import.php +++ b/htdocs/admin/tools/dolibarr_import.php @@ -24,8 +24,8 @@ require '../../main.inc.php'; -$langs->load("admin"); -$langs->load("other"); +// Load translation files required by the page +$langs->loadLangs(array("other","admin")); if (! $user->admin) accessforbidden(); diff --git a/htdocs/admin/tools/index.php b/htdocs/admin/tools/index.php index c5a05ef2136..aed25ae45a3 100644 --- a/htdocs/admin/tools/index.php +++ b/htdocs/admin/tools/index.php @@ -24,8 +24,8 @@ require '../../main.inc.php'; -$langs->load("admin"); -$langs->load("companies"); +// Load translation files required by the page +$langs->loadLangs(array("companies","admin")); if (! $user->admin) accessforbidden(); diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php index db5157789e1..1f5ecb4723e 100644 --- a/htdocs/admin/tools/listevents.php +++ b/htdocs/admin/tools/listevents.php @@ -40,10 +40,8 @@ if ($user->societe_id > 0) $socid = $user->societe_id; } -$langs->load("admin"); -$langs->load("companies"); -$langs->load("users"); -$langs->load("other"); +// Load translation files required by the page +$langs->loadLangs(array("companies","admin","users","other")); // Load variable for pagination $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; diff --git a/htdocs/admin/tools/listsessions.php b/htdocs/admin/tools/listsessions.php index 13b99d92f6d..b1732e0883b 100644 --- a/htdocs/admin/tools/listsessions.php +++ b/htdocs/admin/tools/listsessions.php @@ -25,7 +25,8 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -$langs->load("install"); +// Load translation files required by the page +$langs->loadLangs(array("companies","install","users","other")); if (! $user->admin) accessforbidden(); @@ -40,10 +41,6 @@ if ($user->societe_id > 0) $socid = $user->societe_id; } -$langs->load("companies"); -$langs->load("users"); -$langs->load("other"); - $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); diff --git a/htdocs/admin/tools/update.php b/htdocs/admin/tools/update.php index 41923aa068d..1ec7c98552e 100644 --- a/htdocs/admin/tools/update.php +++ b/htdocs/admin/tools/update.php @@ -27,8 +27,8 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/geturl.lib.php'; -$langs->load("admin"); -$langs->load("other"); +// Load translation files required by the page +$langs->loadLangs(array("admin","other")); $action=GETPOST('action','alpha'); @@ -76,7 +76,7 @@ print $langs->trans("CurrentVersion").' : '.DOL_VERSION.'
'; if (function_exists('curl_init')) { $conf->global->MAIN_USE_RESPONSE_TIMEOUT = 10; - + if ($action == 'getlastversion') { if ($sfurl) @@ -95,7 +95,7 @@ if (function_exists('curl_init')) } $i++; } - + // Show version print $langs->trans("LastStableVersion").' : '. (($version != '0.0')?$version:$langs->trans("Unknown")) .'
'; } diff --git a/htdocs/cashdesk/affIndex.php b/htdocs/cashdesk/affIndex.php index a2e467a35e3..9ff676531f1 100644 --- a/htdocs/cashdesk/affIndex.php +++ b/htdocs/cashdesk/affIndex.php @@ -36,9 +36,8 @@ if ( $_SESSION['uid'] <= 0 ) exit; } -$langs->load("companies"); -$langs->load("compta"); -$langs->load("cashdesk"); +// Load translation files required by the page +$langs->loadLangs(array("companies","compta","cashdesk")); /* diff --git a/htdocs/cashdesk/index.php b/htdocs/cashdesk/index.php index de0324a97fe..d2ea5160ca8 100644 --- a/htdocs/cashdesk/index.php +++ b/htdocs/cashdesk/index.php @@ -28,8 +28,8 @@ require_once '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; -$langs->load("admin"); -$langs->load("cashdesk"); +// Load translation files required by the page +$langs->loadLangs(array("admin","cashdesk")); // Test if user logged if ( $_SESSION['uid'] > 0 ) diff --git a/htdocs/cashdesk/index_verif.php b/htdocs/cashdesk/index_verif.php index 238a73f6ef7..cd354293022 100644 --- a/htdocs/cashdesk/index_verif.php +++ b/htdocs/cashdesk/index_verif.php @@ -30,9 +30,8 @@ include '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/cashdesk/include/environnement.php'; require_once DOL_DOCUMENT_ROOT.'/cashdesk/class/Auth.class.php'; -$langs->load("main"); -$langs->load("admin"); -$langs->load("cashdesk"); +// Load translation files required by the page +$langs->loadLangs(array("main","admin","cashdesk")); $username = GETPOST("txtUsername"); $password = GETPOST("pwdPassword"); @@ -119,7 +118,7 @@ if ( $retour >= 0 ) $_SESSION['firstname'] = $tab['firstname']; $_SESSION['CASHDESK_ID_THIRDPARTY'] = ($thirdpartyid > 0 ? $thirdpartyid : ''); $_SESSION['CASHDESK_ID_WAREHOUSE'] = ($warehouseid > 0 ? $warehouseid : ''); - + $_SESSION['CASHDESK_ID_BANKACCOUNT_CASH'] = ($bankid_cash > 0 ? $bankid_cash : ''); $_SESSION['CASHDESK_ID_BANKACCOUNT_CHEQUE'] = ($bankid_cheque > 0 ? $bankid_cheque : ''); $_SESSION['CASHDESK_ID_BANKACCOUNT_CB'] = ($bankid_cb > 0 ? $bankid_cb : ''); @@ -135,8 +134,8 @@ if ( $retour >= 0 ) } else { - $langs->load("errors"); - $langs->load("other"); + // Load translation files required by the page + $langs->loadLangs(array("other","errors")); $retour=$langs->trans("ErrorBadLoginPassword"); header('Location: '.DOL_URL_ROOT.'/cashdesk/index.php?err='.urlencode($retour).'&user='.$username.'&socid='.$thirdpartyid.'&warehouseid='.$warehouseid); exit; diff --git a/htdocs/cashdesk/tpl/facturation1.tpl.php b/htdocs/cashdesk/tpl/facturation1.tpl.php index 146ae3d40b6..880eb77b8af 100644 --- a/htdocs/cashdesk/tpl/facturation1.tpl.php +++ b/htdocs/cashdesk/tpl/facturation1.tpl.php @@ -26,10 +26,8 @@ if (empty($langs) || ! is_object($langs)) exit; } - -$langs->load("main"); -$langs->load("bills"); -$langs->load("cashdesk"); +// Load translation files required by the page +$langs->loadLangs(array("main","bills","cashdesk")); // Object $form must de defined diff --git a/htdocs/cashdesk/tpl/liste_articles.tpl.php b/htdocs/cashdesk/tpl/liste_articles.tpl.php index 65f48b0603c..266c5e5840b 100644 --- a/htdocs/cashdesk/tpl/liste_articles.tpl.php +++ b/htdocs/cashdesk/tpl/liste_articles.tpl.php @@ -28,9 +28,8 @@ if (empty($langs) || ! is_object($langs)) require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; -$langs->load("main"); -$langs->load("bills"); -$langs->load("cashdesk"); +// Load translation files required by the page +$langs->loadLangs(array("main","bills","cashdesk")); ?> diff --git a/htdocs/cashdesk/tpl/menu.tpl.php b/htdocs/cashdesk/tpl/menu.tpl.php index 250aaa18cc2..afe2c0da4ec 100644 --- a/htdocs/cashdesk/tpl/menu.tpl.php +++ b/htdocs/cashdesk/tpl/menu.tpl.php @@ -63,9 +63,8 @@ if (!empty($_SESSION["CASHDESK_ID_WAREHOUSE"]) && ! empty($conf->stock->enabled) $warehouseLink = $warehouse->getNomUrl(1); } - -$langs->load("cashdesk"); -$langs->load("main"); +// Load translation files required by the page +$langs->loadLangs(array("main","cashdesk")); print "\n".''."\n"; print '
'; - print ''; - print ''; + if ($object->client) + { + if (! empty($conf->commande->enabled) && ! empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)) + { + print ''."\n"; + print ''; + print ''; + print ''; + } } diff --git a/htdocs/comm/multiprix.php b/htdocs/comm/multiprix.php index e9ddee12b22..55f49c44cfd 100644 --- a/htdocs/comm/multiprix.php +++ b/htdocs/comm/multiprix.php @@ -45,7 +45,7 @@ if ($user->societe_id > 0) if ($_POST["action"] == 'setpricelevel') { - $soc = New Societe($db); + $soc = new Societe($db); $soc->fetch($id); $soc->set_price_level($_POST["price_level"],$user); diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 81e9cd8d045..e1219d5b2d5 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -2388,7 +2388,7 @@ if ($action == 'create' && $user->rights->commande->creer) // Total HT $alert = ''; - if($object->total_ht < $object->thirdparty->order_min_amount) { + if (! empty($conf->global->ORDER_MANAGE_MIN_AMOUNT) && $object->total_ht < $object->thirdparty->order_min_amount) { $alert = ' ' . img_warning($langs->trans('OrderMinAmount').': '.price($object->thirdparty->order_min_amount)); } print ''; diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php index 461d193d1fe..7dcc613961d 100644 --- a/htdocs/compta/bank/card.php +++ b/htdocs/compta/bank/card.php @@ -284,7 +284,7 @@ if ($action == 'confirm_delete' && $_POST["confirm"] == "yes" && $user->rights-> $form = new Form($db); $formbank = new FormBank($db); $formcompany = new FormCompany($db); -if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db); +if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db); $countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index 9c30dfe3cd8..3eee0239144 100644 --- a/htdocs/compta/bank/various_payment/card.php +++ b/htdocs/compta/bank/various_payment/card.php @@ -220,7 +220,7 @@ if (empty($reshook)) llxHeader("",$langs->trans("VariousPayment")); $form = new Form($db); -if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db); +if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db); if (! empty($conf->projet->enabled)) $formproject = new FormProjets($db); if ($id) diff --git a/htdocs/compta/charges/index.php b/htdocs/compta/charges/index.php index 50e5285cb14..e367054fc40 100644 --- a/htdocs/compta/charges/index.php +++ b/htdocs/compta/charges/index.php @@ -455,7 +455,7 @@ while($j<$numlt) // Payment Salary -if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) +if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) { if (! $mode || $mode != 'sconly') { diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index 243e1a4ed97..1c97b82d926 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -1004,8 +1004,8 @@ class FactureRec extends CommonInvoice $error=0; - $langs->load("bills"); - $langs->load('main'); + // Load translation files required by the page + $langs->loadLangs(array("main","bills")); $nb_create=0; diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index ac354761af1..0773e6eedc1 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -3805,7 +3805,7 @@ class Facture extends CommonInvoice $response = new WorkboardResponse(); $response->warning_delay=$conf->facture->client->warning_delay/60/60/24; $response->label=$langs->trans("CustomerBillsUnpaid"); - $response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1&mainmenu=accountancy&leftmenu=customers_bills'; + $response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1&mainmenu=billing&leftmenu=customers_bills'; $response->img=img_object('',"bill"); $generic_facture = new Facture($this->db); diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index 570f3504017..804398232de 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -577,14 +577,14 @@ if ($resql) if ($search_zip) $param.='&search_zip='.urlencode($search_zip); if ($search_sale > 0) $param.='&search_sale=' .urlencode($search_sale); if ($search_user > 0) $param.='&search_user=' .urlencode($search_user); - if ($search_product_category > 0) $param.='$search_product_category=' .urlencode($search_product_category); + if ($search_product_category > 0) $param.='&search_product_category=' .urlencode($search_product_category); if ($search_montant_ht != '') $param.='&search_montant_ht='.urlencode($search_montant_ht); if ($search_montant_vat != '') $param.='&search_montant_vat='.urlencode($search_montant_vat); if ($search_montant_localtax1 != '') $param.='&search_montant_localtax1='.urlencode($search_montant_localtax1); if ($search_montant_localtax2 != '') $param.='&search_montant_localtax2='.urlencode($search_montant_localtax2); if ($search_montant_ttc != '') $param.='&search_montant_ttc='.urlencode($search_montant_ttc); if ($search_status != '') $param.='&search_status='.urlencode($search_status); - if ($search_paymentmode > 0) $param.='search_paymentmode='.urlencode($search_paymentmode); + if ($search_paymentmode > 0) $param.='&search_paymentmode='.urlencode($search_paymentmode); if ($show_files) $param.='&show_files='.urlencode($show_files); if ($option) $param.="&search_option=".urlencode($option); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php index be914f2333d..18ba0433d98 100644 --- a/htdocs/compta/prelevement/card.php +++ b/htdocs/compta/prelevement/card.php @@ -30,15 +30,11 @@ require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.p require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page -$langs->loadLangs(array('banks', 'categories')); +$langs->loadLangs(array('banks', 'categories','bills','withdrawals')); if (!$user->rights->prelevement->bons->lire) accessforbidden(); -$langs->load("bills"); -$langs->load("withdrawals"); - - // Security check if ($user->societe_id > 0) accessforbidden(); diff --git a/htdocs/compta/salaries/card.php b/htdocs/compta/salaries/card.php index 3d8cf0a38ab..282f9626491 100644 --- a/htdocs/compta/salaries/card.php +++ b/htdocs/compta/salaries/card.php @@ -47,7 +47,7 @@ $projectid = (GETPOST('projectid','int') ? GETPOST('projectid', 'int') : GETPOST // Security check $socid = GETPOST("socid","int"); if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'salaries', '', '', 'payment'); +$result = restrictedArea($user, 'salaries', '', '', ''); $object = new PaymentSalary($db); diff --git a/htdocs/compta/salaries/document.php b/htdocs/compta/salaries/document.php index 5209c281f68..59ca8389193 100644 --- a/htdocs/compta/salaries/document.php +++ b/htdocs/compta/salaries/document.php @@ -44,8 +44,9 @@ $action = GETPOST('action','alpha'); $confirm = GETPOST('confirm','alpha'); // Security check +$socid = GETPOST("socid","int"); if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'salaries', $id, ''); +$result = restrictedArea($user, 'salaries', '', '', ''); // Get parameters diff --git a/htdocs/compta/salaries/index.php b/htdocs/compta/salaries/index.php index d9942d86b79..a8a0b82e7d9 100644 --- a/htdocs/compta/salaries/index.php +++ b/htdocs/compta/salaries/index.php @@ -148,7 +148,7 @@ if ($result) if ($optioncss != '') $param.='&optioncss='.$optioncss; $newcardbutton=''; - if ($user->rights->salaries->payment->write) + if (! empty($user->rights->salaries->write)) { $newcardbutton=''.$langs->trans('NewSalaryPayment').''; $newcardbutton.= ''; diff --git a/htdocs/compta/salaries/stats/index.php b/htdocs/compta/salaries/stats/index.php index 7c7dbb43e3a..d5e3e226615 100644 --- a/htdocs/compta/salaries/stats/index.php +++ b/htdocs/compta/salaries/stats/index.php @@ -41,18 +41,6 @@ $socid = GETPOST("socid","int"); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'salaries', '', '', ''); -// Other security check -$childids = $user->getAllChildIds(); -$childids[]=$user->id; -if ($userid > 0) -{ - if (empty($user->rights->salaries->payment->readall) && ! in_array($userid, $childids)) - { - accessforbidden(); - exit; - } -} - $nowyear=strftime("%Y", dol_now()); $year = GETPOST('year')>0?GETPOST('year'):$nowyear; //$startyear=$year-2; @@ -77,11 +65,6 @@ print load_fiche_titre($title, $mesg); dol_mkdir($dir); $useridtofilter=$userid; // Filter from parameters -if (empty($useridtofilter)) -{ - $useridtofilter=$childids; - if (! empty($user->rights->salaries->payment->readall)) $useridtofilter=0; -} $stats = new SalariesStats($db, $socid, $useridtofilter); diff --git a/htdocs/compta/sociales/payments.php b/htdocs/compta/sociales/payments.php index b70cc3649b2..48b2698c762 100644 --- a/htdocs/compta/sociales/payments.php +++ b/htdocs/compta/sociales/payments.php @@ -397,7 +397,7 @@ while($j<$numlt) // Payment Salary -if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) +if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) { if (! $mode || $mode != 'sconly') { diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php index 8c81c0efc6a..6afd6b1e354 100644 --- a/htdocs/core/actions_sendmails.inc.php +++ b/htdocs/core/actions_sendmails.inc.php @@ -42,7 +42,7 @@ if (GETPOST('addfile','alpha')) $vardir=$conf->user->dir_output."/".$user->id; $upload_dir_tmp = $vardir.'/temp'; // TODO Add $keytoavoidconflict in upload_dir path - dol_add_file_process($upload_dir_tmp, 0, 0, 'addedfile', '', null, $trackid); + dol_add_file_process($upload_dir_tmp, 0, 0, 'addedfile', '', null, $trackid, 0); $action='presend'; } diff --git a/htdocs/core/ajax/check_notifications.php b/htdocs/core/ajax/check_notifications.php index 09252bc0edc..642dc1038d9 100644 --- a/htdocs/core/ajax/check_notifications.php +++ b/htdocs/core/ajax/check_notifications.php @@ -93,8 +93,8 @@ if ($time >= $_SESSION['auto_check_events_not_before']) while ($obj = $db->fetch_object($resql)) { - $langs->load("agenda"); - $langs->load("commercial"); + // Load translation files required by the page + $langs->loadLangs(array('agenda', 'commercial')); $actionmod->fetch($obj->id); diff --git a/htdocs/core/boxes/box_project.php b/htdocs/core/boxes/box_project.php index cb45c12351e..a48543a00f6 100644 --- a/htdocs/core/boxes/box_project.php +++ b/htdocs/core/boxes/box_project.php @@ -34,12 +34,12 @@ class box_project extends ModeleBoxes var $boximg="object_projectpub"; var $boxlabel; //var $depends = array("projet"); - + /** * @var DoliDB Database handler. */ public $db; - + var $param; var $info_box_head = array(); @@ -54,8 +54,9 @@ class box_project extends ModeleBoxes function __construct($db,$param='') { global $user, $langs; - $langs->load("boxes"); - $langs->load("projects"); + + // Load translation files required by the page + $langs->loadLangs(array('boxes', 'projects')); $this->db = $db; $this->boxlabel="Projects"; diff --git a/htdocs/core/boxes/box_task.php b/htdocs/core/boxes/box_task.php index 9625cfa1bea..b85ed0f4d8b 100644 --- a/htdocs/core/boxes/box_task.php +++ b/htdocs/core/boxes/box_task.php @@ -31,21 +31,21 @@ require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; */ class box_task extends ModeleBoxes { - var $boxcode="projet"; - var $boximg="object_projecttask"; - var $boxlabel; - //var $depends = array("projet"); - + public $boxcode="projet"; + public $boximg="object_projecttask"; + public $boxlabel; + //public $depends = array("projet"); + /** * @var DoliDB Database handler. */ public $db; - - var $param; - var $enabled = 0; // Disabled because bugged. - var $info_box_head = array(); - var $info_box_contents = array(); + public $param; + public $enabled = 0; // Disabled because bugged. + + public $info_box_head = array(); + public $info_box_contents = array(); /** @@ -57,8 +57,10 @@ class box_task extends ModeleBoxes function __construct($db,$param='') { global $user, $langs; - $langs->load("boxes"); - $langs->load("projects"); + + // Load translation files required by the page + $langs->loadLangs(array('boxes', 'projects')); + $this->boxlabel="Tasks"; $this->db = $db; @@ -131,7 +133,7 @@ class box_task extends ModeleBoxes } - // Add the sum à the bottom of the boxes + // Add the sum at the bottom of the boxes $this->info_box_contents[$i][] = array('tr' => 'class="liste_total"', 'td' => '', 'text' => $langs->trans("Total")." ".$textHead); $this->info_box_contents[$i][] = array('td' => 'align="right" ', 'text' => number_format($totalnb, 0, ',', ' ')." ".$langs->trans("Tasks")); $this->info_box_contents[$i][] = array('td' => 'align="right" ', 'text' => ConvertSecondToTime($totalplannedtot,'all',25200,5)); diff --git a/htdocs/core/class/ctyperesource.class.php b/htdocs/core/class/ctyperesource.class.php index ae4036214a2..297e48a940b 100644 --- a/htdocs/core/class/ctyperesource.class.php +++ b/htdocs/core/class/ctyperesource.class.php @@ -19,7 +19,7 @@ */ /** - * \file resource/ctyperesource.class.php + * \file htdocs/core/class/ctyperesource.class.php * \ingroup resource */ @@ -127,15 +127,15 @@ class Ctyperesource if (!$error) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element); - if (!$notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action to call a trigger. + // Uncomment this and change MYOBJECT to your own tag if you + // want this action to call a trigger. + //if (!$notrigger) { - //// Call triggers - //$result=$this->call_trigger('MYOBJECT_CREATE',$user); - //if ($result < 0) $error++; - //// End call triggers - } + // // Call triggers + // $result=$this->call_trigger('MYOBJECT_CREATE',$user); + // if ($result < 0) $error++; + // // End call triggers + //} } // Commit or rollback @@ -331,15 +331,15 @@ class Ctyperesource dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); } - if (!$error && !$notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. + // Uncomment this and change MYOBJECT to your own tag if you + // want this action calls a trigger. + //if (!$error && !$notrigger) { - //// Call triggers - //$result=$this->call_trigger('MYOBJECT_MODIFY',$user); - //if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} - //// End call triggers - } + // // Call triggers + // $result=$this->call_trigger('MYOBJECT_MODIFY',$user); + // if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} + // // End call triggers + //} // Commit or rollback if ($error) { @@ -369,17 +369,15 @@ class Ctyperesource $this->db->begin(); - if (!$error) { - if (!$notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. + // Uncomment this and change MYOBJECT to your own tag if you + // want this action calls a trigger. + //if (!$error && !$notrigger) { - //// Call triggers - //$result=$this->call_trigger('MYOBJECT_DELETE',$user); - //if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} - //// End call triggers - } - } + // // Call triggers + // $result=$this->call_trigger('MYOBJECT_DELETE',$user); + // if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} + // // End call triggers + //} // If you need to delete child tables to, you can insert them here diff --git a/htdocs/core/class/dolreceiptprinter.class.php b/htdocs/core/class/dolreceiptprinter.class.php index 36881b76f84..8734c4126e7 100644 --- a/htdocs/core/class/dolreceiptprinter.class.php +++ b/htdocs/core/class/dolreceiptprinter.class.php @@ -1,6 +1,6 @@ + * Copyright (C) 2015-2018 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -216,6 +216,7 @@ class dolReceiptPrinter extends Escpos global $conf; $error = 0; $line = 0; + $obj = array(); $sql = 'SELECT rowid, name, fk_type, fk_profile, parameter'; $sql.= ' FROM '.MAIN_DB_PREFIX.'printer_receipt'; $sql.= ' WHERE entity = '.$conf->entity; @@ -283,6 +284,7 @@ class dolReceiptPrinter extends Escpos global $conf; $error = 0; $line = 0; + $obj = array(); $sql = 'SELECT rowid, name, template'; $sql.= ' FROM '.MAIN_DB_PREFIX.'printer_receipt_template'; $sql.= ' WHERE entity = '.$conf->entity; diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 1bb72a0798d..3ba5dc0664f 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -675,11 +675,22 @@ class ExtraFields $params=''; } - $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."extrafields"; - $sql_del.= " WHERE name = '".$attrname."'"; - $sql_del.= " AND entity = ".($entity===''?$conf->entity:$entity); - $sql_del.= " AND elementtype = '".$elementtype."'"; - + if ($entity === '' || $entity != '0') + { + // We dont want on all entities, we delete all and current + $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."extrafields"; + $sql_del.= " WHERE name = '".$attrname."'"; + $sql_del.= " AND entity IN (0, ".($entity===''?$conf->entity:$entity).")"; + $sql_del.= " AND elementtype = '".$elementtype."'"; + } + else + { + // We want on all entities ($entities = '0'), we delete on all only (we keep setup specific to each entity) + $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."extrafields"; + $sql_del.= " WHERE name = '".$attrname."'"; + $sql_del.= " AND entity = 0"; + $sql_del.= " AND elementtype = '".$elementtype."'"; + } $resql1=$this->db->query($sql_del); $sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields("; diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index f648712e43c..45a4b153cec 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -277,9 +277,8 @@ class FormMail extends Form if (! is_object($form)) $form=new Form($this->db); - $langs->load("other"); - $langs->load("mails"); - + // Load translation files required by the page + $langs->loadLangs(array('other', 'mails')); // Clear temp files. Must be done at beginning, before call of triggers if (GETPOST('mode','alpha') == 'init' || (GETPOST('modelmailselected','alpha') && GETPOST('modelmailselected','alpha') != '-1')) @@ -960,6 +959,7 @@ class FormMail extends Form if (count($validpaymentmethod) > 0 && $paymenturl) { + $langs->load('other'); $this->substit['__ONLINE_PAYMENT_TEXT_AND_URL__']=str_replace('\n',"\n",$langs->transnoentities("PredefinedMailContentLink", $paymenturl)); $this->substit['__ONLINE_PAYMENT_URL__']=$paymenturl; } diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index c0f4a3f75d2..5cad99b2a9f 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -126,9 +126,8 @@ class FormTicket { global $conf, $langs, $user, $hookmanager; - $langs->load("other"); - $langs->load("mails"); - $langs->load("ticket"); + // Load translation files required by the page + $langs->loadLangs(array('other', 'mails', 'ticket')); $form = new Form($this->db); $formcompany = new FormCompany($this->db); diff --git a/htdocs/core/lib/categories.lib.php b/htdocs/core/lib/categories.lib.php index 4be484e1aa4..e8a7dfcb0ff 100644 --- a/htdocs/core/lib/categories.lib.php +++ b/htdocs/core/lib/categories.lib.php @@ -33,8 +33,8 @@ function categories_prepare_head($object,$type) { global $langs, $conf, $user; - $langs->load("categories"); - $langs->load("products"); + // Load translation files required by the page + $langs->loadLangs(array('categories', 'products')); $h = 0; $head = array(); @@ -48,7 +48,7 @@ function categories_prepare_head($object,$type) $head[$h][1] = $langs->trans("Photos"); $head[$h][2] = 'photos'; $h++; - + if (! empty($conf->global->MAIN_MULTILANGS)) { $head[$h][0] = DOL_URL_ROOT.'/categories/traduction.php?id='.$object->id.'&type='.$type; @@ -56,7 +56,7 @@ function categories_prepare_head($object,$type) $head[$h][2] = 'translation'; $h++; } - + // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab @@ -87,7 +87,7 @@ function categoriesadmin_prepare_head() $head[$h][1] = $langs->trans("Setup"); $head[$h][2] = 'setup'; $h++; - + $head[$h][0] = DOL_URL_ROOT.'/categories/admin/categorie_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsCategories"); $head[$h][2] = 'attributes_categories'; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 95157ffea8d..96c892fbe2c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -6093,7 +6093,7 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob { // Set the online payment url link into __ONLINE_PAYMENT_URL__ key require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; - $outputlangs->load('paypal'); + $outputlangs->loadLangs(array('paypal','other')); $typeforonlinepayment='free'; if (is_object($object) && $object->element == 'commande') $typeforonlinepayment='order'; if (is_object($object) && $object->element == 'facture') $typeforonlinepayment='invoice'; diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 783e6a0cb35..8a22337cea8 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -194,9 +194,10 @@ function dol_print_file($langs,$filename,$searchalt=0) */ function dol_print_object_info($object, $usetable=0) { - global $langs,$db; - $langs->load("other"); - $langs->load("admin"); + global $langs, $db; + + // Load translation files required by the page + $langs->loadLangs(array('other', 'admin')); include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; diff --git a/htdocs/core/lib/payments.lib.php b/htdocs/core/lib/payments.lib.php index 0d46dc7eacc..ecbdfad82f5 100644 --- a/htdocs/core/lib/payments.lib.php +++ b/htdocs/core/lib/payments.lib.php @@ -62,7 +62,6 @@ function payment_prepare_head(Paiement $object) */ function payment_supplier_prepare_head(Paiement $object) { - global $langs, $conf; $h = 0; @@ -127,8 +126,9 @@ function showOnlinePaymentUrl($type,$ref) { global $conf, $langs; - $langs->load("payment"); - $langs->load("paybox"); + // Load translation files required by the page + $langs->loadLangs(array('payment', 'paybox')); + $servicename='Online'; $out = img_picto('','object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePayment",$servicename).'
'; @@ -236,6 +236,24 @@ function getOnlinePaymentUrl($mode, $type, $ref='', $amount='9.99', $freetag='yo } } } + if ($type == 'donation') + { + $out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=donation&ref='.($mode?'':''); + if ($mode == 1) $out.='donation_ref'; + if ($mode == 0) $out.=urlencode($ref); + $out.=($mode?'':''); + if (! empty($conf->global->PAYMENT_SECURITY_TOKEN)) + { + if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out.='&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; + else + { + $out.='&securekey='.($mode?'':''); + if ($mode == 1) $out.="hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + donation_ref)"; + if ($mode == 0) $out.= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN . $type . $ref, 2); + $out.=($mode?'':''); + } + } + } // For multicompany if (! empty($out) && ! empty($conf->multicompany->enabled)) $out.="&entity=".$conf->entity; // Check the entity because we may have the same reference in several entities diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index 731f8859eba..1c704392c6b 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -190,8 +190,9 @@ function product_prepare_head($object) function productlot_prepare_head($object) { global $db, $langs, $conf, $user; - $langs->load("products"); - $langs->load("productbatch"); + + // Load translation files required by the page + $langs->loadLangs(array("products","productbatch")); $h = 0; $head = array(); @@ -200,7 +201,7 @@ function productlot_prepare_head($object) $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; $h++; - + // Attachments require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; diff --git a/htdocs/core/lib/sendings.lib.php b/htdocs/core/lib/sendings.lib.php index 71c287f7119..c01026b445d 100644 --- a/htdocs/core/lib/sendings.lib.php +++ b/htdocs/core/lib/sendings.lib.php @@ -36,8 +36,8 @@ function shipping_prepare_head($object) { global $db, $langs, $conf, $user; - $langs->load("sendings"); - $langs->load("deliveries"); + // Load translation files required by the page + $langs->loadLangs(array("sendings","deliveries")); $h = 0; $head = array(); @@ -121,8 +121,8 @@ function delivery_prepare_head($object) { global $langs, $conf, $user; - $langs->load("sendings"); - $langs->load("deliveries"); + // Load translation files required by the page + $langs->loadLangs(array("sendings","deliveries")); $h = 0; $head = array(); diff --git a/htdocs/core/lib/signature.lib.php b/htdocs/core/lib/signature.lib.php index b11d809caf2..2790c80c8e0 100644 --- a/htdocs/core/lib/signature.lib.php +++ b/htdocs/core/lib/signature.lib.php @@ -28,8 +28,9 @@ function showOnlineSignatureUrl($type,$ref) { global $conf, $langs; - $langs->load("payment"); - $langs->load("paybox"); + // Load translation files required by the page + $langs->loadLangs(array("payment","paybox")); + $servicename='Online'; $out = img_picto('','object_globe.png').' '.$langs->trans("ToOfferALinkForOnlineSignature",$servicename).'
'; diff --git a/htdocs/core/lib/supplier_proposal.lib.php b/htdocs/core/lib/supplier_proposal.lib.php index 1756c92a32a..a0f52d6de15 100644 --- a/htdocs/core/lib/supplier_proposal.lib.php +++ b/htdocs/core/lib/supplier_proposal.lib.php @@ -32,8 +32,9 @@ function supplier_proposal_prepare_head($object) { global $db, $langs, $conf, $user; - $langs->load("supplier_proposal"); - $langs->load("compta"); + + // Load translation files required by the page + $langs->loadLangs(array("supplier_proposal","compta")); $h = 0; $head = array(); diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index e59ac551eb3..452a9da08c7 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -150,11 +150,13 @@ function dolWebsiteOutput($content) $nbrep=0; if (! $symlinktomediaexists) { - $content=preg_replace('/(]*src=")[^\"]*document\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\document.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); + $content=preg_replace('/(]*src=")[^\"]*document\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); - $content=preg_replace('/(]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); - $content=preg_replace('/(]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); - $content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); + $content=preg_replace('/(]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); + $content=preg_replace('/(]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); + $content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); + + $content=preg_replace('/(]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=mycompany([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=mycompany\3file=\4\5', $content, -1, $nbrep); } else { @@ -163,6 +165,8 @@ function dolWebsiteOutput($content) $content=preg_replace('/(]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1medias/\4\5', $content, -1, $nbrep); $content=preg_replace('/(]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1medias/\4\5', $content, -1, $nbrep); $content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1medias/\4\5', $content, -1, $nbrep); + + $content=preg_replace('/(]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=mycompany([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=mycompany\3file=\4\5', $content, -1, $nbrep); } } @@ -516,6 +520,31 @@ function getAllImages($object, $objectpage, $urltograb, &$tmp, &$action, $modify +/** + * Save content of a page on disk + * + * @param string $filemaster Full path of filename master.inc.php for website to generate + * @return boolean True if OK + */ +function dolSaveMasterFile($filemaster) +{ + global $conf; + + // Now generate the master.inc.php page + dol_syslog("We regenerate the master file"); + dol_delete_file($filemaster); + + $mastercontent = ''."\n"; + $result = file_put_contents($filemaster, $mastercontent); + if (! empty($conf->global->MAIN_UMASK)) + @chmod($filemaster, octdec($conf->global->MAIN_UMASK)); + + return $result; +} + /** * Save content of a page on disk * @@ -538,10 +567,11 @@ function dolSavePageAlias($filealias, $object, $objectpage) $aliascontent.= 'else require $dolibarr_main_data_root.\'/website/\'.$website->ref.\'/page'.$objectpage->id.'.tpl.php\';'."\n"; $aliascontent.= '?>'."\n"; $result = file_put_contents($filealias, $aliascontent); - if (! empty($conf->global->MAIN_UMASK)) - @chmod($filealias, octdec($conf->global->MAIN_UMASK)); + if (! empty($conf->global->MAIN_UMASK)) { + @chmod($filealias, octdec($conf->global->MAIN_UMASK)); + } - return ($result?true:false); + return ($result?true:false); } @@ -585,9 +615,9 @@ function dolSavePageContent($filetpl, $object, $objectpage) $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; - $tplcontent.= ''."\n"; + $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; - $tplcontent.= '/ims\', \'\', file_get_contents(DOL_DATA_ROOT."/website/'.$object->ref.'/htmlheader.html")); ?>'."\n"; + $tplcontent.= '/ims\', \'\', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?>'."\n"; $tplcontent.= ''."\n"; $tplcontent.= preg_replace('/<\/?html>/ims', '', $objectpage->htmlheader)."\n"; $tplcontent.= ''."\n"; @@ -612,22 +642,24 @@ function dolSavePageContent($filetpl, $object, $objectpage) /** - * Save content of the index.php page + * Save content of the index.php and wrapper.php page * * @param string $pathofwebsite Path of website root * @param string $fileindex Full path of file index.php * @param string $filetpl File tpl to index.php page redirect to + * @param string $filewrapper Full path of file wrapper.php * @return boolean True if OK */ -function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl) +function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper) { global $conf; - $result=0; + $result1=false; + $result2=false; dol_mkdir($pathofwebsite); - dol_delete_file($fileindex); + dol_delete_file($fileindex); $indexcontent = ''."\n"; - $result = file_put_contents($fileindex, $indexcontent); + $result1 = file_put_contents($fileindex, $indexcontent); if (! empty($conf->global->MAIN_UMASK)) @chmod($fileindex, octdec($conf->global->MAIN_UMASK)); - return $result; + dol_delete_file($filewrapper); + $wrappercontent = 'mycompany->dir_output."/".$original_file));'."\n"; + $wrappercontent.= "else print 'Bad value for modulepart or file';\n"; + $wrappercontent.= 'if (is_object($db)) $db->close();'."\n"; + $wrappercontent.= '// END PHP ?>'."\n"; + $result2 = file_put_contents($filewrapper, $wrappercontent); + if (! empty($conf->global->MAIN_UMASK)) + @chmod($filewrapper, octdec($conf->global->MAIN_UMASK)); + + return ($result1 && $result2); } @@ -781,5 +827,3 @@ function dolSaveHtaccessFile($filehtaccess, $htaccess) return true; } - - diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 76973a1571c..86942478969 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -198,11 +198,11 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2002__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/list.php?leftmenu=donations&mainmenu=billing', 'List', 1, 'donations', '$user->rights->don->lire', '', 2, 1, __ENTITY__); -- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2003__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/stats/index.php?leftmenu=donations&mainmenu=billing', 'Statistics', 1, 'donations', '$user->rights->don->lire', '', 2, 2, __ENTITY__); -- Special expenses -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled || $conf->loan->enabled || $conf->banque->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'billing', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&mainmenu=billing', 'MenuSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)', '', 0, 6, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled', __HANDLER__, 'left', 2210__+MAX_llx_menu__, 'billing', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=billing', 'Salaries', 1, 'salaries', '$user->rights->salaries->payment->read', '', 0, 1, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2211__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/card.php?leftmenu=tax_salary&action=create', 'NewPayment', 2, 'companies', '$user->rights->salaries->payment->write', '', 0, 2, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2212__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary', 'Payments', 2, 'companies', '$user->rights->salaries->payment->read', '', 0, 3, __ENTITY__); -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2213__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/stats/index.php?leftmenu=tax_salary', 'Statistics', 2, 'companies', '$user->rights->salaries->payment->read', '', 0, 4, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled || $conf->loan->enabled || $conf->banque->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'billing', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&mainmenu=billing', 'MenuSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)', '', 0, 6, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled', __HANDLER__, 'left', 2210__+MAX_llx_menu__, 'billing', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=billing', 'Salaries', 1, 'salaries', '$user->rights->salaries->read', '', 0, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2211__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/card.php?leftmenu=tax_salary&action=create', 'NewPayment', 2, 'companies', '$user->rights->salaries->write', '', 0, 2, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2212__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary', 'Payments', 2, 'companies', '$user->rights->salaries->read', '', 0, 3, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2213__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/stats/index.php?leftmenu=tax_salary', 'Statistics', 2, 'companies', '$user->rights->salaries->read', '', 0, 4, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled', __HANDLER__, 'left', 2220__+MAX_llx_menu__, 'billing', 'tax_loan', 2200__+MAX_llx_menu__, '/loan/index.php?leftmenu=tax_loan&mainmenu=billing', 'Loans', 1, 'loan', '$user->rights->loan->read', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan"', __HANDLER__, 'left', 2221__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/card.php?leftmenu=tax_loan&action=create', 'NewLoan', 2, 'loan', '$user->rights->loan->write', '', 0, 2, __ENTITY__); --insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan"', __HANDLER__, 'left', 2222__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/payment/list.php?leftmenu=tax_loan', 'Payments', 2, 'companies', '$user->rights->loan->read', '', 0, 3, __ENTITY__); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 4c42d22280e..12a7a24fe48 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -80,8 +80,8 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode $showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal); if ($showmode) { - $langs->load("companies"); - $langs->load("suppliers"); + // Load translation files required by the page + $langs->loadLangs(array("companies","suppliers")); $classname=""; if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "companies") { $classname='class="tmenusel"'; $_SESSION['idmenu']=''; } @@ -152,7 +152,7 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode if (! empty($conf->loan->enabled)) $menuqualified++; $tmpentry=array( 'enabled'=>$menuqualified, - 'perms'=>(! empty($user->rights->facture->lire) || ! empty($user->rights->don->lire) || ! empty($user->rights->tax->charges->lire) || ! empty($user->rights->salaries->read) || ! empty($user->rights->fournisseur->facture->lire) || ! empty($user->rights->loan->read)), + 'perms'=>(! empty($user->rights->facture->lire) || ! empty($user->rights->don->lire) || ! empty($user->rights->tax->charges->lire) || ! empty($user->rights->salaries->read) || ! empty($user->rights->fournisseur->facture->lire) || ! empty($user->rights->loan->read)), 'module'=>'facture|supplier_invoice|don|tax|salaries|loan'); $showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal); if ($showmode) @@ -174,8 +174,8 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode $showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal); if ($showmode) { - $langs->load("compta"); - $langs->load("banks"); + // Load translation files required by the page + $langs->loadLangs(array("compta","banks")); $classname=""; if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "bank") { $classname='class="tmenusel"'; $_SESSION['idmenu']=''; } @@ -528,8 +528,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if ($usemenuhider || empty($leftmenu) || $leftmenu=="setup") { - $langs->load("admin"); - $langs->load("help"); + // Load translation files required by the page + $langs->loadLangs(array("admin","help")); $warnpicto=''; if (empty($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_COUNTRY)) @@ -883,7 +883,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu { global $mysoc; - $permtoshowmenu=((! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)); + $permtoshowmenu=((! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)); $newmenu->add("/compta/charges/index.php?leftmenu=tax&mainmenu=billing",$langs->trans("MenuSpecialExpenses"), 0, $permtoshowmenu, '', $mainmenu, 'tax'); // Social contributions @@ -931,10 +931,10 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (! empty($conf->salaries->enabled)) { $langs->load("salaries"); - $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=billing",$langs->trans("Salaries"),1,$user->rights->salaries->payment->read, '', $mainmenu, 'tax_salary'); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/card.php?leftmenu=tax_salary&action=create",$langs->trans("NewPayment"),2,$user->rights->salaries->payment->write); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary",$langs->trans("Payments"),2,$user->rights->salaries->payment->read); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans("Statistics"),2,$user->rights->salaries->payment->read); + $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=billing",$langs->trans("Salaries"),1,$user->rights->salaries->read, '', $mainmenu, 'tax_salary'); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/card.php?leftmenu=tax_salary&action=create",$langs->trans("NewPayment"),2,$user->rights->salaries->write); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary",$langs->trans("Payments"),2,$user->rights->salaries->read); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans("Statistics"),2,$user->rights->salaries->read); } // Loan @@ -1176,10 +1176,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu */ if ($mainmenu == 'bank') { - $langs->load("withdrawals"); - $langs->load("banks"); - $langs->load("bills"); - $langs->load('categories'); + // Load translation files required by the page + $langs->loadLangs(array("withdrawals","banks","bills","categories")); // Bank-Caisse if (! empty($conf->banque->enabled)) @@ -1402,8 +1400,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu // Leave/Holiday/Vacation module if (! empty($conf->holiday->enabled)) { - $langs->load("holiday"); - $langs->load("trips"); + // Load translation files required by the page + $langs->loadLangs(array("holiday","trips")); $newmenu->add("/holiday/list.php?leftmenu=hrm", $langs->trans("CPTitreMenu"), 0, $user->rights->holiday->read, '', $mainmenu, 'hrm'); $newmenu->add("/holiday/card.php?action=request", $langs->trans("New"), 1,$user->rights->holiday->write); @@ -1499,8 +1497,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu { if (! empty($conf->adherent->enabled)) { - $langs->load("members"); - $langs->load("compta"); + // Load translation files required by the page + $langs->loadLangs(array("members","compta")); $newmenu->add("/adherents/index.php?leftmenu=members&mainmenu=members",$langs->trans("Members"),0,$user->rights->adherent->lire, '', $mainmenu, 'members'); $newmenu->add("/adherents/card.php?leftmenu=members&action=create",$langs->trans("NewMember"),1,$user->rights->adherent->creer); diff --git a/htdocs/core/modules/action/rapport.pdf.php b/htdocs/core/modules/action/rapport.pdf.php index ae7e6cd63c6..a72c6c5af94 100644 --- a/htdocs/core/modules/action/rapport.pdf.php +++ b/htdocs/core/modules/action/rapport.pdf.php @@ -68,8 +68,9 @@ class CommActionRapport function __construct($db, $month, $year) { global $conf,$langs; - $langs->load("commercial"); - $langs->load("projects"); + + // Load translation files required by the page + $langs->loadLangs(array("commercial","projects")); $this->db = $db; $this->description = ""; diff --git a/htdocs/core/modules/bank/doc/pdf_ban.modules.php b/htdocs/core/modules/bank/doc/pdf_ban.modules.php index 6ecdc3b34dc..9a62200eb74 100644 --- a/htdocs/core/modules/bank/doc/pdf_ban.modules.php +++ b/htdocs/core/modules/bank/doc/pdf_ban.modules.php @@ -47,10 +47,8 @@ class pdf_ban extends ModeleBankAccountDoc { global $conf,$langs,$mysoc; - $langs->load("main"); - $langs->load("bank"); - $langs->load("withdrawals"); - $langs->load("companies"); + // Load translation files required by the page + $langs->loadLangs(array("main","bank","withdrawals","companies")); $this->db = $db; $this->name = "ban"; diff --git a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php index f7f51302972..a312e58cc55 100644 --- a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php +++ b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php @@ -53,8 +53,8 @@ class doc_generic_order_odt extends ModelePDFCommandes { global $conf,$langs,$mysoc; - $langs->load("main"); - $langs->load("companies"); + // Load translation files required by the page + $langs->loadLangs(array("main","companies")); $this->db = $db; $this->name = "ODT templates"; @@ -98,8 +98,8 @@ class doc_generic_order_odt extends ModelePDFCommandes { global $conf,$langs; - $langs->load("companies"); - $langs->load("errors"); + // Load translation files required by the page + $langs->loadLangs(array("errors","companies")); $form = new Form($this->db); diff --git a/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php b/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php index 413daf7ba25..a57b8c88aec 100644 --- a/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php +++ b/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php @@ -52,8 +52,8 @@ class doc_generic_contract_odt extends ModelePDFContract { global $conf,$langs,$mysoc; - $langs->load("main"); - $langs->load("companies"); + // Load translation files required by the page + $langs->loadLangs(array("main","companies")); $this->db = $db; $this->name = "ODT templates"; diff --git a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php index 2ca4300bb26..b0bb24b23cc 100644 --- a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php +++ b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php @@ -54,8 +54,8 @@ class doc_generic_shipment_odt extends ModelePdfExpedition { global $conf,$langs,$mysoc; - $langs->load("main"); - $langs->load("companies"); + // Load translation files required by the page + $langs->loadLangs(array("main","companies")); $this->db = $db; $this->name = "ODT templates"; @@ -99,8 +99,8 @@ class doc_generic_shipment_odt extends ModelePdfExpedition { global $conf,$langs; - $langs->load("companies"); - $langs->load("errors"); + // Load translation files required by the page + $langs->loadLangs(array("errors","companies")); $form = new Form($this->db); diff --git a/htdocs/core/modules/mailings/contacts1.modules.php b/htdocs/core/modules/mailings/contacts1.modules.php index ace0c97401a..8efefdbd079 100644 --- a/htdocs/core/modules/mailings/contacts1.modules.php +++ b/htdocs/core/modules/mailings/contacts1.modules.php @@ -116,10 +116,9 @@ class mailing_contacts1 extends MailingTargets function formFilter() { global $langs; - $langs->load("companies"); - $langs->load("commercial"); - $langs->load("suppliers"); - $langs->load("categories"); + + // Load translation files required by the page + $langs->loadLangs(array("commercial","companies","suppliers","categories")); $s=''; diff --git a/htdocs/core/modules/mailings/fraise.modules.php b/htdocs/core/modules/mailings/fraise.modules.php index 817de256a1d..e05d5f35794 100644 --- a/htdocs/core/modules/mailings/fraise.modules.php +++ b/htdocs/core/modules/mailings/fraise.modules.php @@ -109,9 +109,9 @@ class mailing_fraise extends MailingTargets function formFilter() { global $conf, $langs; - $langs->load("members"); - $langs->load("categories"); - $langs->load("companies"); + + // Load translation files required by the page + $langs->loadLangs(array("members","companies","categories")); $form=new Form($this->db); diff --git a/htdocs/core/modules/modSalaries.class.php b/htdocs/core/modules/modSalaries.class.php index e17035eda3d..4b79261a8da 100644 --- a/htdocs/core/modules/modSalaries.class.php +++ b/htdocs/core/modules/modSalaries.class.php @@ -50,7 +50,7 @@ class modSalaries extends DolibarrModules $this->db = $db; $this->numero = 510; // Perms from 501..519 - $this->family = "hr"; + $this->family = "compta"; // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) $this->name = preg_replace('/^mod/i','',get_class($this)); // Module description used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module) @@ -99,55 +99,32 @@ class modSalaries extends DolibarrModules $r=0; $r++; - $this->rights[$r][0] = 501; - $this->rights[$r][1] = 'Read employee contracts/salaries'; + $this->rights[$r][0] = 511; + $this->rights[$r][1] = 'Read payments of employee salaries'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'read'; $this->rights[$r][5] = ''; $r++; - $this->rights[$r][0] = 502; - $this->rights[$r][1] = 'Create/modify employee contracts/salaries'; + $this->rights[$r][0] = 512; + $this->rights[$r][1] = 'Create/modify payments of empoyee salaries'; $this->rights[$r][2] = 'w'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'write'; $this->rights[$r][5] = ''; - $r++; - $this->rights[$r][0] = 511; - $this->rights[$r][1] = 'Read payment of salaries'; - $this->rights[$r][2] = 'w'; - $this->rights[$r][3] = 0; - $this->rights[$r][4] = 'payment'; - $this->rights[$r][5] = 'read'; - - $r++; - $this->rights[$r][0] = 512; - $this->rights[$r][1] = 'Create/modify payment of salaries'; - $this->rights[$r][2] = 'w'; - $this->rights[$r][3] = 0; - $this->rights[$r][4] = 'payment'; - $this->rights[$r][5] = 'write'; - $r++; $this->rights[$r][0] = 514; - $this->rights[$r][1] = 'Delete contracts/salaries'; + $this->rights[$r][1] = 'Delete payments of employee salary'; $this->rights[$r][2] = 'd'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'delete'; $this->rights[$r][5] = ''; - $this->rights[$r][0] = 515; - $this->rights[$r][1] = 'Read all salaries'; - $this->rights[$r][2] = 'r'; - $this->rights[$r][3] = 0; - $this->rights[$r][4] = 'payment'; - $this->rights[$r][5] = 'readall'; - $r++; $this->rights[$r][0] = 517; - $this->rights[$r][1] = 'Export employee contracts and salaries payments'; + $this->rights[$r][1] = 'Export payments of employee salaries'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'export'; diff --git a/htdocs/core/modules/modSkype.class.php b/htdocs/core/modules/modSocialNetworks.class.php similarity index 77% rename from htdocs/core/modules/modSkype.class.php rename to htdocs/core/modules/modSocialNetworks.class.php index 84a55ac365f..b0465d1bf1c 100644 --- a/htdocs/core/modules/modSkype.class.php +++ b/htdocs/core/modules/modSocialNetworks.class.php @@ -1,5 +1,6 @@ + * Copyright (C) 2014 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,18 +17,18 @@ */ /** - * \defgroup Skype Module skype - * \brief Add a skype button. - * \file htdocs/core/modules/modSkype.class.php - * \ingroup Skype - * \brief Description and activation file for module skype + * \defgroup SocialNetworks Module SocialNetworks + * \brief Add a SocialNetworks button. + * \file htdocs/core/modules/modSocialNetworks.class.php + * \ingroup socialnetworks + * \brief Description and activation file for module SocialNetworks */ include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php'; /** - * Class to describe a Skype module + * Class to describe a SocialNetworks module */ -class modSkype extends DolibarrModules +class modSocialNetworks extends DolibarrModules { /** @@ -40,29 +41,29 @@ class modSkype extends DolibarrModules global $langs,$conf; $this->db = $db; - $this->numero = 3100; + $this->numero = 3300; // Family can be 'crm','financial','hr','projects','products','ecm','technic','other' // It is used to group modules in module setup page $this->family = "interface"; // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) $this->name = preg_replace('/^mod/i','',get_class($this)); - $this->description = "Enable Skype links into contacts"; + $this->description = "Enable Social Networks fields into contacts"; // Possible values for version are: 'development', 'experimental', 'dolibarr' or version $this->version = 'dolibarr'; // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // Name of image file used for this module. - $this->picto='skype'; + $this->picto='generic'; // Data directories to create when module is enabled $this->dirs = array(); // Config pages - $this->config_page_url = array(); + $this->config_page_url = array("socialnetworks.php"); // Dependencies - $this->hidden = ! empty($conf->global->MODULE_SKYPE_DISABLED); // A condition to hide module + $this->hidden = ! empty($conf->global->MODULE_SOCIALNETWORKS_DISABLED); // A condition to hide module $this->depends = array('modSociete'); // List of module class names as string that must be enabled if this module is enabled $this->requiredby = array(); // List of module ids to disable if this one is disabled $this->conflictwith = array(); // List of module class names as string this module is in conflict with diff --git a/htdocs/core/modules/modSyslog.class.php b/htdocs/core/modules/modSyslog.class.php index 0274eeb2e63..adefd37de9e 100644 --- a/htdocs/core/modules/modSyslog.class.php +++ b/htdocs/core/modules/modSyslog.class.php @@ -85,7 +85,7 @@ class modSyslog extends DolibarrModules // Cronjobs $this->cronjobs = array( - 0=>array('label'=>'CompressSyslogs', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'compressSyslogs', 'parameters'=>'', 'comment'=>'Compress and archive log files', 'frequency'=>1, 'unitfrequency'=> 3600 * 24, 'priority'=>50, 'status'=>0, 'test'=>true), + 0=>array('label'=>'CompressSyslogs', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'compressSyslogs', 'parameters'=>'', 'comment'=>'Compress and archive log files. Warning, batch must be run with same account than your web server to avoid to get lof files with different owner than required by web server !', 'frequency'=>1, 'unitfrequency'=> 3600 * 24, 'priority'=>50, 'status'=>0, 'test'=>true), ); } } diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php index ba55a03a577..d53012191af 100644 --- a/htdocs/core/tpl/login.tpl.php +++ b/htdocs/core/tpl/login.tpl.php @@ -78,7 +78,7 @@ $(document).ready(function () { -
- + multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { ?> - + diff --git a/htdocs/core/tpl/onlinepaymentlinks.tpl.php b/htdocs/core/tpl/onlinepaymentlinks.tpl.php index a425055135f..a5c5ce7cf11 100644 --- a/htdocs/core/tpl/onlinepaymentlinks.tpl.php +++ b/htdocs/core/tpl/onlinepaymentlinks.tpl.php @@ -1,4 +1,4 @@ - * * This program is free software; you can redistribute it and/or modify @@ -118,6 +118,28 @@ if (! empty($conf->adherent->enabled)) } print '
'; } +if (! empty($conf->don->enabled)) +{ + print img_picto('','object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnDonation",$servicename).':
'; + print ''.getOnlinePaymentUrl(1,'donation')."
\n"; + if (! empty($conf->global->PAYMENT_SECURITY_TOKEN) && ! empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) + { + $langs->load("members"); + print ''; + print $langs->trans("EnterRefToBuildUrl",$langs->transnoentitiesnoconv("Don")).': '; + print ''; + print ''; + if (GETPOST('generate_donation_ref')) + { + print '
-> '; + $url=getOnlinePaymentUrl(0,'donation',GETPOST('generate_donation_ref','alpha')); + print $url; + print "
\n"; + } + print ''; + } + print '
'; +} if (! empty($conf->use_javascript_ajax)) { @@ -140,3 +162,4 @@ print info_admin($langs->trans("YouCanAddTagOnUrl")); print ''; + diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php index 67443cf2db4..62a441643e7 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -66,7 +66,7 @@ $(document).ready(function () { -
'; - print $form->editfieldkey("OrderMinAmount",'order_min_amount',$object->order_min_amount,$object,$user->rights->societe->creer); - print ''; - print $form->editfieldval("OrderMinAmount",'order_min_amount',$object->order_min_amount,$object,$user->rights->societe->creer,$limit_field_type,($object->order_min_amount != '' ? price($object->order_min_amount) : '')); - - print '
'; + print $form->editfieldkey("OrderMinAmount",'order_min_amount',$object->order_min_amount,$object,$user->rights->societe->creer); + print ''; + print $form->editfieldval("OrderMinAmount",'order_min_amount',$object->order_min_amount,$object,$user->rights->societe->creer,$limit_field_type,($object->order_min_amount != '' ? price($object->order_min_amount) : '')); + print '
' . $langs->trans('AmountHT') . 'trans('Option'); ?> total_ht); ?>total_ht); ?> multicurrency_total_ht); ?> total_ttc); ?>total_ttc); ?>
'; print ''; - // Date + // Ref + print ''; + + // Company + if (! empty($conf->societe->enabled) && ! empty($conf->global->DONATION_USE_THIRDPARTIES)) + { + // Thirdparty + print ''; + if ($soc->id > 0 && ! GETPOST('fac_rec','alpha')) + { + print ''; + } + else + { + print ''; + } + print '' . "\n"; + + } + + // Date print ''; - // Amount - print "".''; + // Amount + print "".''; + // Public donation print '\n"; - print "".''; - print "".''; - print "".''; - print "".''; + if (empty($conf->societe->enabled) || empty($conf->global->DONATION_USE_THIRDPARTIES)) + { + print "".''; + print "".''; + print "".''; + print "".''; - // Zip / Town - print ''; + // Zip / Town + print ''; - // Country - print ''; + // Country + print ''; - print "".''; + print "".''; + } // Payment mode print "'; print ''; - print ''; - print ''; - print ''; + if (! empty($conf->fournisseur->enabled) && ! empty($conf->global->ORDER_MANAGE_MIN_AMOUNT)) + { + print ''; + print ''; + print ''; + } // Categories if (! empty($conf->categorie->enabled)) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 981f9e4d81a..e3943ed7415 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -2125,7 +2125,7 @@ class FactureFournisseur extends CommonInvoice $response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24; $response->label=$langs->trans("SupplierBillsToPay"); - $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?search_status=1&mainmenu=accountancy&leftmenu=suppliers_bills'; + $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?search_status=1&mainmenu=billing&leftmenu=suppliers_bills'; $response->img=img_object($langs->trans("Bills"),"bill"); $facturestatic = new FactureFournisseur($this->db); diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 0ed6f7fed14..6dd30e447b3 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -2120,7 +2120,7 @@ elseif (! empty($object->id)) // Total $alert = ''; - if($object->total_ht < $object->thirdparty->supplier_order_min_amount) { + if (! empty($conf->global->ORDER_MANAGE_MIN_AMOUNT) && $object->total_ht < $object->thirdparty->supplier_order_min_amount) { $alert = ' ' . img_warning($langs->trans('OrderMinAmount').': '.price($object->thirdparty->supplier_order_min_amount)); } print ''; diff --git a/htdocs/index.php b/htdocs/index.php index e8162dc95ea..2618d5bc8bc 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -270,11 +270,11 @@ if (empty($user->societe_id)) DOL_URL_ROOT.'/product/list.php?type=1&mainmenu=products', DOL_URL_ROOT.'/comm/propal/list.php?mainmenu=commercial&leftmenu=propals', DOL_URL_ROOT.'/commande/list.php?mainmenu=commercial&leftmenu=orders', - DOL_URL_ROOT.'/compta/facture/list.php?mainmenu=accountancy&leftmenu=customers_bills', + DOL_URL_ROOT.'/compta/facture/list.php?mainmenu=billing&leftmenu=customers_bills', DOL_URL_ROOT.'/contrat/list.php?mainmenu=commercial&leftmenu=contracts', DOL_URL_ROOT.'/fichinter/list.php?mainmenu=commercial&leftmenu=ficheinter', DOL_URL_ROOT.'/fourn/commande/list.php?mainmenu=commercial&leftmenu=orders_suppliers', - DOL_URL_ROOT.'/fourn/facture/list.php?mainmenu=accountancy&leftmenu=suppliers_bills', + DOL_URL_ROOT.'/fourn/facture/list.php?mainmenu=billing&leftmenu=suppliers_bills', DOL_URL_ROOT.'/supplier_proposal/list.php?mainmenu=commercial&leftmenu=', DOL_URL_ROOT.'/projet/list.php?mainmenu=project', DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm&leftmenu=expensereport', diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 502f7053106..ceaf1f5be90 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -466,6 +466,7 @@ new_pmp double DEFAULT 0 )ENGINE=InnoDB; ALTER TABLE llx_inventory ADD COLUMN datec datetime DEFAULT NULL; +ALTER TABLE llx_inventory ADD COLUMN tms timestamp; ALTER TABLE llx_inventory ADD INDEX idx_inventory_tms (tms); ALTER TABLE llx_inventory ADD INDEX idx_inventory_datec (datec); diff --git a/htdocs/install/mysql/migration/8.0.0-9.0.0.sql b/htdocs/install/mysql/migration/8.0.0-9.0.0.sql index 87053d8ccb7..bc28ad44aa1 100644 --- a/htdocs/install/mysql/migration/8.0.0-9.0.0.sql +++ b/htdocs/install/mysql/migration/8.0.0-9.0.0.sql @@ -70,3 +70,7 @@ ALTER TABLE llx_payment_salary ADD COLUMN fk_projet integer DEFAULT NULL after a ALTER TABLE llx_categorie ADD COLUMN ref_ext varchar(255); +ALTER TABLE llx_societe ADD COLUMN twitter varchar(255) after skype; +ALTER TABLE llx_societe ADD COLUMN facebook varchar(255) after skype; +ALTER TABLE llx_socpeople ADD COLUMN twitter varchar(255) after skype; +ALTER TABLE llx_socpeople ADD COLUMN facebook varchar(255) after skype; diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql index f1714021fb8..8f6fa75e601 100644 --- a/htdocs/install/mysql/tables/llx_societe.sql +++ b/htdocs/install/mysql/tables/llx_societe.sql @@ -51,6 +51,8 @@ create table llx_societe url varchar(255), -- email varchar(128), -- skype varchar(255), -- + twitter varchar(255), -- + facebook varchar(255), -- fk_effectif integer DEFAULT 0, -- fk_typent integer DEFAULT 0, -- fk_forme_juridique integer DEFAULT 0, -- juridical status diff --git a/htdocs/install/mysql/tables/llx_socpeople.sql b/htdocs/install/mysql/tables/llx_socpeople.sql index 51848b33b48..aa3256c29fd 100644 --- a/htdocs/install/mysql/tables/llx_socpeople.sql +++ b/htdocs/install/mysql/tables/llx_socpeople.sql @@ -43,6 +43,8 @@ create table llx_socpeople email varchar(255), jabberid varchar(255), skype varchar(255), + twitter varchar(255), -- + facebook varchar(255), -- photo varchar(255), no_email smallint NOT NULL DEFAULT 0, priv smallint NOT NULL DEFAULT 0, diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index d20013ad9e3..bd28a949f6b 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -4444,6 +4444,7 @@ function migrate_delete_old_files($db,$langs,$conf) DOL_DOCUMENT_ROOT.'/core/modules/modComptabiliteExpert.class.php', DOL_DOCUMENT_ROOT.'/core/modules/modCommercial.class.php', DOL_DOCUMENT_ROOT.'/core/modules/modProduit.class.php', + DOL_DOCUMENT_ROOT.'/core/modules/modSkype.class.php', DOL_DOCUMENT_ROOT.'/phenix/inc/triggers/interface_modPhenix_Phenixsynchro.class.php', DOL_DOCUMENT_ROOT.'/webcalendar/inc/triggers/interface_modWebcalendar_webcalsynchro.class.php', DOL_DOCUMENT_ROOT.'/core/triggers/interface_modWebcalendar_Webcalsynchro.class.php', diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index e9fd709f6dc..8842a69c5b8 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -791,11 +791,9 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission501=Read employee contracts/salaries -Permission502=Create/modify employee contracts/salaries -Permission511=Read payment of salaries -Permission512=Create/modify payment of salaries -Permission514=Delete salaries +Permission511=Read payments of salaries +Permission512=Create/modify payments of salaries +Permission514=Delete payments of salaries Permission517=Export salaries Permission520=Read Loans Permission522=Create/modify loans diff --git a/htdocs/langs/en_US/paypal.lang b/htdocs/langs/en_US/paypal.lang index bc5e828e903..724a3bbd813 100644 --- a/htdocs/langs/en_US/paypal.lang +++ b/htdocs/langs/en_US/paypal.lang @@ -31,4 +31,5 @@ OnlinePaymentSystem=Online payment system PaypalLiveEnabled=PayPal live enabled (otherwise test/sandbox mode) PaypalImportPayment=Import PayPal payments PostActionAfterPayment=Post actions after payments -ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary. \ No newline at end of file +ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary. +ValidationOfPaymentFailed=Validation of payment has failed \ No newline at end of file diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index 2ad4ecca5e7..5274ff87fab 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -88,4 +88,5 @@ AliasPageAlreadyExists=Alias page %s already exists CorporateHomePage=Corporate Home page EmptyPage=Empty page ExternalURLMustStartWithHttp=External URL must start with http:// or https:// -ZipOfWebsitePackageToImport=Zip file of website package \ No newline at end of file +ZipOfWebsitePackageToImport=Zip file of website package +ShowSubcontainers=Show included containers \ No newline at end of file diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 08a16745621..6cd379c3cc2 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -116,7 +116,7 @@ SendingEmailOnCancelation=Envoie d'email à l'annulation # Topic of email templates YourMembershipRequestWasReceived=Votre demande d'adhésion a été reçue. YourMembershipWasValidated=Votre adhésion a été enregistrée -YourSubscriptionWasRecorded=Votre nouvel adhésion a été enregistrée +YourSubscriptionWasRecorded=Votre nouvelle adhésion a été enregistrée SubscriptionReminderEmail=Rappel de cotisation YourMembershipWasCanceled=Votre adhésion a été annulée CardContent=Contenu de votre fiche adhérent diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php index 42b604f03d5..1409a26da98 100644 --- a/htdocs/loan/card.php +++ b/htdocs/loan/card.php @@ -238,7 +238,7 @@ if (empty($reshook)) $form = new Form($db); $formproject = new FormProjets($db); -if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db); +if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db); $title = $langs->trans("Loan") . ' - ' . $langs->trans("Card"); $help_url = 'EN:Module_Loan|FR:Module_Emprunt'; diff --git a/htdocs/loan/class/loanschedule.class.php b/htdocs/loan/class/loanschedule.class.php index 71217444b16..2f37b1a870c 100644 --- a/htdocs/loan/class/loanschedule.class.php +++ b/htdocs/loan/class/loanschedule.class.php @@ -430,7 +430,7 @@ class LoanSchedule extends CommonObject { while($obj = $this->db->fetch_object($resql)) { - $line = New LoanSchedule($this->db); + $line = new LoanSchedule($this->db); $line->id = $obj->rowid; $line->ref = $obj->rowid; diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 1af3fc23d1e..d325e52a343 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -1185,7 +1185,7 @@ elseif (! empty($module)) print '
'; print '
'; - print_fiche_titre($langs->trans("DescriptorFile")); + print load_fiche_titre($langs->trans("DescriptorFile")); if (! empty($moduleobj)) { @@ -1249,7 +1249,7 @@ elseif (! empty($module)) print '

'; // Readme file - print_fiche_titre($langs->trans("ReadmeFile")); + print load_fiche_titre($langs->trans("ReadmeFile")); print '
'; print '
'; @@ -1259,7 +1259,7 @@ elseif (! empty($module)) print '

'; // ChangeLog - print_fiche_titre($langs->trans("ChangeLog")); + print load_fiche_titre($langs->trans("ChangeLog")); print '
'; print '
'; diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 0f1b95b903c..2da97f5b800 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -410,27 +410,27 @@ class MyObject extends CommonObject elseif ($mode == 2) { if ($status == 1) return img_picto($this->labelstatus[$status],'statut4').' '.$this->labelstatus[$status]; - if ($status == 0) return img_picto($this->labelstatus[$status],'statut5').' '.$this->labelstatus[$status]; + elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5').' '.$this->labelstatus[$status]; } elseif ($mode == 3) { if ($status == 1) return img_picto($this->labelstatus[$status],'statut4'); - if ($status == 0) return img_picto($this->labelstatus[$status],'statut5'); + elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5'); } elseif ($mode == 4) { if ($status == 1) return img_picto($this->labelstatus[$status],'statut4').' '.$this->labelstatus[$status]; - if ($status == 0) return img_picto($this->labelstatus[$status],'statut5').' '.$this->labelstatus[$status]; + elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5').' '.$this->labelstatus[$status]; } elseif ($mode == 5) { if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4'); - if ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5'); + elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5'); } elseif ($mode == 6) { if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4'); - if ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5'); + elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5'); } } diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index 9ea8e133102..60fc718040f 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -70,7 +70,7 @@ $offset = $limit * $page ; $pageprev = $page - 1; $pagenext = $page + 1; -$search_all=GETPOST('search_all', 'alphanohtml'); +$search_all=GETPOST('search_all', 'alphanohtml') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml'); $search_categ=GETPOST("search_categ",'alpha'); $search_ref=GETPOST("search_ref"); $search_label=GETPOST("search_label"); diff --git a/htdocs/public/payment/paymentok.php b/htdocs/public/payment/paymentok.php index 70e30b171c8..b46f651f9b4 100644 --- a/htdocs/public/payment/paymentok.php +++ b/htdocs/public/payment/paymentok.php @@ -801,6 +801,11 @@ if ($ispaymentok) $content.="
\n"; $content.="tag=".$fulltag."
\ntoken=".$onlinetoken."
\npaymentType=".$paymentType."
\ncurrencycodeType=".$currencyCodeType."
\npayerId=".$payerID."
\nipaddress=".$ipaddress."
\nFinalPaymentAmt=".$FinalPaymentAmt."
\n"; + if (! empty($ErrorCode)) $content.="ErrorCode = ".$ErrorCode."
\n"; + if (! empty($ErrorShortMsg)) $content.="ErrorShortMsg = ".$ErrorShortMsg."
\n"; + if (! empty($ErrorLongMsg)) $content.="ErrorLongMsg = ".$ErrorLongMsg."
\n"; + if (! empty($ErrorSeverityCode)) $content.="ErrorSeverityCode = ".$ErrorSeverityCode."
\n"; + $ishtml=dol_textishtml($content); // May contain urls require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; diff --git a/htdocs/public/paypal/paymentok.php b/htdocs/public/paypal/paymentok.php index 1e6adb7ca51..72a43dcbc7b 100644 --- a/htdocs/public/paypal/paymentok.php +++ b/htdocs/public/paypal/paymentok.php @@ -43,14 +43,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; // Security check if (empty($conf->paypal->enabled)) accessforbidden('',0,0,1); -$langs->load("main"); -$langs->load("other"); -$langs->load("dict"); -$langs->load("bills"); -$langs->load("companies"); -$langs->load("paybox"); -$langs->load("paypal"); -$langs->load("stripe"); +$langs->loadLangs(array("main","other","dict","bills","companies","paybox","paypal","stripe")); // Clean parameters $PAYPAL_API_USER=""; diff --git a/htdocs/public/website/styles.css.php b/htdocs/public/website/styles.css.php index 674651f9e29..3e2462d889c 100644 --- a/htdocs/public/website/styles.css.php +++ b/htdocs/public/website/styles.css.php @@ -85,7 +85,7 @@ if (empty($pageid)) $objectpage=new WebsitePage($db); $array=$objectpage->fetchAll($object->id); - if (count($array) > 0) + if (is_array($array) && count($array) > 0) { $firstrep=reset($array); $pageid=$firstrep->id; diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 5343c5509a1..427995254fc 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -1962,7 +1962,7 @@ else // Capital print '
'; print ''; // Assign a Name diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php index bce7fe94541..b74b66a1a44 100644 --- a/htdocs/societe/consumption.php +++ b/htdocs/societe/consumption.php @@ -361,7 +361,7 @@ if ($sql_select) { $resql=$db->query($sql); if (!$resql) dol_print_error($db); - + $num = $db->num_rows($resql); $param="&socid=".$socid."&type_element=".$type_element; @@ -384,7 +384,7 @@ if ($sql_select) print ''; print ''; print ''; print ''; // Name diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 596a36ea286..6b5155321fe 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -424,11 +424,10 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_regions as region on (region. code_region // We'll need this table joined to the select in order to filter by categ if (! empty($search_categ_cus)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cc ON s.rowid = cc.fk_soc"; // We'll need this table joined to the select in order to filter by categ if (! empty($search_categ_sup)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_fournisseur as cs ON s.rowid = cs.fk_soc"; // We'll need this table joined to the select in order to filter by categ -$sql.= " ,".MAIN_DB_PREFIX."c_stcomm as st"; +$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."c_stcomm as st ON s.fk_stcomm = st.id"; // We'll need this table joined to the select in order to filter by sale if ($search_sale || (!$user->rights->societe->client->voir && !$socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; -$sql.= " WHERE s.fk_stcomm = st.id"; -$sql.= " AND s.entity IN (".getEntity('societe').")"; +$sql.= " WHERE s.entity IN (".getEntity('societe').")"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if ($socid) $sql.= " AND s.rowid = ".$socid; if ($search_sale) $sql.= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale @@ -1069,13 +1068,13 @@ while ($i < min($num, $limit)) // Customer code if (! empty($arrayfields['s.code_client']['checked'])) { - print ''; + print ''; if (! $i) $totalarray['nbfield']++; } // Supplier code if (! empty($arrayfields['s.code_fournisseur']['checked'])) { - print ''; + print ''; if (! $i) $totalarray['nbfield']++; } // Account customer code diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index a98d81aae19..d855e89f712 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -550,13 +550,17 @@ if (empty($reshook)) $db->begin(); + if (empty($newcu)) { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_account WHERE site = 'stripe' AND fk_soc = ".$object->id." AND status = ".$servicestatus." AND entity = ".$conf->entity; + } else { $sql = 'UPDATE '.MAIN_DB_PREFIX."societe_account"; $sql.= " SET key_account = '".$db->escape(GETPOST('key_account', 'alpha'))."'"; $sql.= " WHERE site = 'stripe' AND fk_soc = ".$object->id." AND status = ".$servicestatus." AND entity = ".$conf->entity; // Keep = here for entity. Only 1 record must be modified ! - + } + $resql = $db->query($sql); $num = $db->num_rows($resql); - if (empty($num)) + if (empty($num) && !empty($newcu)) { $societeaccount = new SocieteAccount($db); $societeaccount->fk_soc = $object->id; @@ -1023,8 +1027,10 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print ''; print ''; print ''; print ''; -print ''; print '
' . $langs->trans('Ref') . '' . $langs->trans('Draft') . '
' . $langs->trans('Customer') . ''; + print $soc->getNomUrl(1); + print ''; + // Outstanding Bill + $outstandingBills = $soc->get_OutstandingBill(); + print ' (' . $langs->trans('CurrentOutstandingBill') . ': '; + print price($outstandingBills, '', $langs, 0, 0, -1, $conf->currency); + if ($soc->outstanding_limit != '') + { + if ($outstandingBills > $soc->outstanding_limit) print img_warning($langs->trans("OutstandingBillReached")); + print ' / ' . price($soc->outstanding_limit, '', $langs, 0, 0, -1, $conf->currency); + } + print ')'; + print ''; + print $form->select_company($soc->id, 'socid', '(s.client = 1 OR s.client = 3) AND status=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300'); + // Option to reload page to retrieve customer informations. Note, this clear other input + if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE)) + { + print ''; + } + print ' '.$langs->trans("AddThirdParty").''; + print '
'.$langs->trans("Date").''; $form->select_date($donation_date?$donation_date:-1,'','','','',"add",1,1); print '
'.$langs->trans("Amount").' '.$langs->trans("Currency".$conf->currency).'
'.$langs->trans("Amount").' '.$langs->trans("Currency".$conf->currency).'
'.$langs->trans("PublicDonation").""; print $form->selectyesno("public",isset($_POST["public"])?$_POST["public"]:1,1); print "
'.$langs->trans("Company").'
'.$langs->trans("Lastname").'
'.$langs->trans("Firstname").'
'.$langs->trans("Address").''; - print '
'.$langs->trans("Company").'
'.$langs->trans("Lastname").'
'.$langs->trans("Firstname").'
'.$langs->trans("Address").''; + print '
'.$langs->trans("Zip").' / '.$langs->trans("Town").''; - print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6); - print ' '; - print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id')); - print '
'.$langs->trans("Zip").' / '.$langs->trans("Town").''; + print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6); + print ' '; + print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id')); + print '
'; - print $form->select_country(GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id); - if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); - print '
'; + print $form->select_country(GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); + print '
'.$langs->trans("EMail").'
'.$langs->trans("EMail").'
".$langs->trans("PaymentMode")."\n"; @@ -791,6 +847,16 @@ if (! empty($id) && $action != 'edit') $linktoelem = $form->showLinkToObjectBlock($object, null, array('don')); $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); + // Show online payment link + $useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled)); + + if ($useonlinepayment) //$object->statut != Facture::STATUS_DRAFT && + { + print '
'."\n"; + require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; + print showOnlinePaymentUrl('donation', $object->ref).'
'; + } + print '
'; print '
'; diff --git a/htdocs/don/class/don.class.php b/htdocs/don/class/don.class.php index 8be5c6bd703..279f8d980de 100644 --- a/htdocs/don/class/don.class.php +++ b/htdocs/don/class/don.class.php @@ -73,12 +73,6 @@ class Don extends CommonObject public $labelstatut; public $labelstatutshort; - /** - * @deprecated - * @see note_private, note_public - */ - public $commentaire; - /** * Constructor @@ -87,9 +81,7 @@ class Don extends CommonObject */ function __construct($db) { - global $langs; - - $this->db = $db; + $this->db = $db; } @@ -384,8 +376,8 @@ class Don extends CommonObject $sql.= ", '".$this->db->escape($this->address)."'"; $sql.= ", '".$this->db->escape($this->zip)."'"; $sql.= ", '".$this->db->escape($this->town)."'"; - $sql.= ", ".$this->country_id; - $sql.= ", ".$this->public; + $sql.= ", ".($this->country_id > 0 ? $this->country_id : '0'); + $sql.= ", ".((int) $this->public); $sql.= ", ".($this->fk_project > 0?$this->fk_project:"null"); $sql.= ", ".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL"); $sql.= ", ".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL"); @@ -397,7 +389,6 @@ class Don extends CommonObject $sql.= ", '".$this->db->escape($this->phone_mobile)."'"; $sql.= ")"; - dol_syslog(get_class($this)."::create", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { @@ -433,8 +424,8 @@ class Don extends CommonObject if (!$error && !empty($conf->global->MAIN_DISABLEDRAFTSTATUS)) { - $res = $this->setValid($user); - if ($res < 0) $error++; + //$res = $this->setValid($user); + //if ($res < 0) $error++; } if (!$error) @@ -688,7 +679,6 @@ class Don extends CommonObject $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->modelpdf = $obj->model_pdf; - $this->commentaire = $obj->note; // deprecated // Retreive all extrafield // fetch optionals attributes and labels diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 0cb9f9350cf..92498e99589 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -109,7 +109,7 @@ if (empty($reshook)) if ($action == 'setsupplier_order_min_amount') { $object->fetch($id); - $object->supplier_order_min_amount=GETPOST('supplier_order_min_amount'); + $object->supplier_order_min_amount=price2num(GETPOST('supplier_order_min_amount','alpha')); $result=$object->update($object->id, $user); if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); } @@ -298,15 +298,17 @@ if ($object->id > 0) print '
'; - print $form->editfieldkey("OrderMinAmount",'supplier_order_min_amount',$object->supplier_order_min_amount,$object,$user->rights->societe->creer); - print ''; - $limit_field_type = (! empty($conf->global->MAIN_USE_JQUERY_JEDITABLE)) ? 'numeric' : 'amount'; - print $form->editfieldval("OrderMinAmount",'supplier_order_min_amount',$object->supplier_order_min_amount,$object,$user->rights->societe->creer,$limit_field_type,($object->supplier_order_min_amount != '' ? price($object->supplier_order_min_amount) : '')); - - print '
'; + print $form->editfieldkey("OrderMinAmount",'supplier_order_min_amount',$object->supplier_order_min_amount,$object,$user->rights->societe->creer); + print ''; + $limit_field_type = (! empty($conf->global->MAIN_USE_JQUERY_JEDITABLE)) ? 'numeric' : 'amount'; + print $form->editfieldval("OrderMinAmount",'supplier_order_min_amount',$object->supplier_order_min_amount,$object,$user->rights->societe->creer,$limit_field_type,($object->supplier_order_min_amount != '' ? price($object->supplier_order_min_amount) : '')); + print '
'.$langs->trans("AmountHT").'
'.fieldLabel('Capital','capital').' '.$langs->trans("Currency".$conf->currency).'
'; // date - print $formother->select_month($month?$month:-1,'month',1); + print $formother->select_month($month?$month:-1, 'month', 1, 0, 'valignmiddle'); $formother->select_year($year?$year:-1,'year',1, 20, 1); print ''; diff --git a/htdocs/societe/index.php b/htdocs/societe/index.php index b7ce405b433..f53a9042fca 100644 --- a/htdocs/societe/index.php +++ b/htdocs/societe/index.php @@ -264,7 +264,7 @@ print '
'; * Last third parties modified */ $max=15; -$sql = "SELECT s.rowid, s.nom as name, s.client, s.fournisseur"; +$sql = "SELECT s.rowid, s.nom as name, s.email, s.client, s.fournisseur"; $sql.= ", s.code_client"; $sql.= ", s.code_fournisseur"; $sql.= ", s.logo"; @@ -313,6 +313,7 @@ if ($result) $thirdparty_static->code_client = $objp->code_client; $thirdparty_static->code_fournisseur = $objp->code_fournisseur; $thirdparty_static->canvas=$objp->canvas; + $thirdparty_static->email = $objp->email; print '
'.$obj->code_client.''.$obj->code_client.''.$obj->code_fournisseur.''.$obj->code_fournisseur.''; print $langs->trans("Remote"); + //if ($src->cvc_check == 'fail') print ' - CVC check fail'; print ''; + //var_dump($src); print ''; print ''; diff --git a/htdocs/societe/tpl/linesalesrepresentative.tpl.php b/htdocs/societe/tpl/linesalesrepresentative.tpl.php index 2f325f3001f..c2ea3d987a5 100644 --- a/htdocs/societe/tpl/linesalesrepresentative.tpl.php +++ b/htdocs/societe/tpl/linesalesrepresentative.tpl.php @@ -23,10 +23,10 @@ if (empty($conf) || ! is_object($conf)) } // Sale representative -print '
'; +print '
'; print $langs->trans('SalesRepresentatives'); print ''; +print ''; $listsalesrepresentatives=$object->getSalesRepresentatives($user); $nbofsalesrepresentative=count($listsalesrepresentatives); diff --git a/htdocs/stripe/payment.php b/htdocs/stripe/payment.php index f0c950d85ac..6560d42d137 100644 --- a/htdocs/stripe/payment.php +++ b/htdocs/stripe/payment.php @@ -8,6 +8,7 @@ * Copyright (C) 2014 Raphaël Doursenaud * Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com> * Copyright (C) 2015 Juanjo Menent + * Copyright (C) 2018 ThibaultFOUCART * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -639,36 +640,24 @@ print 'id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) { print'class="opacitymedium"';} print' >'; -if ($src->object=='card'){ -if ($src->brand == 'Visa') {$brand='cc-visa';} -elseif ($src->brand == 'MasterCard') {$brand='cc-mastercard';} -elseif ($src->brand == 'American Express') {$brand='cc-amex';} -elseif ($src->brand == 'Discover') {$brand='cc-discover';} -elseif ($src->brand == 'JCB') {$brand='cc-jcb';} -elseif ($src->brand == 'Diners Club') {$brand='cc-diners-club';} -else {$brand='credit-card-alt';} -print ''; -} -elseif ($src->object=='source' && $src->type=='card'){ -if ($src->card->brand == 'Visa') {$brand='cc-visa';} -elseif ($src->card->brand == 'MasterCard') {$brand='cc-mastercard';} -elseif ($src->card->brand == 'American Express') {$brand='cc-amex';} -elseif ($src->card->brand == 'Discover') {$brand='cc-discover';} -elseif ($src->card->brand == 'JCB') {$brand='cc-jcb';} -elseif ($src->card->brand == 'Diners Club') {$brand='cc-diners-club';} -else {$brand='credit-card-alt';} - -print ''; -} -elseif ($src->object=='source' && $src->type=='sepa_debit'){ -print ''; -} + if ($src->object=='card') + { + print img_credit_card($src->brand); + } + elseif ($src->object=='source' && $src->type=='card') + { + print img_credit_card($src->card->brand); + } + elseif ($src->object=='source' && $src->type=='sepa_debit') + { + print ''; + } print 'id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) { print'class="opacitymedium"';} print' >'; if ($src->object=='card'){ -print '**** '.$src->last4.'
Exp. '.$src->exp_month.'/'.$src->exp_year.''; + print '....'.$src->last4.' - '.$src->exp_month.'/'.$src->exp_year.''; print '
'; if ($src->country) { @@ -679,7 +668,7 @@ print ''; else print img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } elseif ($src->object=='source' && $src->type=='card'){ - print $src->owner->name.'
**** '.$src->card->last4.' - '.$src->card->exp_month.'/'.$src->card->exp_year.''; + print $src->owner->name.'
....'.$src->card->last4.' - '.$src->card->exp_month.'/'.$src->card->exp_year.''; print '
'; if ($src->card->country) { diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index b6e744672e8..105fd8245d2 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -177,7 +177,7 @@ $colorbacktabcard1=join(',',colorStringToArray($colorbacktabcard1)); // Norma $tmppart=explode(',',$colorbacktabcard1); $tmpval=(! empty($tmppart[0]) ? $tmppart[0] : 0)+(! empty($tmppart[1]) ? $tmppart[1] : 0)+(! empty($tmppart[2]) ? $tmppart[2] : 0); if ($tmpval <= 460) { $colortextbacktab='FFFFFF'; } -else { $colortextbacktab='111111'; } +else { $colortextbacktab='000000'; } // Format color value to match expected format (may be 'FFFFFF' or '255,255,255') @@ -2460,21 +2460,24 @@ span.butAction, span.butActionDelete { cursor: pointer; /*color: #fff !important; background: rgb(); - border: 1px solid rgb();*/ + border: 1px solid rgb(); border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); - border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; border-top-left-radius: 0 !important; - border-bottom-left-radius: 0 !important; + border-bottom-left-radius: 0 !important;*/ } a.butActionNew>span.fa-plus-circle, a.butActionNew>span.fa-plus-circle:hover { padding-left: 6px; font-size: 1.5em; border: none; box-shadow: none; webkit-box-shadow: none; } a.butActionNewRefused>span.fa-plus-circle, a.butActionNewRefused>span.fa-plus-circle:hover { padding-left: 6px; font-size: 1.5em; border: none; box-shadow: none; webkit-box-shadow: none; } -.butAction:hover, .butActionNew:hover { +.butAction:hover { -webkit-box-shadow: 0px 0px 6px 1px rgba(50, 50, 50, 0.4), 0px 0px 0px rgba(60,60,60,0.1); box-shadow: 0px 0px 6px 1px rgba(50, 50, 50, 0.4), 0px 0px 0px rgba(60,60,60,0.1); } +.butActionNew:hover { + text-decoration: underline; + box-shadow: unset !important; +} .butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active, .buttonDelete { background: rgb(239, 232, 230); @@ -3875,6 +3878,13 @@ span.websitebuttonsitepreviewdisabled img, a.websitebuttonsitepreviewdisabled im float: right; padding-top: 8px; } +.websiteselectionsection { + border-left: 1px solid #bbb; + border-right: 1px solid #bbb; + margin-left: 0px; + padding-left: 8px; + margin-right: 5px; +} /* ============================================================================== */ diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index 136384877fb..2820e9e4690 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -48,13 +48,12 @@ $cancel = GETPOST('cancel','alpha'); $socid=0; if ($user->societe_id > 0) $socid = $user->societe_id; $feature2 = (($socid && $user->rights->user->self->creer)?'':'user'); -// Ok if user->rights->salaries->read or user->rights->salaries->payment->write or user->rights->hrm->read +// Ok if user->rights->salaries->read or user->rights->hrm->read //$result = restrictedArea($user, 'salaries|hrm', $id, 'user&user', $feature2); $ok=false; if ($user->id == $id) $ok=true; // A user can always read its own card -if ($user->rights->salaries->read) $ok=true; -if ($user->rights->salaries->payment->write) $ok=true; -if ($user->rights->hrm->read) $ok=true; +if (! empty($user->rights->salaries->read)) $ok=true; +if (! empty($user->rights->hrm->read)) $ok=true; if (! $ok) { accessforbidden(); @@ -293,7 +292,7 @@ if ($action != 'edit' && $action != 'create') // If not bank account yet, $acco * Last salaries */ if (! empty($conf->salaries->enabled) && - ($user->rights->salaries->read || ($user->rights->salaries->read && $object->id == $user->id)) + ($user->rights->salaries->read && $object->id == $user->id) ) { $salary = new PaymentSalary($db); diff --git a/htdocs/user/notify/card.php b/htdocs/user/notify/card.php index 7e04adab9a7..575af204618 100644 --- a/htdocs/user/notify/card.php +++ b/htdocs/user/notify/card.php @@ -188,7 +188,7 @@ if ($result > 0) // Add notification form - print_fiche_titre($langs->trans("AddNewNotification"),'',''); + print load_fiche_titre($langs->trans("AddNewNotification"),'',''); print ''; print ''; @@ -276,7 +276,7 @@ if ($result > 0) } // List of active notifications - print_fiche_titre($langs->trans("ListOfActiveNotifications").' ('.$num.')','',''); + print load_fiche_titre($langs->trans("ListOfActiveNotifications").' ('.$num.')','',''); // Line with titles print ''; diff --git a/htdocs/variants/card.php b/htdocs/variants/card.php index 9f3dafdc153..be73db1fff0 100644 --- a/htdocs/variants/card.php +++ b/htdocs/variants/card.php @@ -137,7 +137,7 @@ $var = false; llxHeader('', $title); -//print_fiche_titre($title); +//print load_fiche_titre($title); $h=0; $head[$h][0] = DOL_URL_ROOT.'/variants/card.php?id='.$object->id; @@ -243,7 +243,7 @@ if ($action == 'edit') { ?> trans("PossibleValues")); + print load_fiche_titre($langs->trans("PossibleValues")); if ($action == 'edit_value') { print ''; diff --git a/htdocs/variants/create.php b/htdocs/variants/create.php index 0e491be448d..4f2d53bb75f 100644 --- a/htdocs/variants/create.php +++ b/htdocs/variants/create.php @@ -66,7 +66,7 @@ $title = $langs->trans('NewProductAttribute'); llxHeader('', $title); -print_fiche_titre($title); +print load_fiche_titre($title); dol_fiche_head(); diff --git a/htdocs/variants/create_val.php b/htdocs/variants/create_val.php index 8213148327d..86372df9f59 100644 --- a/htdocs/variants/create_val.php +++ b/htdocs/variants/create_val.php @@ -118,7 +118,7 @@ print ''; print ''; print ''; -print_fiche_titre($langs->trans('NewProductAttributeValue')); +print load_fiche_titre($langs->trans('NewProductAttributeValue')); dol_fiche_head(); diff --git a/htdocs/variants/generator.php b/htdocs/variants/generator.php index 49265f25001..d07c8bf66d0 100644 --- a/htdocs/variants/generator.php +++ b/htdocs/variants/generator.php @@ -160,7 +160,7 @@ if (! empty($id) || ! empty($ref)) { dol_fiche_end(); } - print_fiche_titre($langs->trans('ProductCombinationGenerator')); + print load_fiche_titre($langs->trans('ProductCombinationGenerator')); $dictionary_attr = array(); diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 2f7265e4272..befb4784dca 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -158,7 +158,7 @@ class Website extends CommonObject $sql .= ' '.((empty($this->entity) && $this->entity != '0')?'NULL':$this->entity).','; $sql .= ' '.(! isset($this->ref)?'NULL':"'".$this->db->escape($this->ref)."'").','; $sql .= ' '.(! isset($this->description)?'NULL':"'".$this->db->escape($this->description)."'").','; - $sql .= ' '.(! isset($this->status)?'NULL':$this->status).','; + $sql .= ' '.(! isset($this->status)?'1':$this->status).','; $sql .= ' '.(! isset($this->fk_default_home)?'NULL':$this->fk_default_home).','; $sql .= ' '.(! isset($this->virtualhost)?'NULL':"'".$this->db->escape($this->virtualhost)."'").","; $sql .= ' '.(! isset($this->fk_user_create)?$user->id:$this->fk_user_create).','; @@ -868,7 +868,7 @@ class Website extends CommonObject $allaliases = $objectpageold->pageurl; $allaliases.= ($objectpageold->aliasalt ? ','.$objectpageold->aliasalt : ''); - $line = '-- Page ID '.$objectpageold->id.' -> '.$objectpageold->newid.'__+MAX_llx_website_page__ - Aliases '.$allaliases.' --;'; + $line = '-- Page ID '.$objectpageold->id.' -> '.$objectpageold->newid.'__+MAX_llx_website_page__ - Aliases '.$allaliases.' --;'; // newid start at 1, 2... $line.= "\n"; fputs($fp, $line); @@ -909,6 +909,15 @@ class Website extends CommonObject $line.= ");"; $line.= "\n"; fputs($fp, $line); + + // Add line to update home page id during import + //var_dump($this->fk_default_home.' - '.$objectpageold->id.' - '.$objectpageold->newid);exit; + if ($this->fk_default_home > 0 && ($objectpageold->id == $this->fk_default_home) && ($objectpageold->newid > 0)) // This is the record with home page + { + $line = "UPDATE llx_website SET fk_default_home = ".($objectpageold->newid > 0 ? $this->db->escape($objectpageold->newid)."__+MAX_llx_website_page__" : "null")." WHERE rowid = __WEBSITE_ID__;"; + $line.= "\n"; + fputs($fp, $line); + } } fclose($fp); @@ -966,6 +975,15 @@ class Website extends CommonObject dolCopyDir($conf->website->dir_temp.'/'.$object->ref.'/containers', $conf->website->dir_output.'/'.$object->ref, 0, 1); // Overwrite if exists + // Now generate the master.inc.php page + $filemaster=$conf->website->dir_output.'/'.$object->ref.'/master.inc.php'; + $result = dolSaveMasterFile($filemaster); + if (! $result) + { + $this->errors[]='Failed to write file '.$filemaster; + $error++; + } + dolCopyDir($conf->website->dir_temp.'/'.$object->ref.'/medias/image/websitekey', $conf->website->dir_output.'/'.$object->ref.'/medias/image/'.$object->ref, 0, 1); // Medias can be shared, do not overwrite if exists dolCopyDir($conf->website->dir_temp.'/'.$object->ref.'/medias/js/websitekey', $conf->website->dir_output.'/'.$object->ref.'/medias/js/'.$object->ref, 0, 1); // Medias can be shared, do not overwrite if exists @@ -990,7 +1008,7 @@ class Website extends CommonObject $runsql = run_sql($sqlfile, 1, '', 0, '', 'none', 0, 1); if ($runsql <= 0) { - $this->errors[]='Failed to load sql file '.$sqlfile.'.'; + $this->errors[]='Failed to load sql file '.$sqlfile; $error++; } diff --git a/htdocs/website/class/websitepage.class.php b/htdocs/website/class/websitepage.class.php index a3a7f2e94f9..e60a0d2bcfe 100644 --- a/htdocs/website/class/websitepage.class.php +++ b/htdocs/website/class/websitepage.class.php @@ -158,7 +158,9 @@ class WebsitePage extends CommonObject $sql .= " t.status,"; $sql .= " t.grabbed_from,"; $sql .= " t.date_creation,"; - $sql .= " t.tms as date_modification"; + $sql .= " t.tms as date_modification,"; + $sql .= " t.fk_user_create,"; + $sql .= " t.fk_user_modif"; $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; //$sql .= ' WHERE entity IN ('.getEntity('website').')'; // entity is on website level $sql .= ' WHERE 1 = 1'; @@ -200,6 +202,8 @@ class WebsitePage extends CommonObject $this->grabbed_from = $obj->grabbed_from; $this->date_creation = $this->db->jdate($obj->date_creation); $this->date_modification = $this->db->jdate($obj->date_modification); + $this->fk_user_create = $obj->fk_user_create; + $this->fk_user_modif = $obj->fk_user_modif; } $this->db->free($resql); @@ -250,7 +254,9 @@ class WebsitePage extends CommonObject $sql .= " t.status,"; $sql .= " t.grabbed_from,"; $sql .= " t.date_creation,"; - $sql .= " t.tms as date_modification"; + $sql .= " t.tms as date_modification,"; + $sql .= " t.fk_user_create,"; + $sql .= " t.fk_user_modif"; $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element. ' as t'; $sql .= ' WHERE t.fk_website = '.$websiteid; // Manage filter @@ -299,6 +305,8 @@ class WebsitePage extends CommonObject $record->grabbed_from = $obj->grabbed_from; $record->date_creation = $this->db->jdate($obj->date_creation); $record->date_modification = $this->db->jdate($obj->date_modification); + $record->fk_user_create = $obj->fk_user_create; + $record->fk_user_modif = $obj->fk_user_modif; //var_dump($record->id); $records[$record->id] = $record; } @@ -393,6 +401,7 @@ class WebsitePage extends CommonObject $object->ref = $newref; $object->pageurl = $newref; $object->aliasalt = ''; + $object->fk_user_create = $user->id; $object->title = ($keeptitleunchanged ? '' : $langs->trans("CopyOf").' ').$object->title; if (! empty($newlang)) $object->lang=$newlang; if ($istranslation) $object->fk_page = $fromid; @@ -527,6 +536,8 @@ class WebsitePage extends CommonObject */ public function initAsSpecimen() { + global $user; + $this->id = 0; $now=dol_now(); @@ -544,5 +555,6 @@ class WebsitePage extends CommonObject $this->grabbed_from = ''; $this->date_creation = $now - (24 * 30 * 3600); $this->date_modification = $now - (24 * 7 * 3600); + $this->fk_user_create = $user->id; } } diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 812ad8a891e..590423de2e4 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2016-2018 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -140,6 +140,7 @@ $filerobot=$pathofwebsite.'/robots.txt'; $filehtaccess=$pathofwebsite.'/.htaccess'; $filetpl=$pathofwebsite.'/page'.$pageid.'.tpl.php'; $fileindex=$pathofwebsite.'/index.php'; +$filewrapper=$pathofwebsite.'/wrapper.php'; // Define $urlwithroot $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); @@ -179,6 +180,7 @@ if ($action == 'renamefile') $action='file_manager'; // After actions_linkedfil if ($action == 'seteditinline') { dolibarr_set_const($db, 'WEBSITE_EDITINLINE', 1); + dolibarr_set_const($db, 'WEBSITE_SUBCONTAINERSINLINE', 0); // Force disable of show included containers header("Location: ".$_SERVER["PHP_SELF"].'?website='.GETPOST('website','alphanohtml').'&pageid='.GETPOST('pageid','int')); exit; } @@ -188,6 +190,19 @@ if ($action == 'unseteditinline') header("Location: ".$_SERVER["PHP_SELF"].'?website='.GETPOST('website','alphanohtml').'&pageid='.GETPOST('pageid','int')); exit; } +if ($action == 'setshowsubcontainers') +{ + dolibarr_set_const($db, 'WEBSITE_SUBCONTAINERSINLINE', 1); + dolibarr_set_const($db, 'WEBSITE_EDITINLINE', 0); // Force disable of edit inline + header("Location: ".$_SERVER["PHP_SELF"].'?website='.GETPOST('website','alphanohtml').'&pageid='.GETPOST('pageid','int')); + exit; +} +if ($action == 'unsetshowsubcontainers') +{ + dolibarr_del_const($db, 'WEBSITE_SUBCONTAINERSINLINE'); + header("Location: ".$_SERVER["PHP_SELF"].'?website='.GETPOST('website','alphanohtml').'&pageid='.GETPOST('pageid','int')); + exit; +} // Add directory /* @@ -981,7 +996,7 @@ if ($action == 'setashome') // Generate the index.php page to be the home page //------------------------------------------------- - $result = dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl); + $result = dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper); if ($result) setEventMessages($langs->trans("Saved"), null, 'mesgs'); else setEventMessages('Failed to write file '.$fileindex, null, 'errors'); @@ -1119,19 +1134,7 @@ if ($action == 'updatemeta') // Now generate the master.inc.php page - dol_syslog("We regenerate the master file (because we update meta)"); - dol_delete_file($filemaster); - - $mastercontent = ''."\n"; - $result = file_put_contents($filemaster, $mastercontent); - if (! empty($conf->global->MAIN_UMASK)) - @chmod($filemaster, octdec($conf->global->MAIN_UMASK)); - + $result = dolSaveMasterFile($filemaster); if (! $result) setEventMessages('Failed to write file '.$filemaster, null, 'errors'); // Now delete the alias.php page @@ -1319,16 +1322,7 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf // Now generate the master.inc.php page - dol_syslog("We regenerate the master file"); - dol_delete_file($filemaster); - - $mastercontent = ''."\n"; - $result = file_put_contents($filemaster, $mastercontent); - if (! empty($conf->global->MAIN_UMASK)) - @chmod($filemaster, octdec($conf->global->MAIN_UMASK)); + $result = dolSaveMasterFile($filemaster); if (! $result) setEventMessages('Failed to write file '.$filemaster, null, 'errors'); @@ -1410,6 +1404,21 @@ if ($action == 'importsiteconfirm') { if (! empty($_FILES)) { + // Check symlink to medias and restore it if ko + $pathtomedias=DOL_DATA_ROOT.'/medias'; + $pathtomediasinwebsite=$pathofwebsite.'/medias'; + if (! is_link(dol_osencode($pathtomediasinwebsite))) + { + dol_syslog("Create symlink for ".$pathtomedias." into name ".$pathtomediasinwebsite); + dol_mkdir(dirname($pathtomediasinwebsite)); // To be sure dir for website exists + $result = symlink($pathtomedias, $pathtomediasinwebsite); + if (! $result) + { + setEventMessages($langs->trans("ErrorFieldToCreateSymLinkToMedias", $pathtomediasinwebsite, $pathtomedias), null, 'errors'); + $action = 'importsite'; + } + } + if (is_array($_FILES['userfile']['tmp_name'])) $userfiles=$_FILES['userfile']['tmp_name']; else $userfiles=array($_FILES['userfile']['tmp_name']); @@ -1857,14 +1866,18 @@ if (count($object->records) > 0) print ''; + print '
'; + print '
'; if ($websitepage->grabbed_from) { //print ''; + $langs->trans("EditInLine"); print ''.img_picto($langs->trans("EditInLineOff"),'switch_off','',false,0,0,'','nomarginleft').''; } else { //print ''; + print $langs->trans("EditInLine"); if (empty($conf->global->WEBSITE_EDITINLINE)) { print ''.img_picto($langs->trans("EditInLineOff"),'switch_off','',false,0,0,'','nomarginleft').''; @@ -1874,8 +1887,19 @@ if (count($object->records) > 0) print ''.img_picto($langs->trans("EditInLineOn"),'switch_on','',false,0,0,'','nomarginleft').''; } } - - print '   '; + print '
'; + print '
'; + print $langs->trans("ShowSubcontainers"); + if (empty($conf->global->WEBSITE_SUBCONTAINERSINLINE)) + { + print ''.img_picto($langs->trans("ShowSubContainersOff"),'switch_off','',false,0,0,'','nomarginleft').''; + } + else + { + print ''.img_picto($langs->trans("ShowSubContainersOn"),'switch_on','',false,0,0,'','nomarginleft').''; + } + print '
'; + print '
'; if ($object->fk_default_home > 0 && $pageid == $object->fk_default_home) print ''; else print ''; @@ -2187,7 +2211,7 @@ if ($action == 'createsite') dol_fiche_head($head, 'card', $langs->trans("AddSite"), -1, 'globe'); */ - if ($action == 'createcontainer') print_fiche_titre($langs->trans("AddSite")); + if ($action == 'createcontainer') print load_fiche_titre($langs->trans("AddSite")); print ''."\n"; //print '
'; @@ -2249,7 +2273,7 @@ if ($action == 'importsite') print '
'; - print_fiche_titre($langs->trans("ImportSite")); + print load_fiche_titre($langs->trans("ImportSite")); dol_fiche_head(array(), '0', '', -1); @@ -2281,7 +2305,7 @@ if ($action == 'editmeta' || $action == 'createcontainer') dol_fiche_head($head, 'card', $langs->trans("AddPage"), -1, 'globe'); */ - if ($action == 'createcontainer') print_fiche_titre($langs->trans("AddPage")); + if ($action == 'createcontainer') print load_fiche_titre($langs->trans("AddPage")); print ''."\n"; //print '
';