Subversion Repositories eFlore/Applications.cel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 3856 → Rev 3857

/branches/v3.01-serpe/widget/modules/telechargement/Telechargement.php
New file
0,0 → 1,111
<?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['nom_original_fmt'] = $this->formaterNomOriginal($donnees['informations_image']);
$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'] = $this->formaterDateTeleversement($donnees['informations_image']);
$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';
$donnees['prod'] = ($this->config['parametres']['modeServeur'] == "prod");
 
$contenu = $this->traiterSquelettePhp($squelette, $donnees);
}
$this->envoyer($contenu);
}
 
private function formaterNomOriginal($infos_images) {
$nom_original = 'Inconnu.jpg';
if(isset($infos_images['nom_original'])) {
$nom_original = $infos_images['nom_original'].' ';
}
return $nom_original;
}
 
private function formaterAttribution($infos_images) {
$attr = $this->formaterAuteur($infos_images).' [CC BY-SA 2.0 FR], via Tela Botanica';
return $attr;
}
 
private function formaterAuteur($infos_images) {
$auteur_fmt = '';
if (isset($infos_images['pseudo_utilisateur'])) {
$auteur_fmt .= $infos_images['pseudo_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 formaterDateTeleversement($infos_image) {
$date = 'Date inconnue';
if (isset($infos_image['date_creation'])) {
$date = date('d/m/Y', strtotime($infos_image['date_creation']));
}
return $date;
}
 
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;
}
}
Property changes:
Added: svnkit:entry:sha1-checksum
+1cf2d36a44a00cb25dedfb0649397aa96a749e8f
\ No newline at end of property
/branches/v3.01-serpe/widget/modules/telechargement/squelettes/css/telechargement.css
New file
0,0 → 1,55
#zone-appli {
max-width: 735px;
}
 
.image_exemple, #liste_formats, .titre_section {
margin-left: 10px;
}
 
.image_exemple img {
float: left;
width: 300px;
}
 
.image_infos {
float: left;
padding-top: 45px;
max-width: 410px;
}
 
.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, .lien_image_originale {
width: auto;
}
 
input#lien_image_originale {
cursor: pointer;
}
 
input#attribution {
cursor: default;
}
 
.sans_padding_bt {
padding-bottom: 0;
padding-top: 0;
}
/branches/v3.01-serpe/widget/modules/telechargement/squelettes/telechargement.tpl.html
New file
0,0 → 1,78
<!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="Tela Botanica" />
<meta name="keywords" content="Tela Botanica, CEL" />
<meta name="description" content="Widget de téléchargement des images du carnet en ligne" />
 
<!-- OpenGraph pour Facebook, Pinterest, Google+ -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Téléchargement d'une image du CeL" />
<meta property="og:site_name" content="Tela Botanica" />
<meta property="og:description" content="Téléchargez l'image envoyée par <?= $auteur_fmt ?> (Licence CC-BY-SA) dans le format de votre choix" />
<meta property="og:image" content="<?= $url_image_exemple ?>" />
<meta property="og:locale" content="fr_FR" />
 
<!-- Favicones -->
<link rel="shortcut icon" type="image/x-icon" href="https://resources.tela-botanica.org/tb/img/16x16/favicon.ico" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<!-- CSS -->
<link href="https://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="https://www.tela-botanica.org/commun/bootstrap/2.0.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="https://www.tela-botanica.org/commun/bootstrap/2.0.2/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="https://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="https://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>
 
<!-- Google Analytics -->
<?php if($prod): ?>
<?php include "analytics.html"; ?>
<?php endif; ?>
</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 : <?= $nom_original_fmt ?></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 2.0 FR</a></li>
<li class="sans_padding_bt">Attribution : <input readonly="readonly" id="attribution" class="champ_selection_texte attribution" value="<?= $attribution ?>">
</li>
<li class="sans_padding_bt">Url : <input readonly="readonly" id="lien_image_originale" class="champ_selection_texte lien_image_originale" value="<?= $url_image_originale ?>"></li>
</ul>
</div>
</div>
<hr class="nettoyage" />
<ul id="liste_formats">
<?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>
</body>
</html>
/branches/v3.01-serpe/widget/modules/telechargement/squelettes/js/telechargement.js
New file
0,0 → 1,19
$(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');
}
);
$(".champ_selection_texte").each(function() {
$(this).attr('size', $(this).val().length - 10);
});
});