array(
'name' => __( 'Arrangementer' ),
'singular_name' => __( 'Arrangement' ),
'add_new' => __( 'Legg til nytt arrangement' ),
'add_new_item' => __( 'Legg til nytt arrangement' ),
'edit_item' => __( 'Rediger arrangement' ),
'new_item' => __( 'Legg til nytt arrangement' ),
'view_item' => __( 'Vis arrangement' ),
'search_items' => __( 'Søk etter arrangement' ),
'not_found' => __( 'ingen arrangement funnet' ),
'not_found_in_trash' => __( 'ingen arrangement funnet i søppel' )
),
'menu_position' => 4,
'public' => true,
'publicly_queryable' => true,
'query_var' => 'event',
'show_ui' => true,
'rewrite' => false,
'capability_type' => 'post',
'supports' => array(
'title',
'editor',
'thumbnail',
'administrator',
),
'register_meta_box_cb' => 'add_events_metaboxes',
)
);
}
/*******************************************************************************
********************************************************************************
** Add meta-boxes ***********************************************************
********************************************************************************
*******************************************************************************/
function add_events_metaboxes() {
// Date-selection for events
wp_register_style('timecss', plugins_url("/neuf-events/style/jquery-ui-1.8.12.custom.css", dirname(__FILE__)));
wp_register_script('timepicker', plugins_url("/neuf-events/script/jquery-ui-timepicker-addon.js", dirname(__FILE__)));
wp_register_script('timedefs', plugins_url("/neuf-events/script/timepickdef.js", dirname(__FILE__)));
// for upgrading jQuery ui, get core, widget, mouse, slider and datepicker
wp_register_script('custom-jqui', plugins_url("/neuf-events/script/jquery-ui-1.8.11.custom.min.js", dirname(__FILE__)));
wp_enqueue_style('timecss');
wp_enqueue_script('jquery');
wp_enqueue_script('custom-jqui');
wp_enqueue_script('timepicker');
wp_enqueue_script('timedefs');
add_meta_box(
'neuf_events_timestamps',
__('Dato og klokkeslett'),
'neuf_date_custom_box',
'event',
'side',
'high'
);
add_meta_box(
'neuf_event_type',
__('Arrangementstype'),
'neuf_eventtype_custom_box',
'event',
'side',
'high'
);
add_meta_box(
'neuf_eventvenue',
__('Sted'),
'neuf_eventvenue_custom_box',
'event',
'side'
);
}
/*******************************************************************************
********************************************************************************
** Start and endtime metabox ************************************************
********************************************************************************
*******************************************************************************/
function neuf_date_custom_box() {
global $post;
$start = get_post_meta($post->ID, 'neuf_events_starttime', true);
if( $start ) {
echo '
';
echo 'Nåværende dato: '.date("d.m.Y H:i", intval($start));
} else {
echo '
';
}
}
/*******************************************************************************
********************************************************************************
** Eventtype metabox ********************************************************
********************************************************************************
*******************************************************************************/
function neuf_eventtype_custom_box(){
global $post;
$event_artist = get_post_meta($post->ID, 'neuf_events_artist', true);
$neuf_event_type = get_post_meta($post->ID, 'neuf_events_type', true);
echo "Type:";
echo '';
echo '
Artist/Foredragsholder:
';
}
/*******************************************************************************
********************************************************************************
** Event venue metabox ********************************************************
********************************************************************************
*******************************************************************************/
function neuf_eventvenue_custom_box(){
global $post;
$neuf_event_venue = get_post_meta($post->ID, 'neuf_events_venue', true);
echo 'Sted:';
echo '';
}
/**
* When the post is saved, saves our custom data
*/
function neuf_events_save_info( $post_id ) {
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id;
// Check permissions
if ( !current_user_can( 'edit_post', $post_id ) ) return $post_id;
// Get posted data
$tosave['neuf_events_venue'] = $_POST['neuf_events_venue'];
$tosave['neuf_events_type'] = $_POST['neuf_events_type'];
$tosave['neuf_events_artist'] = $_POST['neuf_events_artist'];
$tosave['neuf_events_starttime'] = strtotime( $_POST['neuf_events_starttime']);
// Update or add post meta
foreach($tosave as $key=>$value)
if(!update_post_meta($post_id, $key, $value))
add_post_meta($post_id, $key, $value, true);
return $post_id;
}
/** View of the custom page */
function neuf_events_program() {
global $post, $wp_locale;
$deys = array('MANDAG 13.08.2012', 'TIRSDAG 14.08.2012', 'ONSDAG 15.08.2012',
'TORSDAG 16.08.2012', 'FREDAG 17.08.2012', 'LØRDAG 18.08.2012', 'SØNDAG 19.08.2012',
'MANDAG 20.08.2012', 'TIRSDAG 21.08.2012', 'ONSDAG 22.08.2012',
'TORSDAG 23.08.2012', 'FREDAG 24.08.2012', 'LØRDAG 25.08.2012', 'SØNDAG 16.08.2012');
$events = new WP_Query( array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'neuf_events_starttime',
'orderby' => 'meta_value',
'order' => 'ASC',
)
);
$html = '';
$html .= '
';
if ( $events->have_posts() ) {
$date = 13;
$bol = true;
$html .= '';
while ( $events->have_posts() ) :
$events->the_post();
$time = get_post_meta( $post->ID, 'neuf_events_starttime', true) ;
if (date("Y", $time) == date("Y", time()) && (!isset($_POST['date']) || $_POST['date'] == date("d", $time))) {
$venue = get_post_meta( $post->ID, 'neuf_events_venue', true );
$type = get_post_meta( $post->ID, 'neuf_events_type', true);
$artist = get_post_meta( $post->ID, 'neuf_events_artist', true) ;
if(!isset($_POST['date']) && $date != intval(date("d", $time))){
$date = intval(date("d", $time));
$html .= ' | '.$deys[$date - 13].' |
';
}
if(isset($_POST['date']) && $bol){
$html .= ' | '.$deys[intval($_POST['date']) - 13].' |
';
$bol = false;
}
$html .= ' ';
$html .= ' | ' . get_the_title() . ' | ';
$html .= ' ' . date("H:i", $time) . ' | ';
$html .= ' ' . get_the_title($venue) . ' | ';
$html .= '
';
}
endwhile;
$html .= '
';
}
return $html;
}
function neuf_events_arkiv() {
global $post, $wp_locale;
$events = new WP_Query( array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'neuf_events_starttime',
'orderby' => 'meta_value',
'order' => 'ASC'
)
);
$html = '';
if ( $events->have_posts() ) :
$date = "";
$html .= '';
$event_aar = "";
while ( $events->have_posts() ) {
$events->the_post();
$time = get_post_meta( $post->ID, 'neuf_events_starttime', true) ;
if (date("Y", $time) != date("Y")) {
if (date("Y", $time) != $event_aar) {
$html .= '| '.date("Y", $time).' |
';
$event_aar = date("Y", $time);
}
$venue = get_post_meta( $post->ID, 'neuf_events_venue', true );
$type = get_post_meta( $post->ID, 'neuf_events_type', true);
$artist = get_post_meta( $post->ID, 'neuf_events_artist', true) ;
$html .= ' ';
$html .= ' | ' . date("H:i", $time) . ' | ';
$html .= ' ' . $artist . ' | ';
$html .= ' ' . get_the_title() . ' | ';
$html .= ' ' . $type . ' | ';
$html .= ' ' . get_the_title($venue) . ' | ';
$html .= '
';
}
}
$html .= '
';
endif;
return $html;
}
}
}
}
if (class_exists("NeufEvents")) {
$neuf_event_object = new NeufEvents();
}
if ( isset($neuf_event_object)){
/**
Register the event post type
*/
add_action( 'init' , 'neuf_events_post_type');
add_action( 'save_post' , 'neuf_events_save_info');
add_shortcode( 'neuf-events-program', 'neuf_events_program' );
add_shortcode( 'neuf-events-arkiv' , 'neuf_events_arkiv' );
}
?>