php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.01.2012, 11:16  
Neuer Benutzer
 
Registriert seit: 07.09.2011
Beiträge: 13
PHP-Kenntnisse:
Anfänger
Bralor befindet sich auf einem aufstrebenden Ast
Standard PHP Kalender mit Terminen

Hiho,
ich hab mir jetzt mal einen recht einfache Kalender mit PHP gebastelt.
Meine Frage ist nun: Wie krieg ich einzelne Termine verlinkt und hervorgehoben. Also wenn am 30.04 ein Event ist soll dieses Datum markiert sein (farblich hinterlegt) und wenn man auf die Zahl klickt soll man auf eine andere Seite kommen. Kann mir dabei jemand helfen? Hier wäre schonmal der Code für den Kalender:

PHP-Code:
<?php
function monthBack$timestamp ){
    return 
mktime(0,0,0date("m",$timestamp)-1,date("d",$timestamp),date("Y",$timestamp) );
}
function 
yearBack$timestamp ){
    return 
mktime(0,0,0date("m",$timestamp),date("d",$timestamp),date("Y",$timestamp)-);
}
function 
monthForward$timestamp ){
    return 
mktime(0,0,0date("m",$timestamp)+1,date("d",$timestamp),date("Y",$timestamp) );
}
function 
yearForward$timestamp ){
    return 
mktime(0,0,0date("m",$timestamp),date("d",$timestamp),date("Y",$timestamp)+);
}

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)) {
            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 = (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: #14A1FF;
}
.calender {
    width:280px;
    border:8px solid #14A1FF;
}
* html .calender,
* + html .calender {
    width:282px;
}
.calender div.after,
.calender div.before{
    color:silver;
}
.day {
    float:left;
    width:40px;
    height:40px;
    line-height: 40px;
    text-align: center;
}
.day.headline {
    background:#427BD6;
    color:white;
    font-weight: bold;
}
.day.current {
    font-weight:bold;
    background: #73C6EF;
    color:white;
}
.clear {
    clear:left;
}
.pagination {
    text-align: center;
    line-height:20px;
    font-weight: bold;
    color:white;
    background:#427BD6;
}
.pagination a {
    width:20px;
    height:20px;
    float:left;
    color:white;
}
.pagination span {
    display:block;
    float:left;
    width: 200px;
}
.clear {
    clear:both;
}
</style>
</head>
<body>
<?php

if( isset($_REQUEST['timestamp'])) $date $_REQUEST['timestamp'];
else 
$date time();

$arrMonth = array(
    
"January" => "Januar",
    
"February" => "Februar",
    
"March" => "M&auml;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');

?>

<div class="calender">
    <div class="pagination">
        <a href="?timestamp=<?php echo yearBack($date); ?>" class="last">|&laquo;</a> 
        <a href="?timestamp=<?php echo monthBack($date); ?>" class="last">&laquo;</a> 
        <span><?php echo $arrMonth[date('F',$date)];?> <?php echo date('Y',$date); ?></span>
        <a href="?timestamp=<?php echo monthForward($date); ?>" class="next">&raquo;</a>
        <a href="?timestamp=<?php echo yearForward($date); ?>" class="next">&raquo;|</a>
        <div class="clear"></div>  
    </div>
    <?php getCalender($date,$headline); ?>
    <div class="clear"></div>
</div>

</body>
Danke schonmal!
Bralor ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.01.2012, 11:18  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 606
Connar befindet sich auf einem aufstrebenden Ast
Standard

Während du über die einzelnen Tage iterierst, solltest du überprüfen, ob für diesen Tag ein Termin eingetragen ist. Falls das der Fall ist, modifizierst du die Farbe und fügst einen Link hinzu.
Dazu ist es natürlich wichtig zu wissen, wie deine Termine abgespeichert werden.


MFG Connar
Connar ist offline  
Alt 18.01.2012, 11:25  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Bralor Beitrag anzeigen
Danke schonmal!
Immer wenn ich mktime() sehe, frage ich mich, warum der PHP Gott die Funktion strtotime() gebastelt hat.
 
Alt 18.01.2012, 11:27  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Ergänzend zu Connar: bitte dein CSS Code auslagern und einbinden + Dokumenttyp-Deklaration angeben wäre auch nicht schlecht!

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline  
Alt 18.01.2012, 11:27  
Neuer Benutzer
 
Registriert seit: 07.09.2011
Beiträge: 13
PHP-Kenntnisse:
Anfänger
Bralor befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Connar Beitrag anzeigen
Während du über die einzelnen Tage iterierst, solltest du überprüfen, ob für diesen Tag ein Termin eingetragen ist. Falls das der Fall ist, modifizierst du die Farbe und fügst einen Link hinzu.
Dazu ist es natürlich wichtig zu wissen, wie deine Termine abgespeichert werden.


MFG Connar
Und wie genau stelle ich das an? Gibts da einen einfachen Befehl den ich in den PHP-Code einfügen muss wo ich dann einfach Farbe, Datum und Link einfüge?
Bralor ist offline  
Alt 18.01.2012, 11:29  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Einfach mit ner IF...ELSE Verzweigung prüfen, an der Stelle, wo Du z.B. die Termine ausgibst und ggf. über die style Eigenschaft das Format ändern!??!

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline  
Alt 18.01.2012, 11:38  
Neuer Benutzer
 
Registriert seit: 07.09.2011
Beiträge: 13
PHP-Kenntnisse:
Anfänger
Bralor befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von wolf29 Beitrag anzeigen
Einfach mit ner IF...ELSE Verzweigung prüfen, an der Stelle, wo Du z.B. die Termine ausgibst und ggf. über die style Eigenschaft das Format ändern!??!

mfg Wolf29
Puh, könntest du ein Beispiel schreiben? Ich hab nämlich 0 Ahnung und leider beschäftige ich mich zu selten damit als dass mal was hängen bleibt.
Bralor ist offline  
Alt 18.01.2012, 11:41  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 606
Connar befindet sich auf einem aufstrebenden Ast
Standard

Du verwendest doch bereits einige ifs, wo liegt da dann das Problem, dass auf dein aktuelles Problem zu erweitern?
Falls du wirklich nicht weist, wie sie funktionieren, dann schaue mal hier, ist schließlich eins der Basics.


MFG Connar
Connar ist offline  
Alt 18.01.2012, 11:45  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von meikel Beitrag anzeigen
Immer wenn ich mktime() sehe, frage ich mich, warum der PHP Gott die Funktion strtotime() gebastelt hat.
Ich bin mir nicht ganz sicher grad eben, aber strtotime() funktioniert nur bis 01.01.1970 umgehen, mktime() hingegen aber noch weiter zurück gehen.
Ich weiß es aber jetzt nicht genau ob ich grad Unsinn erzähle.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 18.01.2012, 11:47  
Neuer Benutzer
 
Registriert seit: 07.09.2011
Beiträge: 13
PHP-Kenntnisse:
Anfänger
Bralor befindet sich auf einem aufstrebenden Ast
Standard

Der Code entstammte leider nicht aus meiner Feder. Das einzige was ich da jetzt hin kriege ist das ändern der Farbe Daher bin ich bei sowas recht aufgeschmissen und auch mit deinem Link kann ich nich viel anfangen -.-
Bralor ist offline  
Thema geschlossen


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Spezieller Kalender gesucht Phate Scriptbörse 2 02.05.2012 17:22
Belegungsplan mit Kalender bierfest Scriptbörse 7 23.01.2012 19:29
Kalender in Frame springt nicht auf aktuelles Datum kampfman PHP Einsteiger 25 20.10.2011 14:55
Projektvorstellung - Kalender MaiKaY Off-Topic Diskussionen 9 07.03.2011 17:05
[Erledigt] Programmierer für änderung an einem JS Kalender gesucht ewok21 Sonstige 0 07.12.2010 18:36
Kalender erstellen minabowie JavaScript, Ajax und mehr 4 29.07.2009 15:13
Termine in div. Kalender (vista, outlook, apple) übernehmen Moe LaRoqua PHP Tipps 2009 6 20.07.2009 14:51
[Erledigt] Popup mit Kalender variable gestalten Wortak JavaScript, Ajax und mehr 0 10.05.2009 12:43
Kalender ohne Neuladen der Seite PHP, Javascript, Ajax Earl3000 JavaScript, Ajax und mehr 16 11.12.2008 22:07
Kalender Script bbi_marcel PHP Tipps 2008 4 26.10.2008 14:50
Kalender Problem pPanther PHP Tipps 2008 10 12.12.2007 18:32
MySQL-Abfrage in Kalender tsvst Datenbanken 5 13.09.2006 08:22
Kalender... arcor PHP Tipps 2005 13 08.05.2005 10:01
[Erledigt] Rollenspiel Kalender PHP Tipps 2005 4 29.01.2005 18:18
kalender in background einfügen Sclot PHP Tipps 2004 4 06.10.2004 16:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php \$_request[\'timestamp\'];\, funktion monthback(), php kalender mit terminen, div class day current, \\\>\.sprintf(\d\,, über timestamp kalender generieren, $sum_days

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum