code php heures levé et couché soleil avec maj automatique heures été/hiver

Petit nouveau ! | 2 Messages

03 févr. 2016, 10:18

Bonjour a tous,
c'est mon premier message car je viens juste de me lancer dans la programmation PHP.
programmation est un bien grand mot en ce qui me concerne car je fais un petit site internet sous Wordpress pour l'association à laquelle j'appartiens.
bref, voici mon soucis.
j'utilise un Widget trés simple réalisé par un programmeur qui avait mis a dispo son code sur Internet.
Il est génial pour l'heure du couché et levé du soleil et bien paramétrable.
Cependant, il faut corriger manuellement, à la date qui va bien, le plus ou moins une heure correspondant au passage à l'heure d'été ou d'hiver pour avoir une heure correcte à l'affichage de celle-ci sur mon site.
je vais vous mettre le code ci-dessous.
je souhaiterais savoir si il y a moyen que tous cela se fasse en automatique car, bien entendu, à la date voulue, je penserais jamais à mettre ce truc à jour!!!
si il y a moyen, quelle en serait les modifs?
je n'ai pas contacté le concepteur de ce Widget car sa remonte à 2010 et plus de news depuis....
merci de votre aide:
<?php
/*
Plugin Name: Sunriset
Plugin URI: http://jotrilide.free.fr/blog/?p=71
Description: Plugin qui fournit les dates de lever et coucher du Soleil
Author: jotrilide
Version: 1.1
Author URI: http://jotrilide.free.fr
*/
 
function sunriset($long,$lat,$offset,$symbol) {
echo "Lever : " .str_replace('h', $symbol, date_sunrise(time(), SUNFUNCS_RET_STRING, $lat, $long, 90+16/60, $offset)), "<br>" ;
echo "Coucher : " .str_replace('h', $symbol, date_sunset(time(), SUNFUNCS_RET_STRING,$lat, $long, 90+16/60, $offset)) ;
}
 
function init_sunriset(){
    register_widget_control('Sunriset', 'widget_sunriset_control');
    register_sidebar_widget('Sunriset', 'widget_sunriset'); 
}

function widget_sunriset($args) 
	  {
		  $options = get_option('widget_sunriset');
		  $title = empty($options['title']) ? __('Soleil à Paris') : $options['title'];
		  $long = empty($options['long']) ? __('2.348651') : $options['long'];
		  $lat = empty($options['lat']) ? __('48.853447') : $options['lat'];
		  $offset = empty($options['offset']) ? __('0') : $options['offset'];
		  $symbol = empty($options['symbol']) ? __(':') : $options['symbol'];
		  

		  extract($args);
		  echo $before_widget;
		  echo $before_title;
		  echo $title;
		  echo $after_title;
		  sunriset($long,$lat,$offset,$symbol);
		  echo $after_widget;
	  }  
function widget_sunriset_control()
	  {
		$options = $newoptions = get_option('widget_sunriset');
		
		if ( $_POST['widget_sunriset-submit'] ) 
		{
			$newoptions['title'] = strip_tags(stripslashes($_POST['widget_sunriset-title']));
			$newoptions['long'] = strip_tags(stripslashes($_POST['widget_sunriset-long']));
			$newoptions['lat'] = strip_tags(stripslashes($_POST['widget_sunriset-lat']));
			$newoptions['offset'] = strip_tags(stripslashes($_POST['widget_sunriset-offset']));
			$newoptions['symbol'] = strip_tags(stripslashes($_POST['widget_sunriset-symbol']));
		}
		if ( $options != $newoptions ) 
		{
			$options = $newoptions;
			update_option('widget_sunriset', $options);
		}
						
		$title = attribute_escape($options['title']);
		$long = attribute_escape($options['long']);
		$lat = attribute_escape($options['lat']);
		$offset = attribute_escape($options['offset']);

		echo '<p><label for="sunriset-title">';
		echo 'Titre: <input style="width: 250px;" id="widget_sunriset-title" name="widget_sunriset-title" type="text" value="';
		echo $title;
		echo '" />';
		echo '</label></p>';
		echo '<p><label for="sunriset-title">';
		echo 'Longitude (Est: + , Ouest: - ): <input style="width: 250px;" id="widget_sunriset-long" name="widget_sunriset-long" type="text" value="';
		echo $long;
		echo '" />';
		echo '</label></p>';
		echo '<p><label for="sunriset-title">';
		echo 'Latitude (Nord: + , Sud: - ) : <input style="width: 250px;" id="widget_sunriset-lat" name="widget_sunriset-lat" type="text" value="';
		echo $lat;
		echo '" />';
		echo '<p><label for="sunriset-title">';
		echo 'Fuseau horaire (UTC + ?) : <input style="width: 250px;" id="widget_sunriset-offset" name="widget_sunriset-offset" type="text" value="';
		echo $offset;
		echo '" />';
		echo '</label></p>';
		echo '<p><label for="sunriset-title">';
		echo 'Symbole pour les heures (: par défaut): <input style="width: 250px;" id="widget_sunriset-symbol" name="widget_sunriset-symbol" type="text" 

value="';
		echo $symbol;
		echo '" />';
		echo '</label></p>';
		echo '<input type="hidden" id="widget_sunriset-submit" name="widget_sunriset-submit" value="1" />';
	  }
add_action("plugins_loaded", "init_sunriset");
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

03 févr. 2016, 10:40

Bonjour et bienvenue sur PHPfrance,

C'est probablement car le fuseau horaire de ta configuration serveur n'est pas correct, tu peux la redéfinir au début de ton script avec la fonction date_default_timezone_set()
http://php.net/manual/fr/function.date- ... ne-set.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 2 Messages

03 févr. 2016, 14:15

Merci beaucoup Arthur,

je vais tester ça ;-)