Files
it.vidok.com/templates/site/calendar.php
2024-11-17 19:56:17 +01:00

188 lines
5.9 KiB
PHP

<?php
$date = mktime( 12, 0, 0, $this -> month, 1, $this -> year );
$daysInMonth = date( "t", $date );
$offset = date( "w", $date ) - 1; if ( $offset < 0 ) $offset = 6;
$rows = 1;
$prev_month = $this -> month - 1;
$prev_year = $this -> year;
if ( $this -> month == 1 )
{
$prev_month = 12;
$prev_year = $this -> year - 1;
}
$next_month = $this -> month + 1;
$next_year = $this -> year;
if ( $this -> month == 12 )
{
$next_month = 1;
$next_year = $this -> year + 1;
}
?>
<? if ( !$this -> ajax ):?>
<div id="calendar-container">
<? endif;?>
<div class='panel-heading text-center'>
<div class='row'>
<div class='col-md-3 col-xs-4'>
<a class='month-prev btn btn-light btn-sm active' title="Poprzedni miesiąc" month="<?= $prev_month;?>" year="<?= $prev_year;?>">
<span class='glyphicon glyphicon-arrow-left'></span>
</a>
</div>
<div class='col-md-6 col-xs-4'>
<strong><?= $this -> months[ $this -> month ] . ' ' . $this -> year;?></strong>
</div>
<div class='col-md-3 col-xs-4 '>
<a class='month-next btn btn-light btn-sm active' title="Następny miesiąc" month="<?= $next_month;?>" year="<?= $next_year;?>">
<span class='glyphicon glyphicon-arrow-right'></span>
</a>
</div>
</div>
</div>
<table class='table table-bordered'>
<tr>
<th>Pn</th>
<th>Wt</th>
<th>Śr</th>
<th>Cz</th>
<th>Pt</th>
<th>Sb</th>
<th>Nd</th>
</tr>
<tr>
<? for ( $i = 1; $i <= $offset; $i++ ):?>
<td></td>
<? endfor;?>
<?
for ( $day = 1; $day <= $daysInMonth; $day++ )
{
if ( ( $day + $offset - 1 ) % 7 == 0 && $day != 1 )
{
echo "</tr><tr>";
$rows++;
}
echo "<td class='";
if ( date( 'w', strtotime( $day . '-' . $this -> month . '-' . $this -> year ) ) == 6 )
echo 'sb ';
if ( date( 'w', strtotime( $day . '-' . $this -> month . '-' . $this -> year ) ) == 0 )
echo 'nd ';
$class = '';
$out_list = '';
if ( is_array( $this -> articles ) ) foreach ( $this -> articles as $article )
{
$date_tmp = date( 'Y-m-d', strtotime( $day . '-' . $this -> month . '-' . $this -> year ) );
if ( $date_tmp >= $article['date_start'] and $date_tmp <= $article['date_end'] )
{
$class = 'event ';
if ( !$out_list )
$out_list = '<ul id="events-' . $date_tmp . '">';
$article['language']['seo_link'] ? $url = $article['language']['seo_link'] : $url = 'a-' . $article['id'] . '-' . \S::seo( $article['language']['title'] );
$out_list .= '<li>';
$out_list .= '<a href="/' . $url . '" title="' . $article['language']['title'] . '"';
if ( $this -> article['language']['noindex'] )
$out_list .= 'rel="nofollow"';
$out_list .= '>' . $article['language']['title'] . '</a>';
$out .= '</li>';
}
}
if ( $out_list )
$out_list .= '</ul>';
$out .= $out_list;
echo $class;
echo "' date='" . $date_tmp . "'>" . $day . "</td>";
}
while ( ($day + $offset) <= $rows * 7 )
{
echo "<td></td>";
$day++;
}
?>
</tr>
</table>
<?= $out;?>
<a href="#" id="event-back">Wstecz</a>
<? if ( !$this -> ajax ):?>
</div>
<script type="text/javascript">
$( document ).ready( function()
{
$( 'body' ).on( 'click', '.event', function()
{
var date = $( this ).attr( 'date' );
$( '#calendar-container .panel-heading, #calendar-container table, #calendar-container ul' ).hide();
$( '#events-' + date + ', #event-back' ).show();
});
$( 'body' ).on( 'click', '#event-back', function()
{
var date = $( this ).attr( 'date' );
$( '#calendar-container .panel-heading, #calendar-container table' ).show();
$( '#calendar-container ul, #event-back' ).hide();
});
$( 'body' ).on( 'click', '.month-next.active', function()
{
$( '.month-next' ).removeClass( 'active' );
$( '#calendar-container' ).addClass( 'disable' );
$.ajax(
{
type: 'POST',
cache: false,
url: '/ajax.php',
data:
{
a: 'calendar',
month: $( '.month-next' ).attr( 'month' ),
year: $( '.month-next' ).attr( 'year' )
},
success: function( data )
{
$( '#calendar-container' ).html( data );
$( '.month-next' ).addClass( 'active' );
$( '#calendar-container' ).removeClass( 'disable' );
}
});
});
$( 'body' ).on( 'click', '.month-prev.active', function()
{
$( '.month-prev' ).removeClass( 'active' );
$( '#calendar-container' ).addClass( 'disable' );
$.ajax(
{
type: 'POST',
cache: false,
url: '/ajax.php',
data:
{
a: 'calendar',
month: $( '.month-prev' ).attr( 'month' ),
year: $( '.month-prev' ).attr( 'year' )
},
success: function( data )
{
$( '#calendar-container' ).html( data );
$( '.month-prev' ).addClass( 'active' );
$( '#calendar-container' ).removeClass( 'disable' );
}
});
});
});
</script>
<? endif;?>