[COLOR=#333333]Hallo erst einmal,[/COLOR]
[COLOR=#333333]ich bin gerade dabei meinen ersten eigenen Blog aufzubauen, da ich aber auch ein paar Sonderwünsche habe stellt sich das doch als etwas schwieriger herraus als anfangs gedacht. Also zu meinem Problem:[/COLOR]
[COLOR=#333333]Ich möchte ein Jahr lang jeden Tag meine Route per GPS tracken, auf den Webspace hochladen und die Blogbesucher sollen jeden Tag dann über einen Kalender auswählen können. Die Dateien werden alle in dem Format dd.mm.yyyy.gpx abgepeichert. Die Darstellung habe ich mit dem Plugin WP-GPX-Maps realisiert und das funktioniert manuell so wie ich es will. Ich kann einfach in einen Beitrag den Shortcode [sgpx gpx="/wp-content/uploads/gpx/dd.mm.yyy.gpx"] einfügen und es klappt.[/COLOR]
[COLOR=#333333]Den Kalender habe ich auch realisiert, indem ich den PHP Code in einem neuen Seiten Template eingefügt habe. (siehe http://www.lukasontour.de/GPS [/COLOR][COLOR=#333333])[/COLOR]
[COLOR=#333333]Jetzt zu dem was nicht funktioniert und wo ich leider auch am Ende meiner Programmier-Verständnis-Fähigkeiten stehe:[/COLOR]
[COLOR=#333333]Der Kalender sollte anklickbar sein und je nachdem wo ich drauf klicke wird einen Seite geladen, welche das Standard Template nutzt und als Inhalt nur den Shortcode [sgpx gpx="/wp-content/uploads/gpx/dd.mm.yyy.gpx"] enthält. Dabei sollen natürlich die Variablen im Dateiname durch die gefüllt werden, wo man im Kalender drauf geklickt hat. Also als Beispiel ich geh auf die GPS Seite, klicke auf den Kalender auf den 25.08.16, dann wird eine Seite geladen, welche den GPS Track dieses Tages ausgibt. Das soll dann aber so aussehen wie eine Standard Seite mit nur diesem Inhalt.[/COLOR]
[COLOR=#333333]Bis jetzt hieß es immer zu mir "Ist ja nicht so schwer da machst du noch ein bisschen PHP dazu und noch ein kleines Script und dann läuft das", mir fällt es aber nicht so leicht. Deswegen würde ich mich freuen wenn mir hier jemand helfen kann, auch gerne nur Teile an denen ich die Lösung erarbeiten kann.[/COLOR]
[COLOR=#333333]Hier der PHP Code des Templates:[/COLOR]
[COLOR=#333333]Code:
<?php/*
* Template Name: PHP Kalender
*/
get_header(); ?>
<div id="main-content" class="main-content">
<?php
if ( is_front_page() && twentyfourteen_has_featured_posts() ) {
// Include the featured content template.
get_template_part( 'featured-content' );
}
?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php
// Start the Loop.
while ( have_posts() ) : the_post();
// Include the page content template.
get_template_part( 'content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
endwhile;
?>
<?php
//Kalender Anfang
function monthBack( $timestamp ){
return mktime(0,0,0, date("m",$timestamp)-1,date("d",$timestamp),date("Y",$timestamp) );
}
function yearBack( $timestamp ){
return mktime(0,0,0, date("m",$timestamp),date("d",$timestamp),date("Y",$timestamp)-1 );
}
function monthForward( $timestamp ){
return mktime(0,0,0, date("m",$timestamp)+1,date("d",$timestamp),date("Y",$timestamp) );
}
function yearForward( $timestamp ){
return mktime(0,0,0, date("m",$timestamp),date("d",$timestamp),date("Y",$timestamp)+1 );
}
function getCalender($date,$headline = array('Mo','Di','Mi','Do','Fr','Sa','So')) {
$sum_days = date('t',$date);
$LastMonthSum = date('t',mktime(0,0,0,(date('m',$date)-1),0,date('Y',$date)));
foreach( $headline as $key => $value ) {
echo "<div class="day headline">".$value."</div>\n";
}
for( $i = 1; $i <= $sum_days; $i++ ) {
$day_name = date('D',mktime(0,0,0,date('m',$date),$i,date('Y',$date)));
$day_number = date('w',mktime(0,0,0,date('m',$date),$i,date('Y',$date)));
if( $i == 1) {
$s = array_search($day_name,array('Mon','Tue','Wed','Thu','Fri','Sat','Sun'));
for( $b = $s; $b > 0; $b-- ) {
$x = $LastMonthSum-$b;
echo "<div class="day before">".sprintf("%02d",$x)."</div>\n";
}
}
if( $i == date('d',$date) && date('m.Y',$date) == date('m.Y')) {
echo "<div class="day current">".sprintf("%02d",$i)."</div>\n";
} else {
echo "<div class="day normal">".sprintf("%02d",$i)."</div>\n";
}
if( $i == $sum_days) {
$next_sum = (6 - array_search($day_name,array('Mon','Tue','Wed','Thu','Fri','Sat','Sun')));
for( $c = 1; $c <=$next_sum; $c++) {
echo "<div class="day after"> ".sprintf("%02d",$c)." </div>\n";
}
}
}
}
?>
<html>
<head>
<style type="text/css">
body {
font-family:verdana;
font-size:12px;
}
a {
color:black;
text-decoration: none;
}
a:hover {
text-decoration: underline;
background: #eaeaea;
}
.calender {
width:95%;
border:1px solid black;
margin-left:auto;
margin-right:auto;
display:block;
}
* html .calender,
* + html .calender {
width:100%;
}
.calender div.after,
.calender div.before{
color:silver;
}
.day {
float:left;
width:14.286%;
height:40px;
line-height: 40px;
text-align: center;
}
.day.headline {
background:silver;
}
.day.current {
font-weight:bold;
}
.clear {
clear:left;
}
.pagination {
text-align: center;
height:20px;
line-height:20px;
font-weight: bold;
}
.pagihead {
display:inline-block;
background: white;
width: 25%;
height: 20px;
color: black;
}
.pagination a {
width:14.286%;
height:20px;
}
</style>
</head>
<body>
<?php
if( isset($_REQUEST['timestamp'])) $date = $_REQUEST['timestamp'];
else $date = time();
$arrMonth = array(
"January" => "Januar",
"February" => "Februar",
"March" => "März",
"April" => "April",
"May" => "Mai",
"June" => "Juni",
"July" => "Juli",
"August" => "August",
"September" => "September",
"October" => "Oktober",
"November" => "November",
"December" => "Dezember"
);
$headline = array('Mo','Di','Mi','Do','Fr','Sa','So');
//Kalender Ende
?>
<div class="calender">
<div class="pagination">
<a href="?timestamp=<?php echo yearBack($date); ?>" class="last">|«</a>
<a href="?timestamp=<?php echo monthBack($date); ?>" class="last">«</a>
<div class="pagihead">
<span><?php echo $arrMonth[date('F',$date)];?> <?php echo date('Y',$date); ?></span>
</div>
<a href="?timestamp=<?php echo monthForward($date); ?>" class="next">»</a>
<a href="?timestamp=<?php echo yearForward($date); ?>" class="next">»|</a>
</div>
<?php getCalender($date,$headline); ?>
<div class="clear"></div>
</div>
</body>
</html>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar( 'content' ); ?>
</div><!-- #main-content -->
<?php
get_sidebar();
get_footer();
Alles anzeigen
[/COLOR]
[COLOR=#333333]Vielen Dank schon einmal für eure Hilfe und falls ihr irgendwelche Informationen braucht fragt mich einfach [/COLOR]:smile:
[COLOR=#333333]Gruß Lukas[/COLOR]