diff --git a/htdocs/contact/canvas/actions_contactcard_common.class.php b/htdocs/contact/canvas/actions_contactcard_common.class.php index d651eba1bd5..883013c2014 100644 --- a/htdocs/contact/canvas/actions_contactcard_common.class.php +++ b/htdocs/contact/canvas/actions_contactcard_common.class.php @@ -29,7 +29,10 @@ */ class ActionsContactCardCommon { - var $db; + var $db; + var $targetmodule; + var $canvas; + var $card; //! Numero d'erreur Plage 1280-1535 var $errno = 0; @@ -37,20 +40,24 @@ class ActionsContactCardCommon var $tpl = array(); //! Object container var $object; - //! Canvas - var $canvas; //! Error string var $error; //! Error array var $errors=array(); - /** - * Constructeur de la classe - * @param DB Handler acces base de donnees + /** + * Constructor + * @param DB Handler acces base de donnees + * @param targmetmodule Name of directory of module where canvas is stored + * @param canvas Name of canvas + * @param card Name of tab (sub-canvas) */ - function ActionsContactCardCommon($DB) + function ActionsContactCardCommon($DB,$targetmodule,$canvas,$card) { - $this->db = $DB; + $this->db = $DB; + $this->targetmodule = $targetmodule; + $this->canvas = $canvas; + $this->card = $card; } diff --git a/htdocs/contact/canvas/default/actions_contactcard_default.class.php b/htdocs/contact/canvas/default/actions_contactcard_default.class.php index c4da1754fc4..22aca6f0f8e 100644 --- a/htdocs/contact/canvas/default/actions_contactcard_default.class.php +++ b/htdocs/contact/canvas/default/actions_contactcard_default.class.php @@ -32,17 +32,23 @@ include_once(DOL_DOCUMENT_ROOT.'/contact/canvas/actions_contactcard_common.class class ActionsContactCardDefault extends ActionsContactCardCommon { var $db; - - //! Canvas - var $canvas; + var $targetmodule; + var $canvas; + var $card; /** - * Constructeur de la classe - * @param DB Handler acces base de donnees + * Constructor + * @param DB Handler acces base de donnees + * @param targmetmodule Name of directory of module where canvas is stored + * @param canvas Name of canvas + * @param card Name of tab (sub-canvas) */ - function ActionsContactCardDefault($DB) + function ActionsContactCardDefault($DB,$targetmodule,$canvas,$card) { - $this->db = $DB; + $this->db = $DB; + $this->targetmodule = $targetmodule; + $this->canvas = $canvas; + $this->card = $card; } /** diff --git a/htdocs/contact/fiche.php b/htdocs/contact/fiche.php index fce7f84e03b..4214a355df3 100644 --- a/htdocs/contact/fiche.php +++ b/htdocs/contact/fiche.php @@ -151,8 +151,9 @@ else $db->begin(); - $object->socid = $_POST["socid"]; + if ($canvas) $object->canvas=$canvas; + $object->socid = $_POST["socid"]; $object->name = $_POST["name"]; $object->firstname = $_POST["firstname"]; $object->civilite_id = $_POST["civilite_id"]; @@ -285,7 +286,8 @@ else * View */ -llxHeader('',$langs->trans("ContactsAddresses"),'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); +$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +llxHeader('',$langs->trans("ContactsAddresses"),$help_url); $form = new Form($db); $formcompany = new FormCompany($db); @@ -298,13 +300,11 @@ if ($socid > 0) $objsoc->fetch($socid); } -if (! empty($objcanvas->template_dir)) +if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // ----------------------------------------- // When used with CANVAS // ----------------------------------------- - //$objcanvas->doOutput($socid); - if ($action == 'create') { $objcanvas->assign_post(); // Assign POST data diff --git a/htdocs/core/class/canvas.class.php b/htdocs/core/class/canvas.class.php index 26aea33a4ff..eb1c4fec8a4 100644 --- a/htdocs/core/class/canvas.class.php +++ b/htdocs/core/class/canvas.class.php @@ -37,7 +37,7 @@ class Canvas var $action; - var $targetmodule; // Module built into dolibarr replaced by canvas (ex: thirdparty, contact, ...) + var $targetmodule; // Module concerned by canvas (ex: thirdparty, contact, ...) var $canvas; // Name of canvas var $card; // Tab (sub-canvas) @@ -141,7 +141,7 @@ class Canvas /** * Execute actions - * @param Id of object (may be empty for creation) + * @param id Id of object (may be empty for creation) */ function doActions($id) { @@ -150,7 +150,7 @@ class Canvas // If function to do actions is overwritten, we use new one if (method_exists($this->control,'doActions')) { - $out = $this->control->doActions($id); + $out = $this->control->doActions($id,$this->targetmodule,$this->canvas,$this->card); $this->errors = ($this->control->errors?$this->control->errors:$this->control->object->errors); $this->error = ($this->control->error?$this->control->error:$this->control->object->error); @@ -189,7 +189,7 @@ class Canvas /** - * Assigne les valeurs POST dans l'objet + * Assign values into POST into object * // TODO This should be useless. POST is already visible from everywhere. */ function assign_post() @@ -198,14 +198,28 @@ class Canvas } /** - * Shared method for canvas to assign values of templates - * @param action Type of action + * Shared method for canvas to assign values for templates */ function assign_values() { if (method_exists($this->control,'assign_values')) $this->control->assign_values($this->action); } + /** + * Return the template to display canvas (if it exists). + * @param mode 'create', ''='view', 'edit' + * @return string Path to display canvas file if it exists, '' otherwise. + */ + function displayCanvasExists($mode='view') + { + $newmode=$mode; + if (empty($newmode)) $newmode='view'; + if (empty($this->template_dir)) return 0; + //print $this->template_dir.$this->card.'_'.$newmode.'.tpl.php'; + if (file_exists($this->template_dir.$this->card.'_'.$newmode.'.tpl.php')) return 1; + else return 0; + } + /** * Display canvas * @param mode 'create', 'view', 'edit' diff --git a/htdocs/societe/canvas/actions_card_common.class.php b/htdocs/societe/canvas/actions_card_common.class.php index e887494d8ed..fafe81cedf7 100644 --- a/htdocs/societe/canvas/actions_card_common.class.php +++ b/htdocs/societe/canvas/actions_card_common.class.php @@ -30,7 +30,10 @@ */ class ActionsCardCommon { - var $db; + var $db; + var $targetmodule; + var $canvas; + var $card; //! Numero d'erreur Plage 1280-1535 var $errno = 0; @@ -38,20 +41,24 @@ class ActionsCardCommon var $tpl = array(); //! Object container var $object; - //! Canvas - var $canvas; //! Error string var $error; //! Error array var $errors=array(); - /** - * Constructeur de la classe - * @param DB Handler acces base de donnees + /** + * Constructor + * @param DB Handler acces base de donnees + * @param targmetmodule Name of directory of module where canvas is stored + * @param canvas Name of canvas + * @param card Name of tab (sub-canvas) */ - function ActionsCardCommon($DB) + function ActionsCardCommon($DB,$targetmodule,$canvas,$card) { - $this->db = $DB; + $this->db = $DB; + $this->targetmodule = $targetmodule; + $this->canvas = $canvas; + $this->card = $card; } @@ -385,7 +392,7 @@ class ActionsCardCommon } $this->tpl['title'] = $this->getTitle($action); - + $this->tpl['error'] = get_htmloutput_errors($this->object->error,$this->object->errors); if ($action == 'create') @@ -410,7 +417,7 @@ class ActionsCardCommon '."\n"; } } - + if ($action == 'create' || $action == 'edit') { if ($conf->use_javascript_ajax) diff --git a/htdocs/societe/canvas/default/actions_card_default.class.php b/htdocs/societe/canvas/default/actions_card_default.class.php index d8ad83d59b3..3050584ab62 100644 --- a/htdocs/societe/canvas/default/actions_card_default.class.php +++ b/htdocs/societe/canvas/default/actions_card_default.class.php @@ -32,17 +32,23 @@ include_once(DOL_DOCUMENT_ROOT.'/societe/canvas/actions_card_common.class.php'); class ActionsCardDefault extends ActionsCardCommon { var $db; - - //! Canvas - var $canvas; + var $targetmodule; + var $canvas; + var $card; /** - * Constructeur de la classe - * @param DB Handler acces base de donnees + * Constructor + * @param DB Handler acces base de donnees + * @param targmetmodule Name of directory of module where canvas is stored + * @param canvas Name of canvas + * @param card Name of tab (sub-canvas) */ - function ActionsCardDefault($DB) + function ActionsCardDefault($DB,$targetmodule,$canvas,$card) { - $this->db = $DB; + $this->db = $DB; + $this->targetmodule = $targetmodule; + $this->canvas = $canvas; + $this->card = $card; } /** diff --git a/htdocs/societe/canvas/individual/actions_card_individual.class.php b/htdocs/societe/canvas/individual/actions_card_individual.class.php index a8d5c5dd0c5..9711c86fcdb 100644 --- a/htdocs/societe/canvas/individual/actions_card_individual.class.php +++ b/htdocs/societe/canvas/individual/actions_card_individual.class.php @@ -31,17 +31,23 @@ include_once(DOL_DOCUMENT_ROOT.'/societe/canvas/actions_card_common.class.php'); class ActionsCardIndividual extends ActionsCardCommon { var $db; + var $targetmodule; + var $canvas; + var $card; - //! Canvas - var $canvas; - - /** - * Constructeur de la classe - * @param DB Handler acces base de donnees - */ - function ActionsCardIndividual($DB) + /** + * Constructor + * @param DB Handler acces base de donnees + * @param targmetmodule Name of directory of module where canvas is stored + * @param canvas Name of canvas + * @param card Name of tab (sub-canvas) + */ + function ActionsCardIndividual($DB,$targetmodule,$canvas,$card) { $this->db = $DB; + $this->targetmodule = $targetmodule; + $this->canvas = $canvas; + $this->card = $card; } diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index 95185ce066a..16c9ee92d6c 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -73,7 +73,6 @@ else } - /* * Actions */ @@ -124,9 +123,9 @@ else if ($action == 'update') { - // Load properties of company $soc->fetch($socid); } + else if ($canvas) $soc->canvas=$canvas; if ($_REQUEST["private"] == 1) { @@ -262,7 +261,7 @@ else $url=$_SERVER["PHP_SELF"]."?socid=".$soc->id; if (($soc->client == 1 || $soc->client == 3) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $url=DOL_URL_ROOT."/comm/fiche.php?socid=".$soc->id; else if ($soc->fournisseur == 1) $url=DOL_URL_ROOT."/fourn/fiche.php?socid=".$soc->id; - Header("Location: ".$url); + Header("Location: ".$url); exit; } else @@ -386,8 +385,7 @@ $formcompany = new FormCompany($db); $countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; - -if (! empty($objcanvas->template_dir)) +if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { // ----------------------------------------- // When used with CANVAS