/**
  *  Constructor.
  *
  * @param TheCity $the_city An initialized TheCity object.
  */
 public function __construct($the_city, $items_to_display)
 {
     $topics = $the_city->topics($items_to_display);
     $events = $the_city->events($items_to_display);
     $prayers = $the_city->prayers($items_to_display);
     $needs = $the_city->needs($items_to_display);
     $albums = $the_city->albums($items_to_display);
     $temp = array();
     $i = 0;
     while (($topic = $topics->select($i)) != NULL) {
         $key = $this->_build_time_key($topic->created_at());
         $temp[$key] = $topic;
         $i++;
     }
     $i = 0;
     while (($event = $events->select($i)) != NULL) {
         $key = $this->_build_time_key($event->starting_at());
         $temp[$key] = $event;
         $i++;
     }
     $i = 0;
     while (($prayer = $prayers->select($i)) != NULL) {
         $key = $this->_build_time_key($prayer->created_at());
         $temp[$key] = $prayer;
         $i++;
     }
     $i = 0;
     while (($need = $needs->select($i)) != NULL) {
         $key = $this->_build_time_key($need->created_at());
         $temp[$key] = $need;
         $i++;
     }
     $i = 0;
     while (($album = $albums->select($i)) != NULL) {
         $key = $this->_build_time_key($album->created_at());
         $temp[$key] = $album;
         $i++;
     }
     krsort($temp);
     // Sort by keys from high to low
     $this->plaza_data = array_slice($temp, 0, $items_to_display);
 }
function shcaa_list_events($eventtag = '', $groupname = '')
{
    // attempt to get cached request
    if (isset($groupname) && !empty($groupname)) {
        $transient_key = "_shcaa_events_feed_" . $groupname;
    } else {
        $transient_key = "_shcaa_events_feed_all";
    }
    // If cached (transient) data are used, output an HTML
    // comment indicating such
    $cached = get_transient($transient_key);
    if (false !== $cached) {
        $myevents = $cached;
    } else {
        // create array of the events filtered by the args and include the tags
        $args = array();
        //$args['group_types'] = 'Hope';
        //$args['include_addresses'] = 'true';
        $the_city = new TheCity('theCityUsername');
        if (isset($groupname) && !empty($groupname)) {
            $the_city->set_group_nickname($groupname);
        }
        $events = $the_city->events(50);
        $event_titles = $events->titles();
        $myevents = array();
        $i = 0;
        foreach ($event_titles as $indx => $eve) {
            // get the object
            $rawevent = $events->select($indx);
            // get the body
            $event = accessProtected($rawevent, 'data');
            //print_r('<pre style="padding: 10px; border: 1px solid #000; font-size: 11px; margin: 10px">'); print_r( $event ); print_r('</pre>');
            // unique id
            $myevents[$i]['eve_id'] = $event->euid;
            // starting
            $myevents[$i]['starting_at'] = $event->starting_at;
            // ending
            $myevents[$i]['ending_at'] = $event->ending_at;
            // title
            $myevents[$i]['title'] = $event->title;
            // event_items
            $myevents[$i]['event_items'] = $event->event_items;
            // array
            //body
            $myevents[$i]['body'] = $event->body;
            // shorturl
            $myevents[$i]['short_url'] = $event->short_url;
            $i++;
        }
        // end foreach
        //print_r('<pre style="padding: 10px; border: 1px solid #000; font-size: 12px;  margin: 10px">'); print_r( $event ); print_r('</pre>');
        set_transient($transient_key, $myevents, 60 * 60 * 1);
    }
    // end if not cached
    // events output
    if (!isset($myevents) || empty($myevents)) {
        return;
    }
    // find equipping classess and add extra date modifications
    $myevents = add_event_date_info($myevents);
    $output = '<ul class="eventlist">';
    $cnt = 0;
    //print_r('<pre style="padding: 10px; border: 1px solid #000; font-size: 11px; margin: 10px">'); print_r( $myevents ); print_r('</pre>');
    $dupcheck = array();
    foreach ($myevents as $myeve) {
        $eve_id = $myeve['eve_id'];
        //$image = $myeve['image'];
        $title = trim($myeve['title']);
        // set a virtual event category by detecting substring in the title
        $tag = 'General';
        if (strpos($title, 'Equipping Class') !== false) {
            $tag = 'Equipping Class';
        }
        if (strpos($title, 'Sunday Morning Worship') !== false) {
            $tag = 'Sunday Morning Worship';
        }
        if (!isset($eventtag) || empty($eventtag) || isset($eventtag) && $eventtag == $tag) {
            // if(!in_array($title,$dupcheck)) {   // turned off the dupcheck feature for all events
            $starting_at = $myeve['starting_at'];
            $ending_at = $myeve['ending_at'];
            $dateinfo = isset($myeve['dateinfo']) && !empty($myeve['dateinfo']) ? $myeve['dateinfo'] : '';
            $event_items = $myeve['event_items'];
            // array - may contain images??
            $body = $myeve['body'];
            $short_url = $myeve['short_url'];
            // dates
            if (isset($starting_at) && !empty($starting_at)) {
                if ($tag == 'Equipping Class' || $tag == 'Sunday Morning Worship') {
                    $dates = datetransmog($starting_at, $ending_at, $dateinfo, true);
                } else {
                    $dates = datetransmog($starting_at, $ending_at);
                }
            }
            // if this is a class
            if ($tag == 'Equipping Class') {
                if (!in_array($title, $dupcheck)) {
                    $stitle = str_replace('| Equipping Class', '', $title);
                    $output .= '<li class="event eclass">';
                    $output .= '<table class="blanktable">';
                    $output .= '<tr>';
                    $output .= '<td class="month">' . $dates['month'] . '</td>';
                    $output .= '<td class="title"><h3 class="eve-title">' . $stitle . '</h3></td>';
                    $output .= '</tr>';
                    $output .= '<tr>';
                    $output .= '<td class="datelabel">Dates:</td>';
                    $output .= '<td class="dates"><div class="eve-days">' . $dates['days'] . '</div></td>';
                    $output .= '</tr>';
                    $output .= '<tr>';
                    $output .= '<td class="timelabel">Time:</td>';
                    $output .= '<td class="time"><div class="eve-time">' . $dates['time'] . '</div></td>';
                    $output .= '</tr>';
                    $output .= '</table>';
                    // description
                    if (isset($body) && !empty($body)) {
                        $output .= '<div class="eve-description">' . $body . '</div>';
                    }
                    // link
                    if (isset($short_url) && !empty($short_url)) {
                        $output .= '<a href="' . $short_url . '" target="_blank" class="eve-link button">Learn More and Register</a>';
                    }
                    $output .= '</li>';
                }
            } else {
                $output .= '<li class="event">';
                // name
                if (isset($title) && !empty($title)) {
                    $output .= '<h3 class="eve-title">' . $title . '</h3>';
                }
                // dates
                if (isset($dates['month']) && !empty($dates['month'])) {
                    $output .= '<div class="eve-month">' . $dates['month'] . '</div>';
                }
                if (isset($dates['days']) && !empty($dates['days'])) {
                    $output .= '<div class="eve-days">' . $dates['days'] . '</div>';
                }
                if (isset($dates['time']) && !empty($dates['time'])) {
                    $output .= '<div class="eve-dates">' . $dates['time'] . '</div>';
                }
                // description
                if (isset($body) && !empty($body)) {
                    $output .= '<div class="eve-description">' . $body . '</div>';
                }
                // link
                if (isset($short_url) && !empty($short_url)) {
                    $output .= '<a href="' . $short_url . '" target="_blank" class="eve-link button">Learn More</a>';
                }
                $output .= '</li>';
            }
            // end if
            // } // end if dupcheck
        }
        // end if in tag
        $dupcheck[] = $title;
    }
    // end foreach
    $output .= '</ul>';
    return $output;
}
<?php

require_once '../../../wp-blog-header.php';
require_once 'lib/plaza-php/lib/the_city.php';
require_once 'lib/plaza_collection.php';
require_once 'lib/plaza_wordpress_cache.php';
if (empty($_GET['subdomain_key'])) {
    echo 'Subdomain not set';
} else {
    global $wpdb;
    $cacher = new PlazaWordPressCache($_GET['subdomain_key']);
    $cacher->set_db_connection($wpdb);
    $the_city = new TheCity($_GET['subdomain_key'], true, $cacher);
    $the_city->add_url_params('wp=1');
    if (isset($_GET['group_nickname'])) {
        $the_city->set_group_nickname($_GET['group_nickname']);
    }
    $subdomain_key = $_GET['subdomain_key'];
    $plaza_choice = $_GET['plaza_display'];
    $items_to_display = $_GET['items_to_display'];
    $show_dates = isset($_GET['show_dates']) ? $_GET['show_dates'] : '';
    $show_type = isset($_GET['show_type']) ? $_GET['show_type'] : '';
    $plaza_choice_key = '';
    $plaza_display = '';
    switch ($_GET['plaza_display']) {
        case 'all':
            $plaza_display = new PlazaCollection($the_city, $items_to_display);
            break;
        case 'topics':
            $plaza_display = $the_city->topics($items_to_display);
            break;
<?php

/* *******************************************
 // This is a demo file to show usage.
 //
 // @package TheCity
 // @author Wes Hays <*****@*****.**>
 ******************************************* */
require_once 'lib/the_city.php';
// Initalize
// First param is your church's subdomain key.
// Second param is whether or not to cache the data.
$the_city = new TheCity('vintage21', true);
$the_city->add_url_params('wp=1');
// Set group nickname to pull plaza items for.
// http://helpdesk.onthecity.org/entries/422776-group-nickname
$the_city->set_group_nickname('@v21west');
// Load Topics
$array_of_topic_titles = $the_city->topics()->titles();
// by default will grab 10 topics.
$topics = $the_city->topics();
// limit the amount of topics fetched from The City.
$topics = $the_city->topics(3);
// Get topic.
$topic = $topics->select(2);
// Get count.
$topic_count = $topics->size();
// Load Events
$array_of_event_titles = $the_city->events()->titles();
// by default will grab 10 events.
$events = $the_city->events();
function shcaa_list_testimonies()
{
    // attempt to get cached request
    $transient_key = "_shcaa_testimonies_feed";
    // If cached (transient) data are used, output an HTML
    // comment indicating such
    $cached = get_transient($transient_key);
    //if ( false !== $cached ) {
    //	$mytestimonies = $cached;
    //} else {
    // create array of the testimonies filtered by the args and include the tags
    $args = array();
    //$args['group_types'] = 'Hope';
    //$args['include_addresses'] = 'true';
    $the_city = new TheCity('hitc');
    $topics = $the_city->topics()->titles();
    print_r('<pre style="padding: 10px; border: 1px solid #000; margin: 10px">');
    print_r($topics);
    print_r('</pre>');
    $mytestimonies = array();
    $i = 0;
    foreach ($topics as $indx => $top) {
        // get the object
        $rawtopic = $topics->select($indx);
        // get the body
        $topic = accessProtected($rawtopic, 'data');
        // starting
        $mytestimonies[$i]['starting_at'] = $topic->starting_at;
        // ending
        $mytestimonies[$i]['ending_at'] = $topic->ending_at;
        // title
        $mytestimonies[$i]['title'] = $topic->title;
        // topic_items
        $mytestimonies[$i]['topic_items'] = $topic->topic_items;
        // array
        //body
        $mytestimonies[$i]['body'] = $topic->body;
        // shorturl
        $mytestimonies[$i]['short_url'] = $topic->short_url;
        // Address Items
        $mytestimonies[$i]['street'] = $topic->addresses->street;
        $mytestimonies[$i]['street2'] = $topic->addresses->street2;
        $mytestimonies[$i]['city'] = $topic->addresses->city;
        $mytestimonies[$i]['state'] = $topic->addresses->state;
        $mytestimonies[$i]['zipcode'] = $topic->addresses->zipcode;
        $mytestimonies[$i]['location_type'] = $topic->addresses->location_type;
        $mytestimonies[$i]['latitude'] = $topic->addresses->latitude;
        $mytestimonies[$i]['longitude'] = $topic->addresses->longitude;
        $i++;
    }
    // end foreach
    print_r('<pre style="padding: 10px; border: 1px solid #000; margin: 10px">');
    print_r($mytestimonies);
    print_r('</pre>');
    //set_transient( $transient_key, $mytestimonies, 60*60*12 );
    //} // end if not cached
    // testimonies output
    $output = '<ul class="topiclist">';
    $cnt = 0;
    //print_r('<pre style="padding: 10px; border: 1px solid #000; margin: 10px">'); print_r( $mytestimonies ); print_r('</pre>');
    foreach ($mytestimonies as $myeve) {
        $top_id = $myeve['eve_id'];
        $parentid = $myeve['parentid'];
        $image = $myeve['image'];
        $name = $myeve['name'];
        $description = $myeve['description'];
        $neighborhood = $myeve['neighborhood'];
        $invite = $myeve['invite'];
        $cityurl = $myeve['cityurl'];
        // Get Tags
        $dtags = $myeve['mytags'];
        if (is_array($dtags) && !empty($dtags)) {
            //print_r('<pre style="padding: 10px; border: 1px solid #000; margin: 10px">'); print_r( $dtags ); print_r('</pre>');
            $mytags = '<div class="eve-tags"';
            foreach ($dtags as $dtag) {
                if (is_array($dtag)) {
                    //foreach ($tag as $el){
                    $mytags .= '<span> | ' . $dtag['name'] . ' | </span>';
                    //} // end inner foreach
                }
                // end if
            }
            // end foreach
            $mytags .= '</div>';
        } else {
            $mytags = '';
        }
        $output .= '<li class="topic">';
        // image
        if (isset($image) && !empty($image)) {
            $output .= '<div class="eve-image"><img src="' . $image . '" alt="' . $name . '" title="' . $name . '" /></div>';
        }
        // name
        if (isset($name) && !empty($name)) {
            $output .= '<div class="eve-name">' . $name . '</div>';
        }
        // description
        if (isset($description) && !empty($description)) {
            $output .= '<div class="eve-description">' . $description . '</div>';
        }
        // Invitation
        if (isset($invite) && !empty($invite)) {
            $output .= '<div class="eve-invite">' . $invite . '</div>';
        }
        // neighborhood
        if (isset($neighborhood) && !empty($neighborhood)) {
            $output .= '<div class="eve-neighborhood">' . $neighborhood . '</div>';
        }
        // Location
        $output .= '<h3>Location</h3>';
        // location name
        if (isset($add_name) && !empty($add_name)) {
            $output .= '<div class="eve-add-name">' . $add_name . '</div>';
        }
        $output .= '<div class="eve-add">';
        // location street
        if (isset($add_street) && !empty($add_street)) {
            $output .= '<div class="eve-add-street">' . $add_street . ', </div>';
        }
        // location street 2
        if (isset($add_street2) && !empty($add_street2)) {
            $output .= ' <div class="eve-add-street2">' . $add_street2 . ', </div> ';
        }
        // location city
        if (isset($add_city) && !empty($add_city)) {
            $output .= ' <div class="eve-add-city">' . $add_city . ' </div> ';
        }
        // location state
        if (isset($add_state) && !empty($add_state)) {
            $output .= ' <div class="eve-add-state">' . $add_state . ', </div> ';
        }
        // location zip
        if (isset($add_zipcode) && !empty($add_zipcode)) {
            $output .= ' <div class="eve-add-zipcode">' . $add_zipcode . ' </div> ';
        }
        // end address box
        $output .= '</div>';
        // testimonies tags
        if (isset($mytags) && !empty($mytags)) {
            $output .= $mytags;
        }
        // location coords
        if (isset($add_longitude) && !empty($add_longitude) && (isset($add_latitude) && !empty($add_latitude))) {
            $output .= '<div class="eve-add-coords">' . $add_longitude . ',' . $add_latitude . ', </div>';
        }
        $output .= '</li>';
    }
    $output .= '</ul>';
    return $output;
}