Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Mini-Kalender-Widget
#1
Hallo.

Kurz und knapp.

Ich suche eine Möglichkeit, eine Art Mini-Kalender-Widget auf der Startseite meines Forum zu integrieren.

Gibt es das vielleicht schon in Form eines Plugins? Oder könnte man diesen von extern einbetten?


Mit freundlichem Gruß
Greek101
Keiner eine Idee?
Zitieren
#2
Als Plugin ist mir keines bekannt, aber externe Scriprs kannst Du einbetten. An welche Stelle soll denn der Kalender zu sehen sein ?
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#3
Hallo
Ich habe ein sog. free-php Kalenderscript genommen und das in einer Box auf der Portalseite integriert..allerdings ist zumindest meine Portalseite inzwischen komplett tabellenfrei - Contentbereich und Seitenboxen sind selbst gemacht weil die Möglichkeiten durch die Forensoftware alleine, leider sehr eingeschränkt sind. Eigene Boxen zu gestalten ist für php-Unfähige fast aussichtslos -ohne weiteres Plugin

Scripte einfach includen...geht leider irgendwie nicht. Mit einer Variablen aber gehts:

In der Global.php (ganz oben) eine Variable definiert

ob_start();
include("Pfad zum Scriptl/kalender.php");
$kalender = ob_get_contents();
ob_end_clean();

und dann das Kalenderscript mit der Variable $kalender in eine Seitenbox eingebunden. Die Anpassung des Scripts dann über eine separate CSS (war in meinem Fall eh schon vorhanden)

Das ganze ginge auch via iframe ...natürlich.
leider weiß ich nicht ob ich so ohne weiteres das von mir verwendete Script hier weitergeben darf, aber das Internet ist ja voll von sowas.

nette Grüsse

Kalle
Zitieren
#4
Hallo Kalle ;D

Wie heisst das Kalenderscript denn ? Ich such auch sowas ...
Greeetings

Bogus

GridTalk.de | Have a nice Day ;D
Zitieren
#5
Das ist ein typisches php-script (findet man wenn man explizt danach googelt)...sieht so aus:

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"
            }
        }
    }
}
?>
<div id="kalender">
<?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-kalender">
    <span class="fett"><?php echo $arrMonth[date('F',$date)];?> <?php echo date('Y',$date); ?></span>
    </div>
    <?php getCalender($date,$headline); ?>
    <div class="clear"></div>
</div>
</div> 

..und die css - muss man natürlich selbst anpassen. Das hier sind die regeln die ich für die Darstellung in einem iframe verwende ...deswegen z.B. auch "width:100%" , weil der iframe die dargestellte Breite vorgibt. Da muss man also etwas experimentieren.

Code:
.calender {
    width: 100%;
}

* html .calender,
* + html .calender {
    width: 98%;
}

.calender div.after,
.calender div.before {
    color: #808080;
}

.day {
    width: 14.2%;
    border:0px;
    float: left;
    height: 20px;
    line-height: 20px;
    text-align: center;
    
    font-size: 0.8em;
    font-weight: bold;
}

.day.headline {
    background: #000 url(../../../images/xxx.gif) repeat-x;
    width: 14.28%;
    color: #ffffff;
    text-align: center;
    margin-top: 4px;
    border-bottom: 3px solid #000000;
    height:auto;
    font-size: 0.8em;
    font-weight: bold;
}

.day.current {
    background: #C0D0E8;
    width: 11.2%;
    border-radius: 3px;
    padding: 0px;
    border: 2px groove #E8CD94;
    height: 16px;
    line-height: 16px;
    
    font-weight: bold;
}

.clear {
    clear:left;
}

.pagination {
    text-align: center;
    height:20px;
    line-height:20px;
    font-weight: bold;
}

.pagination a {
    width:20px;
    height:20px;
}
nette grüsse

Kalle
Zitieren
#6
Vielen Dank erstmal.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Taging Widget Torie 3 1.426 20.01.2013, 22:32
Letzter Beitrag: Torie