Fix: Preview feature

This commit is contained in:
Laurent Destailleur 2014-04-30 13:50:25 +02:00
parent 518c40d79a
commit 880f77b7e1
18 changed files with 57 additions and 48 deletions

View File

@ -126,10 +126,10 @@ if ($id > 0 || ! empty($ref))
$relativepath = $objectref.'/'.$objectref.'.pdf';
$relativepathdetail = $objectref.'/'.$objectref.'-detail.pdf';
// Chemin vers png apercus
$fileimage = $file.".png"; // Si PDF d'1 page
$fileimagebis = $file."-0.png"; // Si PDF de plus d'1 page
$relativepathimage = $relativepath.'.png';
// Define path to preview pdf file (preview precompiled "file.ext" are "file.ext_preview.png")
$fileimage = $file.'_preview.png'; // If PDF has 1 page
$fileimagebis = $file.'_preview-0.pdf.png'; // If PDF has more than one page
$relativepathimage = $relativepath.'_preview.png';
$var=true;
@ -155,7 +155,7 @@ if ($id > 0 || ! empty($ref))
{
if (class_exists("Imagick"))
{
$ret = dol_convert_file($file);
$ret = dol_convert_file($file,'png',$fileimage);
if ($ret < 0) $error++;
}
else
@ -173,6 +173,8 @@ if ($id > 0 || ! empty($ref))
print '<td align="right" colspan="2"><b>'.price($object->price).'</b></td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>';
print '</table>';
dol_fiche_end();
}
else
{

View File

@ -4,7 +4,7 @@
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
*
*
* 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
@ -112,10 +112,10 @@ if ($id > 0 || ! empty($ref))
$relativepath = $objectref.'/'.$objectref.'.pdf';
$relativepathdetail = $objectref.'/'.$objectref.'-detail.pdf';
// Chemin vers png apercus
$fileimage = $file.".png"; // Si PDF d'1 page
$fileimagebis = $file."-0.png"; // Si PDF de plus d'1 page
$relativepathimage = $relativepath.'.png';
// Define path to preview pdf file (preview precompiled "file.ext" are "file.ext_preview.png")
$fileimage = $file.'_preview.png'; // If PDF has 1 page
$fileimagebis = $file.'_preview-0.pdf.png'; // If PDF has more than one page
$relativepathimage = $relativepath.'_preview.png';
$var=true;
@ -151,7 +151,7 @@ if ($id > 0 || ! empty($ref))
{
if (class_exists("Imagick"))
{
$ret = dol_convert_file($file);
$ret = dol_convert_file($file,'png',$fileimage);
if ($ret < 0) $error++;
}
else
@ -193,6 +193,8 @@ if ($id > 0 || ! empty($ref))
print '<td align="right" colspan="1"><b>'.price($object->total_ht).'</b></td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>';
print '</table>';
dol_fiche_end();
}
else
{

View File

@ -2248,7 +2248,8 @@ if ($action == 'create' && $user->rights->commande->creer) {
}
print '<br>';
if ($action != 'presend') {
if ($action != 'presend')
{
print '<div class="fichecenter"><div class="fichehalfleft">';
// print '<table width="100%"><tr><td width="50%" valign="top">';
// print '<a name="builddoc"></a>'; // ancre
@ -2267,7 +2268,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
/*
* Linked object block
*/
*/
$somethingshown = $object->showLinkedObjectBlock();
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
@ -2284,9 +2285,9 @@ if ($action == 'create' && $user->rights->commande->creer) {
/*
* Action presend
*
*/
if ($action == 'presend') {
*/
if ($action == 'presend')
{
$ref = dol_sanitizeFileName($object->ref);
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/'));

View File

@ -302,10 +302,10 @@ if ($id > 0 || ! empty($ref))
$relativepath = $objectref.'/'.$objectref.'.pdf';
$relativepathdetail = $objectref.'/'.$objectref.'-detail.pdf';
// Chemin vers png apercus
$fileimage = $file.".png"; // Si PDF d'1 page
$fileimagebis = $file."-0.png"; // Si PDF de plus d'1 page
$relativepathimage = $relativepath.'.png';
// Define path to preview pdf file (preview precompiled "file.ext" are "file.ext_preview.png")
$fileimage = $file.'_preview.png'; // If PDF has 1 page
$fileimagebis = $file.'_preview-0.pdf.png'; // If PDF has more than one page
$relativepathimage = $relativepath.'_preview.png';
$var=true;
@ -341,7 +341,7 @@ if ($id > 0 || ! empty($ref))
{
if (class_exists("Imagick"))
{
$ret = dol_convert_file($file);
$ret = dol_convert_file($file,'png',$fileimage);
if ($ret < 0) $error++;
}
else

View File

@ -76,7 +76,7 @@ if ($id > 0 || ! empty($ref))
{
if (class_exists("Imagick"))
{
$ret = dol_convert_file($file);
$ret = dol_convert_file($file,'png',$fileimage);
if ($ret < 0) $error++;
}
else
@ -91,6 +91,8 @@ if ($id > 0 || ! empty($ref))
print '<img src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=prelevement&file='.urlencode(basename($fileimage)).'">';
}
dol_fiche_end();
}
else
{
@ -98,7 +100,5 @@ if ($id > 0 || ! empty($ref))
}
}
print "</div>";
llxFooter();
?>

View File

@ -527,7 +527,7 @@ class FormFile
// Get list of files
if (! empty($filedir))
{
$file_list=dol_dir_list($filedir,'files',0,'','\.meta$','date',SORT_DESC);
$file_list=dol_dir_list($filedir,'files',0,'','(\.meta|_preview\.png)$','date',SORT_DESC);
// Affiche en-tete tableau si non deja affiche
if (! empty($file_list) && ! $headershown)

View File

@ -128,7 +128,7 @@ function societe_prepare_head($object)
// Attached files
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->societe->dir_output . "/" . $object->id;
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/societe/document.php?socid='.$object->id;
$head[$h][1] = $langs->trans("Documents");
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -67,7 +67,7 @@ function contract_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->contrat->dir_output . "/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/contrat/document.php?id='.$object->id;
$head[$h][1] = $langs->trans("Documents");
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -79,7 +79,7 @@ function fichinter_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->ficheinter->dir_output . "/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/fichinter/document.php?id='.$object->id;
$head[$h][1] = $langs->trans("Documents");
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -513,9 +513,9 @@ function dol_copy($srcfile, $destfile, $newmask=0, $overwriteifexists=1)
if (empty($newmask)) // This should no happen
{
dol_syslog("Warning: dol_copy called with empty value for newmask and no default value defined", LOG_WARNING);
$newmask='0664';
$newmask='0664';
}
@chmod($newpathofdestfile, octdec($newmask));
return 1;
@ -1148,26 +1148,29 @@ function dol_remove_file_process($filenb,$donotupdatesession=0,$donotdeletefile=
}
/**
* Convert an image file into antoher format.
* Convert an image file into anoher format.
* This need Imagick php extension.
*
* @param string $file Input file name
* @param string $ext Extension of target file
* @param string $fileinput Input file name
* @param string $ext Format of target file (It is also extension added to file if fileoutput is not provided).
* @param string $fileoutput Output filename
* @return int <0 if KO, >0 if OK
*/
function dol_convert_file($file,$ext='png')
function dol_convert_file($fileinput,$ext='png',$fileoutput='')
{
global $langs;
$image=new Imagick();
$ret = $image->readImage($file);
$ret = $image->readImage($fileinput);
if ($ret)
{
$ret = $image->setImageFormat($ext);
if ($ret)
{
if (empty($fileoutput)) $fileoutput=$fileinput.".".$ext;
$count = $image->getNumberImages();
$ret = $image->writeImages($file . "." . $ext, true);
$ret = $image->writeImages($fileoutput, true);
if ($ret) return $count;
else return -3;
}

View File

@ -70,7 +70,7 @@ function facturefourn_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$object->ref;
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/fourn/facture/document.php?facid='.$object->id;
$head[$h][1] = $langs->trans('Documents');
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';
@ -142,7 +142,7 @@ function ordersupplier_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->fournisseur->dir_output . "/commande/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/fourn/commande/document.php?id='.$object->id;
$head[$h][1] = $langs->trans('Documents');
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -86,7 +86,7 @@ function facture_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->facture->dir_output . "/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/compta/facture/document.php?facid='.$object->id;
$head[$h][1] = $langs->trans('Documents');
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -96,7 +96,7 @@ function commande_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->commande->dir_output . "/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/commande/document.php?id='.$object->id;
$head[$h][1] = $langs->trans('Documents');
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -120,7 +120,7 @@ function product_prepare_head($object, $user)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
if (! empty($conf->product->enabled)) $upload_dir = $conf->product->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref);
elseif (! empty($conf->service->enabled)) $upload_dir = $conf->service->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/product/document.php?id='.$object->id;
$head[$h][1] = $langs->trans('Documents');
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -78,7 +78,7 @@ function project_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->projet->dir_output . "/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/projet/document.php?id='.$object->id;
$head[$h][1] = $langs->trans('Documents');
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -90,7 +90,7 @@ function propal_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->propal->dir_output . "/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/comm/propal/document.php?id='.$object->id;
$head[$h][1] = $langs->trans('Documents');
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -51,7 +51,7 @@ function tax_prepare_head($object)
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->tax->dir_output . "/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files'));
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/compta/sociales/document.php?id='.$object->id;
$head[$h][1] = $langs->trans("Documents");
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';

View File

@ -85,9 +85,10 @@ if ($id > 0 || ! empty($ref))
$relativepath = "${objectref}/${objectref}.pdf";
$relativepathdetail = "${objectref}/${objectref}-detail.pdf";
// Chemin vers png apercus
$fileimage = $file.".png"; // Si PDF d'1 page
$fileimagebis = $file."-0.png"; // Si PDF de plus d'1 page
// Define path to preview pdf file (preview precompiled "file.ext" are "file.ext_preview.png")
$fileimage = $file.'_preview.png'; // If PDF has 1 page
$fileimagebis = $file.'_preview-0.pdf.png'; // If PDF has more than one page
$relativepathimage = $relativepath.'_preview.png';
$var=true;
@ -122,7 +123,7 @@ if ($id > 0 || ! empty($ref))
{
if (class_exists("Imagick"))
{
$ret = dol_convert_file($file);
$ret = dol_convert_file($file,'png',$fileimage);
if ($ret < 0) $error++;
}
else