<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[6814] sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events: Official WordPress Events: Track status of events.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://meta.trac.wordpress.org/changeset/6814">6814</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://meta.trac.wordpress.org/changeset/6814","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>iandunn</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2018-03-01 18:59:26 +0000 (Thu, 01 Mar 2018)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Official WordPress Events: Track status of events.

Events are sometimes cancelled, so we need to track that and only show those that are active. Otherwise they will continue to be displayed by the Events API and the `[official_wordpress_events]` shortcode.

This relies on <a href="http://meta.trac.wordpress.org/changeset/6810">r6810</a> to make the status of WordCamp events available, and on the new `status` column in `EVENTS_TABLE`.

Props coreymckrill, iandunn.
Fixes <a href="http://meta.trac.wordpress.org/ticket/2720">#2720</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginsofficialwordpresseventsofficialwordpresseventphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events/official-wordpress-event.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginsofficialwordpresseventsofficialwordpresseventsphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events/official-wordpress-events.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginsofficialwordpresseventsofficialwordpresseventphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events/official-wordpress-event.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events/official-wordpress-event.php   2018-03-01 18:59:21 UTC (rev 6813)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events/official-wordpress-event.php     2018-03-01 18:59:26 UTC (rev 6814)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8,7 +8,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * database table.
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class Official_WordPress_Event {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public $id, $type, $source_id, $title, $url, $description, $num_attendees, $meetup_name, $meetup_url,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public $id, $type, $source_id, $status, $title, $url, $description, $num_attendees, $meetup_name, $meetup_url,
</ins><span class="cx" style="display: block; padding: 0 10px">            $start_timestamp, $end_timestamp, $location, $country_code, $latitude, $longitude;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginsofficialwordpresseventsofficialwordpresseventsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events/official-wordpress-events.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events/official-wordpress-events.php  2018-03-01 18:59:21 UTC (rev 6813)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/official-wordpress-events/official-wordpress-events.php    2018-03-01 18:59:26 UTC (rev 6814)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21,7 +21,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Can/should probably remove calls to geocode API in favor of using meetup v2/group or some other endpoint that returns detailed location breakdown
</span><span class="cx" style="display: block; padding: 0 10px">         * Look at meetup-stats.php and see if any differences are relevant, or if there's anything else that'd be helpful in general
</span><span class="cx" style="display: block; padding: 0 10px">         * Check non-latin characters, accents etc to make sure stored properly in db
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Add admin_notice to wordcamp post type to warn when coordinates missing. Also back-fill current ones that are missing.
</del><span class="cx" style="display: block; padding: 0 10px">          * Store wordcamp dates in UTC, and also store timezone? Would need to start collecting timezone for wordcamps and then back-fill old records
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -70,6 +69,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                'id'          => null,
</span><span class="cx" style="display: block; padding: 0 10px">                                'type'        => $event->type,
</span><span class="cx" style="display: block; padding: 0 10px">                                'source_id'   => $event->source_id,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                'status'      => $event->status,
</ins><span class="cx" style="display: block; padding: 0 10px">                                 'title'       => $event->title,
</span><span class="cx" style="display: block; padding: 0 10px">                                'url'         => $event->url,
</span><span class="cx" style="display: block; padding: 0 10px">                                'description' => $event->description,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -146,7 +146,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $raw_events = $wpdb->get_results( sprintf( "
</span><span class="cx" style="display: block; padding: 0 10px">                        SELECT *
</span><span class="cx" style="display: block; padding: 0 10px">                        FROM `%s`
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        WHERE date_utc >= SUBDATE( CURRENT_DATE(), 1 )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 WHERE
+                               date_utc >= SUBDATE( CURRENT_DATE(), 1 ) AND
+                               status    = 'scheduled'
</ins><span class="cx" style="display: block; padding: 0 10px">                         ORDER BY date_utc ASC
</span><span class="cx" style="display: block; padding: 0 10px">                        LIMIT 300",
</span><span class="cx" style="display: block; padding: 0 10px">                        self::EVENTS_TABLE
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -212,7 +214,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        protected function get_wordcamp_events() {
</span><span class="cx" style="display: block; padding: 0 10px">                $request_params = array(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        'status'   => 'wcpt-scheduled',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 'status'   => array( 'wcpt-scheduled', 'wcpt-cancelled' ),
</ins><span class="cx" style="display: block; padding: 0 10px">                         'per_page' => 100,
</span><span class="cx" style="display: block; padding: 0 10px">                        // Note: With the number of WordCamps per year growing fast, we may need to batch requests in the near future, like we do for meetups
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -241,6 +243,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        foreach ( $wordcamps as $wordcamp ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                $event = array(
</span><span class="cx" style="display: block; padding: 0 10px">                                        'source_id'   => $wordcamp->id,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                        'status'      => 'wcpt-scheduled' === $wordcamp->status ? 'scheduled' : 'cancelled',
</ins><span class="cx" style="display: block; padding: 0 10px">                                         'type'        => 'wordcamp',
</span><span class="cx" style="display: block; padding: 0 10px">                                        'title'       => $wordcamp->title->rendered,
</span><span class="cx" style="display: block; padding: 0 10px">                                        'description' => $wordcamp->content->rendered,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -318,7 +321,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ( $groups as $group_batch ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $request_url = sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                '%s2/events?group_id=%s&time=0,3m&page=%d&key=%s',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         '%s2/events?group_id=%s&time=0,3m&page=%d&key=%s&status=upcoming,cancelled',
</ins><span class="cx" style="display: block; padding: 0 10px">                                 self::MEETUP_API_BASE_URL,
</span><span class="cx" style="display: block; padding: 0 10px">                                implode( ',', $group_batch ),
</span><span class="cx" style="display: block; padding: 0 10px">                                200,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -364,6 +367,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                $events[] = new Official_WordPress_Event( array(
</span><span class="cx" style="display: block; padding: 0 10px">                                                        'type'            => 'meetup',
</span><span class="cx" style="display: block; padding: 0 10px">                                                        'source_id'       => $meetup->id,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                        'status'          => 'upcoming' === $meetup->status ? 'scheduled' : 'cancelled',
</ins><span class="cx" style="display: block; padding: 0 10px">                                                         'title'           => $meetup->name,
</span><span class="cx" style="display: block; padding: 0 10px">                                                        'url'             => $meetup->event_url,
</span><span class="cx" style="display: block; padding: 0 10px">                                                        'meetup_name'     => $meetup->group->name,
</span></span></pre>
</div>
</div>

</body>
</html>