From 1d1f19b976328143b4ba5fb3d21ee745c6c21f6c Mon Sep 17 00:00:00 2001 From: aspangaro Date: Mon, 8 Jun 2015 21:28:32 +0200 Subject: [PATCH] NEW: Add a tab document in donation card --- htdocs/core/lib/donation.lib.php | 9 ++ htdocs/core/modules/modDon.class.php | 2 +- htdocs/don/document.php | 136 +++++++++++++++++++++++++++ htdocs/don/info.php | 2 +- 4 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 htdocs/don/document.php diff --git a/htdocs/core/lib/donation.lib.php b/htdocs/core/lib/donation.lib.php index c9362425459..5cc5c2d6785 100644 --- a/htdocs/core/lib/donation.lib.php +++ b/htdocs/core/lib/donation.lib.php @@ -78,6 +78,15 @@ function donation_prepare_head($object) // $this->tabs = array('entity:-tabname); to remove a tab complete_head_from_modules($conf, $langs, $object, $head, $h, 'donation'); + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $upload_dir = $conf->don->dir_output . '/' . get_exdir($filename,2,0,1,$object,'donation'). '/'. dol_sanitizeFileName($object->ref); + $nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$')); + $head[$h][0] = DOL_URL_ROOT.'/don/document.php?id='.$object->id; + $head[$h][1] = $langs->trans('Documents'); + if($nbFiles > 0) $head[$h][1].= ' '.$nbFiles.''; + $head[$h][2] = 'documents'; + $h++; + $head[$h][0] = DOL_URL_ROOT . '/don/info.php?id=' . $object->id; $head[$h][1] = $langs->trans("Info"); $head[$h][2] = 'info'; diff --git a/htdocs/core/modules/modDon.class.php b/htdocs/core/modules/modDon.class.php index 9e58f14c578..c546292c2b4 100644 --- a/htdocs/core/modules/modDon.class.php +++ b/htdocs/core/modules/modDon.class.php @@ -57,7 +57,7 @@ class modDon extends DolibarrModules $this->picto='bill'; // Data directories to create when module is enabled - $this->dirs = array("/dons/temp"); + $this->dirs = array("/don/temp"); // Dependancies $this->depends = array(); diff --git a/htdocs/don/document.php b/htdocs/don/document.php new file mode 100644 index 00000000000..3bc60e25176 --- /dev/null +++ b/htdocs/don/document.php @@ -0,0 +1,136 @@ + + * Copyright (C) 2004-2015 Laurent Destailleur + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2005 Simon TOSSER + * Copyright (C) 2011-2012 Juanjo Menent + * Copyright (C) 2013 Cédric Salvador + * Copyright (C) 2015 Alexandre Spangaro + * + * 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 . + * or see http://www.gnu.org/ + */ + +/** + * \file htdocs/don/document.php + * \ingroup donation + * \brief Page of linked files onto donation + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; + +$langs->load("other"); +$langs->load("donations"); +$langs->load("companies"); + +$id = GETPOST('id','int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action','alpha'); +$confirm = GETPOST('confirm','alpha'); + +// Security check +if ($user->societe_id) $socid=$user->societe_id; +$result = restrictedArea($user, 'don', $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 Don($db); +$object->fetch($id, $ref); + +$upload_dir = $conf->don->dir_output . '/' . get_exdir($filename,2,0,1,$object,'donation'). '/'. dol_sanitizeFileName($object->ref); +$modulepart='don'; + + +/* + * Actions + */ + +include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_pre_headers.tpl.php'; + + +/* + * View + */ + +$form = new Form($db); + +llxHeader("","",$langs->trans("Donations")); + + +if ($object->id) +{ + $object->fetch_thirdparty(); + + $head=donation_prepare_head($object); + + dol_fiche_head($head, 'documents', $langs->trans("Donation"), 0, 'generic'); + + + // 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 ''; + + $linkback = ''.$langs->trans("BackToList").''; + + // Ref + print ''; + + // Societe + //print ""; + + print ''; + print ''; + print '
'.$langs->trans("Ref").''; + print $form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'ref', ''); + print '
".$langs->trans("Company")."".$object->client->getNomUrl(1)."
'.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
'.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
'; + + print ''; + + $modulepart = 'don'; + $permission = $user->rights->don->lire; + $param = '&id=' . $object->id; + include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; + +} +else +{ + print $langs->trans("ErrorUnknown"); +} + +llxFooter(); + +$db->close(); diff --git a/htdocs/don/info.php b/htdocs/don/info.php index 04cbae7a587..ff41b1947df 100644 --- a/htdocs/don/info.php +++ b/htdocs/don/info.php @@ -48,7 +48,7 @@ if ($id) $head = donation_prepare_head($object); - dol_fiche_head($head, 'info', $langs->trans("Donation"), 0, 'bill'); + dol_fiche_head($head, 'info', $langs->trans("Donation"), 0, 'generic'); print '
'; dol_print_object_info($object);