transnoentitiesnoconv("Home").'-'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy"));
+print '
'.$langs->trans("AccountancySetupDoneFromAccountancyMenu", $langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy")).'
';
print '
';
print '';
diff --git a/htdocs/accountancy/admin/journals.php b/htdocs/accountancy/admin/journals.php
index 03b51089d9a..677f2a743e5 100644
--- a/htdocs/accountancy/admin/journals.php
+++ b/htdocs/accountancy/admin/journals.php
@@ -94,7 +94,7 @@ print load_fiche_titre($langs->trans('ConfigAccountingExpert'), $linkback, 'titl
$head = admin_accounting_prepare_head(null);
-dol_fiche_head($head, 'journal', $langs->trans("Configuration"), 0, 'cron');
+dol_fiche_head($head, 'journal', $langs->trans("Configuration"), -1, 'cron');
$sql = "SELECT j.rowid, j.code, j.label, j.nature, j.active";
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_journal as j";
diff --git a/htdocs/admin/websites.php b/htdocs/admin/websites.php
index b0c81ec18af..06e9a7b93a4 100644
--- a/htdocs/admin/websites.php
+++ b/htdocs/admin/websites.php
@@ -375,11 +375,11 @@ if ($id)
// dans les dictionnaires de donnees
$valuetoshow=ucfirst($fieldlist[$field]); // Par defaut
$valuetoshow=$langs->trans($valuetoshow); // try to translate
- $align="left";
+ $align='';
if ($fieldlist[$field]=='lang') { $valuetoshow=$langs->trans("Language"); }
if ($valuetoshow != '')
{
- print '
';
+ print ' | ';
if (! empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i',$tabhelp[$id][$value])) print ''.$valuetoshow.' '.img_help(1,$valuetoshow).'';
else if (! empty($tabhelp[$id][$value])) print $form->textwithpicto($valuetoshow,$tabhelp[$id][$value]);
else print $valuetoshow;
@@ -413,14 +413,11 @@ if ($id)
$reshook=$hookmanager->executeHooks('createDictionaryFieldlist',$parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
$error=$hookmanager->error; $errors=$hookmanager->errors;
- if ($id == 3) unset($fieldlist[2]);
-
if (empty($reshook))
{
fieldListWebsites($fieldlist,$obj,$tabname[$id],'add');
}
- if ($id == 4) print ' | | ';
print '
';
if ($action != 'edit')
{
@@ -430,15 +427,9 @@ if ($id)
print "";
$colspan=count($fieldlist)+2;
- if ($id == 4) $colspan++;
-
- if (! empty($alabelisused) && $id != 25) // If there is one label among fields, we show legend of *
- {
- print ' | | * '.$langs->trans("LabelUsedByDefault").'. |
';
- }
- print '
| |
'; // Keep to have a line with enough height
}
+ print '';
print '';
@@ -453,6 +444,15 @@ if ($id)
$var=true;
if ($num)
{
+ print '
';
+
+ print '
';
}
}
else {
dol_print_error($db);
}
-
- print '';
-
- print '';
}
print '
';
diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php
index 67ab40f4946..aae1398109d 100644
--- a/htdocs/comm/card.php
+++ b/htdocs/comm/card.php
@@ -1098,7 +1098,7 @@ if ($id > 0)
else print '
';
}
- if ($object->client != 0 && $object->client != 2) print '
';
+ if ($object->client != 0 && $object->client != 2) print '
';
else print '
';
}
diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index 6e8c3b6d895..70eea532a79 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -2191,7 +2191,7 @@ if ($action == 'create')
else
{
print '
';
- print $form->select_company($soc->id, 'socid', '(s.client = 1 OR s.client = 3) AND status=1', 'SelectThirdParty');
+ 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))
{
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index b839e46dc8b..3275ee0f303 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -994,7 +994,7 @@ class Form
print img_picto($langs->trans("Search"), 'search');
}
}
- print 'global->THIRDPARTY_SEARCH_AUTOFOCUS) ? 'autofocus' : '').' />';
+ print 'global->THIRDPARTY_SEARCH_AUTOFOCUS) ? 'autofocus' : '').' />';
if ($hidelabel == 3) {
print img_picto($langs->trans("Search"), 'search');
}
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 9ff9de4e70d..c2edae8b592 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
@@ -137,6 +137,9 @@ ALTER TABLE llx_chargesociales ADD COLUMN fk_projet integer DEFAULT NULL;
ALTER TABLE llx_cronjob ADD COLUMN processing integer NOT NULL DEFAULT 0;
+ALTER TABLE llx_website ADD COLUMN fk_user_create integer;
+ALTER TABLE llx_website ADD COLUMN fk_user_modif integer;
+
create table llx_payment_various
(
diff --git a/htdocs/install/mysql/tables/llx_website.sql b/htdocs/install/mysql/tables/llx_website.sql
index 331e6b085bd..84a9dd47188 100644
--- a/htdocs/install/mysql/tables/llx_website.sql
+++ b/htdocs/install/mysql/tables/llx_website.sql
@@ -26,7 +26,8 @@ CREATE TABLE llx_website
status integer,
fk_default_home integer,
virtualhost varchar(255),
- date_creation datetime,
- date_modification datetime,
- tms timestamp
+ fk_user_create integer,
+ fk_user_modif integer,
+ date_creation datetime,
+ tms timestamp
) ENGINE=innodb;
diff --git a/htdocs/install/mysql/tables/llx_website_pages.sql b/htdocs/install/mysql/tables/llx_website_pages.sql
index 982420dd507..69b6c417528 100644
--- a/htdocs/install/mysql/tables/llx_website_pages.sql
+++ b/htdocs/install/mysql/tables/llx_website_pages.sql
@@ -27,6 +27,8 @@ CREATE TABLE llx_website_page
keywords varchar(255),
content mediumtext, -- text is not enough in size
status integer,
- date_creation datetime,
- tms timestamp
+ fk_user_create integer,
+ fk_user_modif integer,
+ date_creation datetime,
+ tms timestamp
) ENGINE=innodb;
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index 71788071a2d..1a3eea413df 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -823,5 +823,5 @@ SearchIntoContracts=Contracts
SearchIntoCustomerShipments=Customer shipments
SearchIntoExpenseReports=Expense reports
SearchIntoLeaves=Leaves
-
+SetMultiCurrencyCode=Set currency
BulkActions=Bulk actions
\ No newline at end of file
diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang
index ef6fe44856b..ac180cb5fe6 100644
--- a/htdocs/langs/en_US/sendings.lang
+++ b/htdocs/langs/en_US/sendings.lang
@@ -53,7 +53,7 @@ ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is do
ShipmentLine=Shipment line
ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders
ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders
-ProductQtyInShipmentAlreadySent=Product quantity from oped customer order already sent
+ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent
ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received
NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse.
WeightVolShort=Weight/Vol.
diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang
index fcb09c8d5c1..03069d6f649 100644
--- a/htdocs/langs/en_US/website.lang
+++ b/htdocs/langs/en_US/website.lang
@@ -24,5 +24,5 @@ SetAsHomePage=Set as Home page
RealURL=Real URL
ViewWebsiteInProduction=View web site using home URLs
SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server.
-PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before. URL of %s served by external server: %s
-PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed. The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr. URL of %s served by Dolibarr: %s
+PreviewSiteServedByWebServer=Preview %s in a new tab.
The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory: %s URL served by external server: %s
+PreviewSiteServedByDolibarr=Preview %s in a new tab.
The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed. The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr. URL served by Dolibarr: %s
To use your own external web server to serve this web site, create a virtual host on your web server that point on directory %s then enter the name of this virtual server and clicking on the other preview button.
diff --git a/htdocs/theme/eldy/img/save.png b/htdocs/theme/eldy/img/save.png
new file mode 100644
index 00000000000..eca2d92eccc
Binary files /dev/null and b/htdocs/theme/eldy/img/save.png differ
diff --git a/htdocs/theme/md/img/save.png b/htdocs/theme/md/img/save.png
new file mode 100644
index 00000000000..eca2d92eccc
Binary files /dev/null and b/htdocs/theme/md/img/save.png differ
diff --git a/htdocs/websites/class/website.class.php b/htdocs/websites/class/website.class.php
index 51a61d90112..a77079c94a6 100644
--- a/htdocs/websites/class/website.class.php
+++ b/htdocs/websites/class/website.class.php
@@ -73,10 +73,6 @@ class Website extends CommonObject
* @var mixed
*/
public $date_creation;
- /**
- * @var mixed
- */
- public $date_modification;
/**
* @var mixed
*/
@@ -123,7 +119,6 @@ class Website extends CommonObject
$error = 0;
// Clean parameters
-
if (isset($this->entity)) {
$this->entity = trim($this->entity);
}
@@ -136,36 +131,30 @@ class Website extends CommonObject
if (isset($this->status)) {
$this->status = trim($this->status);
}
-
-
+ if (empty($this->date_creation)) $this->date_creation = dol_now();
// Check parameters
// Put here code to add control on parameters values
// Insert request
$sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '(';
-
$sql.= 'entity,';
$sql.= 'ref,';
$sql.= 'description,';
$sql.= 'status,';
$sql.= 'fk_default_home,';
$sql.= 'virtualhost,';
- $sql.= 'date_creation,';
- $sql.= 'date_modification';
-
+ $sql.= 'fk_user_create';
+ $sql.= 'date_creation';
$sql .= ') VALUES (';
-
$sql .= ' '.(! isset($this->entity)?'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->fk_default_home)?'NULL':$this->fk_default_home).',';
$sql .= ' '.(! isset($this->virtualhost)?'NULL':$this->virtualhost).',';
- $sql .= ' '.(! isset($this->date_creation) || dol_strlen($this->date_creation)==0?'NULL':"'".$this->db->idate($this->date_creation)."'").',';
- $sql .= ' '.(! isset($this->date_modification) || dol_strlen($this->date_modification)==0?'NULL':"'".$this->db->idate($this->date_modification)."'");
-
-
+ $sql .= ' '.(! isset($this->fk_user_create)?$user->id:$this->fk_user_create).',';
+ $sql .= ' '.(! isset($this->date_creation) || dol_strlen($this->date_creation)==0?'NULL':"'".$this->db->idate($this->date_creation)."'");
$sql .= ')';
$this->db->begin();
@@ -223,8 +212,9 @@ class Website extends CommonObject
$sql .= " t.status,";
$sql .= " t.fk_default_home,";
$sql .= " t.virtualhost,";
+ $sql .= " t.fk_user_create,";
+ $sql .= " t.fk_user_modif,";
$sql .= " t.date_creation,";
- $sql .= " t.date_modification,";
$sql .= " t.tms";
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
if (null !== $ref) {
@@ -247,11 +237,10 @@ class Website extends CommonObject
$this->status = $obj->status;
$this->fk_default_home = $obj->fk_default_home;
$this->virtualhost = $obj->virtualhost;
+ $this->fk_user_create = $obj->fk_user_create;
+ $this->fk_user_modif = $obj->fk_user_modif;
$this->date_creation = $this->db->jdate($obj->date_creation);
- $this->date_modification = $this->db->jdate($obj->date_modification);
$this->tms = $this->db->jdate($obj->tms);
-
-
}
$this->db->free($resql);
@@ -292,8 +281,9 @@ class Website extends CommonObject
$sql .= " t.status,";
$sql .= " t.fk_default_home,";
$sql .= " t.virtualhost,";
+ $sql .= " t.fk_user_create,";
+ $sql .= " t.fk_user_modif,";
$sql .= " t.date_creation,";
- $sql .= " t.date_modification,";
$sql .= " t.tms";
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element. ' as t';
@@ -331,8 +321,9 @@ class Website extends CommonObject
$line->status = $obj->status;
$line->fk_default_home = $obj->fk_default_home;
$line->virtualhost = $obj->virtualhost;
+ $this->fk_user_create = $obj->fk_user_create;
+ $this->fk_user_modif = $obj->fk_user_modif;
$line->date_creation = $this->db->jdate($obj->date_creation);
- $line->date_modification = $this->db->jdate($obj->date_modification);
$line->tms = $this->db->jdate($obj->tms);
$this->records[$line->id] = $line;
@@ -377,25 +368,20 @@ class Website extends CommonObject
$this->status = trim($this->status);
}
-
-
// Check parameters
// Put here code to add a control on parameters values
// Update request
$sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . ' SET';
-
$sql .= ' entity = '.(isset($this->entity)?$this->entity:"null").',';
$sql .= ' ref = '.(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").',';
$sql .= ' description = '.(isset($this->description)?"'".$this->db->escape($this->description)."'":"null").',';
$sql .= ' status = '.(isset($this->status)?$this->status:"null").',';
$sql .= ' fk_default_home = '.(($this->fk_default_home > 0)?$this->fk_default_home:"null").',';
$sql .= ' virtualhost = '.(($this->virtualhost != '')?"'".$this->db->escape($this->virtualhost)."'":"null").',';
+ $sql .= ' fk_user_modif = '.(! isset($this->fk_user_modif) ? $user->id : $this->fk_user_modif).',';
$sql .= ' date_creation = '.(! isset($this->date_creation) || dol_strlen($this->date_creation) != 0 ? "'".$this->db->idate($this->date_creation)."'" : 'null').',';
- $sql .= ' date_modification = '.(! isset($this->date_modification) || dol_strlen($this->date_modification) != 0 ? "'".$this->db->idate($this->date_modification)."'" : 'null').',';
$sql .= ' tms = '.(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : "'".$this->db->idate(dol_now())."'");
-
-
$sql .= ' WHERE rowid=' . $this->id;
$this->db->begin();
@@ -631,6 +617,8 @@ class Website extends CommonObject
*/
public function initAsSpecimen()
{
+ global $user;
+
$this->id = 0;
$this->entity = 1;
@@ -639,8 +627,9 @@ class Website extends CommonObject
$this->status = '';
$this->fk_default_home = null;
$this->virtualhost = 'http://myvirtualhost';
+ $this->fk_user_create = $user->id;
+ $this->fk_user_modif = $user->id;
$this->date_creation = dol_now();
- $this->date_modification = dol_now();
$this->tms = dol_now();
diff --git a/htdocs/websites/class/websitepage.class.php b/htdocs/websites/class/websitepage.class.php
index 883b6495c53..c80d20fe44b 100644
--- a/htdocs/websites/class/websitepage.class.php
+++ b/htdocs/websites/class/websitepage.class.php
@@ -181,7 +181,7 @@ class WebsitePage extends CommonObject
/**
* Load object in memory from the database
*
- * @param int $id Id object
+ * @param int $id Id object. If this is 0, the default page of website_id will be used, if not defined, the first one. found
* @param string $website_id Web site id
* @param string $page Page name
*
@@ -205,13 +205,16 @@ class WebsitePage extends CommonObject
$sql .= " t.tms as date_modification";
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
+ //$sql .= ' WHERE entity IN ('.getEntity('website', 1).')'; // entity is on website level
+ $sql .= ' WHERE 1 = 1';
if (null !== $website_id) {
- $sql .= ' WHERE t.fk_website = ' . '\'' . $website_id . '\'';
- $sql .= ' AND t.pageurl = ' . '\'' . $page . '\'';
+ $sql .= " AND t.fk_website = '" . $this->db->escape($website_id) . "'";
+ if ($page) $sql .= " AND t.pageurl = '" . $this->db->escape($page) . "'";
} else {
- $sql .= ' WHERE t.rowid = ' . $id;
+ $sql .= ' AND t.rowid = ' . $id;
}
-
+ $sql .= $this->db->plimit(1);
+
$resql = $this->db->query($sql);
if ($resql) {
$numrows = $this->db->num_rows($resql);
diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php
index b55f81f5b7f..b78a172e01f 100644
--- a/htdocs/websites/index.php
+++ b/htdocs/websites/index.php
@@ -438,16 +438,34 @@ if ($action == 'updatemeta')
// Update page
if ($action == 'updatecontent' || GETPOST('refreshsite') || GETPOST('refreshpage') || GETPOST('preview'))
{
- $db->begin();
$object->fetch(0, $website);
+ /*if (GETPOST('savevirtualhost') && $object->virtualhost != GETPOST('previewsite'))
+ {
+ $object->virtualhost = GETPOST('previewsite', 'alpha');
+ $object->update($user);
+ }*/
+
$objectpage->fk_website = $object->id;
- $res = $objectpage->fetch($pageid, $object->fk_website);
+ if ($pageid > 0)
+ {
+ $res = $objectpage->fetch($pageid);
+ }
+ else
+ {
+ $res = $objectpage->fetch($object->fk_default_home);
+ if (! $res > 0)
+ {
+ $res = $objectpage->fetch(0, $object->fk_website);
+ }
+ }
if ($res > 0)
{
if ($action == 'updatecontent')
{
+ $db->begin();
+
$objectpage->content = GETPOST('PAGE_CONTENT');
// Clean data. We remove all the head section.
@@ -632,7 +650,7 @@ if (count($object->records) > 0)
// List of websites
print '';
$out='';
- $out.=' ';
- $urlext=$realurl.'/'.$pagealias.'.php';
- print '';
- print $form->textwithpicto('', $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $urlext), 1, 'preview_ext');
- print '';
+ if (! empty($object->virtualhost))
+ {
+ $urlext=$virtualurl.'/'.$pagealias.'.php';
+ print 'transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $dataroot, $urlext)).'">';
+ print $form->textwithpicto('', $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $dataroot, $urlext?$urlext:$langs->trans("VirtualHostUrlNotDefined")), 1, 'preview_ext');
+ print '';
+ }
+ else
+ {
+ print '';
+ print $form->textwithpicto('', $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $dataroot, $urlext?$urlext:$langs->trans("VirtualHostUrlNotDefined")), 1, 'preview_ext');
+ print '';
+ }
- print '';
- print $form->textwithpicto('', $langs->trans("PreviewSiteServedByDolibarr", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $realpage), 1, 'preview');
+ print 'transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $realpage)).'">';
+ print $form->textwithpicto('', $langs->trans("PreviewSiteServedByDolibarr", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $realpage, $dataroot), 1, 'preview');
print ''; // View page in new Tab
//print '';
|