Rendre les fichies d'historique bodacc accessible depuis l'extranet, issue #0001195

This commit is contained in:
Michael RICOIS 2012-06-05 13:32:45 +00:00
parent 7abd69deba
commit e4686e3636
6 changed files with 159 additions and 86 deletions

View File

@ -7,14 +7,14 @@ class FichierController extends Zend_Controller_Action
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
}
public function indexAction()
{
$request = $this->getRequest();
print_r($request->getParams());
exit;
}
/**
* Gestion du chargement des logos
*/
@ -45,7 +45,7 @@ class FichierController extends Zend_Controller_Action
}
exit;
}
/**
* Gestion du chargement des images du cache
*/
@ -68,7 +68,7 @@ class FichierController extends Zend_Controller_Action
echo 'Impossible de charger le fichier.';
}
}
/**
* Gestion du chargement des fichiers des marques
*/
@ -90,7 +90,7 @@ class FichierController extends Zend_Controller_Action
echo "Erreur lors de l'affichage du fichier.";
}
}
/**
* Gestion des fichiers Actes et Bilans
*/
@ -139,7 +139,7 @@ class FichierController extends Zend_Controller_Action
echo "Erreur lors de l'affichage du fichier.";
}
}
/**
* Gestion des liasses au formats excel
*/
@ -163,7 +163,7 @@ class FichierController extends Zend_Controller_Action
echo 'Impossible de charger le fichier.';
}
}
/**
* Gestion des log de consommation
*/
@ -187,7 +187,7 @@ class FichierController extends Zend_Controller_Action
echo 'Impossible de charger le fichier.';
}
}
/**
* Export du portefeuille au format CSV
*/
@ -211,7 +211,7 @@ class FichierController extends Zend_Controller_Action
echo 'Impossible de charger le fichier.';
}
}
/**
* Export de la liste des surveillances au format CSV
*/
@ -235,7 +235,7 @@ class FichierController extends Zend_Controller_Action
echo 'Impossible de charger le fichier.';
}
}
/**
* Gestion des fichiers bilan saisie par les clients
*/
@ -250,7 +250,7 @@ class FichierController extends Zend_Controller_Action
switch ($explode[1]) {
case 'pdf' : $content_type = 'application/pdf'; break;
case 'tiff' : $content_type = 'image/tiff'; break;
}
}
header('Content-type: '.$content_type.'');
header('Content-Length: '.filesize($output_file));
header('Content-MD5: '.base64_encode(md5_file($output_file)));
@ -263,7 +263,7 @@ class FichierController extends Zend_Controller_Action
echo "Erreur lors de l'affichage du fichier.";
}
}
/**
* Gestion des kbis
*/
@ -284,9 +284,9 @@ class FichierController extends Zend_Controller_Action
echo file_get_contents($output_file);
} else {
echo "Erreur lors de l'affichage du fichier.";
}
}
}
/**
* Gestion des rapports personnalisés
*/
@ -309,7 +309,7 @@ class FichierController extends Zend_Controller_Action
echo "Impossible de charger le fichier.";
}
}
/**
* Gestion bodacc au format PDF
*/
@ -317,10 +317,10 @@ class FichierController extends Zend_Controller_Action
{
$configuration = Zend_Registry::get('configuration');
$directory = realpath($configuration->path->data).'/bodacc';
$file = $this->getRequest()->getParam('fichier');
$file = $this->getRequest()->getParam('fichier');
//Construire le chemin du dossier
preg_match('/BODACC_(A|B|C)_([0-9]{4})_(.*)\.pdf/', $file, $matches);
$directory.= '/'.$matches[1].'/'.$matches[2];
preg_match('/BODACC_(A|B|C)_([0-9]{4})_(.*)\.pdf/', $file, $matches);
$directory.= '/'.$matches[1].'/'.$matches[2];
$output_file = $directory.'/'.$file;
if (file_exists($output_file) && filesize($output_file)>0) {
$content_type = 'application/pdf';
@ -336,7 +336,7 @@ class FichierController extends Zend_Controller_Action
echo "Impossible de charger le fichier.";
}
}
/**
* Gestion des fichiers PDF des nouveautés
*/
@ -359,5 +359,27 @@ class FichierController extends Zend_Controller_Action
} else {
echo "Impossible de charger le fichier.";
}
}
}
public function histopdfAction()
{
$directory = APPLICATION_PATH.'/../cache/histopdf';
$file = $this->getRequest()->getParam('fichier');
$output_file = $directory.'/'.$file;
if (file_exists($output_file) && filesize($output_file)>0) {
$content_type = 'application/pdf';
header('Content-type: '.$content_type.'');
header('Content-Length: '.filesize($output_file));
header('Content-MD5: '.base64_encode(md5_file($output_file)));
header('Content-Disposition: inline; filename="'.basename($output_file).'"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
ini_set('zlib.output_compression','0');
echo file_get_contents($output_file);
} else {
echo "Impossible de charger le fichier.";
}
}
}

View File

@ -168,12 +168,35 @@ class RechercheController extends Zend_Controller_Action
$result = $ws->rechercheHisto($txt, $params['formA']['annee'], $params['formA']['bodacc'], $p);
$infos = $result->reponses->item;
$mots = $result->mots->item;
$auth = Zend_Auth::getInstance();
$identity = $auth->getIdentity();
$annonces = array();
foreach($infos as $annonce)
{
$authinfo = '?login='.$identity->username.'&hach='.$identity->password;
$this->view->assign('authinfo', $authinfo);
//Mark all search words in bold
$texte = $annonce->Texte;
foreach( $mots as $mot ){
$texte = preg_replace('/'.$mot.'/i', '<b>'.strtoupper($mot).'</b>', $texte);
}
//Transform Code as a better text
$code = $annonce->Code;
if( substr($code,0,3)=='BOD' )
{
$code = '<u>BODACC :</u> '.substr($code,3,1);
}
//Change URL to download file
$fichier = str_replace("http://wse.scores-decisions.com:8081/",'',$annonce->Fichier);
$annonces[] = array (
'annee' => $annonce->Annee,
'code' => $code,
'text' => $texte,
'file' => $this->view->url(array('controller'=>'telechargement', 'action'=>'histopdf')).'/'.$fichier,
);
}
$this->view->assign('annonces', $annonces);
$parametresTxt = array(
'source'=>'Source',
@ -192,14 +215,11 @@ class RechercheController extends Zend_Controller_Action
$strCriteres.= $param.' : '.$params['formA'][$key].',&nbsp;';
}
}
$this->view->assign('mots', $result->mots->item);
}
$this->view->assign('p', $p);
$this->view->assign('token', $token);
$this->view->assign('infos', $infos);
$user = new Scores_Utilisateur();
$this->view->assign('userNbReponses', $user->getNbRep());
@ -211,6 +231,15 @@ class RechercheController extends Zend_Controller_Action
}
public function annoncefileAction()
{
//http://wse.scores-decisions.com:8081/fichier/bodacc/q/QU5ORUVfMTk3Ny9Mb3QxMC9wZGYvQm9kXzE5NzcgLSAyMzYyLnBkZg==?login=mricois&hach=b05edcf275eee6811fabd31f5888c28f
}
public function internationaleAction(){}
public function lastAction()

View File

@ -215,4 +215,36 @@ class TelechargementController extends Zend_Controller_Action
}
}
public function histopdfAction()
{
$this->path = APPLICATION_PATH.'/../cache/histopdf';
$request = $this->getRequest();
$url = "http://wse.score-decisions.com:8081/";
//Authenticate info
$auth = Zend_Auth::getInstance();
$identity = $auth->getIdentity();
$authinfo = '?login='.$identity->username.'&hach='.$identity->password;
$url = $url.$authinfo;
$file = $this->getFile($url);
// Le fichier existe sur l'extranet
if ($file && file_exists($this->path.'/'.$file)) {
if (filesize($this->path.'/'.$file) > 0) {
echo '<u><a title="T&eacute;l&eacute;charger le fichier"'.
' target="_blank" href="/fichier/histopdf/'.$file.
'">Cliquez-ici pour t&eacute;l&eacute;charger'.
' le fichier.</a></u>';
} else {
echo "Erreur lors du téléchargement du fichier.";
}
}
exit;
}
}

View File

@ -14,7 +14,7 @@ ol li { margin-bottom:10px; }
<?php if ( $this->nbReponses==0) { ?>
<p class="StyleInfoLib">
Pas de r&eacute;sultat affich&eacute; avec le(s) crit&egrave;re(s)
Pas de r&eacute;sultat affich&eacute; avec le(s) crit&egrave;re(s)
<a title="Retour au formulaire de recherche" href="<?=$this->url(array('controller'=>'recherche', 'action'=>'annonce'), null, true)?>">
<?=$this->strCriteres?></a>
</p>
@ -23,69 +23,60 @@ ol li { margin-bottom:10px; }
<?=$this->nbReponsesTotal?> r&eacute;ponses. avec les critères <a title="Retour au formulaire de recherche" href="<?=$this->url(array('controller'=>'recherche', 'action'=>'annonce'))?>">
<?=$this->strCriteres?>
</a>
<?php
if ( $this->p+$this->userNbReponses<$this->nbReponsesTotal )
{
<?php
if ( $this->p+$this->userNbReponses<$this->nbReponsesTotal )
{
$totPage = ceil($this->nbReponsesTotal/$this->userNbReponses);
$curPage = ceil($this->p/$this->userNbReponses)+1;
?>
<?=$this->nbReponses?> r&eacute;sultats affich&eacute;s. Page <?=$curPage?>/<?=$totPage?>.
<?php
<?=$this->nbReponses?> r&eacute;sultats affich&eacute;s. Page <?=$curPage?>/<?=$totPage?>.
<?php
$prec = $this->p-$this->userNbReponses;
$suiv = $this->p+$this->userNbReponses;
}
}
elseif( $this->p+$this->userNbReponses>=$this->nbReponsesTotal )
{
{
$totPage = ceil($this->nbReponsesTotal/$this->userNbReponses);
$curPage = $totPage;
?>
<?=$this->nbReponses?> r&eacute;sultats affich&eacute;s. Page <?=$curPage?>/<?=$totPage?>.
<?php
<?=$this->nbReponses?> r&eacute;sultats affich&eacute;s. Page <?=$curPage?>/<?=$totPage?>.
<?php
$prec = $this->p-$this->userNbReponses;
$suiv = $this->p+$this->userNbReponses;
}
else
}
else
{
$totPage = $curPage = 1;
}
echo '</p>';
?>
<ol>
<?php
<?php
$indice = 0;
foreach( $this->infos as $info )
foreach( $this->annonces as $annonce )
{
$indice++;
?>
?>
<li type="1" value="<?=$this->p+$indice?>">
<?php
$texte = $info->Texte;
foreach( $this->mots as $mot ){ $texte = preg_replace('/'.$mot.'/i', '<b>'.strtoupper($mot).'</b>', $texte);}
if( substr($info->Code,0,3)=='BOD' )
{
print '<u>BODACC :</u> '.substr($info->Code,3,1);
}
print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
print '<u>Année :</u> '.$info->Annee;
print '<br/>';
print '...&nbsp;'.$texte.'&nbsp;...';
print '<br/>';
print '<a href="'.$info->Fichier.$this->authinfo.'" target="_blank">Télécharger la page en PDF</a>';
?>
<?=$annonce['code']?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u>Année :</u> <?=$annonce['annee']?>
<br/>
...&nbsp;<?=$annonce['text']?>&nbsp;...
<br/>
<a href="<?=$annonce['file']?>" class="histopdf" target="_blank">Télécharger la page en PDF</a>';
</li>
<?php
}
?>
}
?>
</ol>
<?php
<?php
//Page précédentes
if($curPage>1) {?>
<a href="<?=$this->url(array('controller'=>'recherche', 'action'=>'annonceliste', 'p'=>$prec, 'token'=>$this->token))?>">Page précédente</a>
<?php } ?>
<< Page : <?=$curPage.'/'.$totPage?> >>
<?php
<?php
//Page suivante
if ($curPage<$totPage) { ?>
<a href="<?=$this->url(array('controller'=>'recherche', 'action'=>'annonceliste', 'p'=>$suiv, 'token'=>$this->token))?>">Page suivante</a>
@ -105,7 +96,7 @@ if ( $this->nbReponses==0)
{
?>
<p class="StyleInfoLib">
Pas de r&eacute;sultat affich&eacute; avec le(s) crit&egrave;re(s)
Pas de r&eacute;sultat affich&eacute; avec le(s) crit&egrave;re(s)
<a title="Retour au formulaire de recherche" href="<?=$this->url(array('controller'=>'recherche', 'action'=>'annonce'), null, true)?>">
<?=$this->strCriteres?></a>
</p>
@ -116,7 +107,7 @@ else
//Affichage des critères de recherche
?>
<div class="blockh2">
<p class="StyleInfoLib">Critères de recherche
<p class="StyleInfoLib">Critères de recherche
<a title="Retour au formulaire de recherche" href="<?=$this->url(array('controller'=>'recherche', 'action'=>'annonce', null, true))?>">
<?=$this->strCriteres?></a></p>
<div id="annonce">

View File

@ -51,23 +51,15 @@ $(document).ready( function()
$(this).qtip({
content: {
text: "Chargement...",
title: {
text: $(this).attr('name')
},
ajax: {
url: $(this).attr('rel')
}
title: { text: $(this).attr('name') },
ajax: { url: $(this).attr('rel') }
},
position: {
at: "right center",
my: "right center",
adjust: {
x: -20
}
},
show: {
solo: true
adjust: { x: -20 }
},
show: { solo: true },
style: {
tip: true,
width: 400,
@ -80,19 +72,13 @@ $(document).ready( function()
$(this).qtip({
content: {
text: "Chargement...",
title: {
text: "Evolution - " + $(this).attr('title')
},
ajax: {
url: $(this).attr('rel')
}
title: { text: "Evolution - " + $(this).attr('title') },
ajax: { url: $(this).attr('rel') }
},
position: {
at: "right center",
my: "right center",
adjust: {
x: -20
}
adjust: { x: -20 }
},
show: {
solo: true

View File

@ -46,7 +46,7 @@ $(document).ready(function(){
$('img.rechercheSuiv').hover(function() {
$(this).attr('src', '/themes/default/images/boutton_suivant_on.gif');
}, function() {
$(this).attr('src', '/themes/default/images/boutton_suivant_off.gif');
$(this).attr('src', '/themes/default/images/boutton_suivant_off.gif');
});
//Suppression surveillance
@ -57,6 +57,19 @@ $(document).ready(function(){
});
});
$('a.histopdf').on('click', function(e){
e.preventDefault();
var objet = $(this).parent();
objet.html("Téléchargement du fichier...");
var url = $(this).attr('href');
$.post( url, function (data, textStatus) {
if( data=='' || data=='FALSE' || textStatus=='timeout' ) {
data = 'La construction du fichier a échoué.<br/>';
}
objet.html(data);
});
});
});
/**