[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
kalender mit frontendeintrag - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
beyben
Beiträge: 367
Registriert: 30. Nov 2006, 14:04

kalender mit frontendeintrag

20. Sep 2016, 19:10

na hi an alle - ich versuche gerade einen wochenplan umzusetzen, damit ein raum von montag-freitag, vormittags und nachmittags getrennt vom frontend aus bestueckt werden kann. eingebunden in einen offline-seite sollen hier aerzte sich fuer einen dienst eintragen koennen; gedacht fuer eine einrichtung, bei der refugee-kinder durch freiwillige aerzte einen behandlungsmoeglichkeit gegeben wird.

hat jemand was aehnliches schonmal gemacht, kalenderwochen automatisiert mit frontend-eingaben zu versehen (ev. mit drop-down der einzelnen namen)?

fuer tips wieder einmal sehr dankbar - bis denn - ben

beyben
Beiträge: 367
Registriert: 30. Nov 2006, 14:04

Re: kalender mit frontendeintrag

21. Sep 2016, 17:09

na hi - scheinbar nein. habe mir mal nen kalender rausgesucht und diesen erweitert. hat jemand nen tip, wie ich die datenbank aus dem frontend heraus bearbeiten/abfragen kann?

Code: Alles auswählen

<?php
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 KalenderwocheErmitteln() {
  $kw = 0;
  $kw = date('W', time());
  return $kw;
}
echo 'Aktuelle Kalenderwoche: '.date('W', time());

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>";
    }
    
    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\"><span>".sprintf("%02d",$x)."</span><br />";
				echo 'V: DB-ausgabe<br /><a>ändern DB-feld</a>';
				echo '<hr />';
				echo 'N: DB-ausgabe<br /><a>ändern DB-feld</a></div>';
            }
        } 
        
        if( $i == date('d',$date) && date('m.Y',$date) == date('m.Y')) {
            echo "<div class=\"day current\"><span>".sprintf("%02d",$i)."</span><br />";
				echo 'V: DB-ausgabe<br /><a>ändern DB-feld</a>';
				echo '<hr />';
				echo 'N: DB-ausgabe<br /><a>ändern DB-feld</a></div>';
        } else {
            echo "<div class=\"day normal\"><span>".sprintf("%02d",$i)."</span><br />";
				echo 'V: DB-ausgabe<br /><a>ändern DB-feld</a>';
				echo '<hr />';
				echo 'N: DB-ausgabe<br /><a>ändern DB-feld</a></div>';
        }
        
        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\"><span>".sprintf("%02d",$c)."</span><br />"; 
				echo 'V: DB-ausgabe<br /><a>ändern DB-feld</a>';
				echo '<hr />';
				echo 'N: DB-ausgabe<br /><a>ändern DB-feld</a></div>';
            }
        }
    }
}

?>

<style type="text/css">

.calender {width:84%;margin:8%;}
.calender hr {height:1px;border: 1px dotted #cdcdcd;}
.calender div.after, .calender div.before {color:silver;}
.day {display:inline-block;width:13.5%;line-height: 40px;text-align: center;outline:1px solid grey;}
.day span {font-size:3em;color:#a0a0a0;}
.day.headline {background:#ddd;}
.day.current {font-weight:bold;}
.calender div.after span, .calender div.before span {color:#ddd;}
.clear {clear:left;}
.pagination {text-align: center;height:20px;line-height:20px;font-weight: bold;}
.pagihead {display:inline-block;background: white;width: 140px;height: 20px;color: black;}
.pagination a {width:20px;height:20px;}
</style>

<?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> 
        <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">&raquo;</a>
        <a href="?timestamp=<?php echo yearForward($date); ?>" class="next">&raquo;|</a>  
    </div>
	<br />
    <?php getCalender($date,$headline); ?>
    <div class="clear"></div>
</div>
auch zu sehen hier: http://beyben.de/index.php?article_id=18
danke - ben

beyben
Beiträge: 367
Registriert: 30. Nov 2006, 14:04

Re: kalender mit frontendeintrag

21. Sep 2016, 20:42

eine andere ueberlegung REX_VALUE zu nutzen und ein array anzulegen. kann ich vom frontend aus rex_value als array erweitern und via ajax abspeichern?

Code: Alles auswählen

<?php
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 KalenderwocheErmitteln() {
  $kw = 0;
  $kw = date('W', time());
  return $kw;
}
echo 'Aktuelle Kalenderwoche: '.date('W', time());

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)));
	
	//test
	$rexvalue = 'VALUE[1]';
	$arzt .= '<b>Vormittag:</b><br /><select name="'.$rexvalue.'" >';
	foreach (array("Kramer","Seybold","Kaufmann","Rösch","Auerochs","Beyer","Schraml","Seithe","Lämmermann","Klein","Vogel","Bothor","Dilling","Owsianowski","Zibigniew","Bumiller") as $value) {
		$arzt .= '<option value="'.$value.'">'.$value.'</option>';
	}
	$arzt .= '</select>';
	
	$rexvalue = 'VALUE[2]';
	$arzt .= '<b>Nachmittag</b><br /><select name="'.$rexvalue.'" >';
	foreach (array("Kramer","Seybold","Kaufmann","Rösch","Auerochs","Beyer","Schraml","Seithe","Lämmermann","Klein","Vogel","Bothor","Dilling","Owsianowski","Zibigniew","Bumiller") as $value) {
		$arzt .= '<option value="'.$value.'">'.$value.'</option>';
	}
	$arzt .= '</select>';
	// testende
    
    foreach( $headline as $key => $value ) {
        echo "<div class=\"day headline\">".$value."</div>";
    }
    
    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)));
		
		// $arzt = 'V: DB-ausgabe<br /><a>ändern DB-feld</a><hr />N: DB-ausgabe<br /><a>ändern DB-feld</a></div>';
        
        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\"><span>".sprintf("%02d",$x)."</span><br />".$arzt."</div>";
            }
        } 
        
        if( $i == date('d',$date) && date('m.Y',$date) == date('m.Y')) {
            echo "<div class=\"day current\"><span>".sprintf("%02d",$i)."</span><br />".$arzt."</div>";
        } else {
            echo "<div class=\"day normal\"><span>".sprintf("%02d",$i)."</span><br />".$arzt."</div>";
        }
        
        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\"><span>".sprintf("%02d",$c)."</span><br />".$arzt."</div>";
            }
        }
    }
}

?>

<style type="text/css">

.calender {width:84%;margin:8%;}
.calender hr {height:1px;border: 1px dotted #cdcdcd;}
.calender div.after, .calender div.before {color:silver;}
.day {display:inline-block;width:20%;text-align: center;outline:1px solid grey;padding:20px 0;}
.day span {font-size:3em;color:#a0a0a0;}
.day.headline {background:#ddd;}
.day.current {font-weight:bold;background:#efefef;outline:3px solid orange;}
.day:nth-child(8), .day:nth-child(9), .day:nth-child(15), .day:nth-child(16), .day:nth-child(22), .day:nth-child(23), .day:nth-child(29), .day:nth-child(30), .day:nth-child(36), .day:nth-child(37), .day:nth-child(43), .day:nth-child(44) {display:none;}
.calender div.after span, .calender div.before span {color:#ddd;}
.clear {clear:left;}
.pagination {text-align: center;height:20px;line-height:20px;font-weight: bold;}
.pagihead {display:inline-block;background: white;width: 140px;height: 20px;color: black;}
.pagination a {width:20px;height:20px;}
</style>

<?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');
$url = './index.php?article_id='.$this->getValue("article_id");
?>

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


<?php
$class = "REX_VALUE[2]";

$sql = rex_sql::factory();
$sql->setTable($REX['TABLE_PREFIX'].'aerzte');
$sql->setWhere('online=1 and ort ='.intval($class).' order by veranstaltungsnummer ASC');

$sql->select('date, vormittag, nachmittag');

$arzt .= '<table><tr><td colspan="2">'.$sql->getValue('date').'</td></tr><tr><td colspan="2">'.$sql->getValue('vormittag').'</td></tr><tr><td colspan="2">'.$sql->getValue('nachmittag').'</td></tr></table>';
?>
hiermal der derzeitige stand, falls interesse, habe immer sa/so wegen 'geschlossen' ausgeblendet, auch nicht schoen, aber erstmal funktionabel... ben (die letzt $sql->...-nr habe ich von irgendwo kopiert...)

Zurück zu „Allgemeines [R4]“