dolibarr  x.y.z
target_contact.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2007-2017 Laurent Destailleur <eldy@users.sourceforge.net>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <https://www.gnu.org/licenses/>.
16  */
17 
24 // Load Dolibarr environment
25 require '../main.inc.php';
26 require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
27 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
28 require_once DOL_DOCUMENT_ROOT.'/webhook/class/target.class.php';
29 require_once DOL_DOCUMENT_ROOT.'/webhook/lib/webhook_target.lib.php';
30 
31 // Load translation files required by the page
32 $langs->loadLangs(array('companies', 'other', 'mails'));
33 
34 $id = (GETPOST('id') ?GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility
35 $ref = GETPOST('ref', 'alpha');
36 $lineid = GETPOST('lineid', 'int');
37 $socid = GETPOST('socid', 'int');
38 $action = GETPOST('action', 'aZ09');
39 
40 // Initialize technical objects
41 $object = new Target($db);
42 $extrafields = new ExtraFields($db);
43 $diroutputmassaction = $conf->webhook->dir_output.'/temp/massgeneration/'.$user->id;
44 $hookmanager->initHooks(array('targetcontact', 'globalcard')); // Note that conf->hooks_modules contains array
45 
46 // Fetch optionals attributes and labels
47 $extrafields->fetch_name_optionals_label($object->table_element);
48 
49 // Load object
50 include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
51 
52 // Permissions
53 // There is several ways to check permission.
54 // Set $enablepermissioncheck to 1 to enable a minimum low level of checks
55 $enablepermissioncheck = 0;
56 if ($enablepermissioncheck) {
57  $permissiontoread = $user->rights->webhook->target->read;
58  $permission = $user->rights->webhook->target->write;
59 } else {
60  $permissiontoread = 1;
61  $permission = 1;
62 }
63 
64 // Security check (enable the most restrictive one)
65 //if ($user->socid > 0) accessforbidden();
66 //if ($user->socid > 0) $socid = $user->socid;
67 //$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
68 //restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
69 if (!isModEnabled('webhook') || !$permissiontoread) {
71 }
72 
73 
74 /*
75  * Add a new contact
76  */
77 
78 if ($action == 'addcontact' && $permission) {
79  $contactid = (GETPOST('userid') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int'));
80  $typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type'));
81  $result = $object->add_contact($contactid, $typeid, GETPOST("source", 'aZ09'));
82 
83  if ($result >= 0) {
84  header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
85  exit;
86  } else {
87  if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
88  $langs->load("errors");
89  setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
90  } else {
91  setEventMessages($object->error, $object->errors, 'errors');
92  }
93  }
94 } elseif ($action == 'swapstatut' && $permission) {
95  // Toggle the status of a contact
96  $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
97 } elseif ($action == 'deletecontact' && $permission) {
98  // Deletes a contact
99  $result = $object->delete_contact($lineid);
100 
101  if ($result >= 0) {
102  header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
103  exit;
104  } else {
105  dol_print_error($db);
106  }
107 }
108 
109 
110 /*
111  * View
112  */
113 
114 $title = $langs->trans('Target')." - ".$langs->trans('ContactsAddresses');
115 $help_url = '';
116 //$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
117 llxHeader('', $title, $help_url);
118 
119 $form = new Form($db);
120 $formcompany = new FormCompany($db);
121 $contactstatic = new Contact($db);
122 $userstatic = new User($db);
123 
124 
125 /* *************************************************************************** */
126 /* */
127 /* View and edit mode */
128 /* */
129 /* *************************************************************************** */
130 
131 if ($object->id) {
132  /*
133  * Show tabs
134  */
135  $head = targetPrepareHead($object);
136 
137  print dol_get_fiche_head($head, 'contact', $langs->trans("Target"), -1, $object->picto);
138 
139  $linkback = '<a href="'.dol_buildpath('/webhook/target_list.php', 1).'?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
140 
141  $morehtmlref = '<div class="refidno">';
142  /*
143  // Ref customer
144  $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
145  $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1);
146  // Thirdparty
147  $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : '');
148  // Project
149  if (isModEnabled('projet'))
150  {
151  $langs->load("projects");
152  $morehtmlref.='<br>'.$langs->trans('Project') . ' ';
153  if ($permissiontoadd)
154  {
155  if ($action != 'classify')
156  //$morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&token='.newToken().'&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
157  $morehtmlref.=' : ';
158  if ($action == 'classify') {
159  //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
160  $morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
161  $morehtmlref.='<input type="hidden" name="action" value="classin">';
162  $morehtmlref.='<input type="hidden" name="token" value="'.newToken().'">';
163  $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
164  $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
165  $morehtmlref.='</form>';
166  } else {
167  $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
168  }
169  } else {
170  if (!empty($object->fk_project)) {
171  $proj = new Project($db);
172  $proj->fetch($object->fk_project);
173  $morehtmlref .= ': '.$proj->getNomUrl();
174  } else {
175  $morehtmlref .= '';
176  }
177  }
178  }*/
179  $morehtmlref .= '</div>';
180 
181  dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
182 
183  print dol_get_fiche_end();
184 
185  print '<br>';
186 
187  // Contacts lines (modules that overwrite templates must declare this into descriptor)
188  $dirtpls = array_merge($conf->modules_parts['tpl'], array('/core/tpl'));
189  foreach ($dirtpls as $reldir) {
190  $res = @include dol_buildpath($reldir.'/contacts.tpl.php');
191  if ($res) {
192  break;
193  }
194  }
195 }
196 
197 // End of page
198 llxFooter();
199 $db->close();
if(GETPOST('button_removefilter_x', 'alpha')||GETPOST('button_removefilter.x', 'alpha')||GETPOST('button_removefilter', 'alpha')) if(GETPOST('button_search_x', 'alpha')||GETPOST('button_search.x', 'alpha')||GETPOST('button_search', 'alpha')) if($action=="save" &&empty($cancel)) $help_url
View.
Definition: agenda.php:118
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Definition: wrapper.php:56
llxFooter()
Empty footer.
Definition: wrapper.php:70
Class to manage contact/addresses.
Class to manage standard extra fields.
Class to build HTML component for third parties management Only common components are here.
Class to manage generation of HTML components Only common components must be here.
Class for Target.
Class to manage Dolibarr users.
Definition: user.class.php:45
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='rowid', $fieldref='ref', $morehtmlref='', $moreparam='', $nodbprefix=0, $morehtmlleft='', $morehtmlstatus='', $onlybanner=0, $morehtmlright='')
Show tab footer of a card.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='')
Show tabs of a record.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_get_fiche_end($notab=0)
Return tab footer of a card.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
isModEnabled($module)
Is Dolibarr module enabled.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.
targetPrepareHead($object)
Prepare array of tabs for Target.