Fix: upload dir

This commit is contained in:
Laurent Destailleur 2012-04-20 09:43:44 +02:00
parent 64c4d59466
commit e0e3c07670

View File

@ -1,5 +1,7 @@
<?php <?php
/* Copyright (C) 2010-2012 Regis Houssin <regis@dolibarr.fr> /* Copyright (C) 2010-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Florian Henry
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -62,21 +64,7 @@ if (! $sortfield) $sortfield="name";
$object = new Task($db); $object = new Task($db);
$projectstatic = new Project($db); $projectstatic = new Project($db);
if ($id > 0 || ! empty($ref))
{
if ($object->fetch($id,$ref) > 0)
{
$projectstatic->fetch($object->fk_project);
if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid);
$upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref);
}
else
{
dol_print_error($db);
}
}
/* /*
@ -141,6 +129,22 @@ if (! empty($project_ref) && ! empty($withproject))
} }
} }
// Find upload dir after retreive is task if necessary
if ($id > 0 || ! empty($ref))
{
if ($object->fetch($id,$ref) > 0)
{
$projectstatic->fetch($object->fk_project);
if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid);
$upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref);
}
else
{
dol_print_error($db);
}
}
/* /*
* View * View
@ -151,126 +155,126 @@ $form = new Form($db);
llxHeader('',$langs->trans('Project')); llxHeader('',$langs->trans('Project'));
if ($object->id > 0) if ($object->id > 0)
{ {
if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid); if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid);
$userWrite = $projectstatic->restrictedProjectArea($user,'write'); $userWrite = $projectstatic->restrictedProjectArea($user,'write');
if (! empty($withproject)) if (! empty($withproject))
{ {
// Tabs for project // Tabs for project
$tab='tasks'; $tab='tasks';
$head=project_prepare_head($projectstatic); $head=project_prepare_head($projectstatic);
dol_fiche_head($head, $tab, $langs->trans("Project"),0,($projectstatic->public?'projectpub':'project')); dol_fiche_head($head, $tab, $langs->trans("Project"),0,($projectstatic->public?'projectpub':'project'));
$param=($mode=='mine'?'&mode=mine':''); $param=($mode=='mine'?'&mode=mine':'');
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Ref // Ref
print '<tr><td width="30%">'; print '<tr><td width="30%">';
print $langs->trans("Ref"); print $langs->trans("Ref");
print '</td><td>'; print '</td><td>';
// Define a complementary filter for search of next/prev ref. // Define a complementary filter for search of next/prev ref.
if (! $user->rights->projet->all->lire) if (! $user->rights->projet->all->lire)
{ {
$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,0); $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,0);
$projectstatic->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")"; $projectstatic->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
} }
print $form->showrefnav($projectstatic,'project_ref','',1,'ref','ref','',$param.'&withproject=1'); print $form->showrefnav($projectstatic,'project_ref','',1,'ref','ref','',$param.'&withproject=1');
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'.$langs->trans("Label").'</td><td>'.$projectstatic->title.'</td></tr>'; print '<tr><td>'.$langs->trans("Label").'</td><td>'.$projectstatic->title.'</td></tr>';
print '<tr><td>'.$langs->trans("Company").'</td><td>'; print '<tr><td>'.$langs->trans("Company").'</td><td>';
if (! empty($projectstatic->societe->id)) print $projectstatic->societe->getNomUrl(1); if (! empty($projectstatic->societe->id)) print $projectstatic->societe->getNomUrl(1);
else print '&nbsp;'; else print '&nbsp;';
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Visibility // Visibility
print '<tr><td>'.$langs->trans("Visibility").'</td><td>'; print '<tr><td>'.$langs->trans("Visibility").'</td><td>';
if ($projectstatic->public) print $langs->trans('SharedProject'); if ($projectstatic->public) print $langs->trans('SharedProject');
else print $langs->trans('PrivateProject'); else print $langs->trans('PrivateProject');
print '</td></tr>'; print '</td></tr>';
// Statut // Statut
print '<tr><td>'.$langs->trans("Status").'</td><td>'.$projectstatic->getLibStatut(4).'</td></tr>'; print '<tr><td>'.$langs->trans("Status").'</td><td>'.$projectstatic->getLibStatut(4).'</td></tr>';
print '</table>'; print '</table>';
dol_fiche_end(); dol_fiche_end();
print '<br>'; print '<br>';
} }
$head = task_prepare_head($object); $head = task_prepare_head($object);
dol_fiche_head($head, 'task_document', $langs->trans("Task"), 0, 'projecttask'); dol_fiche_head($head, 'task_document', $langs->trans("Task"), 0, 'projecttask');
$param=(GETPOST('withproject')?'&withproject=1':''); $param=(GETPOST('withproject')?'&withproject=1':'');
$linkback=GETPOST('withproject')?'<a href="'.DOL_URL_ROOT.'/projet/tasks.php?id='.$projectstatic->id.'">'.$langs->trans("BackToList").'</a>':''; $linkback=GETPOST('withproject')?'<a href="'.DOL_URL_ROOT.'/projet/tasks.php?id='.$projectstatic->id.'">'.$langs->trans("BackToList").'</a>':'';
// Files list constructor // Files list constructor
$filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); $filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$totalsize=0; $totalsize=0;
foreach($filearray as $key => $file) foreach($filearray as $key => $file)
{ {
$totalsize+=$file['size']; $totalsize+=$file['size'];
} }
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Ref // Ref
print '<tr><td width="30%">'; print '<tr><td width="30%">';
print $langs->trans("Ref"); print $langs->trans("Ref");
print '</td><td colspan="3">'; print '</td><td colspan="3">';
if (empty($withproject) || empty($projectstatic->id)) if (empty($withproject) || empty($projectstatic->id))
{ {
$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1); $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1);
$object->next_prev_filter=" fk_projet in (".$projectsListId.")"; $object->next_prev_filter=" fk_projet in (".$projectsListId.")";
} }
else $object->next_prev_filter=" fk_projet = ".$projectstatic->id; else $object->next_prev_filter=" fk_projet = ".$projectstatic->id;
print $form->showrefnav($object,'id',$linkback,1,'rowid','ref','',$param); print $form->showrefnav($object,'id',$linkback,1,'rowid','ref','',$param);
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Label // Label
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$object->label.'</td></tr>'; print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$object->label.'</td></tr>';
// Project // Project
if (empty($withproject)) if (empty($withproject))
{ {
print '<tr><td>'.$langs->trans("Project").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("Project").'</td><td colspan="3">';
print $projectstatic->getNomUrl(1); print $projectstatic->getNomUrl(1);
print '</td></tr>'; print '</td></tr>';
// Third party // Third party
print '<td>'.$langs->trans("Company").'</td><td colspan="3">'; print '<td>'.$langs->trans("Company").'</td><td colspan="3">';
if ($projectstatic->societe->id) print $projectstatic->societe->getNomUrl(1); if ($projectstatic->societe->id) print $projectstatic->societe->getNomUrl(1);
else print '&nbsp;'; else print '&nbsp;';
print '</td></tr>'; print '</td></tr>';
} }
// Files infos // Files infos
print '<tr><td>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</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 '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.$totalsize.' '.$langs->trans("bytes").'</td></tr>';
print "</table>\n"; print "</table>\n";
dol_fiche_end(); dol_fiche_end();
print '<br>'; print '<br>';
dol_htmloutput_mesg($mesg); dol_htmloutput_mesg($mesg);
// Affiche formulaire upload // Affiche formulaire upload
$formfile=new FormFile($db); $formfile=new FormFile($db);
$formfile->form_attach_new_file(DOL_URL_ROOT.'/projet/tasks/document.php?id='.$object->id.($withproject?'&withproject=1':''),'',0,0,$user->rights->projet->creer); $formfile->form_attach_new_file(DOL_URL_ROOT.'/projet/tasks/document.php?id='.$object->id.($withproject?'&withproject=1':''),'',0,0,$user->rights->projet->creer);
// List of document // List of document
$param='&id='.$object->id; $param='&id='.$object->id;
$formfile->list_of_documents($filearray,$object,'projet',$param,0,dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref).'/'); $formfile->list_of_documents($filearray,$object,'projet',$param,0,dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref).'/');
} }
else else
@ -283,4 +287,4 @@ else
llxFooter(); llxFooter();
$db->close(); $db->close();
?> ?>