Skip to content

Instantly share code, notes, and snippets.

@Apina
Last active December 20, 2015 23:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Apina/432c17ffa0c990912479 to your computer and use it in GitHub Desktop.
Save Apina/432c17ffa0c990912479 to your computer and use it in GitHub Desktop.
what, when, where modified
<?php
/*
Shortcode Name: Espresso Table
Author: Seth Shoultes
Contact: seth@eventespresso.com
Website: http://www.eventespresso.com
Description: Only show events in a CATEGORY within a certain number number of days into the future and a qty. The example below only shows events in a certain category that start within 30 days from the current date.
Usage Example: [ESPRESSO_TABLE max_days="30" qty="3" category_id="gracecard" order_by="state"]
Custom CSS for the table display
Notes: This file should be stored in your "/wp-content/uploads/espresso/templates/" folder and you should have the custom_includes.php files installed in your "/wp-content/uploads/espresso/" directory.
*/
/*
What? When? Where? Get it! Table by Dean Robinson
Requires Multiple Event Registration add on
What = Event name and link to event registration page
When = Date and Time
Where = Venue name - not linked
Get it = add to cart - no redirect
*/
function espresso_display_table($atts){
global $wpdb;
$org_options = get_option('events_organization_settings');
$event_page_id =$org_options['event_page_id'];
global $load_espresso_scripts;
$load_espresso_scripts = true;//This tells the plugin to load the required scripts
extract(shortcode_atts(array('event_category_id'=>'NULL','category_identifier' => 'NULL','show_expired' => 'false', 'show_secondary'=>'false','show_deleted'=>'false','show_recurrence'=>'true', 'limit' => '0', 'order_by' => 'NULL', 'max_days'=>''),$atts));
if ($category_identifier != 'NULL'){
$type = 'category';
}
$show_expired = $show_expired == 'false' ? " AND e.start_date >= '".date ( 'Y-m-d' )."' " : '';
$show_secondary = $show_secondary == 'false' ? " AND e.event_status != 'S' " : '';
$show_deleted = $show_deleted == 'false' ? " AND e.event_status != 'D' " : '';
$show_recurrence = $show_recurrence == 'false' ? " AND e.recurrence_id = '0' " : '';
$limit = $limit > 0 ? " LIMIT 0," . $limit . " " : '';
$order_by = $order_by != 'NULL'? " ORDER BY ". $order_by ." ASC " : " ORDER BY date(start_date), id ASC ";
if ($type == 'category'){
$sql = "SELECT e.* FROM " . EVENTS_CATEGORY_TABLE . " c ";
$sql .= " JOIN " . EVENTS_CATEGORY_REL_TABLE . " r ON r.cat_id = c.id ";
$sql .= " JOIN " . EVENTS_DETAIL_TABLE . " e ON e.id = r.event_id ";
$sql .= " WHERE c.category_identifier = '" . $category_identifier . "' ";
$sql .= " AND e.is_active = 'Y' ";
}else{
$sql = "SELECT e.* FROM " . EVENTS_DETAIL_TABLE . " e ";
$sql .= " WHERE e.is_active = 'Y' ";
}
if ($max_days != ""){
$sql .= " AND ADDDATE('".date ( 'Y-m-d' )."', INTERVAL ".$max_days." DAY) >= e.start_date AND e.start_date >= '".date ( 'Y-m-d' )."' ";
}
$sql .= $show_expired;
$sql .= $show_secondary;
$sql .= $show_deleted;
$sql .= $show_recurrence;
$sql .= $order_by;
$sql .= $limit;
echo espresso_get_table($sql);
}
//Events Custom Table Listing - Shows the events on your page in matching table.
function espresso_get_table($sql){
global $wpdb, $org_options;
//echo 'This page is located in ' . get_option( 'upload_path' );
$event_page_id = $org_options['event_page_id'];
$currency_symbol = $org_options['currency_symbol'];
$events = $wpdb->get_results($sql);
$category_name = $wpdb->last_result[0]->category_name;
$category_desc = $wpdb->last_result[0]->category_desc;
$display_desc = $wpdb->last_result[0]->display_desc;
if ($display_desc == 'Y'){
echo '<p>' . stripslashes_deep($category_name) . '</p>';
echo '<p>' . stripslashes_deep($category_desc) . '</p>';
}
?>
<?php //var_dump($events); ?>
<table class="espresso-table" width="100%">
<thead class="espresso-table-header-row">
<tr>
<th class="th-group"><?php _e('When?','event_espresso'); ?></th>
<th class="th-group"><?php _e('What?','event_espresso'); ?></th>
<th class="th-group"><?php _e('Where','event_espresso'); ?></th>
<th class="th-group"><?php _e('Flyer','event_espresso'); ?></th>
<th class="th-group"><?php _e('Get it!','event_espresso'); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($events as $event){
$reg_limit = $event->reg_limit;
$event_desc = wpautop($event->event_desc);
$register_button = '<a id="a_register_link-'.$event->id.'" href="'.get_option('siteurl').'/?page_id='.$event_page_id.'&regevent_action=register&event_id='.$event->id.'&name_of_event='.stripslashes_deep($event->event_name).'">Register</a>';
//Check to see how many open spots are available
$open_spots = get_number_of_attendees_reg_limit($event->id, 'available_spaces') == 'Unlimited' ? 999 : get_number_of_attendees_reg_limit($event->id, 'available_spaces');
//echo $open_spots;
if ( $open_spots < 1 ) { $live_button = 'Closed'; }
?>
<?php //print_r ($event); ?>
<tr class="espresso-table-row">
<!-- ######### date ########### -->
<td class="td-group">
<?php echo event_date_display($event->start_date, $format = 'l, M d, Y') ?> <?php echo espresso_event_time($event->id, 'start_time', get_option('time_format')) ?>
</td>
<!-- ######### event ########### -->
<td class="td-group">
<?php echo '<a href="'.get_option('siteurl').'/?page_id='.$event_page_id.'&regevent_action=register&event_id='.$event->id.'&name_of_event='.stripslashes_deep($event->event_name).'">' . $event->event_name . '</a>'; ?>
</td>
<!-- ########## venue ########## -->
<td class="td-group">
<a href="<?php $thevenue = unserialize($event->event_meta); echo $thevenue['metavenue'] ; ?>">
<?php echo do_shortcode('[ESPRESSO_VENUE event_id=' . $event->id . ' title_wrapper="p" show_image="false" show_description="false" show_address="false" show_additional_details="false" show_google_map_link="false" show_map_image="false"]'); ?>
</a>
</td>
<!-- ######### meta ########### -->
<td class="td-group">
<?php $themeta = unserialize($event->event_meta); echo '<a href="' . $themeta['testmeta'] . '">Flyer</a>'; ?>
</td>
<!-- ######### register ########### -->
<td class="td-group">
<?php echo do_shortcode('[ESPRESSO_CART_LINK anchor="Add to cart" event_id="' . $event->id . '"]'); ?>
</td>
</tr>
<?php } //close foreach ?>
</tbody>
</table>
<?php
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment