diff --git a/htdocs/contact/document.php b/htdocs/contact/document.php new file mode 100644 index 0000000000000000000000000000000000000000..970f3543c45c2244494f39ad1c3907d69de23035 --- /dev/null +++ b/htdocs/contact/document.php @@ -0,0 +1,123 @@ +<?php +/* Copyright (C) 2014 Alexandre Spangaro <alexandre.spangaro@gmail.com> + * Copyright (C) 2015 Frederic France <frederic.france@free.fr> + * + * 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 + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/** + * \file htdocs/contact/document.php + * \ingroup contact + * \brief Page with attached files on contact + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/contact.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + +$langs->load("other"); +$langs->load("companies"); +$langs->load("contact"); + +$id = GETPOST('id','int'); +$action = GETPOST("action"); +$confirm = GETPOST('confirm', 'alpha'); + +// Security check +if ($user->societe_id) $socid=$user->societe_id; +$result = restrictedArea($user, 'contact', $id, '',''); + +// Get parameters +$sortfield = GETPOST("sortfield",'alpha'); +$sortorder = GETPOST("sortorder",'alpha'); +$page = GETPOST("page",'int'); +if ($page == -1) { + $page = 0; +} +$offset = $conf->liste_limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (! $sortorder) $sortorder="ASC"; +if (! $sortfield) $sortfield="name"; + +$object = new Contact($db); +if ($id > 0) $object->fetch($id); + +$upload_dir = $conf->societe->dir_output.'/contact/'.dol_sanitizeFileName($object->ref); +$modulepart='contact'; + + +/* + * Actions + */ + +include DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_pre_headers.tpl.php'; + + +/* + * View + */ + +$form = new Form($db); + +$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +llxHeader("",$langs->trans("Contact"), $helpurl); + +if ($object->id) +{ + $head = contact_prepare_head($object, $user); + + dol_fiche_head($head, 'documents', $langs->trans("Contact"), 0, 'contact'); + + + // Construit liste des fichiers + $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); + $totalsize=0; + foreach($filearray as $key => $file) + { + $totalsize+=$file['size']; + } + + print '<table class="border" width="100%">'; + + // Ref + print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td colspan="3">'; + print $form->showrefnav($object, 'id', $linkback); + print '</td></tr>'; + + // Name + print '<tr><td width="20%">'.$langs->trans("Lastname").' / '.$langs->trans("Label").'</td><td width="30%">'.$object->lastname.'</td>'; + print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="30%">'.$object->firstname.'</td></tr>'; + + print '<tr><td>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>'; + print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.$totalsize.' '.$langs->trans("bytes").'</td></tr>'; + print '</table>'; + + print '</div>'; + + $modulepart = 'contact'; + $permission = $user->rights->societe->contact->creer; + $param = '&id=' . $object->id; + include DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; +} else { + print $langs->trans("ErrorUnknown"); +} + + +llxFooter(); + +$db->close(); diff --git a/htdocs/core/lib/contact.lib.php b/htdocs/core/lib/contact.lib.php index 3eeca82c9936d8cf5ff1cfb84b1bcccdbed113f8..ba2d8ad577296393532e740ee487a545877a0c7f 100644 --- a/htdocs/core/lib/contact.lib.php +++ b/htdocs/core/lib/contact.lib.php @@ -1,6 +1,7 @@ <?php /* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com> + * Copyright (C) 2015 Frederic France <frederic.france@free.fr> * * 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 @@ -32,62 +33,75 @@ function contact_prepare_head(Contact $object) { global $langs, $conf, $user; - $h = 0; + $tab = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT.'/contact/card.php?id='.$object->id; - $head[$h][1] = $langs->trans("Card"); - $head[$h][2] = 'card'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/card.php?id='.$object->id; + $head[$tab][1] = $langs->trans("Card"); + $head[$tab][2] = 'card'; + $tab++; if (! empty($conf->ldap->enabled) && ! empty($conf->global->LDAP_CONTACT_ACTIVE)) { $langs->load("ldap"); - $head[$h][0] = DOL_URL_ROOT.'/contact/ldap.php?id='.$object->id; - $head[$h][1] = $langs->trans("LDAPCard"); - $head[$h][2] = 'ldap'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/ldap.php?id='.$object->id; + $head[$tab][1] = $langs->trans("LDAPCard"); + $head[$tab][2] = 'ldap'; + $tab++; } - $head[$h][0] = DOL_URL_ROOT.'/contact/perso.php?id='.$object->id; - $head[$h][1] = $langs->trans("PersonalInformations"); - $head[$h][2] = 'perso'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/perso.php?id='.$object->id; + $head[$tab][1] = $langs->trans("PersonalInformations"); + $head[$tab][2] = 'perso'; + $tab++; - $head[$h][0] = DOL_URL_ROOT.'/contact/exportimport.php?id='.$object->id; - $head[$h][1] = $langs->trans("ExportImport"); - $head[$h][2] = 'exportimport'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/exportimport.php?id='.$object->id; + $head[$tab][1] = $langs->trans("ExportImport"); + $head[$tab][2] = 'exportimport'; + $tab++; // 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 // $this->tabs = array('entity:-tabname); to remove a tab - complete_head_from_modules($conf,$langs,$object,$head,$h,'contact'); + complete_head_from_modules($conf,$langs,$object,$head,$tab,'contact'); // Notes - $head[$h][0] = DOL_URL_ROOT.'/contact/note.php?id='.$object->id; - $head[$h][1] = $langs->trans("Note"); - $head[$h][2] = 'note'; - $h++; - + if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { + $nbNote = (empty($object->note_private)?0:1)+(empty($object->note_public)?0:1); + $head[$tab][0] = DOL_URL_ROOT.'/contact/note.php?id='.$object->id; + $head[$tab][1] = $langs->trans("Note"); + if($nbNote > 0) $head[$tab][1].= ' <span class="badge">'.$nbNote.'</span>'; + $head[$tab][2] = 'note'; + $tab++; + } + + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $upload_dir = $conf->societe->dir_output . "/contact/" . dol_sanitizeFileName($object->ref); + $nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$')); + $head[$tab][0] = DOL_URL_ROOT.'/contact/document.php?id='.$object->id; + $head[$tab][1] = $langs->trans("Documents"); + if($nbFiles > 0) $head[$tab][1].= ' <span class="badge">'.$nbFiles.'</span>'; + $head[$tab][2] = 'documents'; + $tab++; + if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire)) { $type = 4; - $head[$h][0] = DOL_URL_ROOT.'/categories/categorie.php?id='.$object->id."&type=".$type; - $head[$h][1] = $langs->trans('Categories'); - $head[$h][2] = 'category'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/categories/categorie.php?id='.$object->id."&type=".$type; + $head[$tab][1] = $langs->trans('Categories'); + $head[$tab][2] = 'category'; + $tab++; } // Info - $head[$h][0] = DOL_URL_ROOT.'/contact/info.php?id='.$object->id; - $head[$h][1] = $langs->trans("Info"); - $head[$h][2] = 'info'; - $h++; + $head[$tab][0] = DOL_URL_ROOT.'/contact/info.php?id='.$object->id; + $head[$tab][1] = $langs->trans("Info"); + $head[$tab][2] = 'info'; + $tab++; - complete_head_from_modules($conf,$langs,$object,$head,$h,'contact','remove'); + complete_head_from_modules($conf,$langs,$object,$head,$tab,'contact','remove'); return $head; }