/trunk/widget/modules/photo/squelettes/css/contact.css |
---|
New file |
0,0 → 1,17 |
#tpl-form-contact { |
width: 350px; |
padding: 15px; |
} |
input, textarea { |
max-width: 100%; |
width: 100% !important; |
} |
textarea { |
height: 185px !important; |
} |
.error { |
color: red; |
} |
/trunk/widget/modules/photo/squelettes/photo.tpl.html |
---|
93,8 → 93,14 |
<a class="cel-img-titre" href="<?=$item['eflore_url']?>" |
onclick="window.open(this.href);return false;" |
title="Cliquez pour accéder à la fiche eFlore"> |
<?=$item['titre']?> |
<?=$item['infos']['nom_sci']?> |
</a> par |
<a class="cel-img-contact" |
href="?mode=contact&nn=<?= urlencode($item['infos']['nn']) ;?>&nom_sci=<?= urlencode($item['infos']['nom_sci']) ;?>&date=<?= urlencode($item['infos']['date']) ;?>&id_image=<?= $item['guid']; ?>" |
title="Cliquez pour contacter l'auteur de la photo"> |
<?=$item['infos']['auteur']?> |
</a> |
le <?=$item['infos']['date']?> |
<?php } else { ?> |
<?=$item['titre']?> |
<?php } ?> |
151,11 → 157,23 |
event.preventDefault(); |
}); |
} |
$(document).ready(function() { |
$('a.cel-img-contact').live('click', function(event) { |
event.preventDefault(); |
ouvrirFenetreContact($(this)); |
}); |
}); |
function ouvrirFenetrePopup(lienImage) { |
var url = "?mode=popup&url_image="+lienImage.attr('href'); |
var url = "?mode=popup&url_image="+lienImage.attr('href')+'&galerie_id=<?= $galerie_id ?>'; |
window.open(url, '', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(700)+', height='+(650)); |
} |
function ouvrirFenetreContact(lienImage) { |
var url = lienImage.attr("href"); |
window.open(url, '_blank', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(400)+', height='+(550)); |
} |
//]]> |
</script> |
<?php endif; ?> |
/trunk/widget/modules/photo/squelettes/contact.tpl.html |
---|
New file |
0,0 → 1,134 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
<html> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
<title>Contacter l'auteur de l'image</title> |
<link rel="stylesheet" type="text/css" href="<?=$url_css?>contact.css" media="screen" /> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.6.2/jquery-1.6.2.min.js"></script> |
<link type="text/css" rel="stylesheet" href="http://www.tela-botanica.org/commun/bootstrap/2.0.2/css/bootstrap.css"> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/validate/1.8.1/jquery.validate.min.js"></script> |
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/validate/1.8.1/messages_fr.js"></script> |
</head> |
<body> |
<script type="text/javascript"> |
//<![CDATA[ |
var donnees = new Array(); |
function envoyerCourriel() { |
//console.log('Formulaire soumis'); |
if ($("#form-contact").valid()) { |
var destinataireId = $("#fc_destinataire_id").attr('value'); |
var typeEnvoi = $("#fc_type_envoi").attr('value'); |
// l'envoi aux non inscrits passe par le service intermédiaire du cel |
// qui va récupérer le courriel associé à l'image indiquée |
var urlMessage = "http://www.tela-botanica.org/service:cel:celMessage/image/"+destinataireId; |
var erreurMsg = ""; |
console.log($(this)); |
$.each($("#form-contact").serializeArray(), function (index, champ) { |
var cle = champ.name; |
cle = cle.replace(/^fc_/, ''); |
if (cle == 'sujet') { |
champ.value += " - Carnet en ligne - Tela Botanica"; |
} |
if (cle == 'message') { |
champ.value += "\n--\n"+ |
"Ce message vous est envoyé par l'intermédiaire du widget photo "+ |
"du Carnet en Ligne du réseau Tela Botanica.\n"+ |
"http://www.tela-botanica.org/widget:cel:carto"; |
} |
donnees[index] = {'name':cle,'value':champ.value}; |
}); |
$.ajax({ |
type : "POST", |
cache : false, |
url : urlMessage, |
data : donnees, |
beforeSend : function() { |
$(".msg").remove(); |
}, |
success : function(data) { |
$("#fc-zone-dialogue").append('<pre class="msg info">'+data.message+'</pre>'); |
}, |
error : function(jqXHR, textStatus, errorThrown) { |
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n"; |
reponse = jQuery.parseJSON(jqXHR.responseText); |
if (reponse != null) { |
$.each(reponse, function (cle, valeur) { |
erreurMsg += valeur + "\n"; |
}); |
} |
}, |
complete : function(jqXHR, textStatus) { |
var debugMsg = ''; |
if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') { |
debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data")); |
if (debugInfos != null) { |
$.each(debugInfos, function (cle, valeur) { |
debugMsg += valeur + "\n"; |
}); |
} |
} |
if (erreurMsg != '') { |
$("#fc-zone-dialogue").append('<p class="msg">'+ |
'Une erreur est survenue lors de la transmission de votre message.'+'<br />'+ |
'Vous pouvez signaler le disfonctionnement à <a href="'+ |
'mailto:cel@tela-botanica.org'+'?'+ |
'subject=Disfonctionnement du widget carto'+ |
"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+ |
'">cel@tela-botanica.org</a>.'+ |
'</p>'); |
} |
} |
}); |
} |
return false; |
} |
function initialiserFormulaireContact() { |
$("#form-contact").validate({ |
rules: { |
fc_sujet : "required", |
fc_message : "required", |
fc_utilisateur_courriel : { |
required : true, |
email : true} |
} |
}); |
$("#form-contact").live("submit", function(event) { |
event.preventDefault(); |
envoyerCourriel(); |
}); |
$("#fc_annuler").live("click", function() {window.close();}); |
} |
$(document).ready(function() { |
initialiserFormulaireContact(); |
}); |
//]]> |
</script> |
<!-- Squelette du formulaire de contact --> |
<div id="tpl-form-contact"> |
<form id="form-contact" method="post" action=""> |
<div id="fc-zone-dialogue"></div> |
<div> |
<div><label for="fc_sujet">Sujet</label></div> |
<div><input id="fc_sujet" name="fc_sujet" value="<?= $donnees['sujet'] ?>"/></div> |
<div><label for="fc_message">Message</label></div> |
<div><textarea id="fc_message" name="fc_message"><?= $donnees['message'] ?></textarea></div> |
<div><label for="fc_utilisateur_courriel" title="Utilisez le courriel avec lequel vous êtes inscrit à Tela Botanica">Votre courriel</label></div> |
<div><input id="fc_utilisateur_courriel" name="fc_utilisateur_courriel"/></div> |
</div> |
<p> |
<input id="fc_destinataire_id" name="fc_destinataire_id" type="hidden" value="<?= $donnees['id_image'] ?>" /> |
<input id="fc_copies" name="fc_copies" type="hidden" value="aurelien@tela-botanica.org" /> |
<input type="hidden" name="fc_type_envoi" id="fc_type_envoi" value="non-inscrit" /> |
<input id="fc_annuler" type="button" value="Annuler"> |
<input id="fc_effacer" type="reset" value="Effacer"> |
<input id="fc_envoyer" type="submit" value="Envoyer" /> |
</p> |
</form> |
</div> |
</body> |
</html> |
/trunk/widget/modules/photo/squelettes/photo_ajax.tpl.html |
---|
47,12 → 47,18 |
</a> |
<div id="cel-info-<?=$item['guid']?>" class="cel-infos"> |
<strong> |
<?php if ($item['eflore_url'] != '#' && $item['eflore_url'] != '' && $item['eflore_url'] != 'http://www.tela-botanica.org/bdtfx-nn-0') { ?> |
<a class="cel-img-titre" href="<?=$item['eflore_url']?>" |
onclick="window.open(this.href);return false;" |
title="Cliquez pour accéder à la fiche eFlore"> |
<?=$item['titre']?> |
</a> |
<?php if ($item['eflore_url'] != '#' && $item['eflore_url'] != '') { ?> |
<a class="cel-img-titre" href="<?=$item['eflore_url']?>" |
onclick="window.open(this.href);return false;" |
title="Cliquez pour accéder à la fiche eFlore"> |
<?=$item['infos']['nom_sci']?> |
</a> par |
<a class="cel-img-contact" |
href="<?= $url_widget ?>?mode=contact&nn=<?= urlencode($item['infos']['nn']) ;?>&nom_sci=<?= urlencode($item['infos']['nom_sci']) ;?>&date=<?= urlencode($item['infos']['date']) ;?>&id_image=<?= $item['guid']; ?>" |
title="Cliquez pour contacter l'auteur de la photo"> |
<?=$item['infos']['auteur']?> |
</a> |
le <?=$item['infos']['date']?> |
<?php } else { ?> |
<?=$item['titre']?> |
<?php } ?> |
111,11 → 117,24 |
event.preventDefault(); |
}); |
} |
$(document).ready(function() { |
$('a.cel-img-contact').live('click', function(event) { |
event.preventDefault(); |
ouvrirFenetreContact($(this)); |
}); |
}); |
function ouvrirFenetrePopup(lienImage) { |
var url = "?mode=popup&url_image="+lienImage.attr('href'); |
var url = "?mode=popup&url_image="+lienImage.attr('href')+'&galerie_id=<?= $galerie_id ?>'; |
window.open(url, '', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(700)+', height='+(650)); |
} |
function ouvrirFenetreContact(lienImage) { |
var url = lienImage.attr("href"); |
window.open(url, '_blank', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(400)+', height='+(550)); |
} |
//]]> |
</script> |
<?php endif; ?> |
/trunk/widget/modules/photo/squelettes/popup.tpl.html |
---|
59,17 → 59,35 |
function afficherTitreImage() { |
item = infos_images[urls[indexImage]]; |
var titre = item['titre']; |
var pattern = new RegExp('^(.*\])'); |
pattern.compile(pattern); |
var matches = pattern.exec(titre); |
var remplacement = titre; |
if(matches.length > 0) { |
remplacement = matches[0]; |
} |
titre = titre.replace(remplacement, '<a href="'+item['lien']+'">'+remplacement+'</a>'); |
var infos = decouperTitre(titre); |
var lienContact = '<?= $url_widget ?>?mode=contact&nn='+infos.nn+ |
'&nom_sci='+infos.nom_sci+ |
'&date='+infos.date+ |
'&id_image='+item['guid']; |
titre = '<a href="'+item['lien']+'">'+infos.nom_sci+'</a> '+ |
' par <a class="lien_contact" href="'+lienContact+'">'+infos.auteur+'</a> '+ |
' le '+infos.date+' '; |
$('#bloc-infos-img').html(titre); |
} |
function decouperTitre(titre) { |
var tab_titre = titre.split('[nn'); |
var nom_sci = tab_titre[0]; |
var tab_titre_suite = tab_titre[1].split(' par '); |
var nn = '[nn'+tab_titre_suite[0]; |
var tab_titre_fin = tab_titre_suite[1].split(' le '); |
var utilisateur = tab_titre_fin[0]; |
var date = tab_titre_fin[1]; |
var titre_decoupe = {'nom_sci' : nom_sci, 'nn' : nn, 'date' : date, 'auteur' : utilisateur}; |
return titre_decoupe; |
} |
function ouvrirFenetreContact(lienImage) { |
var url = lienImage.attr("href"); |
window.open(url, '_blank', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(400)+', height='+(550)); |
} |
$(document).ready(function() { |
$('#precedent').click(function() { |
imagePrecedente(); |
97,6 → 115,11 |
imageSuivante(); |
} |
}); |
$('.lien_contact').live('click', function(event) { |
event.preventDefault(); |
ouvrirFenetreContact($(this)); |
}); |
}); |
//]]> |
</script> |
/trunk/widget/modules/photo/Photo.php |
---|
84,9 → 84,11 |
private function executerPopup() { |
session_start(); |
$galerie_id = $_GET['galerie_id']; |
$widget['donnees']['url_image'] = $_GET['url_image']; |
$widget['donnees']['infos_images'] = $_SESSION['infos_images']; |
$widget['donnees']['urls'] = $_SESSION['urls']; |
$widget['donnees']['infos_images'] = $_SESSION[$galerie_id]['infos_images']; |
$widget['donnees']['urls'] = $_SESSION[$galerie_id]['urls']; |
$widget['donnees']['url_widget'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'photo'); |
$widget['donnees']['url_css'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/photo/squelettes/css/'); |
$widget['donnees']['url_js'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/photo/squelettes/js/'); |
$widget['squelette'] = 'popup'; |
93,6 → 95,33 |
return $widget; |
} |
private function executerContact() { |
session_start(); |
$widget['donnees']['id_image'] = $_GET['id_image']; |
$widget['donnees']['nom_sci'] = $_GET['nom_sci']; |
$widget['donnees']['nn'] = $_GET['nn']; |
$widget['donnees']['date'] = $_GET['date']; |
$widget['donnees']['sujet'] = "Image #".$_GET['id_image']." de ".$_GET['nom_sci']; |
$widget['donnees']['message'] = "\n\n\n\n\n\n\n\n--\nConcerne l'image de \"".$_GET['nom_sci'].'" du "'.$_GET['date']; |
$widget['donnees']['url_css'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/photo/squelettes/css/'); |
$widget['donnees']['url_js'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/photo/squelettes/js/'); |
$widget['squelette'] = 'contact'; |
return $widget; |
} |
private function decouperTitre($titre) { |
$tab_titre = explode('[nn', $titre); |
$nom_sci = $tab_titre[0]; |
$tab_titre_suite = explode(' par ', $tab_titre[1]); |
$nn = '[nn'.$tab_titre_suite[0]; |
$tab_titre_fin = explode(' le ', $tab_titre_suite[1]); |
$utilisateur = $tab_titre_fin[0]; |
$date = $tab_titre_fin[1]; |
$titre_decoupe = array('nom_sci' => $nom_sci, 'nn' => $nn, 'date' => $date, 'auteur' => $utilisateur); |
return $titre_decoupe; |
} |
private function executerPhoto() { |
session_start(); |
$_SESSION['urls'] = array(); |
114,6 → 143,7 |
$widget['donnees']['id'] = $id; |
$widget['donnees']['titre'] = $titre; |
$widget['donnees']['flux_rss_url'] = $this->flux_rss_url; |
$widget['donnees']['url_widget'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'photo'); |
$widget['donnees']['url_css'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/photo/squelettes/css/'); |
$widget['donnees']['url_js'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], 'modules/photo/squelettes/js/'); |
$widget['donnees']['colonne'] = $colonne; |
122,6 → 152,8 |
$widget['donnees']['utilise_fancybox'] = $utilise_fancybox; |
$max_photo = $colonne * $ligne; |
$num = 0; |
$galerie_id = md5(http_build_query($_GET)); |
$widget['donnees']['galerie_id'] = $galerie_id; |
foreach ($flux as $entree) { |
if ($num == $max_photo) { |
break; |
136,6 → 168,7 |
// Formatage titre |
$item['titre'] = $entree->title; |
$item['infos'] = $this->decouperTitre($item['titre']); |
$item['nn'] = ''; |
$item['eflore_url'] = '#'; |
if (preg_match('/\[nn([0-9]+)\]/', $entree->title, $match)) { |
155,11 → 188,10 |
$widget['donnees']['extra'] = $item; |
} |
$widget['donnees']['items'][$num++] = $item; |
//TODO: voir si l'on ne peut pas faire mieux |
$url_galerie_popup = sprintf($item['url_tpl'],'XL'); |
$_SESSION['urls'][] = $url_galerie_popup; |
$_SESSION['infos_images'][$url_galerie_popup] = array('titre' => $item['titre'], |
$_SESSION[$galerie_id]['urls'][] = $url_galerie_popup; |
$_SESSION[$galerie_id]['infos_images'][$url_galerie_popup] = array('titre' => $item['titre'], |
'date' => $item['titre'], |
'guid' => $item['guid'], |
'lien' => $item['lien'] |