Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2206 → Rev 2207

/trunk/widget/modules/telechargement/Telechargement.php
New file
0,0 → 1,103
<?php
// declare(encoding='UTF-8');
class Telechargement extends WidgetCommun {
private $description_url = null;
private $infos_images_url = null;
private $telechargement_url = null;
private $id_image = null;
/**
* Méthode appelée par défaut pour charger ce widget.
*/
public function executer() {
if(!isset($_GET['id_image']) || !is_numeric($_GET['id_image'])) {
$this->messages[] = "Ce widget nécéssite un identifiant d'image.";
} else {
$this->id_image = $_GET['id_image'];
}
if(!empty($this->messages)) {
$contenu = 'Un problème est survenu : '.print_r($this->messages, true);
} else {
$donnees = $this->obtenirDescriptionFormats();
$squelette = dirname(__FILE__).'/squelettes'.'/telechargement.tpl.html';
$donnees['informations_image'] = $this->obtenirInformationsImages();
$donnees['resolution_originale'] = $this->formaterResolutionOriginale($donnees['informations_image']);
$donnees['auteur_fmt'] = $this->formaterAuteur($donnees['informations_image']);
$donnees['attribution'] = $this->formaterAttribution($donnees['informations_image']);
$donnees['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
$donnees['date_televersement'] = date("d/m/Y",strtotime($donnees['informations_image']['date_creation']));
$donnees['url_image_exemple'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat').'/'.$this->id_image.'?methode=afficher&format=CS';
$donnees['url_image_originale'] = sprintf($this->config['chemins']['celImgUrlTpl'], str_pad($this->id_image, 9, "0", STR_PAD_LEFT).'O');
$donnees['base_url_telechargement'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat').'/'.$this->id_image.'?methode=telecharger&format=%s';
$contenu = $this->traiterSquelettePhp($squelette, $donnees);
}
$this->envoyer($contenu);
}
private function formaterAttribution($infos_images) {
$attr = $this->formaterAuteur($infos_images).' '.
'[CC BY-SA], via Tela Botanica';
return $attr;
}
private function formaterAuteur($infos_images) {
$auteur_fmt = "";
if(isset($infos_images['prenom_utilisateur'])) {
$auteur_fmt .= $infos_images['prenom_utilisateur'].' ';
}
if(isset($infos_images['nom_utilisateur'])) {
$auteur_fmt .= $infos_images['nom_utilisateur'];
}
if(trim($auteur_fmt) == "") {
$auteur_fmt = 'Auteur inconnu';
}
return trim($auteur_fmt);
}
private function formaterResolutionOriginale($infos_image) {
$res_fmt = "";
if(isset($infos_image['hauteur']) && isset($infos_image['largeur'])) {
$res_fmt = $infos_image['hauteur'].' x '.$infos_image['largeur'].' px';
} else {
$res_fmt = 'Taille inconnue';
}
return $res_fmt;
}
private function obtenirDescriptionFormats() {
$this->description_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImageFormat');
$description = json_decode(file_get_contents($this->description_url), true);
return $description;
}
private function obtenirInformationsImages() {
$this->infos_images_url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelImage');
$infos = json_decode(file_get_contents($this->infos_images_url."/image?imgId=".$this->id_image), true);
return $infos;
}
public static function obtenirLegendeFormatSimplifiee($format) {
$legende = "";
if(strpos($format, 'CR') !== false) {
$legende = "(Carrée, rognée)";
}
if(strpos($format, 'C') !== false && strpos($format, 'R') === false) {
$legende = "(Carrée)";
}
return $legende;
}
}
?>
/trunk/widget/modules/telechargement/squelettes/css/telechargement.css
New file
0,0 → 1,53
#zone-appli {
max-width: 735px;
}
 
.titre_section {
margin-left: 25px;
}
 
.image_exemple {
margin-left: 25px;
}
 
.image_exemple img {
float: left;
}
 
.image_infos {
float: left;
padding-top: 45px;
}
 
.liste_infos li {
padding-top: 2px;
padding-bottom: 16px;
}
 
hr.nettoyage {
visibility: hidden;
clear: both;
}
 
.champ_selection_texte {
color: #333333;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
font-size: 13px;
line-height: 18px;
border: none;
margin-bottom: 0;
margin-top: -3px;
}
 
.attribution {
width: 302px;
}
 
.lien_image_originale {
cursor: pointer;
}
 
.sans_padding_bt {
padding-bottom: 0;
padding-top: 0;
}
/trunk/widget/modules/telechargement/squelettes/telechargement.tpl.html
New file
0,0 → 1,79
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Téléchargement d'une image du cel</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<meta http-equiv="Content-style-type" content="text/css" />
<meta http-equiv="Content-script-type" content="text/javascript" />
<meta http-equiv="Content-language" content="fr" />
<meta name="revisit-after" content="15 days" />
<meta name="robots" content="index,follow" />
<meta name="author" content="Aurélien Peronnet" />
<meta name="keywords" content="Tela Botanica, CEL" />
<meta name="description" content="Widget de téléchargement des images du carnet en ligne" />
 
<!-- Favicones -->
<link rel="shortcut icon" type="image/x-icon" href="http://www.tela-botanica.org/favicon.ico" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<!-- CSS -->
<link href="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.18/css/smoothness/jquery-ui-1.8.18.custom.css" rel="stylesheet" type="text/css" media="screen" />
<link href="http://www.tela-botanica.org/commun/bootstrap/2.0.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="http://www.tela-botanica.org/commun/bootstrap/2.0.2/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.17/css/ui-darkness/jquery-ui-1.8.17.custom.css" rel="stylesheet" type="text/css" media="screen" />
<link href="<?= $url_base; ?>modules/telechargement/squelettes/css/telechargement.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.js"></script>
<script type="text/javascript" src="<?= $url_base; ?>modules/telechargement/squelettes/js/telechargement.js" ></script>
</head>
 
<body>
<div id="zone-appli" class="container">
<h2 class="titre_section">Téléchargement d'une image</h2>
<div class="image_exemple">
<a href="<?= $url_image_originale ?>" target="_blank"><img src="<?= $url_image_exemple ?>" /></a>
<div class="image_infos">
<ul class="liste_infos">
<li>Titre original : <?= $informations_image['nom_original'] ?></li>
<li>Téléversée par : <?= $auteur_fmt ?></li>
<li>Le : <?= $date_televersement ?></li>
<li>Licence : <a target="_blank" href="http://creativecommons.org/licenses/by-sa/2.0/fr/">CC BY-SA</a></li>
<li class="sans_padding_bt">Attribution : <input class="champ_selection_texte attribution" value="<?= $attribution ?>">
</li>
<li class="sans_padding_bt">Lien vers cette image : <input class="champ_selection_texte lien_image_originale" value="<?= $url_image_originale ?>"></li>
</ul>
</div>
</div>
<hr class="nettoyage" />
<ul>
<?php foreach($formats as $format) { ?>
<?php if($format != "O") { ?>
<a href="<?= sprintf($base_url_telechargement, $format); ?>" title="<?= $resolutions[$format]['notes']; ?>">
<?= $resolutions[$format]['hauteur'];?>px <?= Telechargement::obtenirLegendeFormatSimplifiee($format);?></a>
<span class="separation"> | </span>
<?php } else { ?>
<a href="<?= sprintf($base_url_telechargement, $format); ?>" title="<?= $resolutions[$format]['notes']; ?>">
Format original (<?= $resolution_originale; ?>)</a>
<?php } ?>
<?php } ?>
</ul>
</div>
<!-- Stats : Google Analytics-->
<script type="text/javascript">
//<![CDATA[
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-20092557-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
//]]>
</script>
</body>
</html>
/trunk/widget/modules/telechargement/squelettes/js/telechargement.js
New file
0,0 → 1,15
$(document).ready(function() {
$(".champ_selection_texte").hover(
function() {
$(this).select();
}, function() {
// rien à faire sur le mouseout
}
);
$(".lien_image_originale").click(
function () {
window.open($(this).val(), '_blank');
}
);
});