Mount Everest is the Earth\'s highest mountain, with a peak at 8,848 metres above sea level and the 5th tallest mountain measured from the centre of the Earth. It is located in the Nepal.
A prayer wheel is a cylindrical wheel on a spindle made from metal, wood, stone, leather or coarse cotton. Traditionally, the mantra Om Mani Padme Hum is written in Sanskrit on the outside of the wheel.
Homepage Headline. You can edit or disable it through Theme Options.
', 'no');
+INSERT INTO `wp_options` VALUES (1193, '_transient_timeout_catcheverest_footercode', '1382198046', 'no');
+INSERT INTO `wp_options` VALUES (1194, '_transient_catcheverest_footercode', '', 'no');
+INSERT INTO `wp_options` VALUES (1196, 'theme_mods_activetab', 'a:7:{i:0;b:0;s:16:"background_color";s:0:"";s:16:"background_image";s:0:"";s:17:"background_repeat";s:6:"repeat";s:21:"background_position_x";s:4:"left";s:21:"background_attachment";s:5:"fixed";s:16:"sidebars_widgets";a:2:{s:4:"time";i:1382368025;s:4:"data";a:6:{s:19:"wp_inactive_widgets";a:0:{}s:7:"sidebar";a:4:{i:0;s:8:"search-2";i:1;s:14:"recent-posts-2";i:2;s:10:"archives-2";i:3;s:12:"categories-2";}s:6:"footer";a:0:{}s:18:"orphaned_widgets_1";a:1:{i:0;s:6:"text-2";}s:18:"orphaned_widgets_2";a:1:{i:0;s:6:"text-3";}s:18:"orphaned_widgets_3";a:1:{i:0;s:6:"text-5";}}}}', 'yes');
+INSERT INTO `wp_options` VALUES (1200, 'theme_mods_wp-opulus', 'a:7:{i:0;b:0;s:16:"background_color";s:6:"ffffff";s:16:"background_image";s:0:"";s:17:"background_repeat";s:6:"repeat";s:21:"background_position_x";s:4:"left";s:21:"background_attachment";s:5:"fixed";s:16:"sidebars_widgets";a:2:{s:4:"time";i:1382111216;s:4:"data";a:28:{s:19:"wp_inactive_widgets";a:0:{}s:13:"sidebar_pages";a:4:{i:0;s:8:"search-2";i:1;s:14:"recent-posts-2";i:2;s:10:"archives-2";i:3;s:12:"categories-2";}s:12:"sidebar_blog";a:0:{}s:17:"sidebar_portfolio";a:0:{}s:11:"footer-left";a:0:{}s:13:"footer-center";a:0:{}s:12:"footer-right";a:1:{i:0;s:6:"text-2";}s:15:"frontpage-right";a:1:{i:0;s:6:"text-3";}s:9:"sidebar_1";a:1:{i:0;s:6:"text-5";}s:9:"sidebar_2";N;s:9:"sidebar_3";N;s:9:"sidebar_4";N;s:9:"sidebar_5";N;s:9:"sidebar_6";N;s:9:"sidebar_7";N;s:9:"sidebar_8";N;s:9:"sidebar_9";N;s:10:"sidebar_10";N;s:10:"sidebar_11";N;s:10:"sidebar_12";N;s:10:"sidebar_13";N;s:10:"sidebar_14";N;s:10:"sidebar_15";N;s:10:"sidebar_16";N;s:10:"sidebar_17";N;s:10:"sidebar_18";N;s:10:"sidebar_19";N;s:10:"sidebar_20";N;}}}', 'yes');
+INSERT INTO `wp_options` VALUES (1202, 'optionsframework_coller', 'a:20:{s:9:"headcode1";s:0:"";s:9:"footcode1";s:0:"";s:11:"footertext2";s:0:"";s:10:"customcss1";s:0:"";s:14:"slider_enabled";b:0;s:11:"slidetitle1";s:0:"";s:9:"slideurl1";s:0:"";s:11:"slidetitle2";s:0:"";s:9:"slideurl2";s:0:"";s:11:"slidetitle3";s:0:"";s:9:"slideurl3";s:0:"";s:11:"slidetitle4";s:0:"";s:9:"slideurl4";s:0:"";s:11:"slidetitle5";s:0:"";s:9:"slideurl5";s:0:"";s:8:"facebook";s:0:"";s:7:"twitter";s:0:"";s:6:"google";s:0:"";s:10:"feedburner";s:0:"";s:7:"credit1";b:0;}', 'yes');
+INSERT INTO `wp_options` VALUES (1203, 'theme_mods_coller', 'a:7:{i:0;b:0;s:16:"background_color";s:6:"e5cc69";s:16:"background_image";s:0:"";s:17:"background_repeat";s:6:"repeat";s:21:"background_position_x";s:4:"left";s:21:"background_attachment";s:5:"fixed";s:16:"sidebars_widgets";a:2:{s:4:"time";i:1382111654;s:4:"data";a:5:{s:19:"wp_inactive_widgets";a:0:{}s:9:"sidebar-1";a:4:{i:0;s:8:"search-2";i:1;s:14:"recent-posts-2";i:2;s:10:"archives-2";i:3;s:12:"categories-2";}s:18:"orphaned_widgets_1";a:1:{i:0;s:6:"text-2";}s:18:"orphaned_widgets_2";a:1:{i:0;s:6:"text-3";}s:18:"orphaned_widgets_3";a:1:{i:0;s:6:"text-5";}}}}', 'yes');
+INSERT INTO `wp_options` VALUES (1261, 'new_admin_email', 'danielpett@gmail.com', 'yes');
+INSERT INTO `wp_options` VALUES (1262, 'WPLANG', '', 'yes');
+INSERT INTO `wp_options` VALUES (1263, 'openid_required_for_registration', '', 'yes');
+INSERT INTO `wp_options` VALUES (1548, 'rp_version', '1.11', 'yes');
+INSERT INTO `wp_options` VALUES (1549, 'rp_number_posts', '5', 'yes');
+INSERT INTO `wp_options` VALUES (1550, 'rp_timer_sec', '5', 'yes');
+INSERT INTO `wp_options` VALUES (1551, 'rp_thumbnails', 'false', 'yes');
+INSERT INTO `wp_options` VALUES (1552, 'rp_arrows', 'false', 'yes');
+INSERT INTO `wp_options` VALUES (1553, 'rp_title', 'true', 'yes');
+INSERT INTO `wp_options` VALUES (1554, 'rp_date_time', 'true', 'yes');
+INSERT INTO `wp_options` VALUES (1555, 'rp_date_time_str', 'F jS, Y', 'yes');
+INSERT INTO `wp_options` VALUES (1556, 'rp_author', 'false', 'yes');
+INSERT INTO `wp_options` VALUES (1557, 'rp_author_prefix', 'by', 'yes');
+INSERT INTO `wp_options` VALUES (1558, 'rp_categories', 'false', 'yes');
+INSERT INTO `wp_options` VALUES (1559, 'rp_comments', 'false', 'yes');
+INSERT INTO `wp_options` VALUES (1560, 'rp_use_this_category', '0', 'yes');
+INSERT INTO `wp_options` VALUES (1561, 'rp_left', 'http://micropasts.org/wp-content/plugins/rotating-posts/images/left.jpg', 'yes');
+INSERT INTO `wp_options` VALUES (1562, 'rp_right', 'http://micropasts.org/wp-content/plugins/rotating-posts/images/right.jpg', 'yes');
+INSERT INTO `wp_options` VALUES (1563, 'rp_pause_normal', 'http://micropasts.org/wp-content/plugins/rotating-posts/images/pause.jpg', 'yes');
+INSERT INTO `wp_options` VALUES (1564, 'rp_pause_pressed', 'http://micropasts.org/wp-content/plugins/rotating-posts/images/pause_on.jpg', 'yes');
+INSERT INTO `wp_options` VALUES (1565, 'rp_override_css', 'false', 'yes');
+INSERT INTO `wp_options` VALUES (1566, 'rp_read_more', ' Read more', 'yes');
+INSERT INTO `wp_options` VALUES (1567, 'rp_random_posts', 'false', 'yes');
+INSERT INTO `wp_options` VALUES (1568, 'rp_custom_content', 'false', 'yes');
+INSERT INTO `wp_options` VALUES (1644, 'bwp_gxs_log', 'a:2:{s:3:"log";a:26:{i:0;a:3:{s:3:"log";s:73:"Successfully generated page.xml using module page.php. ";s:4:"time";d:1382573719;s:5:"error";b:0;}i:1;a:3:{s:3:"log";s:177:"Sub-module file: taxonomy_category.php is not available in both default and custom module directory. The plugin will now try loading the parent module instead. ";s:4:"time";d:1382581572;s:5:"error";s:6:"notice";}i:2;a:3:{s:3:"log";s:90:"Successfully generated taxonomy_category.xml using module taxonomy.php. ";s:4:"time";d:1382581572;s:5:"error";b:0;}i:3;a:3:{s:3:"log";s:73:"Successfully generated site.xml using module site.php. ";s:4:"time";d:1382594412;s:5:"error";b:0;}i:4;a:3:{s:3:"log";s:89:"Successfully generated sitemapindex.xml using module sitemapindex.php. ";s:4:"time";d:1382598109;s:5:"error";b:0;}i:5;a:3:{s:3:"log";s:73:"Successfully generated site.xml using module site.php. ";s:4:"time";d:1382598109;s:5:"error";b:0;}i:6;a:3:{s:3:"log";s:73:"Successfully generated post.xml using module post.php. ";s:4:"time";d:1382598110;s:5:"error";b:0;}i:7;a:3:{s:3:"log";s:73:"Successfully generated page.xml using module page.php. ";s:4:"time";d:1382598111;s:5:"error";b:0;}i:8;a:3:{s:3:"log";s:177:"Sub-module file: taxonomy_category.php is not available in both default and custom module directory. The plugin will now try loading the parent module instead. ";s:4:"time";d:1382598111;s:5:"error";s:6:"notice";}i:9;a:3:{s:3:"log";s:90:"Successfully generated taxonomy_category.xml using module taxonomy.php. ";s:4:"time";d:1382598111;s:5:"error";b:0;}i:10;a:3:{s:3:"log";s:73:"Successfully generated post.xml using module post.php. ";s:4:"time";d:1382625272;s:5:"error";b:0;}i:11;a:3:{s:3:"log";s:89:"Successfully generated sitemapindex.xml using module sitemapindex.php. ";s:4:"time";d:1382652605;s:5:"error";b:0;}i:12;a:3:{s:3:"log";s:73:"Successfully generated page.xml using module page.php. ";s:4:"time";d:1382660900;s:5:"error";b:0;}i:13;a:3:{s:3:"log";s:73:"Successfully generated site.xml using module site.php. ";s:4:"time";d:1382676733;s:5:"error";b:0;}i:14;a:3:{s:3:"log";s:89:"Successfully generated sitemapindex.xml using module sitemapindex.php. ";s:4:"time";d:1382685902;s:5:"error";b:0;}i:15;a:3:{s:3:"log";s:73:"Successfully generated site.xml using module site.php. ";s:4:"time";d:1382685903;s:5:"error";b:0;}i:16;a:3:{s:3:"log";s:73:"Successfully generated post.xml using module post.php. ";s:4:"time";d:1382685903;s:5:"error";b:0;}i:17;a:3:{s:3:"log";s:73:"Successfully generated page.xml using module page.php. ";s:4:"time";d:1382685904;s:5:"error";b:0;}i:18;a:3:{s:3:"log";s:177:"Sub-module file: taxonomy_category.php is not available in both default and custom module directory. The plugin will now try loading the parent module instead. ";s:4:"time";d:1382685904;s:5:"error";s:6:"notice";}i:19;a:3:{s:3:"log";s:90:"Successfully generated taxonomy_category.xml using module taxonomy.php. ";s:4:"time";d:1382685904;s:5:"error";b:0;}i:20;a:3:{s:3:"log";s:73:"Successfully generated post.xml using module post.php. ";s:4:"time";d:1382718280;s:5:"error";b:0;}i:21;a:3:{s:3:"log";s:177:"Sub-module file: taxonomy_category.php is not available in both default and custom module directory. The plugin will now try loading the parent module instead. ";s:4:"time";d:1382722967;s:5:"error";s:6:"notice";}i:22;a:3:{s:3:"log";s:90:"Successfully generated taxonomy_category.xml using module taxonomy.php. ";s:4:"time";d:1382722967;s:5:"error";b:0;}i:23;a:3:{s:3:"log";s:89:"Successfully generated sitemapindex.xml using module sitemapindex.php. ";s:4:"time";d:1382737739;s:5:"error";b:0;}i:24;a:3:{s:3:"log";s:73:"Successfully generated site.xml using module site.php. ";s:4:"time";d:1382763510;s:5:"error";b:0;}i:25;a:3:{s:3:"log";s:73:"Successfully generated page.xml using module page.php. ";s:4:"time";d:1382775474;s:5:"error";b:0;}}s:7:"sitemap";a:5:{s:12:"sitemapindex";a:2:{s:4:"time";d:1382737739;s:3:"url";s:12:"sitemapindex";}s:4:"page";a:2:{s:4:"time";d:1382775474;s:3:"url";s:4:"page";}s:4:"site";a:2:{s:4:"time";d:1382763510;s:3:"url";s:4:"site";}s:17:"taxonomy_category";a:2:{s:4:"time";d:1382722967;s:3:"url";s:17:"taxonomy_category";}s:4:"post";a:2:{s:4:"time";d:1382718280;s:3:"url";s:4:"post";}}}', 'yes');
+INSERT INTO `wp_options` VALUES (1717, 'cookie_notice_options', 'a:9:{s:12:"message_text";s:153:"We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.";s:11:"accept_text";s:2:"Ok";s:8:"see_more";s:2:"no";s:12:"see_more_opt";a:4:{s:4:"text";s:9:"Read more";s:9:"link_type";s:6:"custom";s:2:"id";s:5:"empty";s:4:"link";s:12:"http://empty";}s:4:"time";s:5:"month";s:8:"position";s:6:"bottom";s:11:"hide_effect";s:4:"fade";s:9:"css_style";s:9:"bootstrap";s:6:"colors";a:2:{s:4:"text";s:4:"#fff";s:3:"bar";s:4:"#000";}}', 'no');
+INSERT INTO `wp_options` VALUES (1981, 'bwp_gxs_ping_data', 'a:2:{s:11:"data_pinged";a:3:{s:6:"google";i:3;s:4:"bing";i:3;s:3:"ask";i:0;}s:16:"data_last_pinged";a:3:{s:6:"google";i:1382368838;s:4:"bing";i:1382368838;s:3:"ask";i:0;}}', 'yes');
+INSERT INTO `wp_options` VALUES (2138, 'post_count', '1', 'yes');
+INSERT INTO `wp_options` VALUES (2661, 'openid_no_require_name', '', 'yes');
+INSERT INTO `wp_options` VALUES (2750, 'ep_exclude_pages', '236,238,242,243,245,247,253,254', 'yes');
+INSERT INTO `wp_options` VALUES (3907, 'bwp_gxs_stats', 'a:6:{s:11:"enable_ping";s:3:"yes";s:18:"enable_ping_google";s:3:"yes";s:16:"enable_ping_bing";s:3:"yes";s:15:"enable_ping_ask";s:0:"";s:10:"enable_log";s:3:"yes";s:12:"enable_debug";s:0:"";}', 'yes');
+INSERT INTO `wp_options` VALUES (4543, '_transient_timeout_feed_ac0b00fe65abe10e0c5b588f3ed8c7ca', '1382816889', 'no');
+INSERT INTO `wp_options` VALUES (4544, '_transient_feed_ac0b00fe65abe10e0c5b588f3ed8c7ca', 'a:4:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:3:"\n\n\n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:51:"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:3:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:14:"WordPress News";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:25:"http://wordpress.org/news";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:14:"WordPress News";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:13:"lastBuildDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 22:40:34 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"language";a:1:{i:0;a:5:{s:4:"data";s:5:"en-US";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:9:"generator";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/?v=3.8-alpha";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"item";a:10:{i:0;a:6:{s:4:"data";s:42:"\n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:25:"WordPress 3.7 “Basieâ€";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"http://wordpress.org/news/2013/10/basie/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:49:"http://wordpress.org/news/2013/10/basie/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 22:35:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2736";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:357:"Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones: Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:17229:"
Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones:
\n
\n
Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to apply maintenance and security updates. Most sites are now able to automatically apply these updates in the background. The update process also has been made even more reliable and secure, with dozens of new checks and safeguards.
\n
Stronger password recommendations: Your password is your site’s first line of defense. It’s best to create passwords that are complex, long, and unique. To that end, our password meter has been updated in WordPress 3.7 to recognize common mistakes that can weaken your password: dates, names, keyboard patterns (123456789), and even pop culture references.
\n
Better global support: Localized versions of WordPress will receive faster and more complete translations. WordPress 3.7 adds support for automatically installing the right language files and keeping them up to date, a boon for the many millions who use WordPress in a language other than English.
\n
\n
For developers there are lots of options around how to control the new updates feature, including allowing it to handle major upgrades as well as minor ones, more sophisticated date query support, and multisite improvements. As always, if you’re hungry for more dive into the Codex or browse the over 400 closed tickets on Trac.
\n
A New Wave
\n
This release was led by Andrew Nacin, backed up by Dion Hulse and Jon Cave. This is our first release using the new plugin-first development process, with a much shorter timeframe than in the past. (3.6 was released in August.) The 3.8 release, due in December, will continue this plugin-led development cycle that gives much more autonomy to plugin leads and allows us to decouple feature development from a release. You can follow this grand experiment, and what we’re learning from it, on the make/core blog. There are 211 contributors with props in this release:
Enjoy what may be one of your last few manual updates. See you soon for version 3.8!
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:45:"http://wordpress.org/news/2013/10/basie/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:1;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:33:"WordPress 3.7 Release Candidate 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:68:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:77:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 00:05:30 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2729";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:417:"The second release candidate of WordPress 3.7 is now available for testing! Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1183:"
The second release candidate of WordPress 3.7 is now available for testing!
\n
Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta area in the support forums if you think you’ve found a bug, and if any known issues are raised, you’ll be able to find them here.
\n
Developers, please test your plugins and themes against WordPress 3.7. If there is a compatibility issue, let us know as soon as possible so we can deal with it before the final release.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:73:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:2;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:18:"Upcoming WordCamps";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 19:25:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:9:"Community";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"WordCamp";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2723";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:368:"WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Jen Mylo";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:3584:"
WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s over. If there’s one near you, check it out! In addition to getting to know your local WordPress community, most WordCamps attract some traveling visitors a well, giving you the chance to meet contributors to the WordPress open source project and get involved yourself.
\n
Here are the WordCamps on the schedule for the rest of this year.
No WordCamps on this list in your area? Not to worry! There are thriving WordPress meetups all over the world where you can meet like-minded people, and we maintain a library of WordCamp videos at WordPress.tv.
\n
Get Involved
\n
\n
If you’re interested in organizing a WordCamp in your area, check out our WordCamp planning site.
\n
If you’re interested in starting a WordPress meetup in your area, let us know and we can set up a group on meetup.com for you.
\n
And speaking of WordCamp videos, we’ve recently enabled volunteer-generated subtitles/closed captioning of the videos on WordPress.tv to make them more accessible. Interested in helping? Check out the WordPress.tv subtitling instructions.
\n
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:3;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:31:"WordPress 3.7 Release Candidate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:66:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:75:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 19:52:14 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2718";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:331:"The first release candidate for WordPress 3.7 is now available! In RC 1, we’ve made some adjustments to the update process to make it more reliable than ever. We hope to ship WordPress 3.7 next week, but we need your help to get there. If you haven’t tested 3.7 yet, there’s no time like the present. (Please, […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2237:"
The first release candidate for WordPress 3.7 is now available!
\n
In RC 1, we’ve made some adjustments to the update process to make it more reliable than ever. We hope to ship WordPress 3.7 next week, but we need your help to get there. If you haven’t tested 3.7 yet, there’s no time like the present. (Please, not on a production site, unless you’re adventurous.)
\n
WordPress 3.7 introduces automatic background updates for security and minor releases (like updating from 3.7 to 3.7.1). These are really easy to test  — RC 1 will update every 12 hours or so to the latest development version, and then email you the results. (You may get two emails: one for debugging, and one all users of 3.7 will receive.) If something went wrong, you can report it.
To test WordPress 3.7 RC1, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€). Or you can download the release candidate here (zip). If you’d like to learn more about what’s new in WordPress 3.7, visit the awesome About screen in your dashboard ( → About in the toolbar). There, you can also see if your install is eligible for background updates. WordPress won’t automatically update, for example, if you’re using version control like Subversion or Git.
\n
Developers, please test your plugins and themes against WordPress 3.7, so that if there is a compatibility issue, we can figure it out before the final release. Make sure you post any issues to the support forums.
\n
WordPress three seven \nA self-updating engine \nLies beneath the hood
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:71:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:4;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"WordPress 3.7 Beta 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 10 Oct 2013 21:28:06 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2706";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:357:"WordPress 3.7 Beta 2 is now available for download and testing. This is software still in development, so we don’t recommend that you run it on a production site. This has been a quiet beta period. We’re hoping to get some more testers for automatic background updates, which will occur for security and minor releases (like updating […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2108:"
WordPress 3.7 Beta 2 is now available for download and testing. This is software still in development, so we don’t recommend that you run it on a production site.
\n
This has been a quiet beta period. We’re hoping to get some more testers for automatic background updates, which will occur for security and minor releases (like updating from 3.7 to 3.7.1). It’s really easy to test this, as Beta 2 will update each day to the latest development version and then email you the results. If something goes wrong, you can report it — it’s that simple. To get the beta, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightlies”). Or you can download the beta here (zip). Check out Dashboard → Updates to see if your install is eligible for background updates. WordPress won’t update if, for example, you’re using version control like SVN or Git.
\n
For more of what’s new in version 3.7, check out the Beta 1 blog post. In Beta 2, we further increased the stability of background updates and also added about 50 bug fixes, including a fix for Internet Explorer 11 in the visual editor.
Beta 2 released \nDotting i’s and crossing t’s \nExpect RC next
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:5;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"WordPress 3.7 Beta 1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 28 Sep 2013 07:25:44 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2688";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:339:"I’m pleased to announce the availability of WordPress 3.7 Beta 1. For WordPress 3.7 we decided to shorten the development cycle and focus on a few key improvements. We plan to release the final product in October, and then follow it in December with a jam-packed WordPress 3.8 release, which is already in development. Some […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:3684:"
I’m pleased to announce the availability of WordPress 3.7 Beta 1.
\n
For WordPress 3.7 we decided to shorten the development cycle and focus on a few key improvements. We plan to release the final product in October, and then follow it in December with a jam-packed WordPress 3.8 release, which is already in development. Some of the best stuff in WordPress 3.7 is subtle — by design! So let’s walk through what we’d love for you to test, just in time for the weekend.
\n
Automatic, background updates. 3.7 Beta 1 will keep itself updated. That’s right — you’ll be updated each night to the newest development build, and eventually to Beta 2. We’re working to provide as many installs as possible with fast updates to security releases of WordPress — and you can help us test by just installing Beta 1 on your server and seeing how it works!
\n
When you go to Dashboard → Updates, you’ll see a note letting you know whether your install is working for automatic updates. There are a few situations where WordPress can’t reliably and securely update itself. But if it can, you’ll get an email (sent to the ‘Admin Email’ on the General Settings page) after each update letting you know what worked and what didn’t. If it worked, great! If something failed, the email will suggest you make a post in the support forums or create a bug report.
\n
Here are some other things you should test out:
\n
\n
If you’re running WordPress in another language, we’ll automatically download any available translations for official WordPress importers and the default themes. (More to come here.)
\n
Our password meter got a whole lot better, thanks to Dropbox’s zxcvbn library. Again, subtle but effective. Strong passwords are very important!
\n
Search results are now ordered by relevance, rather than just by date. When your keywords match post titles and not just content, they’ll be pushed to the top.
\n
Developers should check out the new advanced date queries in WP_Query. (#18694)
\n
\n
This software is still in development, so we don’t recommend you run it on a production site. I’d suggest setting up a test site just to play with the new version. To test WordPress 3.7, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightlies”). Or you can download the beta here (zip).
WordPress three seven \nSaves your weary hand a click \nUpdates while you sleep
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:6;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:48:"WordPress 3.6.1 Maintenance and Security Release";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:50:"http://wordpress.org/news/2013/09/wordpress-3-6-1/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:59:"http://wordpress.org/news/2013/09/wordpress-3-6-1/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 11 Sep 2013 20:48:23 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Security";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2675";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:353:"After nearly 7 million downloads of WordPress 3.6, we are pleased to announce the availability of version 3.6.1. This maintenance release fixes 13 bugs in version 3.6, which was a very smooth release. WordPress 3.6.1 is also a security release for all previous WordPress versions and we strongly encourage you to update your sites immediately. […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2033:"
After nearly 7 million downloads of WordPress 3.6, we are pleased to announce the availability of version 3.6.1. This maintenance release fixes 13 bugs in version 3.6, which was a very smooth release.
\n
WordPress 3.6.1 is also a security release for all previous WordPress versions and we strongly encourage you to update your sites immediately. It addresses three issues fixed by the WordPress security team:
\n
\n
Block unsafe PHP unserialization that could occur in limited situations and setups, which can lead to remote code execution. Reported by Tom Van Goethem.
\n
Prevent a user with an Author role, using a specially crafted request, from being able to create a post “written by” another user. Reported by Anakorn Kyavatanakij.
\n
Fix insufficient input validation that could result in redirecting or leading a user to another website. Reported by Dave Cummo, a Northrup Grumman subcontractor for the U.S. Centers for Disease Control and Prevention.
\n
\n
Additionally, we’ve adjusted security restrictions around file uploads to mitigate the potential for cross-site scripting.
Download WordPress 3.6.1 or update now from the Dashboard → Updates menu in your site’s admin area.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/09/wordpress-3-6-1/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:42:"\n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:25:"WordPress 3.6 “Oscarâ€";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"http://wordpress.org/news/2013/08/oscar/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:49:"http://wordpress.org/news/2013/08/oscar/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 01 Aug 2013 21:43:22 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2661";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:368:"The latest and greatest WordPress, version 3.6, is now live to the world and includes a beautiful new blog-centric theme, bullet-proof autosave and post locking, a revamped revision browser, native support for audio and video embeds, and improved integrations with Spotify, Rdio, and SoundCloud. Here’s a video that shows off some of the features using […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:18626:"
The latest and greatest WordPress, version 3.6, is now live to the world and includes a beautiful new blog-centric theme, bullet-proof autosave and post locking, a revamped revision browser, native support for audio and video embeds, and improved integrations with Spotify, Rdio, and SoundCloud. Here’s a video that shows off some of the features using our cast of professional actors:
\n\n
We’re calling this release “Oscar” in honor of the great jazz pianist Oscar Peterson. Here’s a bit more about some of the new features, which you can also find on the about page in your dashboard after you upgrade.
\n
User Features
\n\n
\n
The new Twenty Thirteen theme inspired by modern art puts focus on your content with a colorful, single-column design made for media-rich blogging.
\n
Revamped Revisions save every change and the new interface allows you to scroll easily through changes to see line-by-line who changed what and when.
\n
Post Locking and Augmented Autosave will especially be a boon to sites where more than a single author is working on a post. Each author now has their own autosave stream, which stores things locally as well as on the server (so much harder to lose something) and there’s an interface for taking over editing of a post, as demonstrated beautifully by our bearded buddies in the video above.
\n
Built-in HTML5 media player for native audio and video embeds with no reliance on external services.
\n
The Menu Editor is now much easier to understand and use.
\n
\n
Developer features
\n
\n
A new audio/video API gives you access to metadata like ID3 tags.
\n
You can now choose HTML5 markup for things like comment and search forms, and comment lists.
\n
Better filters for how revisions work, so you can store a different amount of history for different post types.
This release was led by Mark Jaquith and Aaron Campbell, and included contributions from the following fine folks. Pull up some Oscar Peterson on your music service of choice, or vinyl if you have it, and check out some of their profiles:
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:45:"http://wordpress.org/news/2013/08/oscar/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:33:"WordPress 3.6 Release Candidate 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:68:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:77:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 24 Jul 2013 07:25:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:7:"Testing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2649";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:341:"The second release candidate for WordPress 3.6 is now available for download and testing. We’re down to only a few remaining issues, and the final release should be available in a matter of days. In RC2, we’ve tightened up some aspects of revisions, autosave, and the media player, and fixed some bugs that were spotted […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Mark Jaquith";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1325:"
The second release candidate for WordPress 3.6 is now available for download and testing.
\n
We’re down to only a few remaining issues, and the final release should be available in a matter of days. In RC2, we’ve tightened up some aspects of revisions, autosave, and the media player, and fixed some bugs that were spotted in RC1. Please test this release candidate as much as you can, so we can deliver a smooth final release!
Developers, please continue to test your plugins and themes, so that if there is a compatibility issue, we can figure it out before the final release. You can find our list of known issues here.
Revisions so smooth \nWe autosave your changes \nData loss begone!
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:73:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate-2/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:31:"WordPress 3.6 Release Candidate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:66:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:75:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 13 Jul 2013 03:23:17 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:7:"Testing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2639";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:344:"The first release candidate for WordPress 3.6 is now available. We hope to ship WordPress 3.6 in a couple weeks. But to do that, we really need your help! If you haven’t tested 3.6 yet, there’s no time like the present. (But please: not on a live production site, unless you’re feeling especially adventurous.) Think […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Mark Jaquith";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1504:"
The first release candidate for WordPress 3.6 is now available.
\n
We hope to ship WordPress 3.6 in a couple weeks. But to do that, we really need your help! If you haven’t tested 3.6 yet, there’s no time like the present. (But please: not on a live production site, unless you’re feeling especially adventurous.)
\n
Think you’ve found a bug? Please post to the Alpha/Beta area in the support forums. If any known issues come up, you’ll be able to find them here. Developers, please test your plugins and themes, so that if there is a compatibility issue, we can sort it out before the final release.
As you may have heard, we backed the Post Format UI feature out of the release. On the other hand, our slick new revisions browser had some extra time to develop. You should see it with 200+ revisions loaded — scrubbing back and forth at lightning speed is a thing of beauty.
\n
Delayed, but still loved \nThe release will be out soon \nTest it, por favor
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:71:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:4:"href";s:31:"http://wordpress.org/news/feed/";s:3:"rel";s:4:"self";s:4:"type";s:19:"application/rss+xml";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:44:"http://purl.org/rss/1.0/modules/syndication/";a:2:{s:12:"updatePeriod";a:1:{i:0;a:5:{s:4:"data";s:6:"hourly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:15:"updateFrequency";a:1:{i:0;a:5:{s:4:"data";s:1:"1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:8:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Sat, 26 Oct 2013 07:48:34 GMT";s:12:"content-type";s:23:"text/xml; charset=UTF-8";s:10:"connection";s:5:"close";s:4:"vary";s:15:"Accept-Encoding";s:10:"x-pingback";s:36:"http://wordpress.org/news/xmlrpc.php";s:13:"last-modified";s:29:"Thu, 24 Oct 2013 22:40:34 GMT";s:4:"x-nc";s:11:"HIT lax 249";}s:5:"build";s:14:"20130708171016";}', 'no');
+INSERT INTO `wp_options` VALUES (4545, '_transient_timeout_feed_mod_ac0b00fe65abe10e0c5b588f3ed8c7ca', '1382816889', 'no');
+INSERT INTO `wp_options` VALUES (4546, '_transient_feed_mod_ac0b00fe65abe10e0c5b588f3ed8c7ca', '1382773689', 'no');
+INSERT INTO `wp_options` VALUES (4547, '_transient_timeout_dash_4077549d03da2e451c8b5f002294ff51', '1382816889', 'no');
+INSERT INTO `wp_options` VALUES (4548, '_transient_dash_4077549d03da2e451c8b5f002294ff51', '
Version 3.7 of WordPress, named “Basie†in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones: Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to […]
The second release candidate of WordPress 3.7 is now available for testing! Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please […]
Enables background updates for major releases. No settings, just activate and enjoy.
\n', 'no');
+INSERT INTO `wp_options` VALUES (4563, '_transient_timeout_feed_867bd5c64f85878d03a060509cd2f92c', '1382816891', 'no');
+INSERT INTO `wp_options` VALUES (4564, '_transient_feed_867bd5c64f85878d03a060509cd2f92c', 'a:4:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:3:"\n\n\n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:61:"\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:16:"WordPress Planet";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:28:"http://planet.wordpress.org/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"language";a:1:{i:0;a:5:{s:4:"data";s:2:"en";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:47:"WordPress Planet - http://planet.wordpress.org/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"item";a:50:{i:0;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WordPress.tv: Coen Jacobs and Scott Basgaard: WooCommerce 2.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24109";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:78:"http://wordpress.tv/2013/10/25/coen-jacobs-and-scott-basgaard-woocommerce-2-0/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:678:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 26 Oct 2013 04:16:29 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:1;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WPTavern: WPWeekly Episode 125 – Alex Denning And The Future Of WPShout";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10488";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://feedproxy.google.com/~r/WordpressTavern/~3/BrQjYeCM2K0/wpweekly-episode-125-alex-denning-and-the-future-of-wpshout";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3402:"
On this weeks edition of the show, Alex Denning was my special guest along with the new owners of WPShout.com, Fred and David of PressUp Inc. In the show, Alex and I talk about the last four years of publishing content on WPShout.com, what types of opportunities it’s opened up for him, and what it took to put together his annual webhosting review posts. Later in the show, I was joined by David and Fred. We talked about their plans for WPShout.com, their WordPress background and if they have any plans to monetize the site. Since Alex is now going to be focusing on school and has sold his website, I want to take this opportunity to thank him personally for spending his time making WPShout a great resource in the WordPress community.
Next Episode: Friday, November 1st 3 P.M. Eastern – Our special guest for next week’s episode will be Cory Miller of iThemes.com to talk about his experience of leading one of the most successful commercial WordPress theme businesses on the web.
It’s easy to get distracted while writing posts. You’re in a browser and you probably have a few other tabs open with notifications beeping at you from every direction. On top of that, the WordPress post editor has a ton of meta boxes competing for your attention. With all of this going on, how can you focus on crafting beautiful words?
\n
The Distraction Free Writing Mode (DFWM) feature was introduced in WordPress 3.2, giving users the opportunity to find a zen place for writing while staying within the dashboard. It’s launched via the “fullscreen” button in the editor, whisking you away to a screen with an intentionally-limited button selection. These buttons fade away in the top menu as you begin composing. Here’s the default DFWM screen:
\n
WordPress Distraction Free Writing Mode
\n
Enhance Distraction Free Writing Mode with the Visual Editor
\n
Many users love the minimalism of this screen and will write the text of their post but format it later within the regular post editor. Just Writing is a new plugin that aims to keep you in the DFWM for the entire writing and formatting process.
\n
Essentially, the plugin enhances DFWM by adding the visual editor to the top with the other buttons. It also disappears as per the normal behavior. Here’s a look at the enhanced version with all the extra buttons turned on:
\n
\n
With the plugin installed you gain the “Undo” and “Redo” functions, text align, underline. proofreading and everything that you would expect with the visual editor. Beyond that, Just Writing also performs a few more subtle functions:
\n
\n
Adds a Preview button to the right of the Save button
\n
Moves the exit link to the right of the new Preview button as a real button
\n
Re-orders the button list to make more sense
\n
Per-user preferences for enabling Just Writing
\n
Per-user preferences for which buttons to display
\n
\n
Even if you’re not a fan of the visual editor buttons, the extra Preview button is a definite improvement over the DFWM in its default form. Installing the plugin also doesn’t universally apply the settings to all users. Each user is able to choose the buttons he wants to display to create his own zen writing place.
\n
Customize Your Distraction Free Writing Mode Experience
\n
Enhanced? Isn’t the point of the distraction free writing mode to get rid of everything and just write? Sure there are some of you out there who hate the visual editor with a passion, but there are also many who currently depend upon it.
\n
Just Writing isn’t an all-or-nothing plugin. It has an options panel where you can add or remove support for any of the visual editor buttons:
\n
Just Writing plugin options
\n
These options allow you to select the buttons that help you to stay in the flow while composing posts.
\n
Just Writing is available for free in the WordPress plugin repository. If you feel like the Distraction Free Writing Mode is missing a few functions, give this plugin a spin and see if it enhances your writing experience.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 25 Oct 2013 20:21:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:4;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:67:"WPTavern: How to Configure Automatic Core Updates for WordPress 3.7";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10437";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:119:"http://feedproxy.google.com/~r/WordpressTavern/~3/Bl1O4Pw_P3c/how-to-configure-automatic-core-updates-for-wordpress-3-7";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4272:"
So, how does this work?
Today following the release of WordPress 3.7 many users are wondering where the settings page is to configure these options. The answer is that there is no settings page in the WordPress admin. If you upgrade to WordPress 3.7, the default behavior is that you’ll be automatically upgraded for security and minor releases. \n
The fact that it’s security and minor releases only is a very important distinction here. These generally do not break anyone’s website, plugin or themes. If you’re using a plugin that gets broken due to a security release, then that raises a red flag and a few questions about how that plugin is interacting with the WordPress core.
\n
If you want to make changes to WordPress default behavior of keeping your site current with security/minor releases, you will need to edit your wp-config.php file.
\n
I asked Andrew Nacin if there is a plan to expose the core update configuration options to the UI in the future. He replied that there is “no good reason for an opt-out UI now, but as we grow more confident, I imagine an opt-in UI for major versions could be next.” So maybe this is around the corner, but for now, read on to learn how to configure your updates.
\n
3 Basic Options for Core Updates in WordPress 3.7
\n
Let’s simplify things here. You basically have three options for WordPress core updates:
\n
1. Update the core for minor versions (on by default):
\n
If you’re running WordPress 3.7, there’s nothing you need to do to turn this on. You’ll be automatically updated for security and minor releases. Here’s what it would look like in wp-config.php:
\n
define( \'WP_AUTO_UPDATE_CORE\', \'minor\' );
\n
2. Disable all core updates:
\n
If you’re uncomfortable with WordPress keeping your site current with minor releases and security updates, here’s how you turn it off. Add this to your wp-config.php file:
\n
define( \'WP_AUTO_UPDATE_CORE\', false );
\n
However, I would encourage you to read this definitive guide from Nacin before turning off core updates completely.
\n
3. Get all updates, including development, major and minor releases:
\n
This is the cowboy option that is probably more likely something you’d want to enable on a personal blog. If you turn this on in wp-config.php, you’ll be automatically updated for every release that WordPress puts out:
\n
define( \'WP_AUTO_UPDATE_CORE\', true );
\n
You can also apply all of the above via new filters added in WordPress 3.7, as outlined in the codex article on Configuring Automatic Background Updates. Filters are also available for plugin, theme and translation updates should you want to add those in the mix, too.
\n
If you’re scratching your head and trying to get your brain around all of these options, wondering what to do, then just leave the default options in place and don’t mess with it. WordPress strongly discourages disabling the automatic security updates. These updates have been heavily tested and are quite safe. Getting hacked because you didn’t want to take security updates would be really lame. The best option is to leave security updates in place.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 25 Oct 2013 16:37:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:5;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:62:"WPTavern: WordPress 3.7 Released: WordPress Now Updates Itself";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10414";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:113:"http://feedproxy.google.com/~r/WordpressTavern/~3/l-3I_2jNRJ4/wordpress-3-7-released-wordpress-now-updates-itself";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4510:"
WordPress 3.7 has been released and the big news is that WordPress now has the ability to update itself. This begins a new era of automatic background updates for security and minor releases. Web hosts around the world have been eagerly awaiting this release and are cheering its arrival. The upgrade process has been greatly improved and boy is it ever solid:
\n
We ended the WordPress 3.7 beta cycle with 112,434 automatic background updates attempted and not a single critical failure.
Not a single critical failure. Try blaming Nacin for that, folks.
\n
WordPress 3.7 is dubbed Basie, after Count Basie, an American jazz pianist with an unparalleled talent for improvisation. He learned to improvise while playing along to silent films for a local movie theater. Before he was famous, Basie sharpened his improv skills by playing jazz piano at parties and resorts. He went on to create his own jazz orchestra and mentor many other musicians along the way.
\n
Count Basie
It seems fitting that this release honors Basie. The web is full of hackers who seek to exploit any vulnerability they can find in WordPress. Users have to be quick to improvise and secure our sites as soon as minor releases are shipped out. Automatic background updates give millions of users the ability to stay current with each security update. The beautiful thing is that it’s totally effortless on the part of the user.\n
On the surface you won’t see too many flashy UI improvements, but under the hood you’ll find a better engine. When you search WordPress you’ll see better and more relevant results. Developers will be happy to find improved support for multisite, advanced date queries and a ton of new functions to play with. You can review every last detail on the dedicated 3.7 release page.
\n
wp-admin/about.php
WordPress 3.7 has a beautiful about.php page that you can only see if you upgrade. Hint, hint. It includes a live demo of the new password strength meter that will help you to create stronger passwords.\n
This release also includes better global support for translations, meaning that it will automatically install language files and silently keep them up to date. There’s a trend here: WordPress is doing a lot more for you in the background so that you can focus on creating content. This sets the bar pretty high for what users can expect from their publishing software in the future.
\n
Now that WordPress can update itself, I am once again reminded that this software is a living, breathing thing. Andrew Nacin, Dion Hulse and Jon Cave had the help of 211 contributors in shipping 3.7. Hats off to these folks – they’ve worked hard and done well.
\n
Time to celebrate with a few tunes from Count Basie and his jazz orchestra to kick off your upgrades. By the way, if you’re configuring automatic updates for everything, this is the last time you’ll ever have to update WordPress manually.
Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones:
\n
\n
Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to apply maintenance and security updates. Most sites are now able to automatically apply these updates in the background. The update process also has been made even more reliable and secure, with dozens of new checks and safeguards.
\n
Stronger password recommendations: Your password is your site’s first line of defense. It’s best to create passwords that are complex, long, and unique. To that end, our password meter has been updated in WordPress 3.7 to recognize common mistakes that can weaken your password: dates, names, keyboard patterns (123456789), and even pop culture references.
\n
Better global support: Localized versions of WordPress will receive faster and more complete translations. WordPress 3.7 adds support for automatically installing the right language files and keeping them up to date, a boon for the many millions who use WordPress in a language other than English.
\n
\n
For developers there are lots of options around how to control the new updates feature, including allowing it to handle major upgrades as well as minor ones, more sophisticated date query support, and multisite improvements. As always, if you’re hungry for more dive into the Codex or browse the over 400 closed tickets on Trac.
\n
A New Wave
\n
This release was led by Andrew Nacin, backed up by Dion Hulse and Jon Cave. This is our first release using the new plugin-first development process, with a much shorter timeframe than in the past. (3.6 was released in August.) The 3.8 release, due in December, will continue this plugin-led development cycle that gives much more autonomy to plugin leads and allows us to decouple feature development from a release. You can follow this grand experiment, and what we’re learning from it, on the make/core blog. There are 211 contributors with props in this release:
Enjoy what may be one of your last few manual updates. See you soon for version 3.8!
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 22:35:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:83:"WPTavern: Disrupting The WordPress Commercial Theme Market – A 3themes Experiment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10398";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://feedproxy.google.com/~r/WordpressTavern/~3/w5xTWijIX1o/disrupting-the-commercial-theme-market-a-3themes-experiment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3501:"
The questions are simple but the answers are not. Can a theme that is built for developers using best practices be successful in the commercial space? Can a commercial theme add value without adding functionality and bloat? Those are the questions that a trio of WordPress developers are going to try to answer with their 3them.es experiment.
\n
Michelle Schulp of Marktimemedia has published her experience at Pressnomics 2013 and the reasoning behind the new experiment. While at the event, she attended the Commercialization in the WordPress ecosystem panel session featuring business owners Pippin Williamson, Carl Hancock, Cory Miller, and Helen Souness. In that discussion, the following question was asked. How do you build a commercial digital product, especially one built using the GPL, that adds value in a way that is distinguishable from its competitors? According to Michelle, the panel was quick to dismiss commercial themes as being easily commoditized.
\n
After talking with a number of people at the conference, Michelle decided to partner with Kiko Doran, and Josh Broton to start the 3themes experiment.
\n
3themes is a unique collaboration because we will also be documenting it every step of the way: recording our weekly meetings on Google Hangout in the form of a podcast, blogging about our process on the website, hosting code on GitHub, voicing our thoughts on Twitter, etc. We want this not only to be a case study in the commercial theme marketplace, but in working as a small distributed team and problem solving just as we would for a client. The hope is to create some dialogue in the WordPress community, as well as just have some fun and see what great things we can build together.
\n
If you’re interested to see where this goes, check out the live Google hangout at 8:30 PM CST on Tuesday nights as they begin the process of experimentation by first building their website and brand.
\n
This is going to be an excellent experiment and I bet many are curious as to what the end result will be. If you remember, Justin Tadlock performed a similar experiment via ThemeForest with mildly successful results.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 21:21:11 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:105:"WordPress.tv: Brian Krogsgard and Pippin Williamson: WordPress Plugins, Code And The Ecosystem In General";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24111";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://wordpress.tv/2013/10/24/brian-krogsgard-and-pippin-williamson-wordpress-plugins-code-and-the-ecosystem-in-general/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:759:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 20:37:15 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:78:"WPTavern: Add Your Meetup Group to the Central WordPress Account on Meetup.com";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10313";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:130:"http://feedproxy.google.com/~r/WordpressTavern/~3/o_k5yMGxjF4/add-your-meetup-group-to-the-central-wordpress-account-on-meetup-com";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2127:"
If you run a local WordPress meetup, you’re invited to move it under the central WordPress account on meetup.com. Jen Mylo created a form where meetup coordinators can submit their meetup to be included. The awesome benefit is that WordPress will cover the meetup.com dues for your listing.
\n
Jen posted a number of simple guidelines that were created by active meetup group volunteers. Your group will have to fulfill these before submitting to the central account. I won’t list them all here, but this is a summary: Essentially, you can’t use your local meetup to pimp out your business or yourself. Leave Mr. Salesman at home and join a meetup to connect with other WordPress fans. Meetups are for the benefit of the community and polite and respectful behavior is expected. If you organize a meetup that qualifies, use the form to get in touch with Jen Mylo.
\n
A some point in the future, meetup group listings will most likely switch over to using SupportPress, as they do for WordCamps. For now, they’ll be consolidating all the meetups on meetup.com. Please note that the meetup interest form is not just for new meetup groups but is also available for existing WordPress meetups that want to transfer the group over to the central account.
\n
It’s very cool that WordPress is supporting local meetups by covering their meetup.com dues. Help spread the word to get this information out there to local meetup organizers that you know.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 19:33:57 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:10;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:69:"WPTavern: Jarvis: A Free Quicksearch Tool for the WordPress Dashboard";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10359";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:120:"http://feedproxy.google.com/~r/WordpressTavern/~3/ntFV7bakzqY/jarvis-a-free-quicksearch-tool-for-the-wordpress-dashboard";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3233:"
If you’ve ever used a WordPress site with thousands of posts and/or hundreds of pages, you might have found it a challenge to quickly navigate to the content you’re looking for. Jarvis is a new dashboard quicksearch plugin that addresses this very problem.
\n
\n
Created by the folks at The Web Development Group, the Jarvis plugin lets you easily search anything that you’re looking for inside the WordPress admin area, including plugins, themes, content, settings pages and everything else.
\n
Jarvis is available on WordPress.org but it also has its own homepage where you can find a demo that shows how it works:
\n
\n
While different areas of the WordPress dashboard do include a search option, i.e. installed plugins or post content, there is no centralized search form to search everything. Ever install a plugin and then can’t, for the life of you, find its settings page? The Jarvis search helps you to instantly locate it. I can see how this could be very useful for a new user. For example, one might not know that the import feature is located under Tools. Using Jarvis he can quickly search and navigate to the import screen.
\n
There’s another similar tool out there called WP Butler, which also launches from the admin bar. I don’t know if Jarvis grabbed some inspiration from its code or not but the tools seem somewhat similar in that they both make it easier to get to pages in the WordPress admin.
\n
Beyond just helping you find things, the Jarvis plugin allows you to quickly zoom through the WordPress dashboard. For many, typing in a search box is second nature and much quicker than mousing around to the correct menu. Jarvis search appears to be lightning fast. This is one plugin that seems to be universally beneficial to both new and experienced WordPress users.
\n
The folks at The Web Development Group created Jarvis to fill a need they saw in the WordPress admin area. This tool is the first of many that they plan to release. You can download it for free at the WP Jarvis homepage or via the Add New plugins page within the WordPress admin.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 17:35:19 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:11;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:77:"WordPress.tv: Daniel Espinoza: Creating and Selling Premium WordPress Plugins";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23010";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:94:"http://wordpress.tv/2013/10/24/daniel-espinoza-creating-and-selling-premium-wordpress-plugins/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:710:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 14:33:43 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:12;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:68:"WPTavern: Pulse: An Example WordPress Plugin Using the Heartbeat API";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10304";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:119:"http://feedproxy.google.com/~r/WordpressTavern/~3/HuYeePJabQ4/pulse-an-example-wordpress-plugin-using-the-heartbeat-api";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3401:"
I’ve long been a fan of WordPress developer Jeffrey Pearce, better known online as Jeffikus. He’s created several educational resources for WordPress over the past few years. Today he released Pulse on github. Pulse is an open source plugin that will help developers get started with Heartbeat API development.
The Heartbeat API was a new feature as of WordPress 3.6. It currently powers the autosave, post locking and log-in expiration warning that users receive while writing posts. This API works in the background to manage communication between a user’s browser and the server, enabling the creation of WordPress-powered asynchronous apps.
\n
Jeffikus’ Pulse plugin example demonstrates how to do two simple things:
\n
\n
Outputs console data for a logged in user – the object will state that the user is logged in: \n
\n
Outputs console data for a non logged in user – the object will state that the user is not logged in: \n\n
\n
\n
This plugin doesn’t actually perform any specific function, except to show you how you can interact with the WordPress Heartbeat API. It’s a learning tool to help developers get started building their own plugins.
\n
At the bottom of the Pulse plugin readme file on github Jeffikus includes a list of all the tutorials on the Heartbeat API that helped him to learn about it in the first place. If it wasn’t for other developers writing about what they are learning, he probably wouldn’t have had the inspiration to create this handy starter plugin. Hopefully, developers can use it to build something cool and help contribute back to the Heartbeat API documentation.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 22:04:46 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:13;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WPTavern: Your Members Plugin Closes Its Doors, Releases Assets Under GPL";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10307";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:124:"http://feedproxy.google.com/~r/WordpressTavern/~3/YCmv-tDNTiU/your-members-plugin-closes-its-doors-releases-assets-under-gpl";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3069:"
The membership plugin Your Members has announced that they are ceasing operations. Your Members, which has been around since 2008, was one of the early successful commercial plugins in the membership space. The tale of the plugin’s demise is an interesting one because it has more to do with development than anything else.
\n
We started work on YM13 early this year and it became clear the new version wasn’t going to work with our current codebase. Indeed it reached the stage where even little changes are causing massive issues. So in August it was decided that we needed to make YM13 the last release on the current codebase and start on YMv2. I was rereading the blog posts that are sitting in drafts explaining where we were going and why, we never published them.
\n
It became clear it was just not financially feasible to build YMv2 we estimated it was 6 to 9 months work to do what we wanted to do properly and to do it we need to do it properly. We also believe we can’t continue to support and update the existing codebase.
\n
While the developers of Your Members received offers to be purchased, they declined them as they didn’t feel the buyer would provide the community with genuine support and were after their email list instead. Thus, it was decided that Your Members be withdrawn from the market and would no longer be for sale.
\n
One of the unique aspects of Your Members is that it contained a sunset clause. Now that the plugin has been withdrawn from the market, that clause has been invoked meaning everything in the Your Members download, including assets are available under the GPL license. Prior to closing, Your Members operated under a split license with the PHP licensed under the GPL and all other files under a different license. The plugin as well as the documentation will now live on Github.
\n
Is This The Way To Close a Business?
\n
It’s disappointing to see any business fold but I have to hand it to the folks behind Your Members. They are making everything open source and laying the ground work for anyone else who wants to try to pick up where they left off. How do you feel about the way they closed up shop?
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 21:00:22 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:14;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:80:"WPTavern: WordPress Host WP Engine Will Not Support Automatic Background Updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10293";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:132:"http://feedproxy.google.com/~r/WordpressTavern/~3/1vIBBXFTK7M/wordpress-host-wp-engine-will-not-support-automatic-background-updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:5152:"
Managed updates have always been one of the main selling points for WP Engine’s WordPress hosting packages. Customers have the luxury of never having to update their own sites because WP Engine keeps them on the cutting edge:
\n
We keep your site secure without you having to think about it. Whenever WordPress issues a security update, we test it, and then proactively apply it to your site.
\n
However, the company announced today that it will not be offering support for WordPress’ new ability to update itself.
\n
WP Engine will not be supporting the background updates for WordPress. We will continue managing the updates for your installs, testing each release on our infrastructure, and fully managing the releases of the minor updates. For example, when there is a security update to WordPress, as soon as the patch is released, we’ll update all customer sites to ensure we continue to keep your sites safe and sound.
\n
\n
I asked WP Engine to clarify this statement. Does this mean that customers cannot enable automatic updates via the WP_AUTO_UPDATE_CORE define in wp-config.php? It seems that is the case. Their official policy is that automatic background updates will be disabled and customers will not be able to turn them on:
\n
The function will be disabled because when we update we also automatically create site backups for you.
\n
WP Engine will still continue to update customer sites as they always have. There’s no change here, but it is always interesting to note when a company restricts access to something that will soon be native to WordPress.
\n
Playing it Safe
\n
One huge advantage of enabling automatic background updates for WordPress is that a site can get those security improvements the very same day they are released with no waiting time. The same applies with major releases, plugins and themes, if one wants to live adventurously. However, if you host with WP Engine, you’ll have to settle with living on the safe side.
\n
WP Engine customers will either need to manually update their sites through the dashboard or wait for WP Engine to initiate those updates. The company tries to ship security updates out as soon as possible and these updates are usually applied within the same day. The reason for this is to keep customers from accidentally breaking their own sites without backing them up. WP Engine customers will be upgraded within a week or two of the 3.7 release, as per their announcement today. For many customers, this is exactly why they have chosen WP Engine. Not having to worry about testing major updates is a huge relief for WordPress site admins.
\n
The Future of Managed WordPress Hosting: A Growing List of Restrictions
\n
I am surprised that this popular WordPress hosting company is preventing its customers from taking advantage of one of the most exciting new features of WordPress 3.7. Although customers always have the freedom to manually update their sites early, they will not be permitted to allow WordPress to update itself. This makes sense as a company policy, but as a developer I can’t help but see it as a limitation.
\n
Why not allow developers to override the WP Engine restrictions via WP_AUTO_UPDATE_CORE in wp-config.php? Your average user isn’t likely to venture into this file to make any modifications, so it would be safe to assume that anyone who applied those settings knew what they were doing. The WP Engine infrastructure, however, does not allow for this.
\n
WP Engine does a lot of things right when it comes to speed and prioritizing the customer’s ability to have a development environment. The company is a proven and reliable WordPress host that I would recommend to anyone. For many customers, trading freedom for security is well worth it in order to have their sites fully “managed.”
\n
But what about the others who may want the freedom to let WordPress update itself? The company has very good reasons for limiting developers from doing this. But will the number of restrictions continue to grow? Managed WordPress hosts are a relatively new development in the marketplace of WordPress services. It will be interesting to see how their policies develop in relationship to WordPress core enhancements, which more often than not err on the side of giving more freedom to the user.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 19:13:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:15;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:63:"WPTavern: How To Navigate The WordPress Ecosystem As a New User";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10237";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:115:"http://feedproxy.google.com/~r/WordpressTavern/~3/gJiQc_Kl5ZA/how-to-navigate-the-wordpress-ecosystem-as-a-new-user";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6305:"
The WordPress ecosystem is made up of thousands of websites, code repositories, blogs, forums, etc. To a new WordPress user, it can be intimidating or downright frustrating figuring out where to go. My goal with this post is to provide a map for those who are brand new to the world of WordPress to be able to navigate with confidence. I’ve personally experienced being in a city I’ve never been to before and not knowing which direction to travel to reach my destination. It’s a frustrating experience. This guide ought to alleviate those frustrations for WordPress first timers.
\n
Themes
\n
So the default theme isn’t your cup of tea. Before going to Google and searching for “free WordPress themes” head over to the WordPress Theme Repository. It’s the safest place to obtain a new design for your site. Themes that are added to the repository are scanned and go through a thorough checklist before they are accepted. All of the themes hosted on the repository are free of charge. If you want to know the reasons why using Google to find free WordPress themes is bad, watch this video by Leland of Themelab.com.
\n\n
Plugins
\n
Much like the theme repository, WordPress has its own plugin repository filled to the brim with plugins to add functionality to your WordPress powered website. The WordPress plugin repository is the safest place to get code to add features to your website. Plugins are scanned and reviewed by volunteers before they are accepted into the repository. However, this does not guarantee that the code will function properly or is 100% secure for your website.
\n
Support
\n
The WordPress.org support forums enable the community to help each other. Creating an account is free of charge as is the support. The forums are staffed by volunteer moderators that do their best to help as many people as possibly every day. With so many people seeking help, you should exercise patience when using the forums.
\n
Documentation
\n
If you feel a little adventurous and want to try helping yourself first, you can visit the Codex. This Codex is like a repository for all of the detailed information for how WordPress works, inside and out. The main page of the Codex provides a number of great links to those starting out with WordPress.
\n
Learning WordPress Through Video
\n
While there is no official classroom to learn WordPress material, WordPress.org has the next best thing in WordPress.tv. WordPress.tv is the official website dedicated to WordPress that contains recorded sessions from WordCamps held all over the world. In fact, there is an entire how to section on the website dedicated to tutorial type videos.
\n\n
Creative Inspiration
\n
If you’re not sure what WordPress is capable of or have run into a creative block, you should browse through the WordPress showcase. The showcase is a collection of websites that have taken WordPress to the next level. There are a lot of great looking designs as well to help provide inspiration.
\n
\n
WordPress Face to Face
\n
While not officially a part of the WordPress.org project, Meetup.com is used by WordPress users all across the world to put together local meetups that bring like-minded people together. I’ve attended multiple WordPress meetups in my area and I’ve helped a lot of new WordPress users find their way. It’s one of the best forms of learning and getting WordPress help that I can imagine.
\n
Keeping Tabs On WordPress Development
\n
While there are not many posts on the official WordPress blog, it is where official news of releases are published.
\n
Installing WordPress On Your Phone
\n
There is an official WordPress app for most of the smart phone devices currently out on the market such as iOS devices, BlackBerry, and Android. If you’d like to install WordPress on your phone, be sure to check out the mobile section of the WordPress.org website to see if there is one available for your device.
\n
Wrap Up
\n
Now you might be wondering, why didn’t I include this site or that site when putting this guide together. The purpose of the guide is to provide a map that contains the essential information new users need to know. Using this knowledge as your foundation, you should find yourself more comfortable in the WordPress ecosystem. After getting to grips with WordPress, new users will expand beyond these pillars and discover the other resources that are on the web dedicated to WordPress. It doesn’t make sense to point new users into different directions when the above information is all they really need to get started.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 16:59:54 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:16;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:100:"WordPress.tv: Greg Douglas: Designing Awesome WordPress Websites For Small To Medium Size Businesses";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23212";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:117:"http://wordpress.tv/2013/10/23/greg-douglas-designing-awesome-wordpress-websites-for-small-to-medium-size-businesses/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:750:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:37:54 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:17;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:65:"WordPress.tv: Ben Lobaugh: Taking Flight With JetPack Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24051";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:82:"http://wordpress.tv/2013/10/23/ben-lobaugh-taking-flight-with-jetpack-development/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:686:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:24:07 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:18;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:51:"WPTavern: Monitor WordCamps Online with WP Armchair";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10260";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:103:"http://feedproxy.google.com/~r/WordpressTavern/~3/fDHtRUBVmHs/monitor-wordcamps-online-with-wp-armchair";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:7386:"
David Bisset may have been the first person to coin the term “Armchair WordCampersâ€, referring to those who live vicariously through WordCamp attendees via Twitter. The concept sparked an idea for him and he decided to create WP Armchair for this very audience.
\n
His first version was actually created for the WordPress 10th Anniversary, a site he collaborated on with the WordPress Foundation.
\n
Bisset is a WordPress and BuddyPress developer. He also helps to organize WordCamp Miami. The inspiration for creating WP Armchair came from his experiences as an organizer and an attendee at WordCamps.
\n
I monitor WordCamps and conferences via Twitter hashtags and simply thought there was a better way. I notice that a lot of people are interested in monitoring conference activity as well. Even those that attend conferences – I see many of them with their laptops open to Tweetdeck or some Twitter client. I figured there should be a better way, especially since social networks like Instagram are becoming more popular.
\n
On top of that, as a WordPress developer, I wanted the solution running on WordPress. And instead of passively showing pictures and tweets, the site would naturally store these as custom post types. So it serves as an archive of the conference.
\n
In a way, the WP Armchair websites are chronicling the history of these WordPress events as seen through their respective hashtags on Twitter, Instagram, Vine and Flickr. Right now, each event is a separate site but Bisset said that he’s likely to combine them all into a multisite installation somewhere in the near future.
\n
WP Armchair Monitoring WordCamp Europe
When WP Armchair monitored WordCamp San Francisco the site was able to aggregate 1,600 tweets and 1,020 photos. For WordCamp Europe, the site captured even more – in the end it was 4,223 tweets and 1,500 photos. WordPress fans monitoring from afar were able to get a taste of how awesome these events were and perhaps even resolve to attend next year.\n
What Plugins Make WP Armchair Work?
\n
If you visit any of the WP Armchair sites you’ll see support for videos, pictures, embedded tweets, post favoriting and more. There’s a lot going on behind the scenes to bring all of this event information into the site.
\n
I asked Bisset to tell me about some of the important plugins he uses to make WP Armchair work and he gave us a look behind the scenes.
\n
I wrote three plugins that scanned Twitter, Instagram, and Flickr for tweets, photos, and videos based on a hashtag and saved them as custom post types. These make up the bulk of the site, but I also used the following plugins:
\n
Bulk Delete – comes in handy when you want to get rid of alot of tweets or instragram posts that aren’t related to the conference (maybe you used a bad keyword or hashtag). Since tweets can come in 30 or 40 at a time, this plugin does save a little bit of time.
\n
Love It Pro – was great to drop in and give site visitors the ability to mark posts as favorites. It was a fun experiment during WordCamp San Francisco.
\n
Gravity Forms – on some installs, it allows us to quickly get forms (surprise!) in place for user registration, so some people could upload their own photos to the site via the WordPress Mobile app or a custom form.
\n
Search Everything – allowed the cool ability to search for tweets, instagram photos, etc that were created by a specific user or via keyword. As an example, you could search for your own name and see if anyone mentioned you on whatever social networks the WPArmchair site was scanning. Unfortunately, it looks like Search Everything isn’t being supported as of now, so I recommend switching over to SearchWP.com.
\n
WP Armchair Theme and Plugins are GPL and Available on github
\n
Bisset has made both the WP Armchair Theme and plugins available on his github account. He invites contribution to the project. “There are no doubt better and different ways to do what the site does, and I welcome anyone who wants to improve it,” he said.
\n
The WordPress Foundation has also made some of the WP Armchair functionality available to its officially hosted WordCamp site using a new plugin called Tagregator, which is also open to contribution.
\n
Bisset believes that WP Armchair is a valuable resource for both those at home and those who are attending WordCamp events. It has even been used by The Front-End Design Conference, a non-WordPress event, to aggregate the references to the event on social media. Ultimately, WP Armchair is about bringing people and ideas together.
\n
Even if you did go to the conference, you would be able to see everyone’s photos there instead of a gallery of a smaller group of photos the site admin posted a few days later. You also get to see who authored interesting tweets and potentially find new people to follow this way… people that are in theory just as motivated by WordPress as you are.
\n
Monitoring posts from WordCamps online is by no means a replacement for actually attending the event. Realistically, you won’t be able to attend every WordCamp in the world, but WP Armchair gives you a better way to monitor online from wherever you may be. Many thanks to David Bisset for taking us behind the scenes and for creating a way for WordPress fans around the world to join in on events together.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:01:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:19;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:27:"Donncha: WP Super Cache 1.4";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:29:"http://ocaoimh.ie/?p=89498597";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:48:"http://ocaoimh.ie/2013/10/23/wp-super-cache-1-4/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1932:"
WP Super Cache version 1.4 is out now. This release finally removes the mfunc, mclude and dynamic-cached-content tags as I warned about three months ago.
\n
If your site uses that dynamic cached content functionality do not upgrade yet. There is a replacement dynamic cached content system but it’s not compatible so you’ll need to update your themes and helper plugins. It’s not difficult but there’s a lot to take in. I hope the example plugin and explanation in that post gets you most of the way there.
\n
If you don’t use mfunc and it’s friends then you should upgrade immediately and it should be painless.
\n
This release also has a few bug fixes and other features. It will now try to repair broken installs after a site migrates. It will update the wp-config.php and rebuild wp-content/advanced-cache.php. It will also delete tags and category cache files when a post publish status changes.
The second release candidate of WordPress 3.7 is now available for testing!
\n
Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta area in the support forums if you think you’ve found a bug, and if any known issues are raised, you’ll be able to find them here.
\n
Developers, please test your plugins and themes against WordPress 3.7. If there is a compatibility issue, let us know as soon as possible so we can deal with it before the final release.
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 00:05:30 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:21;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:56:"WPTavern: WordPress 3.7 Introduces Advanced Date Queries";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10239";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:108:"http://feedproxy.google.com/~r/WordpressTavern/~3/SBf0LiyU_A4/wordpress-3-7-introduces-advanced-date-queries";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3933:"
WordPress 3.7 should be arriving any day now. Everyone is excited about WordPress’ new ability to update itself for security and minor releases (and even themes and plugins, if you’re adventurous). The new password strength meter is highlighted on the About page for the release with a live demo that users can play with after they upgrade. But there’s one cool new feature that hasn’t received as much fanfare: advanced date queries.
You might be wondering what’s so exciting about advanced date queries. Alex Mills, better known online as “Viper007Bond” was the originator of the patch to improve date arguments for WP_Query, a class for querying the database for specific content. Up until now, WordPress had no easy way to get a set of posts that fall within a specific date range.
\n
A few months ago, Alex introduced a patch that adds the ability to get complex date-based queries when fetching both posts and comments from the WordPress database. Code examples can be found on his post where he roughly outlines a few ways one might implement date-based queries.
\n
There are virtually unlimited combinations. Here are a few examples of what is possible with the new advanced date queries:
\n
\n
Query all posts written on a specific day over the years, ie. the author’s birhtday
\n
Query all the posts written before or after a certain date
\n
Query all posts written on Monday mornings
\n
Query 5 most recent posts made after midnight but before 5am
\n
\n
You can check out all the date parameters in the codex and browse a few of the examples. Imagine all the fun that could be had here! The advanced date queries should enable developers to do some interesting things with displaying timelines, custom archives, selectively random post widgets and anything else imaginable with date ranges.
\n
Advanced date queries replaces bulkier methods used in the past, such as adding a filter to posts_where. How did we ever live without it? Check out the canonical discussion on Trac to explore the evolution of this feature and put it to good use in WordPress 3.7.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 23:28:08 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:22;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:57:"WordPress.tv: Topher DeRosia: Intro To Plugin Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23066";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:74:"http://wordpress.tv/2013/10/22/topher-derosia-intro-to-plugin-development/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:670:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 21:43:20 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:23;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:58:"WordPress.tv: Tharon Rodriguez: Getting Familiar With PODS";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23060";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:75:"http://wordpress.tv/2013/10/22/tharon-rodriguez-getting-familiar-with-pods/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:666:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 21:20:42 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:24;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:72:"WPTavern: ForumEngine Turns WordPress Into a Forum Via Custom Post Types";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10158";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:124:"http://feedproxy.google.com/~r/WordpressTavern/~3/5-EF68Mw45g/forumengine-turns-wordpress-into-a-forum-via-custom-post-types";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4745:"
EngineThemes.com recently released version 1.0 of their latest project, ForumEngine. ForumEngine is a theme that uses Custom Post Types to turn WordPress into a forum. I caught wind of this new theme via a review published on WPLift by Joe Fylan. It’s nice to finally see theme companies thinking outside the box for once instead of whipping up the next boring portfolio theme. I have not had the opportunity to try out the theme but based on Joe’s review, there is one thing in particular that may be a showstopper for a lot of people.
\n
\n
Unfortunately, in order to use this theme, you’ll either need a brand new WordPress install, separate WordPress install, or be willing to see your existing content disappear.
\n
With ForumEngine installed on your site, the site now functions as a forum, which the threads accessed directly from the homepage. Any existing posts that might’ve been on the site or those you create afterward activating the theme will now no longer be accessible, essentially removing the main functionality of WordPress: creating posts so bare that in mind if you wish to use this alongside a regular blog – you would need a separate installation. – Joe Fylan
\n
I remember when the discussion around bbPress 2.0 was taking place. It was suggested that using a plugin that utilizes custom post types be used. At the time, bbPress was transitioning from being stand alone software into a WordPress plugin. Now we have a theme that is using custom post types and if I remember correctly, community members like Justin Tadlock frown on this practice. I reached out to John James Jacoby to get his thoughts on this theme as well as how its implementation compares with bbPress.
\n
bbPress 2.x does use custom post types, and actually uses three of them. Forums is only a post type because of a lack of taxonomy term meta, otherwise it would be a custom taxonomy. CPT’s are fine, though it’s too bad it completely overrides the blog. Seems pretty pointless to make users decide to have either a blog or a forum, and not both.
\n
bbPress takes other things into consideration, like forum profiles VS blog author archives, separate roles for the forums VS the blog, and goes the extra mile so forums only intersect with the blog when you want it to. If a theme was really going to do this “correctly†it should probably use a CPT for topics, and comments (with a custom comment form template) for replies; that way the behavior is familiar.
\n
Forums are such an integral part of online communities, if I were looking for forums inside of WordPress, baking it into a commercial theme that won’t work with my existing blog doesn’t sound very appealing.
\n
While I like the design and the thinking out of the box idea in this theme, not being able to use it with an existing blog is a huge blow towards it ever becoming a popular alternative to bbPress or other forum solutions. However, thanks to the advice provided by John James Jacoby above, there are ways of going about it that make sense. I hope to see other theme providers give it a shot. At the very least, it would be good to see theme providers list native bbPress support as one of their selling points.
WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s over. If there’s one near you, check it out! In addition to getting to know your local WordPress community, most WordCamps attract some traveling visitors a well, giving you the chance to meet contributors to the WordPress open source project and get involved yourself.
\n
Here are the WordCamps on the schedule for the rest of this year.
No WordCamps on this list in your area? Not to worry! There are thriving WordPress meetups all over the world where you can meet like-minded people, and we maintain a library of WordCamp videos at WordPress.tv.
\n
Get Involved
\n
\n
If you’re interested in organizing a WordCamp in your area, check out our WordCamp planning site.
\n
If you’re interested in starting a WordPress meetup in your area, let us know and we can set up a group on meetup.com for you.
\n
And speaking of WordCamp videos, we’ve recently enabled volunteer-generated subtitles/closed captioning of the videos on WordPress.tv to make them more accessible. Interested in helping? Check out the WordPress.tv subtitling instructions.
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 19:25:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Jen Mylo";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:26;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:67:"WPTavern: BuddyPress Theme Development Book Now Available on Amazon";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10213";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:109:"http://feedproxy.google.com/~r/WordpressTavern/~3/I9fzJHc5q1c/buddypress-theming-book-now-available-on-amazon";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3233:"
If you want to grow in your BuddyPress skills, there’s a new book on the market that you’ll want to get your hands on. BuddyPress Theme Development has just hit Amazon. The digital version is out now and you’ll be able to get a printed copy on October 24th, 2013. Packt will also have a version of the book that includes access to code for those who want to “follow along at home” with the code examples.
\n
Written by expert BuddyPress theme developer and contributor, Tammie Lister, this book will help you learn how to create BuddyPress themes from start to finish. BuddyPress Theme Development provides a comprehensive guide to BuddyPress theming with practical, hands-on tutorials that will put you on the path to building your own themes.
\n
Tammie walks you through the basics, such as how to use CSS to make changes to themes. She also includes more advanced topics like creating custom templates for BuddyPress components. You’ll learn how to add functionality to enhance your community, including how to build your own widgets into your theme. Once your theme is finished, Tammie shows you how to run theme-checks to ensure that it’s ready for launch.
\n
I checked in with Tammie for a mini Twitter interview on the details of the book. She has been working on it since just after BuddyCamp Miami, which took place in early April of this year. Many theming books are outdated even before they hit the shelves, but Tammie has made sure that everything in her book is up to date with the upcoming BuddyPress 1.9 release. She is the developer heading up the work on the new template pack that will ship with BuddyPress 1.9.
\n
If you’re a BuddyPress developer looking for resources to keep your skills sharp, BuddyPress Theme Development is a good one to add to your collection. Packt Publishing couldn’t have found a better person to write this book. Get your copy today on Amazon or pre-order the printed edition from Packt Publishing to get the eBook and PacktLib access thrown in for free.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 18:46:45 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:27;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:56:"WPTavern: Seamless Integration for WordPress and Magento";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10189";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:108:"http://feedproxy.google.com/~r/WordpressTavern/~3/F6uyX3Wt0E8/seamless-integration-for-wordpress-and-magento";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6448:"
Believe it or not, there are a lot of WordPress fans in the Magento community. While Magento provides supremely robust e-commerce capabilities with support for complex product variations and multiple shipping options, it’s entirely lacking in CMS features. As a result, many sites merge WordPress and Magento in order to take advantage of each platform’s unique strengths.
\n
However, it is unbelievably difficult to make WordPress and Magento work together in a seamless fashion without some sort of bridge. That’s where James Kemp‘s Magento WordPress Integration plugin comes in. It does all the fancy footwork necessary to make your Magento store look like part of your WordPress site.
\n
\n
The Magento WordPress Integration plugin (MWI), is a solution that Kemp has been developing for several years. It provides the easiest way to get blocks, sessions and products from your Magento store and is capable of doing the following:
\n
\n
Bring out any of the default Magento Blocks in your WordPress theme
\n
Bring out any Magento blocks that you have created yourself
\n
Bring out any static blocks that you have made in your Magento admin area
\n
Show Magento products on a WordPress post or page by using the shortcode add-on
\n
Show products from any category using the widget add-on
\n
\n
Think there’s no demand for this? Think again. Kemp’s plugin has been downloaded more than 10,000 times. To celebrate, Kemp has made the code available on BitBucket. He’s hoping that having the code available to the public will help to spark more contribution.
\n
James Kemp, creator of the Magento WordPress Integration plugin
I’ve been following James Kemp’s work for several years and finally had the chance to chat with him about how the plugin is doing. \n
He continues to develop the plugin due to the demand, which comes from both “light” users and developers. “The demand for MWI is fairly consistent,” he said. “On a calm day the mwi-plugin site gets ~30 unique visits, and mid-week on a busier day it will get ~100. It’s a very niche plugin, so I don’t expect thousands! The core plugin is mainly useful for developers I’d say, but I also get “light” users who are interested in the add-ons, so they can display products within their blogs. The demand for it is fairly steady at the moment.”
\n
The Magento and WordPress communities are fairly disconnected, which is understandable. You don’t see too many developers wanting to specialize in both platforms. Yet many users want them to work together. When building sites with a bridge, Kemp relies on WordPress for the more content-heavy aspects of the site:
\n
Each system has solutions for the other, but none of them are quite as good as WordPress or Magento. I personally prefer to use WP for all aspects of content management; pages, news, callouts – using Magento for this is a bit of a nightmare. I use Magento for large stores, with complex product set-ups and discount systems, purely for the product catalogue and back-end ecommerce system.
\n
Although he is an expert Magento developer, he has also built many sites using WooCommerce and Jigoshop. I asked him when he might opt for Magento over a WordPress-based e-commerce solution and he replied:
\n
I tend to use Magento for larger sites, where there are thousands of products and likely to be a lot of activity. This is because of the back-end system of Magento; it offers so much more in terms of tax rules, discounts, product set-up, import/export, order history, invoicing, etc. it’s just a full, heavy-duty, ecommerce system. The WordPress solutions are great, but not for bigger ecommerce store owners who need more control.
\n
The Magento WordPress Integration plugin provides a much needed bridge between the two open source projects and enables them to work together seamlessly. It can also save you from having to do too much theming to Magento, which is quite a pain because all the files are located about 10 directories deep. MWI allows you to feature your categories and products on your WordPress pages, as well as any blocks created within Magento. If you want to synchronize your sites even further, Kemp has also developed a plugin providing Single Sign-On For Magento And WordPress.
\n
Kemp and his colleague Jay Pick have formed a new WordPress development company called Platførm, based out of their rural office in Lutterworth, England. He plans to continue supporting the MWI plugin for as long as it’s needed. You can find documentation at the Magento WordPress Integration homepage and can download the plugin from the WordPress repository. If you want to get involved contributing, check out MWI on BitBucket.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 14:00:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:28;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:50:"WPTavern: New Holiday – Talk Like a Spammer Day!";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10181";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:97:"http://feedproxy.google.com/~r/WordpressTavern/~3/7J40V67FxqE/new-holiday-talk-like-a-spammer-day";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1683:"
Jonathan Dingman over at WPForce.com has published a funny piece that illustrates how comment spammers are able to be so randomly creative with their posts. One of his spam comments contained the entire template of text used to generate random comments. How many combinations of spam can you make with the following template?
\n
I {want to|wish to|desire to} read {more|even more} things about it!| \n{It is|It’s} {appropriate|perfect|the best} time to make {a few|some} plans \nfor {the future|the longer term|the long run} and {it is|it’s} time to be happy.
\n
Check out the long list of different replies on his post. I think this calls for a new holiday. Talk like a spammer day! We humans have to guess which combination is the correct one! But giving this some more thought, if there was a talk like a spammer day and we were legitimately using templates like the ones presented in the post to generate our comments and those comments were published even though Akismet thinks they are spam, how big of an impact would we have on screwing up the Akismet spam algorithm? Maybe this holiday is not such a good idea!
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 13:00:44 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:29;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:56:"Donncha: The shiny new dynamic content in WP Super Cache";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:29:"http://ocaoimh.ie/?p=89498568";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:70:"http://ocaoimh.ie/2013/10/21/shiny-new-dynamic-content-wp-super-cache/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:9301:"
With the next release of WP Super Cache in a day or two the long awaited move away from mfunc, mclude and friends will be complete.
\n
This means that if you have been using mfunc, mclude or dynamic-cached-content the dynamic portions of your sites will go blank if you upgrade WP Super Cache without updating that dynamic code. This may seem complicated but there’s an example script included and detailed explanations below. A lot of effort was made to make this backwards compatible but unfortunately it wasn’t possible.
\n
In their place is a new cacheaction filter called wpsc_cachedata and it’s sidekick wpsc_cachedata_safety. In the future when a site owner using WP Super Cache wants to make part of their website dynamic they will use those filters to modify pre-defined text strings and replace them with the data they want displayed to the end user. There’s an example script ready to be ripped apart to help you figure all this out.
\n
There are two ways of using this:
\n\n
The dynamic content is the return value of a simple process, be it date() or any of the numerous get_*() functions in WordPress. That data can simply be slotted in place of the pre-defined text mentioned above.
\n
The more difficult bit comes when you need to use an output buffer to collect the data for display. Due to a limitation in PHP it’s impossible to run an output buffer in the callback function of another output buffer, which is when the wpsc_cachedata filter runs. We need to collect that data before the callback function executes.
\n\n
The first way above is easy. Simply add a text string of random characters to your theme where you want the dynamic content to appear, then hook a function on to the wpsc_cachedata filter to str_replace() it with your dynamic content. These functions in this script do that:\n
\n
dynamic_cache_test_filter()
\n
dynamic_cache_test_template_tag()
\n
dynamic_cache_test_init()
\n
\n
You’ll have to hook on to the wpsc_cachedata_safety action and return the numeral 1 to actually run the wpsc_cachedata filter. This is a fail safe used by the plugin to make sure things are ok when the filter runs.
\n
Unfortunately if you want to use an output buffer it’s a lot harder. As stated above an output buffer can’t run in the callback function of another output buffer. This means you have to generate your dynamic content earlier in the PHP process. \nThis could be as easy as calling your dynamic content function (dynamic_output_buffer_test() in the example script) from the wp_footer action, or calling it from any action before shutdown, whichever is appropriate. You’ll also need to add a template tag of your own choosing to your theme. \nYour dynamic content function will run just fine for cached pages, so after the new page has run it store the output in a constant or global variable that the same function can look for when the wpsc_cacheaction runs it. If it finds that information, it can do the search and replace of your template tag without running the output buffer again. \nSome pages won’t run the dynamic content function however. This includes feeds and sitemaps. Those pages will generate a PHP error because the output buffer will try to run in the callback!
\n
“PHP Fatal error: ob_start(): Cannot use output buffering in output buffering display handlers in…”
\n
To stop that happening you must check that there’s text to shove in the cached page. That’s what happens in the function dynamic_output_buffer_test_safety() in the example script. It fires on the wpsc_cachedata_safety filter and returns the numeral 1 if successful.
\n
Anatomy of an Output Buffer
\n
I’m going to try and explain the output buffer functions in more detail here. They’re only example functions and if you spot a bug or can suggest improvements please do!
This is the string you add to your theme where your dynamic content will appear. The plugin will replace this string with the code generated by your dynamic content function.
\n
function dynamic_output_buffer_test( &$cachedata = 0 ) {\n if ( defined( \'DYNAMIC_OB_TEXT\' ) )\n return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, DYNAMIC_OB_TEXT, $cachedata );\n ob_start();\n // call the sidebar function, do something dynamic\n echo "<p>This is a test. The current time on the server is: " . date( \'H:i:s\' ) . "</p>";\n $text = ob_get_contents();\n ob_end_clean();\n\n if ( $cachedata === 0 ) // called directly from the theme so store the output\n define( \'DYNAMIC_OB_TEXT\', $text );\n else // called via the wpsc_cachedata filter. We only get here in cached pages in wp-cache-phase1.php\n return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, $text, $cachedata );\n\n}\nadd_cacheaction( \'wpsc_cachedata\', \'dynamic_output_buffer_test\' );
\n
\n
1. dynamic_output_buffer_test() is the function that will generate the dynamic content inserted into the cached page.
\n
2-3. DYNAMIC_OB_TEXT stores the previous output of this function. If it’s set that means we’re in the wpsc_cachedata filter and should insert it into the cached page and return it.
\n
4-8. This creates the output buffer, echoes a string with the current time and copies the buffer into a variable called $text before closing the output buffer.
\n
10-13. This is how we decide to return data. If $cachedata is 0 that means this function was called from the theme so we should define the constant DYNAMIC_OB_TEXT for later use. Otherwise, we must be dealing with an already cached page so insert the dynamic content into the page and return it.
\n
16. Add the dynamic_output_buffer_test() function to the wpsc_cachedata action. “add_cacheaction” is used as it loads before the regular WordPress action code loads.
\n
\n
function dynamic_output_buffer_test_safety( $safety ) {\n if ( defined( \'DYNAMIC_OB_TEXT\' ) )\n return 1; // ready to replace tag with dynamic content.\n else\n return 0; // tag cannot be replaced.\n}\nadd_cacheaction( \'wpsc_cachedata_safety\', \'dynamic_output_buffer_test_safety\' );
\n
\n
1-6. dynamic_output_buffer_test_safety() is a function that checks if dynamic content was generated correctly. If that constant is not defined the output buffer will run within the callback function of the main WP Super Cache output buffer and generate a PHP error.
\n
7. Add the wpsc_cachedata_safety() function to the dynamic_output_buffer_test_safety action.
\n
\n
sidebar.php
\n
As an example, if I wanted to display my dynamic content in the sidebar of my blog I would load sidebar.php in my theme’s directory and add the following code.
\n
if ( function_exists( \'dynamic_output_buffer_test\' ) )\n dynamic_output_buffer_test();\n?>WORDPRESS ROCKS THE WORLD<?php
\n
I had previously edited the example script, uncommented it and changed the appropriate tag:
\n
define( \'DYNAMIC_OUTPUT_BUFFER_TAG\', \'WORDPRESS ROCKS THE WORLD\' ); // CHANGE THIS!
\n
Final Note and Download Link
\n
Please grab the development version of the plugin and try it on a staging server before you put it live. Feedback would be appreciated!
\n
Warning! Keep the tags you use secret. You don’t want someone leaving a comment on your blog with that string! Do not use the same function names or constant names as in this post or example script. They’re in this very public post. Someone is bound to use them and cause you problems when you install their plugin.
\n
Finally, barring any last minute major bugs this version of WP Super Cache will be released on Wednesday. Be careful upgrading. Pass the word around if you know someone is using mfunc as their site will stop working!
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 22:06:09 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:7:"Donncha";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:30;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:45:"WordPress.tv: WordCamp Europe 2013 Interviews";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23966";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:63:"http://wordpress.tv/2013/10/21/wordcamp-europe-2013-interviews/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:641:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 20:07:31 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:31;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:50:"WPTavern: Why Are We Paying For GPL Licensed Code?";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10128";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:99:"http://feedproxy.google.com/~r/WordpressTavern/~3/zYcZG5ycFZE/gpl-ethics-right-wrong-winners-losers";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:5653:"
Kevin Muldoon has published a great post that may change the mindset of both WordPress end users and developers. In his post, he talks about WordPress, GPL, and ethics but further into the post, he mentions that perhaps we should not be thinking about what sites like GPL Avengers or GPL Club are doing as right or wrong but rather, good or bad.
\n
When you start talking about premium GPL products, the line between what is right or wrong gets a little blurred. Perhaps the terms “Right†and “Wrong†should not be used in this debate at all. “Good†and “Bad†are more suitable. GPL is supposed to benefit the WordPress community. So we need to consider what is good and what is bad for the community?
\n
Ethics is subjective so let’s skip that word. It’s as bad as saying “spirit” when talking about the GPL. What GPL Avengers and GPL CLub are doing is not illegal and I don’t think anyone will argue that point. Let’s take the good and bad approach.
\n
The Good:
\n
Both are offering commercial products either for free or for a substantially lower price. This is good because those who don’t need support can make do with the lower price. It’s also good in that it exposes the commercial offerings to a larger market segment that perhaps otherwise wouldn’t be able to afford purchasing from the original developer.
\n
The Bad:
\n
GPL Club points out that support is only provided by the original product authors. Meanwhile, WP Avengers provides automatic updates and premium support via forums and support credits. I am not sure how this works but their forum is not publicly accessible. In general, the best people to provide support for the product are the people who created it. By acquiring products through either of these two sites, unknowing customers will either be out of luck in getting support, or may not get the best support money can buy.
\n
There are a number of great comments about this situation that I encourage you to read like, this one from Paul, or Andrew. What is boils down to is these two sites have started a race to the bottom but I think that race has been going on for a long time.
\n
One of the scenarios that Kevin laid out was the following:
\n
With regards to where the buck stops :) WP Avengers and GPL Club are charging money for premium plugins that other people developed. Here’s a thought….what if someone went one step further and released all premium plugins free. For example, a plugin and theme directory that allowed every single premium WordPress theme and plugin to be downloaded free of charge. No malware, no hidden agenda. Simply someone who wanted to share all premium plugins with the world.
\n
How do you think the WordPress community would react to this? Would it kill the market for premium WordPress products or would developers have to focus on support? – Kevin Muldoon
\n
I think it would be fantastic. On paper, it seems pretty stupid to pay for GPL code. We hear the phrase “paying for support and product updates” repeatedly but it still seems as though we’re paying for the code first. So let’s make all code free. If we pay money, we’re actually paying for upgrades and support of that free code. But I know exactly what this would do to commercial themes and plugins. We’d end up with free code that only has one purpose. To serve up a prompt asking for an API key. In a way, I’d be ok with this because it would be less code running on my site but on the flip side, I’d then be relying on an increasing number of third-party sites to be online to make sure my forms worked. If all commercial themes and plugins were free, it wouldn’t be the end of the world. We would just rapidly make the transition to purchasing support and upgrades or service add-ons. Also, if commercial themes and plugins were free, sites like GPL Club and WP Avengers suddenly become the losers as they would then be charging for GPL code without the support to back it.
\n
A Few Questions For My Commercial WordPress Developer Friends\n
It’s fascinating to think about all GPL licensed code in themes and plugins being free as in beer. How would this change the way vendors today do business? If the real value is in support and upgrades, then the question I have for commercial plugin and theme developers is why are they charging for their GPL licensed code? The GPL license says you can do it, but what’s the point? I’ll guess and say that it would then be too confusing for customers to figure this all out so it’s easier to bundle everything in one purchase. At the end of the day, WP Avengers, GPL Club and sites like them are not going to put the original vendors out of business. All they are is an inconvenience.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 19:00:52 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:32;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:65:"WPTavern: WordPress 3.7 Automatic Upgrades Proving to Be Reliable";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10151";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:117:"http://feedproxy.google.com/~r/WordpressTavern/~3/4c1b_4P7CE8/wordpress-3-7-automatic-upgrades-proving-to-be-reliable";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2957:"
The first WordPress 3.7 Release Candidate was sent out into the wild last Friday. So far it’s been testing very well. The flagship feature of this release is the ability for WordPress to automatically update itself, as highlighted in the customary haiku:
\n
\nWordPress three seven \nA self-updating engine \nLies beneath the hood\n
\n
Automatic background updates seems like a daunting feature to launch across millions of blogs, but WordPress 3.7 includes code to roll back a failed automatic upgrade. Even so, Nacin tweeted yesterday that after 25,000 updates to RC1, there hasn’t been one single rollback. So far it looks like the automatic background updates for security and minor releases is proving to be remarkably reliable.
\n
Nacin has done everything in his power to determine points of failure within the feature but so far it’s been holding up nicely:
\n
We’ve tried all sorts of things to trip up the updater in WP 3.7, like changing file perms, simulating network issues, having no disk space.
Currently two emails are being sent out when the automatic upgrades are successful: one for debugging and the other standard email that all users of 3.7 will receive. Once 3.7 is officially released you will no longer get the debugging email. However, there is a filter that you can use to keep it turned on if you like.
\n
Jeff recently polled Tavern readers to see how they will be implementing the automatic updates on their sites, as many readers previously had expressed reservations. At this time it seems that only 1 in 4 people polled will be disabling automatic updates completely, while the remaining 75% are open to using them to varying degrees. The results of Nacin’s testing of RC1 should inspire even more confidence. If all goes well, it looks like we should have the official WordPress 3.7 release sometime this week.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 17:56:38 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:33;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:97:"WordPress.tv: Justin Jones: WordPress Security or Why Google Says You Shouldn’t Visit My Church";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23080";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:111:"http://wordpress.tv/2013/10/21/justin-jones-wordpress-security-or-why-google-says-you-shouldnt-visit-my-church/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:747:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 17:19:25 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:34;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WPTavern: New Grid View Coming to the WordPress Media Library";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:31:"http://www.wptavern.com/?p=9218";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:113:"http://feedproxy.google.com/~r/WordpressTavern/~3/qM4VP9q4HBo/new-grid-view-coming-to-the-wordpress-media-library";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3915:"
Your experience in the WordPress media library is about to get a whole lot better. Very soon you’ll have the option to display media items in a grid view. An exciting project to enhance the media library is well underway and will eventually be added to the WordPress core. The good news is that you don’t have to wait. This new feature, although still in development, is now available as a plugin.
\n
Media Grid, developed by Shaun Andrews, just showed up in the WordPress plugin repository this weekend. Shaun has been a busy bee lately and he’s on a roll. The Media Grid plugin is the second plugin he’s released with improvements for the WordPress core UI. His first was the Widgets Area Chooser plugin that we featured earlier today.
\n
When combined with the MP6 plugin, the Media Grid plugin currently lets you select between seeing the library displayed in the old list style or with the new grid view:
\n
WordPress Media Library Grid View
\n
What’s cool about this plugin? It lets you toggle the thumbnails to a larger size for ease of browsing. Pagination is handled beautifully via infinite scroll. The search is also very responsive and returns results instantly as you type, even if you only enter one letter.
\n
We’ve seen a lot of changes lately when it comes to WordPress user interface design. These rapid changes have been set in motion to arrange information in a way that is easier to use and understand.
\n
Scientific studies of neural memory encoding have shown that the human brain remembers pictures better than words. If you’re searching for an image you recently uploaded, browsing through thumbnails is likely to be much more helpful than trying to use words to search for your image. An optional grid view makes a lot of sense for this interface and I’m hoping it will become the default view.
\n
When Will We See the Media Grid in the WordPress Core?
\n
Of course, the burning question everyone wants to know, is when can we see this added to the WordPress core? The Media Library Grid View project is led by Helen Hou-Sandi. The plugin is part of the “Features as Plugins” initiative that enables developers to propose new features to core in the form of a plugin. Last time I checked with Shaun he said that they would love to have it ready for 3.8 or 3.9 but really it comes down to whenever it’s ready.
\n
This plugin is the future of the WordPress media library. I’m convinced that once you try the grid view you won’t ever want to go back to the boring list style. Although the Media Grid plugin is still being actively developed, it’s working quite nicely already. Shaun Andrews welcomes your suggestions and patches. If you’d like to help test it you can download Media Grid from the WordPress plugin repository.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 17:00:28 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:35;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:37:"Joseph: Books: The Year Without Pants";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:31:"https://josephscott.org/?p=9213";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:70:"https://josephscott.org/archives/2013/10/books-the-year-without-pants/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:10188:"
I finished reading Scott Berkun’s book The Year Without Pants. The book tells the tale of Scott’s time at Automattic as the lead of Team Social, which worked on WordPress.com. I’ve never read a book about a place that I’ve worked at, so I was curious to see things from his point of view.
\n
I’ve worked at Automattic for over six years, well before Scott started there. We were always on separate teams and I never worked directly with Scott on any projects. As a result some of the things Scott talks about in the book take on a different angle than my own. While reading through the book I made notes on things that I wanted to expand on a bit, provide a different point of reference for, or just struck me as interesting. I’m including the page number for easy reference.
\n
Page 10, talking about how for many people Automattic was the largest company they had ever worked for. I definitely didn’t fall into that camp. Oddly enough I’ve alternated between large and small companies, though not on purpose. Before Automattic I worked at a university that had thousands of employees. Before that I was at small regional ISP that never had more than 10 full time employees. Going back one more job I was at a large international company with more than 10,000 people across the planet. And the job before that was at a company with 20 people. That pretty much covers all of the jobs I’ve had as an adult.
\n
Page 15, about IRC being an ancient chat program. When I mention to other people that we use IRC I’ll often describe it as being “as old as dirt”, meaning 1988. Being old doesn’t change the fact that it is still one of the best solutions to the problem of text based chat.
\n
Page 16, about Automattic demanding great communication skills. In some ways we have to overcommunicate in order to make up for not all being in the same building.
\n
Page 20, Caturday. Long running thing at Automattic from the world of LOLcats. On page 25 Scott shows a screenshot of some stats, and the week ends with Caturday. Some time ago a new hire at Automattic “fixed” the typo by changing it to Saturday. We had to explain the joke, then had them revert it back to Caturday :-)
\n
Page 25, experts don’t go back to regular jobs because regular jobs are hard. This is worth keeping in mind the next time you read an article or book from a professional expert.
\n
Page 28, on jamming practices from one culture into another. This is a hard lesson to learn and I think most who have learned it have only done so through experience. Culture isn’t something you can easily transplant. Culture, like trust, is hard to build and easy to destroy.
\n
Page 29, about trust. Trust is a really big deal in any company culture. The lack of it usually results in grinding political structures. High degrees of trust can result in the whole being so much more than the sum of the parts.
\n
Page 42, remember how I mentioned that I described IRC being as old as dirt? I’m not the only one who thinks that way :-)
\n
Page 43, about many things at Automattic being inherited from the open source WordPress project. I don’t think it is an overstatement to say that this is one of the core attributes in the formation of Automattic. In many ways it looks like a group of people working on an open source project that just happens to also involve money, sometimes.
\n
Page 46, about the WordPress theme P2. One day I’ll write a separate post about how P2 came to be. Naming things can be hard, and sometimes beyond your control.
\n
Page 48, on the communication break down between P2, IRC, Skype, and email. The ratio varies between teams. For my experience I’d say P2 and IRC are closer to 50 / 50, Skype and email nearly rounding errors. IRC was good for talking about something right now ( synchronous ) and P2 was good for things that weren’t nearly so time sensitive ( asynchronous ) or needed a better way to be tracked.
\n
Page 54, about the size of a company being the ultimate goal. I’ve had conversations with people about companies that stay intentionally small. In the technology field it isn’t often that you come across people who want to have a limit to how big their company gets. I think there is an idea worth exploring in there.
\n
Page 61, regarding killing a project or experiment. It isn’t easy to shutdown something that you’ve put energy into. That said, we could be better about letting go.
\n
Page 104, data-influenced culture versus a data-driven one. I’ll give an example of one experience I had that shows how this worked. A new A / B test was launched around a signup flow and I was fairly certain that the new version was going to do worse because the resulting experience was so bad for the user. It quickly became clear that the new version resulted in more revenue. As a team we talked it over and decided against using the new version, even though it meant giving up some of that increase in revenue. I was happy we were able to agree on that because the user experience in the new version was one I’d never want to use. The results of the A / B test were one part of our decision making process, but it wasn’t the only consideration.
\n
Page 111, vision. Someone having a clear vision of where things are going as a whole is a different dynamic in a company that focuses on individuals being super proactive about coming up with their own ideas on what to work on next. Not that you can’t have it, just that at some point you realize everyone can’t do everything. See also page 126 regarding clarity vs. quantity of ideas.
\n
Page 132, “Without the time machine, all choices have the possibility of being wrong.” I need to put that on a t-shirt. Sometimes the value of making a decision outweighs any of the potential outcomes of the decision itself.
\n
Page 134, on not being tied down too much by a pre-selected process. I’ve been asked before if Automattic uses [ insert current trendy methodology here ]. My answer has always been no. We work out what works best for us as a team, then start moving forward, adjusting along the way as needed.
\n
Page 136, “To start big projects, you must have the capacity for delusion.” Probably also worth a t-shirt. At some point after going through enough big projects you learn that you always underestimate them at the beginning. Then after even more of them you learn that under estimating them is sometimes a good thing, because if you didn’t you would never actually start them.
\n
Page 152, about work environments. When I talk with people about Automattic being a distributed company, I usually end up explaining that like most things it is about trade offs. Distributed vs. non-distributed is often less about which one is better and more about which trade offs you want to work with. The same is true of individuals. Not everyone is going to excel in a distributed situation, and that is fine, it doesn’t make them bad at what they do or who they are.
\n
Page 171, talking about Team Social being stretched even further. When Scott joined Automattic I started working on the Akismet team. Our team was always stretched, with people in Melbourne ( Australia ), California, Utah, North Carolina, and England. From UTC that is +11, -7, -6, -4, and +1 for everyone playing along at home. Not the same broad and even distribution that Team Social ended up with, but not always easy either. But we made it work.
\n
Page 198, a reference to the bike shed problem. Long time FreeBSD users will remember the bike shed post by PHK.
\n
Page 200, on few people being willing to dive in and make changes. That is pretty much the opposite of my experience.
\n
Page 200, about broken windows for good and bad. I think our ability to fix a bug that came up quickly is a good thing. There obviously has to be some balance with other things, but I would never want to lose our ability to go from getting a ping from a friend about something on our service being broken, to being able to reply that it has now been fixed, often in a matter of minutes.
\n
Page 201, some people being afraid to post on a P2 because they think it is a megaphone and everyone is reading it. What is funny about reading that is that before we had P2, there was just one internal blog for all of Automattic and it was rarely used. It was common for it to only get one post per month. P2 changed that dramatically.
\n
Page 225, “No one should be expected to carry the burden of a secret their peers would love to know.” Not worth putting on a t-shirt, but something that every leader should remember.
\n\n
I could comment on every page in the book, but these were the points that I noted specifically as I read through it.
\n
The book itself is an enjoyable read, and easy to get through. If you’ve ever wondered what things are like at Automattic, The Year Without Pants, is a pretty good window. Just keep in mind that it is from one point of view and that each team has a high degree of flexibility in doing things in a way that works best for them.
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 15:05:31 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Joseph Scott";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:36;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WPTavern: After Four Years – WPShout Is Under New Ownership";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10124";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:109:"http://feedproxy.google.com/~r/WordpressTavern/~3/sUm_0G9JveY/after-four-years-wpshout-is-under-new-ownership";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2615:"
Long time WordPress community member Alex Denning has announced that his WordPress centric site WPShout is now under new ownership. Alex has reached the point where his job combined with his university study work has made it impossible for him to keep the site going. Thankfully, Alex has found a great home for the site. New owners Fred and David of Press Up will be taking over the site. According to their introductions within the announcement post, they seem to fit in naturally with providing the type of content WPShout readers have come to expect.
\n
We’re really excited to be taking over WPShout, and glad that we were able to talk Alex into sticking around in an advising role for the transitional period. He’s built a great resource here, and we’re eager to keep his vision alive and make it even better.
\n
Kudos to Alex for finding the right individuals to take over the site. I know from experience that giving up something that was built from the ground up is not an easy task but handing it over to the right individuals makes the process a lot easier to cope with. For those of you that would like to keep in touch with Alex, you can follow him on Twitter or keep an eye on his personal site Sevenironcows.
\n
Before I let you go, please check out Alex Denning’s Webhosting Review 2013 Results that he published two weeks ago. Also, I’ll have Alex, Fred, and David on this week’s episode of WordPress Weekly to discuss the transition of the WPShout website. Considering how busy Alex will be with university, this may be the only opportunity we get to talk to him about his experience in the WordPress community.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 15:00:20 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:37;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:72:"WPTavern: WordPress Widgets Area Chooser Plugin: A Handy Addition to MP6";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10090";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:123:"http://feedproxy.google.com/~r/WordpressTavern/~3/mvgunDECZL0/wordpress-widgets-area-chooser-plugin-a-handy-addition-to-mp6";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3160:"
If you’ve ever worked on a WordPress site with a long list of widget areas and dozens of widgets, then you know how crowded this page can become. In this scenario the drag-and-drop interface becomes virtually useless, as you struggle to drag the widget to the right area while trying to force your browser window to scroll down.
\n
Widgets Area Chooser
While the new widgets page design in MP6 makes it easier to manage widgets, the drag-and-drop doesn’t always provide the best experience. That’s where the Widgets Area Chooser plugin comes in handy. \n
Created by MP6 member Shaun Andrews, this plugin lets you click a widget in order to choose where it should be placed. According to Shaun, the plugin is really just a bit of CSS and JS, so it would be an easy addition to MP6.
\n
Here’s a quick demo of the Widgets Area Chooser in action:
\n
(note: The experience is actually not as jumpy as it appears in the screencast)
\n
After testing this plugin on my desktop as well as mobile devices, I believe there are several merits which should be considered in the discussion about whether or not this should be a part of MP6 and eventually WordPress 3.8:
\n
\n
Makes it easier to add new widgets – clicking is easier than drag-and-drop
\n
Reduces frustration when working with a large number of widget areas
\n
Makes it easier to manage widgets on a mobile device
\n
\n
It’s important to recognize that this doesn’t actually remove drag-and-drop capabilities. The Widgets Area Chooser simply adds a new way to move widgets around, and users will still have the option of dragging and dropping if they prefer. Please note that you will need to have MP6 installed and activated in order to test this plugin.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 13:01:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:38;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:44:"WordPress.tv: Paul Kortman: Stop Selling SEO";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23072";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:61:"http://wordpress.tv/2013/10/20/paul-kortman-stop-selling-seo/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:638:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 20 Oct 2013 14:17:23 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:39;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WordPress.tv: K. Adam White: Building Apps With Backbone.js and WordPress";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23856";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:89:"http://wordpress.tv/2013/10/20/k-adam-white-building-apps-with-backbone-js-and-wordpress/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:695:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 20 Oct 2013 13:26:45 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:40;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:100:"WordPress.tv: Panel Discussion: WordPress Face-to-Face: Fostering Your Local (And Digital) Community";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23858";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:114:"http://wordpress.tv/2013/10/19/panel-discussion-wordpress-face-to-face-fostering-your-local-and-digital-community/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:747:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 19 Oct 2013 13:16:54 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:41;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:53:"WordPress.tv: Jeremy Felt: Hi WordPress, Meet Vagrant";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23872";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:69:"http://wordpress.tv/2013/10/19/jeremy-felt-hi-wordpress-meet-vagrant/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:655:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 19 Oct 2013 12:26:32 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:42;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:60:"WPTavern: WPWeekly Episode 124 – The Three WordPressteers";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10085";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:107:"http://feedproxy.google.com/~r/WordpressTavern/~3/yfRhBSLaWZk/wpweekly-episode-124-the-three-wordpressteers";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3545:"
For the first time since returning to the airwaves, we had all three contributing authors to WordPress Tavern on the show at once. While we originally scheduled Alex Denning for this episode, we needed to reschedule him for October 25th. So in this episode, we each took turns discussing this weeks headlines. As a bonus, we got a live version of Marcus’ plugin roundup post. I had a blast on this show and hope to do more of these in the future.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 19 Oct 2013 06:37:45 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:43;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:31:"Matt: Fast Company on Simperium";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:21:"http://ma.tt/?p=43141";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:47:"http://ma.tt/2013/10/fast-company-on-simperium/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:230:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 23:56:44 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:44;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:76:"WPTavern: WordSesh 2013: Live Streaming 24 Hours of Free WordPress Education";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:31:"http://www.wptavern.com/?p=9992";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:127:"http://feedproxy.google.com/~r/WordpressTavern/~3/HjNrHEFpulo/wordsesh-2013-live-streaming-24-hours-of-free-wordpress-education";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2232:"
Mark your calenders for December 6th and 7th, 2013. WordSesh will be back in session! In case you missed the first WordSesh, the basic idea is very similar to a WordCamp, except everything is streamed live on the web. The event is totally free and anyone can attend by tuning in from home. WordSesh is comprised of 24 sessions that cater to every type of WordPress user. There will be one session every hour, on the hour, for 24 hours.
\n
\n
If you haven’t been able to make it to as many WordCamps as you’d like, here’s your chance to get in on some awesome free WordPress sessions. WordSesh offers a community learning experience that you can enjoy with other WordPress fans around the world. The event utilizes Google Hangouts to broadcast sessions from wherever the speakers are located.
\n
In case you missed last year’s event, all of the sessions were recorded and are available on youtube. This should give you an idea of the high quality speakers you can expect when you tune in. The DradCast podcast will be kicking off WordSesh 2, ushering in “24 hours of non-stop WordPress knowledge and fun.”
\n
WordSesh is still taking applications for speakers and you can submit directly on the website. If you want to join in, make sure to add the dates to your calender, follow WordSesh on Twitter, and subscribe to WordSesh news and announcements. You don’t want to miss a minute of this awesome event.
The first release candidate for WordPress 3.7 is now available!
\n
In RC 1, we’ve made some adjustments to the update process to make it more reliable than ever. We hope to ship WordPress 3.7 next week, but we need your help to get there. If you haven’t tested 3.7 yet, there’s no time like the present. (Please, not on a production site, unless you’re adventurous.)
\n
WordPress 3.7 introduces automatic background updates for security and minor releases (like updating from 3.7 to 3.7.1). These are really easy to test  — RC 1 will update every 12 hours or so to the latest development version, and then email you the results. (You may get two emails: one for debugging, and one all users of 3.7 will receive.) If something went wrong, you can report it.
To test WordPress 3.7 RC1, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€). Or you can download the release candidate here (zip). If you’d like to learn more about what’s new in WordPress 3.7, visit the awesome About screen in your dashboard ( → About in the toolbar). There, you can also see if your install is eligible for background updates. WordPress won’t automatically update, for example, if you’re using version control like Subversion or Git.
\n
Developers, please test your plugins and themes against WordPress 3.7, so that if there is a compatibility issue, we can figure it out before the final release. Make sure you post any issues to the support forums.
\n
WordPress three seven \nA self-updating engine \nLies beneath the hood
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 19:52:14 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:46;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:57:"WordPress.tv: Chad Warner: WordPress Admin: A Guided Tour";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23082";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:73:"http://wordpress.tv/2013/10/18/chad-warner-wordpress-admin-a-guided-tour/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:663:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 16:35:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:47;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:78:"WPTavern: WordPress MP6 Plugin Adds New Widgets Page and Midnight Color Scheme";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10040";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:130:"http://feedproxy.google.com/~r/WordpressTavern/~3/34x8ppLkyUY/wordpress-mp6-plugin-adds-new-widgets-page-and-midnight-color-scheme";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3425:"
Although MP6 may sound like the code name of a covert spy mission, it’s actually one of the most exciting WordPress plugins in the repository right now. MP6 is part of the “features as plugins” initiative and houses the intended design updates to the WordPress admin. The plan is to include the changes in the core with the upcoming WordPress 3.8 release.
\n
Many WordPress sites are already using MP6 to transform their dashboards and there are several dozen reasons to upgrade to the latest version. Here are just a few of the highlights:
\n
\n
A bunch of new dashicons
\n
A re-designed widgets page by Shaun Andrews from his Widgets project
\n
Improvements to customizer, color schemes, menus section and much more
\n
New Midnight color scheme
\n
\n
You may have seen a poll floating around about extra color schemes for MP6. The Midnight color scheme must have proven the most popular, as it has now been included in the latest MP6 update. This bold skin for the dashboard sports red highlights:
\n
MP6 Midnight Color Scheme
\n
The new widgets page design is much cleaner, allows you to see more widgets at once and is easier to navigate if you’re using a theme with many different widgetized areas.
\n
New widgets page design
\n
In order to achieve this cleaner look, the widgets page had to sacrifice the widget descriptions, which seems to be a main point of concern for those who have already upgraded MP6. Plugin authors can be rather generic in how they name their widgets, so descriptions are helpful for knowing which widget you’re looking at. The scrollbar within the widgets section is also a point of contention. Overall, the MP6 2.1 updates have been very well received and there’s still plenty of time to work through any challenges.
\n
Your feedback is important! If you want to be a part of testing or you’re just curious about where the WordPress admin is going, install MP6 and put it through the paces of your daily routine. If you’re already using MP6, you can take advantage of all the new features and bug fixes by upgrading the plugin through your dashboard.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 13:21:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:48;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:64:"WordPress.tv: Ross Johnson: The Overlap Of Emotion And Usability";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23074";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:83:"http://wordpress.tv/2013/10/18/ross-johnson-the-overlap-of-emotion-and-usability-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:686:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 12:32:09 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:49;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:70:"WPTavern: Mark Jaquith on WordPress 3.6 Postmortem and Post Formats UI";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10034";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:122:"http://feedproxy.google.com/~r/WordpressTavern/~3/TrujuHuq6co/mark-jaquith-on-wordpress-3-6-postmortem-and-post-formats-ui";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3783:"
One of the most anticipated features of WordPress 3.6 was the new Post Formats UI which would have exposed the feature to users who may not have known of its existence. Unfortunately, near the tail end of development for 3.6, Mark Jaquith made the announcement that the feature would be exiting core and that the work involved would most likely end up as a plugin. This generated a lot of mixed reviews from developers. In the midst of all the discussion, Mark Jaquith stated that he would publish a postmortem to explain the lessons learned.
\n
WordPress 3.7 is around the corner and we have yet to see the postmortem post, or a post formats UI plugin for that matter. I managed to get in touch with Mark Jaquith, who is an incredibly busy man, to find out what the status was on the post as well as the plugin. Mark tells me that he is working on the blog post that will explain the WordPress 3.6 development cycle, the lessons learned, and the struggles the team had during this time. The post will also cover the new approach to feature development that WordPress is now embracing with features being developed as plugins first. For those that will be attending WordCamp London on November 23 and 24th, Mark will be giving a presentation that shares the lessons learned in 3.6.
\n
\n
The reason for the delay in getting this information out to the public is that Mark is not an employee that gets to work on WordPress full-time. He was the lead developer for 3.6 and while trying to ensure the project stayed on time, he also had to make a living through his consultancy business. Some of his projects were even pushed back to make room for 3.6 development. To put it mildly, the 3.6 development process took a lot out of the man and he’s been playing catch up ever since.
\n
Mark concluded the email with his main takeaway of the post formats UI.
\n
With regards to post formats UI, the main takeaway I had was that the approach we took was the wrong approach and I didn’t really see that until very late in the process. So if or when the post formats UI feature gets taken back up in plugin form (in 3.9 or later), it will be a fresh effort, not one based on the work we did in 3.6. I am also watching the content creation experience efforts to see how that might play in.
\n
We’ll be keeping an eye out for the post and will link to it once it’s published. Thanks to Mark Jaquith for not only providing me with this update, but for all the hard work he did to lead the team to get 3.6 out the door.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 17 Oct 2013 22:53:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:9:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Sat, 26 Oct 2013 07:48:36 GMT";s:12:"content-type";s:8:"text/xml";s:14:"content-length";s:6:"206652";s:10:"connection";s:5:"close";s:4:"vary";s:15:"Accept-Encoding";s:13:"last-modified";s:29:"Sat, 26 Oct 2013 07:30:14 GMT";s:4:"x-nc";s:11:"HIT lax 249";s:13:"accept-ranges";s:5:"bytes";}s:5:"build";s:14:"20130708171016";}', 'no');
+INSERT INTO `wp_options` VALUES (4565, '_transient_timeout_feed_mod_867bd5c64f85878d03a060509cd2f92c', '1382816892', 'no');
+INSERT INTO `wp_options` VALUES (4566, '_transient_feed_mod_867bd5c64f85878d03a060509cd2f92c', '1382773692', 'no');
+INSERT INTO `wp_options` VALUES (4567, '_transient_timeout_dash_aa95765b5cc111c56d5993d476b1c2f0', '1382816892', 'no');
+INSERT INTO `wp_options` VALUES (4568, '_transient_dash_aa95765b5cc111c56d5993d476b1c2f0', '
', 'no');
+INSERT INTO `wp_options` VALUES (4582, '_transient_timeout_feed_2e4937e95a4021031fd138aaa6ba4cfb', '1382816965', 'no');
+INSERT INTO `wp_options` VALUES (4583, '_transient_feed_2e4937e95a4021031fd138aaa6ba4cfb', 'a:4:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:4:"\n \n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:33:"\n \n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:3:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:48:"link:http://micropasts.org/ - Google Blog Search";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:85:"http://www.google.com/search?ie=utf-8&q=link:http://micropasts.org/&tbm=blg&tbs=sbd:1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:79:"Your search - link:http://micropasts.org/ - did not match any documents.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://a9.com/-/spec/opensearch/1.1/";a:3:{s:12:"totalResults";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"startIndex";a:1:{i:0;a:5:{s:4:"data";s:1:"1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:12:"itemsPerPage";a:1:{i:0;a:5:{s:4:"data";s:2:"10";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:10:{s:12:"content-type";s:28:"text/xml; charset=ISO-8859-1";s:4:"date";s:29:"Sat, 26 Oct 2013 07:49:51 GMT";s:7:"expires";s:2:"-1";s:13:"cache-control";s:18:"private, max-age=0";s:10:"set-cookie";a:2:{i:0;s:143:"PREF=ID=2cf3ff2beebd1d62:FF=0:TM=1382773791:LM=1382773791:S=Cvls0dRGpBfk4kxR; expires=Mon, 26-Oct-2015 07:49:51 GMT; path=/; domain=.google.com";i:1;s:212:"NID=67=uGy8thSfWEBZEncbdFozWQIqRS0IB6gJZma1hW9-7BSQrCGVZLe11U_IsBl_sNyhw-i_nLCf3anOJZ2E11x4yCBvbNms45JRl-0gbOxEeMXaQKE5v2wEj2AiZX0IHABN; expires=Sun, 27-Apr-2014 07:49:51 GMT; path=/; domain=.google.com; HttpOnly";}s:3:"p3p";s:122:"CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."";s:6:"server";s:3:"gws";s:16:"x-xss-protection";s:13:"1; mode=block";s:15:"x-frame-options";s:10:"SAMEORIGIN";s:18:"alternate-protocol";s:7:"80:quic";}s:5:"build";s:14:"20130708171016";}', 'no');
+INSERT INTO `wp_options` VALUES (4584, '_transient_timeout_feed_mod_2e4937e95a4021031fd138aaa6ba4cfb', '1382816965', 'no');
+INSERT INTO `wp_options` VALUES (4585, '_transient_feed_mod_2e4937e95a4021031fd138aaa6ba4cfb', '1382773765', 'no');
+INSERT INTO `wp_options` VALUES (4586, '_transient_timeout_dash_20494a3d90a6669585674ed0eb8dcd8f', '1382816965', 'no');
+INSERT INTO `wp_options` VALUES (4587, '_transient_dash_20494a3d90a6669585674ed0eb8dcd8f', '
This dashboard widget queries Google Blog Search so that when another blog links to your site it will show up here. It has found no incoming links… yet. It’s okay — there is no rush.
Mount Everest is the Earth\'s highest mountain, with a peak at 8,848 metres above sea level and the 5th tallest mountain measured from the centre of the Earth. It is located in the Nepal.
A prayer wheel is a cylindrical wheel on a spindle made from metal, wood, stone, leather or coarse cotton. Traditionally, the mantra Om Mani Padme Hum is written in Sanskrit on the outside of the wheel.
This dashboard widget queries Google Blog Search so that when another blog links to your site it will show up here. It has found no incoming links… yet. It’s okay — there is no rush.
\n', 'no');
+INSERT INTO `wp_2_options` VALUES (2869, '_transient_timeout_feed_ac0b00fe65abe10e0c5b588f3ed8c7ca', '1382817071', 'no');
+INSERT INTO `wp_2_options` VALUES (2870, '_transient_feed_ac0b00fe65abe10e0c5b588f3ed8c7ca', 'a:4:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:3:"\n\n\n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:51:"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:3:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:14:"WordPress News";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:25:"http://wordpress.org/news";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:14:"WordPress News";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:13:"lastBuildDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 22:40:34 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"language";a:1:{i:0;a:5:{s:4:"data";s:5:"en-US";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:9:"generator";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/?v=3.8-alpha";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"item";a:10:{i:0;a:6:{s:4:"data";s:42:"\n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:25:"WordPress 3.7 “Basieâ€";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"http://wordpress.org/news/2013/10/basie/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:49:"http://wordpress.org/news/2013/10/basie/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 22:35:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2736";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:357:"Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones: Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:17229:"
Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones:
\n
\n
Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to apply maintenance and security updates. Most sites are now able to automatically apply these updates in the background. The update process also has been made even more reliable and secure, with dozens of new checks and safeguards.
\n
Stronger password recommendations: Your password is your site’s first line of defense. It’s best to create passwords that are complex, long, and unique. To that end, our password meter has been updated in WordPress 3.7 to recognize common mistakes that can weaken your password: dates, names, keyboard patterns (123456789), and even pop culture references.
\n
Better global support: Localized versions of WordPress will receive faster and more complete translations. WordPress 3.7 adds support for automatically installing the right language files and keeping them up to date, a boon for the many millions who use WordPress in a language other than English.
\n
\n
For developers there are lots of options around how to control the new updates feature, including allowing it to handle major upgrades as well as minor ones, more sophisticated date query support, and multisite improvements. As always, if you’re hungry for more dive into the Codex or browse the over 400 closed tickets on Trac.
\n
A New Wave
\n
This release was led by Andrew Nacin, backed up by Dion Hulse and Jon Cave. This is our first release using the new plugin-first development process, with a much shorter timeframe than in the past. (3.6 was released in August.) The 3.8 release, due in December, will continue this plugin-led development cycle that gives much more autonomy to plugin leads and allows us to decouple feature development from a release. You can follow this grand experiment, and what we’re learning from it, on the make/core blog. There are 211 contributors with props in this release:
Enjoy what may be one of your last few manual updates. See you soon for version 3.8!
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:45:"http://wordpress.org/news/2013/10/basie/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:1;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:33:"WordPress 3.7 Release Candidate 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:68:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:77:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 00:05:30 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2729";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:417:"The second release candidate of WordPress 3.7 is now available for testing! Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1183:"
The second release candidate of WordPress 3.7 is now available for testing!
\n
Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta area in the support forums if you think you’ve found a bug, and if any known issues are raised, you’ll be able to find them here.
\n
Developers, please test your plugins and themes against WordPress 3.7. If there is a compatibility issue, let us know as soon as possible so we can deal with it before the final release.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:73:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:2;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:18:"Upcoming WordCamps";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 19:25:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:9:"Community";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"WordCamp";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2723";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:368:"WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Jen Mylo";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:3584:"
WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s over. If there’s one near you, check it out! In addition to getting to know your local WordPress community, most WordCamps attract some traveling visitors a well, giving you the chance to meet contributors to the WordPress open source project and get involved yourself.
\n
Here are the WordCamps on the schedule for the rest of this year.
No WordCamps on this list in your area? Not to worry! There are thriving WordPress meetups all over the world where you can meet like-minded people, and we maintain a library of WordCamp videos at WordPress.tv.
\n
Get Involved
\n
\n
If you’re interested in organizing a WordCamp in your area, check out our WordCamp planning site.
\n
If you’re interested in starting a WordPress meetup in your area, let us know and we can set up a group on meetup.com for you.
\n
And speaking of WordCamp videos, we’ve recently enabled volunteer-generated subtitles/closed captioning of the videos on WordPress.tv to make them more accessible. Interested in helping? Check out the WordPress.tv subtitling instructions.
\n
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:3;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:31:"WordPress 3.7 Release Candidate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:66:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:75:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 19:52:14 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2718";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:331:"The first release candidate for WordPress 3.7 is now available! In RC 1, we’ve made some adjustments to the update process to make it more reliable than ever. We hope to ship WordPress 3.7 next week, but we need your help to get there. If you haven’t tested 3.7 yet, there’s no time like the present. (Please, […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2237:"
The first release candidate for WordPress 3.7 is now available!
\n
In RC 1, we’ve made some adjustments to the update process to make it more reliable than ever. We hope to ship WordPress 3.7 next week, but we need your help to get there. If you haven’t tested 3.7 yet, there’s no time like the present. (Please, not on a production site, unless you’re adventurous.)
\n
WordPress 3.7 introduces automatic background updates for security and minor releases (like updating from 3.7 to 3.7.1). These are really easy to test  — RC 1 will update every 12 hours or so to the latest development version, and then email you the results. (You may get two emails: one for debugging, and one all users of 3.7 will receive.) If something went wrong, you can report it.
To test WordPress 3.7 RC1, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€). Or you can download the release candidate here (zip). If you’d like to learn more about what’s new in WordPress 3.7, visit the awesome About screen in your dashboard ( → About in the toolbar). There, you can also see if your install is eligible for background updates. WordPress won’t automatically update, for example, if you’re using version control like Subversion or Git.
\n
Developers, please test your plugins and themes against WordPress 3.7, so that if there is a compatibility issue, we can figure it out before the final release. Make sure you post any issues to the support forums.
\n
WordPress three seven \nA self-updating engine \nLies beneath the hood
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:71:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:4;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"WordPress 3.7 Beta 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 10 Oct 2013 21:28:06 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2706";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:357:"WordPress 3.7 Beta 2 is now available for download and testing. This is software still in development, so we don’t recommend that you run it on a production site. This has been a quiet beta period. We’re hoping to get some more testers for automatic background updates, which will occur for security and minor releases (like updating […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2108:"
WordPress 3.7 Beta 2 is now available for download and testing. This is software still in development, so we don’t recommend that you run it on a production site.
\n
This has been a quiet beta period. We’re hoping to get some more testers for automatic background updates, which will occur for security and minor releases (like updating from 3.7 to 3.7.1). It’s really easy to test this, as Beta 2 will update each day to the latest development version and then email you the results. If something goes wrong, you can report it — it’s that simple. To get the beta, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightlies”). Or you can download the beta here (zip). Check out Dashboard → Updates to see if your install is eligible for background updates. WordPress won’t update if, for example, you’re using version control like SVN or Git.
\n
For more of what’s new in version 3.7, check out the Beta 1 blog post. In Beta 2, we further increased the stability of background updates and also added about 50 bug fixes, including a fix for Internet Explorer 11 in the visual editor.
Beta 2 released \nDotting i’s and crossing t’s \nExpect RC next
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:5;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"WordPress 3.7 Beta 1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 28 Sep 2013 07:25:44 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2688";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:339:"I’m pleased to announce the availability of WordPress 3.7 Beta 1. For WordPress 3.7 we decided to shorten the development cycle and focus on a few key improvements. We plan to release the final product in October, and then follow it in December with a jam-packed WordPress 3.8 release, which is already in development. Some […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:3684:"
I’m pleased to announce the availability of WordPress 3.7 Beta 1.
\n
For WordPress 3.7 we decided to shorten the development cycle and focus on a few key improvements. We plan to release the final product in October, and then follow it in December with a jam-packed WordPress 3.8 release, which is already in development. Some of the best stuff in WordPress 3.7 is subtle — by design! So let’s walk through what we’d love for you to test, just in time for the weekend.
\n
Automatic, background updates. 3.7 Beta 1 will keep itself updated. That’s right — you’ll be updated each night to the newest development build, and eventually to Beta 2. We’re working to provide as many installs as possible with fast updates to security releases of WordPress — and you can help us test by just installing Beta 1 on your server and seeing how it works!
\n
When you go to Dashboard → Updates, you’ll see a note letting you know whether your install is working for automatic updates. There are a few situations where WordPress can’t reliably and securely update itself. But if it can, you’ll get an email (sent to the ‘Admin Email’ on the General Settings page) after each update letting you know what worked and what didn’t. If it worked, great! If something failed, the email will suggest you make a post in the support forums or create a bug report.
\n
Here are some other things you should test out:
\n
\n
If you’re running WordPress in another language, we’ll automatically download any available translations for official WordPress importers and the default themes. (More to come here.)
\n
Our password meter got a whole lot better, thanks to Dropbox’s zxcvbn library. Again, subtle but effective. Strong passwords are very important!
\n
Search results are now ordered by relevance, rather than just by date. When your keywords match post titles and not just content, they’ll be pushed to the top.
\n
Developers should check out the new advanced date queries in WP_Query. (#18694)
\n
\n
This software is still in development, so we don’t recommend you run it on a production site. I’d suggest setting up a test site just to play with the new version. To test WordPress 3.7, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightlies”). Or you can download the beta here (zip).
WordPress three seven \nSaves your weary hand a click \nUpdates while you sleep
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:6;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:48:"WordPress 3.6.1 Maintenance and Security Release";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:50:"http://wordpress.org/news/2013/09/wordpress-3-6-1/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:59:"http://wordpress.org/news/2013/09/wordpress-3-6-1/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 11 Sep 2013 20:48:23 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Security";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2675";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:353:"After nearly 7 million downloads of WordPress 3.6, we are pleased to announce the availability of version 3.6.1. This maintenance release fixes 13 bugs in version 3.6, which was a very smooth release. WordPress 3.6.1 is also a security release for all previous WordPress versions and we strongly encourage you to update your sites immediately. […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2033:"
After nearly 7 million downloads of WordPress 3.6, we are pleased to announce the availability of version 3.6.1. This maintenance release fixes 13 bugs in version 3.6, which was a very smooth release.
\n
WordPress 3.6.1 is also a security release for all previous WordPress versions and we strongly encourage you to update your sites immediately. It addresses three issues fixed by the WordPress security team:
\n
\n
Block unsafe PHP unserialization that could occur in limited situations and setups, which can lead to remote code execution. Reported by Tom Van Goethem.
\n
Prevent a user with an Author role, using a specially crafted request, from being able to create a post “written by” another user. Reported by Anakorn Kyavatanakij.
\n
Fix insufficient input validation that could result in redirecting or leading a user to another website. Reported by Dave Cummo, a Northrup Grumman subcontractor for the U.S. Centers for Disease Control and Prevention.
\n
\n
Additionally, we’ve adjusted security restrictions around file uploads to mitigate the potential for cross-site scripting.
Download WordPress 3.6.1 or update now from the Dashboard → Updates menu in your site’s admin area.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/09/wordpress-3-6-1/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:42:"\n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:25:"WordPress 3.6 “Oscarâ€";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"http://wordpress.org/news/2013/08/oscar/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:49:"http://wordpress.org/news/2013/08/oscar/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 01 Aug 2013 21:43:22 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2661";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:368:"The latest and greatest WordPress, version 3.6, is now live to the world and includes a beautiful new blog-centric theme, bullet-proof autosave and post locking, a revamped revision browser, native support for audio and video embeds, and improved integrations with Spotify, Rdio, and SoundCloud. Here’s a video that shows off some of the features using […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:18626:"
The latest and greatest WordPress, version 3.6, is now live to the world and includes a beautiful new blog-centric theme, bullet-proof autosave and post locking, a revamped revision browser, native support for audio and video embeds, and improved integrations with Spotify, Rdio, and SoundCloud. Here’s a video that shows off some of the features using our cast of professional actors:
\n\n
We’re calling this release “Oscar” in honor of the great jazz pianist Oscar Peterson. Here’s a bit more about some of the new features, which you can also find on the about page in your dashboard after you upgrade.
\n
User Features
\n\n
\n
The new Twenty Thirteen theme inspired by modern art puts focus on your content with a colorful, single-column design made for media-rich blogging.
\n
Revamped Revisions save every change and the new interface allows you to scroll easily through changes to see line-by-line who changed what and when.
\n
Post Locking and Augmented Autosave will especially be a boon to sites where more than a single author is working on a post. Each author now has their own autosave stream, which stores things locally as well as on the server (so much harder to lose something) and there’s an interface for taking over editing of a post, as demonstrated beautifully by our bearded buddies in the video above.
\n
Built-in HTML5 media player for native audio and video embeds with no reliance on external services.
\n
The Menu Editor is now much easier to understand and use.
\n
\n
Developer features
\n
\n
A new audio/video API gives you access to metadata like ID3 tags.
\n
You can now choose HTML5 markup for things like comment and search forms, and comment lists.
\n
Better filters for how revisions work, so you can store a different amount of history for different post types.
This release was led by Mark Jaquith and Aaron Campbell, and included contributions from the following fine folks. Pull up some Oscar Peterson on your music service of choice, or vinyl if you have it, and check out some of their profiles:
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:45:"http://wordpress.org/news/2013/08/oscar/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:33:"WordPress 3.6 Release Candidate 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:68:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:77:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 24 Jul 2013 07:25:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:7:"Testing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2649";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:341:"The second release candidate for WordPress 3.6 is now available for download and testing. We’re down to only a few remaining issues, and the final release should be available in a matter of days. In RC2, we’ve tightened up some aspects of revisions, autosave, and the media player, and fixed some bugs that were spotted […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Mark Jaquith";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1325:"
The second release candidate for WordPress 3.6 is now available for download and testing.
\n
We’re down to only a few remaining issues, and the final release should be available in a matter of days. In RC2, we’ve tightened up some aspects of revisions, autosave, and the media player, and fixed some bugs that were spotted in RC1. Please test this release candidate as much as you can, so we can deliver a smooth final release!
Developers, please continue to test your plugins and themes, so that if there is a compatibility issue, we can figure it out before the final release. You can find our list of known issues here.
Revisions so smooth \nWe autosave your changes \nData loss begone!
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:73:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate-2/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:31:"WordPress 3.6 Release Candidate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:66:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:75:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 13 Jul 2013 03:23:17 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:7:"Testing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2639";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:344:"The first release candidate for WordPress 3.6 is now available. We hope to ship WordPress 3.6 in a couple weeks. But to do that, we really need your help! If you haven’t tested 3.6 yet, there’s no time like the present. (But please: not on a live production site, unless you’re feeling especially adventurous.) Think […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Mark Jaquith";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1504:"
The first release candidate for WordPress 3.6 is now available.
\n
We hope to ship WordPress 3.6 in a couple weeks. But to do that, we really need your help! If you haven’t tested 3.6 yet, there’s no time like the present. (But please: not on a live production site, unless you’re feeling especially adventurous.)
\n
Think you’ve found a bug? Please post to the Alpha/Beta area in the support forums. If any known issues come up, you’ll be able to find them here. Developers, please test your plugins and themes, so that if there is a compatibility issue, we can sort it out before the final release.
As you may have heard, we backed the Post Format UI feature out of the release. On the other hand, our slick new revisions browser had some extra time to develop. You should see it with 200+ revisions loaded — scrubbing back and forth at lightning speed is a thing of beauty.
\n
Delayed, but still loved \nThe release will be out soon \nTest it, por favor
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:71:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:4:"href";s:31:"http://wordpress.org/news/feed/";s:3:"rel";s:4:"self";s:4:"type";s:19:"application/rss+xml";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:44:"http://purl.org/rss/1.0/modules/syndication/";a:2:{s:12:"updatePeriod";a:1:{i:0;a:5:{s:4:"data";s:6:"hourly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:15:"updateFrequency";a:1:{i:0;a:5:{s:4:"data";s:1:"1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:8:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Sat, 26 Oct 2013 07:51:36 GMT";s:12:"content-type";s:23:"text/xml; charset=UTF-8";s:10:"connection";s:5:"close";s:4:"vary";s:15:"Accept-Encoding";s:10:"x-pingback";s:36:"http://wordpress.org/news/xmlrpc.php";s:13:"last-modified";s:29:"Thu, 24 Oct 2013 22:40:34 GMT";s:4:"x-nc";s:11:"HIT lax 249";}s:5:"build";s:14:"20130708171016";}', 'no');
+INSERT INTO `wp_2_options` VALUES (2871, '_transient_timeout_feed_mod_ac0b00fe65abe10e0c5b588f3ed8c7ca', '1382817071', 'no');
+INSERT INTO `wp_2_options` VALUES (2872, '_transient_feed_mod_ac0b00fe65abe10e0c5b588f3ed8c7ca', '1382773871', 'no');
+INSERT INTO `wp_2_options` VALUES (2873, '_transient_timeout_dash_4077549d03da2e451c8b5f002294ff51', '1382817071', 'no');
+INSERT INTO `wp_2_options` VALUES (2874, '_transient_dash_4077549d03da2e451c8b5f002294ff51', '
Version 3.7 of WordPress, named “Basie†in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones: Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to […]
The second release candidate of WordPress 3.7 is now available for testing! Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please […]
', 'no');
+INSERT INTO `wp_2_options` VALUES (2876, '_transient_timeout_feed_867bd5c64f85878d03a060509cd2f92c', '1382817072', 'no');
+INSERT INTO `wp_2_options` VALUES (2877, '_transient_feed_867bd5c64f85878d03a060509cd2f92c', 'a:4:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:3:"\n\n\n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:61:"\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:16:"WordPress Planet";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:28:"http://planet.wordpress.org/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"language";a:1:{i:0;a:5:{s:4:"data";s:2:"en";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:47:"WordPress Planet - http://planet.wordpress.org/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"item";a:50:{i:0;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WordPress.tv: Coen Jacobs and Scott Basgaard: WooCommerce 2.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24109";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:78:"http://wordpress.tv/2013/10/25/coen-jacobs-and-scott-basgaard-woocommerce-2-0/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:678:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 26 Oct 2013 04:16:29 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:1;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WPTavern: WPWeekly Episode 125 – Alex Denning And The Future Of WPShout";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10488";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://feedproxy.google.com/~r/WordpressTavern/~3/BrQjYeCM2K0/wpweekly-episode-125-alex-denning-and-the-future-of-wpshout";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3402:"
On this weeks edition of the show, Alex Denning was my special guest along with the new owners of WPShout.com, Fred and David of PressUp Inc. In the show, Alex and I talk about the last four years of publishing content on WPShout.com, what types of opportunities it’s opened up for him, and what it took to put together his annual webhosting review posts. Later in the show, I was joined by David and Fred. We talked about their plans for WPShout.com, their WordPress background and if they have any plans to monetize the site. Since Alex is now going to be focusing on school and has sold his website, I want to take this opportunity to thank him personally for spending his time making WPShout a great resource in the WordPress community.
Next Episode: Friday, November 1st 3 P.M. Eastern – Our special guest for next week’s episode will be Cory Miller of iThemes.com to talk about his experience of leading one of the most successful commercial WordPress theme businesses on the web.
It’s easy to get distracted while writing posts. You’re in a browser and you probably have a few other tabs open with notifications beeping at you from every direction. On top of that, the WordPress post editor has a ton of meta boxes competing for your attention. With all of this going on, how can you focus on crafting beautiful words?
\n
The Distraction Free Writing Mode (DFWM) feature was introduced in WordPress 3.2, giving users the opportunity to find a zen place for writing while staying within the dashboard. It’s launched via the “fullscreen” button in the editor, whisking you away to a screen with an intentionally-limited button selection. These buttons fade away in the top menu as you begin composing. Here’s the default DFWM screen:
\n
WordPress Distraction Free Writing Mode
\n
Enhance Distraction Free Writing Mode with the Visual Editor
\n
Many users love the minimalism of this screen and will write the text of their post but format it later within the regular post editor. Just Writing is a new plugin that aims to keep you in the DFWM for the entire writing and formatting process.
\n
Essentially, the plugin enhances DFWM by adding the visual editor to the top with the other buttons. It also disappears as per the normal behavior. Here’s a look at the enhanced version with all the extra buttons turned on:
\n
\n
With the plugin installed you gain the “Undo” and “Redo” functions, text align, underline. proofreading and everything that you would expect with the visual editor. Beyond that, Just Writing also performs a few more subtle functions:
\n
\n
Adds a Preview button to the right of the Save button
\n
Moves the exit link to the right of the new Preview button as a real button
\n
Re-orders the button list to make more sense
\n
Per-user preferences for enabling Just Writing
\n
Per-user preferences for which buttons to display
\n
\n
Even if you’re not a fan of the visual editor buttons, the extra Preview button is a definite improvement over the DFWM in its default form. Installing the plugin also doesn’t universally apply the settings to all users. Each user is able to choose the buttons he wants to display to create his own zen writing place.
\n
Customize Your Distraction Free Writing Mode Experience
\n
Enhanced? Isn’t the point of the distraction free writing mode to get rid of everything and just write? Sure there are some of you out there who hate the visual editor with a passion, but there are also many who currently depend upon it.
\n
Just Writing isn’t an all-or-nothing plugin. It has an options panel where you can add or remove support for any of the visual editor buttons:
\n
Just Writing plugin options
\n
These options allow you to select the buttons that help you to stay in the flow while composing posts.
\n
Just Writing is available for free in the WordPress plugin repository. If you feel like the Distraction Free Writing Mode is missing a few functions, give this plugin a spin and see if it enhances your writing experience.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 25 Oct 2013 20:21:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:4;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:67:"WPTavern: How to Configure Automatic Core Updates for WordPress 3.7";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10437";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:119:"http://feedproxy.google.com/~r/WordpressTavern/~3/Bl1O4Pw_P3c/how-to-configure-automatic-core-updates-for-wordpress-3-7";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4272:"
So, how does this work?
Today following the release of WordPress 3.7 many users are wondering where the settings page is to configure these options. The answer is that there is no settings page in the WordPress admin. If you upgrade to WordPress 3.7, the default behavior is that you’ll be automatically upgraded for security and minor releases. \n
The fact that it’s security and minor releases only is a very important distinction here. These generally do not break anyone’s website, plugin or themes. If you’re using a plugin that gets broken due to a security release, then that raises a red flag and a few questions about how that plugin is interacting with the WordPress core.
\n
If you want to make changes to WordPress default behavior of keeping your site current with security/minor releases, you will need to edit your wp-config.php file.
\n
I asked Andrew Nacin if there is a plan to expose the core update configuration options to the UI in the future. He replied that there is “no good reason for an opt-out UI now, but as we grow more confident, I imagine an opt-in UI for major versions could be next.” So maybe this is around the corner, but for now, read on to learn how to configure your updates.
\n
3 Basic Options for Core Updates in WordPress 3.7
\n
Let’s simplify things here. You basically have three options for WordPress core updates:
\n
1. Update the core for minor versions (on by default):
\n
If you’re running WordPress 3.7, there’s nothing you need to do to turn this on. You’ll be automatically updated for security and minor releases. Here’s what it would look like in wp-config.php:
\n
define( \'WP_AUTO_UPDATE_CORE\', \'minor\' );
\n
2. Disable all core updates:
\n
If you’re uncomfortable with WordPress keeping your site current with minor releases and security updates, here’s how you turn it off. Add this to your wp-config.php file:
\n
define( \'WP_AUTO_UPDATE_CORE\', false );
\n
However, I would encourage you to read this definitive guide from Nacin before turning off core updates completely.
\n
3. Get all updates, including development, major and minor releases:
\n
This is the cowboy option that is probably more likely something you’d want to enable on a personal blog. If you turn this on in wp-config.php, you’ll be automatically updated for every release that WordPress puts out:
\n
define( \'WP_AUTO_UPDATE_CORE\', true );
\n
You can also apply all of the above via new filters added in WordPress 3.7, as outlined in the codex article on Configuring Automatic Background Updates. Filters are also available for plugin, theme and translation updates should you want to add those in the mix, too.
\n
If you’re scratching your head and trying to get your brain around all of these options, wondering what to do, then just leave the default options in place and don’t mess with it. WordPress strongly discourages disabling the automatic security updates. These updates have been heavily tested and are quite safe. Getting hacked because you didn’t want to take security updates would be really lame. The best option is to leave security updates in place.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 25 Oct 2013 16:37:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:5;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:62:"WPTavern: WordPress 3.7 Released: WordPress Now Updates Itself";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10414";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:113:"http://feedproxy.google.com/~r/WordpressTavern/~3/l-3I_2jNRJ4/wordpress-3-7-released-wordpress-now-updates-itself";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4510:"
WordPress 3.7 has been released and the big news is that WordPress now has the ability to update itself. This begins a new era of automatic background updates for security and minor releases. Web hosts around the world have been eagerly awaiting this release and are cheering its arrival. The upgrade process has been greatly improved and boy is it ever solid:
\n
We ended the WordPress 3.7 beta cycle with 112,434 automatic background updates attempted and not a single critical failure.
Not a single critical failure. Try blaming Nacin for that, folks.
\n
WordPress 3.7 is dubbed Basie, after Count Basie, an American jazz pianist with an unparalleled talent for improvisation. He learned to improvise while playing along to silent films for a local movie theater. Before he was famous, Basie sharpened his improv skills by playing jazz piano at parties and resorts. He went on to create his own jazz orchestra and mentor many other musicians along the way.
\n
Count Basie
It seems fitting that this release honors Basie. The web is full of hackers who seek to exploit any vulnerability they can find in WordPress. Users have to be quick to improvise and secure our sites as soon as minor releases are shipped out. Automatic background updates give millions of users the ability to stay current with each security update. The beautiful thing is that it’s totally effortless on the part of the user.\n
On the surface you won’t see too many flashy UI improvements, but under the hood you’ll find a better engine. When you search WordPress you’ll see better and more relevant results. Developers will be happy to find improved support for multisite, advanced date queries and a ton of new functions to play with. You can review every last detail on the dedicated 3.7 release page.
\n
wp-admin/about.php
WordPress 3.7 has a beautiful about.php page that you can only see if you upgrade. Hint, hint. It includes a live demo of the new password strength meter that will help you to create stronger passwords.\n
This release also includes better global support for translations, meaning that it will automatically install language files and silently keep them up to date. There’s a trend here: WordPress is doing a lot more for you in the background so that you can focus on creating content. This sets the bar pretty high for what users can expect from their publishing software in the future.
\n
Now that WordPress can update itself, I am once again reminded that this software is a living, breathing thing. Andrew Nacin, Dion Hulse and Jon Cave had the help of 211 contributors in shipping 3.7. Hats off to these folks – they’ve worked hard and done well.
\n
Time to celebrate with a few tunes from Count Basie and his jazz orchestra to kick off your upgrades. By the way, if you’re configuring automatic updates for everything, this is the last time you’ll ever have to update WordPress manually.
Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones:
\n
\n
Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to apply maintenance and security updates. Most sites are now able to automatically apply these updates in the background. The update process also has been made even more reliable and secure, with dozens of new checks and safeguards.
\n
Stronger password recommendations: Your password is your site’s first line of defense. It’s best to create passwords that are complex, long, and unique. To that end, our password meter has been updated in WordPress 3.7 to recognize common mistakes that can weaken your password: dates, names, keyboard patterns (123456789), and even pop culture references.
\n
Better global support: Localized versions of WordPress will receive faster and more complete translations. WordPress 3.7 adds support for automatically installing the right language files and keeping them up to date, a boon for the many millions who use WordPress in a language other than English.
\n
\n
For developers there are lots of options around how to control the new updates feature, including allowing it to handle major upgrades as well as minor ones, more sophisticated date query support, and multisite improvements. As always, if you’re hungry for more dive into the Codex or browse the over 400 closed tickets on Trac.
\n
A New Wave
\n
This release was led by Andrew Nacin, backed up by Dion Hulse and Jon Cave. This is our first release using the new plugin-first development process, with a much shorter timeframe than in the past. (3.6 was released in August.) The 3.8 release, due in December, will continue this plugin-led development cycle that gives much more autonomy to plugin leads and allows us to decouple feature development from a release. You can follow this grand experiment, and what we’re learning from it, on the make/core blog. There are 211 contributors with props in this release:
Enjoy what may be one of your last few manual updates. See you soon for version 3.8!
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 22:35:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:83:"WPTavern: Disrupting The WordPress Commercial Theme Market – A 3themes Experiment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10398";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://feedproxy.google.com/~r/WordpressTavern/~3/w5xTWijIX1o/disrupting-the-commercial-theme-market-a-3themes-experiment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3501:"
The questions are simple but the answers are not. Can a theme that is built for developers using best practices be successful in the commercial space? Can a commercial theme add value without adding functionality and bloat? Those are the questions that a trio of WordPress developers are going to try to answer with their 3them.es experiment.
\n
Michelle Schulp of Marktimemedia has published her experience at Pressnomics 2013 and the reasoning behind the new experiment. While at the event, she attended the Commercialization in the WordPress ecosystem panel session featuring business owners Pippin Williamson, Carl Hancock, Cory Miller, and Helen Souness. In that discussion, the following question was asked. How do you build a commercial digital product, especially one built using the GPL, that adds value in a way that is distinguishable from its competitors? According to Michelle, the panel was quick to dismiss commercial themes as being easily commoditized.
\n
After talking with a number of people at the conference, Michelle decided to partner with Kiko Doran, and Josh Broton to start the 3themes experiment.
\n
3themes is a unique collaboration because we will also be documenting it every step of the way: recording our weekly meetings on Google Hangout in the form of a podcast, blogging about our process on the website, hosting code on GitHub, voicing our thoughts on Twitter, etc. We want this not only to be a case study in the commercial theme marketplace, but in working as a small distributed team and problem solving just as we would for a client. The hope is to create some dialogue in the WordPress community, as well as just have some fun and see what great things we can build together.
\n
If you’re interested to see where this goes, check out the live Google hangout at 8:30 PM CST on Tuesday nights as they begin the process of experimentation by first building their website and brand.
\n
This is going to be an excellent experiment and I bet many are curious as to what the end result will be. If you remember, Justin Tadlock performed a similar experiment via ThemeForest with mildly successful results.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 21:21:11 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:105:"WordPress.tv: Brian Krogsgard and Pippin Williamson: WordPress Plugins, Code And The Ecosystem In General";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24111";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://wordpress.tv/2013/10/24/brian-krogsgard-and-pippin-williamson-wordpress-plugins-code-and-the-ecosystem-in-general/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:759:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 20:37:15 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:78:"WPTavern: Add Your Meetup Group to the Central WordPress Account on Meetup.com";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10313";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:130:"http://feedproxy.google.com/~r/WordpressTavern/~3/o_k5yMGxjF4/add-your-meetup-group-to-the-central-wordpress-account-on-meetup-com";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2127:"
If you run a local WordPress meetup, you’re invited to move it under the central WordPress account on meetup.com. Jen Mylo created a form where meetup coordinators can submit their meetup to be included. The awesome benefit is that WordPress will cover the meetup.com dues for your listing.
\n
Jen posted a number of simple guidelines that were created by active meetup group volunteers. Your group will have to fulfill these before submitting to the central account. I won’t list them all here, but this is a summary: Essentially, you can’t use your local meetup to pimp out your business or yourself. Leave Mr. Salesman at home and join a meetup to connect with other WordPress fans. Meetups are for the benefit of the community and polite and respectful behavior is expected. If you organize a meetup that qualifies, use the form to get in touch with Jen Mylo.
\n
A some point in the future, meetup group listings will most likely switch over to using SupportPress, as they do for WordCamps. For now, they’ll be consolidating all the meetups on meetup.com. Please note that the meetup interest form is not just for new meetup groups but is also available for existing WordPress meetups that want to transfer the group over to the central account.
\n
It’s very cool that WordPress is supporting local meetups by covering their meetup.com dues. Help spread the word to get this information out there to local meetup organizers that you know.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 19:33:57 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:10;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:69:"WPTavern: Jarvis: A Free Quicksearch Tool for the WordPress Dashboard";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10359";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:120:"http://feedproxy.google.com/~r/WordpressTavern/~3/ntFV7bakzqY/jarvis-a-free-quicksearch-tool-for-the-wordpress-dashboard";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3233:"
If you’ve ever used a WordPress site with thousands of posts and/or hundreds of pages, you might have found it a challenge to quickly navigate to the content you’re looking for. Jarvis is a new dashboard quicksearch plugin that addresses this very problem.
\n
\n
Created by the folks at The Web Development Group, the Jarvis plugin lets you easily search anything that you’re looking for inside the WordPress admin area, including plugins, themes, content, settings pages and everything else.
\n
Jarvis is available on WordPress.org but it also has its own homepage where you can find a demo that shows how it works:
\n
\n
While different areas of the WordPress dashboard do include a search option, i.e. installed plugins or post content, there is no centralized search form to search everything. Ever install a plugin and then can’t, for the life of you, find its settings page? The Jarvis search helps you to instantly locate it. I can see how this could be very useful for a new user. For example, one might not know that the import feature is located under Tools. Using Jarvis he can quickly search and navigate to the import screen.
\n
There’s another similar tool out there called WP Butler, which also launches from the admin bar. I don’t know if Jarvis grabbed some inspiration from its code or not but the tools seem somewhat similar in that they both make it easier to get to pages in the WordPress admin.
\n
Beyond just helping you find things, the Jarvis plugin allows you to quickly zoom through the WordPress dashboard. For many, typing in a search box is second nature and much quicker than mousing around to the correct menu. Jarvis search appears to be lightning fast. This is one plugin that seems to be universally beneficial to both new and experienced WordPress users.
\n
The folks at The Web Development Group created Jarvis to fill a need they saw in the WordPress admin area. This tool is the first of many that they plan to release. You can download it for free at the WP Jarvis homepage or via the Add New plugins page within the WordPress admin.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 17:35:19 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:11;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:77:"WordPress.tv: Daniel Espinoza: Creating and Selling Premium WordPress Plugins";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23010";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:94:"http://wordpress.tv/2013/10/24/daniel-espinoza-creating-and-selling-premium-wordpress-plugins/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:710:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 14:33:43 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:12;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:68:"WPTavern: Pulse: An Example WordPress Plugin Using the Heartbeat API";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10304";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:119:"http://feedproxy.google.com/~r/WordpressTavern/~3/HuYeePJabQ4/pulse-an-example-wordpress-plugin-using-the-heartbeat-api";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3401:"
I’ve long been a fan of WordPress developer Jeffrey Pearce, better known online as Jeffikus. He’s created several educational resources for WordPress over the past few years. Today he released Pulse on github. Pulse is an open source plugin that will help developers get started with Heartbeat API development.
The Heartbeat API was a new feature as of WordPress 3.6. It currently powers the autosave, post locking and log-in expiration warning that users receive while writing posts. This API works in the background to manage communication between a user’s browser and the server, enabling the creation of WordPress-powered asynchronous apps.
\n
Jeffikus’ Pulse plugin example demonstrates how to do two simple things:
\n
\n
Outputs console data for a logged in user – the object will state that the user is logged in: \n
\n
Outputs console data for a non logged in user – the object will state that the user is not logged in: \n\n
\n
\n
This plugin doesn’t actually perform any specific function, except to show you how you can interact with the WordPress Heartbeat API. It’s a learning tool to help developers get started building their own plugins.
\n
At the bottom of the Pulse plugin readme file on github Jeffikus includes a list of all the tutorials on the Heartbeat API that helped him to learn about it in the first place. If it wasn’t for other developers writing about what they are learning, he probably wouldn’t have had the inspiration to create this handy starter plugin. Hopefully, developers can use it to build something cool and help contribute back to the Heartbeat API documentation.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 22:04:46 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:13;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WPTavern: Your Members Plugin Closes Its Doors, Releases Assets Under GPL";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10307";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:124:"http://feedproxy.google.com/~r/WordpressTavern/~3/YCmv-tDNTiU/your-members-plugin-closes-its-doors-releases-assets-under-gpl";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3069:"
The membership plugin Your Members has announced that they are ceasing operations. Your Members, which has been around since 2008, was one of the early successful commercial plugins in the membership space. The tale of the plugin’s demise is an interesting one because it has more to do with development than anything else.
\n
We started work on YM13 early this year and it became clear the new version wasn’t going to work with our current codebase. Indeed it reached the stage where even little changes are causing massive issues. So in August it was decided that we needed to make YM13 the last release on the current codebase and start on YMv2. I was rereading the blog posts that are sitting in drafts explaining where we were going and why, we never published them.
\n
It became clear it was just not financially feasible to build YMv2 we estimated it was 6 to 9 months work to do what we wanted to do properly and to do it we need to do it properly. We also believe we can’t continue to support and update the existing codebase.
\n
While the developers of Your Members received offers to be purchased, they declined them as they didn’t feel the buyer would provide the community with genuine support and were after their email list instead. Thus, it was decided that Your Members be withdrawn from the market and would no longer be for sale.
\n
One of the unique aspects of Your Members is that it contained a sunset clause. Now that the plugin has been withdrawn from the market, that clause has been invoked meaning everything in the Your Members download, including assets are available under the GPL license. Prior to closing, Your Members operated under a split license with the PHP licensed under the GPL and all other files under a different license. The plugin as well as the documentation will now live on Github.
\n
Is This The Way To Close a Business?
\n
It’s disappointing to see any business fold but I have to hand it to the folks behind Your Members. They are making everything open source and laying the ground work for anyone else who wants to try to pick up where they left off. How do you feel about the way they closed up shop?
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 21:00:22 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:14;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:80:"WPTavern: WordPress Host WP Engine Will Not Support Automatic Background Updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10293";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:132:"http://feedproxy.google.com/~r/WordpressTavern/~3/1vIBBXFTK7M/wordpress-host-wp-engine-will-not-support-automatic-background-updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:5152:"
Managed updates have always been one of the main selling points for WP Engine’s WordPress hosting packages. Customers have the luxury of never having to update their own sites because WP Engine keeps them on the cutting edge:
\n
We keep your site secure without you having to think about it. Whenever WordPress issues a security update, we test it, and then proactively apply it to your site.
\n
However, the company announced today that it will not be offering support for WordPress’ new ability to update itself.
\n
WP Engine will not be supporting the background updates for WordPress. We will continue managing the updates for your installs, testing each release on our infrastructure, and fully managing the releases of the minor updates. For example, when there is a security update to WordPress, as soon as the patch is released, we’ll update all customer sites to ensure we continue to keep your sites safe and sound.
\n
\n
I asked WP Engine to clarify this statement. Does this mean that customers cannot enable automatic updates via the WP_AUTO_UPDATE_CORE define in wp-config.php? It seems that is the case. Their official policy is that automatic background updates will be disabled and customers will not be able to turn them on:
\n
The function will be disabled because when we update we also automatically create site backups for you.
\n
WP Engine will still continue to update customer sites as they always have. There’s no change here, but it is always interesting to note when a company restricts access to something that will soon be native to WordPress.
\n
Playing it Safe
\n
One huge advantage of enabling automatic background updates for WordPress is that a site can get those security improvements the very same day they are released with no waiting time. The same applies with major releases, plugins and themes, if one wants to live adventurously. However, if you host with WP Engine, you’ll have to settle with living on the safe side.
\n
WP Engine customers will either need to manually update their sites through the dashboard or wait for WP Engine to initiate those updates. The company tries to ship security updates out as soon as possible and these updates are usually applied within the same day. The reason for this is to keep customers from accidentally breaking their own sites without backing them up. WP Engine customers will be upgraded within a week or two of the 3.7 release, as per their announcement today. For many customers, this is exactly why they have chosen WP Engine. Not having to worry about testing major updates is a huge relief for WordPress site admins.
\n
The Future of Managed WordPress Hosting: A Growing List of Restrictions
\n
I am surprised that this popular WordPress hosting company is preventing its customers from taking advantage of one of the most exciting new features of WordPress 3.7. Although customers always have the freedom to manually update their sites early, they will not be permitted to allow WordPress to update itself. This makes sense as a company policy, but as a developer I can’t help but see it as a limitation.
\n
Why not allow developers to override the WP Engine restrictions via WP_AUTO_UPDATE_CORE in wp-config.php? Your average user isn’t likely to venture into this file to make any modifications, so it would be safe to assume that anyone who applied those settings knew what they were doing. The WP Engine infrastructure, however, does not allow for this.
\n
WP Engine does a lot of things right when it comes to speed and prioritizing the customer’s ability to have a development environment. The company is a proven and reliable WordPress host that I would recommend to anyone. For many customers, trading freedom for security is well worth it in order to have their sites fully “managed.”
\n
But what about the others who may want the freedom to let WordPress update itself? The company has very good reasons for limiting developers from doing this. But will the number of restrictions continue to grow? Managed WordPress hosts are a relatively new development in the marketplace of WordPress services. It will be interesting to see how their policies develop in relationship to WordPress core enhancements, which more often than not err on the side of giving more freedom to the user.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 19:13:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:15;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:63:"WPTavern: How To Navigate The WordPress Ecosystem As a New User";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10237";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:115:"http://feedproxy.google.com/~r/WordpressTavern/~3/gJiQc_Kl5ZA/how-to-navigate-the-wordpress-ecosystem-as-a-new-user";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6305:"
The WordPress ecosystem is made up of thousands of websites, code repositories, blogs, forums, etc. To a new WordPress user, it can be intimidating or downright frustrating figuring out where to go. My goal with this post is to provide a map for those who are brand new to the world of WordPress to be able to navigate with confidence. I’ve personally experienced being in a city I’ve never been to before and not knowing which direction to travel to reach my destination. It’s a frustrating experience. This guide ought to alleviate those frustrations for WordPress first timers.
\n
Themes
\n
So the default theme isn’t your cup of tea. Before going to Google and searching for “free WordPress themes” head over to the WordPress Theme Repository. It’s the safest place to obtain a new design for your site. Themes that are added to the repository are scanned and go through a thorough checklist before they are accepted. All of the themes hosted on the repository are free of charge. If you want to know the reasons why using Google to find free WordPress themes is bad, watch this video by Leland of Themelab.com.
\n\n
Plugins
\n
Much like the theme repository, WordPress has its own plugin repository filled to the brim with plugins to add functionality to your WordPress powered website. The WordPress plugin repository is the safest place to get code to add features to your website. Plugins are scanned and reviewed by volunteers before they are accepted into the repository. However, this does not guarantee that the code will function properly or is 100% secure for your website.
\n
Support
\n
The WordPress.org support forums enable the community to help each other. Creating an account is free of charge as is the support. The forums are staffed by volunteer moderators that do their best to help as many people as possibly every day. With so many people seeking help, you should exercise patience when using the forums.
\n
Documentation
\n
If you feel a little adventurous and want to try helping yourself first, you can visit the Codex. This Codex is like a repository for all of the detailed information for how WordPress works, inside and out. The main page of the Codex provides a number of great links to those starting out with WordPress.
\n
Learning WordPress Through Video
\n
While there is no official classroom to learn WordPress material, WordPress.org has the next best thing in WordPress.tv. WordPress.tv is the official website dedicated to WordPress that contains recorded sessions from WordCamps held all over the world. In fact, there is an entire how to section on the website dedicated to tutorial type videos.
\n\n
Creative Inspiration
\n
If you’re not sure what WordPress is capable of or have run into a creative block, you should browse through the WordPress showcase. The showcase is a collection of websites that have taken WordPress to the next level. There are a lot of great looking designs as well to help provide inspiration.
\n
\n
WordPress Face to Face
\n
While not officially a part of the WordPress.org project, Meetup.com is used by WordPress users all across the world to put together local meetups that bring like-minded people together. I’ve attended multiple WordPress meetups in my area and I’ve helped a lot of new WordPress users find their way. It’s one of the best forms of learning and getting WordPress help that I can imagine.
\n
Keeping Tabs On WordPress Development
\n
While there are not many posts on the official WordPress blog, it is where official news of releases are published.
\n
Installing WordPress On Your Phone
\n
There is an official WordPress app for most of the smart phone devices currently out on the market such as iOS devices, BlackBerry, and Android. If you’d like to install WordPress on your phone, be sure to check out the mobile section of the WordPress.org website to see if there is one available for your device.
\n
Wrap Up
\n
Now you might be wondering, why didn’t I include this site or that site when putting this guide together. The purpose of the guide is to provide a map that contains the essential information new users need to know. Using this knowledge as your foundation, you should find yourself more comfortable in the WordPress ecosystem. After getting to grips with WordPress, new users will expand beyond these pillars and discover the other resources that are on the web dedicated to WordPress. It doesn’t make sense to point new users into different directions when the above information is all they really need to get started.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 16:59:54 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:16;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:100:"WordPress.tv: Greg Douglas: Designing Awesome WordPress Websites For Small To Medium Size Businesses";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23212";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:117:"http://wordpress.tv/2013/10/23/greg-douglas-designing-awesome-wordpress-websites-for-small-to-medium-size-businesses/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:750:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:37:54 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:17;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:65:"WordPress.tv: Ben Lobaugh: Taking Flight With JetPack Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24051";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:82:"http://wordpress.tv/2013/10/23/ben-lobaugh-taking-flight-with-jetpack-development/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:686:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:24:07 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:18;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:51:"WPTavern: Monitor WordCamps Online with WP Armchair";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10260";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:103:"http://feedproxy.google.com/~r/WordpressTavern/~3/fDHtRUBVmHs/monitor-wordcamps-online-with-wp-armchair";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:7386:"
David Bisset may have been the first person to coin the term “Armchair WordCampersâ€, referring to those who live vicariously through WordCamp attendees via Twitter. The concept sparked an idea for him and he decided to create WP Armchair for this very audience.
\n
His first version was actually created for the WordPress 10th Anniversary, a site he collaborated on with the WordPress Foundation.
\n
Bisset is a WordPress and BuddyPress developer. He also helps to organize WordCamp Miami. The inspiration for creating WP Armchair came from his experiences as an organizer and an attendee at WordCamps.
\n
I monitor WordCamps and conferences via Twitter hashtags and simply thought there was a better way. I notice that a lot of people are interested in monitoring conference activity as well. Even those that attend conferences – I see many of them with their laptops open to Tweetdeck or some Twitter client. I figured there should be a better way, especially since social networks like Instagram are becoming more popular.
\n
On top of that, as a WordPress developer, I wanted the solution running on WordPress. And instead of passively showing pictures and tweets, the site would naturally store these as custom post types. So it serves as an archive of the conference.
\n
In a way, the WP Armchair websites are chronicling the history of these WordPress events as seen through their respective hashtags on Twitter, Instagram, Vine and Flickr. Right now, each event is a separate site but Bisset said that he’s likely to combine them all into a multisite installation somewhere in the near future.
\n
WP Armchair Monitoring WordCamp Europe
When WP Armchair monitored WordCamp San Francisco the site was able to aggregate 1,600 tweets and 1,020 photos. For WordCamp Europe, the site captured even more – in the end it was 4,223 tweets and 1,500 photos. WordPress fans monitoring from afar were able to get a taste of how awesome these events were and perhaps even resolve to attend next year.\n
What Plugins Make WP Armchair Work?
\n
If you visit any of the WP Armchair sites you’ll see support for videos, pictures, embedded tweets, post favoriting and more. There’s a lot going on behind the scenes to bring all of this event information into the site.
\n
I asked Bisset to tell me about some of the important plugins he uses to make WP Armchair work and he gave us a look behind the scenes.
\n
I wrote three plugins that scanned Twitter, Instagram, and Flickr for tweets, photos, and videos based on a hashtag and saved them as custom post types. These make up the bulk of the site, but I also used the following plugins:
\n
Bulk Delete – comes in handy when you want to get rid of alot of tweets or instragram posts that aren’t related to the conference (maybe you used a bad keyword or hashtag). Since tweets can come in 30 or 40 at a time, this plugin does save a little bit of time.
\n
Love It Pro – was great to drop in and give site visitors the ability to mark posts as favorites. It was a fun experiment during WordCamp San Francisco.
\n
Gravity Forms – on some installs, it allows us to quickly get forms (surprise!) in place for user registration, so some people could upload their own photos to the site via the WordPress Mobile app or a custom form.
\n
Search Everything – allowed the cool ability to search for tweets, instagram photos, etc that were created by a specific user or via keyword. As an example, you could search for your own name and see if anyone mentioned you on whatever social networks the WPArmchair site was scanning. Unfortunately, it looks like Search Everything isn’t being supported as of now, so I recommend switching over to SearchWP.com.
\n
WP Armchair Theme and Plugins are GPL and Available on github
\n
Bisset has made both the WP Armchair Theme and plugins available on his github account. He invites contribution to the project. “There are no doubt better and different ways to do what the site does, and I welcome anyone who wants to improve it,” he said.
\n
The WordPress Foundation has also made some of the WP Armchair functionality available to its officially hosted WordCamp site using a new plugin called Tagregator, which is also open to contribution.
\n
Bisset believes that WP Armchair is a valuable resource for both those at home and those who are attending WordCamp events. It has even been used by The Front-End Design Conference, a non-WordPress event, to aggregate the references to the event on social media. Ultimately, WP Armchair is about bringing people and ideas together.
\n
Even if you did go to the conference, you would be able to see everyone’s photos there instead of a gallery of a smaller group of photos the site admin posted a few days later. You also get to see who authored interesting tweets and potentially find new people to follow this way… people that are in theory just as motivated by WordPress as you are.
\n
Monitoring posts from WordCamps online is by no means a replacement for actually attending the event. Realistically, you won’t be able to attend every WordCamp in the world, but WP Armchair gives you a better way to monitor online from wherever you may be. Many thanks to David Bisset for taking us behind the scenes and for creating a way for WordPress fans around the world to join in on events together.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:01:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:19;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:27:"Donncha: WP Super Cache 1.4";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:29:"http://ocaoimh.ie/?p=89498597";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:48:"http://ocaoimh.ie/2013/10/23/wp-super-cache-1-4/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1932:"
WP Super Cache version 1.4 is out now. This release finally removes the mfunc, mclude and dynamic-cached-content tags as I warned about three months ago.
\n
If your site uses that dynamic cached content functionality do not upgrade yet. There is a replacement dynamic cached content system but it’s not compatible so you’ll need to update your themes and helper plugins. It’s not difficult but there’s a lot to take in. I hope the example plugin and explanation in that post gets you most of the way there.
\n
If you don’t use mfunc and it’s friends then you should upgrade immediately and it should be painless.
\n
This release also has a few bug fixes and other features. It will now try to repair broken installs after a site migrates. It will update the wp-config.php and rebuild wp-content/advanced-cache.php. It will also delete tags and category cache files when a post publish status changes.
The second release candidate of WordPress 3.7 is now available for testing!
\n
Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta area in the support forums if you think you’ve found a bug, and if any known issues are raised, you’ll be able to find them here.
\n
Developers, please test your plugins and themes against WordPress 3.7. If there is a compatibility issue, let us know as soon as possible so we can deal with it before the final release.
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 00:05:30 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:21;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:56:"WPTavern: WordPress 3.7 Introduces Advanced Date Queries";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10239";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:108:"http://feedproxy.google.com/~r/WordpressTavern/~3/SBf0LiyU_A4/wordpress-3-7-introduces-advanced-date-queries";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3933:"
WordPress 3.7 should be arriving any day now. Everyone is excited about WordPress’ new ability to update itself for security and minor releases (and even themes and plugins, if you’re adventurous). The new password strength meter is highlighted on the About page for the release with a live demo that users can play with after they upgrade. But there’s one cool new feature that hasn’t received as much fanfare: advanced date queries.
You might be wondering what’s so exciting about advanced date queries. Alex Mills, better known online as “Viper007Bond” was the originator of the patch to improve date arguments for WP_Query, a class for querying the database for specific content. Up until now, WordPress had no easy way to get a set of posts that fall within a specific date range.
\n
A few months ago, Alex introduced a patch that adds the ability to get complex date-based queries when fetching both posts and comments from the WordPress database. Code examples can be found on his post where he roughly outlines a few ways one might implement date-based queries.
\n
There are virtually unlimited combinations. Here are a few examples of what is possible with the new advanced date queries:
\n
\n
Query all posts written on a specific day over the years, ie. the author’s birhtday
\n
Query all the posts written before or after a certain date
\n
Query all posts written on Monday mornings
\n
Query 5 most recent posts made after midnight but before 5am
\n
\n
You can check out all the date parameters in the codex and browse a few of the examples. Imagine all the fun that could be had here! The advanced date queries should enable developers to do some interesting things with displaying timelines, custom archives, selectively random post widgets and anything else imaginable with date ranges.
\n
Advanced date queries replaces bulkier methods used in the past, such as adding a filter to posts_where. How did we ever live without it? Check out the canonical discussion on Trac to explore the evolution of this feature and put it to good use in WordPress 3.7.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 23:28:08 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:22;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:57:"WordPress.tv: Topher DeRosia: Intro To Plugin Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23066";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:74:"http://wordpress.tv/2013/10/22/topher-derosia-intro-to-plugin-development/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:670:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 21:43:20 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:23;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:58:"WordPress.tv: Tharon Rodriguez: Getting Familiar With PODS";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23060";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:75:"http://wordpress.tv/2013/10/22/tharon-rodriguez-getting-familiar-with-pods/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:666:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 21:20:42 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:24;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:72:"WPTavern: ForumEngine Turns WordPress Into a Forum Via Custom Post Types";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10158";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:124:"http://feedproxy.google.com/~r/WordpressTavern/~3/5-EF68Mw45g/forumengine-turns-wordpress-into-a-forum-via-custom-post-types";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4745:"
EngineThemes.com recently released version 1.0 of their latest project, ForumEngine. ForumEngine is a theme that uses Custom Post Types to turn WordPress into a forum. I caught wind of this new theme via a review published on WPLift by Joe Fylan. It’s nice to finally see theme companies thinking outside the box for once instead of whipping up the next boring portfolio theme. I have not had the opportunity to try out the theme but based on Joe’s review, there is one thing in particular that may be a showstopper for a lot of people.
\n
\n
Unfortunately, in order to use this theme, you’ll either need a brand new WordPress install, separate WordPress install, or be willing to see your existing content disappear.
\n
With ForumEngine installed on your site, the site now functions as a forum, which the threads accessed directly from the homepage. Any existing posts that might’ve been on the site or those you create afterward activating the theme will now no longer be accessible, essentially removing the main functionality of WordPress: creating posts so bare that in mind if you wish to use this alongside a regular blog – you would need a separate installation. – Joe Fylan
\n
I remember when the discussion around bbPress 2.0 was taking place. It was suggested that using a plugin that utilizes custom post types be used. At the time, bbPress was transitioning from being stand alone software into a WordPress plugin. Now we have a theme that is using custom post types and if I remember correctly, community members like Justin Tadlock frown on this practice. I reached out to John James Jacoby to get his thoughts on this theme as well as how its implementation compares with bbPress.
\n
bbPress 2.x does use custom post types, and actually uses three of them. Forums is only a post type because of a lack of taxonomy term meta, otherwise it would be a custom taxonomy. CPT’s are fine, though it’s too bad it completely overrides the blog. Seems pretty pointless to make users decide to have either a blog or a forum, and not both.
\n
bbPress takes other things into consideration, like forum profiles VS blog author archives, separate roles for the forums VS the blog, and goes the extra mile so forums only intersect with the blog when you want it to. If a theme was really going to do this “correctly†it should probably use a CPT for topics, and comments (with a custom comment form template) for replies; that way the behavior is familiar.
\n
Forums are such an integral part of online communities, if I were looking for forums inside of WordPress, baking it into a commercial theme that won’t work with my existing blog doesn’t sound very appealing.
\n
While I like the design and the thinking out of the box idea in this theme, not being able to use it with an existing blog is a huge blow towards it ever becoming a popular alternative to bbPress or other forum solutions. However, thanks to the advice provided by John James Jacoby above, there are ways of going about it that make sense. I hope to see other theme providers give it a shot. At the very least, it would be good to see theme providers list native bbPress support as one of their selling points.
WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s over. If there’s one near you, check it out! In addition to getting to know your local WordPress community, most WordCamps attract some traveling visitors a well, giving you the chance to meet contributors to the WordPress open source project and get involved yourself.
\n
Here are the WordCamps on the schedule for the rest of this year.
No WordCamps on this list in your area? Not to worry! There are thriving WordPress meetups all over the world where you can meet like-minded people, and we maintain a library of WordCamp videos at WordPress.tv.
\n
Get Involved
\n
\n
If you’re interested in organizing a WordCamp in your area, check out our WordCamp planning site.
\n
If you’re interested in starting a WordPress meetup in your area, let us know and we can set up a group on meetup.com for you.
\n
And speaking of WordCamp videos, we’ve recently enabled volunteer-generated subtitles/closed captioning of the videos on WordPress.tv to make them more accessible. Interested in helping? Check out the WordPress.tv subtitling instructions.
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 19:25:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Jen Mylo";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:26;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:67:"WPTavern: BuddyPress Theme Development Book Now Available on Amazon";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10213";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:109:"http://feedproxy.google.com/~r/WordpressTavern/~3/I9fzJHc5q1c/buddypress-theming-book-now-available-on-amazon";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3233:"
If you want to grow in your BuddyPress skills, there’s a new book on the market that you’ll want to get your hands on. BuddyPress Theme Development has just hit Amazon. The digital version is out now and you’ll be able to get a printed copy on October 24th, 2013. Packt will also have a version of the book that includes access to code for those who want to “follow along at home” with the code examples.
\n
Written by expert BuddyPress theme developer and contributor, Tammie Lister, this book will help you learn how to create BuddyPress themes from start to finish. BuddyPress Theme Development provides a comprehensive guide to BuddyPress theming with practical, hands-on tutorials that will put you on the path to building your own themes.
\n
Tammie walks you through the basics, such as how to use CSS to make changes to themes. She also includes more advanced topics like creating custom templates for BuddyPress components. You’ll learn how to add functionality to enhance your community, including how to build your own widgets into your theme. Once your theme is finished, Tammie shows you how to run theme-checks to ensure that it’s ready for launch.
\n
I checked in with Tammie for a mini Twitter interview on the details of the book. She has been working on it since just after BuddyCamp Miami, which took place in early April of this year. Many theming books are outdated even before they hit the shelves, but Tammie has made sure that everything in her book is up to date with the upcoming BuddyPress 1.9 release. She is the developer heading up the work on the new template pack that will ship with BuddyPress 1.9.
\n
If you’re a BuddyPress developer looking for resources to keep your skills sharp, BuddyPress Theme Development is a good one to add to your collection. Packt Publishing couldn’t have found a better person to write this book. Get your copy today on Amazon or pre-order the printed edition from Packt Publishing to get the eBook and PacktLib access thrown in for free.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 18:46:45 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:27;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:56:"WPTavern: Seamless Integration for WordPress and Magento";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10189";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:108:"http://feedproxy.google.com/~r/WordpressTavern/~3/F6uyX3Wt0E8/seamless-integration-for-wordpress-and-magento";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6448:"
Believe it or not, there are a lot of WordPress fans in the Magento community. While Magento provides supremely robust e-commerce capabilities with support for complex product variations and multiple shipping options, it’s entirely lacking in CMS features. As a result, many sites merge WordPress and Magento in order to take advantage of each platform’s unique strengths.
\n
However, it is unbelievably difficult to make WordPress and Magento work together in a seamless fashion without some sort of bridge. That’s where James Kemp‘s Magento WordPress Integration plugin comes in. It does all the fancy footwork necessary to make your Magento store look like part of your WordPress site.
\n
\n
The Magento WordPress Integration plugin (MWI), is a solution that Kemp has been developing for several years. It provides the easiest way to get blocks, sessions and products from your Magento store and is capable of doing the following:
\n
\n
Bring out any of the default Magento Blocks in your WordPress theme
\n
Bring out any Magento blocks that you have created yourself
\n
Bring out any static blocks that you have made in your Magento admin area
\n
Show Magento products on a WordPress post or page by using the shortcode add-on
\n
Show products from any category using the widget add-on
\n
\n
Think there’s no demand for this? Think again. Kemp’s plugin has been downloaded more than 10,000 times. To celebrate, Kemp has made the code available on BitBucket. He’s hoping that having the code available to the public will help to spark more contribution.
\n
James Kemp, creator of the Magento WordPress Integration plugin
I’ve been following James Kemp’s work for several years and finally had the chance to chat with him about how the plugin is doing. \n
He continues to develop the plugin due to the demand, which comes from both “light” users and developers. “The demand for MWI is fairly consistent,” he said. “On a calm day the mwi-plugin site gets ~30 unique visits, and mid-week on a busier day it will get ~100. It’s a very niche plugin, so I don’t expect thousands! The core plugin is mainly useful for developers I’d say, but I also get “light” users who are interested in the add-ons, so they can display products within their blogs. The demand for it is fairly steady at the moment.”
\n
The Magento and WordPress communities are fairly disconnected, which is understandable. You don’t see too many developers wanting to specialize in both platforms. Yet many users want them to work together. When building sites with a bridge, Kemp relies on WordPress for the more content-heavy aspects of the site:
\n
Each system has solutions for the other, but none of them are quite as good as WordPress or Magento. I personally prefer to use WP for all aspects of content management; pages, news, callouts – using Magento for this is a bit of a nightmare. I use Magento for large stores, with complex product set-ups and discount systems, purely for the product catalogue and back-end ecommerce system.
\n
Although he is an expert Magento developer, he has also built many sites using WooCommerce and Jigoshop. I asked him when he might opt for Magento over a WordPress-based e-commerce solution and he replied:
\n
I tend to use Magento for larger sites, where there are thousands of products and likely to be a lot of activity. This is because of the back-end system of Magento; it offers so much more in terms of tax rules, discounts, product set-up, import/export, order history, invoicing, etc. it’s just a full, heavy-duty, ecommerce system. The WordPress solutions are great, but not for bigger ecommerce store owners who need more control.
\n
The Magento WordPress Integration plugin provides a much needed bridge between the two open source projects and enables them to work together seamlessly. It can also save you from having to do too much theming to Magento, which is quite a pain because all the files are located about 10 directories deep. MWI allows you to feature your categories and products on your WordPress pages, as well as any blocks created within Magento. If you want to synchronize your sites even further, Kemp has also developed a plugin providing Single Sign-On For Magento And WordPress.
\n
Kemp and his colleague Jay Pick have formed a new WordPress development company called Platførm, based out of their rural office in Lutterworth, England. He plans to continue supporting the MWI plugin for as long as it’s needed. You can find documentation at the Magento WordPress Integration homepage and can download the plugin from the WordPress repository. If you want to get involved contributing, check out MWI on BitBucket.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 14:00:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:28;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:50:"WPTavern: New Holiday – Talk Like a Spammer Day!";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10181";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:97:"http://feedproxy.google.com/~r/WordpressTavern/~3/7J40V67FxqE/new-holiday-talk-like-a-spammer-day";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1683:"
Jonathan Dingman over at WPForce.com has published a funny piece that illustrates how comment spammers are able to be so randomly creative with their posts. One of his spam comments contained the entire template of text used to generate random comments. How many combinations of spam can you make with the following template?
\n
I {want to|wish to|desire to} read {more|even more} things about it!| \n{It is|It’s} {appropriate|perfect|the best} time to make {a few|some} plans \nfor {the future|the longer term|the long run} and {it is|it’s} time to be happy.
\n
Check out the long list of different replies on his post. I think this calls for a new holiday. Talk like a spammer day! We humans have to guess which combination is the correct one! But giving this some more thought, if there was a talk like a spammer day and we were legitimately using templates like the ones presented in the post to generate our comments and those comments were published even though Akismet thinks they are spam, how big of an impact would we have on screwing up the Akismet spam algorithm? Maybe this holiday is not such a good idea!
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 13:00:44 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:29;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:56:"Donncha: The shiny new dynamic content in WP Super Cache";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:29:"http://ocaoimh.ie/?p=89498568";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:70:"http://ocaoimh.ie/2013/10/21/shiny-new-dynamic-content-wp-super-cache/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:9301:"
With the next release of WP Super Cache in a day or two the long awaited move away from mfunc, mclude and friends will be complete.
\n
This means that if you have been using mfunc, mclude or dynamic-cached-content the dynamic portions of your sites will go blank if you upgrade WP Super Cache without updating that dynamic code. This may seem complicated but there’s an example script included and detailed explanations below. A lot of effort was made to make this backwards compatible but unfortunately it wasn’t possible.
\n
In their place is a new cacheaction filter called wpsc_cachedata and it’s sidekick wpsc_cachedata_safety. In the future when a site owner using WP Super Cache wants to make part of their website dynamic they will use those filters to modify pre-defined text strings and replace them with the data they want displayed to the end user. There’s an example script ready to be ripped apart to help you figure all this out.
\n
There are two ways of using this:
\n\n
The dynamic content is the return value of a simple process, be it date() or any of the numerous get_*() functions in WordPress. That data can simply be slotted in place of the pre-defined text mentioned above.
\n
The more difficult bit comes when you need to use an output buffer to collect the data for display. Due to a limitation in PHP it’s impossible to run an output buffer in the callback function of another output buffer, which is when the wpsc_cachedata filter runs. We need to collect that data before the callback function executes.
\n\n
The first way above is easy. Simply add a text string of random characters to your theme where you want the dynamic content to appear, then hook a function on to the wpsc_cachedata filter to str_replace() it with your dynamic content. These functions in this script do that:\n
\n
dynamic_cache_test_filter()
\n
dynamic_cache_test_template_tag()
\n
dynamic_cache_test_init()
\n
\n
You’ll have to hook on to the wpsc_cachedata_safety action and return the numeral 1 to actually run the wpsc_cachedata filter. This is a fail safe used by the plugin to make sure things are ok when the filter runs.
\n
Unfortunately if you want to use an output buffer it’s a lot harder. As stated above an output buffer can’t run in the callback function of another output buffer. This means you have to generate your dynamic content earlier in the PHP process. \nThis could be as easy as calling your dynamic content function (dynamic_output_buffer_test() in the example script) from the wp_footer action, or calling it from any action before shutdown, whichever is appropriate. You’ll also need to add a template tag of your own choosing to your theme. \nYour dynamic content function will run just fine for cached pages, so after the new page has run it store the output in a constant or global variable that the same function can look for when the wpsc_cacheaction runs it. If it finds that information, it can do the search and replace of your template tag without running the output buffer again. \nSome pages won’t run the dynamic content function however. This includes feeds and sitemaps. Those pages will generate a PHP error because the output buffer will try to run in the callback!
\n
“PHP Fatal error: ob_start(): Cannot use output buffering in output buffering display handlers in…”
\n
To stop that happening you must check that there’s text to shove in the cached page. That’s what happens in the function dynamic_output_buffer_test_safety() in the example script. It fires on the wpsc_cachedata_safety filter and returns the numeral 1 if successful.
\n
Anatomy of an Output Buffer
\n
I’m going to try and explain the output buffer functions in more detail here. They’re only example functions and if you spot a bug or can suggest improvements please do!
This is the string you add to your theme where your dynamic content will appear. The plugin will replace this string with the code generated by your dynamic content function.
\n
function dynamic_output_buffer_test( &$cachedata = 0 ) {\n if ( defined( \'DYNAMIC_OB_TEXT\' ) )\n return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, DYNAMIC_OB_TEXT, $cachedata );\n ob_start();\n // call the sidebar function, do something dynamic\n echo "<p>This is a test. The current time on the server is: " . date( \'H:i:s\' ) . "</p>";\n $text = ob_get_contents();\n ob_end_clean();\n\n if ( $cachedata === 0 ) // called directly from the theme so store the output\n define( \'DYNAMIC_OB_TEXT\', $text );\n else // called via the wpsc_cachedata filter. We only get here in cached pages in wp-cache-phase1.php\n return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, $text, $cachedata );\n\n}\nadd_cacheaction( \'wpsc_cachedata\', \'dynamic_output_buffer_test\' );
\n
\n
1. dynamic_output_buffer_test() is the function that will generate the dynamic content inserted into the cached page.
\n
2-3. DYNAMIC_OB_TEXT stores the previous output of this function. If it’s set that means we’re in the wpsc_cachedata filter and should insert it into the cached page and return it.
\n
4-8. This creates the output buffer, echoes a string with the current time and copies the buffer into a variable called $text before closing the output buffer.
\n
10-13. This is how we decide to return data. If $cachedata is 0 that means this function was called from the theme so we should define the constant DYNAMIC_OB_TEXT for later use. Otherwise, we must be dealing with an already cached page so insert the dynamic content into the page and return it.
\n
16. Add the dynamic_output_buffer_test() function to the wpsc_cachedata action. “add_cacheaction” is used as it loads before the regular WordPress action code loads.
\n
\n
function dynamic_output_buffer_test_safety( $safety ) {\n if ( defined( \'DYNAMIC_OB_TEXT\' ) )\n return 1; // ready to replace tag with dynamic content.\n else\n return 0; // tag cannot be replaced.\n}\nadd_cacheaction( \'wpsc_cachedata_safety\', \'dynamic_output_buffer_test_safety\' );
\n
\n
1-6. dynamic_output_buffer_test_safety() is a function that checks if dynamic content was generated correctly. If that constant is not defined the output buffer will run within the callback function of the main WP Super Cache output buffer and generate a PHP error.
\n
7. Add the wpsc_cachedata_safety() function to the dynamic_output_buffer_test_safety action.
\n
\n
sidebar.php
\n
As an example, if I wanted to display my dynamic content in the sidebar of my blog I would load sidebar.php in my theme’s directory and add the following code.
\n
if ( function_exists( \'dynamic_output_buffer_test\' ) )\n dynamic_output_buffer_test();\n?>WORDPRESS ROCKS THE WORLD<?php
\n
I had previously edited the example script, uncommented it and changed the appropriate tag:
\n
define( \'DYNAMIC_OUTPUT_BUFFER_TAG\', \'WORDPRESS ROCKS THE WORLD\' ); // CHANGE THIS!
\n
Final Note and Download Link
\n
Please grab the development version of the plugin and try it on a staging server before you put it live. Feedback would be appreciated!
\n
Warning! Keep the tags you use secret. You don’t want someone leaving a comment on your blog with that string! Do not use the same function names or constant names as in this post or example script. They’re in this very public post. Someone is bound to use them and cause you problems when you install their plugin.
\n
Finally, barring any last minute major bugs this version of WP Super Cache will be released on Wednesday. Be careful upgrading. Pass the word around if you know someone is using mfunc as their site will stop working!
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 22:06:09 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:7:"Donncha";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:30;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:45:"WordPress.tv: WordCamp Europe 2013 Interviews";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23966";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:63:"http://wordpress.tv/2013/10/21/wordcamp-europe-2013-interviews/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:641:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 20:07:31 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:31;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:50:"WPTavern: Why Are We Paying For GPL Licensed Code?";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10128";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:99:"http://feedproxy.google.com/~r/WordpressTavern/~3/zYcZG5ycFZE/gpl-ethics-right-wrong-winners-losers";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:5653:"
Kevin Muldoon has published a great post that may change the mindset of both WordPress end users and developers. In his post, he talks about WordPress, GPL, and ethics but further into the post, he mentions that perhaps we should not be thinking about what sites like GPL Avengers or GPL Club are doing as right or wrong but rather, good or bad.
\n
When you start talking about premium GPL products, the line between what is right or wrong gets a little blurred. Perhaps the terms “Right†and “Wrong†should not be used in this debate at all. “Good†and “Bad†are more suitable. GPL is supposed to benefit the WordPress community. So we need to consider what is good and what is bad for the community?
\n
Ethics is subjective so let’s skip that word. It’s as bad as saying “spirit” when talking about the GPL. What GPL Avengers and GPL CLub are doing is not illegal and I don’t think anyone will argue that point. Let’s take the good and bad approach.
\n
The Good:
\n
Both are offering commercial products either for free or for a substantially lower price. This is good because those who don’t need support can make do with the lower price. It’s also good in that it exposes the commercial offerings to a larger market segment that perhaps otherwise wouldn’t be able to afford purchasing from the original developer.
\n
The Bad:
\n
GPL Club points out that support is only provided by the original product authors. Meanwhile, WP Avengers provides automatic updates and premium support via forums and support credits. I am not sure how this works but their forum is not publicly accessible. In general, the best people to provide support for the product are the people who created it. By acquiring products through either of these two sites, unknowing customers will either be out of luck in getting support, or may not get the best support money can buy.
\n
There are a number of great comments about this situation that I encourage you to read like, this one from Paul, or Andrew. What is boils down to is these two sites have started a race to the bottom but I think that race has been going on for a long time.
\n
One of the scenarios that Kevin laid out was the following:
\n
With regards to where the buck stops :) WP Avengers and GPL Club are charging money for premium plugins that other people developed. Here’s a thought….what if someone went one step further and released all premium plugins free. For example, a plugin and theme directory that allowed every single premium WordPress theme and plugin to be downloaded free of charge. No malware, no hidden agenda. Simply someone who wanted to share all premium plugins with the world.
\n
How do you think the WordPress community would react to this? Would it kill the market for premium WordPress products or would developers have to focus on support? – Kevin Muldoon
\n
I think it would be fantastic. On paper, it seems pretty stupid to pay for GPL code. We hear the phrase “paying for support and product updates” repeatedly but it still seems as though we’re paying for the code first. So let’s make all code free. If we pay money, we’re actually paying for upgrades and support of that free code. But I know exactly what this would do to commercial themes and plugins. We’d end up with free code that only has one purpose. To serve up a prompt asking for an API key. In a way, I’d be ok with this because it would be less code running on my site but on the flip side, I’d then be relying on an increasing number of third-party sites to be online to make sure my forms worked. If all commercial themes and plugins were free, it wouldn’t be the end of the world. We would just rapidly make the transition to purchasing support and upgrades or service add-ons. Also, if commercial themes and plugins were free, sites like GPL Club and WP Avengers suddenly become the losers as they would then be charging for GPL code without the support to back it.
\n
A Few Questions For My Commercial WordPress Developer Friends\n
It’s fascinating to think about all GPL licensed code in themes and plugins being free as in beer. How would this change the way vendors today do business? If the real value is in support and upgrades, then the question I have for commercial plugin and theme developers is why are they charging for their GPL licensed code? The GPL license says you can do it, but what’s the point? I’ll guess and say that it would then be too confusing for customers to figure this all out so it’s easier to bundle everything in one purchase. At the end of the day, WP Avengers, GPL Club and sites like them are not going to put the original vendors out of business. All they are is an inconvenience.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 19:00:52 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:32;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:65:"WPTavern: WordPress 3.7 Automatic Upgrades Proving to Be Reliable";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10151";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:117:"http://feedproxy.google.com/~r/WordpressTavern/~3/4c1b_4P7CE8/wordpress-3-7-automatic-upgrades-proving-to-be-reliable";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2957:"
The first WordPress 3.7 Release Candidate was sent out into the wild last Friday. So far it’s been testing very well. The flagship feature of this release is the ability for WordPress to automatically update itself, as highlighted in the customary haiku:
\n
\nWordPress three seven \nA self-updating engine \nLies beneath the hood\n
\n
Automatic background updates seems like a daunting feature to launch across millions of blogs, but WordPress 3.7 includes code to roll back a failed automatic upgrade. Even so, Nacin tweeted yesterday that after 25,000 updates to RC1, there hasn’t been one single rollback. So far it looks like the automatic background updates for security and minor releases is proving to be remarkably reliable.
\n
Nacin has done everything in his power to determine points of failure within the feature but so far it’s been holding up nicely:
\n
We’ve tried all sorts of things to trip up the updater in WP 3.7, like changing file perms, simulating network issues, having no disk space.
Currently two emails are being sent out when the automatic upgrades are successful: one for debugging and the other standard email that all users of 3.7 will receive. Once 3.7 is officially released you will no longer get the debugging email. However, there is a filter that you can use to keep it turned on if you like.
\n
Jeff recently polled Tavern readers to see how they will be implementing the automatic updates on their sites, as many readers previously had expressed reservations. At this time it seems that only 1 in 4 people polled will be disabling automatic updates completely, while the remaining 75% are open to using them to varying degrees. The results of Nacin’s testing of RC1 should inspire even more confidence. If all goes well, it looks like we should have the official WordPress 3.7 release sometime this week.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 17:56:38 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:33;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:97:"WordPress.tv: Justin Jones: WordPress Security or Why Google Says You Shouldn’t Visit My Church";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23080";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:111:"http://wordpress.tv/2013/10/21/justin-jones-wordpress-security-or-why-google-says-you-shouldnt-visit-my-church/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:747:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 17:19:25 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:34;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WPTavern: New Grid View Coming to the WordPress Media Library";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:31:"http://www.wptavern.com/?p=9218";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:113:"http://feedproxy.google.com/~r/WordpressTavern/~3/qM4VP9q4HBo/new-grid-view-coming-to-the-wordpress-media-library";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3915:"
Your experience in the WordPress media library is about to get a whole lot better. Very soon you’ll have the option to display media items in a grid view. An exciting project to enhance the media library is well underway and will eventually be added to the WordPress core. The good news is that you don’t have to wait. This new feature, although still in development, is now available as a plugin.
\n
Media Grid, developed by Shaun Andrews, just showed up in the WordPress plugin repository this weekend. Shaun has been a busy bee lately and he’s on a roll. The Media Grid plugin is the second plugin he’s released with improvements for the WordPress core UI. His first was the Widgets Area Chooser plugin that we featured earlier today.
\n
When combined with the MP6 plugin, the Media Grid plugin currently lets you select between seeing the library displayed in the old list style or with the new grid view:
\n
WordPress Media Library Grid View
\n
What’s cool about this plugin? It lets you toggle the thumbnails to a larger size for ease of browsing. Pagination is handled beautifully via infinite scroll. The search is also very responsive and returns results instantly as you type, even if you only enter one letter.
\n
We’ve seen a lot of changes lately when it comes to WordPress user interface design. These rapid changes have been set in motion to arrange information in a way that is easier to use and understand.
\n
Scientific studies of neural memory encoding have shown that the human brain remembers pictures better than words. If you’re searching for an image you recently uploaded, browsing through thumbnails is likely to be much more helpful than trying to use words to search for your image. An optional grid view makes a lot of sense for this interface and I’m hoping it will become the default view.
\n
When Will We See the Media Grid in the WordPress Core?
\n
Of course, the burning question everyone wants to know, is when can we see this added to the WordPress core? The Media Library Grid View project is led by Helen Hou-Sandi. The plugin is part of the “Features as Plugins” initiative that enables developers to propose new features to core in the form of a plugin. Last time I checked with Shaun he said that they would love to have it ready for 3.8 or 3.9 but really it comes down to whenever it’s ready.
\n
This plugin is the future of the WordPress media library. I’m convinced that once you try the grid view you won’t ever want to go back to the boring list style. Although the Media Grid plugin is still being actively developed, it’s working quite nicely already. Shaun Andrews welcomes your suggestions and patches. If you’d like to help test it you can download Media Grid from the WordPress plugin repository.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 17:00:28 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:35;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:37:"Joseph: Books: The Year Without Pants";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:31:"https://josephscott.org/?p=9213";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:70:"https://josephscott.org/archives/2013/10/books-the-year-without-pants/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:10188:"
I finished reading Scott Berkun’s book The Year Without Pants. The book tells the tale of Scott’s time at Automattic as the lead of Team Social, which worked on WordPress.com. I’ve never read a book about a place that I’ve worked at, so I was curious to see things from his point of view.
\n
I’ve worked at Automattic for over six years, well before Scott started there. We were always on separate teams and I never worked directly with Scott on any projects. As a result some of the things Scott talks about in the book take on a different angle than my own. While reading through the book I made notes on things that I wanted to expand on a bit, provide a different point of reference for, or just struck me as interesting. I’m including the page number for easy reference.
\n
Page 10, talking about how for many people Automattic was the largest company they had ever worked for. I definitely didn’t fall into that camp. Oddly enough I’ve alternated between large and small companies, though not on purpose. Before Automattic I worked at a university that had thousands of employees. Before that I was at small regional ISP that never had more than 10 full time employees. Going back one more job I was at a large international company with more than 10,000 people across the planet. And the job before that was at a company with 20 people. That pretty much covers all of the jobs I’ve had as an adult.
\n
Page 15, about IRC being an ancient chat program. When I mention to other people that we use IRC I’ll often describe it as being “as old as dirt”, meaning 1988. Being old doesn’t change the fact that it is still one of the best solutions to the problem of text based chat.
\n
Page 16, about Automattic demanding great communication skills. In some ways we have to overcommunicate in order to make up for not all being in the same building.
\n
Page 20, Caturday. Long running thing at Automattic from the world of LOLcats. On page 25 Scott shows a screenshot of some stats, and the week ends with Caturday. Some time ago a new hire at Automattic “fixed” the typo by changing it to Saturday. We had to explain the joke, then had them revert it back to Caturday :-)
\n
Page 25, experts don’t go back to regular jobs because regular jobs are hard. This is worth keeping in mind the next time you read an article or book from a professional expert.
\n
Page 28, on jamming practices from one culture into another. This is a hard lesson to learn and I think most who have learned it have only done so through experience. Culture isn’t something you can easily transplant. Culture, like trust, is hard to build and easy to destroy.
\n
Page 29, about trust. Trust is a really big deal in any company culture. The lack of it usually results in grinding political structures. High degrees of trust can result in the whole being so much more than the sum of the parts.
\n
Page 42, remember how I mentioned that I described IRC being as old as dirt? I’m not the only one who thinks that way :-)
\n
Page 43, about many things at Automattic being inherited from the open source WordPress project. I don’t think it is an overstatement to say that this is one of the core attributes in the formation of Automattic. In many ways it looks like a group of people working on an open source project that just happens to also involve money, sometimes.
\n
Page 46, about the WordPress theme P2. One day I’ll write a separate post about how P2 came to be. Naming things can be hard, and sometimes beyond your control.
\n
Page 48, on the communication break down between P2, IRC, Skype, and email. The ratio varies between teams. For my experience I’d say P2 and IRC are closer to 50 / 50, Skype and email nearly rounding errors. IRC was good for talking about something right now ( synchronous ) and P2 was good for things that weren’t nearly so time sensitive ( asynchronous ) or needed a better way to be tracked.
\n
Page 54, about the size of a company being the ultimate goal. I’ve had conversations with people about companies that stay intentionally small. In the technology field it isn’t often that you come across people who want to have a limit to how big their company gets. I think there is an idea worth exploring in there.
\n
Page 61, regarding killing a project or experiment. It isn’t easy to shutdown something that you’ve put energy into. That said, we could be better about letting go.
\n
Page 104, data-influenced culture versus a data-driven one. I’ll give an example of one experience I had that shows how this worked. A new A / B test was launched around a signup flow and I was fairly certain that the new version was going to do worse because the resulting experience was so bad for the user. It quickly became clear that the new version resulted in more revenue. As a team we talked it over and decided against using the new version, even though it meant giving up some of that increase in revenue. I was happy we were able to agree on that because the user experience in the new version was one I’d never want to use. The results of the A / B test were one part of our decision making process, but it wasn’t the only consideration.
\n
Page 111, vision. Someone having a clear vision of where things are going as a whole is a different dynamic in a company that focuses on individuals being super proactive about coming up with their own ideas on what to work on next. Not that you can’t have it, just that at some point you realize everyone can’t do everything. See also page 126 regarding clarity vs. quantity of ideas.
\n
Page 132, “Without the time machine, all choices have the possibility of being wrong.” I need to put that on a t-shirt. Sometimes the value of making a decision outweighs any of the potential outcomes of the decision itself.
\n
Page 134, on not being tied down too much by a pre-selected process. I’ve been asked before if Automattic uses [ insert current trendy methodology here ]. My answer has always been no. We work out what works best for us as a team, then start moving forward, adjusting along the way as needed.
\n
Page 136, “To start big projects, you must have the capacity for delusion.” Probably also worth a t-shirt. At some point after going through enough big projects you learn that you always underestimate them at the beginning. Then after even more of them you learn that under estimating them is sometimes a good thing, because if you didn’t you would never actually start them.
\n
Page 152, about work environments. When I talk with people about Automattic being a distributed company, I usually end up explaining that like most things it is about trade offs. Distributed vs. non-distributed is often less about which one is better and more about which trade offs you want to work with. The same is true of individuals. Not everyone is going to excel in a distributed situation, and that is fine, it doesn’t make them bad at what they do or who they are.
\n
Page 171, talking about Team Social being stretched even further. When Scott joined Automattic I started working on the Akismet team. Our team was always stretched, with people in Melbourne ( Australia ), California, Utah, North Carolina, and England. From UTC that is +11, -7, -6, -4, and +1 for everyone playing along at home. Not the same broad and even distribution that Team Social ended up with, but not always easy either. But we made it work.
\n
Page 198, a reference to the bike shed problem. Long time FreeBSD users will remember the bike shed post by PHK.
\n
Page 200, on few people being willing to dive in and make changes. That is pretty much the opposite of my experience.
\n
Page 200, about broken windows for good and bad. I think our ability to fix a bug that came up quickly is a good thing. There obviously has to be some balance with other things, but I would never want to lose our ability to go from getting a ping from a friend about something on our service being broken, to being able to reply that it has now been fixed, often in a matter of minutes.
\n
Page 201, some people being afraid to post on a P2 because they think it is a megaphone and everyone is reading it. What is funny about reading that is that before we had P2, there was just one internal blog for all of Automattic and it was rarely used. It was common for it to only get one post per month. P2 changed that dramatically.
\n
Page 225, “No one should be expected to carry the burden of a secret their peers would love to know.” Not worth putting on a t-shirt, but something that every leader should remember.
\n\n
I could comment on every page in the book, but these were the points that I noted specifically as I read through it.
\n
The book itself is an enjoyable read, and easy to get through. If you’ve ever wondered what things are like at Automattic, The Year Without Pants, is a pretty good window. Just keep in mind that it is from one point of view and that each team has a high degree of flexibility in doing things in a way that works best for them.
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 15:05:31 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Joseph Scott";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:36;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WPTavern: After Four Years – WPShout Is Under New Ownership";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10124";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:109:"http://feedproxy.google.com/~r/WordpressTavern/~3/sUm_0G9JveY/after-four-years-wpshout-is-under-new-ownership";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2615:"
Long time WordPress community member Alex Denning has announced that his WordPress centric site WPShout is now under new ownership. Alex has reached the point where his job combined with his university study work has made it impossible for him to keep the site going. Thankfully, Alex has found a great home for the site. New owners Fred and David of Press Up will be taking over the site. According to their introductions within the announcement post, they seem to fit in naturally with providing the type of content WPShout readers have come to expect.
\n
We’re really excited to be taking over WPShout, and glad that we were able to talk Alex into sticking around in an advising role for the transitional period. He’s built a great resource here, and we’re eager to keep his vision alive and make it even better.
\n
Kudos to Alex for finding the right individuals to take over the site. I know from experience that giving up something that was built from the ground up is not an easy task but handing it over to the right individuals makes the process a lot easier to cope with. For those of you that would like to keep in touch with Alex, you can follow him on Twitter or keep an eye on his personal site Sevenironcows.
\n
Before I let you go, please check out Alex Denning’s Webhosting Review 2013 Results that he published two weeks ago. Also, I’ll have Alex, Fred, and David on this week’s episode of WordPress Weekly to discuss the transition of the WPShout website. Considering how busy Alex will be with university, this may be the only opportunity we get to talk to him about his experience in the WordPress community.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 15:00:20 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:37;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:72:"WPTavern: WordPress Widgets Area Chooser Plugin: A Handy Addition to MP6";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10090";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:123:"http://feedproxy.google.com/~r/WordpressTavern/~3/mvgunDECZL0/wordpress-widgets-area-chooser-plugin-a-handy-addition-to-mp6";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3160:"
If you’ve ever worked on a WordPress site with a long list of widget areas and dozens of widgets, then you know how crowded this page can become. In this scenario the drag-and-drop interface becomes virtually useless, as you struggle to drag the widget to the right area while trying to force your browser window to scroll down.
\n
Widgets Area Chooser
While the new widgets page design in MP6 makes it easier to manage widgets, the drag-and-drop doesn’t always provide the best experience. That’s where the Widgets Area Chooser plugin comes in handy. \n
Created by MP6 member Shaun Andrews, this plugin lets you click a widget in order to choose where it should be placed. According to Shaun, the plugin is really just a bit of CSS and JS, so it would be an easy addition to MP6.
\n
Here’s a quick demo of the Widgets Area Chooser in action:
\n
(note: The experience is actually not as jumpy as it appears in the screencast)
\n
After testing this plugin on my desktop as well as mobile devices, I believe there are several merits which should be considered in the discussion about whether or not this should be a part of MP6 and eventually WordPress 3.8:
\n
\n
Makes it easier to add new widgets – clicking is easier than drag-and-drop
\n
Reduces frustration when working with a large number of widget areas
\n
Makes it easier to manage widgets on a mobile device
\n
\n
It’s important to recognize that this doesn’t actually remove drag-and-drop capabilities. The Widgets Area Chooser simply adds a new way to move widgets around, and users will still have the option of dragging and dropping if they prefer. Please note that you will need to have MP6 installed and activated in order to test this plugin.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 21 Oct 2013 13:01:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:38;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:44:"WordPress.tv: Paul Kortman: Stop Selling SEO";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23072";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:61:"http://wordpress.tv/2013/10/20/paul-kortman-stop-selling-seo/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:638:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 20 Oct 2013 14:17:23 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:39;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WordPress.tv: K. Adam White: Building Apps With Backbone.js and WordPress";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23856";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:89:"http://wordpress.tv/2013/10/20/k-adam-white-building-apps-with-backbone-js-and-wordpress/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:695:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 20 Oct 2013 13:26:45 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:40;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:100:"WordPress.tv: Panel Discussion: WordPress Face-to-Face: Fostering Your Local (And Digital) Community";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23858";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:114:"http://wordpress.tv/2013/10/19/panel-discussion-wordpress-face-to-face-fostering-your-local-and-digital-community/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:747:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 19 Oct 2013 13:16:54 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:41;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:53:"WordPress.tv: Jeremy Felt: Hi WordPress, Meet Vagrant";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23872";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:69:"http://wordpress.tv/2013/10/19/jeremy-felt-hi-wordpress-meet-vagrant/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:655:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 19 Oct 2013 12:26:32 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:42;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:60:"WPTavern: WPWeekly Episode 124 – The Three WordPressteers";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10085";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:107:"http://feedproxy.google.com/~r/WordpressTavern/~3/yfRhBSLaWZk/wpweekly-episode-124-the-three-wordpressteers";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3545:"
For the first time since returning to the airwaves, we had all three contributing authors to WordPress Tavern on the show at once. While we originally scheduled Alex Denning for this episode, we needed to reschedule him for October 25th. So in this episode, we each took turns discussing this weeks headlines. As a bonus, we got a live version of Marcus’ plugin roundup post. I had a blast on this show and hope to do more of these in the future.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 19 Oct 2013 06:37:45 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:43;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:31:"Matt: Fast Company on Simperium";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:21:"http://ma.tt/?p=43141";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:47:"http://ma.tt/2013/10/fast-company-on-simperium/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:230:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 23:56:44 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:44;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:76:"WPTavern: WordSesh 2013: Live Streaming 24 Hours of Free WordPress Education";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:31:"http://www.wptavern.com/?p=9992";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:127:"http://feedproxy.google.com/~r/WordpressTavern/~3/HjNrHEFpulo/wordsesh-2013-live-streaming-24-hours-of-free-wordpress-education";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2232:"
Mark your calenders for December 6th and 7th, 2013. WordSesh will be back in session! In case you missed the first WordSesh, the basic idea is very similar to a WordCamp, except everything is streamed live on the web. The event is totally free and anyone can attend by tuning in from home. WordSesh is comprised of 24 sessions that cater to every type of WordPress user. There will be one session every hour, on the hour, for 24 hours.
\n
\n
If you haven’t been able to make it to as many WordCamps as you’d like, here’s your chance to get in on some awesome free WordPress sessions. WordSesh offers a community learning experience that you can enjoy with other WordPress fans around the world. The event utilizes Google Hangouts to broadcast sessions from wherever the speakers are located.
\n
In case you missed last year’s event, all of the sessions were recorded and are available on youtube. This should give you an idea of the high quality speakers you can expect when you tune in. The DradCast podcast will be kicking off WordSesh 2, ushering in “24 hours of non-stop WordPress knowledge and fun.”
\n
WordSesh is still taking applications for speakers and you can submit directly on the website. If you want to join in, make sure to add the dates to your calender, follow WordSesh on Twitter, and subscribe to WordSesh news and announcements. You don’t want to miss a minute of this awesome event.
The first release candidate for WordPress 3.7 is now available!
\n
In RC 1, we’ve made some adjustments to the update process to make it more reliable than ever. We hope to ship WordPress 3.7 next week, but we need your help to get there. If you haven’t tested 3.7 yet, there’s no time like the present. (Please, not on a production site, unless you’re adventurous.)
\n
WordPress 3.7 introduces automatic background updates for security and minor releases (like updating from 3.7 to 3.7.1). These are really easy to test  — RC 1 will update every 12 hours or so to the latest development version, and then email you the results. (You may get two emails: one for debugging, and one all users of 3.7 will receive.) If something went wrong, you can report it.
To test WordPress 3.7 RC1, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€). Or you can download the release candidate here (zip). If you’d like to learn more about what’s new in WordPress 3.7, visit the awesome About screen in your dashboard ( → About in the toolbar). There, you can also see if your install is eligible for background updates. WordPress won’t automatically update, for example, if you’re using version control like Subversion or Git.
\n
Developers, please test your plugins and themes against WordPress 3.7, so that if there is a compatibility issue, we can figure it out before the final release. Make sure you post any issues to the support forums.
\n
WordPress three seven \nA self-updating engine \nLies beneath the hood
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 19:52:14 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:46;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:57:"WordPress.tv: Chad Warner: WordPress Admin: A Guided Tour";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23082";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:73:"http://wordpress.tv/2013/10/18/chad-warner-wordpress-admin-a-guided-tour/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:663:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 16:35:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:47;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:78:"WPTavern: WordPress MP6 Plugin Adds New Widgets Page and Midnight Color Scheme";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10040";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:130:"http://feedproxy.google.com/~r/WordpressTavern/~3/34x8ppLkyUY/wordpress-mp6-plugin-adds-new-widgets-page-and-midnight-color-scheme";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3425:"
Although MP6 may sound like the code name of a covert spy mission, it’s actually one of the most exciting WordPress plugins in the repository right now. MP6 is part of the “features as plugins” initiative and houses the intended design updates to the WordPress admin. The plan is to include the changes in the core with the upcoming WordPress 3.8 release.
\n
Many WordPress sites are already using MP6 to transform their dashboards and there are several dozen reasons to upgrade to the latest version. Here are just a few of the highlights:
\n
\n
A bunch of new dashicons
\n
A re-designed widgets page by Shaun Andrews from his Widgets project
\n
Improvements to customizer, color schemes, menus section and much more
\n
New Midnight color scheme
\n
\n
You may have seen a poll floating around about extra color schemes for MP6. The Midnight color scheme must have proven the most popular, as it has now been included in the latest MP6 update. This bold skin for the dashboard sports red highlights:
\n
MP6 Midnight Color Scheme
\n
The new widgets page design is much cleaner, allows you to see more widgets at once and is easier to navigate if you’re using a theme with many different widgetized areas.
\n
New widgets page design
\n
In order to achieve this cleaner look, the widgets page had to sacrifice the widget descriptions, which seems to be a main point of concern for those who have already upgraded MP6. Plugin authors can be rather generic in how they name their widgets, so descriptions are helpful for knowing which widget you’re looking at. The scrollbar within the widgets section is also a point of contention. Overall, the MP6 2.1 updates have been very well received and there’s still plenty of time to work through any challenges.
\n
Your feedback is important! If you want to be a part of testing or you’re just curious about where the WordPress admin is going, install MP6 and put it through the paces of your daily routine. If you’re already using MP6, you can take advantage of all the new features and bug fixes by upgrading the plugin through your dashboard.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 13:21:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:48;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:64:"WordPress.tv: Ross Johnson: The Overlap Of Emotion And Usability";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23074";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:83:"http://wordpress.tv/2013/10/18/ross-johnson-the-overlap-of-emotion-and-usability-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:686:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 12:32:09 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:49;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:70:"WPTavern: Mark Jaquith on WordPress 3.6 Postmortem and Post Formats UI";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10034";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:122:"http://feedproxy.google.com/~r/WordpressTavern/~3/TrujuHuq6co/mark-jaquith-on-wordpress-3-6-postmortem-and-post-formats-ui";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3783:"
One of the most anticipated features of WordPress 3.6 was the new Post Formats UI which would have exposed the feature to users who may not have known of its existence. Unfortunately, near the tail end of development for 3.6, Mark Jaquith made the announcement that the feature would be exiting core and that the work involved would most likely end up as a plugin. This generated a lot of mixed reviews from developers. In the midst of all the discussion, Mark Jaquith stated that he would publish a postmortem to explain the lessons learned.
\n
WordPress 3.7 is around the corner and we have yet to see the postmortem post, or a post formats UI plugin for that matter. I managed to get in touch with Mark Jaquith, who is an incredibly busy man, to find out what the status was on the post as well as the plugin. Mark tells me that he is working on the blog post that will explain the WordPress 3.6 development cycle, the lessons learned, and the struggles the team had during this time. The post will also cover the new approach to feature development that WordPress is now embracing with features being developed as plugins first. For those that will be attending WordCamp London on November 23 and 24th, Mark will be giving a presentation that shares the lessons learned in 3.6.
\n
\n
The reason for the delay in getting this information out to the public is that Mark is not an employee that gets to work on WordPress full-time. He was the lead developer for 3.6 and while trying to ensure the project stayed on time, he also had to make a living through his consultancy business. Some of his projects were even pushed back to make room for 3.6 development. To put it mildly, the 3.6 development process took a lot out of the man and he’s been playing catch up ever since.
\n
Mark concluded the email with his main takeaway of the post formats UI.
\n
With regards to post formats UI, the main takeaway I had was that the approach we took was the wrong approach and I didn’t really see that until very late in the process. So if or when the post formats UI feature gets taken back up in plugin form (in 3.9 or later), it will be a fresh effort, not one based on the work we did in 3.6. I am also watching the content creation experience efforts to see how that might play in.
\n
We’ll be keeping an eye out for the post and will link to it once it’s published. Thanks to Mark Jaquith for not only providing me with this update, but for all the hard work he did to lead the team to get 3.6 out the door.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 17 Oct 2013 22:53:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:9:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Sat, 26 Oct 2013 07:51:37 GMT";s:12:"content-type";s:8:"text/xml";s:14:"content-length";s:6:"206652";s:10:"connection";s:5:"close";s:4:"vary";s:15:"Accept-Encoding";s:13:"last-modified";s:29:"Sat, 26 Oct 2013 07:30:14 GMT";s:4:"x-nc";s:11:"HIT lax 249";s:13:"accept-ranges";s:5:"bytes";}s:5:"build";s:14:"20130708171016";}', 'no');
+INSERT INTO `wp_2_options` VALUES (2878, '_transient_timeout_feed_mod_867bd5c64f85878d03a060509cd2f92c', '1382817072', 'no');
+INSERT INTO `wp_2_options` VALUES (2879, '_transient_feed_mod_867bd5c64f85878d03a060509cd2f92c', '1382773872', 'no');
+INSERT INTO `wp_2_options` VALUES (2880, '_transient_timeout_dash_aa95765b5cc111c56d5993d476b1c2f0', '1382817072', 'no');
+INSERT INTO `wp_2_options` VALUES (2881, '_transient_dash_aa95765b5cc111c56d5993d476b1c2f0', '
micro-fund entirely new research agendas via crowd-funding.
\r\n\r\n ', 'Micropasts platform', '', 'trash', 'open', 'open', '', 'the-micropasts-platform', '', '', '2013-10-24 20:01:06', '2013-10-24 20:01:06', '', 0, 'http://research.micropasts.org/?page_id=75', 0, 'page', '', 0);
+INSERT INTO `wp_2_posts` VALUES (76, 2, '2013-10-18 17:11:08', '2013-10-18 17:11:08', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing platform; **co-design new research agendas using our community forum; ***micro-fund entirely new research agendas on our dedicated crowd-funding space.\r\n\r\n ', 'The Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:11:08', '2013-10-18 17:11:08', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (77, 2, '2013-10-18 17:11:46', '2013-10-18 17:11:46', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing platform; **co-design new research agendas using our community forum; ***micro-fund entirely new research agendas on our dedicated crowd-funding space.\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:11:46', '2013-10-18 17:11:46', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (78, 2, '2013-10-18 17:12:45', '2013-10-18 17:12:45', 'This project uses the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods.\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-18 17:12:45', '2013-10-18 17:12:45', '', 26, 'http://research.micropasts.org/2013/10/18/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (79, 2, '2013-10-18 17:13:24', '2013-10-18 17:13:24', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing platform; **co-design new research agendas using our community forum; ***micro-fund entirely new research agendas on our dedicated crowd-funding space.\r\n\r\n ', 'The Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:13:24', '2013-10-18 17:13:24', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (80, 2, '2013-10-18 17:14:42', '2013-10-18 17:14:42', ' ', '', '', 'publish', 'open', 'open', '', '80', '', '', '2013-10-23 11:20:32', '2013-10-23 11:20:32', '', 0, 'http://research.micropasts.org/?p=80', 4, 'nav_menu_item', '', 0);
+INSERT INTO `wp_2_posts` VALUES (86, 2, '2013-10-18 17:17:56', '2013-10-18 17:17:56', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing platform; **co-design new research agendas using our community forum; ***micro-fund entirely new research agendas on our dedicated crowd-funding space.\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:17:56', '2013-10-18 17:17:56', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (87, 2, '2013-10-18 17:21:22', '2013-10-18 17:21:22', 'This project uses the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods.\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-18 17:21:22', '2013-10-18 17:21:22', '', 26, 'http://research.micropasts.org/2013/10/18/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (88, 2, '2013-10-18 17:24:07', '2013-10-18 17:24:07', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing space; **co-design new research agendas using the community forum; ***micro-fund entirely new research agendas on a dedicated crowd-funding space.\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:24:07', '2013-10-18 17:24:07', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (89, 2, '2013-10-18 17:25:48', '2013-10-18 17:25:48', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through crowd-sourcing; **co-design new research agendas using the community forum; ***micro-fund entirely new research agendas via crowd-funding.\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:25:48', '2013-10-18 17:25:48', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (90, 2, '2013-10-18 17:27:11', '2013-10-18 17:27:11', 'The project Crowd and Community-fuelled Archaeological Research (2013-2015) is funded by the Arts and Humanities Research Council (AHRC), under the Capital Funding Call for Digital Transformations in Community Research Co-Production in the Arts and Humanities.\r\n\r\n"This call seeks to explore new research opportunities at the interface and intersections between the Connected Communities Programme, AHRC’s Digital Transformations in the Arts and Humanities Theme, the Cross-Council Digital Economy Programme and other AHRC activities relating to the Creative Economy. Building on the creative capacities of communities and their immense interest in exploring their cultures and heritage, the call aims to harness the transformative power of digital technologies to stimulate innovative engagements and research co-production between communities and researchers."\r\nArts and Humanities Research Council\r\n\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n ', 'Who is funding us?', '', 'inherit', 'open', 'open', '', '43-revision-v1', '', '', '2013-10-18 17:27:11', '2013-10-18 17:27:11', '', 43, 'http://research.micropasts.org/2013/10/18/43-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (91, 2, '2013-10-22 15:55:55', '2013-10-22 15:55:55', '
Hello!
\r\n
We are a team of researchers from University College London and the British Museum. In the past few years, we have been looking into the new opportunities provided by digital technologies for public engagement in archaeology, through several seminar series and a recent edited volume on the topic. We are now lucky enough to have funds from the AHRC to work on a project entitled Crowd and Community Fuelled Archaeological Research which has started this month.
\r\n
The core of our efforts day-to-day will go into enabling a more general online platform for crowd-sourcing and crowd-funding that we have called Micropasts. The platform’s goal is to bring archaeological enthusiasts of all kinds -- traditional academics, archaeological societies, interested individual members of the public -- together to create new, high quality archaeological and historical data about the human past.
\r\n
This research blog also allows some of us to indulge our more navel-gazing tendencies (!) and to post about themes ranging from public archaeology to research ethics to the technical aspects of crowd-sourcing and crowd-funding. We will be aiming to write for a wide audience including those working in public archaeology, cultural heritage, museum studies, computational archaeology and the digital humanities, as well as practitioners in the heritage and creative sectors.
\r\n
But in this first blog post, let’s start by setting out the context for our research. Recently, increasing attention has been dedicated to the potential of digital technologies for supporting more egalitarian and transparent practice, as well as wider participation.  One fairly well-known digital method to pursue these goals has been ‘crowd-sourcing’, the practice of seeking information, services or funds in small chunks from a ‘crowd’ of people including as yet wholly anonymous members of the public as well as those already belonging to relevant communities of interest. Archaeology and crowd-sourcing should make for a great fit, because, while archaeology enjoys widespread appeal, it tries to protect, document and understand a massive dwindling resource, traditionally supported by tiny pots of money.
\r\n
Early examples of crowd-sourcing in archaeology and related disciplines have focused on things like inspecting imagery to detect archaeological features, pooling wartime tangible heritage, transcribing papyri, interrogating built architecture and public recording of metal artefacts. In other cases, appeals to the ‘crowd’ have been made to micro-finance student dissertations, major excavations and long-term community projects all over the globe. What past crowd-sourcing and crowd-funding experiments have in common is that they mainly embraced ‘contributory’ models, where members of the public were asked to contribute their skills or their money in support of research agendas that were typically designed by academics.
\r\n
We too wish to create a community space where anyone with an interest in archaeology and history can help build archaeological knowledge by contributing to existing projects, but perhaps more ambitiously we also want to have a crack at proper ‘co-producton’ (to tack on yet more jargon!) and offer serious opportunities for traditional academics, volunteer societies and other enthusiasts to dream up new research initiatives collectively, and then to fund them via crowd-funding appeals.
\r\n
What will be the ethical implications of online community co-production like this? What should be the consequences of crowd-funding for heritage policy? How, technically speaking, do we best build a multi-purpose, wide-range web platform of this kind? How can we best encourage fun, productive and inclusive online communities? How should we evaluate whether our approaches are effective or not?
\r\n
These are possible subjects of future posts, but we promise to throw in some more light-hearted and serendipitous stuff too, so please do keep following!
We are a team of researchers from University College London and the British Museum. In the past few years, we have been looking into the new opportunities provided by digital technologies for public engagement in archaeology, through several seminar series and a recent edited volume on the topic. We are now lucky enough to have funds from the AHRC to work on a project entitled Crowd and Community Fuelled Archaeological Research which has started this month.
\r\n
The core of our efforts day-to-day will go into enabling a more general online platform for crowd-sourcing and crowd-funding that we have called Micropasts. The platform’s goal is to bring archaeological enthusiasts of all kinds -- traditional academics, archaeological societies, interested individual members of the public -- together to create new, high quality archaeological and historical data about the human past.
\r\n
This research blog also allows some of us to indulge our more navel-gazing tendencies (!) and to post about themes ranging from public archaeology to research ethics to the technical aspects of crowd-sourcing and crowd-funding. We will be aiming to write for a wide audience including those working in public archaeology, cultural heritage, museum studies, computational archaeology and the digital humanities, as well as practitioners in the heritage and creative sectors.
\r\n
But in this first blog post, let’s start by setting out the context for our research. Recently, increasing attention has been dedicated to the potential of digital technologies for supporting more egalitarian and transparent practice, as well as wider participation.  One fairly well-known digital method to pursue these goals has been ‘crowd-sourcing’, the practice of seeking information, services or funds in small chunks from a ‘crowd’ of people including as yet wholly anonymous members of the public as well as those already belonging to relevant communities of interest. Archaeology and crowd-sourcing should make for a great fit, because, while archaeology enjoys widespread appeal, it tries to protect, document and understand a massive dwindling resource, traditionally supported by tiny pots of money.
\r\n
Early examples of crowd-sourcing in archaeology and related disciplines have focused on things like inspecting imagery to detect archaeological features, pooling wartime tangible heritage, transcribing papyri, interrogating built architecture and public recording of metal artefacts. In other cases, appeals to the ‘crowd’ have been made to micro-finance student dissertations, major excavations and long-term community projects all over the globe. What past crowd-sourcing and crowd-funding experiments have in common is that they mainly embraced ‘contributory’ models, where members of the public were asked to contribute their skills or their money in support of research agendas that were typically designed by academics.
\r\n
We too wish to create a community space where anyone with an interest in archaeology and history can help build archaeological knowledge by contributing to existing projects, but perhaps more ambitiously we also want to have a crack at proper ‘co-producton’ (to tack on yet more jargon!) and offer serious opportunities for traditional academics, volunteer societies and other enthusiasts to dream up new research initiatives collectively, and then to fund them via crowd-funding appeals.
\r\n
What will be the ethical implications of online community co-production like this? What should be the consequences of crowd-funding for heritage policy? How, technically speaking, do we best build a multi-purpose, wide-range web platform of this kind? How can we best encourage fun, productive and inclusive online communities? How should we evaluate whether our approaches are effective or not?
\r\n
These are possible subjects of future posts, but we promise to throw in some more light-hearted and serendipitous stuff too, so please do keep following!
help with the co-production of open archaeological data through crowd-sourcing
\r\n
co-design new research agendas using the community forum
\r\n
micro-fund entirely new research agendas via crowd-funding.
\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-23 22:09:01', '2013-10-23 22:09:01', '', 75, 'http://research.micropasts.org/2013/10/23/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (130, 1, '2013-10-24 06:56:18', '2013-10-24 06:56:18', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to:\r\n\r\n
help with the co-production of open archaeological data through crowd-sourcing
This dashboard widget queries Google Blog Search so that when another blog links to your site it will show up here. It has found no incoming links… yet. It’s okay — there is no rush.
\n', 'no');
+INSERT INTO `wp_2_options` VALUES (3296, '_transient_timeout_feed_ac0b00fe65abe10e0c5b588f3ed8c7ca', '1383133463', 'no');
+INSERT INTO `wp_2_options` VALUES (3297, '_transient_feed_ac0b00fe65abe10e0c5b588f3ed8c7ca', 'a:4:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:3:"\n\n\n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:51:"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:3:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:14:"WordPress News";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:25:"http://wordpress.org/news";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:14:"WordPress News";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:13:"lastBuildDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 21:04:59 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"language";a:1:{i:0;a:5:{s:4:"data";s:5:"en-US";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:9:"generator";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/?v=3.8-alpha";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"item";a:10:{i:0;a:6:{s:4:"data";s:42:"\n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:35:"WordPress 3.7.1 Maintenance Release";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:50:"http://wordpress.org/news/2013/10/wordpress-3-7-1/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:59:"http://wordpress.org/news/2013/10/wordpress-3-7-1/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 21:04:59 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2745";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:371:"WordPress 3.7.1 is now available! This maintenance release addresses 11 bugs in WordPress 3.7, including: Images with captions no longer appear broken in the visual editor. Allow some sites running on old or poorly configured servers to continue to check for updates from WordPress.org. Avoid fatal errors with certain plugins that were incorrectly calling some […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1594:"
WordPress 3.7.1 is now available! This maintenance release addresses 11 bugs in WordPress 3.7, including:
\n
\n
Images with captions no longer appear broken in the visual editor.
\n
Allow some sites running on old or poorly configured servers to continue to check for updates from WordPress.org.
\n
Avoid fatal errors with certain plugins that were incorrectly calling some WordPress functions too early.
\n
Fix hierarchical sorting in get_pages(), exclusions in wp_list_categories(), and in_category() when called with empty values.
\n
Fix a warning that may occur in certain setups while performing a search, and a few other notices.
Download WordPress 3.7.1 or venture over to Dashboard → Updates and simply click “Update Now.”
\n
Just a few fixes \nYour new update attitude: \nZero clicks given
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/10/wordpress-3-7-1/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:1;a:6:{s:4:"data";s:42:"\n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:25:"WordPress 3.7 “Basieâ€";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"http://wordpress.org/news/2013/10/basie/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:49:"http://wordpress.org/news/2013/10/basie/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 22:35:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2736";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:357:"Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones: Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:17229:"
Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones:
\n
\n
Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to apply maintenance and security updates. Most sites are now able to automatically apply these updates in the background. The update process also has been made even more reliable and secure, with dozens of new checks and safeguards.
\n
Stronger password recommendations: Your password is your site’s first line of defense. It’s best to create passwords that are complex, long, and unique. To that end, our password meter has been updated in WordPress 3.7 to recognize common mistakes that can weaken your password: dates, names, keyboard patterns (123456789), and even pop culture references.
\n
Better global support: Localized versions of WordPress will receive faster and more complete translations. WordPress 3.7 adds support for automatically installing the right language files and keeping them up to date, a boon for the many millions who use WordPress in a language other than English.
\n
\n
For developers there are lots of options around how to control the new updates feature, including allowing it to handle major upgrades as well as minor ones, more sophisticated date query support, and multisite improvements. As always, if you’re hungry for more dive into the Codex or browse the over 400 closed tickets on Trac.
\n
A New Wave
\n
This release was led by Andrew Nacin, backed up by Dion Hulse and Jon Cave. This is our first release using the new plugin-first development process, with a much shorter timeframe than in the past. (3.6 was released in August.) The 3.8 release, due in December, will continue this plugin-led development cycle that gives much more autonomy to plugin leads and allows us to decouple feature development from a release. You can follow this grand experiment, and what we’re learning from it, on the make/core blog. There are 211 contributors with props in this release:
Enjoy what may be one of your last few manual updates. See you soon for version 3.8!
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:45:"http://wordpress.org/news/2013/10/basie/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:2;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:33:"WordPress 3.7 Release Candidate 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:68:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:77:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 00:05:30 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2729";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:417:"The second release candidate of WordPress 3.7 is now available for testing! Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1183:"
The second release candidate of WordPress 3.7 is now available for testing!
\n
Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta area in the support forums if you think you’ve found a bug, and if any known issues are raised, you’ll be able to find them here.
\n
Developers, please test your plugins and themes against WordPress 3.7. If there is a compatibility issue, let us know as soon as possible so we can deal with it before the final release.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:73:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate-2/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:3;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:18:"Upcoming WordCamps";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 19:25:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:9:"Community";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"WordCamp";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2723";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:368:"WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Jen Mylo";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:3584:"
WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s over. If there’s one near you, check it out! In addition to getting to know your local WordPress community, most WordCamps attract some traveling visitors a well, giving you the chance to meet contributors to the WordPress open source project and get involved yourself.
\n
Here are the WordCamps on the schedule for the rest of this year.
No WordCamps on this list in your area? Not to worry! There are thriving WordPress meetups all over the world where you can meet like-minded people, and we maintain a library of WordCamp videos at WordPress.tv.
\n
Get Involved
\n
\n
If you’re interested in organizing a WordCamp in your area, check out our WordCamp planning site.
\n
If you’re interested in starting a WordPress meetup in your area, let us know and we can set up a group on meetup.com for you.
\n
And speaking of WordCamp videos, we’ve recently enabled volunteer-generated subtitles/closed captioning of the videos on WordPress.tv to make them more accessible. Interested in helping? Check out the WordPress.tv subtitling instructions.
\n
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/10/upcoming-wordcamps-4/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:4;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:31:"WordPress 3.7 Release Candidate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:66:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:75:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 18 Oct 2013 19:52:14 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2718";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:331:"The first release candidate for WordPress 3.7 is now available! In RC 1, we’ve made some adjustments to the update process to make it more reliable than ever. We hope to ship WordPress 3.7 next week, but we need your help to get there. If you haven’t tested 3.7 yet, there’s no time like the present. (Please, […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2237:"
The first release candidate for WordPress 3.7 is now available!
\n
In RC 1, we’ve made some adjustments to the update process to make it more reliable than ever. We hope to ship WordPress 3.7 next week, but we need your help to get there. If you haven’t tested 3.7 yet, there’s no time like the present. (Please, not on a production site, unless you’re adventurous.)
\n
WordPress 3.7 introduces automatic background updates for security and minor releases (like updating from 3.7 to 3.7.1). These are really easy to test  — RC 1 will update every 12 hours or so to the latest development version, and then email you the results. (You may get two emails: one for debugging, and one all users of 3.7 will receive.) If something went wrong, you can report it.
To test WordPress 3.7 RC1, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€). Or you can download the release candidate here (zip). If you’d like to learn more about what’s new in WordPress 3.7, visit the awesome About screen in your dashboard ( → About in the toolbar). There, you can also see if your install is eligible for background updates. WordPress won’t automatically update, for example, if you’re using version control like Subversion or Git.
\n
Developers, please test your plugins and themes against WordPress 3.7, so that if there is a compatibility issue, we can figure it out before the final release. Make sure you post any issues to the support forums.
\n
WordPress three seven \nA self-updating engine \nLies beneath the hood
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:71:"http://wordpress.org/news/2013/10/wordpress-3-7-release-candidate/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:5;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"WordPress 3.7 Beta 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 10 Oct 2013 21:28:06 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2706";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:357:"WordPress 3.7 Beta 2 is now available for download and testing. This is software still in development, so we don’t recommend that you run it on a production site. This has been a quiet beta period. We’re hoping to get some more testers for automatic background updates, which will occur for security and minor releases (like updating […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2108:"
WordPress 3.7 Beta 2 is now available for download and testing. This is software still in development, so we don’t recommend that you run it on a production site.
\n
This has been a quiet beta period. We’re hoping to get some more testers for automatic background updates, which will occur for security and minor releases (like updating from 3.7 to 3.7.1). It’s really easy to test this, as Beta 2 will update each day to the latest development version and then email you the results. If something goes wrong, you can report it — it’s that simple. To get the beta, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightlies”). Or you can download the beta here (zip). Check out Dashboard → Updates to see if your install is eligible for background updates. WordPress won’t update if, for example, you’re using version control like SVN or Git.
\n
For more of what’s new in version 3.7, check out the Beta 1 blog post. In Beta 2, we further increased the stability of background updates and also added about 50 bug fixes, including a fix for Internet Explorer 11 in the visual editor.
Beta 2 released \nDotting i’s and crossing t’s \nExpect RC next
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/10/wordpress-3-7-beta-2/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:6;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"WordPress 3.7 Beta 1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 28 Sep 2013 07:25:44 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2688";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:339:"I’m pleased to announce the availability of WordPress 3.7 Beta 1. For WordPress 3.7 we decided to shorten the development cycle and focus on a few key improvements. We plan to release the final product in October, and then follow it in December with a jam-packed WordPress 3.8 release, which is already in development. Some […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:3684:"
I’m pleased to announce the availability of WordPress 3.7 Beta 1.
\n
For WordPress 3.7 we decided to shorten the development cycle and focus on a few key improvements. We plan to release the final product in October, and then follow it in December with a jam-packed WordPress 3.8 release, which is already in development. Some of the best stuff in WordPress 3.7 is subtle — by design! So let’s walk through what we’d love for you to test, just in time for the weekend.
\n
Automatic, background updates. 3.7 Beta 1 will keep itself updated. That’s right — you’ll be updated each night to the newest development build, and eventually to Beta 2. We’re working to provide as many installs as possible with fast updates to security releases of WordPress — and you can help us test by just installing Beta 1 on your server and seeing how it works!
\n
When you go to Dashboard → Updates, you’ll see a note letting you know whether your install is working for automatic updates. There are a few situations where WordPress can’t reliably and securely update itself. But if it can, you’ll get an email (sent to the ‘Admin Email’ on the General Settings page) after each update letting you know what worked and what didn’t. If it worked, great! If something failed, the email will suggest you make a post in the support forums or create a bug report.
\n
Here are some other things you should test out:
\n
\n
If you’re running WordPress in another language, we’ll automatically download any available translations for official WordPress importers and the default themes. (More to come here.)
\n
Our password meter got a whole lot better, thanks to Dropbox’s zxcvbn library. Again, subtle but effective. Strong passwords are very important!
\n
Search results are now ordered by relevance, rather than just by date. When your keywords match post titles and not just content, they’ll be pushed to the top.
\n
Developers should check out the new advanced date queries in WP_Query. (#18694)
\n
\n
This software is still in development, so we don’t recommend you run it on a production site. I’d suggest setting up a test site just to play with the new version. To test WordPress 3.7, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightlies”). Or you can download the beta here (zip).
WordPress three seven \nSaves your weary hand a click \nUpdates while you sleep
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:60:"http://wordpress.org/news/2013/09/wordpress-3-7-beta-1/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:48:"WordPress 3.6.1 Maintenance and Security Release";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:50:"http://wordpress.org/news/2013/09/wordpress-3-6-1/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:59:"http://wordpress.org/news/2013/09/wordpress-3-6-1/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 11 Sep 2013 20:48:23 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Security";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2675";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:353:"After nearly 7 million downloads of WordPress 3.6, we are pleased to announce the availability of version 3.6.1. This maintenance release fixes 13 bugs in version 3.6, which was a very smooth release. WordPress 3.6.1 is also a security release for all previous WordPress versions and we strongly encourage you to update your sites immediately. […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:2033:"
After nearly 7 million downloads of WordPress 3.6, we are pleased to announce the availability of version 3.6.1. This maintenance release fixes 13 bugs in version 3.6, which was a very smooth release.
\n
WordPress 3.6.1 is also a security release for all previous WordPress versions and we strongly encourage you to update your sites immediately. It addresses three issues fixed by the WordPress security team:
\n
\n
Block unsafe PHP unserialization that could occur in limited situations and setups, which can lead to remote code execution. Reported by Tom Van Goethem.
\n
Prevent a user with an Author role, using a specially crafted request, from being able to create a post “written by” another user. Reported by Anakorn Kyavatanakij.
\n
Fix insufficient input validation that could result in redirecting or leading a user to another website. Reported by Dave Cummo, a Northrup Grumman subcontractor for the U.S. Centers for Disease Control and Prevention.
\n
\n
Additionally, we’ve adjusted security restrictions around file uploads to mitigate the potential for cross-site scripting.
Download WordPress 3.6.1 or update now from the Dashboard → Updates menu in your site’s admin area.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:55:"http://wordpress.org/news/2013/09/wordpress-3-6-1/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:42:"\n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:25:"WordPress 3.6 “Oscarâ€";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"http://wordpress.org/news/2013/08/oscar/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:49:"http://wordpress.org/news/2013/08/oscar/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 01 Aug 2013 21:43:22 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:8:"Releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2661";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:368:"The latest and greatest WordPress, version 3.6, is now live to the world and includes a beautiful new blog-centric theme, bullet-proof autosave and post locking, a revamped revision browser, native support for audio and video embeds, and improved integrations with Spotify, Rdio, and SoundCloud. Here’s a video that shows off some of the features using […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:18626:"
The latest and greatest WordPress, version 3.6, is now live to the world and includes a beautiful new blog-centric theme, bullet-proof autosave and post locking, a revamped revision browser, native support for audio and video embeds, and improved integrations with Spotify, Rdio, and SoundCloud. Here’s a video that shows off some of the features using our cast of professional actors:
\n\n
We’re calling this release “Oscar” in honor of the great jazz pianist Oscar Peterson. Here’s a bit more about some of the new features, which you can also find on the about page in your dashboard after you upgrade.
\n
User Features
\n\n
\n
The new Twenty Thirteen theme inspired by modern art puts focus on your content with a colorful, single-column design made for media-rich blogging.
\n
Revamped Revisions save every change and the new interface allows you to scroll easily through changes to see line-by-line who changed what and when.
\n
Post Locking and Augmented Autosave will especially be a boon to sites where more than a single author is working on a post. Each author now has their own autosave stream, which stores things locally as well as on the server (so much harder to lose something) and there’s an interface for taking over editing of a post, as demonstrated beautifully by our bearded buddies in the video above.
\n
Built-in HTML5 media player for native audio and video embeds with no reliance on external services.
\n
The Menu Editor is now much easier to understand and use.
\n
\n
Developer features
\n
\n
A new audio/video API gives you access to metadata like ID3 tags.
\n
You can now choose HTML5 markup for things like comment and search forms, and comment lists.
\n
Better filters for how revisions work, so you can store a different amount of history for different post types.
This release was led by Mark Jaquith and Aaron Campbell, and included contributions from the following fine folks. Pull up some Oscar Peterson on your music service of choice, or vinyl if you have it, and check out some of their profiles:
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:1:{s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:45:"http://wordpress.org/news/2013/08/oscar/feed/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:45:"\n \n \n \n \n \n \n \n\n \n \n \n \n \n ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:5:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:33:"WordPress 3.6 Release Candidate 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:68:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:77:"http://wordpress.org/news/2013/07/wordpress-3-6-release-candidate-2/#comments";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 24 Jul 2013 07:25:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:11:"Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:7:"Testing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"http://wordpress.org/news/?p=2649";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:341:"The second release candidate for WordPress 3.6 is now available for download and testing. We’re down to only a few remaining issues, and the final release should be available in a matter of days. In RC2, we’ve tightened up some aspects of revisions, autosave, and the media player, and fixed some bugs that were spotted […]";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Mark Jaquith";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:1325:"
The second release candidate for WordPress 3.6 is now available for download and testing.
\n
We’re down to only a few remaining issues, and the final release should be available in a matter of days. In RC2, we’ve tightened up some aspects of revisions, autosave, and the media player, and fixed some bugs that were spotted in RC1. Please test this release candidate as much as you can, so we can deliver a smooth final release!
Developers, please continue to test your plugins and themes, so that if there is a compatibility issue, we can figure it out before the final release. You can find our list of known issues here.
WordPress 3.7.1 is now available! This maintenance release addresses 11 bugs in WordPress 3.7, including: Images with captions no longer appear broken in the visual editor. Allow some sites running on old or poorly configured servers to continue to check for updates from WordPress.org. Avoid fatal errors with certain plugins that were incorrectly calling som […]
Version 3.7 of WordPress, named “Basie†in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones: Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to […]
Most WordPress maintenance releases are nothing to write home about, but WordPress 3.7.1 is one for the history books. This is the first maintenance release where users don’t have to lift a finger to get their sites upgraded. \n
Sites already running WordPress 3.7 will soon be automatically upgraded to the latest and greatest.
\n
The release haiku, created by Mark Jaquith, sums it up nicely:
\n
Just a few fixes \nYour new update attitude: \nZero clicks given
\n
\n
WordPress 3.7 is rapidly approaching two million downloads. That’s a huge number of site admins who don’t have to worry about logging in to perform updates. WordPress core developer Andrew Nacin said that maintenance and security releases are likely to be a more frequent occurrence now that they don’t have to worry about update fatigue. If you’re wondering how long your site will take to update to WordPress 3.7.1, Nacin estimated 24 seconds. He’s probably done this a thousand times while testing:
\n
Installs take about 24 seconds to update on average, but that includes downloading and unzipping the package. A core update should put your site into maintenance mode for only a few seconds.
\n
This release includes 10 fixes for small bugs in 3.7. Check out the full changelog to get the details.
\n
You can update your site immediately or wait until the core team starts rolling out the automatic background updates. I suggest you go crack yourself a cold one and let WordPress do the work for you.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 22:09:39 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:2;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WPTavern: Why You Should Never Add Analytics Code to Your WordPress Theme";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10602";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:125:"http://feedproxy.google.com/~r/WordpressTavern/~3/Cgbk-X7PiGg/why-you-should-never-add-analytics-code-to-your-wordpress-theme";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4189:"
This is a simple thing but it bears mentioning. Nearly every major WordPress theme provider offers the ability to easily add Google Analytics or other tracking code via the theme’s options panel.
\n
The idea stems from wanting to market a theme with everything needed to create the website that you see in the demo. Theme developers have been successful at selling themselves as one stop shops. To that end, they often pack WordPress themes full of code that is better suited to the realm of plugins.
\n
One common example is a theme option to add tracking code. It’s likely one of the last options listed in your theme’s dashboard panel. It’s a really easy place to add Google Analytics code, but please resist the temptation to paste your code in here.
\n
Analytics Code is Not a Theme Feature
\n
Site analytics are not a theme feature and simply do not belong in your theme. Analytics has nothing to do with your website’s design. Even if Google tells you to add this to the header of your site, do not directly edit your theme.
\n
The reason for this is that WordPress themes were made to be easily swapped out. More than likely you’re not going to use the same theme forever. But if your analytics code is in your theme options, then you’ll lose it when you change themes. By the time you realize it, you may already have large gaps in your analytics.
\n
Do yourself a favor. Instead of adding the code to your theme every time you change themes, just drop it in a plugin. There are plenty available on wordpress.org. You’ll only have to add it once and it will be safe when you change the design of your website.
\n
Theme Developers: Stop Tying Data to Themes
\n
Portability – I has it
This discussion boils down to data portability, a topic of recent conversation on Justin Tadlock’s blog: Why custom post types belong in plugins. If you’re a theme developer, please do not tie any form of data or content to the themes you create. This includes analytics, shortcodes, custom post types, booking and event management, testimonials, fundraising functionality, portfolios, etc. The list could go on and on. \n
If a user cannot quickly pack up his data and go after using your theme, then your product has become a dead weight. In a perfect world, WordPress consumers will start looking at themes with this question in mind: “If I wanted to stop using this theme tomorrow, could all my data go with me?” If you’re selling a product that doesn’t pass that test, then you might want to make a few changes for the sake of data portability.
\n
Better options would be to include functionality plugins with the purchase of the theme or recommend a high quality plugin to accompany it. Keeping those functions separate from the theme itself will help users to take their data with them when they change themes. As a bonus, it’s also easier to troubleshoot when providing support. Let’s just keep themes clean. We’ve all been guilty of hindering data portability in the past, but now is good time to start building WordPress products differently.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 21:30:21 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:3;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:37:"Matt: New Virgin America Safety Video";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:21:"http://ma.tt/?p=43146";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:53:"http://ma.tt/2013/10/new-virgin-america-safety-video/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:288:"
\n
Virgin America is giving Delta a run for their money with this amazing safety video — who has ever said that before? — directed by Jon Chu, who also did two of the Step Up movies. (Which sound cheesy but are actually awesome.)
Akismet is celebrating a huge milestone today. According to its spam counter, it has now blocked over 100,000,000,000 spam messages. Not all of that spam has originated from WordPress powered websites. Thanks to a number of libraries and an API, Akismet can be used on different content management systems as well as services.
\n
Installing Akismet Helpers
\n
While Akismet has saved me a ton of time, ever since I added two plugins to this website to go in front of Akismet, it’s been much more effective. I’ve installed Cookies for comments and Simple Trackback Validation. The results speak for themselves. But don’t take my word for it. Justin Tadlock wrote about his experience using these two plugins and he considered Cookies for comments one of his top 5. Another plugin worthy of trying is WP-Hashcash. While you may notice the two-year update notice on the WP-Hashcash and Simple Trackback Validation plugin pages, I can assure you that both work with WordPress 3.7.
\n
Share How Much Spam Akismet Has Blocked
\n
If you use the Jetpack plugin by Automattic, you’ll be able to use the Akismet widget. Browse to Appearance – Widgets and locate the Akismet Widget under the available widgets area. There are no options since the only thing it does is show people visiting your site how much spam has been blocked. While green is the color of Akismet, it doesn’t look great on every website. Also, since there is no padding underneath the spam count, it gives the appearance that the widget is broken.
\n
\n
Don’t mind the number because it’s wrong. Since the launch of WPTavern, the counter has been reset a few times. With WordPress powering 20% of the web and multiple services able to tie into Akismet, it shouldn’t take nearly as long to reach 200,000,000,000. I just hope this site doesn’t take the brunt of that number!
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 21:00:46 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:6;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:64:"WPTavern: Why The WordPress Plugin Version Pie Chart Disappeared";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10634";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:116:"http://feedproxy.google.com/~r/WordpressTavern/~3/LiKDt2xGB94/why-the-wordpress-plugin-version-pie-chart-disappeared";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1605:"
About three years ago, WordPress introduced pie charts and a stats API to the plugin repository. These stats gave plugin authors a chance to see which versions of their plugin were activated while also giving a glimpse into how many actual users the plugin had. The API provided a method to getting access to the data. Unfortunately, the API along with the Pie charts have been temporarily removed.
\n
According to ticket #107 which states that the pie charts were reporting erroneous data, Otto responded “until we can sort out the stats gathering system, this was no better than random numbers“. I sent an email to the WordPress.org team to see if any progress had been made on this problem. Their response is that they have not looked into it yet. It will be worked on at some point, but it’s not high on the priority list at the moment.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 20:00:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:57:"WPTavern: How To Add A ManageWP Button To Jetpack Sharing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10611";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:109:"http://feedproxy.google.com/~r/WordpressTavern/~3/kG3zYYYBhm4/how-to-add-a-managewp-button-to-jetpack-sharing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4801:"
ManageWP.org has been live since October 14th and has already accumulated over 1,000 registered users. The site has also been in the top 5 of traffic referrals to WPTavern.com, thanks in large part to the unsolicited submission of articles and upvotes. We extend a huge thank you to all who have shared and voted on WPTavern articles on the site. Read on to learn how you can easily tap into this traffic source.
\n
While ManageWP.org offers two different button styles you can display within the content, I prefer not to have anything within the content block that serves as a distraction. That’s why I use the Sharing module within Jetpack. Using this module, I can add or subtract services for sharing content. I can also configure where they are displayed. ManageWP is not one of the supported services by default but you can easily add the service by following these instructions.
\n
Browse to the sharing module in Jetpack and click the add new service link under available services.
Then click on the create share button. This is where it becomes confusing. After clicking the create share button, you’ll see a spinning circle indicating that something is happening. When it stops, the add new service pop-up stays on the screen. This gives the appearance that it is broken or something is hanging, preventing the button from being created. In my experience, I closed the pop-up window and when I tried to add the new service again, the fields were filled with the data I supplied earlier but the create share button was stuck in the pressed position. However, when I refreshed the sharing button admin page, the ManageWP button showed up. I hope you have a smoother experience when creating the button.
\n
\n
Once the button is created, just drag it to the enabled services section and arrange it to your liking. When a visitor clicks on the button and that article has not yet been submitted to the site, that visitor will be asked to log-in if they don’t have an account or are logged out. Next, the user will be presented with a screen to share the article. If the article has already been submitted, they will be taken to the article on ManageWP.org where they can upvote it. A little known feature with this button is that the submitter also has the ability to supply an editorial comment which is viewed when visitors hover over the article title on ManageWP.org.
\n
Why Adding The Button Is Important
\n
Adding a ManageWP button to your site makes it easy for visitors to share and vote articles. It also helps them generate traffic, which helps other articles submitted on the site. I’ve been using ManageWP.org since its launch and have found myself browsing around discovering different articles and providing a number of upvotes. The one thing I’ve discovered is that an article with a high number of upvotes on the front page does not mean it’s the freshest article. I’ve seen a few articles published months ago that are showing up on the front page with over 20 upvotes. So keep that in mind when browsing the site.
\n
I’m interested in hearing from other WordPress content centric website owners. Has your traffic levels been any higher since the launch of ManageWP.org?
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 18:30:58 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:68:"WPTavern: WordPress Style Guide: A Reference For Admin UI Components";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10604";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:119:"http://feedproxy.google.com/~r/WordpressTavern/~3/so0jFriSR-M/wordpress-style-guide-a-reference-for-admin-ui-components";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2670:"
WordPress is getting its own style guide. Helen Hou-Sandà is working on a new plugin called WordPress Style Guide to serve as a reference for building WordPress admin UI components. This is very much a work in progress and its purpose will evolve, as Helen notes on the plugin’s github page: “This plugin is not planned to be distributed through the WordPress.org repository, as its anticipated final form will take over a site completely.” The end result will be a guide similar to what you see with front end development frameworks such as Twitter Bootstrap or Zurb Foundation.
\n
So far the plugin includes three sections:
\n
\n
jQuery UI Components
\n
Forms
\n
Helper Classes
\n
\n
These appear in the form of HTML pages within the admin and contain a few rough style examples:
\n
\n
This style guide has the potential to greatly improve the way plugin and theme developers create UI components that fit into the WordPress admin. It will also help to speed up that process when developers can quickly get the appropriate styles from the reference.
\n
Custom admin UI done wrong can be a scary thing. How many times have you seen a plugin with visually jarring alerts and mismatched styles in the admin? That Sore Thumb plugin is a hazard to the eyes. If only there was a guide to help put them on the right path. That’s where this project can benefit the community.
\n
Contribution to the WordPress Style Guide is open to all. If you’d like to help build it, feel free to send a pull request and/or leave feedback in the issues queue.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 17:42:55 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:69:"WordPress.tv: Kane Jamison: 30 Ways to Move Beyond Basic Blog Content";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24403";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:86:"http://wordpress.tv/2013/10/29/kane-jamison-30-ways-to-move-beyond-basic-blog-content/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:688:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 15:15:30 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:10;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WordPress.tv: Steve Zussino: How To Optimize Your Blog For Mobile Traffic";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24405";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:90:"http://wordpress.tv/2013/10/29/steve-zussino-how-to-optimize-your-blog-for-mobile-traffic/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:696:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 29 Oct 2013 14:56:01 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:11;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:65:"WPTavern: Major Update Coming to the WordPress Plugin Boilerplate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10542";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:117:"http://feedproxy.google.com/~r/WordpressTavern/~3/6panc40_WvQ/major-update-coming-to-the-wordpress-plugin-boilerplate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:5211:"
When Tom McFarlin released his WordPress Plugin Boilerplate on github last November, he has no idea how many developers would jump on board to contribute to this open source learning resource. The plugin has received a ton of support from the community, including commits from more than 26 contributors. McFarlin will soon be putting out a major release that will make the boilerplate better than ever.
\n
An Introduction to the WordPress Plugin Boilerplate
The plugin boilerplate provides the foundation for building a WordPress plugin. Based on the WordPress Plugin API, it provides example values for a basic plugin, so you can learn how to structure your own. All the basics are nicely documented within the plugin using PHPDoc conventions.
\n
File organization matters.
\n
Sometimes you find WordPress plugins with files scattered all over throughout random directories with no rhyme or reason. The WordPress Plugin Boilerplate provides a standardized directory structure for maintaining your plugin’s assets.
\n
Here’s just a quick sampling of what you can learn from starting with the boilerplate:
\n
\n
Register and enqueue public-facing JavaScript files
\n
Create a .pot as a starting translation file
\n
Make your plugin network-aware and compatible with WordPress multisite
\n
Register and enqueue admin-specific JavaScript and stylesheets
\n
Provide updates to your WordPress plugin from GitHub
\n
\n
All of the above and so much more is documented inside the plugin boilerplate with links to where you can find more information. This is a very valuable resource for anyone who wants to get started with best practices in developing WordPress plugins.
\n
WordPress Plugin Boilerplate 2.8.0 Will Be a Major Update
\n
Many developers have been eager to contribute to the project and McFarlin announced that a major release of the accumulated community efforts is coming soon. Highlighted additions to this release include:
\n
\n
Added an admin class
\n
Defining a section to provide links for recommended tools
\n
Adding a ‘GitHub Plugin URI’ to the wordpress-plugin header
\n
Fix loading textdomain when the plugin is symlinked
McFarlin has a number of outstanding issues and discussions that he’d like to address before pushing out the next release. These include questions such as whether or not to move class files to their own subdirectory, the possibility of moving the assets directory, and more. If you can lend any wisdom on these issues, you’re invited to comment on McFarlin’s post, issue a pull request or get in touch with him on Twitter. This is a community effort that can only help to raise the standards for WordPress plugin development.
\n
Have any of you used this boilerplate to get started building plugins? Is there anything you would change about how it is structured?
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 28 Oct 2013 22:18:36 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:12;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:63:"WPTavern: How to Install WordPress Plugins Directly From Github";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10037";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:115:"http://feedproxy.google.com/~r/WordpressTavern/~3/tRC1n_fg3jk/how-to-install-wordpress-plugins-directly-from-github";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6687:"
It’s amazing how much WordPress code is available on github. Many developers choose not to place their plugins on WordPress.org for one reason or another, but this makes their code less convenient for others to find. Using a plugin from github traditionally requires you to visit github, search for the plugin, download the zip file and upload it to your site to install.
\n
An Easier Way to Find and Install WordPress Plugins Hosted on github
\n
Paul Clark has created a plugin called Github Plugin Search that will allow you to access and install WordPress plugins directly from your dashboard. He found a way to connect the github code search API to the WordPress plugin installer API. Here’s a quick demo of how this works:
\n
\n
How does the plugin detect WordPress plugins hosted on github?
\n
Intrigued by the idea, I tested the plugin and checked in with Paul to find out how the plugin is able to detect WordPress plugins hosted on github. He replied:
\n
Github’s code search API is fairly new (like… it’s still in preview. You have to send a special header just to access it.). They don’t *exactly* provide enough power in their search to truly query for WordPress plugins or to aggressively search the contents of each individual plugin.
\n
To get around their limitations (limits on number of queries, no ability to match exact text like “Plugin Name”), I’m using a combination of two searches, comparing the results, and then filtering down to repositories I’m confident are installable WordPress plugins.
\n
Paul outlined three requirements a repository must meet in order to be found by his github search plugin:
\n
\n
Be a PHP file
\n
Be in the top level of the repository
\n
Have a comment block at the top of the file that matches a WordPress plugin header, with “Plugin Name:” and “Plugin URI:” in a comment block at the top. (This plugin header format is pretty unique — no other PHP systems I know of follow the same format.)
\n
\n
Right now, the plugin full-on replaces the search with results from github. It’s not such a big deal because of the github wp-plugins mirror, but Paul would like to add an option to toggle between wordpress.org and github results in the future.
\n
Example results from searching github
\n
Currently, the results returned are very basic, but Paul said that this is due to working within the confines of the API in preview:
\n
When the Github API comes out of preview, I expect to be able to make results more accurate. Right now, logged in users can only make 20 queries every few minutes. All their other APIs allow 5000. I expect they’ll change it over when it’s final. When they do, the plugin could go crazy getting exact details on plugin files, running checks, and providing richer data from the readme and screenshots.
\n
How Can Users Get Updates For New Stable Versions of Plugins Hosted on github?
\n
I asked Paul if users would still be able to get updates for their plugins if they install from github. This is imperative, because a user wouldn’t want to unknowingly exclude himself from future updates. “The WordPress update API works based on the plugin name, not the source,” Paul explained. “So, if a user were to *install* wp-seo from Github right now, updates from wordpress.org would still work.”
\n
Paul wrote a plugin a year or so ago that updates plugins from Github, Bitbucket, or generic Git repositories (public or private), if the URL is mentioned in the plugin header. It works nicely for him on client sites but in the current version of the Github Plugin Search he has it turned off. He outlines his concerns and the reasons why:
\n
\n
In the current update plugin, the Git URL is set in the header. If all plugins are going to update, I need to generate and store that information for each plugin installed.
\n
The current updater updates when a new version is tagged in Github. Many WordPress developers aren’t in the habit of doing that (it’s the Git way of marking a new version, not the WordPress way), so to work with all plugins, I’d need to modify it to get the version number from the remote readme file. It’s possible to do that, just takes some time.
\n
If the update system is going to be replaced, users should also probably get a user interface to show them which plugins that’s happening for, and allow them to enable or disable it. There’s no reason, other than time, that those concerns couldn’t be resolved in the future.
\n
\n
The Future of Github Plugin Search
\n
So as you can see, the plugin is still a work in progress but a very solid proof of concept so far. Paul plans to continue improvements to the plugin. In the future he may add in the fork and star count for the github repos in order to provide more data for users when selecting plugins. He’s created a list of enhancements that may come further down the road.
\n
If you’d like to fork the Github Search Plugin or suggest changes, check it out on github or get in touch with Paul via Twitter.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 28 Oct 2013 18:31:45 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:13;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WPTavern: WordPress Automatic Updates – No Options For You!";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10527";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:108:"http://feedproxy.google.com/~r/WordpressTavern/~3/rVDGIkXIPyc/wordpress-automatic-updates-no-options-for-you";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:8074:"
Now that WordPress 3.7 is out in the wild and has already accumulated over 1.5 million downloads, the complaints are starting to roll in concerning the automatic update feature. On the Make.WordPress.core website where Andrew Nacin published a great guide on the different ways of configuring auto updates, users started questioning why there wasn’t an option in the back-end to either opt-out of auto updates or to configure how they operate.
\n
The answer to that question is simple as pointed out by Andrew Nacin.
\n
For the betterment of the web, we made a conscious decision to avoid a UI option. You’d be out of your mind to consciously avoid updating to fix a critical bug or security issue. We think the vast majority of users (many who don’t even know what PHP is) will celebrate this as a win in usability and security.
\n
We very strongly pride in our core philosophies, including designing for the majority, making WordPress work out of the box with little configuration or setup, choosing decisions instead of adding options, and striving for simplicity. (Incidentally, that last section needs updating to emphasize we’ve now made updates even simpler.)\n
\n
No Auto Updates For Desktop Software But Enabled For WordPress
\n
I don’t have a single piece of software on my desktop or notebook that has been configured to automatically update itself. Instead, I always make sure I’m notified before any updates are to be installed. I usually review the changelog and then update as needed. With WordPress however, I’m willing to allow auto updates for minor and security releases to be enabled for two reasons. The first is that this site is constantly being backed up by VaultPress. I’m not worried if the site breaks during or after an upgrade. The second, I’ve rarely ever had a problem with WordPress upgrades.
\n
There Are No Guarantees
\n
The same concerns that were brought up when automatic updates were announced are still being voiced. The biggest concern users have is not being able to easily go back to a working version of WordPress should something break. At the crux of this particular concern is that automatic updates prevent people from creating backups immediately before the update process. The update process has failsafe after failsafe to prevent catastrophes from happening but there is no guarantee. By default in WordPress 3.7 and above, the only updates that will happen automatically are minor and security releases. Although they have different names, these releases can sometimes be the same thing. Andrew Nacin explained the differences.
\n
It’s been stressed that these minor and security updates rarely break anything dealing with the core of WordPress. However, sometimes these minor changes cause a plugin or theme to break. Rarely doesn’t mean never. It’s this slight possibility of a site breaking that has prevented people from jumping on board to support the feature.
\n
How To Make Upgrading Less Fearful
\n
The best article I’ve read so far on this topic is from Mika Epstein entitled, Don’t Fear The Auto Update. While she doesn’t dismiss the fact that a site can break during an auto update, she provides a number of great tips that you can use so that upgrading is less of a frightful experience.
\n
Yes, it’s defaulted to “on†because after intensive testing, and careful thought, WordPress core devs are pretty darn sure that these minor updates, which are more often than not security related, will not break a site. I’ll get back to breaking sites in a second. The point is that minor updates were picked specifically because it’s known that major upgrades can often break things.
\n
If every time you upgrade WordPress, your site breaks, please follow her advice and do a plugin/theme audit.
\n
My Thoughts
\n
Normally, I’d be in support of adding an option to allow users to configure how auto updates work. In this case however, I understand the big picture. With WordPress being used on 20% of the web, the team owes it to the web in general to help users as best they can, keep their sites up to date. This tweet by Andrew Nacin is a good example of the big picture.
\n
It will take a while to feel the true effects of WordPress 3.7. # sites running secure versions will go up. # localized installs will go up.
The concerns raised are warranted and it only takes one experience of an auto update breaking a site to ruin things. Meanwhile, there were over 100,000 auto updates applied during the WordPress 3.7 testing period and not a single one of them failed according to Andrew Nacin.
\n
We ended the WordPress 3.7 beta cycle with 112,434 automatic background updates attempted and not a single critical failure.
Many of the terrible scenarios discussed are hypothetical situations. I say we give 3.7 and 3.7.1 some time and let’s see if auto updates do more harm than good. After 3.7.1 is released, WordPress.org will have a lot of useful data which I hope the team shares with everyone.
\n
Update Control Gives You All The Automatic Update Options You Need
\n
If you are looking for a plugin that adds options to the WordPress back-end to easily configure how auto updates work, check out Update Control. This plugin provides all of the auto update options you could ever want! No need to hack WP-Config or use constants.
\n
\n
I can’t wait to revisit this topic after the release of 3.7.1. By then, the core team will have some real world data to analyze.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 28 Oct 2013 17:30:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:14;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:67:"WPTavern: Changing The WordPress Admin Username During Installation";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10500";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:107:"http://feedproxy.google.com/~r/WordpressTavern/~3/fKUQvr6kSnY/change-the-admin-username-during-installation";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3326:"
One of the security tips you’ll come across often is immediately deleting the admin user after installation and creating a new user, then assigning that user the administrator role. This is something I wish the core team would address so that during the installation of WordPress, users would be able to choose their own username and select a strong password without having to go back and delete the initial admin account.
\n
Something New Learned At My WordPress Meetup
\n
While attending my local WordPress meetup, one of the new WordPress users in attendance mentioned the security tip of deleting the administrator account that is created during installation and creating a new user account that is then assigned the administrator role. The idea being that hackers try to login with admin as the username and then try multiple different passwords. I had mentioned that it would be great if WordPress enabled users to make this change during installation instead of having to do it after the fact.
\n
Turns Out You Can
\n
I discovered during a brand new WordPress 3.7 install that users were able to change the default username from admin, to something else. This is the first time I’ve installed WordPress in a long time which is why I didn’t know this change already took place. It also didn’t dawn on me because people are still sharing the security tip I mentioned above. This combination of the enhanced password strength meter and the ability to change the default admin user name during install saves new WordPress installation admins from having to go through a security step that has been preached about for years. As it turns out, users have been able to change the default username of admin for a number of versions. Based on research I conducted, this change has been in place since at least version 3.0.
\n
\n
Why Are We Still Preaching This Security Tip?
\n
With that being the case, why have so many fresh installs decided to use admin as the default username? Why do we continue to preach the security tip of immediately deleting admin and replacing it with a different username? One of the suggestions at my local meetup was to not auto fill the username field with admin and instead, force new installers to create their own unique username. This sounds like a good suggestion to me. When we tried to do a fresh install of WordPress 3.6.1 to see what would happen, admin was automatically filled in for the username. It seems to me that making this simple change would make WordPress installs that much more secure right out of the gate.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 28 Oct 2013 16:00:40 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:15;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:68:"WPTavern: How To Find Live Examples Of Sites Using A WordPress Theme";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10496";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:110:"http://feedproxy.google.com/~r/WordpressTavern/~3/u8aPo48AZcE/how-to-find-live-examples-of-sites-using-a-theme";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2287:"
WPShout.com has a great article that explains how to easily find websites that are using the theme you’re thinking about buying or using. One of the first things I try to do before downloading or purchasing a theme is to find actual websites that are using the design. While some theme companies have a showcase area highlighting these sites, most of them do not. Using the technique shared by WPShout, I was able to discover this neat looking child theme of TwentyThirteen.
\n
\n
According to WPShout, it’s as simple as a Google search. Simply type in “wp-content/themes/[theme-name]“ ,quotation marks and all, and look for a search result that looks like a PHP scripting error. WPShout explains that Google sometimes indexes these errors which is why the name of the theme shows up in search results. I’ll let you read the article to figure out the secondary way of viewing live sites with themes you’re interested in but I thought this was an ingenious way of finding them. It will still take a little work on the user’s part to find the sites using the theme they are looking for, but this is a good stepping stone towards finding them. If nothing else, it enables you to see some PHP fatal error messages.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 28 Oct 2013 13:30:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:16;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:87:"WPTavern: WordPress Core Developers Release Plugin To Test Automatic Background Updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10506";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:124:"http://feedproxy.google.com/~r/WordpressTavern/~3/u8nGxe5ugU4/wordpress-releases-plugin-to-test-automatic-background-updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2616:"
Over the weekend, WordPress developers Andrew Nacin and Dion Hulse released an official WordPress.org plugin that enables users to test their sites’ compatibility with the background updates feature, introduced in WordPress 3.7.
\n
Background Update Tester is an official plugin, released under the WordPress.org account. It was created to help users diagnose problems that prevent WordPress from updating automatically. Once installed, a new menu is available at the Dashboard >> Update Tester screen. The plugin performs a test and displays results on this screen.
\n
Here’s an example of the plugin in action on a site where background updates fail:
\n
\n
The plugin performs tests that will automatically answer the following questions for you:
\n
\n
Can your site communicate with WordPress.org securely?
\n
Are there any version control systems detected?
\n
Does your site require FTP credentials to perform updates?
\n
Are your files writable by WordPress?
\n
\n
A non-technical user would have no idea how to answer these questions without the help of this plugin. As you can see in the example above, the tests found that WordPress was not able to edit files in the wp-admin folder and listed those files. This is something that’s easy enough to correct for a developer. If the user is less technically inclined, he can report the results of the test to his host to seek assistance for correcting the problem.
\n
If you’ve run into issues while trying to get background updates, this plugin is the key to finding your site’s incompatibility.
\n
Thankfully, most users won’t need this plugin, as a large majority of sites don’t have compatibility issues. If you’re eager to jump on the automatic updates train but have so far been prevented, install the Background Update Tester plugin to find out how to correct the problem.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 28 Oct 2013 12:01:18 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:17;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:64:"WordPress.tv: Christine Rondeau: Put Some Shine In Your Back-End";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24363";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:81:"http://wordpress.tv/2013/10/28/christine-rondeau-put-some-shine-in-your-back-end/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:684:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 28 Oct 2013 08:56:38 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:18;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:77:"WordPress.tv: Suzette Franck: Resources For Reaching Your WordPress Potential";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24222";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:94:"http://wordpress.tv/2013/10/28/suzette-franck-resources-for-reaching-your-wordpress-potential/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:710:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 28 Oct 2013 07:36:06 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:19;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:71:"WordPress.tv: Chip Bennett: Custom Layouts Without Using Page Templates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24325";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:88:"http://wordpress.tv/2013/10/26/chip-bennett-custom-layouts-without-using-page-templates/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:692:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 26 Oct 2013 17:51:14 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:20;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WordPress.tv: Chris Wilcoxson: How to Build Your First Widget";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24323";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:78:"http://wordpress.tv/2013/10/26/chris-wilcoxson-how-to-build-your-first-widget/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:672:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 26 Oct 2013 17:50:16 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:21;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:53:"WordPress.tv: Dougal Campbell: Secure All The Things!";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=18726";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:69:"http://wordpress.tv/2013/10/26/dougal-campbell-secure-all-the-things/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:655:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 26 Oct 2013 16:00:12 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:22;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:61:"WordPress.tv: Coen Jacobs and Scott Basgaard: WooCommerce 2.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24109";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:78:"http://wordpress.tv/2013/10/25/coen-jacobs-and-scott-basgaard-woocommerce-2-0/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:678:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 26 Oct 2013 04:16:29 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:23;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WPTavern: WPWeekly Episode 125 – Alex Denning And The Future Of WPShout";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10488";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://feedproxy.google.com/~r/WordpressTavern/~3/BrQjYeCM2K0/wpweekly-episode-125-alex-denning-and-the-future-of-wpshout";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3402:"
On this weeks edition of the show, Alex Denning was my special guest along with the new owners of WPShout.com, Fred and David of PressUp Inc. In the show, Alex and I talk about the last four years of publishing content on WPShout.com, what types of opportunities it’s opened up for him, and what it took to put together his annual webhosting review posts. Later in the show, I was joined by David and Fred. We talked about their plans for WPShout.com, their WordPress background and if they have any plans to monetize the site. Since Alex is now going to be focusing on school and has sold his website, I want to take this opportunity to thank him personally for spending his time making WPShout a great resource in the WordPress community.
Next Episode: Friday, November 1st 3 P.M. Eastern – Our special guest for next week’s episode will be Cory Miller of iThemes.com to talk about his experience of leading one of the most successful commercial WordPress theme businesses on the web.
It’s easy to get distracted while writing posts. You’re in a browser and you probably have a few other tabs open with notifications beeping at you from every direction. On top of that, the WordPress post editor has a ton of meta boxes competing for your attention. With all of this going on, how can you focus on crafting beautiful words?
\n
The Distraction Free Writing Mode (DFWM) feature was introduced in WordPress 3.2, giving users the opportunity to find a zen place for writing while staying within the dashboard. It’s launched via the “fullscreen” button in the editor, whisking you away to a screen with an intentionally-limited button selection. These buttons fade away in the top menu as you begin composing. Here’s the default DFWM screen:
\n
WordPress Distraction Free Writing Mode
\n
Enhance Distraction Free Writing Mode with the Visual Editor
\n
Many users love the minimalism of this screen and will write the text of their post but format it later within the regular post editor. Just Writing is a new plugin that aims to keep you in the DFWM for the entire writing and formatting process.
\n
Essentially, the plugin enhances DFWM by adding the visual editor to the top with the other buttons. It also disappears as per the normal behavior. Here’s a look at the enhanced version with all the extra buttons turned on:
\n
\n
With the plugin installed you gain the “Undo” and “Redo” functions, text align, underline. proofreading and everything that you would expect with the visual editor. Beyond that, Just Writing also performs a few more subtle functions:
\n
\n
Adds a Preview button to the right of the Save button
\n
Moves the exit link to the right of the new Preview button as a real button
\n
Re-orders the button list to make more sense
\n
Per-user preferences for enabling Just Writing
\n
Per-user preferences for which buttons to display
\n
\n
Even if you’re not a fan of the visual editor buttons, the extra Preview button is a definite improvement over the DFWM in its default form. Installing the plugin also doesn’t universally apply the settings to all users. Each user is able to choose the buttons he wants to display to create his own zen writing place.
\n
Customize Your Distraction Free Writing Mode Experience
\n
Enhanced? Isn’t the point of the distraction free writing mode to get rid of everything and just write? Sure there are some of you out there who hate the visual editor with a passion, but there are also many who currently depend upon it.
\n
Just Writing isn’t an all-or-nothing plugin. It has an options panel where you can add or remove support for any of the visual editor buttons:
\n
Just Writing plugin options
\n
These options allow you to select the buttons that help you to stay in the flow while composing posts.
\n
Just Writing is available for free in the WordPress plugin repository. If you feel like the Distraction Free Writing Mode is missing a few functions, give this plugin a spin and see if it enhances your writing experience.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 25 Oct 2013 20:21:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:26;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:67:"WPTavern: How to Configure Automatic Core Updates for WordPress 3.7";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10437";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:119:"http://feedproxy.google.com/~r/WordpressTavern/~3/Bl1O4Pw_P3c/how-to-configure-automatic-core-updates-for-wordpress-3-7";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4272:"
So, how does this work?
Today following the release of WordPress 3.7 many users are wondering where the settings page is to configure these options. The answer is that there is no settings page in the WordPress admin. If you upgrade to WordPress 3.7, the default behavior is that you’ll be automatically upgraded for security and minor releases. \n
The fact that it’s security and minor releases only is a very important distinction here. These generally do not break anyone’s website, plugin or themes. If you’re using a plugin that gets broken due to a security release, then that raises a red flag and a few questions about how that plugin is interacting with the WordPress core.
\n
If you want to make changes to WordPress default behavior of keeping your site current with security/minor releases, you will need to edit your wp-config.php file.
\n
I asked Andrew Nacin if there is a plan to expose the core update configuration options to the UI in the future. He replied that there is “no good reason for an opt-out UI now, but as we grow more confident, I imagine an opt-in UI for major versions could be next.” So maybe this is around the corner, but for now, read on to learn how to configure your updates.
\n
3 Basic Options for Core Updates in WordPress 3.7
\n
Let’s simplify things here. You basically have three options for WordPress core updates:
\n
1. Update the core for minor versions (on by default):
\n
If you’re running WordPress 3.7, there’s nothing you need to do to turn this on. You’ll be automatically updated for security and minor releases. Here’s what it would look like in wp-config.php:
\n
define( \'WP_AUTO_UPDATE_CORE\', \'minor\' );
\n
2. Disable all core updates:
\n
If you’re uncomfortable with WordPress keeping your site current with minor releases and security updates, here’s how you turn it off. Add this to your wp-config.php file:
\n
define( \'WP_AUTO_UPDATE_CORE\', false );
\n
However, I would encourage you to read this definitive guide from Nacin before turning off core updates completely.
\n
3. Get all updates, including development, major and minor releases:
\n
This is the cowboy option that is probably more likely something you’d want to enable on a personal blog. If you turn this on in wp-config.php, you’ll be automatically updated for every release that WordPress puts out:
\n
define( \'WP_AUTO_UPDATE_CORE\', true );
\n
You can also apply all of the above via new filters added in WordPress 3.7, as outlined in the codex article on Configuring Automatic Background Updates. Filters are also available for plugin, theme and translation updates should you want to add those in the mix, too.
\n
If you’re scratching your head and trying to get your brain around all of these options, wondering what to do, then just leave the default options in place and don’t mess with it. WordPress strongly discourages disabling the automatic security updates. These updates have been heavily tested and are quite safe. Getting hacked because you didn’t want to take security updates would be really lame. The best option is to leave security updates in place.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 25 Oct 2013 16:37:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:27;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:62:"WPTavern: WordPress 3.7 Released: WordPress Now Updates Itself";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10414";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:113:"http://feedproxy.google.com/~r/WordpressTavern/~3/l-3I_2jNRJ4/wordpress-3-7-released-wordpress-now-updates-itself";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4510:"
WordPress 3.7 has been released and the big news is that WordPress now has the ability to update itself. This begins a new era of automatic background updates for security and minor releases. Web hosts around the world have been eagerly awaiting this release and are cheering its arrival. The upgrade process has been greatly improved and boy is it ever solid:
\n
We ended the WordPress 3.7 beta cycle with 112,434 automatic background updates attempted and not a single critical failure.
Not a single critical failure. Try blaming Nacin for that, folks.
\n
WordPress 3.7 is dubbed Basie, after Count Basie, an American jazz pianist with an unparalleled talent for improvisation. He learned to improvise while playing along to silent films for a local movie theater. Before he was famous, Basie sharpened his improv skills by playing jazz piano at parties and resorts. He went on to create his own jazz orchestra and mentor many other musicians along the way.
\n
Count Basie
It seems fitting that this release honors Basie. The web is full of hackers who seek to exploit any vulnerability they can find in WordPress. Users have to be quick to improvise and secure our sites as soon as minor releases are shipped out. Automatic background updates give millions of users the ability to stay current with each security update. The beautiful thing is that it’s totally effortless on the part of the user.\n
On the surface you won’t see too many flashy UI improvements, but under the hood you’ll find a better engine. When you search WordPress you’ll see better and more relevant results. Developers will be happy to find improved support for multisite, advanced date queries and a ton of new functions to play with. You can review every last detail on the dedicated 3.7 release page.
\n
wp-admin/about.php
WordPress 3.7 has a beautiful about.php page that you can only see if you upgrade. Hint, hint. It includes a live demo of the new password strength meter that will help you to create stronger passwords.\n
This release also includes better global support for translations, meaning that it will automatically install language files and silently keep them up to date. There’s a trend here: WordPress is doing a lot more for you in the background so that you can focus on creating content. This sets the bar pretty high for what users can expect from their publishing software in the future.
\n
Now that WordPress can update itself, I am once again reminded that this software is a living, breathing thing. Andrew Nacin, Dion Hulse and Jon Cave had the help of 211 contributors in shipping 3.7. Hats off to these folks – they’ve worked hard and done well.
\n
Time to celebrate with a few tunes from Count Basie and his jazz orchestra to kick off your upgrades. By the way, if you’re configuring automatic updates for everything, this is the last time you’ll ever have to update WordPress manually.
Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates we’ve made to date. Here are the big ones:
\n
\n
Updates while you sleep: With WordPress 3.7, you don’t have to lift a finger to apply maintenance and security updates. Most sites are now able to automatically apply these updates in the background. The update process also has been made even more reliable and secure, with dozens of new checks and safeguards.
\n
Stronger password recommendations: Your password is your site’s first line of defense. It’s best to create passwords that are complex, long, and unique. To that end, our password meter has been updated in WordPress 3.7 to recognize common mistakes that can weaken your password: dates, names, keyboard patterns (123456789), and even pop culture references.
\n
Better global support: Localized versions of WordPress will receive faster and more complete translations. WordPress 3.7 adds support for automatically installing the right language files and keeping them up to date, a boon for the many millions who use WordPress in a language other than English.
\n
\n
For developers there are lots of options around how to control the new updates feature, including allowing it to handle major upgrades as well as minor ones, more sophisticated date query support, and multisite improvements. As always, if you’re hungry for more dive into the Codex or browse the over 400 closed tickets on Trac.
\n
A New Wave
\n
This release was led by Andrew Nacin, backed up by Dion Hulse and Jon Cave. This is our first release using the new plugin-first development process, with a much shorter timeframe than in the past. (3.6 was released in August.) The 3.8 release, due in December, will continue this plugin-led development cycle that gives much more autonomy to plugin leads and allows us to decouple feature development from a release. You can follow this grand experiment, and what we’re learning from it, on the make/core blog. There are 211 contributors with props in this release:
Enjoy what may be one of your last few manual updates. See you soon for version 3.8!
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 22:35:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Matt Mullenweg";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:29;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:83:"WPTavern: Disrupting The WordPress Commercial Theme Market – A 3themes Experiment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10398";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://feedproxy.google.com/~r/WordpressTavern/~3/w5xTWijIX1o/disrupting-the-commercial-theme-market-a-3themes-experiment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3501:"
The questions are simple but the answers are not. Can a theme that is built for developers using best practices be successful in the commercial space? Can a commercial theme add value without adding functionality and bloat? Those are the questions that a trio of WordPress developers are going to try to answer with their 3them.es experiment.
\n
Michelle Schulp of Marktimemedia has published her experience at Pressnomics 2013 and the reasoning behind the new experiment. While at the event, she attended the Commercialization in the WordPress ecosystem panel session featuring business owners Pippin Williamson, Carl Hancock, Cory Miller, and Helen Souness. In that discussion, the following question was asked. How do you build a commercial digital product, especially one built using the GPL, that adds value in a way that is distinguishable from its competitors? According to Michelle, the panel was quick to dismiss commercial themes as being easily commoditized.
\n
After talking with a number of people at the conference, Michelle decided to partner with Kiko Doran, and Josh Broton to start the 3themes experiment.
\n
3themes is a unique collaboration because we will also be documenting it every step of the way: recording our weekly meetings on Google Hangout in the form of a podcast, blogging about our process on the website, hosting code on GitHub, voicing our thoughts on Twitter, etc. We want this not only to be a case study in the commercial theme marketplace, but in working as a small distributed team and problem solving just as we would for a client. The hope is to create some dialogue in the WordPress community, as well as just have some fun and see what great things we can build together.
\n
If you’re interested to see where this goes, check out the live Google hangout at 8:30 PM CST on Tuesday nights as they begin the process of experimentation by first building their website and brand.
\n
This is going to be an excellent experiment and I bet many are curious as to what the end result will be. If you remember, Justin Tadlock performed a similar experiment via ThemeForest with mildly successful results.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 21:21:11 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:30;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:105:"WordPress.tv: Brian Krogsgard and Pippin Williamson: WordPress Plugins, Code And The Ecosystem In General";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24111";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:121:"http://wordpress.tv/2013/10/24/brian-krogsgard-and-pippin-williamson-wordpress-plugins-code-and-the-ecosystem-in-general/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:759:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 20:37:15 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:31;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:78:"WPTavern: Add Your Meetup Group to the Central WordPress Account on Meetup.com";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10313";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:130:"http://feedproxy.google.com/~r/WordpressTavern/~3/o_k5yMGxjF4/add-your-meetup-group-to-the-central-wordpress-account-on-meetup-com";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2127:"
If you run a local WordPress meetup, you’re invited to move it under the central WordPress account on meetup.com. Jen Mylo created a form where meetup coordinators can submit their meetup to be included. The awesome benefit is that WordPress will cover the meetup.com dues for your listing.
\n
Jen posted a number of simple guidelines that were created by active meetup group volunteers. Your group will have to fulfill these before submitting to the central account. I won’t list them all here, but this is a summary: Essentially, you can’t use your local meetup to pimp out your business or yourself. Leave Mr. Salesman at home and join a meetup to connect with other WordPress fans. Meetups are for the benefit of the community and polite and respectful behavior is expected. If you organize a meetup that qualifies, use the form to get in touch with Jen Mylo.
\n
A some point in the future, meetup group listings will most likely switch over to using SupportPress, as they do for WordCamps. For now, they’ll be consolidating all the meetups on meetup.com. Please note that the meetup interest form is not just for new meetup groups but is also available for existing WordPress meetups that want to transfer the group over to the central account.
\n
It’s very cool that WordPress is supporting local meetups by covering their meetup.com dues. Help spread the word to get this information out there to local meetup organizers that you know.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 19:33:57 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:32;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:69:"WPTavern: Jarvis: A Free Quicksearch Tool for the WordPress Dashboard";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10359";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:120:"http://feedproxy.google.com/~r/WordpressTavern/~3/ntFV7bakzqY/jarvis-a-free-quicksearch-tool-for-the-wordpress-dashboard";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3233:"
If you’ve ever used a WordPress site with thousands of posts and/or hundreds of pages, you might have found it a challenge to quickly navigate to the content you’re looking for. Jarvis is a new dashboard quicksearch plugin that addresses this very problem.
\n
\n
Created by the folks at The Web Development Group, the Jarvis plugin lets you easily search anything that you’re looking for inside the WordPress admin area, including plugins, themes, content, settings pages and everything else.
\n
Jarvis is available on WordPress.org but it also has its own homepage where you can find a demo that shows how it works:
\n
\n
While different areas of the WordPress dashboard do include a search option, i.e. installed plugins or post content, there is no centralized search form to search everything. Ever install a plugin and then can’t, for the life of you, find its settings page? The Jarvis search helps you to instantly locate it. I can see how this could be very useful for a new user. For example, one might not know that the import feature is located under Tools. Using Jarvis he can quickly search and navigate to the import screen.
\n
There’s another similar tool out there called WP Butler, which also launches from the admin bar. I don’t know if Jarvis grabbed some inspiration from its code or not but the tools seem somewhat similar in that they both make it easier to get to pages in the WordPress admin.
\n
Beyond just helping you find things, the Jarvis plugin allows you to quickly zoom through the WordPress dashboard. For many, typing in a search box is second nature and much quicker than mousing around to the correct menu. Jarvis search appears to be lightning fast. This is one plugin that seems to be universally beneficial to both new and experienced WordPress users.
\n
The folks at The Web Development Group created Jarvis to fill a need they saw in the WordPress admin area. This tool is the first of many that they plan to release. You can download it for free at the WP Jarvis homepage or via the Add New plugins page within the WordPress admin.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 17:35:19 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:33;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:77:"WordPress.tv: Daniel Espinoza: Creating and Selling Premium WordPress Plugins";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23010";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:94:"http://wordpress.tv/2013/10/24/daniel-espinoza-creating-and-selling-premium-wordpress-plugins/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:710:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 24 Oct 2013 14:33:43 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:34;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:68:"WPTavern: Pulse: An Example WordPress Plugin Using the Heartbeat API";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10304";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:119:"http://feedproxy.google.com/~r/WordpressTavern/~3/HuYeePJabQ4/pulse-an-example-wordpress-plugin-using-the-heartbeat-api";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3401:"
I’ve long been a fan of WordPress developer Jeffrey Pearce, better known online as Jeffikus. He’s created several educational resources for WordPress over the past few years. Today he released Pulse on github. Pulse is an open source plugin that will help developers get started with Heartbeat API development.
The Heartbeat API was a new feature as of WordPress 3.6. It currently powers the autosave, post locking and log-in expiration warning that users receive while writing posts. This API works in the background to manage communication between a user’s browser and the server, enabling the creation of WordPress-powered asynchronous apps.
\n
Jeffikus’ Pulse plugin example demonstrates how to do two simple things:
\n
\n
Outputs console data for a logged in user – the object will state that the user is logged in: \n
\n
Outputs console data for a non logged in user – the object will state that the user is not logged in: \n\n
\n
\n
This plugin doesn’t actually perform any specific function, except to show you how you can interact with the WordPress Heartbeat API. It’s a learning tool to help developers get started building their own plugins.
\n
At the bottom of the Pulse plugin readme file on github Jeffikus includes a list of all the tutorials on the Heartbeat API that helped him to learn about it in the first place. If it wasn’t for other developers writing about what they are learning, he probably wouldn’t have had the inspiration to create this handy starter plugin. Hopefully, developers can use it to build something cool and help contribute back to the Heartbeat API documentation.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 22:04:46 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:35;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:73:"WPTavern: Your Members Plugin Closes Its Doors, Releases Assets Under GPL";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10307";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:124:"http://feedproxy.google.com/~r/WordpressTavern/~3/YCmv-tDNTiU/your-members-plugin-closes-its-doors-releases-assets-under-gpl";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3069:"
The membership plugin Your Members has announced that they are ceasing operations. Your Members, which has been around since 2008, was one of the early successful commercial plugins in the membership space. The tale of the plugin’s demise is an interesting one because it has more to do with development than anything else.
\n
We started work on YM13 early this year and it became clear the new version wasn’t going to work with our current codebase. Indeed it reached the stage where even little changes are causing massive issues. So in August it was decided that we needed to make YM13 the last release on the current codebase and start on YMv2. I was rereading the blog posts that are sitting in drafts explaining where we were going and why, we never published them.
\n
It became clear it was just not financially feasible to build YMv2 we estimated it was 6 to 9 months work to do what we wanted to do properly and to do it we need to do it properly. We also believe we can’t continue to support and update the existing codebase.
\n
While the developers of Your Members received offers to be purchased, they declined them as they didn’t feel the buyer would provide the community with genuine support and were after their email list instead. Thus, it was decided that Your Members be withdrawn from the market and would no longer be for sale.
\n
One of the unique aspects of Your Members is that it contained a sunset clause. Now that the plugin has been withdrawn from the market, that clause has been invoked meaning everything in the Your Members download, including assets are available under the GPL license. Prior to closing, Your Members operated under a split license with the PHP licensed under the GPL and all other files under a different license. The plugin as well as the documentation will now live on Github.
\n
Is This The Way To Close a Business?
\n
It’s disappointing to see any business fold but I have to hand it to the folks behind Your Members. They are making everything open source and laying the ground work for anyone else who wants to try to pick up where they left off. How do you feel about the way they closed up shop?
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 21:00:22 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:36;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:80:"WPTavern: WordPress Host WP Engine Will Not Support Automatic Background Updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10293";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:132:"http://feedproxy.google.com/~r/WordpressTavern/~3/1vIBBXFTK7M/wordpress-host-wp-engine-will-not-support-automatic-background-updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:5152:"
Managed updates have always been one of the main selling points for WP Engine’s WordPress hosting packages. Customers have the luxury of never having to update their own sites because WP Engine keeps them on the cutting edge:
\n
We keep your site secure without you having to think about it. Whenever WordPress issues a security update, we test it, and then proactively apply it to your site.
\n
However, the company announced today that it will not be offering support for WordPress’ new ability to update itself.
\n
WP Engine will not be supporting the background updates for WordPress. We will continue managing the updates for your installs, testing each release on our infrastructure, and fully managing the releases of the minor updates. For example, when there is a security update to WordPress, as soon as the patch is released, we’ll update all customer sites to ensure we continue to keep your sites safe and sound.
\n
\n
I asked WP Engine to clarify this statement. Does this mean that customers cannot enable automatic updates via the WP_AUTO_UPDATE_CORE define in wp-config.php? It seems that is the case. Their official policy is that automatic background updates will be disabled and customers will not be able to turn them on:
\n
The function will be disabled because when we update we also automatically create site backups for you.
\n
WP Engine will still continue to update customer sites as they always have. There’s no change here, but it is always interesting to note when a company restricts access to something that will soon be native to WordPress.
\n
Playing it Safe
\n
One huge advantage of enabling automatic background updates for WordPress is that a site can get those security improvements the very same day they are released with no waiting time. The same applies with major releases, plugins and themes, if one wants to live adventurously. However, if you host with WP Engine, you’ll have to settle with living on the safe side.
\n
WP Engine customers will either need to manually update their sites through the dashboard or wait for WP Engine to initiate those updates. The company tries to ship security updates out as soon as possible and these updates are usually applied within the same day. The reason for this is to keep customers from accidentally breaking their own sites without backing them up. WP Engine customers will be upgraded within a week or two of the 3.7 release, as per their announcement today. For many customers, this is exactly why they have chosen WP Engine. Not having to worry about testing major updates is a huge relief for WordPress site admins.
\n
The Future of Managed WordPress Hosting: A Growing List of Restrictions
\n
I am surprised that this popular WordPress hosting company is preventing its customers from taking advantage of one of the most exciting new features of WordPress 3.7. Although customers always have the freedom to manually update their sites early, they will not be permitted to allow WordPress to update itself. This makes sense as a company policy, but as a developer I can’t help but see it as a limitation.
\n
Why not allow developers to override the WP Engine restrictions via WP_AUTO_UPDATE_CORE in wp-config.php? Your average user isn’t likely to venture into this file to make any modifications, so it would be safe to assume that anyone who applied those settings knew what they were doing. The WP Engine infrastructure, however, does not allow for this.
\n
WP Engine does a lot of things right when it comes to speed and prioritizing the customer’s ability to have a development environment. The company is a proven and reliable WordPress host that I would recommend to anyone. For many customers, trading freedom for security is well worth it in order to have their sites fully “managed.”
\n
But what about the others who may want the freedom to let WordPress update itself? The company has very good reasons for limiting developers from doing this. But will the number of restrictions continue to grow? Managed WordPress hosts are a relatively new development in the marketplace of WordPress services. It will be interesting to see how their policies develop in relationship to WordPress core enhancements, which more often than not err on the side of giving more freedom to the user.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 19:13:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:37;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:63:"WPTavern: How To Navigate The WordPress Ecosystem As a New User";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10237";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:115:"http://feedproxy.google.com/~r/WordpressTavern/~3/gJiQc_Kl5ZA/how-to-navigate-the-wordpress-ecosystem-as-a-new-user";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6305:"
The WordPress ecosystem is made up of thousands of websites, code repositories, blogs, forums, etc. To a new WordPress user, it can be intimidating or downright frustrating figuring out where to go. My goal with this post is to provide a map for those who are brand new to the world of WordPress to be able to navigate with confidence. I’ve personally experienced being in a city I’ve never been to before and not knowing which direction to travel to reach my destination. It’s a frustrating experience. This guide ought to alleviate those frustrations for WordPress first timers.
\n
Themes
\n
So the default theme isn’t your cup of tea. Before going to Google and searching for “free WordPress themes” head over to the WordPress Theme Repository. It’s the safest place to obtain a new design for your site. Themes that are added to the repository are scanned and go through a thorough checklist before they are accepted. All of the themes hosted on the repository are free of charge. If you want to know the reasons why using Google to find free WordPress themes is bad, watch this video by Leland of Themelab.com.
\n\n
Plugins
\n
Much like the theme repository, WordPress has its own plugin repository filled to the brim with plugins to add functionality to your WordPress powered website. The WordPress plugin repository is the safest place to get code to add features to your website. Plugins are scanned and reviewed by volunteers before they are accepted into the repository. However, this does not guarantee that the code will function properly or is 100% secure for your website.
\n
Support
\n
The WordPress.org support forums enable the community to help each other. Creating an account is free of charge as is the support. The forums are staffed by volunteer moderators that do their best to help as many people as possibly every day. With so many people seeking help, you should exercise patience when using the forums.
\n
Documentation
\n
If you feel a little adventurous and want to try helping yourself first, you can visit the Codex. This Codex is like a repository for all of the detailed information for how WordPress works, inside and out. The main page of the Codex provides a number of great links to those starting out with WordPress.
\n
Learning WordPress Through Video
\n
While there is no official classroom to learn WordPress material, WordPress.org has the next best thing in WordPress.tv. WordPress.tv is the official website dedicated to WordPress that contains recorded sessions from WordCamps held all over the world. In fact, there is an entire how to section on the website dedicated to tutorial type videos.
\n\n
Creative Inspiration
\n
If you’re not sure what WordPress is capable of or have run into a creative block, you should browse through the WordPress showcase. The showcase is a collection of websites that have taken WordPress to the next level. There are a lot of great looking designs as well to help provide inspiration.
\n
\n
WordPress Face to Face
\n
While not officially a part of the WordPress.org project, Meetup.com is used by WordPress users all across the world to put together local meetups that bring like-minded people together. I’ve attended multiple WordPress meetups in my area and I’ve helped a lot of new WordPress users find their way. It’s one of the best forms of learning and getting WordPress help that I can imagine.
\n
Keeping Tabs On WordPress Development
\n
While there are not many posts on the official WordPress blog, it is where official news of releases are published.
\n
Installing WordPress On Your Phone
\n
There is an official WordPress app for most of the smart phone devices currently out on the market such as iOS devices, BlackBerry, and Android. If you’d like to install WordPress on your phone, be sure to check out the mobile section of the WordPress.org website to see if there is one available for your device.
\n
Wrap Up
\n
Now you might be wondering, why didn’t I include this site or that site when putting this guide together. The purpose of the guide is to provide a map that contains the essential information new users need to know. Using this knowledge as your foundation, you should find yourself more comfortable in the WordPress ecosystem. After getting to grips with WordPress, new users will expand beyond these pillars and discover the other resources that are on the web dedicated to WordPress. It doesn’t make sense to point new users into different directions when the above information is all they really need to get started.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 16:59:54 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:6:"Jeffro";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:38;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:100:"WordPress.tv: Greg Douglas: Designing Awesome WordPress Websites For Small To Medium Size Businesses";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23212";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:117:"http://wordpress.tv/2013/10/23/greg-douglas-designing-awesome-wordpress-websites-for-small-to-medium-size-businesses/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:750:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:37:54 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:39;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:65:"WordPress.tv: Ben Lobaugh: Taking Flight With JetPack Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=24051";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:82:"http://wordpress.tv/2013/10/23/ben-lobaugh-taking-flight-with-jetpack-development/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:686:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:24:07 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:40;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:51:"WPTavern: Monitor WordCamps Online with WP Armchair";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10260";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:103:"http://feedproxy.google.com/~r/WordpressTavern/~3/fDHtRUBVmHs/monitor-wordcamps-online-with-wp-armchair";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:7386:"
David Bisset may have been the first person to coin the term “Armchair WordCampersâ€, referring to those who live vicariously through WordCamp attendees via Twitter. The concept sparked an idea for him and he decided to create WP Armchair for this very audience.
\n
His first version was actually created for the WordPress 10th Anniversary, a site he collaborated on with the WordPress Foundation.
\n
Bisset is a WordPress and BuddyPress developer. He also helps to organize WordCamp Miami. The inspiration for creating WP Armchair came from his experiences as an organizer and an attendee at WordCamps.
\n
I monitor WordCamps and conferences via Twitter hashtags and simply thought there was a better way. I notice that a lot of people are interested in monitoring conference activity as well. Even those that attend conferences – I see many of them with their laptops open to Tweetdeck or some Twitter client. I figured there should be a better way, especially since social networks like Instagram are becoming more popular.
\n
On top of that, as a WordPress developer, I wanted the solution running on WordPress. And instead of passively showing pictures and tweets, the site would naturally store these as custom post types. So it serves as an archive of the conference.
\n
In a way, the WP Armchair websites are chronicling the history of these WordPress events as seen through their respective hashtags on Twitter, Instagram, Vine and Flickr. Right now, each event is a separate site but Bisset said that he’s likely to combine them all into a multisite installation somewhere in the near future.
\n
WP Armchair Monitoring WordCamp Europe
When WP Armchair monitored WordCamp San Francisco the site was able to aggregate 1,600 tweets and 1,020 photos. For WordCamp Europe, the site captured even more – in the end it was 4,223 tweets and 1,500 photos. WordPress fans monitoring from afar were able to get a taste of how awesome these events were and perhaps even resolve to attend next year.\n
What Plugins Make WP Armchair Work?
\n
If you visit any of the WP Armchair sites you’ll see support for videos, pictures, embedded tweets, post favoriting and more. There’s a lot going on behind the scenes to bring all of this event information into the site.
\n
I asked Bisset to tell me about some of the important plugins he uses to make WP Armchair work and he gave us a look behind the scenes.
\n
I wrote three plugins that scanned Twitter, Instagram, and Flickr for tweets, photos, and videos based on a hashtag and saved them as custom post types. These make up the bulk of the site, but I also used the following plugins:
\n
Bulk Delete – comes in handy when you want to get rid of alot of tweets or instragram posts that aren’t related to the conference (maybe you used a bad keyword or hashtag). Since tweets can come in 30 or 40 at a time, this plugin does save a little bit of time.
\n
Love It Pro – was great to drop in and give site visitors the ability to mark posts as favorites. It was a fun experiment during WordCamp San Francisco.
\n
Gravity Forms – on some installs, it allows us to quickly get forms (surprise!) in place for user registration, so some people could upload their own photos to the site via the WordPress Mobile app or a custom form.
\n
Search Everything – allowed the cool ability to search for tweets, instagram photos, etc that were created by a specific user or via keyword. As an example, you could search for your own name and see if anyone mentioned you on whatever social networks the WPArmchair site was scanning. Unfortunately, it looks like Search Everything isn’t being supported as of now, so I recommend switching over to SearchWP.com.
\n
WP Armchair Theme and Plugins are GPL and Available on github
\n
Bisset has made both the WP Armchair Theme and plugins available on his github account. He invites contribution to the project. “There are no doubt better and different ways to do what the site does, and I welcome anyone who wants to improve it,” he said.
\n
The WordPress Foundation has also made some of the WP Armchair functionality available to its officially hosted WordCamp site using a new plugin called Tagregator, which is also open to contribution.
\n
Bisset believes that WP Armchair is a valuable resource for both those at home and those who are attending WordCamp events. It has even been used by The Front-End Design Conference, a non-WordPress event, to aggregate the references to the event on social media. Ultimately, WP Armchair is about bringing people and ideas together.
\n
Even if you did go to the conference, you would be able to see everyone’s photos there instead of a gallery of a smaller group of photos the site admin posted a few days later. You also get to see who authored interesting tweets and potentially find new people to follow this way… people that are in theory just as motivated by WordPress as you are.
\n
Monitoring posts from WordCamps online is by no means a replacement for actually attending the event. Realistically, you won’t be able to attend every WordCamp in the world, but WP Armchair gives you a better way to monitor online from wherever you may be. Many thanks to David Bisset for taking us behind the scenes and for creating a way for WordPress fans around the world to join in on events together.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 13:01:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:41;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:27:"Donncha: WP Super Cache 1.4";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:29:"http://ocaoimh.ie/?p=89498597";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:48:"http://ocaoimh.ie/2013/10/23/wp-super-cache-1-4/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1932:"
WP Super Cache version 1.4 is out now. This release finally removes the mfunc, mclude and dynamic-cached-content tags as I warned about three months ago.
\n
If your site uses that dynamic cached content functionality do not upgrade yet. There is a replacement dynamic cached content system but it’s not compatible so you’ll need to update your themes and helper plugins. It’s not difficult but there’s a lot to take in. I hope the example plugin and explanation in that post gets you most of the way there.
\n
If you don’t use mfunc and it’s friends then you should upgrade immediately and it should be painless.
\n
This release also has a few bug fixes and other features. It will now try to repair broken installs after a site migrates. It will update the wp-config.php and rebuild wp-content/advanced-cache.php. It will also delete tags and category cache files when a post publish status changes.
The second release candidate of WordPress 3.7 is now available for testing!
\n
Those of you already testing WordPress 3.7 will be updated automatically to RC2. (Nice.) If you’d like to start testing, there’s no time like the present! Try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightliesâ€) or download the release candidate here (zip). Please post to the Alpha/Beta area in the support forums if you think you’ve found a bug, and if any known issues are raised, you’ll be able to find them here.
\n
Developers, please test your plugins and themes against WordPress 3.7. If there is a compatibility issue, let us know as soon as possible so we can deal with it before the final release.
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 23 Oct 2013 00:05:30 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Andrew Nacin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:43;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:56:"WPTavern: WordPress 3.7 Introduces Advanced Date Queries";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10239";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:108:"http://feedproxy.google.com/~r/WordpressTavern/~3/SBf0LiyU_A4/wordpress-3-7-introduces-advanced-date-queries";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3933:"
WordPress 3.7 should be arriving any day now. Everyone is excited about WordPress’ new ability to update itself for security and minor releases (and even themes and plugins, if you’re adventurous). The new password strength meter is highlighted on the About page for the release with a live demo that users can play with after they upgrade. But there’s one cool new feature that hasn’t received as much fanfare: advanced date queries.
You might be wondering what’s so exciting about advanced date queries. Alex Mills, better known online as “Viper007Bond” was the originator of the patch to improve date arguments for WP_Query, a class for querying the database for specific content. Up until now, WordPress had no easy way to get a set of posts that fall within a specific date range.
\n
A few months ago, Alex introduced a patch that adds the ability to get complex date-based queries when fetching both posts and comments from the WordPress database. Code examples can be found on his post where he roughly outlines a few ways one might implement date-based queries.
\n
There are virtually unlimited combinations. Here are a few examples of what is possible with the new advanced date queries:
\n
\n
Query all posts written on a specific day over the years, ie. the author’s birhtday
\n
Query all the posts written before or after a certain date
\n
Query all posts written on Monday mornings
\n
Query 5 most recent posts made after midnight but before 5am
\n
\n
You can check out all the date parameters in the codex and browse a few of the examples. Imagine all the fun that could be had here! The advanced date queries should enable developers to do some interesting things with displaying timelines, custom archives, selectively random post widgets and anything else imaginable with date ranges.
\n
Advanced date queries replaces bulkier methods used in the past, such as adding a filter to posts_where. How did we ever live without it? Check out the canonical discussion on Trac to explore the evolution of this feature and put it to good use in WordPress 3.7.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 23:28:08 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:44;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:57:"WordPress.tv: Topher DeRosia: Intro To Plugin Development";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23066";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:74:"http://wordpress.tv/2013/10/22/topher-derosia-intro-to-plugin-development/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:670:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 21:43:20 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:45;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:58:"WordPress.tv: Tharon Rodriguez: Getting Familiar With PODS";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:28:"http://wordpress.tv/?p=23060";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:75:"http://wordpress.tv/2013/10/22/tharon-rodriguez-getting-familiar-with-pods/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:666:"
\n
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 21:20:42 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"WordPress.tv";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:46;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:72:"WPTavern: ForumEngine Turns WordPress Into a Forum Via Custom Post Types";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10158";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:124:"http://feedproxy.google.com/~r/WordpressTavern/~3/5-EF68Mw45g/forumengine-turns-wordpress-into-a-forum-via-custom-post-types";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4745:"
EngineThemes.com recently released version 1.0 of their latest project, ForumEngine. ForumEngine is a theme that uses Custom Post Types to turn WordPress into a forum. I caught wind of this new theme via a review published on WPLift by Joe Fylan. It’s nice to finally see theme companies thinking outside the box for once instead of whipping up the next boring portfolio theme. I have not had the opportunity to try out the theme but based on Joe’s review, there is one thing in particular that may be a showstopper for a lot of people.
\n
\n
Unfortunately, in order to use this theme, you’ll either need a brand new WordPress install, separate WordPress install, or be willing to see your existing content disappear.
\n
With ForumEngine installed on your site, the site now functions as a forum, which the threads accessed directly from the homepage. Any existing posts that might’ve been on the site or those you create afterward activating the theme will now no longer be accessible, essentially removing the main functionality of WordPress: creating posts so bare that in mind if you wish to use this alongside a regular blog – you would need a separate installation. – Joe Fylan
\n
I remember when the discussion around bbPress 2.0 was taking place. It was suggested that using a plugin that utilizes custom post types be used. At the time, bbPress was transitioning from being stand alone software into a WordPress plugin. Now we have a theme that is using custom post types and if I remember correctly, community members like Justin Tadlock frown on this practice. I reached out to John James Jacoby to get his thoughts on this theme as well as how its implementation compares with bbPress.
\n
bbPress 2.x does use custom post types, and actually uses three of them. Forums is only a post type because of a lack of taxonomy term meta, otherwise it would be a custom taxonomy. CPT’s are fine, though it’s too bad it completely overrides the blog. Seems pretty pointless to make users decide to have either a blog or a forum, and not both.
\n
bbPress takes other things into consideration, like forum profiles VS blog author archives, separate roles for the forums VS the blog, and goes the extra mile so forums only intersect with the blog when you want it to. If a theme was really going to do this “correctly†it should probably use a CPT for topics, and comments (with a custom comment form template) for replies; that way the behavior is familiar.
\n
Forums are such an integral part of online communities, if I were looking for forums inside of WordPress, baking it into a commercial theme that won’t work with my existing blog doesn’t sound very appealing.
\n
While I like the design and the thinking out of the box idea in this theme, not being able to use it with an existing blog is a huge blow towards it ever becoming a popular alternative to bbPress or other forum solutions. However, thanks to the advice provided by John James Jacoby above, there are ways of going about it that make sense. I hope to see other theme providers give it a shot. At the very least, it would be good to see theme providers list native bbPress support as one of their selling points.
WordCamps are casual, locally-organized conferences that celebrate everything related to WordPress, and are a great opportunity to meet other WordPress users and professionals in your community. This has been a great year for WordCamps — there have been 56 so far in more than 20 countries, and there another 15 on the calendar before the year’s over. If there’s one near you, check it out! In addition to getting to know your local WordPress community, most WordCamps attract some traveling visitors a well, giving you the chance to meet contributors to the WordPress open source project and get involved yourself.
\n
Here are the WordCamps on the schedule for the rest of this year.
No WordCamps on this list in your area? Not to worry! There are thriving WordPress meetups all over the world where you can meet like-minded people, and we maintain a library of WordCamp videos at WordPress.tv.
\n
Get Involved
\n
\n
If you’re interested in organizing a WordCamp in your area, check out our WordCamp planning site.
\n
If you’re interested in starting a WordPress meetup in your area, let us know and we can set up a group on meetup.com for you.
\n
And speaking of WordCamp videos, we’ve recently enabled volunteer-generated subtitles/closed captioning of the videos on WordPress.tv to make them more accessible. Interested in helping? Check out the WordPress.tv subtitling instructions.
\n
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 19:25:26 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Jen Mylo";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:48;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:67:"WPTavern: BuddyPress Theme Development Book Now Available on Amazon";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10213";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:109:"http://feedproxy.google.com/~r/WordpressTavern/~3/I9fzJHc5q1c/buddypress-theming-book-now-available-on-amazon";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3233:"
If you want to grow in your BuddyPress skills, there’s a new book on the market that you’ll want to get your hands on. BuddyPress Theme Development has just hit Amazon. The digital version is out now and you’ll be able to get a printed copy on October 24th, 2013. Packt will also have a version of the book that includes access to code for those who want to “follow along at home” with the code examples.
\n
Written by expert BuddyPress theme developer and contributor, Tammie Lister, this book will help you learn how to create BuddyPress themes from start to finish. BuddyPress Theme Development provides a comprehensive guide to BuddyPress theming with practical, hands-on tutorials that will put you on the path to building your own themes.
\n
Tammie walks you through the basics, such as how to use CSS to make changes to themes. She also includes more advanced topics like creating custom templates for BuddyPress components. You’ll learn how to add functionality to enhance your community, including how to build your own widgets into your theme. Once your theme is finished, Tammie shows you how to run theme-checks to ensure that it’s ready for launch.
\n
I checked in with Tammie for a mini Twitter interview on the details of the book. She has been working on it since just after BuddyCamp Miami, which took place in early April of this year. Many theming books are outdated even before they hit the shelves, but Tammie has made sure that everything in her book is up to date with the upcoming BuddyPress 1.9 release. She is the developer heading up the work on the new template pack that will ship with BuddyPress 1.9.
\n
If you’re a BuddyPress developer looking for resources to keep your skills sharp, BuddyPress Theme Development is a good one to add to your collection. Packt Publishing couldn’t have found a better person to write this book. Get your copy today on Amazon or pre-order the printed edition from Packt Publishing to get the eBook and PacktLib access thrown in for free.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 18:46:45 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:49;a:6:{s:4:"data";s:13:"\n \n \n \n \n \n \n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:56:"WPTavern: Seamless Integration for WordPress and Magento";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:32:"http://www.wptavern.com/?p=10189";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:108:"http://feedproxy.google.com/~r/WordpressTavern/~3/F6uyX3Wt0E8/seamless-integration-for-wordpress-and-magento";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6448:"
Believe it or not, there are a lot of WordPress fans in the Magento community. While Magento provides supremely robust e-commerce capabilities with support for complex product variations and multiple shipping options, it’s entirely lacking in CMS features. As a result, many sites merge WordPress and Magento in order to take advantage of each platform’s unique strengths.
\n
However, it is unbelievably difficult to make WordPress and Magento work together in a seamless fashion without some sort of bridge. That’s where James Kemp‘s Magento WordPress Integration plugin comes in. It does all the fancy footwork necessary to make your Magento store look like part of your WordPress site.
\n
\n
The Magento WordPress Integration plugin (MWI), is a solution that Kemp has been developing for several years. It provides the easiest way to get blocks, sessions and products from your Magento store and is capable of doing the following:
\n
\n
Bring out any of the default Magento Blocks in your WordPress theme
\n
Bring out any Magento blocks that you have created yourself
\n
Bring out any static blocks that you have made in your Magento admin area
\n
Show Magento products on a WordPress post or page by using the shortcode add-on
\n
Show products from any category using the widget add-on
\n
\n
Think there’s no demand for this? Think again. Kemp’s plugin has been downloaded more than 10,000 times. To celebrate, Kemp has made the code available on BitBucket. He’s hoping that having the code available to the public will help to spark more contribution.
\n
James Kemp, creator of the Magento WordPress Integration plugin
I’ve been following James Kemp’s work for several years and finally had the chance to chat with him about how the plugin is doing. \n
He continues to develop the plugin due to the demand, which comes from both “light” users and developers. “The demand for MWI is fairly consistent,” he said. “On a calm day the mwi-plugin site gets ~30 unique visits, and mid-week on a busier day it will get ~100. It’s a very niche plugin, so I don’t expect thousands! The core plugin is mainly useful for developers I’d say, but I also get “light” users who are interested in the add-ons, so they can display products within their blogs. The demand for it is fairly steady at the moment.”
\n
The Magento and WordPress communities are fairly disconnected, which is understandable. You don’t see too many developers wanting to specialize in both platforms. Yet many users want them to work together. When building sites with a bridge, Kemp relies on WordPress for the more content-heavy aspects of the site:
\n
Each system has solutions for the other, but none of them are quite as good as WordPress or Magento. I personally prefer to use WP for all aspects of content management; pages, news, callouts – using Magento for this is a bit of a nightmare. I use Magento for large stores, with complex product set-ups and discount systems, purely for the product catalogue and back-end ecommerce system.
\n
Although he is an expert Magento developer, he has also built many sites using WooCommerce and Jigoshop. I asked him when he might opt for Magento over a WordPress-based e-commerce solution and he replied:
\n
I tend to use Magento for larger sites, where there are thousands of products and likely to be a lot of activity. This is because of the back-end system of Magento; it offers so much more in terms of tax rules, discounts, product set-up, import/export, order history, invoicing, etc. it’s just a full, heavy-duty, ecommerce system. The WordPress solutions are great, but not for bigger ecommerce store owners who need more control.
\n
The Magento WordPress Integration plugin provides a much needed bridge between the two open source projects and enables them to work together seamlessly. It can also save you from having to do too much theming to Magento, which is quite a pain because all the files are located about 10 directories deep. MWI allows you to feature your categories and products on your WordPress pages, as well as any blocks created within Magento. If you want to synchronize your sites even further, Kemp has also developed a plugin providing Single Sign-On For Magento And WordPress.
\n
Kemp and his colleague Jay Pick have formed a new WordPress development company called Platførm, based out of their rural office in Lutterworth, England. He plans to continue supporting the MWI plugin for as long as it’s needed. You can find documentation at the Magento WordPress Integration homepage and can download the plugin from the WordPress repository. If you want to get involved contributing, check out MWI on BitBucket.
\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 22 Oct 2013 14:00:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:13:"Sarah Gooding";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:9:{s:6:"server";s:5:"nginx";s:4:"date";s:29:"Tue, 29 Oct 2013 23:45:04 GMT";s:12:"content-type";s:8:"text/xml";s:14:"content-length";s:6:"200446";s:10:"connection";s:5:"close";s:4:"vary";s:15:"Accept-Encoding";s:13:"last-modified";s:29:"Tue, 29 Oct 2013 23:30:16 GMT";s:4:"x-nc";s:11:"HIT lax 249";s:13:"accept-ranges";s:5:"bytes";}s:5:"build";s:14:"20131026075432";}', 'no');
+INSERT INTO `wp_2_options` VALUES (3305, '_transient_timeout_feed_mod_867bd5c64f85878d03a060509cd2f92c', '1383133465', 'no');
+INSERT INTO `wp_2_options` VALUES (3306, '_transient_feed_mod_867bd5c64f85878d03a060509cd2f92c', '1383090265', 'no');
+INSERT INTO `wp_2_options` VALUES (3307, '_transient_timeout_dash_aa95765b5cc111c56d5993d476b1c2f0', '1383133465', 'no');
+INSERT INTO `wp_2_options` VALUES (3308, '_transient_dash_aa95765b5cc111c56d5993d476b1c2f0', '
micro-fund entirely new research agendas via crowd-funding.
\r\n\r\n ', 'Micropasts platform', '', 'trash', 'open', 'open', '', 'the-micropasts-platform', '', '', '2013-10-24 20:01:06', '2013-10-24 20:01:06', '', 0, 'http://research.micropasts.org/?page_id=75', 0, 'page', '', 0);
+INSERT INTO `wp_2_posts` VALUES (76, 2, '2013-10-18 17:11:08', '2013-10-18 17:11:08', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing platform; **co-design new research agendas using our community forum; ***micro-fund entirely new research agendas on our dedicated crowd-funding space.\r\n\r\n ', 'The Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:11:08', '2013-10-18 17:11:08', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (77, 2, '2013-10-18 17:11:46', '2013-10-18 17:11:46', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing platform; **co-design new research agendas using our community forum; ***micro-fund entirely new research agendas on our dedicated crowd-funding space.\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:11:46', '2013-10-18 17:11:46', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (78, 2, '2013-10-18 17:12:45', '2013-10-18 17:12:45', 'This project uses the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods.\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-18 17:12:45', '2013-10-18 17:12:45', '', 26, 'http://research.micropasts.org/2013/10/18/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (79, 2, '2013-10-18 17:13:24', '2013-10-18 17:13:24', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing platform; **co-design new research agendas using our community forum; ***micro-fund entirely new research agendas on our dedicated crowd-funding space.\r\n\r\n ', 'The Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:13:24', '2013-10-18 17:13:24', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (80, 2, '2013-10-18 17:14:42', '2013-10-18 17:14:42', ' ', '', '', 'publish', 'open', 'open', '', '80', '', '', '2013-10-23 11:20:32', '2013-10-23 11:20:32', '', 0, 'http://research.micropasts.org/?p=80', 4, 'nav_menu_item', '', 0);
+INSERT INTO `wp_2_posts` VALUES (86, 2, '2013-10-18 17:17:56', '2013-10-18 17:17:56', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing platform; **co-design new research agendas using our community forum; ***micro-fund entirely new research agendas on our dedicated crowd-funding space.\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:17:56', '2013-10-18 17:17:56', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (87, 2, '2013-10-18 17:21:22', '2013-10-18 17:21:22', 'This project uses the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods.\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-18 17:21:22', '2013-10-18 17:21:22', '', 26, 'http://research.micropasts.org/2013/10/18/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (88, 2, '2013-10-18 17:24:07', '2013-10-18 17:24:07', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through our crowd-sourcing space; **co-design new research agendas using the community forum; ***micro-fund entirely new research agendas on a dedicated crowd-funding space.\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:24:07', '2013-10-18 17:24:07', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (89, 2, '2013-10-18 17:25:48', '2013-10-18 17:25:48', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to: *help with the co-production of open archaeological data through crowd-sourcing; **co-design new research agendas using the community forum; ***micro-fund entirely new research agendas via crowd-funding.\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-18 17:25:48', '2013-10-18 17:25:48', '', 75, 'http://research.micropasts.org/2013/10/18/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (90, 2, '2013-10-18 17:27:11', '2013-10-18 17:27:11', 'The project Crowd and Community-fuelled Archaeological Research (2013-2015) is funded by the Arts and Humanities Research Council (AHRC), under the Capital Funding Call for Digital Transformations in Community Research Co-Production in the Arts and Humanities.\r\n\r\n"This call seeks to explore new research opportunities at the interface and intersections between the Connected Communities Programme, AHRC’s Digital Transformations in the Arts and Humanities Theme, the Cross-Council Digital Economy Programme and other AHRC activities relating to the Creative Economy. Building on the creative capacities of communities and their immense interest in exploring their cultures and heritage, the call aims to harness the transformative power of digital technologies to stimulate innovative engagements and research co-production between communities and researchers."\r\nArts and Humanities Research Council\r\n\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n ', 'Who is funding us?', '', 'inherit', 'open', 'open', '', '43-revision-v1', '', '', '2013-10-18 17:27:11', '2013-10-18 17:27:11', '', 43, 'http://research.micropasts.org/2013/10/18/43-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (91, 2, '2013-10-22 15:55:55', '2013-10-22 15:55:55', '
Hello!
\r\n
We are a team of researchers from University College London and the British Museum. In the past few years, we have been looking into the new opportunities provided by digital technologies for public engagement in archaeology, through several seminar series and a recent edited volume on the topic. We are now lucky enough to have funds from the AHRC to work on a project entitled Crowd and Community Fuelled Archaeological Research which has started this month.
\r\n
The core of our efforts day-to-day will go into enabling a more general online platform for crowd-sourcing and crowd-funding that we have called Micropasts. The platform’s goal is to bring archaeological enthusiasts of all kinds -- traditional academics, archaeological societies, interested individual members of the public -- together to create new, high quality archaeological and historical data about the human past.
\r\n
This research blog also allows some of us to indulge our more navel-gazing tendencies (!) and to post about themes ranging from public archaeology to research ethics to the technical aspects of crowd-sourcing and crowd-funding. We will be aiming to write for a wide audience including those working in public archaeology, cultural heritage, museum studies, computational archaeology and the digital humanities, as well as practitioners in the heritage and creative sectors.
\r\n
But in this first blog post, let’s start by setting out the context for our research. Recently, increasing attention has been dedicated to the potential of digital technologies for supporting more egalitarian and transparent practice, as well as wider participation.  One fairly well-known digital method to pursue these goals has been ‘crowd-sourcing’, the practice of seeking information, services or funds in small chunks from a ‘crowd’ of people including as yet wholly anonymous members of the public as well as those already belonging to relevant communities of interest. Archaeology and crowd-sourcing should make for a great fit, because, while archaeology enjoys widespread appeal, it tries to protect, document and understand a massive dwindling resource, traditionally supported by tiny pots of money.
\r\n
Early examples of crowd-sourcing in archaeology and related disciplines have focused on things like inspecting imagery to detect archaeological features, pooling wartime tangible heritage, transcribing papyri, interrogating built architecture and public recording of metal artefacts. In other cases, appeals to the ‘crowd’ have been made to micro-finance student dissertations, major excavations and long-term community projects all over the globe. What past crowd-sourcing and crowd-funding experiments have in common is that they mainly embraced ‘contributory’ models, where members of the public were asked to contribute their skills or their money in support of research agendas that were typically designed by academics.
\r\n
We too wish to create a community space where anyone with an interest in archaeology and history can help build archaeological knowledge by contributing to existing projects, but perhaps more ambitiously we also want to have a crack at proper ‘co-producton’ (to tack on yet more jargon!) and offer serious opportunities for traditional academics, volunteer societies and other enthusiasts to dream up new research initiatives collectively, and then to fund them via crowd-funding appeals.
\r\n
What will be the ethical implications of online community co-production like this? What should be the consequences of crowd-funding for heritage policy? How, technically speaking, do we best build a multi-purpose, wide-range web platform of this kind? How can we best encourage fun, productive and inclusive online communities? How should we evaluate whether our approaches are effective or not?
\r\n
These are possible subjects of future posts, but we promise to throw in some more light-hearted and serendipitous stuff too, so please do keep following!
We are a team of researchers from University College London and the British Museum. In the past few years, we have been looking into the new opportunities provided by digital technologies for public engagement in archaeology, through several seminar series and a recent edited volume on the topic. We are now lucky enough to have funds from the AHRC to work on a project entitled Crowd and Community Fuelled Archaeological Research which has started this month.
\r\n
The core of our efforts day-to-day will go into enabling a more general online platform for crowd-sourcing and crowd-funding that we have called Micropasts. The platform’s goal is to bring archaeological enthusiasts of all kinds -- traditional academics, archaeological societies, interested individual members of the public -- together to create new, high quality archaeological and historical data about the human past.
\r\n
This research blog also allows some of us to indulge our more navel-gazing tendencies (!) and to post about themes ranging from public archaeology to research ethics to the technical aspects of crowd-sourcing and crowd-funding. We will be aiming to write for a wide audience including those working in public archaeology, cultural heritage, museum studies, computational archaeology and the digital humanities, as well as practitioners in the heritage and creative sectors.
\r\n
But in this first blog post, let’s start by setting out the context for our research. Recently, increasing attention has been dedicated to the potential of digital technologies for supporting more egalitarian and transparent practice, as well as wider participation.  One fairly well-known digital method to pursue these goals has been ‘crowd-sourcing’, the practice of seeking information, services or funds in small chunks from a ‘crowd’ of people including as yet wholly anonymous members of the public as well as those already belonging to relevant communities of interest. Archaeology and crowd-sourcing should make for a great fit, because, while archaeology enjoys widespread appeal, it tries to protect, document and understand a massive dwindling resource, traditionally supported by tiny pots of money.
\r\n
Early examples of crowd-sourcing in archaeology and related disciplines have focused on things like inspecting imagery to detect archaeological features, pooling wartime tangible heritage, transcribing papyri, interrogating built architecture and public recording of metal artefacts. In other cases, appeals to the ‘crowd’ have been made to micro-finance student dissertations, major excavations and long-term community projects all over the globe. What past crowd-sourcing and crowd-funding experiments have in common is that they mainly embraced ‘contributory’ models, where members of the public were asked to contribute their skills or their money in support of research agendas that were typically designed by academics.
\r\n
We too wish to create a community space where anyone with an interest in archaeology and history can help build archaeological knowledge by contributing to existing projects, but perhaps more ambitiously we also want to have a crack at proper ‘co-producton’ (to tack on yet more jargon!) and offer serious opportunities for traditional academics, volunteer societies and other enthusiasts to dream up new research initiatives collectively, and then to fund them via crowd-funding appeals.
\r\n
What will be the ethical implications of online community co-production like this? What should be the consequences of crowd-funding for heritage policy? How, technically speaking, do we best build a multi-purpose, wide-range web platform of this kind? How can we best encourage fun, productive and inclusive online communities? How should we evaluate whether our approaches are effective or not?
\r\n
These are possible subjects of future posts, but we promise to throw in some more light-hearted and serendipitous stuff too, so please do keep following!
help with the co-production of open archaeological data through crowd-sourcing
\r\n
co-design new research agendas using the community forum
\r\n
micro-fund entirely new research agendas via crowd-funding.
\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-23 22:09:01', '2013-10-23 22:09:01', '', 75, 'http://research.micropasts.org/2013/10/23/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (130, 1, '2013-10-24 06:56:18', '2013-10-24 06:56:18', 'Micropasts is the web platform that we are using to create a place where \'traditional\' academics, established communities of interest in archaeology, other archaeological enthusiasts and curious can collaborate on projects about our human history.\r\n\r\nThe platform is designed to allow one or more of three kinds of engagement, which will be fostered both simultaneously and in sequence, for the whole duration of project. Contributors will be able to:\r\n\r\n
help with the co-production of open archaeological data through crowd-sourcing
micro-fund entirely new research agendas via crowd-funding.
\r\n\r\n ', 'Micropasts platform', '', 'inherit', 'open', 'open', '', '75-revision-v1', '', '', '2013-10-24 06:56:18', '2013-10-24 06:56:18', '', 75, 'http://research.micropasts.org/2013/10/24/75-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (131, 1, '2013-10-24 06:56:55', '2013-10-24 06:56:55', 'This project will be using the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods.\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-24 06:56:55', '2013-10-24 06:56:55', '', 26, 'http://research.micropasts.org/2013/10/24/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (132, 2, '2013-10-24 14:03:59', '2013-10-24 14:03:59', 'Project team\r\n\r\nAndrew Bevan, UCL Institute of Archaeology\r\nPrincipal investigator\r\n\r\n\r\nDaniel Pett, The British Museum\r\nCo-investigator\r\n\r\nRachael Sparks, UCL Institute of Archaeology\r\nCo-investigator\r\n\r\nChiara Bonacchi, UCL Institute of Archaeology\r\nResearch Associate\r\n\r\nAdi Keinan, UCL Institute of Archaeology\r\nResearch Associate\r\n\r\nIan Carroll, UCL Institute of Archaeology\r\nArchival Collections Liaison\r\n\r\nNeil Wilkin, The British Museum, Dept. of Prehistory and Europe\r\nArchival Collections Liaison\r\n\r\n \r\n\r\nAdvisory group\r\n\r\nRoger Bland OBE, The British Museum, Dept. of Prehistory and Europe\r\n\r\nTim Causer, UCL Laws\r\n\r\nNathalie Cohen, Thames Discovery Project\r\n\r\nStuart Dunn, King\'s College London, Digital Humanities\r\n\r\nSusie Green, UCL Institute of Archaeology\r\n\r\nLorna Richardson, Waveney Valley Community Archaeology Group\r\n\r\nMia Ridge, Open University\r\n\r\nStuart Robson, UCL Dept. of Civil, Environmental and Geomatic Engineering\r\n\r\nMelissa Terras, UCL Centre for Digital Humanities\r\n\r\n \r\n\r\n ', 'People', '', 'inherit', 'open', 'open', '', '16-revision-v1', '', '', '2013-10-24 14:03:59', '2013-10-24 14:03:59', '', 16, 'http://research.micropasts.org/2013/10/24/16-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (133, 2, '2013-10-24 20:02:55', '2013-10-24 20:02:55', 'This project will be using the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods.\r\n\r\nThe project Crowd and Community-fuelled Archaeological Research (2013-2015) is funded by the Arts and Humanities Research Council (AHRC), under the Capital Funding Call for Digital Transformations in Community Research Co-Production in the Arts and Humanities.\r\n\r\n"This call seeks to explore new research opportunities at the interface and intersections between the Connected Communities Programme, AHRC’s Digital Transformations in the Arts and Humanities Theme, the Cross-Council Digital Economy Programme and other AHRC activities relating to the Creative Economy. Building on the creative capacities of communities and their immense interest in exploring their cultures and heritage, the call aims to harness the transformative power of digital technologies to stimulate innovative engagements and research co-production between communities and researchers."\r\nArts and Humanities Research Council\r\n\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-24 20:02:55', '2013-10-24 20:02:55', '', 26, 'http://research.micropasts.org/2013/10/24/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (134, 2, '2013-10-24 20:03:17', '2013-10-24 20:03:17', 'This project will be using the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods.\r\n\r\nThe project Crowd and Community-fuelled Archaeological Research (2013-2015) is funded by the Arts and Humanities Research Council (AHRC), under the Capital Funding Call for Digital Transformations in Community Research Co-Production in the Arts and Humanities.\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-24 20:03:17', '2013-10-24 20:03:17', '', 26, 'http://research.micropasts.org/2013/10/24/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (135, 2, '2013-10-24 20:03:27', '2013-10-24 20:03:27', 'This project will be using the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods\r\n\r\n \r\n\r\nThe project Crowd and Community-fuelled Archaeological Research (2013-2015) is funded by the Arts and Humanities Research Council (AHRC), under the Capital Funding Call for Digital Transformations in Community Research Co-Production in the Arts and Humanities.\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-24 20:03:27', '2013-10-24 20:03:27', '', 26, 'http://research.micropasts.org/2013/10/24/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (136, 2, '2013-10-24 20:03:56', '2013-10-24 20:03:56', 'This project will be using the Micropasts platform and crowd-sourcing methods to allow traditional academics and other communities in archaeology to co-produce innovative open datasets, and thereafter pioneers a novel participatory model in which these same groups co-design and micro-fund follow-up research.\r\n\r\nArchaeology has long been successful in piquing the interest of ‘professional’ practitioners, organised ‘amateur’ societies and the wider public alike. In the UK especially, it has benefited from a tradition of public engagement, volunteer fieldwork and special interest groups. However, beyond the trench edge or gallery case, cooperation on the creation of archaeological knowledge is rare indeed.\r\n\r\nThis project explores the potential for massive online collaboration to create large numbers of 3D models of artefacts, enhance existing archaeological databases, add rich new content to images and micro-fund new collaboratively-developed research agendas.\r\n\r\nWe want to deepen and transform existing links between two major London-based research institutions, the UCL Institute of Archaeology and the British Museum, as well as with both well-established archaeological societies and the wider public. The future health of our archaeological heritage lies in research that is more collaboratively designed and funded, more efficient in generating data of widely-perceived value, and more open in sharing it. Our guiding rationale is that such goals are entirely achievable if we create enduring community and crowd connections and harness the right kinds of digital methods.\r\n\r\nThe project Crowd and Community-fuelled Archaeological Research (2013-2015) is funded by the Arts and Humanities Research Council (AHRC), under the Capital Funding Call for Digital Transformations in Community Research Co-Production in the Arts and Humanities.\r\n\r\n', 'About the project', '', 'inherit', 'open', 'open', '', '26-revision-v1', '', '', '2013-10-24 20:03:56', '2013-10-24 20:03:56', '', 26, 'http://research.micropasts.org/2013/10/24/26-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (137, 2, '2013-10-25 18:12:48', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'open', 'open', '', '', '', '', '2013-10-25 18:12:48', '0000-00-00 00:00:00', '', 0, 'http://research.micropasts.org/?p=137', 0, 'post', '', 0);
+INSERT INTO `wp_2_posts` VALUES (138, 2, '2013-10-25 18:13:31', '2013-10-25 18:13:31', 'Project team\r\n\r\nAndrew Bevan, UCL Institute of Archaeology\r\nPrincipal investigator\r\n\r\n\r\nDaniel Pett, The British Museum\r\nCo-investigator\r\n\r\nRachael Sparks, UCL Institute of Archaeology\r\nCo-investigator\r\n\r\nChiara Bonacchi, UCL Institute of Archaeology\r\nResearch Associate\r\n\r\nAdi Keinan, UCL Institute of Archaeology\r\nResearch Associate\r\n\r\nIan Carroll, UCL Institute of Archaeology\r\nArchival Collections Liaison\r\n\r\nNeil Wilkin, The British Museum, Dept. of Prehistory and Europe\r\nArchival Collections Liaison\r\n\r\n \r\n\r\nAdvisory group\r\n\r\nRoger Bland, The British Museum, Dept. of Prehistory and Europe\r\n\r\nTim Causer, UCL Laws\r\n\r\nNathalie Cohen, Thames Discovery Project\r\n\r\nStuart Dunn, King\'s College London, Digital Humanities\r\n\r\nSusie Green, UCL Institute of Archaeology\r\n\r\nLorna Richardson, Waveney Valley Community Archaeology Group\r\n\r\nMia Ridge, Open University\r\n\r\nStuart Robson, UCL Dept. of Civil, Environmental and Geomatic Engineering\r\n\r\nMelissa Terras, UCL Centre for Digital Humanities\r\n\r\n \r\n\r\n ', 'People', '', 'inherit', 'open', 'open', '', '16-revision-v1', '', '', '2013-10-25 18:13:31', '2013-10-25 18:13:31', '', 16, 'http://research.micropasts.org/2013/10/25/16-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (139, 2, '2013-10-25 18:30:25', '2013-10-25 18:30:25', 'Project team\r\n\r\nAndrew Bevan, UCL Institute of Archaeology\r\nPrincipal investigator\r\n\r\n\r\nDaniel Pett, The British Museum\r\nCo-investigator\r\n\r\nRachael Sparks, UCL Institute of Archaeology\r\nCo-investigator\r\n\r\nChiara Bonacchi, UCL Institute of Archaeology\r\nResearch Associate\r\n\r\nAdi Keinan, UCL Institute of Archaeology\r\nResearch Associate\r\n\r\nIan Carroll, UCL Institute of Archaeology\r\nArchival Collections Liaison\r\n\r\nNeil Wilkin, The British Museum, Dept. of Prehistory and Europe\r\nArchival Collections Liaison\r\n\r\n \r\n\r\nAdvisory group\r\n\r\nRoger Bland, The British Museum, Dept. of Prehistory and Europe\r\n\r\nTim Causer, UCL Laws\r\n\r\nNathalie Cohen, Thames Discovery Project\r\n\r\nStuart Dunn, King\'s College London, Digital Humanities\r\n\r\nSusie Green, UCL Institute of Archaeology\r\n\r\nDaniel Lombraña González, Citizen Cyberscience Centre\r\n\r\nLorna Richardson, Waveney Valley Community Archaeology Group\r\n\r\nMia Ridge, Open University\r\n\r\nStuart Robson, UCL Dept. of Civil, Environmental and Geomatic Engineering\r\n\r\nMelissa Terras, UCL Centre for Digital Humanities\r\n\r\n \r\n\r\n ', 'People', '', 'inherit', 'open', 'open', '', '16-revision-v1', '', '', '2013-10-25 18:30:25', '2013-10-25 18:30:25', '', 16, 'http://research.micropasts.org/2013/10/25/16-revision-v1/', 0, 'revision', '', 0);
+INSERT INTO `wp_2_posts` VALUES (140, 1, '2013-10-26 07:51:07', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'open', 'open', '', '', '', '', '2013-10-26 07:51:07', '0000-00-00 00:00:00', '', 0, 'http://research.micropasts.org/?p=140', 0, 'post', '', 0);
+INSERT INTO `wp_2_posts` VALUES (141, 1, '2013-10-29 23:44:20', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'open', 'open', '', '', '', '', '2013-10-29 23:44:20', '0000-00-00 00:00:00', '', 0, 'http://research.micropasts.org/?p=141', 0, 'post', '', 0);
+#
+# End of data contents of table `wp_2_posts`
+# --------------------------------------------------------
+
+# --------------------------------------------------------
+# Table: `wp_2_term_relationships`
+# --------------------------------------------------------
+
+
+#
+# Delete any existing table `wp_2_term_relationships`
+#
+
+DROP TABLE IF EXISTS `wp_2_term_relationships`;
+
+
+#
+# Table structure of table `wp_2_term_relationships`
+#
+
+CREATE TABLE `wp_2_term_relationships` (
+ `object_id` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `term_order` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`object_id`,`term_taxonomy_id`),
+ KEY `term_taxonomy_id` (`term_taxonomy_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
+
+#
+# Data contents of table `wp_2_term_relationships`
+#
+
+INSERT INTO `wp_2_term_relationships` VALUES (1, 1, 0);
+INSERT INTO `wp_2_term_relationships` VALUES (69, 2, 0);
+INSERT INTO `wp_2_term_relationships` VALUES (70, 2, 0);
+INSERT INTO `wp_2_term_relationships` VALUES (71, 2, 0);
+INSERT INTO `wp_2_term_relationships` VALUES (72, 2, 0);
+INSERT INTO `wp_2_term_relationships` VALUES (74, 2, 0);
+INSERT INTO `wp_2_term_relationships` VALUES (80, 2, 0);
+INSERT INTO `wp_2_term_relationships` VALUES (91, 1, 0);
+#
+# End of data contents of table `wp_2_term_relationships`
+# --------------------------------------------------------
+
+# --------------------------------------------------------
+# Table: `wp_2_term_taxonomy`
+# --------------------------------------------------------
+
+
+#
+# Delete any existing table `wp_2_term_taxonomy`
+#
+
+DROP TABLE IF EXISTS `wp_2_term_taxonomy`;
+
+
+#
+# Table structure of table `wp_2_term_taxonomy`
+#
+
+CREATE TABLE `wp_2_term_taxonomy` (
+ `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `term_id` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `taxonomy` varchar(32) NOT NULL DEFAULT '',
+ `description` longtext NOT NULL,
+ `parent` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `count` bigint(20) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`term_taxonomy_id`),
+ UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`),
+ KEY `taxonomy` (`taxonomy`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ;
+
+#
+# Data contents of table `wp_2_term_taxonomy`
+#
+
+INSERT INTO `wp_2_term_taxonomy` VALUES (1, 1, 'category', '', 0, 1);
+INSERT INTO `wp_2_term_taxonomy` VALUES (2, 2, 'nav_menu', '', 0, 6);
+#
+# End of data contents of table `wp_2_term_taxonomy`
+# --------------------------------------------------------
+
+# --------------------------------------------------------
+# Table: `wp_2_terms`
+# --------------------------------------------------------
+
+
+#
+# Delete any existing table `wp_2_terms`
+#
+
+DROP TABLE IF EXISTS `wp_2_terms`;
+
+
+#
+# Table structure of table `wp_2_terms`
+#
+
+CREATE TABLE `wp_2_terms` (
+ `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(200) NOT NULL DEFAULT '',
+ `slug` varchar(200) NOT NULL DEFAULT '',
+ `term_group` bigint(10) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`term_id`),
+ UNIQUE KEY `slug` (`slug`),
+ KEY `name` (`name`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ;
+
+#
+# Data contents of table `wp_2_terms`
+#
+
+INSERT INTO `wp_2_terms` VALUES (1, 'Research', 'uncategorized', 0);
+INSERT INTO `wp_2_terms` VALUES (2, 'Menu 1', 'menu-1', 0);
+#
+# End of data contents of table `wp_2_terms`
+# --------------------------------------------------------
+
+# --------------------------------------------------------
+# Table: `wp_usermeta`
+# --------------------------------------------------------
+
+
+#
+# Delete any existing table `wp_usermeta`
+#
+
+DROP TABLE IF EXISTS `wp_usermeta`;
+
+
+#
+# Table structure of table `wp_usermeta`
+#
+
+CREATE TABLE `wp_usermeta` (
+ `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` bigint(20) unsigned NOT NULL DEFAULT '0',
+ `meta_key` varchar(255) DEFAULT NULL,
+ `meta_value` longtext,
+ PRIMARY KEY (`umeta_id`),
+ KEY `user_id` (`user_id`),
+ KEY `meta_key` (`meta_key`)
+) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8 ;
+
+#
+# Data contents of table `wp_usermeta`
+#
+
+INSERT INTO `wp_usermeta` VALUES (1, 1, 'first_name', 'The Admin');
+INSERT INTO `wp_usermeta` VALUES (2, 1, 'last_name', 'Account');
+INSERT INTO `wp_usermeta` VALUES (3, 1, 'nickname', 'theboss');
+INSERT INTO `wp_usermeta` VALUES (4, 1, 'description', '');
+INSERT INTO `wp_usermeta` VALUES (5, 1, 'rich_editing', 'true');
+INSERT INTO `wp_usermeta` VALUES (6, 1, 'comment_shortcuts', 'false');
+INSERT INTO `wp_usermeta` VALUES (7, 1, 'admin_color', 'fresh');
+INSERT INTO `wp_usermeta` VALUES (8, 1, 'use_ssl', '0');
+INSERT INTO `wp_usermeta` VALUES (9, 1, 'show_admin_bar_front', 'true');
+INSERT INTO `wp_usermeta` VALUES (10, 1, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}');
+INSERT INTO `wp_usermeta` VALUES (11, 1, 'wp_user_level', '10');
+INSERT INTO `wp_usermeta` VALUES (12, 1, 'dismissed_wp_pointers', 'wp330_toolbar,wp330_saving_widgets,wp340_choose_image_from_library,wp340_customize_current_theme_link,wp350_media,wp360_revisions,wp360_locks');
+INSERT INTO `wp_usermeta` VALUES (13, 1, 'show_welcome_panel', '1');
+INSERT INTO `wp_usermeta` VALUES (14, 1, 'wp_dashboard_quick_press_last_post_id', '256');
+INSERT INTO `wp_usermeta` VALUES (15, 2, 'first_name', 'Chiara');
+INSERT INTO `wp_usermeta` VALUES (16, 2, 'last_name', 'Bonacchi');
+INSERT INTO `wp_usermeta` VALUES (17, 2, 'nickname', 'chiara');
+INSERT INTO `wp_usermeta` VALUES (18, 2, 'description', '');
+INSERT INTO `wp_usermeta` VALUES (19, 2, 'rich_editing', 'true');
+INSERT INTO `wp_usermeta` VALUES (20, 2, 'comment_shortcuts', 'false');
+INSERT INTO `wp_usermeta` VALUES (21, 2, 'admin_color', 'fresh');
+INSERT INTO `wp_usermeta` VALUES (22, 2, 'use_ssl', '0');
+INSERT INTO `wp_usermeta` VALUES (23, 2, 'show_admin_bar_front', 'true');
+INSERT INTO `wp_usermeta` VALUES (24, 2, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}');
+INSERT INTO `wp_usermeta` VALUES (25, 2, 'wp_user_level', '10');
+INSERT INTO `wp_usermeta` VALUES (26, 2, 'dismissed_wp_pointers', 'wp330_toolbar,wp330_saving_widgets,wp340_choose_image_from_library,wp340_customize_current_theme_link,wp350_media,wp360_revisions,wp360_locks');
+INSERT INTO `wp_usermeta` VALUES (27, 3, 'first_name', 'Andrew');
+INSERT INTO `wp_usermeta` VALUES (28, 3, 'last_name', 'Bevan');
+INSERT INTO `wp_usermeta` VALUES (29, 3, 'nickname', 'abevan');
+INSERT INTO `wp_usermeta` VALUES (30, 3, 'description', '');
+INSERT INTO `wp_usermeta` VALUES (31, 3, 'rich_editing', 'true');
+INSERT INTO `wp_usermeta` VALUES (32, 3, 'comment_shortcuts', 'false');
+INSERT INTO `wp_usermeta` VALUES (33, 3, 'admin_color', 'fresh');
+INSERT INTO `wp_usermeta` VALUES (34, 3, 'use_ssl', '0');
+INSERT INTO `wp_usermeta` VALUES (35, 3, 'show_admin_bar_front', 'true');
+INSERT INTO `wp_usermeta` VALUES (36, 3, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}');
+INSERT INTO `wp_usermeta` VALUES (37, 3, 'wp_user_level', '10');
+INSERT INTO `wp_usermeta` VALUES (38, 3, 'dismissed_wp_pointers', 'wp330_toolbar,wp330_saving_widgets,wp340_choose_image_from_library,wp340_customize_current_theme_link,wp350_media,wp360_revisions,wp360_locks');
+INSERT INTO `wp_usermeta` VALUES (39, 1, 'wporg_favorites', '');
+INSERT INTO `wp_usermeta` VALUES (40, 2, 'wp_dashboard_quick_press_last_post_id', '257');
+INSERT INTO `wp_usermeta` VALUES (41, 2, 'wp_user-settings', 'editor=tinymce&libraryContent=browse');
+INSERT INTO `wp_usermeta` VALUES (42, 2, 'wp_user-settings-time', '1382025780');
+INSERT INTO `wp_usermeta` VALUES (43, 2, 'closedpostboxes_page', 'a:0:{}');
+INSERT INTO `wp_usermeta` VALUES (44, 2, 'metaboxhidden_page', 'a:4:{i:0;s:10:"postcustom";i:1;s:16:"commentstatusdiv";i:2;s:7:"slugdiv";i:3;s:9:"authordiv";}');
+INSERT INTO `wp_usermeta` VALUES (45, 1, 'wp_user-settings', 'editor=tinymce&unfold=1&mfold=o');
+INSERT INTO `wp_usermeta` VALUES (46, 1, 'wp_user-settings-time', '1381874810');
+INSERT INTO `wp_usermeta` VALUES (47, 3, 'wp_dashboard_quick_press_last_post_id', '198');
+INSERT INTO `wp_usermeta` VALUES (48, 1, 'source_domain', 'micropasts.org');
+INSERT INTO `wp_usermeta` VALUES (49, 1, 'primary_blog', '1');
+INSERT INTO `wp_usermeta` VALUES (50, 4, 'first_name', '');
+INSERT INTO `wp_usermeta` VALUES (51, 4, 'last_name', '');
+INSERT INTO `wp_usermeta` VALUES (52, 4, 'nickname', 'research');
+INSERT INTO `wp_usermeta` VALUES (53, 4, 'description', '');
+INSERT INTO `wp_usermeta` VALUES (54, 4, 'rich_editing', 'true');
+INSERT INTO `wp_usermeta` VALUES (55, 4, 'comment_shortcuts', 'false');
+INSERT INTO `wp_usermeta` VALUES (56, 4, 'admin_color', 'fresh');
+INSERT INTO `wp_usermeta` VALUES (57, 4, 'use_ssl', '0');
+INSERT INTO `wp_usermeta` VALUES (58, 4, 'show_admin_bar_front', 'true');
+INSERT INTO `wp_usermeta` VALUES (61, 4, 'dismissed_wp_pointers', 'wp330_toolbar,wp330_saving_widgets,wp340_choose_image_from_library,wp340_customize_current_theme_link,wp350_media,wp360_revisions,wp360_locks');
+INSERT INTO `wp_usermeta` VALUES (62, 4, 'show_welcome_panel', '2');
+INSERT INTO `wp_usermeta` VALUES (63, 4, 'primary_blog', '2');
+INSERT INTO `wp_usermeta` VALUES (64, 4, 'source_domain', 'research.micropasts.org');
+INSERT INTO `wp_usermeta` VALUES (65, 4, 'wp_2_capabilities', 'a:1:{s:13:"administrator";b:1;}');
+INSERT INTO `wp_usermeta` VALUES (66, 4, 'wp_2_user_level', '10');
+INSERT INTO `wp_usermeta` VALUES (67, 2, 'primary_blog', '2');
+INSERT INTO `wp_usermeta` VALUES (68, 2, 'source_domain', 'research.micropasts.org');
+INSERT INTO `wp_usermeta` VALUES (69, 2, 'wp_2_capabilities', 'a:1:{s:13:"administrator";b:1;}');
+INSERT INTO `wp_usermeta` VALUES (70, 2, 'wp_2_user_level', '10');
+INSERT INTO `wp_usermeta` VALUES (71, 1, 'wsl_user', 'Google');
+INSERT INTO `wp_usermeta` VALUES (72, 1, 'wsl_user_gender', 'male');
+INSERT INTO `wp_usermeta` VALUES (73, 1, 'wsl_user_age', '');
+INSERT INTO `wp_usermeta` VALUES (74, 1, 'wsl_user_image', 'https://lh3.googleusercontent.com/-AK-Hs658Ju0/AAAAAAAAAAI/AAAAAAAAEvg/hVWdC1XohRo/photo.jpg');
+INSERT INTO `wp_usermeta` VALUES (75, 2, 'wp_2_dashboard_quick_press_last_post_id', '137');
+INSERT INTO `wp_usermeta` VALUES (76, 3, 'primary_blog', '1');
+INSERT INTO `wp_usermeta` VALUES (77, 2, 'wp_2_user-settings', 'libraryContent=browse&editor=tinymce');
+INSERT INTO `wp_usermeta` VALUES (78, 2, 'wp_2_user-settings-time', '1382114711');
+INSERT INTO `wp_usermeta` VALUES (79, 2, 'managenav-menuscolumnshidden', 'a:4:{i:0;s:11:"link-target";i:1;s:11:"css-classes";i:2;s:3:"xfn";i:3;s:11:"description";}');
+INSERT INTO `wp_usermeta` VALUES (80, 2, 'metaboxhidden_nav-menus', 'a:2:{i:0;s:8:"add-post";i:1;s:12:"add-post_tag";}');
+INSERT INTO `wp_usermeta` VALUES (81, 2, 'nav_menu_recently_edited', '2');
+INSERT INTO `wp_usermeta` VALUES (82, 3, 'managenav-menuscolumnshidden', 'a:4:{i:0;s:11:"link-target";i:1;s:11:"css-classes";i:2;s:3:"xfn";i:3;s:11:"description";}');
+INSERT INTO `wp_usermeta` VALUES (83, 3, 'metaboxhidden_nav-menus', 'a:0:{}');
+INSERT INTO `wp_usermeta` VALUES (84, 3, 'wp_user-settings', 'editor=tinymce&libraryContent=browse&imgsize=thumbnail&hidetb=1&wplink=1&urlbutton=none');
+INSERT INTO `wp_usermeta` VALUES (85, 3, 'wp_user-settings-time', '1382180449');
+INSERT INTO `wp_usermeta` VALUES (86, 3, 'webIdLocation', 'localWebId');
+INSERT INTO `wp_usermeta` VALUES (87, 3, 'webId', '');
+INSERT INTO `wp_usermeta` VALUES (88, 3, 'publicKeyModulus', '');
+INSERT INTO `wp_usermeta` VALUES (89, 3, 'publicKeyExponent', '');
+INSERT INTO `wp_usermeta` VALUES (90, 3, 'additionalRdf', '');
+INSERT INTO `wp_usermeta` VALUES (91, 5, 'first_name', 'Katharine');
+INSERT INTO `wp_usermeta` VALUES (92, 5, 'last_name', 'Kelland');
+INSERT INTO `wp_usermeta` VALUES (93, 5, 'nickname', 'katharine_kelland');
+INSERT INTO `wp_usermeta` VALUES (94, 5, 'description', '');
+INSERT INTO `wp_usermeta` VALUES (95, 5, 'rich_editing', 'true');
+INSERT INTO `wp_usermeta` VALUES (96, 5, 'comment_shortcuts', 'false');
+INSERT INTO `wp_usermeta` VALUES (97, 5, 'admin_color', 'fresh');
+INSERT INTO `wp_usermeta` VALUES (98, 5, 'use_ssl', '0');
+INSERT INTO `wp_usermeta` VALUES (99, 5, 'show_admin_bar_front', 'true');
+INSERT INTO `wp_usermeta` VALUES (100, 5, 'wp_capabilities', 'a:1:{s:10:"subscriber";b:1;}');
+INSERT INTO `wp_usermeta` VALUES (101, 5, 'wp_user_level', '0');
+INSERT INTO `wp_usermeta` VALUES (102, 5, 'Google', '114760327985646315403');
+INSERT INTO `wp_usermeta` VALUES (103, 5, 'wsl_user', 'Google');
+INSERT INTO `wp_usermeta` VALUES (104, 5, 'wsl_user_gender', 'female');
+INSERT INTO `wp_usermeta` VALUES (105, 5, 'wsl_user_age', '');
+INSERT INTO `wp_usermeta` VALUES (106, 5, 'wsl_user_image', '');
+INSERT INTO `wp_usermeta` VALUES (107, 5, 'primary_blog', '1');
+INSERT INTO `wp_usermeta` VALUES (108, 3, 'closedpostboxes_page', 'a:0:{}');
+INSERT INTO `wp_usermeta` VALUES (109, 3, 'metaboxhidden_page', 'a:3:{i:0;s:10:"postcustom";i:1;s:7:"slugdiv";i:2;s:9:"authordiv";}');
+INSERT INTO `wp_usermeta` VALUES (110, 3, 'closedpostboxes_nav-menus', 'a:0:{}');
+#
+# End of data contents of table `wp_usermeta`
+# --------------------------------------------------------
+
+# --------------------------------------------------------
+# Table: `wp_users`
+# --------------------------------------------------------
+
+
+#
+# Delete any existing table `wp_users`
+#
+
+DROP TABLE IF EXISTS `wp_users`;
+
+
+#
+# Table structure of table `wp_users`
+#
+
+CREATE TABLE `wp_users` (
+ `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `user_login` varchar(60) NOT NULL DEFAULT '',
+ `user_pass` varchar(64) NOT NULL DEFAULT '',
+ `user_nicename` varchar(50) NOT NULL DEFAULT '',
+ `user_email` varchar(100) NOT NULL DEFAULT '',
+ `user_url` varchar(100) NOT NULL DEFAULT '',
+ `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `user_activation_key` varchar(60) NOT NULL DEFAULT '',
+ `user_status` int(11) NOT NULL DEFAULT '0',
+ `display_name` varchar(250) NOT NULL DEFAULT '',
+ `spam` tinyint(2) NOT NULL DEFAULT '0',
+ `deleted` tinyint(2) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`ID`),
+ KEY `user_login_key` (`user_login`),
+ KEY `user_nicename` (`user_nicename`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 ;
+
+#
+# Data contents of table `wp_users`
+#
+
+INSERT INTO `wp_users` VALUES (1, 'theboss', '$P$BcDoeIClhaQqKUUPXoC629q/Lrkiaq/', 'theboss', 'danielpett@gmail.com', '', '2013-09-26 21:18:49', '', 0, 'theboss', 0, 0);
+INSERT INTO `wp_users` VALUES (2, 'chiara', '$P$ByGuyuCvwkS9EL2LBlM.X2F5cAvu/R.', 'chiara', 'chiara.bonacchi@googlemail.com', '', '2013-09-26 21:20:25', '', 0, 'Chiara Bonacchi', 0, 0);
+INSERT INTO `wp_users` VALUES (3, 'abevan', '$P$BRxIIKGiFDA9oPZxh38cznh5ncWdcY1', 'abevan', 'a.bevan@ucl.ac.uk', '', '2013-09-26 21:21:18', '', 0, 'Andrew Bevan', 0, 0);
+INSERT INTO `wp_users` VALUES (4, 'research', '$P$BYyjcFSUgMa7hcoxafzzQYcOF0Zo/O/', 'research', 'info@micropasts.org', '', '2013-10-09 18:47:13', '', 0, 'research', 0, 0);
+INSERT INTO `wp_users` VALUES (5, 'katharine_kelland', '$P$BlwTzCeewVU2y/5PgCcSnXqpAOwDy./', 'katharine_kelland', 'katekelland@googlemail.com', 'https://profiles.google.com/114760327985646315403', '2013-10-20 14:53:44', '', 0, 'Katharine Kelland', 0, 0);
+#
+# End of data contents of table `wp_users`
+# --------------------------------------------------------
+
diff --git a/wp-content/index.php b/wp-content/index.php
new file mode 100644
index 0000000..6220032
--- /dev/null
+++ b/wp-content/index.php
@@ -0,0 +1,2 @@
+
+ * ...
+ * $document->title = 'Something';
+ * echo $document->title;
+ * ...
+ *
+ *
+ * Additionally, the field values can be iterated with foreach
+ *
+ *
+ * foreach ($document as $fieldName => $fieldValue)
+ * {
+ * ...
+ * }
+ *
+ */
+class Apache_Solr_Document implements IteratorAggregate
+{
+ /**
+ * SVN Revision meta data for this class
+ */
+ const SVN_REVISION = '$Revision$';
+
+ /**
+ * SVN ID meta data for this class
+ */
+ const SVN_ID = '$Id$';
+
+ /**
+ * Document boost value
+ *
+ * @var float
+ */
+ protected $_documentBoost = false;
+
+ /**
+ * Document field values, indexed by name
+ *
+ * @var array
+ */
+ protected $_fields = array();
+
+ /**
+ * Document field boost values, indexed by name
+ *
+ * @var array array of floats
+ */
+ protected $_fieldBoosts = array();
+
+ /**
+ * Clear all boosts and fields from this document
+ */
+ public function clear()
+ {
+ $this->_documentBoost = false;
+
+ $this->_fields = array();
+ $this->_fieldBoosts = array();
+ }
+
+ /**
+ * Get current document boost
+ *
+ * @return mixed will be false for default, or else a float
+ */
+ public function getBoost()
+ {
+ return $this->_documentBoost;
+ }
+
+ /**
+ * Set document boost factor
+ *
+ * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
+ */
+ public function setBoost($boost)
+ {
+ $boost = (float) $boost;
+
+ if ($boost > 0.0)
+ {
+ $this->_documentBoost = $boost;
+ }
+ else
+ {
+ $this->_documentBoost = false;
+ }
+ }
+
+ /**
+ * Add a value to a multi-valued field
+ *
+ * NOTE: the solr XML format allows you to specify boosts
+ * PER value even though the underlying Lucene implementation
+ * only allows a boost per field. To remedy this, the final
+ * field boost value will be the product of all specified boosts
+ * on field values - this is similar to SolrJ's functionality.
+ *
+ *
+ * $doc = new Apache_Solr_Document();
+ *
+ * $doc->addField('foo', 'bar', 2.0);
+ * $doc->addField('foo', 'baz', 3.0);
+ *
+ * // resultant field boost will be 6!
+ * echo $doc->getFieldBoost('foo');
+ *
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
+ */
+ public function addField($key, $value, $boost = false)
+ {
+ if (!isset($this->_fields[$key]))
+ {
+ // create holding array if this is the first value
+ $this->_fields[$key] = array();
+ }
+ else if (!is_array($this->_fields[$key]))
+ {
+ // move existing value into array if it is not already an array
+ $this->_fields[$key] = array($this->_fields[$key]);
+ }
+
+ if ($this->getFieldBoost($key) === false)
+ {
+ // boost not already set, set it now
+ $this->setFieldBoost($key, $boost);
+ }
+ else if ((float) $boost > 0.0)
+ {
+ // multiply passed boost with current field boost - similar to SolrJ implementation
+ $this->_fieldBoosts[$key] *= (float) $boost;
+ }
+
+ // add value to array
+ $this->_fields[$key][] = $value;
+ }
+
+ /**
+ * Handle the array manipulation for a multi-valued field
+ *
+ * @param string $key
+ * @param string $value
+ * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
+ *
+ * @deprecated Use addField(...) instead
+ */
+ public function setMultiValue($key, $value, $boost = false)
+ {
+ $this->addField($key, $value, $boost);
+ }
+
+ /**
+ * Get field information
+ *
+ * @param string $key
+ * @return mixed associative array of info if field exists, false otherwise
+ */
+ public function getField($key)
+ {
+ if (isset($this->_fields[$key]))
+ {
+ return array(
+ 'name' => $key,
+ 'value' => $this->_fields[$key],
+ 'boost' => $this->getFieldBoost($key)
+ );
+ }
+
+ return false;
+ }
+
+ /**
+ * Set a field value. Multi-valued fields should be set as arrays
+ * or instead use the addField(...) function which will automatically
+ * make sure the field is an array.
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
+ */
+ public function setField($key, $value, $boost = false)
+ {
+ $this->_fields[$key] = $value;
+ $this->setFieldBoost($key, $boost);
+ }
+
+ /**
+ * Get the currently set field boost for a document field
+ *
+ * @param string $key
+ * @return float currently set field boost, false if one is not set
+ */
+ public function getFieldBoost($key)
+ {
+ return isset($this->_fieldBoosts[$key]) ? $this->_fieldBoosts[$key] : false;
+ }
+
+ /**
+ * Set the field boost for a document field
+ *
+ * @param string $key field name for the boost
+ * @param mixed $boost Use false for default boost, else cast to float that should be > 0 or will be treated as false
+ */
+ public function setFieldBoost($key, $boost)
+ {
+ $boost = (float) $boost;
+
+ if ($boost > 0.0)
+ {
+ $this->_fieldBoosts[$key] = $boost;
+ }
+ else
+ {
+ $this->_fieldBoosts[$key] = false;
+ }
+ }
+
+ /**
+ * Return current field boosts, indexed by field name
+ *
+ * @return array
+ */
+ public function getFieldBoosts()
+ {
+ return $this->_fieldBoosts;
+ }
+
+ /**
+ * Get the names of all fields in this document
+ *
+ * @return array
+ */
+ public function getFieldNames()
+ {
+ return array_keys($this->_fields);
+ }
+
+ /**
+ * Get the values of all fields in this document
+ *
+ * @return array
+ */
+ public function getFieldValues()
+ {
+ return array_values($this->_fields);
+ }
+
+ /**
+ * IteratorAggregate implementation function. Allows usage:
+ *
+ *
+ * foreach ($document as $key => $value)
+ * {
+ * ...
+ * }
+ *
+ */
+ public function getIterator()
+ {
+ $arrayObject = new ArrayObject($this->_fields);
+
+ return $arrayObject->getIterator();
+ }
+
+ /**
+ * Magic get for field values
+ *
+ * @param string $key
+ * @return mixed
+ */
+ public function __get($key)
+ {
+ if (isset($this->_fields[$key]))
+ {
+ return $this->_fields[$key];
+ }
+
+ return null;
+ }
+
+ /**
+ * Magic set for field values. Multi-valued fields should be set as arrays
+ * or instead use the addField(...) function which will automatically
+ * make sure the field is an array.
+ *
+ * @param string $key
+ * @param mixed $value
+ */
+ public function __set($key, $value)
+ {
+ $this->setField($key, $value);
+ }
+
+ /**
+ * Magic isset for fields values. Do not call directly. Allows usage:
+ *
+ *
+ * isset($document->some_field);
+ *
+ *
+ * @param string $key
+ * @return boolean
+ */
+ public function __isset($key)
+ {
+ return isset($this->_fields[$key]);
+ }
+
+ /**
+ * Magic unset for field values. Do not call directly. Allows usage:
+ *
+ *
+ * unset($document->some_field);
+ *
+ *
+ * @param string $key
+ */
+ public function __unset($key)
+ {
+ unset($this->_fields[$key]);
+ unset($this->_fieldBoosts[$key]);
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Exception.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Exception.php
new file mode 100644
index 0000000..969657b
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Exception.php
@@ -0,0 +1,50 @@
+, Donovan Jimenez
+ */
+
+/**
+ * Convenience class that implements the transport implementation. Can be extended by
+ * real implementations to do some of the common book keeping
+ */
+abstract class Apache_Solr_HttpTransport_Abstract implements Apache_Solr_HttpTransport_Interface
+{
+ /**
+ * Our default timeout value for requests that don't specify a timeout
+ *
+ * @var float
+ */
+ private $_defaultTimeout = false;
+
+ /**
+ * Get the current default timeout setting (initially the default_socket_timeout ini setting)
+ * in seconds
+ *
+ * @return float
+ */
+ public function getDefaultTimeout()
+ {
+ // lazy load the default timeout from the ini settings
+ if ($this->_defaultTimeout === false)
+ {
+ $this->_defaultTimeout = (int) ini_get('default_socket_timeout');
+
+ // double check we didn't get 0 for a timeout
+ if ($this->_defaultTimeout <= 0)
+ {
+ $this->_defaultTimeout = 60;
+ }
+ }
+
+ return $this->_defaultTimeout;
+ }
+
+ /**
+ * Set the current default timeout for all HTTP requests
+ *
+ * @param float $timeout
+ */
+ public function setDefaultTimeout($timeout)
+ {
+ $timeout = (float) $timeout;
+
+ if ($timeout >= 0)
+ {
+ $this->_defaultTimeout = $timeout;
+ }
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Curl.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Curl.php
new file mode 100644
index 0000000..73ee60a
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Curl.php
@@ -0,0 +1,224 @@
+, Donovan Jimenez
+ */
+
+// Require Apache_Solr_HttpTransport_Abstract
+require_once(dirname(__FILE__) . '/Abstract.php');
+
+/**
+ * A Curl based HTTP transport. Uses a single curl session for all requests.
+ */
+class Apache_Solr_HttpTransport_Curl extends Apache_Solr_HttpTransport_Abstract
+{
+ /**
+ * SVN Revision meta data for this class
+ */
+ const SVN_REVISION = '$Revision:$';
+
+ /**
+ * SVN ID meta data for this class
+ */
+ const SVN_ID = '$Id:$';
+
+ /**
+ * Curl Session Handle
+ *
+ * @var resource
+ */
+ private $_curl;
+
+ /**
+ * Initializes a curl session
+ */
+ public function __construct()
+ {
+ // initialize a CURL session
+ $this->_curl = curl_init();
+
+ // set common options that will not be changed during the session
+ curl_setopt_array($this->_curl, array(
+ // return the response body from curl_exec
+ CURLOPT_RETURNTRANSFER => true,
+
+ // get the output as binary data
+ CURLOPT_BINARYTRANSFER => true,
+
+ // we do not need the headers in the output, we get everything we need from curl_getinfo
+ CURLOPT_HEADER => false
+ ));
+ }
+
+ /**
+ * Closes a curl session
+ */
+ function __destruct()
+ {
+ // close our curl session
+ curl_close($this->_curl);
+ }
+
+ public function setAuthenticationCredentials($username, $password)
+ {
+ // add the options to our curl handle
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_USERPWD => $username . ":" . $password,
+ CURLOPT_HTTPAUTH => CURLAUTH_BASIC
+ ));
+ }
+
+ public function setProxy($proxy, $port, $username = '', $password = '')
+ {
+ // add the options to our curl handle
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_PROXY => $proxy,
+ CURLOPT_PROXYPORT => $port
+ ));
+
+ if ($username != '' && $password != '')
+ {
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
+ CURLOPT_PROXYUSERPWD => "$username:$password"
+ ));
+ }
+ }
+
+ public function performGetRequest($url, $timeout = false)
+ {
+ // check the timeout value
+ if ($timeout === false || $timeout <= 0.0)
+ {
+ // use the default timeout
+ $timeout = $this->getDefaultTimeout();
+ }
+
+ // set curl GET options
+ curl_setopt_array($this->_curl, array(
+ // make sure we're returning the body
+ CURLOPT_NOBODY => false,
+
+ // make sure we're GET
+ CURLOPT_HTTPGET => true,
+
+ // set the URL
+ CURLOPT_URL => $url,
+
+ // set the timeout
+ CURLOPT_TIMEOUT => $timeout
+ ));
+
+ // make the request
+ $responseBody = curl_exec($this->_curl);
+
+ // get info from the transfer
+ $statusCode = curl_getinfo($this->_curl, CURLINFO_HTTP_CODE);
+ $contentType = curl_getinfo($this->_curl, CURLINFO_CONTENT_TYPE);
+
+ return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
+ }
+
+ public function performHeadRequest($url, $timeout = false)
+ {
+ // check the timeout value
+ if ($timeout === false || $timeout <= 0.0)
+ {
+ // use the default timeout
+ $timeout = $this->getDefaultTimeout();
+ }
+
+ // set curl HEAD options
+ curl_setopt_array($this->_curl, array(
+ // this both sets the method to HEAD and says not to return a body
+ CURLOPT_NOBODY => true,
+
+ // set the URL
+ CURLOPT_URL => $url,
+
+ // set the timeout
+ CURLOPT_TIMEOUT => $timeout
+ ));
+
+ // make the request
+ $responseBody = curl_exec($this->_curl);
+
+ // get info from the transfer
+ $statusCode = curl_getinfo($this->_curl, CURLINFO_HTTP_CODE);
+ $contentType = curl_getinfo($this->_curl, CURLINFO_CONTENT_TYPE);
+
+ return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
+ }
+
+ public function performPostRequest($url, $postData, $contentType, $timeout = false)
+ {
+ // check the timeout value
+ if ($timeout === false || $timeout <= 0.0)
+ {
+ // use the default timeout
+ $timeout = $this->getDefaultTimeout();
+ }
+
+ // set curl POST options
+ curl_setopt_array($this->_curl, array(
+ // make sure we're returning the body
+ CURLOPT_NOBODY => false,
+
+ // make sure we're POST
+ CURLOPT_POST => true,
+
+ // set the URL
+ CURLOPT_URL => $url,
+
+ // set the post data
+ CURLOPT_POSTFIELDS => $postData,
+
+ // set the content type
+ CURLOPT_HTTPHEADER => array("Content-Type: {$contentType}"),
+
+ // set the timeout
+ CURLOPT_TIMEOUT => $timeout
+ ));
+
+ // make the request
+ $responseBody = curl_exec($this->_curl);
+
+ // get info from the transfer
+ $statusCode = curl_getinfo($this->_curl, CURLINFO_HTTP_CODE);
+ $contentType = curl_getinfo($this->_curl, CURLINFO_CONTENT_TYPE);
+
+ return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/CurlNoReuse.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/CurlNoReuse.php
new file mode 100644
index 0000000..7fbfea7
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/CurlNoReuse.php
@@ -0,0 +1,294 @@
+, Donovan Jimenez
+ */
+
+// Require Apache_Solr_HttpTransport_Abstract
+require_once(dirname(__FILE__) . '/Abstract.php');
+
+/**
+ * An alternative Curl HTTP transport that opens and closes a curl session for
+ * every request. This isn't the recommended way to use curl, but some version of
+ * PHP have memory issues.
+ */
+class Apache_Solr_HttpTransport_CurlNoReuse extends Apache_Solr_HttpTransport_Abstract
+{
+ /**
+ * SVN Revision meta data for this class
+ */
+ const SVN_REVISION = '$Revision:$';
+
+ /**
+ * SVN ID meta data for this class
+ */
+ const SVN_ID = '$Id:$';
+
+ private $_authString = false;
+ private $_proxy = '';
+ private $_proxyPort = '';
+ private $_proxyUsername = '';
+ private $_proxyPassword = '';
+
+ public function setAuthenticationCredentials($username, $password)
+ {
+ // this is how curl wants it for the CURLOPT_USERPWD
+ $this->_authString = $username . ":" . $password;
+ }
+
+ public function setProxy($proxy, $port, $username = '', $password = '')
+ {
+ $this->_proxy = $proxy;
+ $this->_proxyPort = $port;
+ $this->_proxyUsername = $username;
+ $this->_proxyPassword = $password;
+ }
+
+ public function performGetRequest($url, $timeout = false)
+ {
+ // check the timeout value
+ if ($timeout === false || $timeout <= 0.0)
+ {
+ // use the default timeout
+ $timeout = $this->getDefaultTimeout();
+ }
+
+ $curl = curl_init();
+
+ // set curl GET options
+ curl_setopt_array($curl, array(
+ // return the response body from curl_exec
+ CURLOPT_RETURNTRANSFER => true,
+
+ // get the output as binary data
+ CURLOPT_BINARYTRANSFER => true,
+
+ // we do not need the headers in the output, we get everything we need from curl_getinfo
+ CURLOPT_HEADER => false,
+
+ // set the URL
+ CURLOPT_URL => $url,
+
+ // set the timeout
+ CURLOPT_TIMEOUT => $timeout
+ ));
+
+ // set auth if appropriate
+ if ($this->_authString !== false)
+ {
+ curl_setopt_array($curl, array(
+ CURLOPT_USERPWD => $this->_authString,
+ CURLOPT_HTTPAUTH => CURLAUTH_BASIC
+ ));
+ }
+
+ // set proxy
+ if ($this->_proxy != '' && $this->_proxyPort != '')
+ {
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_PROXY => $this->_proxy,
+ CURLOPT_PROXYPORT => $this->_proxyPort
+ ));
+
+ if ($this->_proxyUsername != '' && $this->_proxyPassword != '')
+ {
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
+ CURLOPT_PROXYUSERPWD => "$this->_proxyUsername:$this->_proxyPassword"
+ ));
+ }
+ }
+
+ // make the request
+ $responseBody = curl_exec($curl);
+
+ // get info from the transfer
+ $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+ $contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
+
+ // close our curl session - we're done with it
+ curl_close($curl);
+
+ return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
+ }
+
+ public function performHeadRequest($url, $timeout = false)
+ {
+ // check the timeout value
+ if ($timeout === false || $timeout <= 0.0)
+ {
+ // use the default timeout
+ $timeout = $this->getDefaultTimeout();
+ }
+
+ $curl = curl_init();
+
+ // set curl HEAD options
+ curl_setopt_array($curl, array(
+ // return the response body from curl_exec
+ CURLOPT_RETURNTRANSFER => true,
+
+ // get the output as binary data
+ CURLOPT_BINARYTRANSFER => true,
+
+ // we do not need the headers in the output, we get everything we need from curl_getinfo
+ CURLOPT_HEADER => false,
+
+ // this both sets the method to HEAD and says not to return a body
+ CURLOPT_NOBODY => true,
+
+ // set the URL
+ CURLOPT_URL => $url,
+
+ // set the timeout
+ CURLOPT_TIMEOUT => $timeout
+ ));
+
+ // set auth if appropriate
+ if ($this->_authString !== false)
+ {
+ curl_setopt_array($curl, array(
+ CURLOPT_USERPWD => $this->_authString,
+ CURLOPT_HTTPAUTH => CURLAUTH_BASIC
+ ));
+ }
+
+ // set proxy
+ if ($this->_proxy != '' && $this->_proxyPort != '')
+ {
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_PROXY => $this->_proxy,
+ CURLOPT_PROXYPORT => $this->_proxyPort
+ ));
+
+ if ($this->_proxyUsername != '' && $this->_proxyPassword != '')
+ {
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
+ CURLOPT_PROXYUSERPWD => "$this->_proxyUsername:$this->_proxyPassword"
+ ));
+ }
+ }
+
+ // make the request
+ $responseBody = curl_exec($curl);
+
+ // get info from the transfer
+ $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+ $contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
+
+ // close our curl session - we're done with it
+ curl_close($curl);
+
+ return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
+ }
+
+ public function performPostRequest($url, $postData, $contentType, $timeout = false)
+ {
+ // check the timeout value
+ if ($timeout === false || $timeout <= 0.0)
+ {
+ // use the default timeout
+ $timeout = $this->getDefaultTimeout();
+ }
+
+ $curl = curl_init();
+
+ // set curl POST options
+ curl_setopt_array($curl, array(
+ // return the response body from curl_exec
+ CURLOPT_RETURNTRANSFER => true,
+
+ // get the output as binary data
+ CURLOPT_BINARYTRANSFER => true,
+
+ // we do not need the headers in the output, we get everything we need from curl_getinfo
+ CURLOPT_HEADER => false,
+
+ // make sure we're POST
+ CURLOPT_POST => true,
+
+ // set the URL
+ CURLOPT_URL => $url,
+
+ // set the post data
+ CURLOPT_POSTFIELDS => $postData,
+
+ // set the content type
+ CURLOPT_HTTPHEADER => array("Content-Type: {$contentType}"),
+
+ // set the timeout
+ CURLOPT_TIMEOUT => $timeout
+ ));
+
+ // set auth if appropriate
+ if ($this->_authString !== false)
+ {
+ curl_setopt_array($curl, array(
+ CURLOPT_USERPWD => $this->_authString,
+ CURLOPT_HTTPAUTH => CURLAUTH_BASIC
+ ));
+ }
+
+ // set proxy
+ if ($this->_proxy != '' && $this->_proxyPort != '')
+ {
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_PROXY => $this->_proxy,
+ CURLOPT_PROXYPORT => $this->_proxyPort
+ ));
+
+ if ($this->_proxyUsername != '' && $this->_proxyPassword != '')
+ {
+ curl_setopt_array($this->_curl, array(
+ CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
+ CURLOPT_PROXYUSERPWD => "$this->_proxyUsername:$this->_proxyPassword"
+ ));
+ }
+ }
+
+ // make the request
+ $responseBody = curl_exec($curl);
+
+ // get info from the transfer
+ $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+ $contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
+
+ // close our curl session - we're done with it
+ curl_close($curl);
+
+ return new Apache_Solr_HttpTransport_Response($statusCode, $contentType, $responseBody);
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/FileGetContents.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/FileGetContents.php
new file mode 100644
index 0000000..817254e
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/FileGetContents.php
@@ -0,0 +1,258 @@
+_getContext = stream_context_create();
+ $this->_headContext = stream_context_create();
+ $this->_postContext = stream_context_create();
+ }
+
+ public function setAuthenticationCredentials($username, $password)
+ {
+ // compute the Authorization header
+ $this->_authHeader = "Authorization: Basic " . base64_encode($username . ":" . $password);
+
+ // set it now for get and head contexts
+ stream_context_set_option($this->_getContext, 'http', 'header', $this->_authHeader);
+ stream_context_set_option($this->_headContext, 'http', 'header', $this->_authHeader);
+
+ // for post, it'll be set each time, so add an \r\n so it can be concatenated
+ // with the Content-Type
+ $this->_authHeader .= "\r\n";
+ }
+
+ public function setProxy($proxy, $port, $username = '', $password = '')
+ {
+ $proxy = "tcp://$proxy:$port";
+
+ // set it now for get and head contexts
+ stream_context_set_option($this->_getContext, 'http', 'proxy', $proxy);
+ stream_context_set_option($this->_headContext, 'http', 'proxy', $proxy);
+
+ if ($username != '' && $password != '')
+ {
+ $authProxy = base64_encode("$username:$password");
+ $proxyAutorization = "Proxy-Authorization: Basic $authProxy";
+
+ // set it now for get and head contexts
+ stream_context_set_option($this->_getContext, 'http', 'header', $proxyAutorization);
+ stream_context_set_option($this->_headContext, 'http', 'header', $proxyAutorization);
+ }
+ }
+
+ public function performGetRequest($url, $timeout = false)
+ {
+ // set the timeout if specified
+ if ($timeout !== FALSE && $timeout > 0.0)
+ {
+ // timeouts with file_get_contents seem to need
+ // to be halved to work as expected
+ $timeout = (float) $timeout / 2;
+
+ stream_context_set_option($this->_getContext, 'http', 'timeout', $timeout);
+ }
+ else
+ {
+ // use the default timeout pulled from default_socket_timeout otherwise
+ stream_context_set_option($this->_getContext, 'http', 'timeout', $this->getDefaultTimeout());
+ }
+
+ // $http_response_headers will be updated by the call to file_get_contents later
+ // see http://us.php.net/manual/en/wrappers.http.php for documentation
+ // Unfortunately, it will still create a notice in analyzers if we don't set it here
+ $http_response_header = null;
+ $responseBody = @file_get_contents($url, false, $this->_getContext);
+
+ return $this->_getResponseFromParts($responseBody, $http_response_header);
+ }
+
+ public function performHeadRequest($url, $timeout = false)
+ {
+ stream_context_set_option($this->_headContext, array(
+ 'http' => array(
+ // set HTTP method
+ 'method' => 'HEAD',
+
+ // default timeout
+ 'timeout' => $this->getDefaultTimeout()
+ )
+ )
+ );
+
+ // set the timeout if specified
+ if ($timeout !== FALSE && $timeout > 0.0)
+ {
+ // timeouts with file_get_contents seem to need
+ // to be halved to work as expected
+ $timeout = (float) $timeout / 2;
+
+ stream_context_set_option($this->_headContext, 'http', 'timeout', $timeout);
+ }
+
+ // $http_response_headers will be updated by the call to file_get_contents later
+ // see http://us.php.net/manual/en/wrappers.http.php for documentation
+ // Unfortunately, it will still create a notice in analyzers if we don't set it here
+ $http_response_header = null;
+ $responseBody = @file_get_contents($url, false, $this->_headContext);
+
+ return $this->_getResponseFromParts($responseBody, $http_response_header);
+ }
+
+ public function performPostRequest($url, $rawPost, $contentType, $timeout = false)
+ {
+ stream_context_set_option($this->_postContext, array(
+ 'http' => array(
+ // set HTTP method
+ 'method' => 'POST',
+
+ // Add our posted content type (and auth header - see setAuthentication)
+ 'header' => "{$this->_authHeader}Content-Type: {$contentType}",
+
+ // the posted content
+ 'content' => $rawPost,
+
+ // default timeout
+ 'timeout' => $this->getDefaultTimeout()
+ )
+ )
+ );
+
+ // set the timeout if specified
+ if ($timeout !== FALSE && $timeout > 0.0)
+ {
+ // timeouts with file_get_contents seem to need
+ // to be halved to work as expected
+ $timeout = (float) $timeout / 2;
+
+ stream_context_set_option($this->_postContext, 'http', 'timeout', $timeout);
+ }
+
+ // $http_response_header will be updated by the call to file_get_contents later
+ // see http://us.php.net/manual/en/wrappers.http.php for documentation
+ // Unfortunately, it will still create a notice in analyzers if we don't set it here
+ $http_response_header = null;
+ $responseBody = @file_get_contents($url, false, $this->_postContext);
+
+ // reset content of post context to reclaim memory
+ stream_context_set_option($this->_postContext, 'http', 'content', '');
+
+ return $this->_getResponseFromParts($responseBody, $http_response_header);
+ }
+
+ private function _getResponseFromParts($rawResponse, $httpHeaders)
+ {
+ //Assume 0, false as defaults
+ $status = 0;
+ $contentType = false;
+
+ //iterate through headers for real status, type, and encoding
+ if (is_array($httpHeaders) && count($httpHeaders) > 0)
+ {
+ //look at the first headers for the HTTP status code
+ //and message (errors are usually returned this way)
+ //
+ //HTTP 100 Continue response can also be returned before
+ //the REAL status header, so we need look until we find
+ //the last header starting with HTTP
+ //
+ //the spec: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.1
+ //
+ //Thanks to Daniel Andersson for pointing out this oversight
+ while (isset($httpHeaders[0]) && substr($httpHeaders[0], 0, 4) == 'HTTP')
+ {
+ // we can do a intval on status line without the "HTTP/1.X " to get the code
+ $status = intval(substr($httpHeaders[0], 9));
+
+ // remove this from the headers so we can check for more
+ array_shift($httpHeaders);
+ }
+
+ //Look for the Content-Type response header and determine type
+ //and encoding from it (if possible - such as 'Content-Type: text/plain; charset=UTF-8')
+ foreach ($httpHeaders as $header)
+ {
+ // look for the header that starts appropriately
+ if (strncasecmp($header, 'Content-Type:', 13) == 0)
+ {
+ $contentType = substr($header, 13);
+ break;
+ }
+ }
+ }
+
+ return new Apache_Solr_HttpTransport_Response($status, $contentType, $rawResponse);
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Interface.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Interface.php
new file mode 100644
index 0000000..df2f3cb
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Interface.php
@@ -0,0 +1,116 @@
+, Donovan Jimenez
+ */
+
+// require Apache_Solr_HttpTransport_Response
+require_once(dirname(__FILE__) . '/Response.php');
+
+/**
+ * Interface that all Transport (HTTP Requester) implementations must implement. These
+ * Implementations can then be plugged into the Service instance in order to user their
+ * the desired method for making HTTP requests
+ */
+interface Apache_Solr_HttpTransport_Interface
+{
+ /**
+ * Get the current default timeout for all HTTP requests
+ *
+ * @return float
+ */
+ public function getDefaultTimeout();
+
+ /**
+ * Set the current default timeout for all HTTP requests
+ *
+ * @param float $timeout
+ */
+ public function setDefaultTimeout($timeout);
+
+ /**
+ * Set authentication credentials to pass along with the requests.
+ *
+ * These will be used to perform HTTP Basic authentication.
+ *
+ * @param string $username
+ * @param string $password
+ */
+ public function setAuthenticationCredentials($username, $password);
+
+ /**
+ * Set proxy.
+ *
+ * These will be used to perform HTTP connection througt proxy.
+ *
+ * @param string $proxy
+ * @param string $port
+ * @param string $username
+ * @param string $password
+ */
+ public function setProxy($proxy, $port, $username = '', $password = '');
+
+ /**
+ * Perform a GET HTTP operation with an optional timeout and return the response
+ * contents, use getLastResponseHeaders to retrieve HTTP headers
+ *
+ * @param string $url
+ * @param float $timeout
+ * @return Apache_Solr_HttpTransport_Response HTTP response
+ */
+ public function performGetRequest($url, $timeout = false);
+
+ /**
+ * Perform a HEAD HTTP operation with an optional timeout and return the response
+ * headers - NOTE: head requests have no response body
+ *
+ * @param string $url
+ * @param float $timeout
+ * @return Apache_Solr_HttpTransport_Response HTTP response
+ */
+ public function performHeadRequest($url, $timeout = false);
+
+ /**
+ * Perform a POST HTTP operation with an optional timeout and return the response
+ * contents, use getLastResponseHeaders to retrieve HTTP headers
+ *
+ * @param string $url
+ * @param string $rawPost
+ * @param string $contentType
+ * @param float $timeout
+ * @return Apache_Solr_HttpTransport_Response HTTP response
+ */
+ public function performPostRequest($url, $rawPost, $contentType, $timeout = false);
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Response.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Response.php
new file mode 100644
index 0000000..f4a9411
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransport/Response.php
@@ -0,0 +1,255 @@
+ "Communication Error",
+
+ // Informational 1XX
+ 100 => "Continue",
+ 101 => "Switching Protocols",
+
+ // Successful 2XX
+ 200 => "OK",
+ 201 => "Created",
+ 202 => "Accepted",
+ 203 => "Non-Authoritative Information",
+ 204 => "No Content",
+ 205 => "Reset Content",
+ 206 => "Partial Content",
+
+ // Redirection 3XX
+ 300 => "Multiple Choices",
+ 301 => "Moved Permanently",
+ 302 => "Found",
+ 303 => "See Other",
+ 304 => "Not Modified",
+ 305 => "Use Proxy",
+ 307 => "Temporary Redirect",
+
+ // Client Error 4XX
+ 400 => "Bad Request",
+ 401 => "Unauthorized",
+ 402 => "Payment Required",
+ 403 => "Forbidden",
+ 404 => "Not Found",
+ 405 => "Method Not Allowed",
+ 406 => "Not Acceptable",
+ 407 => "Proxy Authentication Required",
+ 408 => "Request Timeout",
+ 409 => "Conflict",
+ 410 => "Gone",
+ 411 => "Length Required",
+ 412 => "Precondition Failed",
+ 413 => "Request Entity Too Large",
+ 414 => "Request-URI Too Long",
+ 415 => "Unsupported Media Type",
+ 416 => "Request Range Not Satisfiable",
+ 417 => "Expectation Failed",
+
+ // Server Error 5XX
+ 500 => "Internal Server Error",
+ 501 => "Not Implemented",
+ 502 => "Bad Gateway",
+ 503 => "Service Unavailable",
+ 504 => "Gateway Timeout",
+ 505 => "HTTP Version Not Supported"
+ );
+
+ /**
+ * Get the HTTP status message based on status code
+ *
+ * @return string
+ */
+ public static function getDefaultStatusMessage($statusCode)
+ {
+ $statusCode = (int) $statusCode;
+
+ if (isset(self::$_defaultStatusMessages[$statusCode]))
+ {
+ return self::$_defaultStatusMessages[$statusCode];
+ }
+
+ return "Unknown Status";
+ }
+
+ /**
+ * The response's HTTP status code
+ *
+ * @var integer
+ */
+ private $_statusCode;
+
+ /**
+ * The response's HTTP status message
+ *
+ * @var string
+ */
+ private $_statusMessage;
+
+ /**
+ * The response's mime type
+ *
+ * @var string
+ */
+ private $_mimeType;
+
+ /**
+ * The response's character encoding
+ *
+ * @var string
+ */
+ private $_encoding;
+
+ /**
+ * The response's data
+ *
+ * @var string
+ */
+ private $_responseBody;
+
+ /**
+ * Construct a HTTP transport response
+ *
+ * @param integer $statusCode The HTTP status code
+ * @param string $contentType The VALUE of the Content-Type HTTP header
+ * @param string $responseBody The body of the HTTP response
+ */
+ public function __construct($statusCode, $contentType, $responseBody)
+ {
+ // set the status code, make sure its an integer
+ $this->_statusCode = (int) $statusCode;
+
+ // lookup up status message based on code
+ $this->_statusMessage = self::getDefaultStatusMessage($this->_statusCode);
+
+ // set the response body, it should always be a string
+ $this->_responseBody = (string) $responseBody;
+
+ // parse the content type header value for mimetype and encoding
+ // first set default values that will remain if we can't find
+ // what we're looking for in the content type
+ $this->_mimeType = "text/plain";
+ $this->_encoding = "UTF-8";
+
+ if ($contentType)
+ {
+ // now break apart the header to see if there's character encoding
+ $contentTypeParts = explode(';', $contentType, 2);
+
+ if (isset($contentTypeParts[0]))
+ {
+ $this->_mimeType = trim($contentTypeParts[0]);
+ }
+
+ if (isset($contentTypeParts[1]))
+ {
+ // we have a second part, split it further
+ $contentTypeParts = explode('=', $contentTypeParts[1]);
+
+ if (isset($contentTypeParts[1]))
+ {
+ $this->_encoding = trim($contentTypeParts[1]);
+ }
+ }
+ }
+ }
+
+ /**
+ * Get the status code of the response
+ *
+ * @return integer
+ */
+ public function getStatusCode()
+ {
+ return $this->_statusCode;
+ }
+
+ /**
+ * Get the status message of the response
+ *
+ * @return string
+ */
+ public function getStatusMessage()
+ {
+ return $this->_statusMessage;
+ }
+
+ /**
+ * Get the mimetype of the response body
+ *
+ * @return string
+ */
+ public function getMimeType()
+ {
+ return $this->_mimeType;
+ }
+
+ /**
+ * Get the charset encoding of the response body.
+ *
+ * @return string
+ */
+ public function getEncoding()
+ {
+ return $this->_encoding;
+ }
+
+ /**
+ * Get the raw response body
+ *
+ * @return string
+ */
+ public function getBody()
+ {
+ return $this->_responseBody;
+ }
+}
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransportException.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransportException.php
new file mode 100644
index 0000000..cba3d2d
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/HttpTransportException.php
@@ -0,0 +1,79 @@
+getHttpStatus()}' Status: {$response->getHttpStatusMessage()}", $response->getHttpStatus());
+
+ $this->_response = $response;
+ }
+
+ /**
+ * Get the response for which this exception was generated
+ *
+ * @return Apache_Solr_Response
+ */
+ public function getResponse()
+ {
+ return $this->_response;
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/InvalidArgumentException.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/InvalidArgumentException.php
new file mode 100644
index 0000000..be4e4e9
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/InvalidArgumentException.php
@@ -0,0 +1,50 @@
+= 5.2.0, Alternatively can be
+ * installed with PECL. Zend Framework also includes a purely PHP solution.
+ */
+class Apache_Solr_Response
+{
+ /**
+ * SVN Revision meta data for this class
+ */
+ const SVN_REVISION = '$Revision$';
+
+ /**
+ * SVN ID meta data for this class
+ */
+ const SVN_ID = '$Id$';
+
+ /**
+ * Holds the raw response used in construction
+ *
+ * @var Apache_Solr_HttpTransport_Response HTTP response
+ */
+ protected $_response;
+
+ /**
+ * Whether the raw response has been parsed
+ *
+ * @var boolean
+ */
+ protected $_isParsed = false;
+
+ /**
+ * Parsed representation of the data
+ *
+ * @var mixed
+ */
+ protected $_parsedData;
+
+ /**
+ * Data parsing flags. Determines what extra processing should be done
+ * after the data is initially converted to a data structure.
+ *
+ * @var boolean
+ */
+ protected $_createDocuments = true,
+ $_collapseSingleValueArrays = true;
+
+ /**
+ * Constructor. Takes the raw HTTP response body and the exploded HTTP headers
+ *
+ * @return Apache_Solr_HttpTransport_Response HTTP response
+ * @param boolean $createDocuments Whether to convert the documents json_decoded as stdClass instances to Apache_Solr_Document instances
+ * @param boolean $collapseSingleValueArrays Whether to make multivalued fields appear as single values
+ */
+ public function __construct(Apache_Solr_HttpTransport_Response $response, $createDocuments = true, $collapseSingleValueArrays = true)
+ {
+ $this->_response = $response;
+ $this->_createDocuments = (bool) $createDocuments;
+ $this->_collapseSingleValueArrays = (bool) $collapseSingleValueArrays;
+ }
+
+ /**
+ * Get the HTTP status code
+ *
+ * @return integer
+ */
+ public function getHttpStatus()
+ {
+ return $this->_response->getStatusCode();
+ }
+
+ /**
+ * Get the HTTP status message of the response
+ *
+ * @return string
+ */
+ public function getHttpStatusMessage()
+ {
+ return $this->_response->getStatusMessage();
+ }
+
+ /**
+ * Get content type of this Solr response
+ *
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->_response->getMimeType();
+ }
+
+ /**
+ * Get character encoding of this response. Should usually be utf-8, but just in case
+ *
+ * @return string
+ */
+ public function getEncoding()
+ {
+ return $this->_response->getEncoding();
+ }
+
+ /**
+ * Get the raw response as it was given to this object
+ *
+ * @return string
+ */
+ public function getRawResponse()
+ {
+ return $this->_response->getBody();
+ }
+
+ /**
+ * Magic get to expose the parsed data and to lazily load it
+ *
+ * @param string $key
+ * @return mixed
+ */
+ public function __get($key)
+ {
+ if (!$this->_isParsed)
+ {
+ $this->_parseData();
+ $this->_isParsed = true;
+ }
+
+ if (isset($this->_parsedData->$key))
+ {
+ return $this->_parsedData->$key;
+ }
+
+ return null;
+ }
+
+ /**
+ * Magic function for isset function on parsed data
+ *
+ * @param string $key
+ * @return boolean
+ */
+ public function __isset($key)
+ {
+ if (!$this->_isParsed)
+ {
+ $this->_parseData();
+ $this->_isParsed = true;
+ }
+
+ return isset($this->_parsedData->$key);
+ }
+
+ /**
+ * Parse the raw response into the parsed_data array for access
+ *
+ * @throws Apache_Solr_ParserException If the data could not be parsed
+ */
+ protected function _parseData()
+ {
+ //An alternative would be to use Zend_Json::decode(...)
+ $data = json_decode($this->_response->getBody());
+
+ // check that we receive a valid JSON response - we should never receive a null
+ if ($data === null)
+ {
+ throw new Apache_Solr_ParserException('Solr response does not appear to be valid JSON, please examine the raw response with getRawResponse() method');
+ }
+
+ //if we're configured to collapse single valued arrays or to convert them to Apache_Solr_Document objects
+ //and we have response documents, then try to collapse the values and / or convert them now
+ if (($this->_createDocuments || $this->_collapseSingleValueArrays) && isset($data->response) && is_array($data->response->docs))
+ {
+ $documents = array();
+
+ foreach ($data->response->docs as $originalDocument)
+ {
+ if ($this->_createDocuments)
+ {
+ $document = new Apache_Solr_Document();
+ }
+ else
+ {
+ $document = $originalDocument;
+ }
+
+ foreach ($originalDocument as $key => $value)
+ {
+ //If a result is an array with only a single
+ //value then its nice to be able to access
+ //it as if it were always a single value
+ if ($this->_collapseSingleValueArrays && is_array($value) && count($value) <= 1)
+ {
+ $value = array_shift($value);
+ }
+
+ $document->$key = $value;
+ }
+
+ $documents[] = $document;
+ }
+
+ $data->response->docs = $documents;
+ }
+
+ $this->_parsedData = $data;
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Service.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Service.php
new file mode 100644
index 0000000..c19308f
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Service.php
@@ -0,0 +1,1308 @@
+
+ * ...
+ * $solr = new Apache_Solr_Service(); //or explicitly new Apache_Solr_Service('localhost', 8180, '/solr')
+ *
+ * $solr->deleteByQuery('*:*'); //deletes ALL documents - be careful :)
+ *
+ * $document = new Apache_Solr_Document();
+ * $document->id = uniqid(); //or something else suitably unique
+ *
+ * $document->title = 'Some Title';
+ * $document->content = 'Some content for this wonderful document. Blah blah blah.';
+ *
+ * $solr->addDocument($document); //if you're going to be adding documents in bulk using addDocuments
+ * //with an array of documents is faster
+ *
+ * $solr->commit(); //commit to see the deletes and the document
+ * $solr->optimize(); //merges multiple segments into one
+ *
+ * //and the one we all care about, search!
+ * //any other common or custom parameters to the request handler can go in the
+ * //optional 4th array argument.
+ * $solr->search('content:blah', 0, 10, array('sort' => 'timestamp desc'));
+ * ...
+ *
+ */
+class Apache_Solr_Service
+{
+ /**
+ * SVN Revision meta data for this class
+ */
+ const SVN_REVISION = '$Revision$';
+
+ /**
+ * SVN ID meta data for this class
+ */
+ const SVN_ID = '$Id$';
+
+ /**
+ * SVN HeadURL meta data for this class
+ */
+ const SVN_URL = '$HeadURL$';
+
+ /**
+ * Response writer we'll request - JSON. See http://code.google.com/p/solr-php-client/issues/detail?id=6#c1 for reasoning
+ */
+ const SOLR_WRITER = 'json';
+
+ /**
+ * NamedList Treatment constants
+ */
+ const NAMED_LIST_FLAT = 'flat';
+ const NAMED_LIST_MAP = 'map';
+
+ /**
+ * Search HTTP Methods
+ */
+ const METHOD_GET = 'GET';
+ const METHOD_POST = 'POST';
+
+ /**
+ * Servlet mappings
+ */
+ const PING_SERVLET = 'admin/ping';
+ const UPDATE_SERVLET = 'update';
+ const SEARCH_SERVLET = 'select';
+ const ELEVATE_SERVLET = 'elevate';
+ const SYSTEM_SERVLET = 'admin/system';
+ const THREADS_SERVLET = 'admin/threads';
+ const EXTRACT_SERVLET = 'update/extract';
+
+ /**
+ * Server identification strings
+ *
+ * @var string
+ */
+ protected $_host, $_port, $_path;
+
+ /**
+ * Whether {@link Apache_Solr_Response} objects should create {@link Apache_Solr_Document}s in
+ * the returned parsed data
+ *
+ * @var boolean
+ */
+ protected $_createDocuments = true;
+
+ /**
+ * Whether {@link Apache_Solr_Response} objects should have multivalue fields with only a single value
+ * collapsed to appear as a single value would.
+ *
+ * @var boolean
+ */
+ protected $_collapseSingleValueArrays = true;
+
+ /**
+ * How NamedLists should be formatted in the output. This specifically effects facet counts. Valid values
+ * are {@link Apache_Solr_Service::NAMED_LIST_MAP} (default) or {@link Apache_Solr_Service::NAMED_LIST_FLAT}.
+ *
+ * @var string
+ */
+ protected $_namedListTreatment = self::NAMED_LIST_MAP;
+
+ /**
+ * Query delimiters. Someone might want to be able to change
+ * these (to use & instead of & for example), so I've provided them.
+ *
+ * @var string
+ */
+ protected $_queryDelimiter = '?', $_queryStringDelimiter = '&', $_queryBracketsEscaped = true;
+
+ /**
+ * Constructed servlet full path URLs
+ *
+ * @var string
+ */
+ protected $_pingUrl, $_updateUrl, $_searchUrl, $_elevateUrl, $_systemUrl, $_threadsUrl;
+
+ /**
+ * Keep track of whether our URLs have been constructed
+ *
+ * @var boolean
+ */
+ protected $_urlsInited = false;
+
+ /**
+ * HTTP Transport implementation (pluggable)
+ *
+ * @var Apache_Solr_HttpTransport_Interface
+ */
+ protected $_httpTransport = false;
+
+ /**
+ * Escape a value for special query characters such as ':', '(', ')', '*', '?', etc.
+ *
+ * NOTE: inside a phrase fewer characters need escaped, use {@link Apache_Solr_Service::escapePhrase()} instead
+ *
+ * @param string $value
+ * @return string
+ */
+ static public function escape($value)
+ {
+ //list taken from http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters
+ $pattern = '/(\+|-|&&|\|\||!|\(|\)|\{|}|\[|]|\^|"|~|\*|\?|:|\\\)/';
+ $replace = '\\\$1';
+
+ return preg_replace($pattern, $replace, $value);
+ }
+
+ /**
+ * Escape a value meant to be contained in a phrase for special query characters
+ *
+ * @param string $value
+ * @return string
+ */
+ static public function escapePhrase($value)
+ {
+ $pattern = '/("|\\\)/';
+ $replace = '\\\$1';
+
+ return preg_replace($pattern, $replace, $value);
+ }
+
+ /**
+ * Convenience function for creating phrase syntax from a value
+ *
+ * @param string $value
+ * @return string
+ */
+ static public function phrase($value)
+ {
+ return '"' . self::escapePhrase($value) . '"';
+ }
+
+ /**
+ * Constructor. All parameters are optional and will take on default values
+ * if not specified.
+ *
+ * @param string $host
+ * @param string $port
+ * @param string $path
+ * @param Apache_Solr_HttpTransport_Interface $httpTransport
+ */
+ public function __construct($host = 'localhost', $port = 8180, $path = '/solr/', $httpTransport = false)
+ {
+ $this->setHost($host);
+ $this->setPort($port);
+ $this->setPath($path);
+
+ $this->_initUrls();
+
+ if ($httpTransport)
+ {
+ $this->setHttpTransport($httpTransport);
+ }
+
+ // check that our php version is >= 5.1.3 so we can correct for http_build_query behavior later
+ $this->_queryBracketsEscaped = version_compare(phpversion(), '5.1.3', '>=');
+
+ $response = $this->system();
+ $ar = json_decode($response->getRawResponse(), true);
+ $this->version = $ar["lucene"]["solr-spec-version"];
+ }
+
+ public function getSolrVersion() {
+ return $this->version;
+ }
+
+ public function getSolrVersionMajor() {
+ return $this->version{0};
+ }
+
+ /**
+ * Return a valid http URL given this server's host, port and path and a provided servlet name
+ *
+ * @param string $servlet
+ * @return string
+ */
+ protected function _constructUrl($servlet, $params = array())
+ {
+ if (count($params))
+ {
+ //escape all parameters appropriately for inclusion in the query string
+ $escapedParams = array();
+
+ foreach ($params as $key => $value)
+ {
+ $escapedParams[] = urlencode($key) . '=' . urlencode($value);
+ }
+
+ $queryString = $this->_queryDelimiter . implode($this->_queryStringDelimiter, $escapedParams);
+ }
+ else
+ {
+ $queryString = '';
+ }
+
+ return 'http://' . $this->_host . ':' . $this->_port . $this->_path . $servlet . $queryString;
+ }
+
+ /**
+ * Construct the Full URLs for the three servlets we reference
+ */
+ protected function _initUrls()
+ {
+ //Initialize our full servlet URLs now that we have server information
+ $this->_extractUrl = $this->_constructUrl(self::EXTRACT_SERVLET);
+ $this->_pingUrl = $this->_constructUrl(self::PING_SERVLET);
+ $this->_searchUrl = $this->_constructUrl(self::SEARCH_SERVLET);
+ $this->_elevateUrl = $this->_constructUrl(self::ELEVATE_SERVLET);
+ $this->_systemUrl = $this->_constructUrl(self::SYSTEM_SERVLET, array('wt' => self::SOLR_WRITER));
+ $this->_threadsUrl = $this->_constructUrl(self::THREADS_SERVLET, array('wt' => self::SOLR_WRITER ));
+ $this->_updateUrl = $this->_constructUrl(self::UPDATE_SERVLET, array('wt' => self::SOLR_WRITER ));
+
+ $this->_urlsInited = true;
+ }
+
+ protected function _generateQueryString($params)
+ {
+ // use http_build_query to encode our arguments because its faster
+ // than urlencoding all the parts ourselves in a loop
+ //
+ // because http_build_query treats arrays differently than we want to, correct the query
+ // string by changing foo[#]=bar (# being an actual number) parameter strings to just
+ // multiple foo=bar strings. This regex should always work since '=' will be urlencoded
+ // anywhere else the regex isn't expecting it
+ //
+ // NOTE: before php 5.1.3 brackets were not url encoded by http_build query - we've checked
+ // the php version in the constructor and put the results in the instance variable. Also, before
+ // 5.1.2 the arg_separator parameter was not available, so don't use it
+ if ($this->_queryBracketsEscaped)
+ {
+ $queryString = http_build_query($params, null, $this->_queryStringDelimiter);
+ return preg_replace('/%5B(?:[0-9]|[1-9][0-9]+)%5D=/', '=', $queryString);
+ }
+ else
+ {
+ $queryString = http_build_query($params);
+ return preg_replace('/\\[(?:[0-9]|[1-9][0-9]+)\\]=/', '=', $queryString);
+ }
+ }
+
+ /**
+ * Central method for making a get operation against this Solr Server
+ *
+ * @param string $url
+ * @param float $timeout Read timeout in seconds
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If a non 200 response status is returned
+ */
+ protected function _sendRawGet($url, $timeout = FALSE)
+ {
+ $httpTransport = $this->getHttpTransport();
+
+ $httpResponse = $httpTransport->performGetRequest($url, $timeout);
+ $solrResponse = new Apache_Solr_Response($httpResponse, $this->_createDocuments, $this->_collapseSingleValueArrays);
+
+ if ($solrResponse->getHttpStatus() != 200)
+ {
+ throw new Apache_Solr_HttpTransportException($solrResponse);
+ }
+
+ return $solrResponse;
+ }
+
+ /**
+ * Central method for making a post operation against this Solr Server
+ *
+ * @param string $url
+ * @param string $rawPost
+ * @param float $timeout Read timeout in seconds
+ * @param string $contentType
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If a non 200 response status is returned
+ */
+ protected function _sendRawPost($url, $rawPost, $timeout = FALSE, $contentType = 'text/xml; charset=UTF-8')
+ {
+ $httpTransport = $this->getHttpTransport();
+
+ $httpResponse = $httpTransport->performPostRequest($url, $rawPost, $contentType, $timeout);
+ $solrResponse = new Apache_Solr_Response($httpResponse, $this->_createDocuments, $this->_collapseSingleValueArrays);
+
+ if ($solrResponse->getHttpStatus() != 200)
+ {
+ throw new Apache_Solr_HttpTransportException($solrResponse);
+ }
+
+ return $solrResponse;
+ }
+
+ /**
+ * Returns the set host
+ *
+ * @return string
+ */
+ public function getHost()
+ {
+ return $this->_host;
+ }
+
+ /**
+ * Set the host used. If empty will fallback to constants
+ *
+ * @param string $host
+ *
+ * @throws Apache_Solr_InvalidArgumentException If the host parameter is empty
+ */
+ public function setHost($host)
+ {
+ //Use the provided host or use the default
+ if (empty($host))
+ {
+ throw new Apache_Solr_InvalidArgumentException('Host parameter is empty');
+ }
+ else
+ {
+ $this->_host = $host;
+ }
+
+ if ($this->_urlsInited)
+ {
+ $this->_initUrls();
+ }
+ }
+
+ /**
+ * Get the set port
+ *
+ * @return integer
+ */
+ public function getPort()
+ {
+ return $this->_port;
+ }
+
+ /**
+ * Set the port used. If empty will fallback to constants
+ *
+ * @param integer $port
+ *
+ * @throws Apache_Solr_InvalidArgumentException If the port parameter is empty
+ */
+ public function setPort($port)
+ {
+ //Use the provided port or use the default
+ $port = (int) $port;
+
+ if ($port <= 0)
+ {
+ throw new Apache_Solr_InvalidArgumentException('Port is not a valid port number');
+ }
+ else
+ {
+ $this->_port = $port;
+ }
+
+ if ($this->_urlsInited)
+ {
+ $this->_initUrls();
+ }
+ }
+
+ /**
+ * Get the set path.
+ *
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->_path;
+ }
+
+ /**
+ * Set the path used. If empty will fallback to constants
+ *
+ * @param string $path
+ */
+ public function setPath($path)
+ {
+ $path = trim($path, '/');
+
+ if (strlen($path) > 0)
+ {
+ $this->_path = '/' . $path . '/';
+ }
+ else
+ {
+ $this->_path = '/';
+ }
+
+ if ($this->_urlsInited)
+ {
+ $this->_initUrls();
+ }
+ }
+
+ /**
+ * Get the current configured HTTP Transport
+ *
+ * @return HttpTransportInterface
+ */
+ public function getHttpTransport()
+ {
+ // lazy load a default if one has not be set
+ if ($this->_httpTransport === false)
+ {
+ require_once(dirname(__FILE__) . '/HttpTransport/FileGetContents.php');
+
+ $this->_httpTransport = new Apache_Solr_HttpTransport_FileGetContents();
+ }
+
+ return $this->_httpTransport;
+ }
+
+ /**
+ * Set the HTTP Transport implemenation that will be used for all HTTP requests
+ *
+ * @param Apache_Solr_HttpTransport_Interface
+ */
+ public function setHttpTransport(Apache_Solr_HttpTransport_Interface $httpTransport)
+ {
+ $this->_httpTransport = $httpTransport;
+ }
+
+ /**
+ * Set the create documents flag. This determines whether {@link Apache_Solr_Response} objects will
+ * parse the response and create {@link Apache_Solr_Document} instances in place.
+ *
+ * @param boolean $createDocuments
+ */
+ public function setCreateDocuments($createDocuments)
+ {
+ $this->_createDocuments = (bool) $createDocuments;
+ }
+
+ /**
+ * Get the current state of teh create documents flag.
+ *
+ * @return boolean
+ */
+ public function getCreateDocuments()
+ {
+ return $this->_createDocuments;
+ }
+
+ /**
+ * Set the collapse single value arrays flag.
+ *
+ * @param boolean $collapseSingleValueArrays
+ */
+ public function setCollapseSingleValueArrays($collapseSingleValueArrays)
+ {
+ $this->_collapseSingleValueArrays = (bool) $collapseSingleValueArrays;
+ }
+
+ /**
+ * Get the current state of the collapse single value arrays flag.
+ *
+ * @return boolean
+ */
+ public function getCollapseSingleValueArrays()
+ {
+ return $this->_collapseSingleValueArrays;
+ }
+
+ /**
+ * Get the current default timeout setting (initially the default_socket_timeout ini setting)
+ * in seconds
+ *
+ * @return float
+ *
+ * @deprecated Use the getDefaultTimeout method on the HTTP transport implementation
+ */
+ public function getDefaultTimeout()
+ {
+ return $this->getHttpTransport()->getDefaultTimeout();
+ }
+
+ /**
+ * Set the default timeout for all calls that aren't passed a specific timeout
+ *
+ * @param float $timeout Timeout value in seconds
+ *
+ * @deprecated Use the setDefaultTimeout method on the HTTP transport implementation
+ */
+ public function setDefaultTimeout($timeout)
+ {
+ $this->getHttpTransport()->setDefaultTimeout($timeout);
+ }
+
+ /**
+ * Convenience method to set authentication credentials on the current HTTP transport implementation
+ *
+ * @param string $username
+ * @param string $password
+ */
+ public function setAuthenticationCredentials($username, $password)
+ {
+ $this->getHttpTransport()->setAuthenticationCredentials($username, $password);
+ }
+
+ /**
+ * Convenience method to set proxy
+ *
+ * @param string $username
+ * @param string $password
+ */
+ public function setProxy($proxy, $port, $username = '', $password = '')
+ {
+ $this->getHttpTransport()->setProxy($proxy, $port, $username, $password);
+ }
+
+ /**
+ * Set how NamedLists should be formatted in the response data. This mainly effects
+ * the facet counts format.
+ *
+ * @param string $namedListTreatment
+ * @throws Apache_Solr_InvalidArgumentException If invalid option is set
+ */
+ public function setNamedListTreatment($namedListTreatment)
+ {
+ switch ((string) $namedListTreatment)
+ {
+ case Apache_Solr_Service::NAMED_LIST_FLAT:
+ $this->_namedListTreatment = Apache_Solr_Service::NAMED_LIST_FLAT;
+ break;
+
+ case Apache_Solr_Service::NAMED_LIST_MAP:
+ $this->_namedListTreatment = Apache_Solr_Service::NAMED_LIST_MAP;
+ break;
+
+ default:
+ throw new Apache_Solr_InvalidArgumentException('Not a valid named list treatement option');
+ }
+ }
+
+ /**
+ * Get the current setting for named list treatment.
+ *
+ * @return string
+ */
+ public function getNamedListTreatment()
+ {
+ return $this->_namedListTreatment;
+ }
+
+ /**
+ * Set the string used to separate the path form the query string.
+ * Defaulted to '?'
+ *
+ * @param string $queryDelimiter
+ */
+ public function setQueryDelimiter($queryDelimiter)
+ {
+ $this->_queryDelimiter = $queryDelimiter;
+ }
+
+ /**
+ * Set the string used to separate the parameters in thequery string
+ * Defaulted to '&'
+ *
+ * @param string $queryStringDelimiter
+ */
+ public function setQueryStringDelimiter($queryStringDelimiter)
+ {
+ $this->_queryStringDelimiter = $queryStringDelimiter;
+ }
+
+ /**
+ * Call the /admin/ping servlet, can be used to quickly tell if a connection to the
+ * server is able to be made.
+ *
+ * @param float $timeout maximum time to wait for ping in seconds, -1 for unlimited (default is 2)
+ * @return float Actual time taken to ping the server, FALSE if timeout or HTTP error status occurs
+ */
+ public function ping($timeout = 2)
+ {
+ $start = microtime(true);
+
+ $httpTransport = $this->getHttpTransport();
+
+ $httpResponse = $httpTransport->performHeadRequest($this->_pingUrl, $timeout);
+ $solrResponse = new Apache_Solr_Response($httpResponse, $this->_createDocuments, $this->_collapseSingleValueArrays);
+
+ if ($solrResponse->getHttpStatus() == 200)
+ {
+ return microtime(true) - $start;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Call the /admin/system servlet and retrieve system information about Solr
+ *
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function system()
+ {
+ return $this->_sendRawGet($this->_systemUrl);
+ }
+
+ /**
+ * Call the /admin/threads servlet and retrieve information about all threads in the
+ * Solr servlet's thread group. Useful for diagnostics.
+ *
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function threads()
+ {
+ return $this->_sendRawGet($this->_threadsUrl);
+ }
+
+ /**
+ * Raw Add Method. Takes a raw post body and sends it to the update service. Post body
+ * should be a complete and well formed "add" xml document.
+ *
+ * @param string $rawPost
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function add($rawPost)
+ {
+ return $this->_sendRawPost($this->_updateUrl, $rawPost);
+ }
+
+ /**
+ * Add a Solr Document to the index
+ *
+ * @param Apache_Solr_Document $document
+ * @param boolean $allowDups
+ * @param boolean $overwritePending
+ * @param boolean $overwriteCommitted
+ * @param integer $commitWithin The number of milliseconds that a document must be committed within, see @{link http://wiki.apache.org/solr/UpdateXmlMessages#The_Update_Schema} for details. If left empty this property will not be set in the request.
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function addDocument(Apache_Solr_Document $document, $allowDups = false, $overwritePending = true, $overwriteCommitted = true, $commitWithin = 0)
+ {
+ $dupValue = $allowDups ? 'true' : 'false';
+ $pendingValue = $overwritePending ? 'true' : 'false';
+ $committedValue = $overwriteCommitted ? 'true' : 'false';
+
+ $commitWithin = (int) $commitWithin;
+ $commitWithinString = $commitWithin > 0 ? " commitWithin=\"{$commitWithin}\"" : '';
+
+ $rawPost = "";
+ $rawPost .= $this->_documentToXmlFragment($document);
+ $rawPost .= '';
+
+ return $this->add($rawPost);
+ }
+
+ /**
+ * Add an array of Solr Documents to the index all at once
+ *
+ * @param array $documents Should be an array of Apache_Solr_Document instances
+ * @param boolean $allowDups
+ * @param boolean $overwritePending
+ * @param boolean $overwriteCommitted
+ * @param integer $commitWithin The number of milliseconds that a document must be committed within, see @{link http://wiki.apache.org/solr/UpdateXmlMessages#The_Update_Schema} for details. If left empty this property will not be set in the request.
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function addDocuments($documents, $allowDups = false, $overwritePending = true, $overwriteCommitted = true, $commitWithin = 0)
+ {
+ $dupValue = $allowDups ? 'true' : 'false';
+ $pendingValue = $overwritePending ? 'true' : 'false';
+ $committedValue = $overwriteCommitted ? 'true' : 'false';
+
+ $commitWithin = (int) $commitWithin;
+ $commitWithinString = $commitWithin > 0 ? " commitWithin=\"{$commitWithin}\"" : '';
+
+ $rawPost = "";
+
+ foreach ($documents as $document)
+ {
+ if ($document instanceof Apache_Solr_Document)
+ {
+ $rawPost .= $this->_documentToXmlFragment($document);
+ }
+ }
+
+ $rawPost .= '';
+
+ return $this->add($rawPost);
+ }
+
+ /**
+ * Create an XML fragment from a {@link Apache_Solr_Document} instance appropriate for use inside a Solr add call
+ *
+ * @return string
+ */
+ protected function _documentToXmlFragment(Apache_Solr_Document $document)
+ {
+ $xml = 'getBoost() !== false)
+ {
+ $xml .= ' boost="' . $document->getBoost() . '"';
+ }
+
+ $xml .= '>';
+
+ foreach ($document as $key => $value)
+ {
+ $fieldBoost = $document->getFieldBoost($key);
+ $key = htmlspecialchars($key, ENT_QUOTES, 'UTF-8');
+
+ if (is_array($value))
+ {
+ foreach ($value as $multivalue)
+ {
+ $xml .= '';
+ }
+ }
+ else
+ {
+ $xml .= '';
+ }
+ }
+
+ $xml .= '';
+
+ // replace any control characters to avoid Solr XML parser exception
+ return $this->_stripCtrlChars($xml);
+ }
+
+ /**
+ * Replace control (non-printable) characters from string that are invalid to Solr's XML parser with a space.
+ *
+ * @param string $string
+ * @return string
+ */
+ protected function _stripCtrlChars($string)
+ {
+ // See: http://w3.org/International/questions/qa-forms-utf-8.html
+ // Printable utf-8 does not include any of these chars below x7F
+ return preg_replace('@[\x00-\x08\x0B\x0C\x0E-\x1F]@', ' ', $string);
+ }
+
+ /**
+ * Send a commit command. Will be synchronous unless both wait parameters are set to false.
+ *
+ * @param boolean $expungeDeletes Defaults to false, merge segments with deletes away
+ * @param boolean $waitFlush Defaults to true, block until index changes are flushed to disk
+ * @param boolean $waitSearcher Defaults to true, block until a new searcher is opened and registered as the main query searcher, making the changes visible
+ * @param float $timeout Maximum expected duration (in seconds) of the commit operation on the server (otherwise, will throw a communication exception). Defaults to 1 hour
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function commit($expungeDeletes = false, $waitFlush = true, $waitSearcher = true, $timeout = 3600)
+ {
+ $expungeValue = $expungeDeletes ? 'true' : 'false';
+ $flushValue = $waitFlush ? 'true' : 'false';
+ $searcherValue = $waitSearcher ? 'true' : 'false';
+
+ $rawPost = 'getSolrVersionMajor())<=3) {
+ $rawPost .= 'waitFlush="' . $flushValue . '" ';
+ }
+ $rawPost .= 'waitSearcher="' . $searcherValue . '" />';
+
+ return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);
+ }
+
+ /**
+ * Raw Delete Method. Takes a raw post body and sends it to the update service. Body should be
+ * a complete and well formed "delete" xml document
+ *
+ * @param string $rawPost Expected to be utf-8 encoded xml document
+ * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function delete($rawPost, $timeout = 3600)
+ {
+ return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);
+ }
+
+ /**
+ * Create a delete document based on document ID
+ *
+ * @param string $id Expected to be utf-8 encoded
+ * @param boolean $fromPending
+ * @param boolean $fromCommitted
+ * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function deleteById($id, $fromPending = true, $fromCommitted = true, $timeout = 3600)
+ {
+ $pendingValue = $fromPending ? 'true' : 'false';
+ $committedValue = $fromCommitted ? 'true' : 'false';
+
+ //escape special xml characters
+ $id = htmlspecialchars($id, ENT_NOQUOTES, 'UTF-8');
+
+ $rawPost = '' . $id . '';
+
+ return $this->delete($rawPost, $timeout);
+ }
+
+ /**
+ * Create and post a delete document based on multiple document IDs.
+ *
+ * @param array $ids Expected to be utf-8 encoded strings
+ * @param boolean $fromPending
+ * @param boolean $fromCommitted
+ * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function deleteByMultipleIds($ids, $fromPending = true, $fromCommitted = true, $timeout = 3600)
+ {
+ $pendingValue = $fromPending ? 'true' : 'false';
+ $committedValue = $fromCommitted ? 'true' : 'false';
+
+ $rawPost = '';
+
+ foreach ($ids as $id)
+ {
+ //escape special xml characters
+ $id = htmlspecialchars($id, ENT_NOQUOTES, 'UTF-8');
+
+ $rawPost .= '' . $id . '';
+ }
+
+ $rawPost .= '';
+
+ return $this->delete($rawPost, $timeout);
+ }
+
+ /**
+ * Create a delete document based on a query and submit it
+ *
+ * @param string $rawQuery Expected to be utf-8 encoded
+ * @param boolean $fromPending
+ * @param boolean $fromCommitted
+ * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function deleteByQuery($rawQuery, $fromPending = true, $fromCommitted = true, $timeout = 3600)
+ {
+ $pendingValue = $fromPending ? 'true' : 'false';
+ $committedValue = $fromCommitted ? 'true' : 'false';
+
+ // escape special xml characters
+ $rawQuery = htmlspecialchars($rawQuery, ENT_NOQUOTES, 'UTF-8');
+
+ $rawPost = '' . $rawQuery . '';
+
+ return $this->delete($rawPost, $timeout);
+ }
+
+ /**
+ * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
+ * to use Solr Cell and what parameters are available.
+ *
+ * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
+ * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
+ * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
+ * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
+ *
+ * @param string $file Path to file to extract data from
+ * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
+ * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
+ * @param string $mimetype optional mimetype specification (for the file being extracted)
+ *
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_InvalidArgumentException if $file, $params, or $document are invalid.
+ */
+ public function extract($file, $params = array(), $document = null, $mimetype = 'application/octet-stream')
+ {
+ // check if $params is an array (allow null for default empty array)
+ if (!is_null($params))
+ {
+ if (!is_array($params))
+ {
+ throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
+ }
+ }
+ else
+ {
+ $params = array();
+ }
+
+ // if $file is an http request, defer to extractFromUrl instead
+ if (substr($file, 0, 7) == 'http://' || substr($file, 0, 8) == 'https://')
+ {
+ return $this->extractFromUrl($file, $params, $document, $mimetype);
+ }
+
+ // read the contents of the file
+ $contents = @file_get_contents($file);
+
+ if ($contents !== false)
+ {
+ // add the resource.name parameter if not specified
+ if (!isset($params['resource.name']))
+ {
+ $params['resource.name'] = basename($file);
+ }
+
+ // delegate the rest to extractFromString
+ return $this->extractFromString($contents, $params, $document, $mimetype);
+ }
+ else
+ {
+ throw new Apache_Solr_InvalidArgumentException("File '{$file}' is empty or could not be read");
+ }
+ }
+
+ /**
+ * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
+ * to use Solr Cell and what parameters are available.
+ *
+ * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
+ * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
+ * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
+ * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
+ *
+ * @param string $data Data that will be passed to Solr Cell
+ * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
+ * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
+ * @param string $mimetype optional mimetype specification (for the file being extracted)
+ *
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_InvalidArgumentException if $file, $params, or $document are invalid.
+ *
+ * @todo Should be using multipart/form-data to post parameter values, but I could not get my implementation to work. Needs revisisted.
+ */
+ public function extractFromString($data, $params = array(), $document = null, $mimetype = 'application/octet-stream')
+ {
+ // check if $params is an array (allow null for default empty array)
+ if (!is_null($params))
+ {
+ if (!is_array($params))
+ {
+ throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
+ }
+ }
+ else
+ {
+ $params = array();
+ }
+
+ // make sure we receive our response in JSON and have proper name list treatment
+ $params['wt'] = self::SOLR_WRITER;
+ $params['json.nl'] = $this->_namedListTreatment;
+
+ // check if $document is an Apache_Solr_Document instance
+ if (!is_null($document) && $document instanceof Apache_Solr_Document)
+ {
+ // iterate document, adding literal.* and boost.* fields to $params as appropriate
+ foreach ($document as $field => $fieldValue)
+ {
+ // check if we need to add a boost.* parameters
+ $fieldBoost = $document->getFieldBoost($field);
+
+ if ($fieldBoost !== false)
+ {
+ $params["boost.{$field}"] = $fieldBoost;
+ }
+
+ // add the literal.* parameter
+ $params["literal.{$field}"] = $fieldValue;
+ }
+ }
+
+ // params will be sent to SOLR in the QUERY STRING
+ $queryString = $this->_generateQueryString($params);
+
+ // the file contents will be sent to SOLR as the POST BODY - we use application/octect-stream as default mimetype
+ return $this->_sendRawPost($this->_extractUrl . $this->_queryDelimiter . $queryString, $data, false, $mimetype);
+ }
+
+ /**
+ * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
+ * to use Solr Cell and what parameters are available.
+ *
+ * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
+ * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
+ * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
+ * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
+ *
+ * @param string $url URL
+ * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
+ * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
+ * @param string $mimetype optional mimetype specification (for the file being extracted)
+ *
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_InvalidArgumentException if $url, $params, or $document are invalid.
+ */
+ public function extractFromUrl($url, $params = array(), $document = null, $mimetype = 'application/octet-stream')
+ {
+ // check if $params is an array (allow null for default empty array)
+ if (!is_null($params))
+ {
+ if (!is_array($params))
+ {
+ throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
+ }
+ }
+ else
+ {
+ $params = array();
+ }
+
+ $httpTransport = $this->getHttpTransport();
+
+ // read the contents of the URL using our configured Http Transport and default timeout
+ $httpResponse = $httpTransport->performGetRequest($url);
+
+ // check that its a 200 response
+ if ($httpResponse->getStatusCode() == 200)
+ {
+ // add the resource.name parameter if not specified
+ if (!isset($params['resource.name']))
+ {
+ $params['resource.name'] = $url;
+ }
+
+ // delegate the rest to extractFromString
+ return $this->extractFromString($httpResponse->getBody(), $params, $document, $mimetype);
+ }
+ else
+ {
+ throw new Apache_Solr_InvalidArgumentException("URL '{$url}' returned non 200 response code");
+ }
+ }
+
+ /**
+ * Send an optimize command. Will be synchronous unless both wait parameters are set
+ * to false.
+ *
+ * @param boolean $waitFlush
+ * @param boolean $waitSearcher
+ * @param float $timeout Maximum expected duration of the commit operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function optimize($waitFlush = true, $waitSearcher = true, $timeout = 3600)
+ {
+ $flushValue = $waitFlush ? 'true' : 'false';
+ $searcherValue = $waitSearcher ? 'true' : 'false';
+
+ $rawPost = 'getSolrVersionMajor())<=3) {
+ $rawPost .= 'waitFlush="' . $flushValue . '" ';
+ }
+ $rawPost .= 'waitSearcher="' . $searcherValue . '" />';
+
+ return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);
+ }
+
+ /**
+ * Simple Search interface
+ *
+ * @param string $query The raw query string
+ * @param int $offset The starting offset for result documents
+ * @param int $limit The maximum number of result documents to return
+ * @param array $params key / value pairs for other query parameters (see Solr documentation), use arrays for parameter keys used more than once (e.g. facet.field)
+ * @param string $method The HTTP method (Apache_Solr_Service::METHOD_GET or Apache_Solr_Service::METHOD::POST)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ * @throws Apache_Solr_InvalidArgumentException If an invalid HTTP method is used
+ */
+ public function search($query, $offset = 0, $limit = 10, $params = array(), $method = self::METHOD_GET)
+ {
+ // ensure params is an array
+ if (!is_null($params))
+ {
+ if (!is_array($params))
+ {
+ // params was specified but was not an array - invalid
+ throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
+ }
+ }
+ else
+ {
+ $params = array();
+ }
+
+ // construct our full parameters
+
+ // common parameters in this interface
+ $params['wt'] = self::SOLR_WRITER;
+ $params['json.nl'] = $this->_namedListTreatment;
+
+ $params['q'] = $query;
+ $params['start'] = $offset;
+ $params['rows'] = $limit;
+
+ $queryString = $this->_generateQueryString($params);
+
+ if (!empty($params['qt'])) {
+ $url = $this->_constructUrl($params['qt']);
+ unset($params['qt']);
+ } else {
+ $url = $this->_searchUrl;
+ }
+
+ if ($method == self::METHOD_GET)
+ {
+ return $this->_sendRawGet($url . $this->_queryDelimiter . $queryString);
+ }
+ else if ($method == self::METHOD_POST)
+ {
+ return $this->_sendRawPost($url, $queryString, FALSE, 'application/x-www-form-urlencoded; charset=UTF-8');
+ }
+ else
+ {
+ throw new Apache_Solr_InvalidArgumentException("Unsupported method '$method', please use the Apache_Solr_Service::METHOD_* constants");
+ }
+ }
+
+ /**
+ * Simple Elevate interface
+ *
+ * @param string $query The raw query string
+ * @param int $offset The starting offset for result documents
+ * @param int $limit The maximum number of result documents to return
+ * @param array $params key / value pairs for other query parameters (see Solr documentation), use arrays for parameter keys used more than once (e.g. facet.field)
+ * @param string $method The HTTP method (Apache_Solr_Service::METHOD_GET or Apache_Solr_Service::METHOD::POST)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ * @throws Apache_Solr_InvalidArgumentException If an invalid HTTP method is used
+ */
+ public function elevate($query, $params = array(), $method = self::METHOD_GET)
+ {
+ // ensure params is an array
+ if (!is_null($params))
+ {
+ if (!is_array($params))
+ {
+ // params was specified but was not an array - invalid
+ throw new Apache_Solr_InvalidArgumentException("\$params must be a valid array or null");
+ }
+ }
+ else
+ {
+ $params = array();
+ }
+
+ // construct our full parameters
+
+ // common parameters in this interface
+ $params['wt'] = self::SOLR_WRITER;
+ $params['json.nl'] = $this->_namedListTreatment;
+
+ $params['q'] = $query;
+ $params['enableElevation'] = 'true';
+ //$params['exclusive'] = 'true';
+ //$params['debugQuery'] = 'true';
+
+ $queryString = $this->_generateQueryString($params);
+
+ if ($method == self::METHOD_GET)
+ {
+ return $this->_sendRawGet($this->_elevateUrl . $this->_queryDelimiter . $queryString);
+ }
+ else if ($method == self::METHOD_POST)
+ {
+ return $this->_sendRawPost($this->_elevateUrl, $queryString, FALSE, 'application/x-www-form-urlencoded; charset=UTF-8');
+ }
+ else
+ {
+ throw new Apache_Solr_InvalidArgumentException("Unsupported method '$method', please use the Apache_Solr_Service::METHOD_* constants");
+ }
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Service/Balancer.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Service/Balancer.php
new file mode 100644
index 0000000..a5d2c88
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/Apache/Solr/Service/Balancer.php
@@ -0,0 +1,918 @@
+addReadService($service);
+ }
+
+ //setup writeable services
+ foreach ($writeableServices as $service)
+ {
+ $this->addWriteService($service);
+ }
+ }
+
+ public function setReadPingTimeout($timeout)
+ {
+ $this->_readPingTimeout = $timeout;
+ }
+
+ public function setWritePingTimeout($timeout)
+ {
+ $this->_writePingTimeout = $timeout;
+ }
+
+ public function setUseBackoff($enable)
+ {
+ $this->_useBackoff = $enable;
+ }
+
+ /**
+ * Generates a service ID
+ *
+ * @param string $host
+ * @param integer $port
+ * @param string $path
+ * @return string
+ */
+ protected function _getServiceId($host, $port, $path)
+ {
+ return $host . ':' . $port . $path;
+ }
+
+ /**
+ * Adds a service instance or service descriptor (if it is already
+ * not added)
+ *
+ * @param mixed $service
+ *
+ * @throws Apache_Solr_InvalidArgumentException If service descriptor is not valid
+ */
+ public function addReadService($service)
+ {
+ if ($service instanceof Apache_Solr_Service)
+ {
+ $id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
+
+ $this->_readableServices[$id] = $service;
+ }
+ else if (is_array($service))
+ {
+ if (isset($service['host']) && isset($service['port']) && isset($service['path']))
+ {
+ $id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
+
+ $this->_readableServices[$id] = $service;
+ }
+ else
+ {
+ throw new Apache_Solr_InvalidArgumentException('A Readable Service description array does not have all required elements of host, port, and path');
+ }
+ }
+ }
+
+ /**
+ * Removes a service instance or descriptor from the available services
+ *
+ * @param mixed $service
+ *
+ * @throws Apache_Solr_InvalidArgumentException If service descriptor is not valid
+ */
+ public function removeReadService($service)
+ {
+ $id = '';
+
+ if ($service instanceof Apache_Solr_Service)
+ {
+ $id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
+ }
+ else if (is_array($service))
+ {
+ if (isset($service['host']) && isset($service['port']) && isset($service['path']))
+ {
+ $id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
+ }
+ else
+ {
+ throw new Apache_Solr_InvalidArgumentException('A Readable Service description array does not have all required elements of host, port, and path');
+ }
+ }
+ else if (is_string($service))
+ {
+ $id = $service;
+ }
+
+ if ($id && isset($this->_readableServices[$id]))
+ {
+ unset($this->_readableServices[$id]);
+ }
+ }
+
+ /**
+ * Adds a service instance or service descriptor (if it is already
+ * not added)
+ *
+ * @param mixed $service
+ *
+ * @throws Apache_Solr_InvalidArgumentException If service descriptor is not valid
+ */
+ public function addWriteService($service)
+ {
+ if ($service instanceof Apache_Solr_Service)
+ {
+ $id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
+
+ $this->_writeableServices[$id] = $service;
+ }
+ else if (is_array($service))
+ {
+ if (isset($service['host']) && isset($service['port']) && isset($service['path']))
+ {
+ $id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
+
+ $this->_writeableServices[$id] = $service;
+ }
+ else
+ {
+ throw new Apache_Solr_InvalidArgumentException('A Writeable Service description array does not have all required elements of host, port, and path');
+ }
+ }
+ }
+
+ /**
+ * Removes a service instance or descriptor from the available services
+ *
+ * @param mixed $service
+ *
+ * @throws Apache_Solr_InvalidArgumentException If service descriptor is not valid
+ */
+ public function removeWriteService($service)
+ {
+ $id = '';
+
+ if ($service instanceof Apache_Solr_Service)
+ {
+ $id = $this->_getServiceId($service->getHost(), $service->getPort(), $service->getPath());
+ }
+ else if (is_array($service))
+ {
+ if (isset($service['host']) && isset($service['port']) && isset($service['path']))
+ {
+ $id = $this->_getServiceId((string)$service['host'], (int)$service['port'], (string)$service['path']);
+ }
+ else
+ {
+ throw new Apache_Solr_InvalidArgumentException('A Readable Service description array does not have all required elements of host, port, and path');
+ }
+ }
+ else if (is_string($service))
+ {
+ $id = $service;
+ }
+
+ if ($id && isset($this->_writeableServices[$id]))
+ {
+ unset($this->_writeableServices[$id]);
+ }
+ }
+
+ /**
+ * Iterate through available read services and select the first with a ping
+ * that satisfies configured timeout restrictions (or the default)
+ *
+ * @return Apache_Solr_Service
+ *
+ * @throws Apache_Solr_NoServiceAvailableException If there are no read services that meet requirements
+ */
+ protected function _selectReadService($forceSelect = false)
+ {
+ if (!$this->_currentReadService || !isset($this->_readableServices[$this->_currentReadService]) || $forceSelect)
+ {
+ if ($this->_currentReadService && isset($this->_readableServices[$this->_currentReadService]) && $forceSelect)
+ {
+ // we probably had a communication error, ping the current read service, remove it if it times out
+ if ($this->_readableServices[$this->_currentReadService]->ping($this->_readPingTimeout) === false)
+ {
+ $this->removeReadService($this->_currentReadService);
+ }
+ }
+
+ if (count($this->_readableServices))
+ {
+ // select one of the read services at random
+ $ids = array_keys($this->_readableServices);
+
+ $id = $ids[rand(0, count($ids) - 1)];
+ $service = $this->_readableServices[$id];
+
+ if (is_array($service))
+ {
+ //convert the array definition to a client object
+ $service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
+ $this->_readableServices[$id] = $service;
+ }
+
+ $service->setCreateDocuments($this->_createDocuments);
+ $this->_currentReadService = $id;
+ }
+ else
+ {
+ throw new Apache_Solr_NoServiceAvailableException('No read services were available');
+ }
+ }
+
+ return $this->_readableServices[$this->_currentReadService];
+ }
+
+ /**
+ * Iterate through available write services and select the first with a ping
+ * that satisfies configured timeout restrictions (or the default)
+ *
+ * @return Apache_Solr_Service
+ *
+ * @throws Apache_Solr_NoServiceAvailableException If there are no write services that meet requirements
+ */
+ protected function _selectWriteService($forceSelect = false)
+ {
+ if($this->_useBackoff)
+ {
+ return $this->_selectWriteServiceSafe($forceSelect);
+ }
+
+ if (!$this->_currentWriteService || !isset($this->_writeableServices[$this->_currentWriteService]) || $forceSelect)
+ {
+ if ($this->_currentWriteService && isset($this->_writeableServices[$this->_currentWriteService]) && $forceSelect)
+ {
+ // we probably had a communication error, ping the current read service, remove it if it times out
+ if ($this->_writeableServices[$this->_currentWriteService]->ping($this->_writePingTimeout) === false)
+ {
+ $this->removeWriteService($this->_currentWriteService);
+ }
+ }
+
+ if (count($this->_writeableServices))
+ {
+ // select one of the read services at random
+ $ids = array_keys($this->_writeableServices);
+
+ $id = $ids[rand(0, count($ids) - 1)];
+ $service = $this->_writeableServices[$id];
+
+ if (is_array($service))
+ {
+ //convert the array definition to a client object
+ $service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
+ $this->_writeableServices[$id] = $service;
+ }
+
+ $this->_currentWriteService = $id;
+ }
+ else
+ {
+ throw new Apache_Solr_NoServiceAvailableException('No write services were available');
+ }
+ }
+
+ return $this->_writeableServices[$this->_currentWriteService];
+ }
+
+ /**
+ * Iterate through available write services and select the first with a ping
+ * that satisfies configured timeout restrictions (or the default). The
+ * timeout period will increase until a connection is made or the limit is
+ * reached. This will allow for increased reliability with heavily loaded
+ * server(s).
+ *
+ * @return Apache_Solr_Service
+ *
+ * @throws Apache_Solr_NoServiceAvailableException If there are no write services that meet requirements
+ */
+
+ protected function _selectWriteServiceSafe($forceSelect = false)
+ {
+ if (!$this->_currentWriteService || !isset($this->_writeableServices[$this->_currentWriteService]) || $forceSelect)
+ {
+ if (count($this->_writeableServices))
+ {
+ $backoff = $this->_defaultBackoff;
+
+ do {
+ // select one of the read services at random
+ $ids = array_keys($this->_writeableServices);
+
+ $id = $ids[rand(0, count($ids) - 1)];
+ $service = $this->_writeableServices[$id];
+
+ if (is_array($service))
+ {
+ //convert the array definition to a client object
+ $service = new Apache_Solr_Service($service['host'], $service['port'], $service['path']);
+ $this->_writeableServices[$id] = $service;
+ }
+
+ $this->_currentWriteService = $id;
+
+ $backoff *= $this->_backoffEscalation;
+
+ if($backoff > $this->_backoffLimit)
+ {
+ throw new Apache_Solr_NoServiceAvailableException('No write services were available. All timeouts exceeded.');
+ }
+
+ } while($this->_writeableServices[$this->_currentWriteService]->ping($backoff) === false);
+ }
+ else
+ {
+ throw new Apache_Solr_NoServiceAvailableException('No write services were available');
+ }
+ }
+
+ return $this->_writeableServices[$this->_currentWriteService];
+ }
+
+ /**
+ * Set the create documents flag. This determines whether {@link Apache_Solr_Response} objects will
+ * parse the response and create {@link Apache_Solr_Document} instances in place.
+ *
+ * @param boolean $createDocuments
+ */
+ public function setCreateDocuments($createDocuments)
+ {
+ $this->_createDocuments = (bool) $createDocuments;
+
+ // set on current read service
+ if ($this->_currentReadService)
+ {
+ $service = $this->_selectReadService();
+ $service->setCreateDocuments($createDocuments);
+ }
+ }
+
+ /**
+ * Get the current state of teh create documents flag.
+ *
+ * @return boolean
+ */
+ public function getCreateDocuments()
+ {
+ return $this->_createDocuments;
+ }
+
+ /**
+ * Raw Add Method. Takes a raw post body and sends it to the update service. Post body
+ * should be a complete and well formed "add" xml document.
+ *
+ * @param string $rawPost
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function add($rawPost)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->add($rawPost);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Add a Solr Document to the index
+ *
+ * @param Apache_Solr_Document $document
+ * @param boolean $allowDups
+ * @param boolean $overwritePending
+ * @param boolean $overwriteCommitted
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function addDocument(Apache_Solr_Document $document, $allowDups = false, $overwritePending = true, $overwriteCommitted = true)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->addDocument($document, $allowDups, $overwritePending, $overwriteCommitted);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Add an array of Solr Documents to the index all at once
+ *
+ * @param array $documents Should be an array of Apache_Solr_Document instances
+ * @param boolean $allowDups
+ * @param boolean $overwritePending
+ * @param boolean $overwriteCommitted
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function addDocuments($documents, $allowDups = false, $overwritePending = true, $overwriteCommitted = true)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->addDocuments($documents, $allowDups, $overwritePending, $overwriteCommitted);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Send a commit command. Will be synchronous unless both wait parameters are set
+ * to false.
+ *
+ * @param boolean $waitFlush
+ * @param boolean $waitSearcher
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function commit($optimize = true, $waitFlush = true, $waitSearcher = true, $timeout = 3600)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->commit($optimize, $waitFlush, $waitSearcher, $timeout);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Raw Delete Method. Takes a raw post body and sends it to the update service. Body should be
+ * a complete and well formed "delete" xml document
+ *
+ * @param string $rawPost
+ * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function delete($rawPost, $timeout = 3600)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->delete($rawPost, $timeout);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Create a delete document based on document ID
+ *
+ * @param string $id
+ * @param boolean $fromPending
+ * @param boolean $fromCommitted
+ * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function deleteById($id, $fromPending = true, $fromCommitted = true, $timeout = 3600)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->deleteById($id, $fromPending, $fromCommitted, $timeout);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Create and post a delete document based on multiple document IDs.
+ *
+ * @param array $ids Expected to be utf-8 encoded strings
+ * @param boolean $fromPending
+ * @param boolean $fromCommitted
+ * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function deleteByMultipleIds($ids, $fromPending = true, $fromCommitted = true, $timeout = 3600)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->deleteByMultipleId($ids, $fromPending, $fromCommitted, $timeout);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Create a delete document based on a query and submit it
+ *
+ * @param string $rawQuery
+ * @param boolean $fromPending
+ * @param boolean $fromCommitted
+ * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function deleteByQuery($rawQuery, $fromPending = true, $fromCommitted = true, $timeout = 3600)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->deleteByQuery($rawQuery, $fromPending, $fromCommitted, $timeout);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
+ * to use Solr Cell and what parameters are available.
+ *
+ * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
+ * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
+ * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
+ * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
+ *
+ * @param string $file Path to file to extract data from
+ * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
+ * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
+ * @param string $mimetype optional mimetype specification (for the file being extracted)
+ *
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_InvalidArgumentException if $file, $params, or $document are invalid.
+ */
+ public function extract($file, $params = array(), $document = null, $mimetype = 'application/octet-stream')
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->extract($file, $params, $document, $mimetype);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Use Solr Cell to extract document contents. See {@link http://wiki.apache.org/solr/ExtractingRequestHandler} for information on how
+ * to use Solr Cell and what parameters are available.
+ *
+ * NOTE: when passing an Apache_Solr_Document instance, field names and boosts will automatically be prepended by "literal." and "boost."
+ * as appropriate. Any keys from the $params array will NOT be treated this way. Any mappings from the document will overwrite key / value
+ * pairs in the params array if they have the same name (e.g. you pass a "literal.id" key and value in your $params array but you also
+ * pass in a document isntance with an "id" field" - the document's value(s) will take precedence).
+ *
+ * @param string $data Data that will be passed to Solr Cell
+ * @param array $params optional array of key value pairs that will be sent with the post (see Solr Cell documentation)
+ * @param Apache_Solr_Document $document optional document that will be used to generate post parameters (literal.* and boost.* params)
+ * @param string $mimetype optional mimetype specification (for the file being extracted)
+ *
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_InvalidArgumentException if $file, $params, or $document are invalid.
+ *
+ * @todo Should be using multipart/form-data to post parameter values, but I could not get my implementation to work. Needs revisisted.
+ */
+ public function extractFromString($data, $params = array(), $document = null, $mimetype = 'application/octet-stream')
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->extractFromString($data, $params, $document, $mimetype);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Send an optimize command. Will be synchronous unless both wait parameters are set
+ * to false.
+ *
+ * @param boolean $waitFlush
+ * @param boolean $waitSearcher
+ * @param float $timeout Maximum expected duration of the optimize operation on the server (otherwise, will throw a communication exception)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function optimize($waitFlush = true, $waitSearcher = true, $timeout = 3600)
+ {
+ $service = $this->_selectWriteService();
+
+ do
+ {
+ try
+ {
+ return $service->optimize($waitFlush, $waitSearcher, $timeout);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectWriteService(true);
+ } while ($service);
+
+ return false;
+ }
+
+ /**
+ * Simple Search interface
+ *
+ * @param string $query The raw query string
+ * @param int $offset The starting offset for result documents
+ * @param int $limit The maximum number of result documents to return
+ * @param array $params key / value pairs for query parameters, use arrays for multivalued parameters
+ * @param string $method The HTTP method (Apache_Solr_Service::METHOD_GET or Apache_Solr_Service::METHOD::POST)
+ * @return Apache_Solr_Response
+ *
+ * @throws Apache_Solr_HttpTransportException If an error occurs during the service call
+ */
+ public function search($query, $offset = 0, $limit = 10, $params = array(), $method = Apache_Solr_Service::METHOD_GET)
+ {
+ $service = $this->_selectReadService();
+
+ do
+ {
+ try
+ {
+ return $service->search($query, $offset, $limit, $params, $method);
+ }
+ catch (Apache_Solr_HttpTransportException $e)
+ {
+ if ($e->getCode() != 0) //IF NOT COMMUNICATION ERROR
+ {
+ throw $e;
+ }
+ }
+
+ $service = $this->_selectReadService(true);
+ } while ($service);
+
+ return false;
+ }
+}
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/CHANGES b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/CHANGES
new file mode 100644
index 0000000..28afe66
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/CHANGES
@@ -0,0 +1,5 @@
+10/26/2012
+* Add elevate interface
+
+8/30/2012
+* Add proxy support
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/COPYING b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/COPYING
new file mode 100644
index 0000000..acb2762
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/COPYING
@@ -0,0 +1,26 @@
+Copyright (c) 2007-2012, Parametric Technology Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of Servigistics, Inc. nor the names of
+ its contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/README b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/README
new file mode 100644
index 0000000..efd171c
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/README
@@ -0,0 +1,45 @@
+= solr-php-client
+
+A PHP library for indexing and searching documents within an Apache Solr installation.
+
+Fork from http://code.google.com/p/solr-php-client/
+
+= License from the original COPYING file
+
+Copyright (c) 2007-2012, Parametric Technology Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of Servigistics, Inc. nor the names of
+ its contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+= License from http://code.google.com/p/solr-php-client/
+
+http://opensource.org/licenses/BSD-3-Clause
+
+= Features
+
+= Usage
+
+= Build
+
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/DocumentTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/DocumentTest.php
new file mode 100644
index 0000000..92261c8
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/DocumentTest.php
@@ -0,0 +1,439 @@
+
+ */
+
+/**
+ * Apache_Solr_Document Unit Test
+ */
+class Apache_Solr_DocumentTest extends PHPUnit_Framework_TestCase
+{
+ /**
+ * Fixture used for testing
+ *
+ * @var Apache_Solr_Document
+ */
+ private $_fixture;
+
+ /**
+ * Setup for the fixture before each unit test - part of test case API
+ */
+ protected function setup()
+ {
+ $this->_fixture = new Apache_Solr_Document();
+ }
+
+ /**
+ * Teardown after each unit test - part of test case API
+ */
+ protected function tearDown()
+ {
+ unset($this->_fixture);
+ }
+
+ public function testDefaultStateAfterConstructor()
+ {
+ // document boost should be false
+ $this->assertFalse($this->_fixture->getBoost());
+
+ // document fields should be empty
+ $this->assertEquals(0, count($this->_fixture->getFieldNames()));
+ $this->assertEquals(0, count($this->_fixture->getFieldValues()));
+ $this->assertEquals(0, count($this->_fixture->getFieldBoosts()));
+
+ // document iterator should be empty
+ $this->assertEquals(0, iterator_count($this->_fixture));
+ }
+
+ public function testSetAndGetField()
+ {
+ $field = 'field';
+ $value = 'value';
+ $boost = 0.5;
+
+ // set the field
+ $this->_fixture->setField($field, $value, $boost);
+
+ $result = $this->_fixture->getField($field);
+
+ // check the array values
+ $this->assertTrue(is_array($result));
+ $this->assertEquals($field, $result['name']);
+ $this->assertEquals($value, $result['value']);
+ $this->assertEquals($boost, $result['boost']);
+ }
+
+ public function testGetFieldReturnsFalseForNonExistentField()
+ {
+ $this->assertFalse($this->_fixture->getField('field'));
+ }
+
+ public function testMagicGetForFieldValues()
+ {
+ $field = 'field';
+ $value = 'value';
+
+ $this->_fixture->setField($field, $value);
+
+ // test the __get value
+ $this->assertEquals($value, $this->_fixture->{$field});
+ }
+
+ /**
+ * Added for issue #48 (http://code.google.com/p/solr-php-client/issues/detail?id=48)
+ */
+ public function testMagicGetReturnsNullForNonExistentField()
+ {
+ $this->assertNull($this->_fixture->nonExistent);
+ }
+
+ public function testMagicSetForFieldValues()
+ {
+ $field = 'field';
+ $value = 'value';
+
+ // set field value with magic __set
+ $this->_fixture->{$field} = $value;
+
+ $fieldArray = $this->_fixture->getField($field);
+
+ // set values
+ $this->assertEquals($field, $fieldArray['name']);
+ $this->assertEquals($value, $fieldArray['value']);
+ $this->assertTrue($fieldArray['boost'] === false);
+ }
+
+ public function testMagicIssetForNonExistentField()
+ {
+ $this->assertFalse(isset($this->_fixture->field));
+ }
+
+ public function testMagicIssetForExistingField()
+ {
+ $field = 'field';
+ $this->_fixture->{$field} = 'value';
+ $this->assertTrue(isset($this->_fixture->{$field}));
+ }
+
+ public function testMagicUnsetForExistingField()
+ {
+ $field = 'field';
+
+ $this->_fixture->{$field} = 'value';
+
+ // now unset the field
+ unset($this->_fixture->{$field});
+
+ // now test that its unset
+ $this->assertFalse(isset($this->_fixture->{$field}));
+ }
+
+ public function testMagicUnsetForNonExistingField()
+ {
+ $field = 'field';
+ unset($this->_fixture->{$field});
+
+ // now test that it still does not exist
+ $this->assertFalse(isset($this->_fixture->{$field}));
+ }
+
+ public function testSetAndGetFieldBoostWithPositiveNumberSetsBoost()
+ {
+ $field = 'field';
+ $boost = 0.5;
+
+ $this->_fixture->setFieldBoost($field, $boost);
+
+ // test the field boost
+ $this->assertEquals($boost, $this->_fixture->getFieldBoost($field));
+ }
+
+ public function testSetAndGetFieldBoostWithZeroRemovesBoost()
+ {
+ $field = 'field';
+ $boost = 0;
+
+ $this->_fixture->setFieldBoost($field, $boost);
+
+ // test the field boost
+ $this->assertTrue($this->_fixture->getFieldBoost($field) === false);
+ }
+
+ public function testSetAndGetFieldBoostWithNegativeNumberRemovesBoost()
+ {
+ $field = 'field';
+ $boost = -1;
+
+ $this->_fixture->setFieldBoost($field, $boost);
+
+ // test the field boost
+ $this->assertTrue($this->_fixture->getFieldBoost($field) === false);
+ }
+
+ public function testSetAndGetFieldBoostWithNonNumberRemovesBoost()
+ {
+ $field = 'field';
+ $boost = "i am not a number";
+
+ $this->_fixture->setFieldBoost($field, $boost);
+
+ // test the field boost
+ $this->assertTrue($this->_fixture->getFieldBoost($field) === false);
+ }
+
+ public function testSetAndGetBoostWithPositiveNumberSetsBoost()
+ {
+ $boost = 0.5;
+ $this->_fixture->setBoost($boost);
+
+ // the boost should now be set
+ $this->assertEquals($boost, $this->_fixture->getBoost());
+ }
+
+ public function testSetAndGetBoostWithZeroRemovesBoost()
+ {
+ $this->_fixture->setBoost(0);
+
+ // should be boolean false
+ $this->assertTrue($this->_fixture->getBoost() === false);
+ }
+
+ public function testSetAndGetBoostWithNegativeNumberRemovesBoost()
+ {
+ $this->_fixture->setBoost(-1);
+
+ // should be boolean false
+ $this->assertTrue($this->_fixture->getBoost() === false);
+ }
+
+ public function testSetAndGetBoostWithNonNumberRemovesBoost()
+ {
+ $this->_fixture->setBoost("i am not a number");
+
+ // should be boolean false
+ $this->assertTrue($this->_fixture->getBoost() === false);
+ }
+
+ public function testAddFieldCreatesMultiValueWhenFieldDoesNotExist()
+ {
+ $field = 'field';
+ $value = 'value';
+
+ $this->_fixture->addField($field, $value);
+
+ // check that value is an array with correct values
+ $fieldValue = $this->_fixture->{$field};
+
+ $this->assertTrue(is_array($fieldValue));
+ $this->assertEquals(1, count($fieldValue));
+ $this->assertEquals($value, $fieldValue[0]);
+ }
+
+ /**
+ * setMultiValue has been deprecated and defers to addField
+ *
+ * @deprecated
+ */
+ public function testSetMultiValueCreateMultiValueWhenFieldDoesNotExist()
+ {
+ $field = 'field';
+ $value = 'value';
+
+ $this->_fixture->setMultiValue($field, $value);
+
+ // check that value is an array with correct values
+ $fieldValue = $this->_fixture->{$field};
+
+ $this->assertTrue(is_array($fieldValue));
+ $this->assertEquals(1, count($fieldValue));
+ $this->assertEquals($value, $fieldValue[0]);
+ }
+
+ public function testAddFieldCreatesMultiValueWhenFieldDoesExistAsSingleValue()
+ {
+ $field = 'field';
+ $value1 = 'value1';
+ $value2 = 'value2';
+
+ // set first value as singular value
+ $this->_fixture->{$field} = $value1;
+
+ // add a second value with addField
+ $this->_fixture->addField($field, $value2);
+
+ // check that value is an array with correct values
+ $fieldValue = $this->_fixture->{$field};
+
+ $this->assertTrue(is_array($fieldValue));
+ $this->assertEquals(2, count($fieldValue));
+ $this->assertEquals($value1, $fieldValue[0]);
+ $this->assertEquals($value2, $fieldValue[1]);
+ }
+
+ /**
+ * setMultiValue has been deprecated and defers to addField
+ *
+ * @deprecated
+ */
+ public function testSetMultiValueCreatesMultiValueWhenFieldDoesExistAsSingleValue()
+ {
+ $field = 'field';
+ $value1 = 'value1';
+ $value2 = 'value2';
+
+ // set first value as singular value
+ $this->_fixture->{$field} = $value1;
+
+ // add a second value with addField
+ $this->_fixture->setMultiValue($field, $value2);
+
+ // check that value is an array with correct values
+ $fieldValue = $this->_fixture->{$field};
+
+ $this->assertTrue(is_array($fieldValue));
+ $this->assertEquals(2, count($fieldValue));
+ $this->assertEquals($value1, $fieldValue[0]);
+ $this->assertEquals($value2, $fieldValue[1]);
+ }
+
+ public function testAddFieldWithBoostSetsFieldBoost()
+ {
+ $field = 'field';
+ $boost = 0.5;
+
+ $this->_fixture->addField($field, 'value', $boost);
+
+ // check the field boost
+ $this->assertEquals($boost, $this->_fixture->getFieldBoost($field));
+ }
+
+ public function testAddFieldWithBoostMultipliesWithAPreexistingBoost()
+ {
+ $field = 'field';
+ $boost = 0.5;
+
+ // set a field with a boost
+ $this->_fixture->setField($field, 'value1', $boost);
+
+ // now add another value with the same boost
+ $this->_fixture->addField($field, 'value2', $boost);
+
+ // new boost should be $boost * $boost
+ $this->assertEquals($boost * $boost, $this->_fixture->getFieldBoost($field));
+ }
+
+ public function testGetFieldNamesIsInitiallyEmpty()
+ {
+ $fieldNames = $this->_fixture->getFieldNames();
+
+ $this->assertTrue(empty($fieldNames));
+ }
+
+ public function testGetFieldNamesAfterFieldIsSetIsNotEmpty()
+ {
+ $field = 'field';
+
+ $this->_fixture->{$field} = 'value';
+ $fieldNames = $this->_fixture->getFieldNames();
+
+ $this->assertTrue(!empty($fieldNames));
+ $this->assertEquals(1, count($fieldNames));
+ $this->assertEquals($field, $fieldNames[0]);
+ }
+
+ public function testGetFieldValuesIsInitiallyEmpty()
+ {
+ $fieldValues = $this->_fixture->getFieldValues();
+
+ $this->assertTrue(empty($fieldValues));
+ }
+
+ public function testGetFieldValuessAfterFieldIsSetIsNotEmpty()
+ {
+ $value = 'value';
+
+ $this->_fixture->field = $value;
+ $fieldValues = $this->_fixture->getFieldValues();
+
+ $this->assertTrue(!empty($fieldValues));
+ $this->assertEquals(1, count($fieldValues));
+ $this->assertEquals($value, $fieldValues[0]);
+ }
+
+ public function testGetIteratorAfterFieldValueIsSet()
+ {
+ $field = 'field';
+ $value = 'value';
+
+ $this->_fixture->{$field} = $value;
+
+ $itemCount = 0;
+
+ foreach ($this->_fixture as $iteratedField => $iteratedValue)
+ {
+ ++$itemCount;
+
+ // test field and value
+ $this->assertEquals($field, $iteratedField);
+ $this->assertEquals($value, $iteratedValue);
+ }
+
+ // test number of iterations is 1
+ $this->assertEquals(1, $itemCount);
+ }
+
+ public function testClearReturnsDocumentToDefaultState()
+ {
+ // set the document boost
+ $this->_fixture->setBoost(0.5);
+
+ // set a field
+ $this->_fixture->someField = "some value";
+
+ // clear the document to remove boost and fields
+ $this->_fixture->clear();
+
+ // document boost should now be false
+ $this->assertFalse($this->_fixture->getBoost());
+
+ // document fields should now be empty
+ $this->assertEquals(0, count($this->_fixture->getFieldNames()));
+ $this->assertEquals(0, count($this->_fixture->getFieldValues()));
+ $this->assertEquals(0, count($this->_fixture->getFieldBoosts()));
+
+ // document iterator should now be empty
+ $this->assertEquals(0, iterator_count($this->_fixture));
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/AbstractTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/AbstractTest.php
new file mode 100644
index 0000000..987302b
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/AbstractTest.php
@@ -0,0 +1,208 @@
+
+ */
+
+/**
+ * Apache_Solr_HttpTransport_Abstract Unit Tests
+ */
+abstract class Apache_Solr_HttpTransport_AbstractTest extends PHPUnit_Framework_TestCase
+{
+ const TIMEOUT = 2;
+
+ // request our copyright file from googlecode for GET and HEAD
+ const GET_URL = "http://solr-php-client.googlecode.com/svn/trunk/COPYING";
+ const GET_RESPONSE_MIME_TYPE = 'text/plain';
+ const GET_RESPONSE_ENCODING = 'UTF-8';
+ const GET_RESPONSE_MATCH = 'Copyright (c) ';
+
+ // post to the issue list page with a search for 'meh'
+ const POST_URL = "http://code.google.com/p/solr-php-client/issues/list";
+ const POST_DATA = "can=2&q=meh&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary&cells=tiles";
+ const POST_REQUEST_CONTENT_TYPE = 'application/x-www-form-urlencoded; charset=UTF-8';
+
+ const POST_RESPONSE_MIME_TYPE = 'text/html';
+ const POST_RESPONSE_ENCODING = 'UTF-8';
+ //const POST_RESPONSE_MATCH = 'not sure';
+
+ abstract public function getFixture();
+
+ public function testGetDefaultTimeoutWithDefaultConstructor()
+ {
+ $fixture = $this->getFixture();
+ $timeout = $fixture->getDefaultTimeout();
+
+ $this->assertGreaterThan(0, $timeout);
+ }
+
+ public function testGetDefaultTimeoutSetToSixtyForBadValues()
+ {
+ // first set our default_socket_timeout ini setting
+ $previousValue = ini_get('default_socket_timeout');
+ ini_set('default_socket_timeout', 0);
+
+ $fixture = $this->getFixture();
+ $timeout = $fixture->getDefaultTimeout();
+
+ // reset timeout
+ ini_set('default_socket_timeout', $previousValue);
+
+ $this->assertEquals(60, $timeout);
+ }
+
+ public function testSetDefaultTimeout()
+ {
+ $newTimeout = 1234;
+
+ $fixture = $this->getFixture();
+ $fixture->setDefaultTimeout($newTimeout);
+ $timeout = $fixture->getDefaultTimeout();
+
+ $this->assertEquals($newTimeout, $timeout);
+ }
+
+ public function testPerformGetRequest()
+ {
+ $fixture = $this->getFixture();
+ $fixture->setDefaultTimeout(self::TIMEOUT);
+
+ $response = $fixture->performGetRequest(self::GET_URL);
+
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Response', $response);
+
+ $this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
+ $this->assertEquals(self::GET_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
+ $this->assertEquals(self::GET_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
+ $this->assertStringStartsWith(self::GET_RESPONSE_MATCH, $response->getBody(), 'body did not start with match text');
+ }
+
+ public function testPerformGetRequestWithTimeout()
+ {
+ $fixture = $this->getFixture();
+ $response = $fixture->performGetRequest(self::GET_URL, self::TIMEOUT);
+
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Response', $response);
+
+ $this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
+ $this->assertEquals(self::GET_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
+ $this->assertEquals(self::GET_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
+ $this->assertStringStartsWith(self::GET_RESPONSE_MATCH, $response->getBody(), 'body did not start with match text');
+ }
+
+ public function testPerformHeadRequest()
+ {
+ $fixture = $this->getFixture();
+ $fixture->setDefaultTimeout(self::TIMEOUT);
+
+ $response = $fixture->performHeadRequest(self::GET_URL);
+
+ // we should get everything the same as a get, except the body
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Response', $response);
+
+ $this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
+ $this->assertEquals(self::GET_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
+ $this->assertEquals(self::GET_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
+ $this->assertEquals("", $response->getBody(), 'body was not empty');
+ }
+
+ public function testPerformHeadRequestWithTimeout()
+ {
+ $fixture = $this->getFixture();
+ $response = $fixture->performHeadRequest(self::GET_URL, self::TIMEOUT);
+
+ // we should get everything the same as a get, except the body
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Response', $response);
+
+ $this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
+ $this->assertEquals(self::GET_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
+ $this->assertEquals(self::GET_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
+ $this->assertEquals("", $response->getBody(), 'body was not empty');
+ }
+
+ public function testPerformPostRequest()
+ {
+ $fixture = $this->getFixture();
+ $fixture->setDefaultTimeout(self::TIMEOUT);
+
+ $response = $fixture->performPostRequest(self::POST_URL, self::POST_DATA, self::POST_REQUEST_CONTENT_TYPE);
+
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Response', $response);
+
+ $this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
+ $this->assertEquals(self::POST_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
+ $this->assertEquals(self::POST_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
+ //$this->assertStringStartsWith(self::POST_RESPONSE_MATCH, $response->getBody(), 'body did not start with match text');
+ }
+
+ public function testPerformPostRequestWithTimeout()
+ {
+ $fixture = $this->getFixture();
+ $response = $fixture->performPostRequest(self::POST_URL, self::POST_DATA, self::POST_REQUEST_CONTENT_TYPE, self::TIMEOUT);
+
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Response', $response);
+
+ $this->assertEquals(200, $response->getStatusCode(), 'Status code was not 200');
+ $this->assertEquals(self::POST_RESPONSE_MIME_TYPE, $response->getMimeType(), 'mimetype was not correct');
+ $this->assertEquals(self::POST_RESPONSE_ENCODING, $response->getEncoding(), 'character encoding was not correct');
+ //$this->assertStringStartsWith(self::POST_RESPONSE_MATCH, $response->getBody(), 'body did not start with match text');
+ }
+
+ /**
+ * Test one session doing multiple requests in multiple orders
+ */
+ public function testMultipleRequests()
+ {
+ // initial get request
+ $this->testPerformGetRequest();
+
+ // head following get
+ $this->testPerformHeadRequest();
+
+ // post following head
+ $this->testPerformPostRequest();
+
+ // get following post
+ $this->testPerformGetRequest();
+
+ // post following get
+ $this->testPerformPostRequest();
+
+ // head following post
+ $this->testPerformHeadRequest();
+
+ // get following post
+ $this->testPerformGetRequest();
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlNoReuseTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlNoReuseTest.php
new file mode 100644
index 0000000..0484dd4
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlNoReuseTest.php
@@ -0,0 +1,53 @@
+
+ */
+
+/**
+ * Apache_Solr_HttpTransport_CurlNoReuse Unit Tests
+ */
+class Apache_Solr_HttpTransport_CurlNoReuseTest extends Apache_Solr_HttpTransport_AbstractTest
+{
+ public function getFixture()
+ {
+ // ensure curl is enabled
+ if (!extension_loaded('curl'))
+ {
+ $this->markTestSkipped("curl module is not enabled");
+ }
+
+ return new Apache_Solr_HttpTransport_CurlNoReuse();
+ }
+}
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlTest.php
new file mode 100644
index 0000000..070c164
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/CurlTest.php
@@ -0,0 +1,53 @@
+
+ */
+
+/**
+ * Apache_Solr_HttpTransport_Curl Unit Tests
+ */
+class Apache_Solr_HttpTransport_CurlTest extends Apache_Solr_HttpTransport_AbstractTest
+{
+ public function getFixture()
+ {
+ // ensure curl is enabled
+ if (!extension_loaded('curl'))
+ {
+ $this->markTestSkipped("curl module is not enabled");
+ }
+
+ return new Apache_Solr_HttpTransport_Curl();
+ }
+}
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/FileGetContentsTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/FileGetContentsTest.php
new file mode 100644
index 0000000..2e4f8e9
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/FileGetContentsTest.php
@@ -0,0 +1,53 @@
+
+ */
+
+/**
+ * Apache_Solr_HttpTransport_FileGetContents Unit Tests
+ */
+class Apache_Solr_HttpTransport_FileGetContentsTest extends Apache_Solr_HttpTransport_AbstractTest
+{
+ public function getFixture()
+ {
+ // make sure allow_url_fopen is on
+ if (!ini_get("allow_url_fopen"))
+ {
+ $this->markTestSkipped("allow_url_fopen is not enabled");
+ }
+
+ return new Apache_Solr_HttpTransport_FileGetContents();
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/ResponseTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/ResponseTest.php
new file mode 100644
index 0000000..f3c1127
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransport/ResponseTest.php
@@ -0,0 +1,164 @@
+
+ */
+
+/**
+ * Apache_Solr_HttpTransport_Response Unit Tests
+ */
+class Apache_Solr_HttpTransport_ResponseTest extends PHPUnit_Framework_TestCase
+{
+ // generated with the following query string: select?q=solr&wt=json
+ const STATUS_CODE_200 = 200;
+ const STATUS_MESSAGE_200 = "OK";
+ const BODY_200 = '{"responseHeader":{"status":0,"QTime":0,"params":{"q":"solr","wt":"json"}},"response":{"numFound":0,"start":0,"docs":[]}}';
+ const BODY_200_WITH_DOCUMENTS = '{"responseHeader":{"status":0,"QTime":0,"params":{"q":"*:*","wt":"json"}},"response":{"numFound":1,"start":0,"docs":[{"guid":"dev/2/products/45410/1236981","cit_domain":"products","cit_client":"2","cit_instance":"dev","cit_timestamp":"2010-10-06T18:16:51.573Z","product_code_t":["235784"],"product_id":[1236981],"dealer_id":[45410],"category_id":[1030],"manufacturer_id":[0],"vendor_id":[472],"catalog_id":[202]}]}}';
+ const CONTENT_TYPE_200 = "text/plain; charset=utf-8";
+ const MIME_TYPE_200 = "text/plain";
+ const ENCODING_200 = "utf-8";
+
+ // generated with the following query string: select?qt=standad&q=solr&wt=json
+ // NOTE: the intentional mispelling of the standard in the qt parameter
+ const STATUS_CODE_400 = 400;
+ const STATUS_MESSAGE_400 = "Bad Request";
+ const BODY_400 = 'Apache Tomcat/6.0.24 - Error report
HTTP Status 400 - unknown handler: standad
type Status report
messageunknown handler: standad
descriptionThe request sent by the client was syntactically incorrect (unknown handler: standad).
Apache Tomcat/6.0.24
';
+ const CONTENT_TYPE_400 = "text/html; charset=utf-8";
+ const MIME_TYPE_400 = "text/html";
+ const ENCODING_400 = "utf-8";
+
+ // generated with the following query string: select?q=solr&wt=json on a core that does not exist
+ const STATUS_CODE_404 = 404;
+ const STATUS_MESSAGE_404 = "Not Found";
+ const BODY_404 = 'Apache Tomcat/6.0.24 - Error report
HTTP Status 404 - /solr/doesnotexist/select
type Status report
message/solr/doesnotexist/select
descriptionThe requested resource (/solr/doesnotexist/select) is not available.
Apache Tomcat/6.0.24
';
+ const CONTENT_TYPE_404 = "text/html; charset=utf-8";
+ const MIME_TYPE_404 = "text/html";
+ const ENCODING_404 = "utf-8";
+
+ public static function get0Response()
+ {
+ return new Apache_Solr_HttpTransport_Response(null, null, null);
+ }
+
+ public static function get200Response()
+ {
+ return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_200, self::CONTENT_TYPE_200, self::BODY_200);
+ }
+
+ public static function get200ResponseWithDocuments()
+ {
+ return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_200, self::CONTENT_TYPE_200, self::BODY_200_WITH_DOCUMENTS);
+ }
+
+ public static function get400Response()
+ {
+ return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_400, self::CONTENT_TYPE_400, self::BODY_400);
+ }
+
+ public static function get404Response()
+ {
+ return new Apache_Solr_HttpTransport_Response(self::STATUS_CODE_404, self::CONTENT_TYPE_404, self::BODY_404);
+ }
+
+ public function testGetStatusCode()
+ {
+ $fixture = self::get200Response();
+
+ $statusCode = $fixture->getStatusCode();
+
+ $this->assertEquals(self::STATUS_CODE_200, $statusCode);
+ }
+
+ public function testGetStatusMessage()
+ {
+ $fixture = self::get200Response();
+
+ $statusMessage = $fixture->getStatusMessage();
+
+ $this->assertEquals(self::STATUS_MESSAGE_200, $statusMessage);
+ }
+
+ public function testGetStatusMessageWithUnknownCode()
+ {
+ $fixture = new Apache_Solr_HttpTransport_Response(499, null, null);
+
+ $statusMessage = $fixture->getStatusMessage();
+ $this->assertEquals("Unknown Status", $statusMessage);
+ }
+
+ public function testGetBody()
+ {
+ $fixture = self::get200Response();
+
+ $body = $fixture->getBody();
+
+ $this->assertEquals(self::BODY_200, $body);
+ }
+
+ public function testGetMimeType()
+ {
+ $fixture = self::get200Response();
+
+ $mimeType = $fixture->getMimeType();
+
+ $this->assertEquals(self::MIME_TYPE_200, $mimeType);
+ }
+
+ public function testGetEncoding()
+ {
+ $fixture = self::get200Response();
+
+ $encoding = $fixture->getEncoding();
+
+ $this->assertEquals(self::ENCODING_200, $encoding);
+ }
+
+ public function testGetStatusMessageWhenNotProvided()
+ {
+ // test 4 of the most common status code responses, probably don't need
+ // to test all the codes we have
+
+ $fixture = new Apache_Solr_HttpTransport_Response(null, null, null, null, null);
+ $this->assertEquals("Communication Error", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 0');
+
+ $fixture = new Apache_Solr_HttpTransport_Response(200, null, null, null, null);
+ $this->assertEquals("OK", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 200');
+
+ $fixture = new Apache_Solr_HttpTransport_Response(400, null, null, null, null);
+ $this->assertEquals("Bad Request", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 400');
+
+ $fixture = new Apache_Solr_HttpTransport_Response(404, null, null, null, null);
+ $this->assertEquals("Not Found", $fixture->getStatusMessage(), 'Did not get correct default status message for status code 404');
+ }
+}
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransportExceptionTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransportExceptionTest.php
new file mode 100644
index 0000000..a095875
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/HttpTransportExceptionTest.php
@@ -0,0 +1,58 @@
+
+ */
+
+/**
+ * Apache_Solr_HttpTransportException Unit Tests
+ */
+class Apache_Solr_HttpTransportExceptionTest extends PHPUnit_Framework_TestCase
+{
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testConstructorRequiresResponse()
+ {
+ $fixture = new Apache_Solr_HttpTransportException();
+ }
+
+ public function testGetResponse()
+ {
+ $response = Apache_Solr_ResponseTest::get0Response();
+ $fixture = new Apache_Solr_HttpTransportException($response);
+
+ $this->assertEquals($response, $fixture->getResponse());
+ }
+}
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ResponseTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ResponseTest.php
new file mode 100644
index 0000000..63b679a
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ResponseTest.php
@@ -0,0 +1,194 @@
+
+ */
+
+/**
+ * Apache_Solr_Response Unit Test
+ */
+class Apache_Solr_ResponseTest extends PHPUnit_Framework_TestCase
+{
+ static public function get0Response($createDocuments = true, $collapseSingleValueArrays = true)
+ {
+ return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get0Response(), $createDocuments, $collapseSingleValueArrays);
+ }
+
+ static public function get200Response($createDocuments = true, $collapseSingleValueArrays = true)
+ {
+ return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get200Response(), $createDocuments, $collapseSingleValueArrays);
+ }
+
+ static public function get200ResponseWithDocuments($createDocuments = true, $collapseSingleValueArrays = true)
+ {
+ return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get200ResponseWithDocuments(), $createDocuments, $collapseSingleValueArrays);
+ }
+
+ static public function get400Response($createDocuments = true, $collapseSingleValueArrays = true)
+ {
+ return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get400Response(), $createDocuments, $collapseSingleValueArrays);
+ }
+
+ static public function get404Response($createDocuments = true, $collapseSingleValueArrays = true)
+ {
+ return new Apache_Solr_Response(Apache_Solr_HttpTransport_ResponseTest::get404Response(), $createDocuments, $collapseSingleValueArrays);
+ }
+
+ public function testConstuctorWithValidBodyAndHeaders()
+ {
+ $fixture = self::get200Response();
+
+ // check that we parsed the HTTP status correctly
+ $this->assertEquals(Apache_Solr_HttpTransport_ResponseTest::STATUS_CODE_200, $fixture->getHttpStatus());
+
+ // check that we received the body correctly
+ $this->assertEquals(Apache_Solr_HttpTransport_ResponseTest::BODY_200, $fixture->getRawResponse());
+
+ // check that our defaults are correct
+ $this->assertEquals(Apache_Solr_HttpTransport_ResponseTest::ENCODING_200, $fixture->getEncoding());
+ $this->assertEquals(Apache_Solr_HttpTransport_ResponseTest::MIME_TYPE_200, $fixture->getType());
+ }
+
+ public function testConstructorWithBadBodyAndHeaders()
+ {
+ $fixture = self::get0Response();
+
+ // check that our defaults are correct
+ $this->assertEquals(0, $fixture->getHttpStatus());
+ $this->assertEquals("UTF-8", $fixture->getEncoding());
+ $this->assertEquals("text/plain", $fixture->getType());
+ }
+
+ public function testMagicGetWithValidBodyAndHeaders()
+ {
+ $fixture = self::get200Response();
+
+ // test top level gets
+ $this->assertInstanceOf('stdClass', $fixture->responseHeader);
+ $this->assertEquals(0, $fixture->responseHeader->status);
+ $this->assertEquals(0, $fixture->responseHeader->QTime);
+
+ $this->assertInstanceOf('stdClass', $fixture->response);
+ $this->assertEquals(0, $fixture->response->numFound);
+
+ $this->assertTrue(is_array($fixture->response->docs));
+ $this->assertEquals(0, count($fixture->response->docs));
+ }
+
+ /**
+ * @expectedException Apache_Solr_ParserException
+ */
+ public function testMagicGetWith0Response()
+ {
+ $fixture = self::get0Response();
+
+ // attempting to magic get a part of the response
+ // should throw a ParserException
+ $fixture->responseHeader;
+
+ $this->fail("Expected Apache_Solr_ParserException was not raised");
+ }
+
+ /**
+ * @expectedException Apache_Solr_ParserException
+ */
+ public function testMagicGetWith400Response()
+ {
+ $fixture = self::get400Response();
+
+ // attempting to magic get a part of the response
+ // should throw a ParserException
+ $fixture->responseHeader;
+
+ $this->fail("Expected Apache_Solr_ParserException was not raised");
+ }
+
+ /**
+ * @expectedException Apache_Solr_ParserException
+ */
+ public function testMagicGetWith404Response()
+ {
+ $fixture = self::get404Response();
+
+ // attempting to magic get a part of the response
+ // should throw a ParserException
+ $fixture->responseHeader;
+
+ $this->fail("Expected Apache_Solr_ParserException was not raised");
+ }
+
+ public function testCreateDocuments()
+ {
+ $fixture = self::get200ResponseWithDocuments();
+
+ $this->assertTrue(count($fixture->response->docs) > 0, 'There are not 1 or more documents, cannot test');
+ $this->assertInstanceOf('Apache_Solr_Document', $fixture->response->docs[0], 'The first document is not of type Apache_Solr_Document');
+ }
+
+ public function testDontCreateDocuments()
+ {
+ $fixture = self::get200ResponseWithDocuments(false);
+
+ $this->assertTrue(count($fixture->response->docs) > 0, 'There are not 1 or more documents, cannot test');
+ $this->assertInstanceOf('stdClass', $fixture->response->docs[0], 'The first document is not of type stdClass');
+ }
+
+ public function testGetHttpStatusMessage()
+ {
+ $fixture = self::get200Response();
+
+ $this->assertEquals("OK", $fixture->getHttpStatusMessage());
+ }
+
+ public function testMagicGetReturnsNullForUndefinedData()
+ {
+ $fixture = self::get200Response();
+
+ $this->assertNull($fixture->doesnotexist);
+ }
+
+ public function testMagicIssetForDefinedProperty()
+ {
+ $fixture = self::get200Response();
+
+ $this->assertTrue(isset($fixture->responseHeader));
+ }
+
+ public function testMagicIssetForUndefinedProperty()
+ {
+ $fixture = self::get200Response();
+
+ $this->assertFalse(isset($fixture->doesnotexist));
+ }
+}
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/Service/BalancerTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/Service/BalancerTest.php
new file mode 100644
index 0000000..df39874
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/Service/BalancerTest.php
@@ -0,0 +1,47 @@
+
+ */
+
+/**
+ * Apache_Solr_Service_Balancer Unit Tests
+ */
+class Apache_Solr_Service_BalancerTest extends Apache_Solr_ServiceAbstractTest
+{
+ public function getFixture()
+ {
+ return new Apache_Solr_Service_Balancer();
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ServiceAbstractTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ServiceAbstractTest.php
new file mode 100644
index 0000000..0e8fdf5
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ServiceAbstractTest.php
@@ -0,0 +1,139 @@
+
+ */
+
+/**
+ * Provides base funcationality test for both Apache_Solr_Service and the
+ * Apache_Solr_Service_Balancer classes.
+ */
+abstract class Apache_Solr_ServiceAbstractTest extends PHPUnit_Framework_TestCase
+{
+ /**
+ * Method that gets the appropriate instance for testing
+ */
+ abstract public function getFixture();
+
+ /**
+ * @dataProvider testEscapeDataProvider
+ */
+ public function testEscape($input, $expectedOutput)
+ {
+ $fixture = $this->getFixture();
+
+ $this->assertEquals($expectedOutput, $fixture->escape($input));
+ }
+
+ public function testEscapeDataProvider()
+ {
+ return array(
+ array(
+ "I should look the same",
+ "I should look the same"
+ ),
+
+ array(
+ "(There) are: ^lots \\ && of spec!al charaters",
+ "\\(There\\) are\\: \\^lots \\\\ \\&& of spec\\!al charaters"
+ )
+ );
+ }
+
+ /**
+ * @dataProvider testEscapePhraseDataProvider
+ */
+ public function testEscapePhrase($input, $expectedOutput)
+ {
+ $fixture = $this->getFixture();
+
+ $this->assertEquals($expectedOutput, $fixture->escapePhrase($input));
+ }
+
+ public function testEscapePhraseDataProvider()
+ {
+ return array(
+ array(
+ "I'm a simple phrase",
+ "I'm a simple phrase"
+ ),
+
+ array(
+ "I have \"phrase\" characters",
+ 'I have \\"phrase\\" characters'
+ )
+ );
+ }
+
+ /**
+ * @dataProvider testPhraseDataProvider
+ */
+ public function testPhrase($input, $expectedOutput)
+ {
+ $fixture = $this->getFixture();
+
+ $this->assertEquals($expectedOutput, $fixture->phrase($input));
+ }
+
+ public function testPhraseDataProvider()
+ {
+ return array(
+ array(
+ "I'm a simple phrase",
+ '"I\'m a simple phrase"'
+ ),
+
+ array(
+ "I have \"phrase\" characters",
+ '"I have \\"phrase\\" characters"'
+ )
+ );
+ }
+
+ public function testGetCreateDocumentWithDefaultConstructor()
+ {
+ $fixture = $this->getFixture();
+
+ $this->assertTrue($fixture->getCreateDocuments());
+ }
+
+ public function testSetCreateDocuments()
+ {
+ $fixture = $this->getFixture();
+
+ $fixture->setCreateDocuments(false);
+
+ $this->assertFalse($fixture->getCreateDocuments());
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ServiceTest.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ServiceTest.php
new file mode 100644
index 0000000..651c303
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/Apache/Solr/ServiceTest.php
@@ -0,0 +1,1180 @@
+
+ */
+
+/**
+ * Apache_Solr_Service Unit Test
+ */
+class Apache_Solr_ServiceTest extends Apache_Solr_ServiceAbstractTest
+{
+ public function getFixture()
+ {
+ return new Apache_Solr_Service();
+ }
+
+ public function getMockHttpTransportInterface()
+ {
+ return $this->getMock(
+ 'Apache_Solr_HttpTransport_Interface',
+ array(
+ 'getDefaultTimeout',
+ 'setDefaultTimeout',
+ 'setAuthenticationCredentials',
+ 'performGetRequest',
+ 'performHeadRequest',
+ 'performPostRequest',
+ )
+ );
+ }
+
+ //================================================================//
+ // ATTEMPT TO MOVE THESE TO ServiceAbstractTest AT SOME POINT //
+ // Apache_Solr_Service_Balancer will need functions added //
+ //================================================================//
+ public function testGetHttpTransportWithDefaultConstructor()
+ {
+ $fixture = new Apache_Solr_Service();
+
+ $httpTransport = $fixture->getHttpTransport();
+
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Interface', $httpTransport, 'Default http transport does not implement interface');
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_FileGetContents', $httpTransport, 'Default http transport is not URL Wrapper implementation');
+ }
+
+
+ public function testSetHttpTransport()
+ {
+ $newTransport = new Apache_Solr_HttpTransport_Curl();
+ $fixture = new Apache_Solr_Service();
+
+ $fixture->setHttpTransport($newTransport);
+ $httpTransport = $fixture->getHttpTransport();
+
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Interface', $httpTransport);
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Curl', $httpTransport);
+ $this->assertEquals($newTransport, $httpTransport);
+
+ }
+
+ public function testSetHttpTransportWithConstructor()
+ {
+ $newTransport = new Apache_Solr_HttpTransport_Curl();
+
+ $fixture = new Apache_Solr_Service('localhost', 8180, '/solr/', $newTransport);
+
+ $fixture->setHttpTransport($newTransport);
+ $httpTransport = $fixture->getHttpTransport();
+
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Interface', $httpTransport);
+ $this->assertInstanceOf('Apache_Solr_HttpTransport_Curl', $httpTransport);
+ $this->assertEquals($newTransport, $httpTransport);
+ }
+
+ public function testGetCollapseSingleValueArraysWithDefaultConstructor()
+ {
+ $fixture = $this->getFixture();
+
+ $this->assertTrue($fixture->getCollapseSingleValueArrays());
+ }
+
+ public function testSetCollapseSingleValueArrays()
+ {
+ $fixture = $this->getFixture();
+
+ $fixture->setCollapseSingleValueArrays(false);
+ $this->assertFalse($fixture->getCollapseSingleValueArrays());
+ }
+
+ public function testGetNamedListTreatmetnWithDefaultConstructor()
+ {
+ $fixture = $this->getFixture();
+
+ $this->assertEquals(Apache_Solr_Service::NAMED_LIST_MAP, $fixture->getNamedListTreatment());
+ }
+
+ public function testSetNamedListTreatment()
+ {
+ $fixture = $this->getFixture();
+
+ $fixture->setNamedListTreatment(Apache_Solr_Service::NAMED_LIST_FLAT);
+ $this->assertEquals(Apache_Solr_Service::NAMED_LIST_FLAT, $fixture->getNamedListTreatment());
+
+ $fixture->setNamedListTreatment(Apache_Solr_Service::NAMED_LIST_MAP);
+ $this->assertEquals(Apache_Solr_Service::NAMED_LIST_MAP, $fixture->getNamedListTreatment());
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testSetNamedListTreatmentInvalidArgumentException()
+ {
+ $fixture = $this->getFixture();
+
+ $fixture->setNamedListTreatment("broken");
+ }
+
+ //================================================================//
+ // END SECTION OF CODE THAT SHOULD BE MOVED //
+ // Apache_Solr_Service_Balancer will need functions added //
+ //================================================================//
+
+
+ public function testConstructorDefaultArguments()
+ {
+ $fixture = new Apache_Solr_Service();
+
+ $this->assertInstanceOf('Apache_Solr_Service', $fixture);
+ }
+
+ public function testGetHostWithDefaultConstructor()
+ {
+ $fixture = new Apache_Solr_Service();
+ $host = $fixture->getHost();
+
+ $this->assertEquals("localhost", $host);
+ }
+
+ public function testSetHost()
+ {
+ $newHost = "example.com";
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHost($newHost);
+ $host = $fixture->getHost();
+
+ $this->assertEquals($newHost, $host);
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testSetEmptyHost()
+ {
+ $fixture = new Apache_Solr_Service();
+
+ // should throw an invalid argument exception
+ $fixture->setHost("");
+ }
+
+ public function testSetHostWithConstructor()
+ {
+ $newHost = "example.com";
+
+ $fixture = new Apache_Solr_Service($newHost);
+ $host = $fixture->getHost();
+
+ $this->assertEquals($newHost, $host);
+ }
+
+ public function testGetPortWithDefaultConstructor()
+ {
+ $fixture = new Apache_Solr_Service();
+ $port = $fixture->getPort();
+
+ $this->assertEquals(8180, $port);
+ }
+
+ public function testSetPort()
+ {
+ $newPort = 12345;
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setPort($newPort);
+ $port = $fixture->getPort();
+
+ $this->assertEquals($newPort, $port);
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testSetPortWithInvalidArgument()
+ {
+ $fixture = new Apache_Solr_Service();
+
+ $fixture->setPort("broken");
+ }
+
+ public function testSetPortWithConstructor()
+ {
+ $newPort = 12345;
+
+ $fixture = new Apache_Solr_Service('locahost', $newPort);
+ $port = $fixture->getPort();
+
+ $this->assertEquals($newPort, $port);
+ }
+
+ public function testGetPathWithDefaultConstructor()
+ {
+ $fixture = new Apache_Solr_Service();
+ $path = $fixture->getPath();
+
+ $this->assertEquals("/solr/", $path);
+ }
+
+ public function testSetPath()
+ {
+ $newPath = "/new/path/";
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setPath($newPath);
+ $path = $fixture->getPath();
+
+ $this->assertEquals($path, $newPath);
+ }
+
+ public function testSetPathWillAddContainingSlashes()
+ {
+ $newPath = "new/path";
+ $containedPath = "/{$newPath}/";
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setPath($newPath);
+ $path = $fixture->getPath();
+
+ $this->assertEquals($containedPath, $path, 'setPath did not ensure propertly wrapped with slashes');
+ }
+
+ public function testSetPathWithConstructor()
+ {
+ $newPath = "/new/path/";
+
+ $fixture = new Apache_Solr_Service('localhost', 8180, $newPath);
+ $path = $fixture->getPath();
+
+ $this->assertEquals($newPath, $path);
+ }
+
+
+ public function testGetDefaultTimeoutCallsThroughToTransport()
+ {
+ $fixture = new Apache_Solr_Service();
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call
+ $mockTransport->expects($this->once())->method('getDefaultTimeout');
+
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->getDefaultTimeout();
+ }
+
+ public function testSetDefaultTimeoutCallsThroughToTransport()
+ {
+ $timeout = 12345;
+ $fixture = new Apache_Solr_Service();
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call
+ $mockTransport->expects($this->once())->method('setDefaultTimeout')->with($this->equalTo($timeout));
+
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->setDefaultTimeout($timeout);
+ }
+
+ public function testSetAuthenticationCredentialsCallsThroughToTransport()
+ {
+ $username = "user";
+ $password = "password";
+
+ $fixture = new Apache_Solr_Service();
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call
+ $mockTransport->expects($this->once())->method('setAuthenticationCredentials')->with($this->equalTo($username), $this->equalTo($password));
+
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->setAuthenticationCredentials($username, $password);
+ }
+
+ public function testPing()
+ {
+ $expectedUrl = "http://localhost:8180/solr/admin/ping";
+ $expectedTimeout = 2;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performHeadRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ // call ping
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+ $time = $fixture->ping();
+
+ $this->assertGreaterThan(0, $time);
+ }
+
+ public function testPingReturnsFalse()
+ {
+ $expectedUrl = "http://localhost:8180/solr/admin/ping";
+ $expectedTimeout = 2;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performHeadRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get0Response()));
+
+ // call ping
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $this->assertFalse($fixture->ping());
+ }
+
+ public function testSystem()
+ {
+ $expectedUrl = "http://localhost:8180/solr/admin/system?wt=json";
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performGetRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ // call system
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->system();
+ }
+
+ /**
+ * @expectedException Apache_Solr_HttpTransportException
+ */
+ public function testSystem404()
+ {
+ $expectedUrl = "http://localhost:8180/solr/admin/system?wt=json";
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performGetRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get404Response()));
+
+ // call system
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->system();
+ }
+
+ public function testThreads()
+ {
+ $expectedUrl = "http://localhost:8180/solr/admin/threads?wt=json";
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performGetRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ // call threads
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->threads();
+ }
+
+ /**
+ * @expectedException Apache_Solr_HttpTransportException
+ */
+ public function testThreads404()
+ {
+ $expectedUrl = "http://localhost:8180/solr/admin/threads?wt=json";
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performGetRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get404Response()));
+
+ // call threads
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->threads();
+ }
+
+ public function testAdd()
+ {
+ $postData = "does not have to be valid";
+
+ $expectedUrl = "http://localhost:8180/solr/update?wt=json";
+ $expectedTimeout = false;
+ $expectedPostData = $postData;
+ $expectedContentType = "text/xml; charset=UTF-8"; // default for _sendRawPost
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($postData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ // call add
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->add($postData);
+ }
+
+ /**
+ * @expectedException Apache_Solr_HttpTransportException
+ */
+ public function testAdd400()
+ {
+ $postData = "does not have to be valid";
+
+ $expectedUrl = "http://localhost:8180/solr/update?wt=json";
+ $expectedTimeout = false;
+ $expectedPostData = $postData;
+ $expectedContentType = "text/xml; charset=UTF-8"; // default for _sendRawPost
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($postData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get400Response()));
+
+ // call add
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->add($postData);
+ }
+
+ public function testAddDocument()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo(''),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(false)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $document = new Apache_Solr_Document();
+
+ $fixture->addDocument($document);
+ }
+
+ public function testAddDocumentWithNonDefaultParameters()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo(''),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(false)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $document = new Apache_Solr_Document();
+
+ $fixture->addDocument($document, true, false, false, 3600);
+ }
+
+ public function testAddDocumentWithFields()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo('global unique idvaluevalue 1value 2'),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(false)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $document = new Apache_Solr_Document();
+
+ $document->guid = "global unique id";
+ $document->field = "value";
+ $document->multivalue = array("value 1", "value 2");
+
+ $fixture->addDocument($document);
+ }
+
+ public function testAddDocumentWithFieldBoost()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo('global unique idvaluevalue 1value 2'),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(false)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $document = new Apache_Solr_Document();
+
+ $document->guid = "global unique id";
+
+ $document->field = "value";
+ $document->setFieldBoost('field', 2);
+
+ $document->multivalue = array("value 1", "value 2");
+ $document->setFieldBoost('multivalue', 3);
+
+ $fixture->addDocument($document);
+ }
+
+ public function testAddDocumentWithDocumentBoost()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo('global unique idvalue'),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(false)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $document = new Apache_Solr_Document();
+ $document->setBoost(2);
+
+ $document->guid = "global unique id";
+ $document->field = "value";
+
+ $fixture->addDocument($document);
+ }
+
+ public function testAddDocuments()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo(''),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(false)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $documents = array(
+ new Apache_Solr_Document(),
+ new Apache_Solr_Document()
+ );
+
+ $fixture->addDocuments($documents);
+ }
+
+ public function testAddDocumentsWithNonDefaultParameters()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo(''),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(false)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $documents = array(
+ new Apache_Solr_Document(),
+ new Apache_Solr_Document()
+ );
+
+ $fixture->addDocuments($documents, true, false, false, 3600);
+ }
+
+ public function testCommit()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo(''),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(3600)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->commit();
+ }
+
+ public function testCommitWithNonDefaultParameters()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ // url
+ $this->equalTo('http://localhost:8180/solr/update?wt=json'),
+
+ // raw post
+ $this->equalTo(''),
+
+ // content type
+ $this->equalTo('text/xml; charset=UTF-8'),
+
+ // timeout
+ $this->equalTo(7200)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->commit(true, false, false, 7200);
+ }
+
+ public function testDelete()
+ {
+ $postData = "does not have to be valid";
+
+ $expectedUrl = "http://localhost:8180/solr/update?wt=json";
+ $expectedTimeout = 3600; // default for delete
+ $expectedPostData = $postData;
+ $expectedContentType = "text/xml; charset=UTF-8"; // default for _sendRawPost
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($postData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ // call add
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+ $fixture->delete($postData);
+ }
+
+ public function testDeleteById()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->deleteById("does not exist");
+ }
+
+ public function testDeleteByMultipleIds()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->deleteByMultipleIds(array(1, 2, 3));
+ }
+
+ public function testDeleteByQuery()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->deleteByQuery("*:*");
+ }
+
+ public function testExtracts()
+ {
+ $extractFile = __FILE__;
+
+ $expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=ServiceTest.php&wt=json&json.nl=map";
+ $expectedPostData = file_get_contents($extractFile);
+ $expectedContentType = 'application/octet-stream'; // default for extract
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedPostData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->extract($extractFile);
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testExtractWithInvalidParams()
+ {
+ $extractFile = __FILE__;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->extract($extractFile, "invalid");
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testExtractFromStringWithInvalidParams()
+ {
+ $extractFileData = "does not matter what it is";
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->extractFromString($extractFileData, "invalid");
+ }
+
+ public function testExtractsWithNullParams()
+ {
+ $extractFile = __FILE__;
+
+ $expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=ServiceTest.php&wt=json&json.nl=map";
+ $expectedPostData = file_get_contents($extractFile);
+ $expectedContentType = 'application/octet-stream'; // default for extract
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedPostData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->extract($extractFile, null);
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testExtractWithEmptyFile()
+ {
+ $extractFile = "iDontExist.txt";
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->extract($extractFile);
+ }
+
+ public function testExtractsWithDocument()
+ {
+ $extractFile = __FILE__;
+
+ $expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=ServiceTest.php&wt=json&json.nl=map&boost.field=2&literal.field=literal+value";
+ $expectedPostData = file_get_contents($extractFile);
+ $expectedContentType = 'application/octet-stream'; // default for extract
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with($this->equalTo($expectedUrl), $this->equalTo($expectedPostData), $this->equalTo($expectedContentType), $this->equalTo($expectedTimeout))
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $literals = new Apache_Solr_Document();
+ $literals->field = "literal value";
+ $literals->setFieldBoost('field', 2);
+
+ $fixture->extract($extractFile, null, $literals);
+ }
+
+ public function testExtractWithUrlDefers()
+ {
+ $extractUrl = "http://example.com";
+
+ $expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=http%3A%2F%2Fexample.com&wt=json&json.nl=map";
+ $expectedPostData = Apache_Solr_HttpTransport_ResponseTest::BODY_200;
+ $expectedContentType = 'application/octet-stream'; // default for extract
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performGetRequest')
+ ->with(
+ $this->equalTo($extractUrl)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ $this->equalTo($expectedUrl),
+ $this->equalTo($expectedPostData),
+ $this->equalTo($expectedContentType),
+ $this->equalTo($expectedTimeout)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->extract($extractUrl);
+ }
+
+ public function testExtractFromUrl()
+ {
+ $extractUrl = "http://example.com";
+
+ $expectedUrl = "http://localhost:8180/solr/update/extract?resource.name=http%3A%2F%2Fexample.com&wt=json&json.nl=map";
+ $expectedPostData = Apache_Solr_HttpTransport_ResponseTest::BODY_200;
+ $expectedContentType = 'application/octet-stream'; // default for extract
+ $expectedTimeout = false;
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performGetRequest')
+ ->with(
+ $this->equalTo($extractUrl)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->with(
+ $this->equalTo($expectedUrl),
+ $this->equalTo($expectedPostData),
+ $this->equalTo($expectedContentType),
+ $this->equalTo($expectedTimeout)
+ )
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->extractFromUrl($extractUrl);
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testExtractFromUrlWithInvalidParams()
+ {
+ $extractUrl = "http://example.com";
+
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->extractFromUrl($extractUrl, "invalid");
+ }
+
+ public function testOptimize()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_Service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->optimize();
+ }
+
+ public function testSearch()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performGetRequest')
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->search("solr");
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testSearchWithInvalidParams()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->search("solr", 0, 10, "invalid");
+
+ $this->fail("Should have through InvalidArgumentException");
+ }
+
+ public function testSearchWithEmptyParams()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performGetRequest')
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->search("solr", 0, 10, null);
+ }
+
+ public function testSearchWithPostMethod()
+ {
+ // set a mock transport
+ $mockTransport = $this->getMockHttpTransportInterface();
+
+ // setup expected call and response
+ $mockTransport->expects($this->once())
+ ->method('performPostRequest')
+ ->will($this->returnValue(Apache_Solr_HttpTransport_ResponseTest::get200Response()));
+
+ $fixture = new Apache_Solr_service();
+ $fixture->setHttpTransport($mockTransport);
+
+ $fixture->search("solr", 0, 10, array(), Apache_Solr_Service::METHOD_POST);
+ }
+
+ /**
+ * @expectedException Apache_Solr_InvalidArgumentException
+ */
+ public function testSearchWithInvalidMethod()
+ {
+ $fixture = new Apache_Solr_service();
+
+ $fixture->search("solr", 0, 10, array(), "INVALID METHOD");
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/README b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/README
new file mode 100644
index 0000000..39ede2e
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/README
@@ -0,0 +1,20 @@
+Use the run.php script included in this directory to run all unit tests for the
+Solr PHP Client library. Your system will require phpunit PEAR package - which
+you can get install instructions for at:
+
+http://www.phpunit.de/
+
+To generate the code coverage report, you will also need the XDebug pecl package
+installed, typically this can be done with a simple:
+
+pecl install xdebug
+
+If you need more information on installation, then please see the official website:
+
+http://www.xdebug.org
+
+The scripts, configuration, and test files in this directory have been confirmed to
+work with the following versions:
+
+phpunit: 3.3.16
+xdebug: 2.0.4
\ No newline at end of file
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/phpunit.bootstrap.inc b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/phpunit.bootstrap.inc
new file mode 100644
index 0000000..237a0ec
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/phpunit.bootstrap.inc
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+ ../Apache
+
+ ./run.php
+
+
+
+
diff --git a/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/run.php b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/run.php
new file mode 100644
index 0000000..b744548
--- /dev/null
+++ b/wp-content/plugins/advanced-search-by-my-solr-server/SolrPhpClient/tests/run.php
@@ -0,0 +1,42 @@
+#! /usr/bin/php
+
+
+
+
+
+
Advanced Search by My Solr Server Settings
+
Advanced Search by My Solr Server plugin replaces the default WordPress search with powerfull Solr search.
'.sprintf(__('Akismet %s requires WordPress 3.0 or higher.'), AKISMET_VERSION) .' '.sprintf(__('Please upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin.'), 'http://codex.wordpress.org/Upgrading_WordPress', 'http://wordpress.org/extend/plugins/akismet/download/'). '
'.__('Akismet has detected a problem.').' '.sprintf(__('Some comments have not yet been checked for spam by Akismet. They have been temporarily held for moderation. Please check your Akismet configuration and contact your web host if problems persist.'), 'admin.php?page=akismet-key-config').'
%1$s spam for you since you first installed it.'), number_format_i18n($count) ); ?>
+'.__('You have no spam currently in the queue. Must be your lucky day. :)').'';
+ echo '
';
+} else {
+ echo '
'.__('You can delete all of the spam from your database with a single click. This operation cannot be undone, so you may wish to check to ensure that no legitimate comments got through first. Spam is automatically deleted after 15 days, so don’t sweat it.').'
';
+?>
+
+
+
+
+
+
+
+
+'.__('These are the latest comments identified as spam by Akismet. If you see any mistakes, simply mark the comment as "not spam" and Akismet will learn from the submission. If you wish to recover a comment from spam, simply select the comment, and click Not Spam. After 15 days we clean out the junk for you.').''; ?>
+
+escape($_POST['s']);
+ $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE
+ (comment_author LIKE '%$s%' OR
+ comment_author_email LIKE '%$s%' OR
+ comment_author_url LIKE ('%$s%') OR
+ comment_author_IP LIKE ('%$s%') OR
+ comment_content LIKE ('%$s%') ) AND
+ comment_approved = 'spam'
+ ORDER BY comment_date DESC");
+} else {
+ if ( isset( $_GET['apage'] ) )
+ $page = (int) $_GET['apage'];
+ else
+ $page = 1;
+
+ if ( $page < 2 )
+ $page = 1;
+
+ $current_type = false;
+ if ( isset( $_GET['ctype'] ) )
+ $current_type = preg_replace( '|[^a-z]|', '', $_GET['ctype'] );
+
+ $comments = akismet_spam_comments( $current_type, $page );
+ $total = akismet_spam_count( $current_type );
+ $totals = akismet_spam_totals();
+?>
+
' . $button, $page );
+ return $page;
+ }
+
+ if ( $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'" ) )
+ ob_start( 'akismet_recheck_button' );
+}
+
+// This option causes tons of FPs, was removed in 2.1
+function akismet_kill_proxy_check( $option ) { return 0; }
+add_filter('option_open_proxy_check', 'akismet_kill_proxy_check');
diff --git a/wp-content/plugins/akismet/readme.txt b/wp-content/plugins/akismet/readme.txt
new file mode 100644
index 0000000..fca32ab
--- /dev/null
+++ b/wp-content/plugins/akismet/readme.txt
@@ -0,0 +1,180 @@
+=== Akismet ===
+Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, automattic
+Tags: akismet, comments, spam
+Requires at least: 3.0
+Tested up to: 3.8.1
+Stable tag: 2.6.0
+License: GPLv2 or later
+
+Akismet checks your comments against the Akismet web service to see if they look like spam or not.
+
+== Description ==
+
+Akismet checks your comments against the Akismet web service to see if they look like spam or not and lets you
+review the spam it catches under your blog's "Comments" admin screen.
+
+Major new features in Akismet 2.5 include:
+
+* A comment status history, so you can easily see which comments were caught or cleared by Akismet, and which were spammed or unspammed by a moderator
+* Links are highlighted in the comment body, to reveal hidden or misleading links
+* If your web host is unable to reach Akismet's servers, the plugin will automatically retry when your connection is back up
+* Moderators can see the number of approved comments for each user
+* Spam and Unspam reports now include more information, to help improve accuracy
+
+PS: You'll need an [Akismet.com API key](http://akismet.com/get/) to use it. Keys are free for personal blogs, with paid subscriptions available for businesses and commercial sites.
+
+== Installation ==
+
+Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.com API key](http://akismet.com/get/).
+
+1, 2, 3: You're done!
+
+== Changelog ==
+
+= 2.6.0 =
+* Add ajax paging to the check for spam button to handle large volumes of comments
+* Optimize javascript and add localization support
+* Fix bug in link to spam comments from right now dashboard widget
+* Fix bug with deleting old comments to avoid timeouts dealing with large volumes of comments
+* Include X-Pingback-Forwarded-For header in outbound WordPress pingback verifications
+* Add pre-check for pingbacks, to stop spam before an outbound verification request is made
+
+= 2.5.9 =
+* Update 'Already have a key' link to redirect page rather than depend on javascript
+* Fix some non-translatable strings to be translatable
+* Update Activation banner in plugins page to redirect user to Akismet config page
+
+= 2.5.8 =
+* Simplify the activation process for new users
+* Remove the reporter_ip parameter
+* Minor preventative security improvements
+
+= 2.5.7 =
+* FireFox Stats iframe preview bug
+* Fix mshots preview when using https
+* Add .htaccess to block direct access to files
+* Prevent some PHP notices
+* Fix Check For Spam return location when referrer is empty
+* Fix Settings links for network admins
+* Fix prepare() warnings in WP 3.5
+
+= 2.5.6 =
+* Prevent retry scheduling problems on sites where wp_cron is misbehaving
+* Preload mshot previews
+* Modernize the widget code
+* Fix a bug where comments were not held for moderation during an error condition
+* Improve the UX and display when comments are temporarily held due to an error
+* Make the Check For Spam button force a retry when comments are held due to an error
+* Handle errors caused by an invalid key
+* Don't retry comments that are too old
+* Improve error messages when verifying an API key
+
+= 2.5.5 =
+* Add nonce check for comment author URL remove action
+* Fix the settings link
+
+= 2.5.4 =
+* Limit Akismet CSS and Javascript loading in wp-admin to just the pages that need it
+* Added author URL quick removal functionality
+* Added mShot preview on Author URL hover
+* Added empty index.php to prevent directory listing
+* Move wp-admin menu items under Jetpack, if it is installed
+* Purge old Akismet comment meta data, default of 15 days
+
+= 2.5.3 =
+* Specify the license is GPL v2 or later
+* Fix a bug that could result in orphaned commentmeta entries
+* Include hotfix for WordPress 3.0.5 filter issue
+
+= 2.5.2 =
+
+* Properly format the comment count for author counts
+* Look for super admins on multisite installs when looking up user roles
+* Increase the HTTP request timeout
+* Removed padding for author approved count
+* Fix typo in function name
+* Set Akismet stats iframe height to fixed 2500px. Better to have one tall scroll bar than two side by side.
+
+= 2.5.1 =
+
+* Fix a bug that caused the "Auto delete" option to fail to discard comments correctly
+* Remove the comment nonce form field from the 'Akismet Configuration' page in favor of using a filter, akismet_comment_nonce
+* Fixed padding bug in "author" column of posts screen
+* Added margin-top to "cleared by ..." badges on dashboard
+* Fix possible error when calling akismet_cron_recheck()
+* Fix more PHP warnings
+* Clean up XHTML warnings for comment nonce
+* Fix for possible condition where scheduled comment re-checks could get stuck
+* Clean up the comment meta details after deleting a comment
+* Only show the status badge if the comment status has been changed by someone/something other than Akismet
+* Show a 'History' link in the row-actions
+* Translation fixes
+* Reduced font-size on author name
+* Moved "flagged by..." notification to top right corner of comment container and removed heavy styling
+* Hid "flagged by..." notification while on dashboard
+
+= 2.5.0 =
+
+* Track comment actions under 'Akismet Status' on the edit comment screen
+* Fix a few remaining deprecated function calls ( props Mike Glendinning )
+* Use HTTPS for the stats IFRAME when wp-admin is using HTTPS
+* Use the WordPress HTTP class if available
+* Move the admin UI code to a separate file, only loaded when needed
+* Add cron retry feature, to replace the old connectivity check
+* Display Akismet status badge beside each comment
+* Record history for each comment, and display it on the edit page
+* Record the complete comment as originally submitted in comment_meta, to use when reporting spam and ham
+* Highlight links in comment content
+* New option, "Show the number of comments you've approved beside each comment author."
+* New option, "Use a nonce on the comment form."
+
+= 2.4.0 =
+
+* Spell out that the license is GPLv2
+* Fix PHP warnings
+* Fix WordPress deprecated function calls
+* Fire the delete_comment action when deleting comments
+* Move code specific for older WP versions to legacy.php
+* General code clean up
+
+= 2.3.0 =
+
+* Fix "Are you sure" nonce message on config screen in WPMU
+* Fix XHTML compliance issue in sidebar widget
+* Change author link; remove some old references to WordPress.com accounts
+* Localize the widget title (core ticket #13879)
+
+= 2.2.9 =
+
+* Eliminate a potential conflict with some plugins that may cause spurious reports
+
+= 2.2.8 =
+
+* Fix bug in initial comment check for ipv6 addresses
+* Report comments as ham when they are moved from spam to moderation
+* Report comments as ham when clicking undo after spam
+* Use transition_comment_status action when available instead of older actions for spam/ham submissions
+* Better diagnostic messages when PHP network functions are unavailable
+* Better handling of comments by logged-in users
+
+= 2.2.7 =
+
+* Add a new AKISMET_VERSION constant
+* Reduce the possibility of over-counting spam when another spam filter plugin is in use
+* Disable the connectivity check when the API key is hard-coded for WPMU
+
+= 2.2.6 =
+
+* Fix a global warning introduced in 2.2.5
+* Add changelog and additional readme.txt tags
+* Fix an array conversion warning in some versions of PHP
+* Support a new WPCOM_API_KEY constant for easier use with WordPress MU
+
+= 2.2.5 =
+
+* Include a new Server Connectivity diagnostic check, to detect problems caused by firewalls
+
+= 2.2.4 =
+
+* Fixed a key problem affecting the stats feature in WordPress MU
+* Provide additional blog information in Akismet API calls
diff --git a/wp-content/plugins/akismet/widget.php b/wp-content/plugins/akismet/widget.php
new file mode 100644
index 0000000..8c5a120
--- /dev/null
+++ b/wp-content/plugins/akismet/widget.php
@@ -0,0 +1,108 @@
+ __( 'Display the number of spam comments Akismet has caught' ) )
+ );
+
+ if ( is_active_widget( false, false, $this->id_base ) ) {
+ add_action( 'wp_head', array( $this, 'css' ) );
+ }
+ }
+
+ function css() {
+?>
+
+
+
+
+
+
' . sprintf(__('%s requires WordPress %s or higher and PHP %s or higher. The plugin will not function until you update your software. Please deactivate this plugin.', $this->plugin_dkey), $this->plugin_title, $this->wp_ver, $this->php_ver) . '
+plugin_ver)) return '';
+ return '' . $this->plugin_ver . '';
+ }
+
+ function init()
+ {
+ // Build constants
+ $this->build_constants();
+ // Build options
+ $this->build_options();
+ // Load libraries
+ $this->load_libraries();
+ // Add actions and filters
+ $this->add_hooks();
+ // Enqueue needed media, conditionally
+ add_action('init', array($this, 'enqueue_media'));
+ // Load other properties
+ $this->init_properties();
+ // Loaded everything for this plugin, now you can add other things to it, such as stylesheet, etc.
+ do_action($this->plugin_key . '_loaded');
+ // Support installation and uninstallation
+ register_activation_hook($this->plugin_file, array($this, 'install'));
+ register_deactivation_hook($this->plugin_file, array($this, 'uninstall'));
+ // icon 32px
+ if ($this->is_admin_page())
+ {
+ add_filter('bwp-admin-form-icon', array($this, 'add_icon'));
+ add_filter('bwp-admin-plugin-version', array($this, 'show_version'));
+ add_action('bwp_option_action_before_form', array($this, 'show_donation'), 12);
+ }
+ }
+
+ function add_cap($cap)
+ {
+ $this->plugin_cap = $cap;
+ }
+
+ function build_constants()
+ {
+ define($this->plugin_ckey . '_PLUGIN_URL', $this->plugin_url);
+ // Path
+ if (true == $this->need_media_filters)
+ {
+ define($this->plugin_ckey . '_IMAGES', apply_filters($this->plugin_key . '_image_path', plugin_dir_url($this->plugin_file) . 'images'));
+ define($this->plugin_ckey . '_CSS', apply_filters($this->plugin_key . '_css_path', plugin_dir_url($this->plugin_file) . 'css'));
+ define($this->plugin_ckey . '_JS', apply_filters($this->plugin_key . '_js_path', plugin_dir_url($this->plugin_file) . 'js'));
+ }
+ else
+ {
+ define($this->plugin_ckey . '_IMAGES', plugin_dir_url($this->plugin_file) . 'images');
+ define($this->plugin_ckey . '_CSS', plugin_dir_url($this->plugin_file) . 'css');
+ define($this->plugin_ckey . '_JS', plugin_dir_url($this->plugin_file) . 'js');
+ }
+ // Option page related
+ define($this->plugin_ckey . '_CAPABILITY', $this->plugin_cap); // the capability needed to configure this plugin
+
+ foreach ($this->option_keys as $key => $option)
+ {
+ define(strtoupper($key), $option);
+ }
+
+ foreach ($this->extra_option_keys as $key => $option)
+ {
+ define(strtoupper($key), $option);
+ }
+ }
+
+ function build_options()
+ {
+ // Get all options and merge them
+ $options = $this->options_default;
+ foreach ($this->option_keys as $option)
+ {
+ $db_option = get_option($option);
+ if ($db_option && is_array($db_option))
+ $options = array_merge($options, $db_option);
+ unset($db_option);
+ // Also check for global options if in Multi-site
+ if ($this->is_multisite())
+ {
+ $db_option = get_site_option($option);
+ if ($db_option && is_array($db_option))
+ {
+ $temp = array();
+ foreach ($db_option as $k => $o)
+ {
+ if (in_array($k, $this->site_options))
+ $temp[$k] = $o;
+ }
+ $options = array_merge($options, $temp);
+ }
+ }
+ }
+ $this->options = $options;
+ }
+
+ function init_properties()
+ {
+ /* intentionally left blank */
+ }
+
+ function load_libraries()
+ {
+ /* intentionally left blank */
+ }
+
+ function add_hooks()
+ {
+ /* intentionally left blank */
+ }
+
+ function enqueue_media()
+ {
+ /* intentionally left blank */
+ }
+
+ function install()
+ {
+ /* intentionally left blank */
+ }
+
+ function uninstall()
+ {
+ /* intentionally left blank */
+ }
+
+ function is_admin_page()
+ {
+ if (is_admin() && !empty($_GET['page']) && (in_array($_GET['page'], $this->option_keys) || in_array($_GET['page'], $this->extra_option_keys)))
+ return true;
+ }
+
+ function plugin_action_links($links, $file)
+ {
+ $option_script = (!$this->_menu_under_settings && !$this->_simple_menu) ? 'admin.php' : 'options-general.php';
+ $option_keys = array_values($this->option_keys);
+ if ($file == plugin_basename($this->plugin_file))
+ $links[] = '' . __('Settings') . '';
+
+ return $links;
+ }
+
+ function init_admin()
+ {
+ $this->_menu_under_settings = apply_filters('bwp_menus_under_settings', false);
+
+ add_filter('plugin_action_links', array($this, 'plugin_action_links'), 10, 2);
+
+ if ($this->is_admin_page())
+ {
+ // Build tabs
+ $this->build_tabs();
+ // Load option page builder
+ if (!class_exists('BWP_OPTION_PAGE'))
+ require_once(dirname(__FILE__) . '/bwp-option-page/bwp-option-page.php');
+ // Enqueue style sheets and scripts for the option page
+ wp_enqueue_style('bwp-option-page', plugin_dir_url($this->plugin_file) . 'includes/bwp-option-page/css/bwp-option-page.css', array(), '1.0.1');
+ wp_enqueue_script('bwp-paypal-js', plugin_dir_url($this->plugin_file) . 'includes/bwp-option-page/js/paypal.js', array('jquery'));
+ }
+
+ $this->build_menus();
+ }
+
+ /**
+ * Build the Menus
+ */
+ function build_menus()
+ {
+ /* intentionally left blank */
+ }
+
+ function build_tabs()
+ {
+ $option_script = (!$this->_menu_under_settings) ? 'admin.php' : 'options-general.php';
+ foreach ($this->option_pages as $key => $page)
+ {
+ $pagelink = (!empty($this->option_keys[$key])) ? $this->option_keys[$key] : $this->extra_option_keys[$key];
+ $this->form_tabs[$page] = get_option('siteurl') . '/wp-admin/' . $option_script . '?page=' . $pagelink;
+ }
+ }
+
+ /**
+ * Build the option pages
+ *
+ * Utilizes BWP Option Page Builder (@see BWP_OPTION_PAGE)
+ */
+ function build_option_pages()
+ {
+ /* intentionally left blank */
+ }
+
+ function add_notice($notice)
+ {
+ if (!in_array($notice, $this->notices))
+ {
+ $this->notices[] = $notice;
+ add_action('bwp_option_action_before_form', array($this, 'show_notices'));
+ }
+ }
+
+ function show_notices()
+ {
+ if (false == $this->notice_shown)
+ {
+ foreach ($this->notices as $notice)
+ {
+ echo '
' . $notice . '
';
+ }
+ $this->notice_shown = true;
+ }
+ }
+
+ function is_multisite()
+ {
+ if (function_exists('is_multisite') && is_multisite())
+ return true;
+ return false;
+ }
+
+ function is_normal_admin()
+ {
+ if ($this->is_multisite() && !is_super_admin())
+ return true;
+ return false;
+ }
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-gxs-cache.php b/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-gxs-cache.php
new file mode 100644
index 0000000..c353641
--- /dev/null
+++ b/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-gxs-cache.php
@@ -0,0 +1,136 @@
+
+ * @license http://www.gnu.org/licenses/gpl.html GNU GENERAL PUBLIC LICENSE
+ */
+
+class BWP_GXS_CACHE {
+
+ var $module = '';
+ var $cache_dir = '';
+ var $cache_file = '';
+ var $cache_time = 0;
+ var $gzip = false;
+ var $has_cache = false;
+ var $options;
+ var $now;
+ var $cache_header = array();
+ var $cache_ok = false;
+
+ function __construct($config = array())
+ {
+ global $bwp_gxs;
+
+ // Init necessary config to work with the cache
+ $this->options = $bwp_gxs->get_options();
+ $this->module = $config['module'];
+ $this->module_name = $config['module_name'];
+ $this->cache_dir = $this->options['input_cache_dir'];
+ $this->gzip = ('yes' == $this->options['enable_gzip']) ? true : false;
+ $this->cache_time = (int) $this->options['input_cache_age'] * (int) $this->options['select_time_type'];
+ $this->now = time();
+
+ if (empty($this->cache_dir) || !@is_writable($this->cache_dir))
+ $bwp_gxs->elog(sprintf(__('Cache directory ("%s") does not exist or is not writable.', 'bwp-simple-gxs'), $this->cache_dir));
+ else
+ $this->setup_cache();
+ }
+
+ function get_header()
+ {
+ return $this->cache_header;
+ }
+
+ function get_cache_file()
+ {
+ return $this->cache_file;
+ }
+
+ function check_cache()
+ {
+ global $bwp_gxs;
+
+ // If the cache file is not found
+ if (!@file_exists($this->cache_file))
+ {
+ $bwp_gxs->nlog(sprintf(__('Cache file for module %s is not found and will be built right away.', 'bwp-simple-gxs'), $this->module));
+ return false;
+ }
+ $this->has_cache = true;
+
+ return true;
+ }
+
+ function setup_cache()
+ {
+ global $bwp_gxs;
+ // Build cache file name, WPMS compatible
+ $file_name = 'gxs_' . md5($this->module . '_' . get_option('home'));
+ // $file_name .= (true == $this->gzip) ? '.xml.gz' : '.xml';
+ // Use gz all the time to save space
+ $file_name .= '.xml.gz';
+ $this->cache_file = trailingslashit($this->cache_dir) . $file_name;
+ $this->cache_ok = true;
+
+ if ($this->check_cache())
+ {
+ // So cache is found, check if we can still use it
+ $filemtime = @filemtime($this->cache_file);
+ if ($filemtime + $this->cache_time <= $this->now && 'yes' == $this->options['enable_cache_auto_gen'])
+ {
+ @unlink($this->cache_file);
+ $this->has_cache = false;
+ }
+
+ if (!$this->has_cache)
+ {
+ $header['lastmod'] = $bwp_gxs->format_header_time($this->now);
+ $header['expires'] = $bwp_gxs->format_header_time($this->now + $this->cache_time);
+ $header['etag'] = md5($header['expires'] . $this->cache_file);
+ }
+ else
+ {
+ $header['lastmod'] = $bwp_gxs->format_header_time($filemtime);
+ $header['expires'] = $bwp_gxs->format_header_time($filemtime + $this->cache_time);
+ $header['etag'] = md5($header['expires'] . $this->cache_file);
+ }
+
+ $this->cache_header = $header;
+
+ if ('yes' == $this->options['enable_debug'])
+ return;
+
+ if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || isset($_SERVER['HTTP_IF_NONE_MATCH']))
+ {
+ if ((isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $header['lastmod']) ||
+ (isset($_SERVER['HTTP_IF_NONE_MATCH']) && str_replace('"', '', stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])) == $header['etag']))
+ {
+ $bwp_gxs->slog(sprintf(__('Successfully served a cached version of %s.xml.', 'bwp-simple-gxs'), $this->module_name), true);
+ $bwp_gxs->commit_logs();
+ header('HTTP/1.1 304 Not Modified');
+ exit();
+ }
+ }
+ }
+ }
+
+ function write_cache()
+ {
+ global $bwp_gxs;
+
+ $file = $this->cache_file;
+
+ $handle = @gzopen($file, 'wb');
+ @flock($handle, LOCK_EX);
+ @gzwrite($handle, $bwp_gxs->output);
+ @flock($handle, LOCK_UN);
+ @gzclose($handle);
+
+ @umask(0000);
+ @chmod($file, 0666);
+
+ return true;
+ }
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-gxs-module.php b/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-gxs-module.php
new file mode 100644
index 0000000..a48af18
--- /dev/null
+++ b/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-gxs-module.php
@@ -0,0 +1,431 @@
+
+ * @license http://www.gnu.org/licenses/gpl.html GNU GENERAL PUBLIC LICENSE VERSION 3.0 OR LATER
+ */
+
+class BWP_GXS_MODULE {
+
+ /**
+ * Data used to build a sitemap
+ */
+ var $data = array();
+
+ /**
+ * Is this a sitemapindex or a url set?
+ */
+ var $type = 'url';
+
+ /**
+ * Priority mapping
+ */
+ var $freq_to_pri = array('always' => 1.0, 'hourly' => 0.8, 'daily' => 0.7, 'weekly' => 0.6, 'monthly' => 0.4, 'yearly' => 0.3, 'never' => 0.2);
+
+ var $comment_count = 0, $now, $offset = 0, $url_sofar = 0, $circle = 0;
+ var $perma_struct = '', $post_type = NULL;
+ var $limit = 0;
+
+ function __contruct()
+ {
+ /* Intetionally left blank */
+ }
+
+ function set_current_time()
+ {
+ $this->now = (int) time();
+ }
+
+ function init_data($pre_data = array())
+ {
+ global $bwp_gxs;
+
+ if (empty($this->now))
+ $this->set_current_time();
+
+ $data['location'] = '';
+ $data['lastmod'] = (!empty($pre_data['lastmod'])) ? strtotime($pre_data['lastmod']) - $bwp_gxs->oldest_time : $this->now - $bwp_gxs->oldest_time;
+ $data['lastmod'] = $this->format_lastmod($data['lastmod']);
+
+ if (empty($pre_data) || sizeof($pre_data) == 0)
+ return $data;
+
+ if (isset($pre_data['freq'])) $data['freq'] = $pre_data['freq'];
+ if (isset($pre_data['priority'])) $data['priority'] = $pre_data['priority'];
+
+ return $data;
+ }
+
+ function get_xml_link($slug)
+ {
+ global $bwp_gxs;
+
+ if (!$bwp_gxs->use_permalink)
+ return home_url() . '/?' . $bwp_gxs->query_var_non_perma . '=' . $slug;
+ else
+ {
+ $permalink = get_option('permalink_structure');
+ // If user is using index.php in their permalink structure, we will have to include it also
+ $indexphp = (strpos($permalink, 'index.php') === false) ? '' : '/index.php';
+ return home_url() . $indexphp . '/' . $slug . '.xml';
+ }
+ }
+
+ /**
+ * Calculate the change frequency for a specific item.
+ *
+ * @copyright (c) 2006 - 2009 www.phpbb-seo.com
+ */
+ function cal_frequency($item = '', $lastmod = '')
+ {
+ global $bwp_gxs;
+
+ if (empty($this->now))
+ $this->now = $this->set_current_time();
+
+ $lastmod = (is_object($item)) ? $item->post_modified : $lastmod;
+
+ if (empty($lastmod))
+ $freq = $bwp_gxs->options['select_default_freq'];
+ else
+ {
+ $time = $this->now - strtotime($lastmod);
+ $freq = $time > 30000000 ? 'yearly' : ($time > 2592000 ? 'monthly' : ($time > 604800 ? 'weekly' : ($time > 86400 ? 'daily' : ($time > 43200 ? 'hourly' : 'always'))));
+ }
+ return apply_filters('bwp_gxs_freq', $freq, $item);
+ }
+
+ /**
+ * Calculate the priority for a specific item.
+ *
+ * This is just a basic way to calculate priority and module should use its own function instead.
+ * Search engines don't really care about priority and change frequency much, do they ;)?
+ */
+ function cal_priority($item, $freq = 'daily')
+ {
+ global $bwp_gxs;
+
+ if (empty($this->now))
+ $this->now = $this->set_current_time();
+
+ if (!is_object($item)) // determine score by change frequency
+ $score = $this->freq_to_pri[$freq];
+ else
+ {
+ $comment = (!empty($item->comment_count)) ? $item->comment_count : 1;
+ // There is no magic behind this, number of comments and freshness define priority
+ // yes, 164 is a lucky (and random) number :). Actually this number works well with current Unix Timestamp,
+ // which is larger than 13m.
+ $score = $this->now + ($this->now - (int) strtotime($item->post_modified)) / $comment * 164;
+ $score = $this->now / $score;
+ }
+
+ $score = ($score < $bwp_gxs->options['select_min_pri']) ? $bwp_gxs->options['select_min_pri'] : $score;
+
+ // For people who doesn't like using module
+ return apply_filters('bwp_gxs_priority_score', $score, $item, $freq);
+ }
+
+ function format_lastmod($lastmod)
+ {
+ global $bwp_gxs;
+ // Hit or miss :-?
+ $lastmod = $lastmod - get_option('gmt_offset') * 3600;
+ if ('yes' == $bwp_gxs->options['enable_gmt'])
+ return gmdate('c', (int) $lastmod);
+ else
+ return date('c', (int) $lastmod);
+ }
+
+ function post_type_uses($post_type, $taxonomy_object)
+ {
+ if (isset($taxonomy_object->object_type) && is_array($taxonomy_object->object_type) && in_array($post_type, $taxonomy_object->object_type))
+ return true;
+ return false;
+ }
+
+ function get_post_by_post_type($post_type, $result)
+ {
+ if (!isset($result) || !is_array($result))
+ return false;
+
+ for ($i = 0; $i < sizeof($result); $i++)
+ {
+ $post = $result[$i];
+ if ($post_type == $post->post_type)
+ return $post;
+ }
+
+ return false;
+ }
+
+ function sort_data_by($column = 'lastmod')
+ {
+ if (!isset($this->data[0][$column]))
+ return false;
+ // Obtain a list of columns
+ $lastmod = array();
+ for ($i = 0; $i < sizeof($this->data); $i++)
+ $lastmod[$i] = $this->data[$i][$column];
+ // Add $data as the last parameter, to sort by the common key
+ array_multisort($lastmod, SORT_DESC, $this->data);
+ }
+
+ function using_permalinks()
+ {
+ $perma_struct = get_option('permalink_structure');
+ return (!empty($perma_struct));
+ }
+
+ /**
+ * Get term links without using any SQL queries and the cache.
+ */
+ function get_term_link($term, $taxonomy = '')
+ {
+ global $wp_rewrite;
+
+ $taxonomy = $term->taxonomy;
+ $termlink = $wp_rewrite->get_extra_permastruct($taxonomy);
+ $slug = $term->slug;
+ $t = get_taxonomy($taxonomy);
+
+ if (empty($termlink))
+ {
+ if ('category' == $taxonomy)
+ $termlink = '?cat=' . $term->term_id;
+ elseif ($t->query_var)
+ $termlink = "?$t->query_var=$slug";
+ else
+ $termlink = "?taxonomy=$taxonomy&term=$slug";
+ $termlink = home_url($termlink);
+ }
+ else
+ {
+ if ($t->rewrite['hierarchical'] && !empty($term->parent))
+ {
+ $hierarchical_slugs = array();
+ $ancestors = get_ancestors($term->term_id, $taxonomy);
+ foreach ((array)$ancestors as $ancestor)
+ {
+ $ancestor_term = get_term($ancestor, $taxonomy);
+ $hierarchical_slugs[] = $ancestor_term->slug;
+ }
+ $hierarchical_slugs = array_reverse($hierarchical_slugs);
+ $hierarchical_slugs[] = $slug;
+ $termlink = str_replace("%$taxonomy%", implode('/', $hierarchical_slugs), $termlink);
+ }
+ else
+ {
+ $termlink = str_replace("%$taxonomy%", $slug, $termlink);
+ }
+ $termlink = home_url( user_trailingslashit($termlink, 'category') );
+ }
+
+ // Back Compat filters.
+ if ('post_tag' == $taxonomy)
+ $termlink = apply_filters('tag_link', $termlink, $term->term_id);
+ elseif ('category' == $taxonomy)
+ $termlink = apply_filters('category_link', $termlink, $term->term_id);
+
+ return apply_filters('term_link', $termlink, $term, $taxonomy);
+ }
+
+ function get_post_permalink($leavename = false, $sample = false)
+ {
+ global $wp_rewrite, $post;
+
+ if (is_wp_error($post))
+ return $post;
+
+ $post_link = $wp_rewrite->get_extra_permastruct($post->post_type);
+ $slug = $post->post_name;
+ $draft_or_pending = isset($post->post_status) && in_array($post->post_status, array('draft', 'pending', 'auto-draft'));
+ $post_type = get_post_type_object($post->post_type);
+
+ if (!empty($post_link) && (!$draft_or_pending || $sample))
+ {
+ if (!$leavename)
+ $post_link = str_replace("%$post->post_type%", $slug, $post_link);
+ $post_link = home_url(user_trailingslashit($post_link));
+ }
+ else
+ {
+ if ($post_type->query_var && (isset($post->post_status) && !$draft_or_pending))
+ $post_link = add_query_arg($post_type->query_var, $slug, '');
+ else
+ $post_link = add_query_arg(array('post_type' => $post->post_type, 'p' => $post->ID), '');
+ $post_link = home_url($post_link);
+ }
+
+ return apply_filters('post_type_link', $post_link, $post, $leavename, $sample);
+ }
+
+ function get_permalink($leavename = false)
+ {
+ global $post;
+
+ $rewritecode = array(
+ '%year%',
+ '%monthnum%',
+ '%day%',
+ '%hour%',
+ '%minute%',
+ '%second%',
+ $leavename? '' : '%postname%',
+ '%post_id%',
+ '%category%',
+ '%author%',
+ $leavename? '' : '%pagename%',
+ );
+
+ if (!isset($post) || !is_object($post))
+ return '';
+
+ $custom_post_types = get_post_types(array('_builtin' => false));
+ if (!isset($this->post_type))
+ $this->post_type = get_post_type_object($post->post_type);
+
+ if ('post' != $post->post_type && !in_array($post->post_type, $custom_post_types))
+ return '';
+
+ if (in_array($post->post_type, $custom_post_types))
+ {
+ if ($this->post_type->hierarchical)
+ {
+ wp_cache_add($post->ID, $post, 'posts');
+ return get_post_permalink($post->ID, $leavename);
+ }
+ else
+ return $this->get_post_permalink();
+ }
+
+ // In case module author doesn't initialize this variable
+ $permalink = (empty($this->perma_struct)) ? get_option('permalink_structure') : $this->perma_struct;
+ $permalink = apply_filters('pre_post_link', $permalink, $post, $leavename);
+ if ('' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
+ {
+ $unixtime = strtotime($post->post_date);
+ $category = '';
+ if (strpos($permalink, '%category%') !== false)
+ {
+ // If this post belongs to a category with a parent, we have to rely on WordPress to build our permalinks
+ // This can cause white page for sites that have a lot of posts, don't blame this plugin, blame WordPress ;)
+ if (empty($post->slug) || !empty($post->parent))
+ {
+ $cats = get_the_category($post->ID);
+ if ($cats)
+ {
+ usort($cats, '_usort_terms_by_ID'); // order by ID
+ $category = $cats[0]->slug;
+ if ($parent = $cats[0]->parent)
+ $category = get_category_parents($parent, false, '/', true) . $category;
+ }
+ }
+ else
+ $category = (strpos($permalink, '%category%') !== false) ? $post->slug : '';
+
+ if (empty($category))
+ {
+ $default_category = get_category( get_option( 'default_category' ) );
+ $category = is_wp_error($default_category) ? '' : $default_category->slug;
+ }
+ }
+ $author = '';
+ if (strpos($permalink, '%author%') !== false)
+ {
+ $authordata = get_userdata($post->post_author);
+ $author = $authordata->user_nicename;
+ }
+
+ $date = explode(' ', date('Y m d H i s', $unixtime));
+ $rewritereplace =
+ array(
+ $date[0],
+ $date[1],
+ $date[2],
+ $date[3],
+ $date[4],
+ $date[5],
+ $post->post_name,
+ $post->ID,
+ $category,
+ $author,
+ $post->post_name
+ );
+
+ $permalink = home_url(str_replace($rewritecode, $rewritereplace, $permalink));
+ $permalink = user_trailingslashit($permalink, 'single');
+ }
+ else // if they're not using the fancy permalink option
+ $permalink = home_url('?p=' . $post->ID);
+
+ return apply_filters('post_link', $permalink, $post, $leavename);
+ }
+
+ /**
+ * Always call this function when you query for something.
+ *
+ * $query_str should be already escaped using either $wpdb->escape() or $wpdb->prepare().
+ */
+ function get_results($query_str)
+ {
+ global $bwp_gxs, $wpdb;
+
+ $start = (!empty($this->url_sofar)) ? $this->offset + (int) $this->url_sofar : $this->offset;
+ $end = (int) $bwp_gxs->options['input_sql_limit'];
+ $limit = $this->limit;
+ // If we exceed the actual limit, limit $end to the correct limit - @since 1.1.5
+ if ($this->url_sofar + $end > $limit)
+ $end = $limit - $this->url_sofar;
+ $query_str = trim($query_str);
+ $query_str .= ' LIMIT ' . $start . ',' . $end;
+
+ return $wpdb->get_results($query_str);
+ }
+
+ /**
+ * Always call this function when you query for something.
+ *
+ * $query_str should be similar to what WP_Query accepts.
+ */
+ function query_posts($query_str)
+ {
+ $this->circle += 1;
+ if (is_array($query_str))
+ {
+ $query_str['posts_per_page'] = (int) $bwp_gxs->options['input_sql_limit'];
+ $query_str['paged'] = $this->circle;
+ }
+ else if (is_string($query_str))
+ {
+ $query_str = trim($query_str);
+ $query_str .= '&posts_per_page=' . (int) $bwp_gxs->options['input_sql_limit'];
+ $query_str .= '&paged=' . $this->circle;
+ }
+ $query = new WP_Query($query_str);
+ return $query;
+ }
+
+ function generate_data()
+ {
+ return false;
+ }
+
+ function build_data($sort_column = '')
+ {
+ global $bwp_gxs;
+
+ // Use part limit or global item limit - @since 1.1.0
+ $this->limit = (empty($this->part)) ? $bwp_gxs->options['input_item_limit'] : $bwp_gxs->options['input_split_limit_post'];
+ // If this is a Google News sitemap, limit is 1000
+ $this->limit = ('news' == $this->type) ? 1000 : $this->limit;
+ $this->offset = (empty($this->part)) ? 0 : ($this->part - 1) * $bwp_gxs->options['input_split_limit_post'];
+
+ while ($this->url_sofar < $this->limit && false != $this->generate_data())
+ $this->url_sofar = sizeof($this->data);
+
+ // Sort the data by preference
+ if (!empty($sort_column))
+ $this->sort_data_by($sort_column);
+ }
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-simple-gxs.php b/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-simple-gxs.php
new file mode 100644
index 0000000..2c9f42e
--- /dev/null
+++ b/wp-content/plugins/bwp-google-xml-sitemaps/includes/class-bwp-simple-gxs.php
@@ -0,0 +1,1862 @@
+
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+if (!class_exists('BWP_FRAMEWORK'))
+ require_once(dirname(__FILE__) . '/class-bwp-framework.php');
+
+class BWP_SIMPLE_GXS extends BWP_FRAMEWORK {
+
+ /**
+ * Debugging the plugin
+ */
+ var $debug = true, $logs = array('log' => array(), 'sitemap' => array());
+
+ /**
+ * Modules to load when generating sitemapindex
+ */
+ var $allowed_modules = array(), $requested_modules = array();
+
+ /**
+ * Directory to load modules from
+ */
+ var $module_directory = '';
+
+ /**
+ * The permalink structure for sitemap files
+ */
+ var $module_url = array();
+
+ /**
+ * Frequency & priority
+ */
+ var $frequency = array('always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never');
+ var $priority = array('0.1' => 0.1, '0.2' => 0.2, '0.3' => 0.3, '0.4' => 0.4, '0.5' => 0.5, '0.6' => 0.6, '0.7' => 0.7, '0.8' => 0.8, '0.9' => 0.9, '1.0' => 1.0);
+
+ /**
+ * Other properties
+ */
+ var $post_types, $taxonomies, $terms, $cache_time, $module_data, $output, $output_num = 0, $num_log = 25;
+ var $templates = array(), $module_map = array();
+ var $sitemap_alias = array(), $use_permalink = true, $query_var_non_perma = '';
+ var $ping_per_day = 100, $timeout = 3;
+ var $xslt = '', $xslt_index = '';
+ // @since 1.0.1
+ var $build_data = array('time', 'mem', 'query');
+
+ // @since 1.2.0
+ private $_ping_sitemap = 'sitemapindex';
+
+ /**
+ * Constructor
+ */
+ function __construct($version = '1.2.2')
+ {
+ // Plugin's title
+ $this->plugin_title = 'BWP Google XML Sitemaps';
+ // Plugin's version
+ $this->set_version($version);
+ $this->set_version('3.0', 'wp');
+ // Basic version checking
+ if (!$this->check_required_versions())
+ return;
+
+ // Default options
+ $options = array(
+ 'enable_cache' => 'yes',
+ 'enable_cache_auto_gen' => 'yes',
+ 'enable_gzip' => '',
+ 'enable_php_clean' => 'yes',
+ 'enable_xslt' => 'yes',
+ 'enable_sitemap_date' => '',
+ 'enable_sitemap_taxonomy' => 'yes',
+ 'enable_sitemap_external' => '',
+ 'enable_sitemap_split_post' => 'yes',
+ 'enable_sitemap_author' => '',
+ 'enable_sitemap_site' => 'yes',
+ 'enable_stats' => 'yes',
+ 'enable_credit' => 'yes',
+ 'enable_ping' => 'yes',
+ 'enable_ping_google' => 'yes',
+ 'enable_ping_bing' => 'yes',
+ //'enable_ping_ask' => '',
+ 'enable_log' => 'yes',
+ 'enable_debug' => '',
+ 'enable_robots' => 'yes',
+ 'enable_global_robots' => '',
+ 'enable_gmt' => 'yes',
+ // Google news options
+ 'enable_news_sitemap' => '',
+ 'enable_news_keywords' => '',
+ 'enable_news_ping' => '',
+ 'enable_news_multicat' => '',
+ 'select_news_lang' => 'en',
+ 'select_news_keyword_type' => 'cat',
+ 'select_news_cat_action' => 'inc',
+ 'select_news_cats' => '',
+ 'input_news_genres' => array(),
+ // End of Google news options
+ 'input_exclude_post_type' => '',
+ 'input_exclude_taxonomy' => 'post_tag',
+ 'input_cache_age' => 1,
+ 'input_item_limit' => 5000,
+ 'input_split_limit_post' => 5000,
+ 'input_alt_module_dir' => $this->uni_path_sep(ABSPATH),
+ 'input_oldest' => 7,
+ 'input_sql_limit' => 1000,
+ 'input_custom_xslt' => '',
+ 'select_output_type' => 'concise',
+ 'select_time_type' => 3600,
+ 'select_oldest_type' => 16400,
+ 'select_default_freq' => 'daily',
+ 'select_default_pri' => 1.0,
+ 'select_min_pri' => 0.1,
+ 'input_cache_dir' => '',
+ 'input_ping' => array(
+ 'google' => 'http://www.google.com/webmasters/sitemaps/ping?sitemap=%s',
+ 'bing' => 'http://www.bing.com/webmaster/ping.aspx?siteMap=%s'),
+ //'ask' => 'http://submissions.ask.com/ping?sitemap=%s'),
+ 'input_sitemap_url' => '',
+ 'input_sitemap_struct' => ''
+ );
+ // Super admin only options
+ $this->site_options = array('enable_robots', 'enable_global_robots', 'enable_log', 'enable_debug', 'enable_ping', 'enable_ping_google', 'enable_ping_bing', /* 'enable_ping_ask', */ 'enable_gzip', 'enable_php_clean', 'enable_cache', 'enable_cache_auto_gen', 'input_cache_age', 'input_alt_module_dir', 'input_sql_limit', 'input_cache_dir', 'select_time_type');
+
+ $this->build_properties('BWP_GXS', 'bwp-simple-gxs', $options, 'BWP Google XML Sitemaps', dirname(dirname(__FILE__)) . '/bwp-simple-gxs.php', 'http://betterwp.net/wordpress-plugins/google-xml-sitemaps/', false);
+
+ $this->add_option_key('BWP_GXS_STATS', 'bwp_gxs_stats', __('Sitemap Statistics', 'bwp-simple-gxs'));
+ $this->add_option_key('BWP_GXS_OPTION_GENERATOR', 'bwp_gxs_generator', __('Sitemap Generator', 'bwp-simple-gxs'));
+ $this->add_option_key('BWP_GXS_GOOGLE_NEWS', 'bwp_gxs_google_news', __('News Sitemap', 'bwp-simple-gxs'));
+
+ define('BWP_GXS_LOG', 'bwp_gxs_log');
+ define('BWP_GXS_PING', 'bwp_gxs_ping_data');
+
+ $this->init();
+ }
+
+ function init_properties()
+ {
+ $this->module_directory = plugin_dir_path($this->plugin_file) . 'includes/modules/';
+
+ $this->templates = array(
+ // Sitemap index
+ 'sitemap' => "\n\t" . '' . "\n\t\t" . '%s%s' . "\n\t" . '',
+ // Normal sitemap
+ 'url' => "\n\t" . '' . "\n\t\t" . '%1$s%2$s%3$s%4$s' . "\n\t" . '',
+ 'lastmod' => "\n\t\t" . '%s',
+ 'changefreq' => "\n\t\t" . '%s',
+ 'priority' => "\n\t\t" . '%.1f',
+ // Google News Sitemap
+ 'news' => "\n\t" . '' . "\n\t\t" . '%1$s' . "\n\t\t" . '%2$s%3$s%4$s%5$s%6$s' . "\n\t\t" . '' . "\n\t" . '',
+ 'news_publication' => "\n\t\t\t" . '%1$s%2$s',
+ 'news_name' => "\n\t\t\t\t" . '%s',
+ 'news_language' => "\n\t\t\t\t" . '%s',
+ 'news_genres' => "\n\t\t\t" . '%s',
+ 'news_pub_date' => "\n\t\t\t" . '%s',
+ 'news_title' => "\n\t\t\t" . '%s',
+ 'news_keywords' => "\n\t\t\t" . '%s',
+ // Misc
+ 'xslt_style' => '',
+ 'stats' => "\n" . ''
+ /*'stats_cached' => "\n" . ''*/
+ );
+
+ $this->init_gzip();
+
+ $this->cache_time = (int) $this->options['input_cache_age'] * (int) $this->options['select_time_type'];
+ $this->oldest_time = (int) $this->options['input_oldest'] * (int) $this->options['select_oldest_type'];
+ $this->options['input_cache_dir'] = plugin_dir_path($this->plugin_file) . 'cache/';
+ $this->options['input_cache_dir'] = $this->uni_path_sep($this->options['input_cache_dir']);
+
+ $module_map = apply_filters('bwp_gxs_module_mapping', array());
+ $this->module_map = wp_parse_args($module_map, array('post_format' => 'post_tag'));
+
+ // Logs
+ $this->logs = get_option(BWP_GXS_LOG);
+ if (!$this->logs)
+ $this->logs = array('log' => array(), 'sitemap' => array());
+ foreach ($this->logs as $key => $log)
+ if (is_array($log) && $this->num_log < sizeof($log))
+ {
+ $log = array_slice($log, (-1) * $this->num_log);
+ $this->logs[$key] = $log;
+ }
+
+ // Sitemap based on permastruct
+ $permalink = get_option('permalink_structure');
+ if (!$permalink)
+ {
+ $this->use_permalink = false;
+ $this->query_var_non_perma = apply_filters('bwp_gxs_query_var_non_perma', 'bwpsitemap');
+ $this->options['input_sitemap_url'] = home_url() . '/?' . $this->query_var_non_perma . '=sitemapindex';
+ $this->options['input_sitemap_struct'] = home_url() . '/?' . $this->query_var_non_perma . '=%s';
+ }
+ else
+ {
+ // If user is using index.php in their permalink structure, we will have to include it also
+ $indexphp = (strpos($permalink, 'index.php') === false) ? '' : '/index.php';
+ $this->options['input_sitemap_url'] = home_url() . $indexphp . '/sitemapindex.xml';
+ $this->options['input_sitemap_struct'] = home_url() . $indexphp . '/%s.xml';
+ }
+
+ // No more than 50000 URLs per sitemap
+ if (50000 < (int) $this->options['input_item_limit'])
+ $this->options['input_item_limit'] = 50000;
+
+ // Limit per split sitemap - @since 1.1.0
+ // Not higher than 50000 URLs and must be >= SQL cycling limit
+ if ($this->options['input_split_limit_post'] < $this->options['input_sql_limit'])
+ $this->options['input_split_limit_post'] = $this->options['input_sql_limit'];
+ if (50000 < (int) $this->options['input_split_limit_post'])
+ $this->options['input_split_limit_post'] = 50000;
+
+ // XSLT style sheet
+ if ('yes' == $this->options['enable_xslt'])
+ {
+ // If the host the user is using is different from what we get from 'home' option, we need to use the host
+ // so user won't see a style sheet error, which is most of the time mistaken as broken sitemaps - @since 1.1.0
+ $user_host = strtolower($_SERVER['HTTP_HOST']);
+ $blog_home = @parse_url(home_url());
+ $blog_host = strtolower($blog_home['host']);
+ $this->xslt = (!empty($this->options['input_custom_xslt'])) ? $this->options['input_custom_xslt'] : plugin_dir_url($this->plugin_file) . 'xsl/bwp-sitemap.xsl';
+ $this->xslt = ($user_host == $blog_host) ? $this->xslt : str_replace($blog_host, $user_host, $this->xslt);
+ add_action('init', array($this, 'late_init'), 99999);
+ }
+
+ // Some stats
+ $this->build_stats['mem'] = memory_get_usage();
+ }
+
+ function late_init()
+ {
+ $this->xslt = apply_filters('bwp_gxs_xslt', $this->xslt);
+ $this->xslt_index = (empty($this->xslt)) ? '' : str_replace('.xsl', 'index.xsl', $this->xslt);
+ // Update from 1.1.4 to 1.1.5
+ $db_options = get_option(BWP_GXS_OPTION_GENERATOR);
+ if (!isset($db_options['enable_sitemap_site']))
+ self::flush_rewrite_rules();
+ }
+
+ function enqueue_media()
+ {
+ if (is_admin())
+ wp_enqueue_style('bwp-gxs-admin', BWP_GXS_CSS . '/bwp-simple-gxs.css');
+ }
+
+ function insert_query_vars($vars)
+ {
+ if (!$this->use_permalink)
+ array_push($vars, $this->query_var_non_perma);
+ else
+ {
+ array_push($vars, 'gxs_module');
+ array_push($vars, 'gxs_sub_module');
+ }
+ return $vars;
+ }
+
+ function insert_rewrite_rules($rules)
+ {
+ // More compatible with blogs that are set up with sitemap.xml - @since 1.0.1
+ $rewrite_rules = array(
+ 'sitemap\.xml$' => 'index.php?gxs_module=sitemapindex',
+ 'sitemapindex\.xml$' => 'index.php?gxs_module=sitemapindex',
+ 'site\.xml$' => 'index.php?gxs_module=site',
+ 'page\.xml$' => 'index.php?gxs_module=page',
+ 'post\.xml$' => 'index.php?gxs_module=post',
+ 'author\.xml$' => 'index.php?gxs_module=author',
+ '([a-z0-9]+)_([a-z0-9_-]+)\.xml$' => 'index.php?gxs_module=$matches[1]&gxs_sub_module=$matches[2]'
+ );
+ // @since 1.0.3
+ $custom_rules = apply_filters('bwp_gxs_rewrite_rules', array());
+ $rules = array_merge($custom_rules, $rewrite_rules, $rules);
+ return $rules;
+ }
+
+ private static function flush_rewrite_rules()
+ {
+ global $wp_rewrite;
+ $wp_rewrite->flush_rules();
+ }
+
+ function add_hooks()
+ {
+ add_filter('rewrite_rules_array', array($this, 'insert_rewrite_rules'));
+ add_filter('query_vars', array($this, 'insert_query_vars'));
+ add_action('parse_request', array($this, 'request_sitemap'));
+ // @see `wp_transition_post_status` in wp-includes/post.php
+ if ('yes' == $this->options['enable_ping'])
+ {
+ add_action('auto-draft_to_publish', array($this, 'ping'), 1000);
+ add_action('draft_to_publish', array($this, 'ping'), 1000);
+ add_action('new_to_publish', array($this, 'ping'), 1000);
+ add_action('pending_to_publish', array($this, 'ping'), 1000);
+ add_action('future_to_publish', array($this, 'ping'), 1000);
+ }
+ // Enable ping for news sitemap
+ if ('yes' == $this->options['enable_news_ping'])
+ {
+ add_action('auto-draft_to_publish', array($this, 'ping_google_news'), 1000);
+ add_action('draft_to_publish', array($this, 'ping_google_news'), 1000);
+ add_action('new_to_publish', array($this, 'ping_google_news'), 1000);
+ add_action('pending_to_publish', array($this, 'ping_google_news'), 1000);
+ add_action('future_to_publish', array($this, 'ping_google_news'), 1000);
+ }
+ if ('yes' == $this->options['enable_robots'])
+ {
+ add_filter('robots_txt', array($this, 'do_robots'), 1000, 2);
+ }
+ }
+
+ function install()
+ {
+ global $wp_rewrite;
+ $wp_rewrite->flush_rules();
+ }
+
+ function uninstall()
+ {
+ global $wp_rewrite;
+ $this->logs = array('log' => array(), 'sitemap' => array());
+ $this->commit_logs();
+ $wp_rewrite->flush_rules();
+ }
+
+ /**
+ * Build the Menus
+ */
+ function build_menus()
+ {
+ // Give BWP GXS its own menus - create plugin's own menu if allowed
+ if (!empty($this->_menu_under_settings))
+ {
+ add_options_page(__('BWP Google XML Sitemaps Statistics', 'bwp-simple-gxs'), __('Sitemap Statistics', 'bwp-simple-gxs'), BWP_GXS_CAPABILITY, BWP_GXS_STATS, array($this, 'build_option_pages'));
+ add_options_page(__('BWP Google XML Sitemaps Generator', 'bwp-simple-gxs'), __('Sitemap Generator', 'bwp-simple-gxs'), BWP_GXS_CAPABILITY, BWP_GXS_OPTION_GENERATOR, array($this, 'build_option_pages'));
+ add_options_page(__('BWP Google News XML Sitemap', 'bwp-simple-gxs'), __('News Sitemap', 'bwp-simple-gxs'), BWP_GXS_CAPABILITY, BWP_GXS_GOOGLE_NEWS, array($this, 'build_option_pages'));
+ }
+ else
+ {
+ add_menu_page(__('BWP Google XML Sitemaps', 'bwp-simple-gxs'), 'BWP GXS', BWP_GXS_CAPABILITY, BWP_GXS_STATS, array($this, 'build_option_pages'), BWP_GXS_IMAGES . '/icon_menu.png');
+ add_submenu_page(BWP_GXS_STATS, __('BWP Google XML Sitemaps Statistics', 'bwp-simple-gxs'), __('Sitemap Statistics', 'bwp-simple-gxs'), BWP_GXS_CAPABILITY, BWP_GXS_STATS, array($this, 'build_option_pages'));
+ add_submenu_page(BWP_GXS_STATS, __('BWP Google XML Sitemaps Generator', 'bwp-simple-gxs'), __('Sitemap Generator', 'bwp-simple-gxs'), BWP_GXS_CAPABILITY, BWP_GXS_OPTION_GENERATOR, array($this, 'build_option_pages'));
+ add_submenu_page(BWP_GXS_STATS, __('BWP Google News XML Sitemap', 'bwp-simple-gxs'), __('News Sitemap', 'bwp-simple-gxs'), BWP_GXS_CAPABILITY, BWP_GXS_GOOGLE_NEWS, array($this, 'build_option_pages'));
+ }
+ }
+
+ /**
+ * Build the option pages
+ *
+ * Utilizes BWP Option Page Builder (@see BWP_OPTION_PAGE)
+ */
+ function build_option_pages()
+ {
+ if (!current_user_can(BWP_GXS_CAPABILITY))
+ wp_die(__('You do not have sufficient permissions to access this page.'));
+
+ // Init the class
+ $page = $_GET['page'];
+ $bwp_option_page = new BWP_OPTION_PAGE($page, $this->site_options);
+
+ $options = array();
+ $dynamic_options = array();
+
+if (!empty($page))
+{
+ if ($page == BWP_GXS_STATS)
+ {
+ $bwp_option_page->set_current_tab(1);
+
+ // Clear logs = @since 1.1.0
+ if (isset($_POST['clear_log']) && !$this->is_normal_admin())
+ {
+ check_admin_referer($page);
+ $this->logs = array('log' => array(), 'sitemap' => array());
+ $this->commit_logs();
+ $this->add_notice('' . __('Notice', 'bwp-simple-gxs') . ': ' . __("All logs have been cleared successfully!", 'bwp-simple-gxs'));
+ }
+
+ $form = array(
+ 'items' => array('heading', 'heading', 'heading', 'heading', 'checkbox', 'section', 'heading', 'checkbox', 'checkbox'),
+ 'item_labels' => array
+ (
+ __('What are Sitemaps?', 'bwp-simple-gxs'),
+ __('Your sitemaps', 'bwp-simple-gxs'),
+ __('Submit your sitemaps', 'bwp-simple-gxs'),
+ __('Pinging search engines', 'bwp-simple-gxs'),
+ __('Enable pinging functionality?', 'bwp-simple-gxs'),
+ __('Enable pinging individual SE', 'bwp-simple-gxs'),
+ __('Sitemap Generator\'s Log', 'bwp-simple-gxs'),
+ __('Enable logging?', 'bwp-simple-gxs'),
+ __('Enable debugging?', 'bwp-simple-gxs')
+ ),
+ 'item_names' => array('h1', 'h2', 'h4', 'h5', 'cb1', 'sec1', 'h3', 'cb2', 'cb3'),
+ 'sec1' => array(
+ array('checkbox', 'name' => 'cb4'),
+ array('checkbox', 'name' => 'cb6')
+ //array('checkbox', 'name' => 'cb7')
+ ),
+ 'heading' => array(
+ 'h1' => __('In its simplest form, a Sitemap is an XML file that lists URLs for a site along with additional metadata about each URL (when it was last updated, how often it usually changes, and how important it is, relative to other URLs in the site) so that search engines can more intelligently crawl the site — http://www.sitemaps.org/', 'bwp-simple-gxs') . '
' . __('This plugin helps you generate both Sitemap Index files as well as normal Sitemap files. A Sitemap Index, as its name suggests, is one kind of sitemaps that allows you to group multiple sitemap files inside it.', 'bwp-simple-gxs'),
+ 'h2' => __('Basic information about all your sitemaps.', 'bwp-simple-gxs'),
+ 'h3' => __('More detailed information about how your sitemaps are generated including notices, errors and success messages.', 'bwp-simple-gxs'),
+ 'h4' => sprintf(__('Submit your sitemapindex to major search engines like Google, Bing.', 'bwp-simple-gxs'), 'https://www.google.com/webmasters/tools/home?hl=en', 'http://www.bing.com/toolbox/webmasters/'/*, 'http://about.ask.com/en/docs/about/webmasters.shtml#22'*/),
+ 'h5' => __('Now when you post something new to your blog, you can ping those search engines to tell them your blog just got updated. Pinging could be less effective than you think it is but you should enable such feature anyway.', 'bwp-simple-gxs')
+ ),
+ 'input' => array(
+ ),
+ 'checkbox' => array(
+ 'cb1' => array(__('Selected SE below will be pinged when you publish new posts.', 'bwp-simple-gxs') => 'enable_ping'),
+ 'cb2' => array(__('No additional load is needed so enabling this is recommended.', 'bwp-simple-gxs') => 'enable_log'),
+ 'cb3' => array(__('Minor errors will be printed on screen. Also, when debug is on, no caching is used, useful when you develop new modules.', 'bwp-simple-gxs') => 'enable_debug'),
+ 'cb4' => array(__('Google', 'bwp-simple-gxs') => 'enable_ping_google'),
+ 'cb6' => array(__('Bing', 'bwp-simple-gxs') => 'enable_ping_bing')
+ //'cb7' => array(__('Ask.com', 'bwp-simple-gxs') => 'enable_ping_ask')
+ ),
+ 'container' => array(
+ 'h4' => sprintf(__('After you activate this plugin, all sitemaps should be available right away. The next step is to submit the sitemapindex to major search engines. You only need the sitemapindex and nothing else, those search engines will automatically recognize other included sitemaps. You can read a small How-to if you are interested.', 'bwp-simple-gxs'), 'http://help.yahoo.com/l/us/yahoo/smallbusiness/store/promote/sitemap/sitemap-06.html'),
+ 'h3' => $this->get_logs(),
+ 'h2' => $this->get_logs(true)
+ )
+ );
+
+ // Add a clear log button - @since 1.1.0
+ if (!$this->is_normal_admin())
+ add_filter('bwp_option_submit_button', array($this, 'add_clear_log_button'));
+
+ // Get the options
+ $options = $bwp_option_page->get_options(array('enable_ping', 'enable_ping_google', 'enable_ping_bing', /*'enable_ping_ask',*/ 'enable_log', 'enable_debug'), $this->options);
+
+ // Get option from the database
+ $options = $bwp_option_page->get_db_options($page, $options);
+ $option_ignore = array('input_update_services');
+ $option_formats = array();
+ // [WPMS Compatible]
+ $option_super_admin = $this->site_options;
+ }
+ else if ($page == BWP_GXS_OPTION_GENERATOR)
+ {
+ $bwp_option_page->set_current_tab(2);
+
+ //add_filter('bwp_ad_showable', function() { return false;});
+
+ $form = array(
+ 'items' => array('input', 'select', 'select', 'select', 'checkbox', 'checkbox', 'input', 'checkbox', 'checkbox', 'checkbox', 'checkbox', 'heading', 'checkbox', 'checkbox', 'checkbox', 'section', 'section', 'section', 'heading', 'input', 'input', 'heading', 'checkbox', 'checkbox', 'input', 'input'),
+ 'item_labels' => array
+ (
+ __('Output no more than', 'bwp-simple-gxs'),
+ __('Default change frequency', 'bwp-simple-gxs'),
+ __('Default priority', 'bwp-simple-gxs'),
+ __('Minimum priority', 'bwp-simple-gxs'),
+ __('Use GMT for Last Modified date?', 'bwp-simple-gxs'),
+ __('Style your sitemaps with an XSLT stylesheet?', 'bwp-simple-gxs'),
+ __('Custom XSLT stylesheet URL', 'bwp-simple-gxs'),
+ __('Show build stats in sitemaps?', 'bwp-simple-gxs'),
+ __('Enable credit?', 'bwp-simple-gxs'),
+ __('Enable Gzip?', 'bwp-simple-gxs'),
+ __('Clean unexpected output before sitemap generation?', 'bwp-simple-gxs'),
+ __('Sitemap Index Options', 'bwp-simple-gxs'),
+ __('Automatically split post-based sitemaps into smaller sitemaps?', 'bwp-simple-gxs'),
+ __('Add sitemapindex to individual blog\'s virtual robots.txt?', 'bwp-simple-gxs'),
+ __('Add sitemapindex from all blogs within network to primary blog\'s virtual robots.txt?', 'bwp-simple-gxs'),
+ __('In sitemapindex, include', 'bwp-simple-gxs'),
+ __('Exclude following post types:', 'bwp-simple-gxs'),
+ __('Exclude following taxonomies:', 'bwp-simple-gxs'),
+ __('Module Options', 'bwp-simple-gxs'),
+ __('Alternate module directory', 'bwp-simple-gxs'),
+ __('Get no more than', 'bwp-simple-gxs'),
+ __('Caching Options', 'bwp-simple-gxs'),
+ __('Enable caching?', 'bwp-simple-gxs'),
+ __('Enable auto cache re-generation?', 'bwp-simple-gxs'),
+ __('Cached sitemaps will last for', 'bwp-simple-gxs'),
+ __('Cached sitemaps are stored in (auto detected)', 'bwp-simple-gxs')
+ ),
+ 'item_names' => array('input_item_limit', 'select_default_freq', 'select_default_pri', 'select_min_pri', 'cb14', 'cb10', 'input_custom_xslt', 'cb3', 'cb6', 'cb4', 'cb15', 'h5', 'cb12', 'cb11', 'cb5', 'sec1', 'sec2', 'sec3', 'h4', 'input_alt_module_dir', 'input_sql_limit', 'h3', 'cb1', 'cb2', 'input_cache_age', 'input_cache_dir'),
+ 'heading' => array(
+ 'h3' => __('Cache your sitemaps for better performance.', 'bwp-simple-gxs'),
+ 'h4' => sprintf(__('This plugin uses modules to build sitemap data so it is recommended that you extend this plugin using modules rather than hooks. Some of the settings below only affect modules extending the base module class. Read more about using modules here.', 'bwp-simple-gxs'), $this->plugin_url),
+ 'h5' => __('Here you can change some settings that affect the default Sitemap Index file.', 'bwp-simple-gxs')
+ ),
+ 'sec1' => array(
+ array('checkbox', 'name' => 'cb7'),
+ //array('checkbox', 'name' => 'cb8'),
+ array('checkbox', 'name' => 'cb9'),
+ array('checkbox', 'name' => 'cb13'),
+ array('checkbox', 'name' => 'cb16'),
+ array('checkbox', 'name' => 'cb17')
+ ),
+ 'sec2' => array(),
+ 'sec3' => array(),
+ 'select' => array(
+ 'select_time_type' => array(
+ __('second(s)', 'bwp-simple-gxs') => 1,
+ __('minute(s)', 'bwp-simple-gxs') => 60,
+ __('hour(s)', 'bwp-simple-gxs') => 3600,
+ __('day(s)', 'bwp-simple-gxs') => 86400
+ ),
+ 'select_oldest_type' => array(
+ __('second(s)', 'bwp-simple-gxs') => 1,
+ __('minute(s)', 'bwp-simple-gxs') => 60,
+ __('hour(s)', 'bwp-simple-gxs') => 3600,
+ __('day(s)', 'bwp-simple-gxs') => 86400
+ ),
+ 'select_default_freq' => array(),
+ 'select_default_pri' => $this->priority,
+ 'select_min_pri' => $this->priority
+ ),
+ 'post' => array(
+ 'select_default_freq' => sprintf('' . __('read more', 'bwp-simple-gxs') . '', 'http://sitemaps.org/protocol.php#xmlTagDefinitions'),
+ 'select_default_pri' => sprintf('' . __('read more', 'bwp-simple-gxs') . '', 'http://sitemaps.org/protocol.php#xmlTagDefinitions'),
+ 'select_min_pri' => sprintf('' . __('read more', 'bwp-simple-gxs') . '', 'http://sitemaps.org/protocol.php#xmlTagDefinitions')
+ ),
+ 'checkbox' => array(
+ 'cb1' => array(__('your sitemaps are generated and then cached to reduce unnecessary work.', 'bwp-simple-gxs') => 'enable_cache'),
+ 'cb2' => array(__('when a cached sitemap expires, this plugin will try to generate the cache again. If you disable this, remember to manually flush the cache once in a while.', 'bwp-simple-gxs') . ' ' => 'enable_cache_auto_gen'),
+ 'cb3' => array(__('tell you useful information such as build time, memory usage, SQL queries, etc.', 'bwp-simple-gxs') => 'enable_stats'),
+ 'cb4' => array(__('make your sitemaps ~ 70% smaller. Important: If you see an error after enabling this, it\'s very likely that you have gzip active on your server already.', 'bwp-simple-gxs') => 'enable_gzip'),
+ 'cb15' => array(__('only disable this when sitemaps appear in either blank page or plain text.', 'bwp-simple-gxs') => 'enable_php_clean'),
+ 'cb5' => array(sprintf(__("If you have like 50 blogs, 50 Sitemap: http://example.com/sitemapindex.xml entries will be added to your primary blog's robots.txt, i.e. %s.", 'bwp-simple-gxs'), get_site_option('home') . '/robots.txt') => 'enable_global_robots'),
+ 'cb7' => array(__("taxonomy archives' sitemaps, including custom taxonomies.", 'bwp-simple-gxs') => 'enable_sitemap_taxonomy'),
+ //'cb8' => array(__("tag archives' sitemap.", 'bwp-simple-gxs') => 'enable_sitemap_tag'),
+ 'cb9' => array(__("date archives' sitemaps.", 'bwp-simple-gxs') => 'enable_sitemap_date'),
+ 'cb13' => array(__("external pages' sitemap. This allows you to add links to pages that do not belong to WordPress to the sitemap.", 'bwp-simple-gxs') => 'enable_sitemap_external'),
+ 'cb6' => array(__('some copyrighted info is also added to your sitemaps. Thanks!', 'bwp-simple-gxs') => 'enable_credit'),
+ 'cb10' => array(__('This will load the default style sheet provided by this plugin. You can set a custom style sheet below or filter the bwp_gxs_xslt hook.', 'bwp-simple-gxs') => 'enable_xslt'),
+ 'cb11' => array(sprintf(__('If you\'re on a Multi-site installation with Sub-domain enabled, each site will have its own robots.txt, sites in sub-directory will not. Please read the documentation for more info.', 'bwp-simple-gxs'), $this->plugin_url) => 'enable_robots'),
+ 'cb12' => array(__('e.g. post1.xml, post2.xml, etc. And each sitemap will contain', 'bwp-simple-gxs') => 'enable_sitemap_split_post'),
+ 'cb14' => array(__('If you disable this, make sure you also use date_default_timezone_set to correctly set up a timezone for your application.', 'bwp-simple-gxs') => 'enable_gmt'),
+ 'cb16' => array(__('author archives\' sitemap.', 'bwp-simple-gxs') => 'enable_sitemap_author'),
+ 'cb17' => array(__('site\'s home URL sitemap. For a multi-site installation of WordPress, this sitemap will list all domains within your network, not just the main blog. This also supports WPMU Domain Mapping plugin.', 'bwp-simple-gxs') => 'enable_sitemap_site')
+ ),
+ 'input' => array(
+ 'input_item_limit' => array('size' => 5, 'label' => __('item(s) in one sitemap. You can not go over 50,000.', 'bwp-simple-gxs')),
+ 'input_split_limit_post' => array('size' => 5, 'label' => __('item(s). Again , you can not go over 50,000.', 'bwp-simple-gxs')),
+ 'input_alt_module_dir' => array('size' => 91, 'label' => __('Input a full path to the directory where you put your own modules (e.g. /home/mysite/public_html/gxs-modules/), you can also override a built-in module by having a module with the same filename in this directory. A filter is also available if you would like to use PHP instead.', 'bwp-simple-gxs')),
+ 'input_cache_dir' => array('size' => 91, 'disabled' => ' disabled="disabled"', 'label' => __('The cache directory must be writable (i.e. CHMOD to 755 or 777).', 'bwp-simple-gxs')),
+ 'input_sql_limit' => array('size' => 5, 'label' => __('item(s) in one SQL query. This helps you avoid running too heavy queries.', 'bwp-simple-gxs')),
+ 'input_oldest' => array('size' => 3, 'label' => '—'),
+ 'input_cache_age' => array('size' => 5, 'label' => '—'),
+ 'input_custom_xslt' => array('size' => 56, 'label' => __('expected to be an absolute URL, e.g. http://example.com/my-stylesheet.xsl. You must also have a style sheet for the sitemapindex that can be accessed through the above URL, e.g. my-stylesheet.xsl and my-stylesheetindex.xsl). Please leave blank if you do not wish to use.', 'bwp-simple-gxs'))
+ ),
+ 'inline_fields' => array(
+ 'input_cache_age' => array('select_time_type' => 'select'),
+ 'cb12' => array('input_split_limit_post' => 'input')
+ ),
+ 'container' => array(
+ 'input_item_limit' => sprintf(__('Note: If you encounter white page problem, please refer to the FAQ section to know how to change this limit appropriately to make this plugin work. Also note that, for post-based sitemaps, this option will be overridden by the limit you set in the Sitemap Index Options below.', 'bwp-simple-gxs'), $this->plugin_url . 'faq/')
+ )
+ );
+
+ foreach ($this->frequency as $freq)
+ $changefreq[ucfirst($freq)] = $freq;
+ $form['select']['select_default_freq'] = $changefreq;
+
+ // Get the options
+ $options = $bwp_option_page->get_options(array('input_item_limit', 'input_split_limit_post', 'input_alt_module_dir', 'input_cache_dir', 'input_sql_limit', 'input_cache_age', 'input_custom_xslt', 'input_exclude_post_type', 'input_exclude_taxonomy', 'enable_gmt', 'enable_robots', 'enable_xslt', 'enable_cache', 'enable_cache_auto_gen', 'enable_stats', 'enable_credit', 'enable_sitemap_split_post', 'enable_global_robots', 'enable_sitemap_date', 'enable_sitemap_taxonomy', 'enable_sitemap_external', 'enable_sitemap_author', 'enable_sitemap_site', 'enable_gzip', 'enable_php_clean', 'select_time_type', 'select_default_freq', 'select_default_pri', 'select_min_pri'), $this->options);
+
+ // Get option from the database
+ $options = $bwp_option_page->get_db_options($page, $options);
+
+ // Get dynamic options
+ if (isset($_POST['submit_' . $bwp_option_page->get_form_name()]))
+ {
+ check_admin_referer($page);
+ $ept = array(); $etax = array();
+ foreach ($_POST as $o => $v)
+ {
+ if (strpos($o, 'ept_') === 0)
+ $ept[] = trim(str_replace('ept_', '', $o));
+ else if (strpos($o, 'etax_') === 0)
+ $etax[] = trim(str_replace('etax_', '', $o));
+ }
+ $options['input_exclude_post_type'] = implode(',', $ept);
+ $options['input_exclude_taxonomy'] = implode(',', $etax);
+ }
+
+ // Build dynamic options
+ $post_types = get_post_types(array('public' => true), 'objects');
+ $taxonomies = get_taxonomies(array('public' => true), '');
+ $exclude_options = array(
+ 'post_types' => explode(',', $options['input_exclude_post_type']),
+ 'taxonomies' => explode(',', $options['input_exclude_taxonomy'])
+ );
+ $dynamic_options = array();
+ foreach ($post_types as $post_type)
+ {
+ if ('attachment' == $post_type->name)
+ continue;
+ $key = 'ept_' . $post_type->name;
+ $form['sec2'][] = array('checkbox', 'name' => $key);
+ $form['checkbox'][$key] = array(__($post_type->label) => $key);
+ if (in_array($post_type->name, $exclude_options['post_types']))
+ $dynamic_options[$key] = 'yes';
+ else
+ $dynamic_options[$key] = '';
+ }
+ foreach ($taxonomies as $taxonomy)
+ {
+ if ('post_format' == $taxonomy->name)
+ continue;
+ $key = 'etax_' . $taxonomy->name;
+ $form['sec3'][] = array('checkbox', 'name' => $key);
+ $form['checkbox'][$key] = array(__($taxonomy->label) => $key);
+ if (in_array($taxonomy->name, $exclude_options['taxonomies']))
+ $dynamic_options[$key] = 'yes';
+ else
+ $dynamic_options[$key] = '';
+ }
+
+ $option_formats = array('input_item_limit' => 'int', 'input_split_limit_post' => 'int', 'input_sql_limit' => 'int', 'input_cache_age' => 'int', 'select_time_type' => 'int');
+ $option_ignore = array('input_cache_dir', 'input_exclude_post_type', 'input_exclude_taxonomy');
+ // [WPMS Compatible]
+ $option_super_admin = $this->site_options;
+ }
+ else if ($page == BWP_GXS_GOOGLE_NEWS)
+ {
+ $bwp_option_page->set_current_tab(3);
+
+ // Save news categories settings
+ if (isset($_POST['submit_bwp_gxs_google_news']))
+ {
+ check_admin_referer($page);
+
+ // News cats & News genres
+ $news_cats = array();
+ $news_genres = array();
+ $categories = get_categories(array('hide_empty' => 0));
+ foreach ($categories as $category)
+ {
+ if (!empty($_POST[$category->slug]))
+ $news_cats[] = $category->term_id;
+ if (isset($_POST[$category->slug . '_genres']) && is_array($_POST[$category->slug . '_genres']))
+ {
+ $genres = $_POST[$category->slug . '_genres'];
+ $genres_string = array();
+ foreach ($genres as $genre)
+ $genres_string[] = trim($genre);
+ $news_genres['cat_' . $category->term_id] = implode(', ', $genres_string);
+ }
+ }
+ $this->options['select_news_cats'] = implode(',', $news_cats);
+ $this->options['input_news_genres'] = $news_genres;
+ }
+
+ $form = array(
+ 'items' => array('heading', 'checkbox', 'checkbox', 'checkbox', 'checkbox', 'select', 'heading', 'select'),
+ 'item_labels' => array
+ (
+ __('What is a Google News Sitemap?', 'bwp-simple-gxs'),
+ __('Enable this module?', 'bwp-simple-gxs'),
+ __('Enable Multi-category Mode?', 'bwp-simple-gxs'),
+ __('Ping Search Engines when you publish a news article?', 'bwp-simple-gxs'),
+ __('Use keywords in News Sitemap?', 'bwp-simple-gxs'),
+ __('News Sitemap\'s language', 'bwp-simple-gxs'),
+ __('News Categories', 'bwp-simple-gxs'),
+ __('This module will', 'bwp-simple-gxs')
+ ),
+ 'item_names' => array('h1', 'cb1', 'cb4', 'cb3', 'cb2', 'select_news_lang', 'h2', 'select_news_cat_action'),
+ 'heading' => array(
+ 'h1' => __('A Google News Sitemap is a file that allows you to control which content you submit to Google News. By creating and submitting a Google News Sitemap, you\'re able to help Google News discover and crawl your site\'s articles — http://support.google.com/', 'bwp-simple-gxs'),
+ 'h2' => __('Below you will be able to choose what categories to use (or not use) in the news sitemap. You can also assign genres to a specific category.', 'bwp-simple-gxs')
+ ),
+ 'post' => array(
+ 'select_news_cat_action' => __('below selected categories in the news sitemap.', 'bwp-simple-gxs')
+ ),
+ 'select' => array(
+ 'select_news_lang' => array(
+ /* http://www.loc.gov/standards/iso639-2/php/code_list.php */
+ __('English', 'bwp-simple-gxs') => 'en',
+ __('Dutch', 'bwp-simple-gxs') => 'nl',
+ __('French', 'bwp-simple-gxs') => 'fr',
+ __('German', 'bwp-simple-gxs') => 'de',
+ __('Italian', 'bwp-simple-gxs') => 'it',
+ __('Norwegian', 'bwp-simple-gxs') => 'no',
+ __('Portuguese', 'bwp-simple-gxs') => 'pt',
+ __('Polish', 'bwp-simple-gxs') => 'pl',
+ __('Russian', 'bwp-simple-gxs') => 'ru',
+ __('Simplified Chinese', 'bwp-simple-gxs') => 'zh-cn',
+ __('Spanish', 'bwp-simple-gxs') => 'es',
+ __('Turkish', 'bwp-simple-gxs') => 'tr',
+ __('Vietnamese', 'bwp-simple-gxs') => 'vi'
+ ),
+ 'select_news_cat_action' => array(
+ __('include', 'bwp-simple-gxs') => 'inc',
+ __('exclude', 'bwp-simple-gxs') => 'exc'
+ ),
+ 'select_news_keyword_type' => array(
+ __('news categories', 'bwp-simple-gxs') => 'cat',
+ __('news tags', 'bwp-simple-gxs') => 'tag'
+ )
+ ),
+ 'input' => array(
+ ),
+ 'checkbox' => array(
+ 'cb1' => array(__('A new post_google_news.xml sitemap will be added to the main sitemapindex.xml.', 'bwp-simple-gxs') => 'enable_news_sitemap'),
+ 'cb2' => array(__('Keywords are derived from', 'bwp-simple-gxs') => 'enable_news_keywords'),
+ 'cb3' => array(__('This ping works separately from the sitemapindex ping, and only occurs when you publish an article in one of the news categories set below.', 'bwp-simple-gxs') => 'enable_news_ping'),
+ 'cb4' => array(__('This mode is meant for News Blogs that have posts assigned to more than one categories. It is an advanced feature and should only be enabled if you do have similar blogs.', 'bwp-simple-gxs') => 'enable_news_multicat')
+ ),
+ 'inline_fields' => array(
+ 'cb2' => array('select_news_keyword_type' => 'select')
+ ),
+ 'post' => array(
+ 'select_news_keyword_type' => __('. Do NOT use news tags if your news sitemap contains a lot of posts as it can be very inefficient to do so. This will be improved in future versions.', 'bwp-simple-gxs')
+ ),
+ 'container' => array(
+ 'select_news_cat_action' => $this->get_news_cats()
+ )
+ );
+
+ // Get the options
+ $options = $bwp_option_page->get_options(array('enable_news_sitemap', 'enable_news_ping', 'enable_news_keywords', 'enable_news_multicat', 'select_news_lang', 'select_news_keyword_type', 'select_news_cat_action', 'select_news_cats', 'input_news_genres'), $this->options);
+
+ // Get option from the database
+ $options = $bwp_option_page->get_db_options($page, $options);
+ $options['select_news_cats'] = $this->options['select_news_cats'];
+ $options['input_news_genres'] = $this->options['input_news_genres'];
+ $option_ignore = array('select_news_cats', 'input_news_genres');
+ $option_formats = array();
+ $option_super_admin = $this->site_options;
+ }
+}
+ // Flush the cache
+ if (isset($_POST['flush_cache']) && !$this->is_normal_admin())
+ {
+ check_admin_referer($page);
+ if ($deleted = $this->flush_cache())
+ $this->add_notice('' . __('Notice', 'bwp-simple-gxs') . ': ' . sprintf(__("%d cached sitemaps have been flushed successfully!", 'bwp-simple-gxs'), $deleted));
+ else
+ $this->add_notice('' . __('Notice', 'bwp-simple-gxs') . ': ' . __("Could not delete any cached sitemaps. Please manually check the cache directory.", 'bwp-simple-gxs'));
+ }
+
+ // Get option from user input
+ if (isset($_POST['submit_' . $bwp_option_page->get_form_name()]) && isset($options) && is_array($options))
+ {
+ check_admin_referer($page);
+ $need_flushed = false;
+ foreach ($options as $key => &$option)
+ {
+ $pre_option = $option;
+ // Get rid of options that do not have a key
+ if (preg_match('/^[0-9]+$/i', $key))
+ {
+ unset($options[$key]);
+ continue;
+ }
+ // [WPMS Compatible]
+ if ($this->is_normal_admin() && in_array($key, $option_super_admin))
+ {}
+ else if (in_array($key, $option_ignore))
+ {}
+ else
+ {
+ if (isset($_POST[$key]))
+ $bwp_option_page->format_field($key, $option_formats);
+ if (!isset($_POST[$key]))
+ $option = '';
+ else if (isset($option_formats[$key]) && 0 == $_POST[$key] && 'int' == $option_formats[$key])
+ $option = 0;
+ else if (isset($option_formats[$key]) && empty($_POST[$key]) && 'int' == $option_formats[$key])
+ $option = $this->options_default[$key];
+ else if (!empty($_POST[$key]))
+ $option = trim(stripslashes($_POST[$key]));
+ else
+ $option = $this->options_default[$key];
+ // Mark that we need to flush rewrite rules
+ if (false !== strpos($key, 'enable_sitemap_') && $pre_option != $option)
+ $need_flushed = true;
+ }
+ }
+ update_option($page, $options);
+ // Flush rewrite rules if needed
+ if ($need_flushed)
+ self::flush_rewrite_rules();
+ // [WPMS Compatible]
+ if (!$this->is_normal_admin())
+ update_site_option($page, $options);
+ // Update options successfully
+ $this->add_notice(__("All options have been saved.", 'bwp-simple-gxs'));
+ }
+
+ // [WPMS Compatible]
+ if (!$this->is_multisite() && $page == BWP_GXS_OPTION_GENERATOR)
+ $bwp_option_page->kill_html_fields($form, array(14));
+ if ($this->is_normal_admin())
+ {
+ switch ($page)
+ {
+ case BWP_GXS_OPTION_GENERATOR:
+ $bwp_option_page->kill_html_fields($form, array(9,10,13,14,18,19,20,21,22,23,24,25));
+ break;
+
+ case BWP_GXS_STATS:
+ $bwp_option_page->kill_html_fields($form, array(3,4,5,6,7,8));
+ add_filter('bwp_option_submit_button', create_function('', 'return "";'));
+ break;
+ }
+ }
+
+ if (!@file_exists($this->options['input_cache_dir']) || !@is_writable($this->options['input_cache_dir']))
+ $this->add_notice('' . __('Warning') . ': ' . __("Cache directory does not exist or is not writable. Please read more about directory permission here (Unix).", 'bwp-simple-gxs'));
+
+ // Assign the form and option array
+ $bwp_option_page->init($form, $options + $dynamic_options, $this->form_tabs);
+
+ // Build the option page
+ echo $bwp_option_page->generate_html_form();
+ }
+
+ function add_clear_log_button($button)
+ {
+ $button = str_replace('', ' ', $button);
+ return $button;
+ }
+
+ function flush_cache()
+ {
+ $dir = trailingslashit($this->options['input_cache_dir']);
+ $deleted = 0;
+ if (is_dir($dir))
+ {
+ if ($dh = opendir($dir))
+ {
+ while (($file = readdir($dh)) !== false)
+ {
+ if (preg_match('/^gxs_[a-z0-9]+\.(xml|xml\.gz)$/i', $file))
+ {
+ @unlink($dir . $file);
+ $deleted++;
+ }
+ }
+ closedir($dh);
+ }
+ }
+ return $deleted;
+ }
+
+ function get_options()
+ {
+ return $this->options;
+ }
+
+ function get_current_time()
+ {
+ return current_time('timestamp');
+ }
+
+ function format_header_time($time)
+ {
+ return gmdate('D, d M Y H:i:s \G\M\T', (int) $time);
+ }
+
+ function uni_path_sep($path = '')
+ {
+ return str_replace('\\', '/', $path);
+ }
+
+ function commit_logs()
+ {
+ update_option(BWP_GXS_LOG, $this->logs);
+ }
+
+ function do_log($message, $error = true, $sitemap = false)
+ {
+ $time = $this->get_current_time();
+ $debug = ('yes' == $this->options['enable_debug']) ? __('(Debug is on)', 'bwp-simple-gxs') : '';
+ if (!$sitemap && 'yes' == $this->options['enable_log'] && !empty($message))
+ $this->logs['log'][] = array('log' => $message . ' ' . $debug, 'time' => $time, 'error' => $error);
+ else if (!is_bool($sitemap))
+ $this->logs['sitemap'][$sitemap] = array('time' => $time, 'url' => $sitemap);
+ }
+
+ function elog($message, $die = false, $errorCode = 503)
+ {
+ $this->do_log($message);
+ if (true == $die && true == $this->debug)
+ {
+ $this->commit_logs();
+ wp_die(__('BWP Google XML Sitemaps Error: ', 'bwp-simple-gxs') . $message, __('BWP Google XML Sitemaps Error', 'bwp-simple-gxs'), array('response' => $errorCode));
+ }
+ }
+
+ function slog($message)
+ {
+ $this->do_log($message, false);
+ }
+
+ function nlog($message)
+ {
+ $this->do_log($message, 'notice');
+ }
+
+ function smlog($url)
+ {
+ $this->do_log('', false, $url);
+ }
+
+ function get_logs($sitemap = false)
+ {
+ $logs = (!$sitemap) ? $this->logs['log'] : $this->logs['sitemap'];
+ if (!$logs || !is_array($logs) || 0 == sizeof($logs))
+ return ($sitemap) ? sprintf(__('Nothing here... yet! Try submitting your sitemapindex first!', 'bwp-simple-gxs'), $this->options['input_sitemap_url']) : __('No log yet!', 'bwp-simple-gxs');
+ if (!$sitemap)
+ krsort($logs);
+ else
+ {
+ $log_time = array();
+ foreach ($logs as $key => $row)
+ $log_time[$key] = $row['time'];
+ array_multisort($log_time, SORT_DESC, $logs);
+ }
+
+ $log_str = (!$sitemap) ? '
%s —%s
' : '' . __('%s has been successfully built on %s.', 'bwp-simple-gxs') . ' ';
+
+ $output = '
' . "\n";
+ foreach ($logs as $log)
+ {
+ if (isset($log['error']))
+ {
+ $color = (!is_bool($log['error']) && 'notice' == $log['error']) ? '999999' : '';
+ if ('' == $color)
+ $color = (!$log['error']) ? '009900' : 'FF0000';
+ /* translators: date format, see http://php.net/date */
+ $output .= sprintf($log_str, date(__('M j, Y : H:i:s', 'bwp-simple-gxs'), $log['time']), $color, $log['log']) . "\n";
+ }
+ else
+ {
+ // @since 1.1.5 - check for mapped domain
+ global $wpdb, $blog_id;
+ if (!empty($wpdb->dmtable) && !empty($wpdb->blogs) && $this->is_multisite())
+ {
+ $mapped_domain = $wpdb->get_var($wpdb->prepare('
+ SELECT wpdm.domain as mapped_domain FROM ' . $wpdb->blogs . ' wpblogs
+ LEFT JOIN ' . $wpdb->dmtable . ' wpdm
+ ON wpblogs.blog_id = wpdm.blog_id AND wpdm.active = 1
+ WHERE wpblogs.public = 1 AND wpblogs.spam = 0 AND wpblogs.deleted = 0 AND wpblogs.blog_id = %d', $blog_id));
+ }
+ // Default to the main site's scheme
+ $home = @parse_url(home_url());
+ $sitemap_struct = (!empty($mapped_domain)) ? str_replace($home['host'], str_replace(array('http', 'https'), '', $mapped_domain), $this->options['input_sitemap_struct']) : $this->options['input_sitemap_struct'];
+ $output .= sprintf($log_str, sprintf($sitemap_struct, $log['url']), $log['url'], date(__('M j, Y : H:i:s', 'bwp-simple-gxs'), $log['time'])) . "\n";
+ }
+ }
+
+ return $output . '
' . "\n";
+ }
+
+ function format_label($label)
+ {
+ return str_replace(' ', '_', strtolower($label));
+ }
+
+ function do_robots($output, $public)
+ {
+ global $blog_id, $wpdb;
+
+ if ('0' == $public)
+ return $output;
+
+ if ((defined('SUBDOMAIN_INSTALL') && true == SUBDOMAIN_INSTALL) || (isset($blog_id) && 1 == $blog_id))
+ {
+ $output .= "\n";
+ $output .= 'Sitemap: ' . $this->options['input_sitemap_url'];
+ $output .= "\n";
+ }
+
+ // Add all other sitemapindex within the network into the primary blog's robots.txt,
+ // except for ones that have their domains mapped
+ if ($this->is_multisite() && 'yes' == $this->options['enable_global_robots'] && isset($blog_id) && 1 == $blog_id)
+ {
+ $blogs = (empty($wpdb->dmtable)) ? $wpdb->get_results("SELECT * FROM $wpdb->blogs WHERE public = 1 AND spam = 0 AND deleted = 0") : $wpdb->get_results('
+ SELECT wpdm.domain as mapped_domain, wpblogs.* FROM ' . $wpdb->blogs . ' wpblogs
+ LEFT JOIN ' . $wpdb->dmtable . ' wpdm
+ ON wpblogs.blog_id = wpdm.blog_id AND wpdm.active = 1
+ WHERE wpblogs.public = 1 AND wpblogs.spam = 0 AND wpblogs.deleted = 0');
+
+ $num_sites = 0;
+ foreach ($blogs as $blog)
+ {
+ if (1 == $blog->blog_id)
+ continue;
+ $scheme = is_ssl() ? 'https://' : 'http://';
+ $path = rtrim($blog->path, '/');
+ $blog_domain = (empty($blog->mapped_domain)) ? $blog->domain . $path : '';
+ if (!empty($blog_domain))
+ {
+ $output .= 'Sitemap: ' . str_replace(home_url(), $scheme . $blog_domain, $this->options['input_sitemap_url']) . "\n";
+ $num_sites++;
+ }
+ }
+
+ if (!empty($num_sites))
+ $output .= "\n";
+ }
+
+ return $output;
+ }
+
+ private function get_news_cats()
+ {
+ // News categories
+ $news_cats = explode(',', $this->options['select_news_cats']);
+ $categories = get_categories(array('hide_empty' => 0));
+ // News genres
+ $news_genres = $this->options['input_news_genres'];
+ // Genres taken from here: http://support.google.com/news/publisher/bin/answer.py?hl=en&answer=93992
+ $genres = array('PressRelease', 'Satire', 'Blog', 'OpEd', 'Opinion', 'UserGenerated');
+
+ $return = '
' . "\n";
+ $return .= '' . "\n" . '
#
' . __('Category\'s name', 'bwp-simple-gxs') . '
' . sprintf(__('Genres used for this category (more info here)', 'bwp-simple-gxs'), 'http://support.google.com/news/publisher/bin/answer.py?hl=en&answer=93992') . '
+4. Refresh the sitemaps with problems.
+5. Kindly report the errors you see by commenting or through the [contact form](http://betterwp.net/contact/). Thanks!
+
+Note that, however, some error messages will never show up. In such case, you might want to locate the `error_log` file within your WordPress installation's root directory and read its contents for the error messages.
+
+**Q4: I got an 'Error loading stylesheet' error, what should I do?**
+
+As of version 1.1.0 it is almost impossible for such error to show up, but if you set the site url and the home url differently (one with `www` and one isn't), you will see this error. Just choose to disable stylesheet in Generator tab or change your site / home URL settings.
+
+**Q5: I got a HTTP parse error when I submit sitemap to Google Webmaster Tools, what should I do?**
+
+Please first see the answer to the first question, if it didn't work, and you are using a cache plugin such as W3 Total Cache, it is possible that such plugin wrongly assigns HTTP status headers to my sitemaps.
+
+For example, in W3 Total Cache 0.9.2.2 or possibly older, go to **Performance -> Browser Cache**, and then go to '404 error exception list' in the 'General' option block, and find this line:
+
+
sitemap(_index|[0-9]+)?\.xml(\.gz)?
+
+OR this line:
+
+
sitemap\.xml(\.gz)?
+
+and change it to:
+
+
(sitemapindex|[a-z0-9_-]+)\.xml
+
+Save the changes and then tell W3TC to auto-install the rewrite rules to your `.htaccess` file.
+
+BWP GXS's sitemaps will now have correct HTTP status headers.
+
+**Q6: When I visit `http://example.com/sitemapindex.xml` , WordPress returns a 404 page. What should I do?**
+
+This might be caused by unflushed rewrite rules, which should have been flushed when you activate this plugin. You can try flushing them manually by visiting Settings -> Permalinks and then clicking Save Changes.
+
+**Q7: When I visit any sitemap, a plain (no theme) 404 error page appears, what's the problem?**
+
+You are possibly using some caching plugins that redirect all non-existent pages to 404 error page. Sitemaps produced by this plugin are virtual sitemaps so they will all be redirected. Just open the .htaccess file and change the `sitemap\.xml` part to something like `[a-z0-9-_]+\.xml` and you're fine.
+
+**Q8: I choose not to display certain sitemaps but the sitemapindex still displays the them?**
+
+What you see is actually a cached version of the sitemapindex. You can wait for it to be refreshed automatically or simply choose to 'Flush the Cache'.
+
+**Q9: BWP GXS tells me that 'Requested module not found or not allowed', what should I do?**
+
+This depends on specific situations and your current settings. Basically this means that the module you're trying to access has not been registered with BWP GXS or that module has been disabled but the cached sitemapindex still displays it (which is related to the question above). For a list of default modules (or sitemaps), please read this section.
+
+**Q10: Is there anyway to rename sitemapindex.xml to sitemap.xml?**
+
+You don't have to. A visit to `http://example.com/sitemap.xml` will show you the same sitemapindex. This is done to make BWP GXS more compatible with blogs that have lots of real `robots.txt`. Please note that you must remove any real sitemap.xml file in your website's root for this feature to work.
+
+**Q11: The custom sitemapindex I create seems to be nested inside the default sitemapindex, is that a bug or something?**
+
+That's the default behaviour of this plugin and I plan to improve it in future versions. Don't worry, though, you might see a red X next to your sitemapindex's name in Google's Webmaster Tools but that's only because you haven't submitted your custom sitemapindex. If you submit it separately, the error will go away :).
+
+[Check plugin news and ask questions](http://betterwp.net/topic/google-xml-sitemaps/).
+
+== Screenshots ==
+
+1. A sample Sitemap Index this plugin produces. Large post-based sitemap was split into two parts.
+2. A Custom Post Type Sitemap
+3. An External Pages' Sitemap
+4. The Configuration Page
+5. Google News Sitemap
+
+== Changelog ==
+
+= 1.2.2 =
+
+* Marked as WordPress 3.7 compatible.
+* Added two new Google News Sitemap languages: Turkish (tr) and Russian (ru).
+* Updated BWP Framework to fix a possible bug that causes BWP setting pages to go blank.
+* Removed Ask.com's pinging service as it has been retired.
+* **Good news**: ManageWP.com has become the official sponsor for BWP Google Xml Sitemaps - [Read more](http://betterwp.net/319-better-wordpress-plugins-updates-2013/).
+
+= 1.2.1 =
+As you might have guessed, this release focuses on improving the new Google News Sitemap Module which was introduced in 1.2.0. Below are some enhancements:
+
+* Added new languages (Spanish, German, Polish, Portuguese, etc.).
+* Added a new hook (`bwp_gxs_news_name`) that allows you to set a custom sitename without having to change the sitename setting inside WordPress.
+* Added a new option that allows you to choose whether to use news categories or news tags as keywords (very experimental and can be inefficient if you have a lot of posts).
+* WordPress's timezone settings are now properly respected.
+* Genres tags are omitted entirely if no genres are set for a particular categories.
+* A new Multi-category mode (disabled by default) has been added that offers the following features:
+ * If a post is in both an included and an excluded category, it's now excluded.
+ * If a post is in two or more categories, it can now have all genres that are assigned to those categories.
+ * If a post is in two or more categories, it can now have all categories as its keywords (only if you choose to use news categories as keywords of course)
+
+Other functionality of BWP GXS remains the same, so test the News sitemap as much as you can and report any bug you may stumble upon. Enjoy :).
+
+= 1.2.0 =
+* Added a Google News sitemap module. Creating a news sitemap has never been so easy! More information can be found [here](http://betterwp.net/314-bwp-gxs-1-2-0-with-news-sitemap/).
+* WPMU Domain Mapping is now supported better (robots.txt, site.xml, sitemap urls in Statistics tab).
+* BWP GXS's menu can now be put under **Settings** using a simple filter.
+* BWP GXS's admin style is now enqueued correctly so no more warning from WordPress.
+* Added a Traditional Chinese and a Romanian transation, thanks to Richer Yang and Luke Tyler!
+* All invalid URls, such as `#` and external or empty ones, are now removed from sitemaps.
+* Removed Yahoo's pinging service.
+* Fixed a bug that causes duplicate author entries to appear in author sitemap.
+* Fixed a bug that causes a "class not found" error with paginated custom post type sitemap modules.
+* Other fixes and improvements.
+
+**Report bugs, request features here: http://betterwp.net/community/forum/2/bwp-google-xml-sitemaps/**
+
+= 1.1.6 =
+* Temporary fix for 1.1.5's broken custom post type URL issue.
+
+= 1.1.5 =
+* Added a new 'site.xml' sitemap that lists all blogs within your site / network.
+* Added a new 'author.xml' sitemap that lists all authors contributing to a blog.
+* BWP GXS should now show the correct mapped sitemap URLs in the Statistics tab if you use WPMU Domain Mapping plugin.
+* Fixed a bug that causes duplicate items to appear on sitemap parts, thanks to Aahan for reporting!
+* Fixed a bug that causes the `post` post type sitemaps to show up even when disabled.
+
+**Note that the site sitemap will be enabled, while the author sitemap will be disabled by default.**
+
+= 1.1.4 =
+* Changed some options' descriptions.
+* Fixed a possible incompatibility issue with FeedWordPress plugin and Suffusion theme.
+* Other minor bug fixes.
+
+= 1.1.3 =
+* Gzip is now off by default as it was causing issue on some hosts.
+* In previous versions, this plugin automatically cleaned unexpected outputs before sitemap generation so that sitemaps are generated properly. Such feature also causes issues on certain hosts. As of 1.1.3 this is an option in Generator tab, and it is enabled by default.
+* Fixed a possible bug in the taxonomy module that could cause a maximum execution time error. Thanks to David Killingsworth for reporting this bug!
+* Other minor bug fixes and improvements.
+
+= 1.1.2 =
+* Fixed a possible memory leak.
+* Clear PHP errors in a friendlier way.
+* Other minor bug fixes and improvements.
+
+= 1.1.1 =
+* Added an option for users to choose whether to use GMT for Last Modified time or not.
+* Improved the taxonomy module a bit.
+* Fixed a minor bug in the page module.
+* Fixed a bug that affects rewrite rules of custom post types and taxonomies in some cases. A big thanks to crowinck!
+* Other minor bug fixes and improvements.
+
+= 1.1.0 =
+
+**New Features:**
+
+* This plugin can now automatically split large post sitemaps into smaller ones. You can set a limit for each small sitemap. For example if you have 200K posts and would like to have 10K posts for each sitemap, BWP GXS will then split `post.xml` into 20 parts (i.e. from `post_part1.xml` to `post_part20.xml`). This helps you bypass the 50,000 URLs limit without having to build your custom modules, and also helps make your sitemaps smaller, lighter, and of course faster to generate. This plugin has been tested on sites that have nearly 200K posts and it took less than 1 second to generate the sitemapindex.
+* Added a new sitemap, called External Pages' sitemap, using which you can easily add links to pages that do not belong to WordPress to the Sitemap Index. Please refer to the [customization section](http://betterwp.net/wordpress-plugins/google-xml-sitemaps/#external_sitemap) for more details.
+* Added options in the Generator to exclude certain post types, taxonomies without having to use filters.
+* Added new hooks to default post-based and taxonomy-based modules to allow easier SQL query customization (you don't have to develop custom modules anymore just to change minor things). Read [here](http://betterwp.net/wordpress-plugins/google-xml-sitemaps/#exclude_items) for more details.
+
+**Improvements:**
+
+* Major overhaul of all modules to make them faster, more efficient, more accurate, and of course, consume much less memory. This version should eliminate most white page problems happened in previous versions.
+* Improved compatibility with cache plugins.
+* Improved support for sites that uses `%category%` in permalink structure.
+* The plugin should now display style sheet correctly in tight situations.
+* Added a clear log button to clear redundant log (available to network admin only).
+* Added an option to include links to all sitemapindex.xml files in your network in the primary website's `robots.txt`.
+* Tag archive sitemap can now be disabled properly.
+* Fixed permalinks for people using index.php in permalink structure.
+* Other minor bug fixes and improvements.
+
+For a detailed description of each new feature, please refer to the [release announcement](http://betterwp.net/257-bwp-google-xml-sitemaps-1-1-0/).
+
+**Due to major changes in core it is suggested that you clear the logs using the new 'Clear All Logs' button and double-check the Generator's settings. Have fun and please [rate this plugin](http://wordpress.org/extend/plugins/bwp-google-xml-sitemaps/) 5 stars if you like it, thanks!**
+
+= 1.0.5 =
+* Unregistered modules (such as redundant modules from 1.0.3) will now have a 404 HTTP status to prevent search engines from requesting them again.
+* Time for each log will now make use of your current timezone setting in Settings -> General.
+* And other minor fixes.
+
+**Thanks everyone for using this plugin!**
+
+= 1.0.4 =
+* Hot fix for WordPress in other languages, such as French, Russian. Prior to this version this plugin tries to use posts' and taxonomies' labels to build sitemaps' URLs in plural forms (e.g. taxonomy_categories). Unfortunately this breaks sitemaps when labels contain UTF8 characters with marks (such as cat�gories). All sitemaps now have singular forms. Hope that we will have a better solution in the future.
+
+**This change will make all logs' contents change as well. To remove redundant logs, please deactivate this plugin and then reactivate it.**
+
+= 1.0.3 =
+* Fixed incorrect regex for rewrite rules.
+* Added a check to make sure all necessary rewrite rules are added. No need to manually flush rewrite rules anymore.
+* `bwp_gxs_add_rewrite_rules` action now becomes `bwp_gxs_rewrite_rules` filter (the hook used to add your own sitemaps).
+
+**For people using a cache plugin, please visit the [FAQ section](http://betterwp.net/wordpress-plugins/google-xml-sitemaps/faq/) for a possible compatibility fix.**
+
+= 1.0.2 =
+* Fixed a bug that could produce wrong or empty last modified dates in sitemapindex.
+* Corrected a typo in page.php module.
+* Added Malaysian translation, thanks to d4rkcry3r!
+
+= 1.0.1 =
+* Now you can browser to `http://example.com/sitemap.xml` to view your sitemapindex. You can submit it too if you want. **Important**: Make sure you don't have any real sitemap.xml file in your website's root. Also, you will have to flush all rewrite rules, by either deactivating and then reactivating this plugin, or simply go to [Permalink Settings](http://example.com/wp-admin/options-permalink.php) and click on Save Changes.
+* Build stats (build time, number of queries, memory usage) should be more accurate now.
+* Add a canonical redirection for sitemap URL to avoid problems with XSLT style sheet's absolute URL.
+* Fixed a minor error in the base module class.
+
+= 1.0.0 =
+* Initial Release.
+
+== Upgrade Notice ==
+
+= 1.0.0 =
+* Enjoy the plugin!
\ No newline at end of file
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-1.gif b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-1.gif
new file mode 100644
index 0000000..3ee9d28
Binary files /dev/null and b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-1.gif differ
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-2.gif b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-2.gif
new file mode 100644
index 0000000..02932a5
Binary files /dev/null and b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-2.gif differ
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-3.gif b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-3.gif
new file mode 100644
index 0000000..e00e1f2
Binary files /dev/null and b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-3.gif differ
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-4.gif b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-4.gif
new file mode 100644
index 0000000..474254b
Binary files /dev/null and b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-4.gif differ
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-5.gif b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-5.gif
new file mode 100644
index 0000000..e65b41f
Binary files /dev/null and b/wp-content/plugins/bwp-google-xml-sitemaps/screenshot-5.gif differ
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/xsl/bwp-sitemap.xsl b/wp-content/plugins/bwp-google-xml-sitemaps/xsl/bwp-sitemap.xsl
new file mode 100644
index 0000000..4bfa21b
--- /dev/null
+++ b/wp-content/plugins/bwp-google-xml-sitemaps/xsl/bwp-sitemap.xsl
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ XML Sitemap
+
+
+
+
+
XML Sitemap
+
+
+ This sitemap was created using Better WordPress Google XML Sitemaps, a WordPress plugin that has support for sitemapindex and Multi-site blogs, you can also build custom sitemaps if you want.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wp-content/plugins/bwp-google-xml-sitemaps/xsl/bwp-sitemapindex.xsl b/wp-content/plugins/bwp-google-xml-sitemaps/xsl/bwp-sitemapindex.xsl
new file mode 100644
index 0000000..fd82928
--- /dev/null
+++ b/wp-content/plugins/bwp-google-xml-sitemaps/xsl/bwp-sitemapindex.xsl
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+ XML Sitemap Index
+
+
+
+
+
XML Sitemap Index
+
+
+ This sitemapindex was created using Better WordPress Google XML Sitemaps, a WordPress plugin that has support for sitemapindex and Multi-site blogs, you can also build custom sitemaps if you want.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wp-content/plugins/calais-auto-tagger/calais.css b/wp-content/plugins/calais-auto-tagger/calais.css
new file mode 100644
index 0000000..9fc13e5
--- /dev/null
+++ b/wp-content/plugins/calais-auto-tagger/calais.css
@@ -0,0 +1,18 @@
+
diff --git a/wp-content/plugins/calais-auto-tagger/calais.js b/wp-content/plugins/calais-auto-tagger/calais.js
new file mode 100644
index 0000000..819a517
--- /dev/null
+++ b/wp-content/plugins/calais-auto-tagger/calais.js
@@ -0,0 +1,130 @@
+
diff --git a/wp-content/plugins/calais-auto-tagger/calais_auto_tagger.php b/wp-content/plugins/calais-auto-tagger/calais_auto_tagger.php
new file mode 100644
index 0000000..b2c6b77
--- /dev/null
+++ b/wp-content/plugins/calais-auto-tagger/calais_auto_tagger.php
@@ -0,0 +1,140 @@
+Do you advertise your site online? Then check out our other service: Improvely
+Version: 1.5
+Author: Dan Grossman
+Author URI: http://www.dangrossman.info
+
+***************************************************************************/
+
+// Include the Open Calais Tags class by Dan Grossman
+// http://www.dangrossman.info/open-calais-tags
+
+require('opencalais.php');
+
+// WordPress hooks
+
+add_action('admin_menu', 'calais_init');
+add_action('save_post', 'calais_savetags', 10, 2);
+add_action('wp_ajax_calais_gettags', 'calais_gettags');
+
+// Adds the tag suggestion box to the post page, and the configuration link to the settings menu
+
+function calais_init() {
+ add_meta_box('calais', 'Calais Auto Tagger', 'calais_box', 'post', 'normal', 'high');
+ add_submenu_page('options-general.php', 'Calais API Key', 'Calais API Key', 10, __FILE__, 'calais_conf');
+}
+
+// Renders the tag suggestion box
+
+function calais_box() {
+
+ include('calais.css');
+ include('calais.js');
+
+ global $post;
+ $existing_tags = wp_get_post_tags($post->ID);
+
+ $tags = array();
+
+ if (count($existing_tags) > 0) {
+ foreach ($existing_tags as $tag) {
+ if ($tag->taxonomy == 'post_tag') {
+ $tags[] = $tag->name;
+ }
+ }
+ }
+
+ echo '';
+ include('calaisbox.html');
+
+}
+
+// Called by WordPress when a post is saved
+// Sets the post tags based on the hidden input field our tagging interface populated
+
+function calais_savetags($post_id, $post) {
+
+ if ($post->post_type == 'revision')
+ return;
+
+ if (!isset($_POST['calais_taglist']))
+ return;
+
+ $taglist = $_POST['calais_taglist'];
+ $tags = split(', ', $taglist);
+ if (strlen(trim($taglist)) > 0 && count($tags) > 0) {
+ wp_set_post_tags($post_id, $tags);
+ } else {
+ wp_set_post_tags($post_id, array());
+ }
+
+}
+
+// Callback function for the AJAX request for tag suggestions
+// Returns a list of tags separated by a comma and a space
+
+function calais_gettags() {
+
+ if (empty($_POST['text']))
+ die("");
+
+ $content = stripslashes($_POST['text']);
+
+ $key = get_option('calais-api-key');
+ if (empty($key)) {
+ die("You have not yet configured this plugin. You must add your Calais API key in the settings menu.");
+ }
+
+ $oc = new OpenCalais($key);
+ $entities = $oc->getEntities($content);
+
+ if (count($entities) == 0)
+ die("");
+
+ $tags = array();
+ foreach ($entities as $type => $array)
+ foreach ($array as $tag)
+ $tags[] = $tag;
+
+ die(implode($tags, ', '));
+
+}
+
+// Called by WordPress to display the configuration page
+
+function calais_conf() {
+
+ if (isset($_POST['calais-api-key'])) {
+ update_option('calais-api-key', $_POST['calais-api-key']);
+ echo '
+ This could mean either you pasted the token wrong, or the time/date on your server is wrong,
+ or an SSL issue preventing Google from Authenticating.
Enter your Google Authentication Code in this box. This code will be used to get an Authentication Token so you can access your website stats.
+
+
+
+
+
+
+
+
I Don't Want To Authenticate Through Google
+
If you don't want to authenticate through Google and only use the tracking capability of the plugin (not the dashboard functionality), you can do this by clicking the button below.
+
You will be asked on the next page to manually enter your Google Analytics UID.
";
+ }
+ // Are we using the auth system?
+ $useAuth = ( get_option( 'ga_google_token' ) == '' ? false : true );
+ // Output the options page
+
+ ?>
+
+
+
+
+checkLogin() )
+ return false;
+
+ # Get a list of accounts
+ $accounts = $stats->getAllProfiles();
+
+ natcasesort ($accounts);
+
+ # Return the account array if there are accounts
+ if ( count($accounts) > 0 )
+ return $accounts;
+ else
+ return false;
+}
+
+/**
+ * Add http_build_query if it doesn't exist already
+ **/
+if ( !function_exists('http_build_query') ) {
+ function http_build_query($params, $key = null)
+ {
+ $ret = array();
+
+ foreach( (array) $params as $name => $val ) {
+ $name = urlencode($name);
+
+ if ( $key !== null )
+ $name = $key . "[" . $name . "]";
+
+ if ( is_array($val) || is_object($val) )
+ $ret[] = http_build_query($val, $name);
+ elseif ($val !== null)
+ $ret[] = $name . "=" . urlencode($val);
+ }
+
+ return implode("&", $ret);
+ }
+}
+
+/**
+ * Echos out the core Analytics tracking code
+ **/
+function add_google_analytics()
+{
+ # Fetch variables used in the tracking code
+ $uid = stripslashes(get_option(key_ga_uid));
+ $extra = stripslashes(get_option(key_ga_extra));
+ $extra_after = stripslashes(get_option(key_ga_extra_after));
+ $extensions = str_replace (",", "|", get_option(key_ga_downloads));
+
+ # Determine if the GA is enabled and contains a valid UID
+ if ( ( get_option(key_ga_status) != ga_disabled ) && ( $uid != "XX-XXXXX-X" ) )
+ {
+ # Determine if the user is an admin, and should see the tracking code
+ if ( ( get_option(key_ga_admin) == ga_enabled || !ga_current_user_is(get_option(key_ga_admin_role)) ) && get_option(key_ga_admin_disable) == 'remove' || get_option(key_ga_admin_disable) != 'remove' )
+ {
+ # Disable the tracking code on the post preview page
+ if ( !function_exists("is_preview") || ( function_exists("is_preview") && !is_preview() ) )
+ {
+ # Add the notice that Google Analyticator tracking is enabled
+ echo "\n";
+
+ # Add the Adsense data if specified
+ if ( get_option(key_ga_adsense) != '' )
+ echo '\n";
+
+ # Include the file types to track
+ $extensions = explode(',', stripslashes(get_option(key_ga_downloads)));
+ $ext = "";
+ foreach ( $extensions AS $extension )
+ $ext .= "'$extension',";
+ $ext = substr($ext, 0, -1);
+
+ # Include the link tracking prefixes
+ $outbound_prefix = stripslashes(get_option(key_ga_outbound_prefix));
+ $downloads_prefix = stripslashes(get_option(key_ga_downloads_prefix));
+ $event_tracking = get_option(key_ga_event);
+ $need_to_annon = get_option(key_ga_annon);
+ $jsanalytic_snippet = get_option(key_ga_analytic_snippet);
+ ?>
+
+
+
+\n";
+ echo " \n";
+ }
+ }
+}
+
+/**
+ * Adds outbound link tracking to Google Analyticator
+ **/
+function ga_outgoing_links()
+{
+ # Fetch the UID
+ $uid = stripslashes(get_option(key_ga_uid));
+
+ # If GA is enabled and has a valid key
+ if ( (get_option(key_ga_status) != ga_disabled ) && ( $uid != "XX-XXXXX-X" ) )
+ {
+ # If outbound tracking is enabled
+ if ( get_option(key_ga_outbound) == ga_enabled )
+ {
+ # If this is not an admin page
+ if ( !is_admin() )
+ {
+ # Display page tracking if user is not an admin
+ if ( ( get_option(key_ga_admin) == ga_enabled || !ga_current_user_is(get_option(key_ga_admin_role)) ) && get_option(key_ga_admin_disable) == 'remove' || get_option(key_ga_admin_disable) != 'remove' )
+ {
+ add_action('wp_print_scripts', 'ga_external_tracking_js',99999);
+ }
+ }
+ }
+ }
+}
+
+/**
+ * Adds the scripts required for outbound link tracking
+ **/
+function ga_external_tracking_js()
+{
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
+ wp_enqueue_script('ga-external-tracking', plugins_url("/google-analyticator/external-tracking{$suffix}.js"), array('jquery'), GOOGLE_ANALYTICATOR_VERSION);
+}
+
+/**
+ * Determines if a specific user fits a role
+ **/
+function ga_current_user_is($roles)
+{
+ if ( !$roles ) return false;
+
+ global $current_user;
+ get_currentuserinfo();
+ $user_id = intval( $current_user->ID );
+
+ if ( !$user_id ) {
+ return false;
+ }
+ $user = new WP_User($user_id); // $user->roles
+
+ foreach ( $roles as $role )
+ if ( in_array($role, $user->roles) ) return true;
+
+ return false;
+}
+
+function ga_analyticator_setting_url(){
+ return ( ga_get_active_addons() == false) ? admin_url("options-general.php?page=google-analyticator.php") : admin_url("admin.php?page=ga-pro-experiment.php");
+}
+
+function ga_get_active_addons(){
+
+ $gapro_addons = get_option("gapro_addons");
+ if($gapro_addons && is_array($gapro_addons)){
+ return $gapro_addons;
+ }else{
+ return false;
+ }
+}
+function add_ga_admin_footer(){
+ echo '';
+}
diff --git a/wp-content/plugins/google-analyticator/google-analytics-stats-widget.php b/wp-content/plugins/google-analyticator/google-analytics-stats-widget.php
new file mode 100644
index 0000000..dfde6ac
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-analytics-stats-widget.php
@@ -0,0 +1,243 @@
+ 'widget_google_stats', 'description' => __("Displays Stat Info From Google Analytics", 'google-analyticator') );
+ $control_ops = array('width' => 400, 'height' => 400);
+ $this->WP_Widget('googlestats', __('Google Analytics Stats', 'google-analyticator'), $widget_ops, $control_ops);
+ }
+
+ function widget($args, $instance) {
+ extract($args);
+ $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title']);
+ $acnt = false;
+ $timeFrame = empty($instance['timeFrame']) ? '1' : $instance['timeFrame'];
+ $pageBg = empty($instance['pageBg']) ? 'fff' : $instance['pageBg'];
+ $widgetBg = empty($instance['widgetBg']) ? '999' : $instance['widgetBg'];
+ $innerBg = empty($instance['innerBg']) ? 'fff' : $instance['innerBg'];
+ $font = empty($instance['font']) ? '333' : $instance['font'];
+ $line1 = empty($instance['line1']) ? 'Unique' : $instance['line1'];
+ $line2 = empty($instance['line2']) ? 'Visitors' : $instance['line2'];
+
+ # Before the widget
+ echo $before_widget;
+
+ # The title
+ if ( $title )
+ echo $before_title . $title . $after_title;
+
+ # Make the stats chicklet
+ echo '';
+ $this->initiateBackground($pageBg, $font);
+ $this->beginWidget($font, $widgetBg);
+ $this->widgetInfo($this->getUniqueVisitors($acnt, $timeFrame), $line1, $line2, $innerBg, $font);
+ $this->endWidget();
+
+ # After the widget
+ echo $after_widget;
+ }
+
+ function update($new_instance, $old_instance) {
+ $instance = $old_instance;
+ $instance['title'] = strip_tags(stripslashes($new_instance['title']));
+ $instance['account'] = strip_tags(stripslashes($new_instance['account']));
+ $instance['timeFrame'] = strip_tags(stripslashes($new_instance['timeFrame']));
+ $instance['pageBg'] = strip_tags(stripslashes($new_instance['pageBg']));
+ $instance['widgetBg'] = strip_tags(stripslashes($new_instance['widgetBg']));
+ $instance['innerBg'] = strip_tags(stripslashes($new_instance['innerBg']));
+ $instance['font'] = strip_tags(stripslashes($new_instance['font']));
+ $instance['line1'] = strip_tags(stripslashes($new_instance['line1']));
+ $instance['line2'] = strip_tags(stripslashes($new_instance['line2']));
+
+ return $instance;
+ }
+
+ function form($instance) {
+ //Defaults
+ $instance = wp_parse_args( (array) $instance, array('title'=>'', 'account'=>'', 'timeFrame'=>'1', 'pageBg'=>'fff', 'widgetBg'=>'999', 'innerBg'=>'fff', 'font'=>'333', 'line1'=>'Unique', 'line2'=>'Visitors') );
+
+ $title = htmlspecialchars($instance['title']);
+ $acnt = htmlspecialchars($instance['account']);
+ $timeFrame = htmlspecialchars($instance['timeFrame']);
+ $pageBg = htmlspecialchars($instance['pageBg']);
+ $widgetBg = htmlspecialchars($instance['widgetBg']);
+ $innerBg = htmlspecialchars($instance['innerBg']);
+ $font = htmlspecialchars($instance['font']);
+ $line1 = htmlspecialchars($instance['line1']);
+ $line2 = htmlspecialchars($instance['line2']);
+
+ $accounts = array();
+
+ # Get the current memory limit
+ $current_mem_limit = substr(ini_get('memory_limit'), 0, -1);
+
+ # Check if this limit is less than 96M, if so, increase it
+ if ( $current_mem_limit < 96 || $current_mem_limit == '' ) {
+ if ( function_exists('memory_get_usage') )
+ @ini_set('memory_limit', '96M');
+ }
+
+ # Get the class for interacting with the Google Analytics
+ require_once('class.analytics.stats.php');
+
+ # Create a new Gdata call
+ $stats = new GoogleAnalyticsStats();
+
+ # Check if Google sucessfully logged in
+ $login = $stats->checkLogin();
+
+ if( !$login )
+ return false;
+
+ # Get a list of accounts
+ //$accounts = $stats->getAnalyticsAccounts();
+ $accounts = $stats->getSingleProfile();
+
+
+
+ # Output the options
+ echo '';
+ # Time frame
+ echo '';
+ # Page background
+ echo '';
+ # Widget background
+ echo '';
+ # Inner background
+ echo '';
+ # Font color
+ echo '';
+ # Text line 1
+ echo '';
+ # Text line 2
+ echo '';
+ }
+
+ /**
+ * This function is used to display the background color behind the widget. This is necessary
+ * for the Google Analytics text to have the same background color as the page.
+ *
+ * @param $font_color - Hexadecimal value for the font color used within the Widget (does not effect "Powered By Google Analytics Text"). This effects border color as well.
+ * @param $page_background_color - Hexadecimal value for the page background color
+ * @return void
+ **/
+ function initiateBackground($page_background_color = 'FFF', $font_color = '000')
+ {
+ echo ' ';
+ echo '
';
+ }
+
+ /**
+ * This function starts the widget. The font color and widget background color are customizable.
+ *
+ * @param $font_color - Hexadecimal value for the font color used within the Widget (does not effect "Powered By Google Analytics Text"). This effects border color as well.
+ * @param $widget_background_color - Hexadecimal value for the widget background color.
+ * @return void
+ **/
+ function beginWidget($font_color = '000', $widget_background_color = 'FFF')
+ {
+ echo '
';
+ }
+
+ /**
+ * This function encases the text that appears on the right hand side of the widget.
+ * Both lines of text are customizable by each individual user.
+ *
+ * It also displays the visitor count that was pulled from the user's Google Analytics account.
+ *
+ * @param $visitor_count - Number of unique visits to the site pulled from the user's Google Analytics account.
+ * @param $line_one - First line of text displayed on the right hand side of the widget.
+ * @param $line_two - Second line of text displayed on the right hand side of the widget.
+ * @param $inner_background_color - Hexadecimal value for the background color that surrounds the Visitor Count.
+ * @param $font_color - Hexadecimal value for the font color used within the Widget (does not effect "Powered By Google Analytics Text"). This effects border color as well
+ * @return void
+ **/
+ function widgetInfo($visitor_count, $line_one = 'Unique', $line_two = 'Visitors', $inner_background_color = 'FFF', $font_color = '000')
+ {
+
+ echo '
'. $visitor_count . '
';
+
+ echo '
' . $line_one . ' ' . $line_two . '
';
+
+ }
+
+ /**
+ * The function is used strictly for visual appearance. It also displays the Google Analytics text.
+ *
+ * @return void
+ **/
+ function endWidget()
+ {
+ // This closes off the widget.
+ echo '
';
+
+ // The following is used to displayed the "Powered By Google Anayltics" text.
+ echo '
Powered By
';
+ }
+
+ /**
+ * Grabs the cached value of the unique visits for the previous day
+ *
+ * @param account - the account to get the unique visitors from
+ * @param time - the amount of days to get
+ * @return void
+ **/
+ function getUniqueVisitors($account, $time = 1)
+ {
+ // IF we have a cached version, return that, if not, continue on.
+ if ( get_transient( 'google_stats_uniques' ) )
+ return get_transient( 'google_stats_uniques' );
+
+ # Get the class for interacting with the Google Analytics
+ require_once('class.analytics.stats.php');
+
+ # Create a new Gdata call
+ $stats = new GoogleAnalyticsStats();
+
+ # Check if Google sucessfully logged in
+ if ( ! $stats->checkLogin() )
+ return false;
+
+ $account = $stats->getSingleProfile();
+ $account = $account[0]['id'];
+
+ # Set the account to the one requested
+ $stats->setAccount($account);
+
+ # Get the latest stats
+ $before = date('Y-m-d', strtotime('-' . $time . ' days'));
+ $yesterday = date('Y-m-d', strtotime('-1 day'));
+
+ try{
+ $result = $stats->getMetrics('ga:visitors', $before, $yesterday);
+ }
+ catch(Exception $e){
+ print 'GA Widget - there was a service error ' . $e->getCode() . ':' . $e->getMessage();
+ }
+
+ $uniques = number_format($result->totalsForAllResults['ga:visitors']);
+
+ # Store the array
+ set_transient( 'google_stats_uniques', $uniques, 60*60*12 );
+
+ # Return the visits
+ return $uniques;
+ }
+
+}// END class
+
+/**
+* Register Google Analytics Stat Widget.
+*/
+function GoogleStatsWidget_init() {
+ register_widget('GoogleStatsWidget');
+}
+
+add_action('widgets_init', 'GoogleStatsWidget_init');
diff --git a/wp-content/plugins/google-analyticator/google-analytics-summary-widget.php b/wp-content/plugins/google-analyticator/google-analytics-summary-widget.php
new file mode 100644
index 0000000..7982853
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-analytics-summary-widget.php
@@ -0,0 +1,660 @@
+qa_selecteddate = isset( $_REQUEST['qa_selecteddate'] ) ? wp_filter_kses( $_REQUEST['qa_selecteddate'] ) : '31';
+ $this->date_before = date('Y-m-d', strtotime( '-'.$this->qa_selecteddate.' days', strtotime( current_time( 'mysql' ) ) ) );
+ $this->date_yesterday = date('Y-m-d', strtotime( '-1 days', strtotime( current_time( 'mysql' ) ) ) );
+
+ add_action( 'wp_ajax_ga_stats_widget', array( $this, 'ajaxWidget' ) );
+ }
+
+ /**
+ * Add the widget to the dashboard
+ **/
+ function addDashboardWidget()
+ {
+ # Check if the user is an admin
+ if (ga_current_user_is(get_option(key_ga_dashboard_role))) {
+ wp_add_dashboard_widget('google-analytics-summary', __('Google Analytics Summary', 'google-analyticator'), array(
+ $this,
+ 'widget'
+ ));
+ }
+ }
+
+ /**
+ * Add the scripts to the admin
+ **/
+ function addJavascript()
+ {
+ # Include the Sparklines graphing library
+ wp_enqueue_script('flot', plugins_url('/google-analyticator/jquery.flot.min.js'), array(
+ 'jquery'
+ ), '1.5.1');
+ }
+
+ /**
+ * Add the Javascript to the top
+ **/
+ function addTopJs()
+ {
+?>
+
+ ';
+ echo '
';
+ echo '';
+ }
+
+ /**
+ * AJAX data for the widget
+ **/
+ function ajaxWidget()
+ {
+ # Check the ajax widget
+ check_ajax_referer('google-analyticator-statsWidget_get');
+
+ # If WP_DEBUG is true,.
+
+ $doing_transient = false;
+
+ if ( ( defined('WP_DEBUG') && WP_DEBUG ) || ( false === ( $ga_output = get_transient( 'ga_admin_dashboard_'. GOOGLE_ANALYTICATOR_VERSION . $this->qa_selecteddate) ) ) ) {
+ ob_start();
+ # Attempt to login and get the current account
+ $account = $this->getAnalyticsAccount();
+
+ $this->id = $account;
+
+ $this->api->setAccount($this->id);
+
+ # Check that we can display the widget before continuing
+ if ($account == false || $this->id == false) {
+ # Output error message
+ echo '
' . __('No Analytics account selected. Double check you are authenticated with Google on Google Analyticator\'s settings page and make sure an account is selected.', 'google-analyticator') . '
';
+ # Add Javascript variable to prevent breaking the Javascript
+ echo '';
+ die;
+ }
+
+ # Add the header information for the visits graph
+ // echo '
' . __('Visits Over the Past 30 Days', 'google-analyticator') . '
';
+
+ # Add the sparkline for the past 30 days
+ $this->getVisitsGraph();
+
+ # Add the summary header
+ echo '
' . __('Site Usage', 'google-analyticator') . '
';
+
+ # Add the visitor summary
+ $this->getSiteUsage();
+
+ # Add the top 5 posts header
+ echo '
' . __('Top Pages', 'google-analyticator') . '
';
+
+ # Add the top 5 posts
+ $this->getTopPages();
+
+ # Add the tab information
+ echo '
+ api->getMetrics('ga:pageviews', $this->date_before, $this->date_yesterday, 'ga:pageTitle,ga:pagePath', '-ga:pageviews', 'ga:pagePath!=/', 10); //'ga:pagePath!%3D%2F'
+ $rows = $stats->getRows();
+
+ # Check the size of the stats array
+ if (count($rows) <= 0 || !is_array($rows)) {
+ $return = '
' . __('There is no data for view.', 'google-analyticator') . '
';
+ } else {
+ # Build the top pages list
+ $return = '';
+
+ # Set variables needed to correct (not set) bug
+ $new_stats = array();
+ $notset_stats = array();
+
+ # Loop through each stat and create a new array
+ foreach ($rows AS $stat) {
+ # If the stat is not set
+ if ($stat[0] == '(not set)') {
+ # Add it to separate array
+ $notset_stats[] = $stat;
+ } else {
+ # Add it to new array with index set
+ $new_stats[$stat[1]] = $stat;
+ }
+ }
+
+ # Loop through all the (not set) stats and attempt to add them to their correct stat
+ foreach ($notset_stats AS $stat) {
+ # If the stat has a "partner"
+ if ($new_stats[$stat[1]] != NULL) {
+ # Add the pageviews to the stat
+ $new_stats[$stat[1]][2] = $new_stats[$stat[1]][2] + $stat[2];
+ } else {
+ # Stat goes to the ether since we couldn't find a partner (if anyone reads this and has a suggestion to improve, let me know)
+ }
+ }
+
+ # Renew new_stats back to stats
+ $stats = $new_stats;
+
+ # Sort the stats array, since adding the (not set) items may have changed the order
+ usort($stats, array(
+ $this,
+ 'statSort'
+ ));
+
+ # Since we can no longer rely on the API as a limiter, we need to keep track of this ourselves
+ $stat_count = 0;
+
+ # Loop through each stat for display
+ foreach ($stats AS $stat) {
+ $return .= '
';
+ }
+ # Finish the list
+ echo '';
+ }
+ }
+
+ /**
+ * Sort a set of stats in descending order
+ *
+ * @return how the stat should be sorted
+ **/
+ function statSort($x, $y)
+ {
+ if ($x[2] == $y[2])
+ return 0;
+ elseif ($x[2] < $y[2])
+ return 1;
+ else
+ return -1;
+ }
+
+ /**
+ * Convert second to a time format
+ **/
+ function sec2Time($time)
+ {
+ # Check if numeric
+ if (is_numeric($time)) {
+ $value = array(
+ "years" => '00',
+ "days" => '00',
+ "hours" => '00',
+ "minutes" => '00',
+ "seconds" => '00'
+ );
+ if ($time >= 31556926) {
+ $value["years"] = floor($time / 31556926);
+ $time = ($time % 31556926);
+ }
+ if ($time >= 86400) {
+ $value["days"] = floor($time / 86400);
+ $time = ($time % 86400);
+ }
+ if ($time >= 3600) {
+ $value["hours"] = str_pad(floor($time / 3600), 2, 0, STR_PAD_LEFT);
+ $time = ($time % 3600);
+ }
+ if ($time >= 60) {
+ $value["minutes"] = str_pad(floor($time / 60), 2, 0, STR_PAD_LEFT);
+ $time = ($time % 60);
+ }
+ $value["seconds"] = str_pad(floor($time), 2, 0, STR_PAD_LEFT);
+
+ # Get the hour:minute:second version
+ return $value['hours'] . ':' . $value['minutes'] . ':' . $value['seconds'];
+ } else {
+ return false;
+ }
+ }
+} // END class
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/LICENSE b/wp-content/plugins/google-analyticator/google-api-php-client/LICENSE
new file mode 100644
index 0000000..a148ba5
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/LICENSE
@@ -0,0 +1,203 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all
+other entities that control, are controlled by, or are under common
+control with that entity. For the purposes of this definition,
+"control" means (i) the power, direct or indirect, to cause the
+direction or management of such entity, whether by contract or
+otherwise, or (ii) ownership of fifty percent (50%) or more of the
+outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation
+source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or
+Object form, made available under the License, as indicated by a
+copyright notice that is included in or attached to the work
+(an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object
+form, that is based on (or derived from) the Work and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship. For the purposes
+of this License, Derivative Works shall not include works that remain
+separable from, or merely link (or bind by name) to the interfaces of,
+the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including
+the original version of the Work and any modifications or additions
+to that Work or Derivative Works thereof, that is intentionally
+submitted to Licensor for inclusion in the Work by the copyright owner
+or by an individual or Legal Entity authorized to submit on behalf of
+the copyright owner. For the purposes of this definition, "submitted"
+means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems,
+and issue tracking systems that are managed by, or on behalf of, the
+Licensor for the purpose of discussing and improving the Work, but
+excluding communication that is conspicuously marked or otherwise
+designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work,
+where such license applies only to those patent claims licensable
+by such Contributor that are necessarily infringed by their
+Contribution(s) alone or by combination of their Contribution(s)
+with the Work to which such Contribution(s) was submitted. If You
+institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work
+or a Contribution incorporated within the Work constitutes direct
+or contributory patent infringement, then any patent licenses
+granted to You under this License for that Work shall terminate
+as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+Work or Derivative Works thereof in any medium, with or without
+modifications, and in Source or Object form, provided that You
+meet the following conditions:
+
+(a) You must give any other recipients of the Work or
+Derivative Works a copy of this License; and
+
+(b) You must cause any modified files to carry prominent notices
+stating that You changed the files; and
+
+(c) You must retain, in the Source form of any Derivative Works
+that You distribute, all copyright, patent, trademark, and
+attribution notices from the Source form of the Work,
+excluding those notices that do not pertain to any part of
+the Derivative Works; and
+
+(d) If the Work includes a "NOTICE" text file as part of its
+distribution, then any Derivative Works that You distribute must
+include a readable copy of the attribution notices contained
+within such NOTICE file, excluding those notices that do not
+pertain to any part of the Derivative Works, in at least one
+of the following places: within a NOTICE text file distributed
+as part of the Derivative Works; within the Source form or
+documentation, if provided along with the Derivative Works; or,
+within a display generated by the Derivative Works, if and
+wherever such third-party notices normally appear. The contents
+of the NOTICE file are for informational purposes only and
+do not modify the License. You may add Your own attribution
+notices within Derivative Works that You distribute, alongside
+or as an addendum to the NOTICE text from the Work, provided
+that such additional attribution notices cannot be construed
+as modifying the License.
+
+You may add Your own copyright statement to Your modifications and
+may provide additional or different license terms and conditions
+for use, reproduction, or distribution of Your modifications, or
+for any such Derivative Works as a whole, provided Your use,
+reproduction, and distribution of the Work otherwise complies with
+the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Apache License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/NOTICE b/wp-content/plugins/google-analyticator/google-api-php-client/NOTICE
new file mode 100644
index 0000000..22d7cb5
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/NOTICE
@@ -0,0 +1,4 @@
+This product contains the following libraries:
+
+XRDS-Simple library from http://code.google.com/p/diso/
+Apache License 2.0
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/README b/wp-content/plugins/google-analyticator/google-api-php-client/README
new file mode 100644
index 0000000..42c42c0
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/README
@@ -0,0 +1,40 @@
+Google APIs Client Library for PHP
+=====================================
+
+== Description
+The Google API Client Library enables you to work with Google APIs such as Google+, Drive, Tasks, or Latitude on your server.
+
+Requirements:
+ PHP 5.2.x or higher [http://www.php.net/]
+ PHP Curl extension [http://www.php.net/manual/en/intro.curl.php]
+ PHP JSON extension [http://php.net/manual/en/book.json.php]
+
+Project page:
+ http://code.google.com/p/google-api-php-client
+
+OAuth 2 instructions:
+ http://code.google.com/p/google-api-php-client/wiki/OAuth2
+
+Report a defect or feature request here:
+ http://code.google.com/p/google-api-php-client/issues/entry
+
+Subscribe to project updates in your feed reader:
+ http://code.google.com/feeds/p/google-api-php-client/updates/basic
+
+Supported sample applications:
+ http://code.google.com/p/google-api-php-client/wiki/Samples
+
+== Basic Example
+ 'free-ebooks');
+ $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);
+
+ foreach ($results['items'] as $item) {
+ print($item['volumeInfo']['title'] . ' ');
+ }
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/Google_Client.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/Google_Client.php
new file mode 100644
index 0000000..4cc82f5
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/Google_Client.php
@@ -0,0 +1,471 @@
+
+ * @author Chirag Shah
+ */
+class Google_Client {
+ /**
+ * @static
+ * @var Google_Auth $auth
+ */
+ static $auth;
+
+ /**
+ * @static
+ * @var Google_IO $io
+ */
+ static $io;
+
+ /**
+ * @static
+ * @var Google_Cache $cache
+ */
+ static $cache;
+
+ /**
+ * @static
+ * @var boolean $useBatch
+ */
+ static $useBatch = false;
+
+ /** @var array $scopes */
+ protected $scopes = array();
+
+ /** @var bool $useObjects */
+ protected $useObjects = false;
+
+ // definitions of services that are discovered.
+ protected $services = array();
+
+ // Used to track authenticated state, can't discover services after doing authenticate()
+ private $authenticated = false;
+
+ public function __construct($config = array()) {
+ global $apiConfig;
+ $apiConfig = array_merge($apiConfig, $config);
+ self::$cache = new $apiConfig['cacheClass']();
+ self::$auth = new $apiConfig['authClass']();
+ self::$io = new $apiConfig['ioClass']();
+ }
+
+ /**
+ * Add a service
+ */
+ public function addService($service, $version = false) {
+ global $apiConfig;
+ if ($this->authenticated) {
+ throw new Google_Exception('Cant add services after having authenticated');
+ }
+ $this->services[$service] = array();
+ if (isset($apiConfig['services'][$service])) {
+ // Merge the service descriptor with the default values
+ $this->services[$service] = array_merge($this->services[$service], $apiConfig['services'][$service]);
+ }
+ }
+
+ public function authenticate($code = null) {
+ $service = $this->prepareService();
+ $this->authenticated = true;
+ return self::$auth->authenticate($service, $code);
+ }
+
+ /**
+ * @return array
+ * @visible For Testing
+ */
+ public function prepareService() {
+ $service = array();
+ $scopes = array();
+ if ($this->scopes) {
+ $scopes = $this->scopes;
+ } else {
+ foreach ($this->services as $key => $val) {
+ if (isset($val['scope'])) {
+ if (is_array($val['scope'])) {
+ $scopes = array_merge($val['scope'], $scopes);
+ } else {
+ $scopes[] = $val['scope'];
+ }
+ } else {
+ $scopes[] = 'https://www.googleapis.com/auth/' . $key;
+ }
+ unset($val['discoveryURI']);
+ unset($val['scope']);
+ $service = array_merge($service, $val);
+ }
+ }
+ $service['scope'] = implode(' ', $scopes);
+ return $service;
+ }
+
+ /**
+ * Set the OAuth 2.0 access token using the string that resulted from calling authenticate()
+ * or Google_Client#getAccessToken().
+ * @param string $accessToken JSON encoded string containing in the following format:
+ * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
+ * "expires_in":3600, "id_token":"TOKEN", "created":1320790426}
+ */
+ public function setAccessToken($accessToken) {
+ if ($accessToken == null || 'null' == $accessToken) {
+ $accessToken = null;
+ }
+ self::$auth->setAccessToken($accessToken);
+ }
+
+ /**
+ * Set the type of Auth class the client should use.
+ * @param string $authClassName
+ */
+ public function setAuthClass($authClassName) {
+ self::$auth = new $authClassName();
+ }
+
+ /**
+ * Construct the OAuth 2.0 authorization request URI.
+ * @return string
+ */
+ public function createAuthUrl() {
+ $service = $this->prepareService();
+ return self::$auth->createAuthUrl($service['scope']);
+ }
+
+ /**
+ * Get the OAuth 2.0 access token.
+ * @return string $accessToken JSON encoded string in the following format:
+ * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
+ * "expires_in":3600,"id_token":"TOKEN", "created":1320790426}
+ */
+ public function getAccessToken() {
+ $token = self::$auth->getAccessToken();
+ return (null == $token || 'null' == $token) ? null : $token;
+ }
+
+ /**
+ * Returns if the access_token is expired.
+ * @return bool Returns True if the access_token is expired.
+ */
+ public function isAccessTokenExpired() {
+ return self::$auth->isAccessTokenExpired();
+ }
+
+ /**
+ * Set the developer key to use, these are obtained through the API Console.
+ * @see http://code.google.com/apis/console-help/#generatingdevkeys
+ * @param string $developerKey
+ */
+ public function setDeveloperKey($developerKey) {
+ self::$auth->setDeveloperKey($developerKey);
+ }
+
+ /**
+ * Set OAuth 2.0 "state" parameter to achieve per-request customization.
+ * @see http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.1.2.2
+ * @param string $state
+ */
+ public function setState($state) {
+ self::$auth->setState($state);
+ }
+
+ /**
+ * @param string $accessType Possible values for access_type include:
+ * {@code "offline"} to request offline access from the user. (This is the default value)
+ * {@code "online"} to request online access from the user.
+ */
+ public function setAccessType($accessType) {
+ self::$auth->setAccessType($accessType);
+ }
+
+ /**
+ * @param string $approvalPrompt Possible values for approval_prompt include:
+ * {@code "force"} to force the approval UI to appear. (This is the default value)
+ * {@code "auto"} to request auto-approval when possible.
+ */
+ public function setApprovalPrompt($approvalPrompt) {
+ self::$auth->setApprovalPrompt($approvalPrompt);
+ }
+
+ /**
+ * Set the application name, this is included in the User-Agent HTTP header.
+ * @param string $applicationName
+ */
+ public function setApplicationName($applicationName) {
+ global $apiConfig;
+ $apiConfig['application_name'] = $applicationName;
+ }
+
+ /**
+ * Set the OAuth 2.0 Client ID.
+ * @param string $clientId
+ */
+ public function setClientId($clientId) {
+ global $apiConfig;
+ $apiConfig['oauth2_client_id'] = $clientId;
+ self::$auth->clientId = $clientId;
+ }
+
+ /**
+ * Get the OAuth 2.0 Client ID.
+ */
+ public function getClientId() {
+ return self::$auth->clientId;
+ }
+
+ /**
+ * Set the OAuth 2.0 Client Secret.
+ * @param string $clientSecret
+ */
+ public function setClientSecret($clientSecret) {
+ global $apiConfig;
+ $apiConfig['oauth2_client_secret'] = $clientSecret;
+ self::$auth->clientSecret = $clientSecret;
+ }
+
+ /**
+ * Get the OAuth 2.0 Client Secret.
+ */
+ public function getClientSecret() {
+ return self::$auth->clientSecret;
+ }
+
+ /**
+ * Set the OAuth 2.0 Redirect URI.
+ * @param string $redirectUri
+ */
+ public function setRedirectUri($redirectUri) {
+ global $apiConfig;
+ $apiConfig['oauth2_redirect_uri'] = $redirectUri;
+ self::$auth->redirectUri = $redirectUri;
+ }
+
+ /**
+ * Get the OAuth 2.0 Redirect URI.
+ */
+ public function getRedirectUri() {
+ return self::$auth->redirectUri;
+ }
+
+ /**
+ * Fetches a fresh OAuth 2.0 access token with the given refresh token.
+ * @param string $refreshToken
+ * @return void
+ */
+ public function refreshToken($refreshToken) {
+ self::$auth->refreshToken($refreshToken);
+ }
+
+ /**
+ * Revoke an OAuth2 access token or refresh token. This method will revoke the current access
+ * token, if a token isn't provided.
+ * @throws Google_AuthException
+ * @param string|null $token The token (access token or a refresh token) that should be revoked.
+ * @return boolean Returns True if the revocation was successful, otherwise False.
+ */
+ public function revokeToken($token = null) {
+ self::$auth->revokeToken($token);
+ }
+
+ /**
+ * Verify an id_token. This method will verify the current id_token, if one
+ * isn't provided.
+ * @throws Google_AuthException
+ * @param string|null $token The token (id_token) that should be verified.
+ * @return Google_LoginTicket Returns an apiLoginTicket if the verification was
+ * successful.
+ */
+ public function verifyIdToken($token = null) {
+ return self::$auth->verifyIdToken($token);
+ }
+
+ /**
+ * @param Google_AssertionCredentials $creds
+ * @return void
+ */
+ public function setAssertionCredentials(Google_AssertionCredentials $creds) {
+ self::$auth->setAssertionCredentials($creds);
+ }
+
+ /**
+ * This function allows you to overrule the automatically generated scopes,
+ * so that you can ask for more or less permission in the auth flow
+ * Set this before you call authenticate() though!
+ * @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/moderator')
+ */
+ public function setScopes($scopes) {
+ $this->scopes = is_string($scopes) ? explode(" ", $scopes) : $scopes;
+ }
+
+ /**
+ * Returns the list of scopes set on the client
+ * @return array the list of scopes
+ *
+ */
+ public function getScopes() {
+ return $this->scopes;
+ }
+
+ /**
+ * If 'plus.login' is included in the list of requested scopes, you can use
+ * this method to define types of app activities that your app will write.
+ * You can find a list of available types here:
+ * @link https://developers.google.com/+/api/moment-types
+ *
+ * @param array $requestVisibleActions Array of app activity types
+ */
+ public function setRequestVisibleActions($requestVisibleActions) {
+ self::$auth->requestVisibleActions =
+ join(" ", $requestVisibleActions);
+ }
+
+ /**
+ * Declare if objects should be returned by the api service classes.
+ *
+ * @param boolean $useObjects True if objects should be returned by the service classes.
+ * False if associative arrays should be returned (default behavior).
+ * @experimental
+ */
+ public function setUseObjects($useObjects) {
+ global $apiConfig;
+ $apiConfig['use_objects'] = $useObjects;
+ }
+
+ /**
+ * Declare if objects should be returned by the api service classes.
+ *
+ * @param boolean $useBatch True if the experimental batch support should
+ * be enabled. Defaults to False.
+ * @experimental
+ */
+ public function setUseBatch($useBatch) {
+ self::$useBatch = $useBatch;
+ }
+
+ /**
+ * @static
+ * @return Google_Auth the implementation of apiAuth.
+ */
+ public static function getAuth() {
+ return Google_Client::$auth;
+ }
+
+ /**
+ * @static
+ * @return Google_IO the implementation of apiIo.
+ */
+ public static function getIo() {
+ return Google_Client::$io;
+ }
+
+ /**
+ * @return Google_Cache the implementation of apiCache.
+ */
+ public function getCache() {
+ return Google_Client::$cache;
+ }
+}
+
+// Exceptions that the Google PHP API Library can throw
+class Google_Exception extends Exception {}
+class Google_AuthException extends Google_Exception {}
+class Google_CacheException extends Google_Exception {}
+class Google_IOException extends Google_Exception {}
+class Google_ServiceException extends Google_Exception {
+ /**
+ * Optional list of errors returned in a JSON body of an HTTP error response.
+ */
+ protected $errors = array();
+
+ /**
+ * Override default constructor to add ability to set $errors.
+ *
+ * @param string $message
+ * @param int $code
+ * @param Exception|null $previous
+ * @param [{string, string}] errors List of errors returned in an HTTP
+ * response. Defaults to [].
+ */
+ public function __construct($message, $code = 0, Exception $previous = null,
+ $errors = array()) {
+ if(version_compare(PHP_VERSION, '5.3.0') >= 0) {
+ parent::__construct($message, $code, $previous);
+ } else {
+ parent::__construct($message, $code);
+ }
+
+ $this->errors = $errors;
+ }
+
+ /**
+ * An example of the possible errors returned.
+ *
+ * {
+ * "domain": "global",
+ * "reason": "authError",
+ * "message": "Invalid Credentials",
+ * "locationType": "header",
+ * "location": "Authorization",
+ * }
+ *
+ * @return [{string, string}] List of errors return in an HTTP response or [].
+ */
+ public function getErrors() {
+ return $this->errors;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_AssertionCredentials.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_AssertionCredentials.php
new file mode 100644
index 0000000..7e37313
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_AssertionCredentials.php
@@ -0,0 +1,103 @@
+
+ */
+class Google_AssertionCredentials {
+ const MAX_TOKEN_LIFETIME_SECS = 3600;
+
+ public $serviceAccountName;
+ public $scopes;
+ public $privateKey;
+ public $privateKeyPassword;
+ public $assertionType;
+ public $sub;
+ /**
+ * @deprecated
+ * @link http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06
+ */
+ public $prn;
+
+ /**
+ * @param $serviceAccountName
+ * @param $scopes array List of scopes
+ * @param $privateKey
+ * @param string $privateKeyPassword
+ * @param string $assertionType
+ * @param bool|string $sub The email address of the user for which the
+ * application is requesting delegated access.
+ */
+ public function __construct(
+ $serviceAccountName,
+ $scopes,
+ $privateKey,
+ $privateKeyPassword = 'notasecret',
+ $assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer',
+ $sub = false) {
+ $this->serviceAccountName = $serviceAccountName;
+ $this->scopes = is_string($scopes) ? $scopes : implode(' ', $scopes);
+ $this->privateKey = $privateKey;
+ $this->privateKeyPassword = $privateKeyPassword;
+ $this->assertionType = $assertionType;
+ $this->sub = $sub;
+ $this->prn = $sub;
+ }
+
+ public function generateAssertion() {
+ $now = time();
+
+ $jwtParams = array(
+ 'aud' => Google_OAuth2::OAUTH2_TOKEN_URI,
+ 'scope' => $this->scopes,
+ 'iat' => $now,
+ 'exp' => $now + self::MAX_TOKEN_LIFETIME_SECS,
+ 'iss' => $this->serviceAccountName,
+ );
+
+ if ($this->sub !== false) {
+ $jwtParams['sub'] = $this->sub;
+ } else if ($this->prn !== false) {
+ $jwtParams['prn'] = $this->prn;
+ }
+
+ return $this->makeSignedJwt($jwtParams);
+ }
+
+ /**
+ * Creates a signed JWT.
+ * @param array $payload
+ * @return string The signed JWT.
+ */
+ private function makeSignedJwt($payload) {
+ $header = array('typ' => 'JWT', 'alg' => 'RS256');
+
+ $segments = array(
+ Google_Utils::urlSafeB64Encode(json_encode($header)),
+ Google_Utils::urlSafeB64Encode(json_encode($payload))
+ );
+
+ $signingInput = implode('.', $segments);
+ $signer = new Google_P12Signer($this->privateKey, $this->privateKeyPassword);
+ $signature = $signer->sign($signingInput);
+ $segments[] = Google_Utils::urlSafeB64Encode($signature);
+
+ return implode(".", $segments);
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Auth.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Auth.php
new file mode 100644
index 0000000..010782d
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Auth.php
@@ -0,0 +1,36 @@
+
+ *
+ */
+abstract class Google_Auth {
+ abstract public function authenticate($service);
+ abstract public function sign(Google_HttpRequest $request);
+ abstract public function createAuthUrl($scope);
+
+ abstract public function getAccessToken();
+ abstract public function setAccessToken($accessToken);
+ abstract public function setDeveloperKey($developerKey);
+ abstract public function refreshToken($refreshToken);
+ abstract public function revokeToken();
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_AuthNone.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_AuthNone.php
new file mode 100644
index 0000000..6ca6bc2
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_AuthNone.php
@@ -0,0 +1,48 @@
+
+ * @author Chirag Shah
+ */
+class Google_AuthNone extends Google_Auth {
+ public $key = null;
+
+ public function __construct() {
+ global $apiConfig;
+ if (!empty($apiConfig['developer_key'])) {
+ $this->setDeveloperKey($apiConfig['developer_key']);
+ }
+ }
+
+ public function setDeveloperKey($key) {$this->key = $key;}
+ public function authenticate($service) {/*noop*/}
+ public function setAccessToken($accessToken) {/* noop*/}
+ public function getAccessToken() {return null;}
+ public function createAuthUrl($scope) {return null;}
+ public function refreshToken($refreshToken) {/* noop*/}
+ public function revokeToken() {/* noop*/}
+
+ public function sign(Google_HttpRequest $request) {
+ if ($this->key) {
+ $request->setUrl($request->getUrl() . ((strpos($request->getUrl(), '?') === false) ? '?' : '&')
+ . 'key='.urlencode($this->key));
+ }
+ return $request;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_LoginTicket.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_LoginTicket.php
new file mode 100644
index 0000000..c0ce614
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_LoginTicket.php
@@ -0,0 +1,63 @@
+
+ */
+class Google_LoginTicket {
+ const USER_ATTR = "id";
+
+ // Information from id token envelope.
+ private $envelope;
+
+ // Information from id token payload.
+ private $payload;
+
+ /**
+ * Creates a user based on the supplied token.
+ *
+ * @param string $envelope Header from a verified authentication token.
+ * @param string $payload Information from a verified authentication token.
+ */
+ public function __construct($envelope, $payload) {
+ $this->envelope = $envelope;
+ $this->payload = $payload;
+ }
+
+ /**
+ * Returns the numeric identifier for the user.
+ * @throws Google_AuthException
+ * @return
+ */
+ public function getUserId() {
+ if (array_key_exists(self::USER_ATTR, $this->payload)) {
+ return $this->payload[self::USER_ATTR];
+ }
+ throw new Google_AuthException("No user_id in token");
+ }
+
+ /**
+ * Returns attributes from the login ticket. This can contain
+ * various information about the user session.
+ * @return array
+ */
+ public function getAttributes() {
+ return array("envelope" => $this->envelope, "payload" => $this->payload);
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php
new file mode 100644
index 0000000..22cb748
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php
@@ -0,0 +1,453 @@
+
+ * @author Chirag Shah
+ *
+ */
+class Google_OAuth2 extends Google_Auth {
+ public $clientId;
+ public $clientSecret;
+ public $developerKey;
+ public $token;
+ public $redirectUri;
+ public $state;
+ public $accessType = 'offline';
+ public $approvalPrompt = 'force';
+ public $requestVisibleActions;
+
+ /** @var Google_AssertionCredentials $assertionCredentials */
+ public $assertionCredentials;
+
+ const OAUTH2_REVOKE_URI = 'https://accounts.google.com/o/oauth2/revoke';
+ const OAUTH2_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token';
+ const OAUTH2_AUTH_URL = 'https://accounts.google.com/o/oauth2/auth';
+ const OAUTH2_FEDERATED_SIGNON_CERTS_URL = 'https://www.googleapis.com/oauth2/v1/certs';
+ const CLOCK_SKEW_SECS = 300; // five minutes in seconds
+ const AUTH_TOKEN_LIFETIME_SECS = 300; // five minutes in seconds
+ const MAX_TOKEN_LIFETIME_SECS = 86400; // one day in seconds
+
+ /**
+ * Instantiates the class, but does not initiate the login flow, leaving it
+ * to the discretion of the caller (which is done by calling authenticate()).
+ */
+ public function __construct() {
+ global $apiConfig;
+
+ if (! empty($apiConfig['developer_key'])) {
+ $this->developerKey = $apiConfig['developer_key'];
+ }
+
+ if (! empty($apiConfig['oauth2_client_id'])) {
+ $this->clientId = $apiConfig['oauth2_client_id'];
+ }
+
+ if (! empty($apiConfig['oauth2_client_secret'])) {
+ $this->clientSecret = $apiConfig['oauth2_client_secret'];
+ }
+
+ if (! empty($apiConfig['oauth2_redirect_uri'])) {
+ $this->redirectUri = $apiConfig['oauth2_redirect_uri'];
+ }
+
+ if (! empty($apiConfig['oauth2_access_type'])) {
+ $this->accessType = $apiConfig['oauth2_access_type'];
+ }
+
+ if (! empty($apiConfig['oauth2_approval_prompt'])) {
+ $this->approvalPrompt = $apiConfig['oauth2_approval_prompt'];
+ }
+
+ }
+
+ /**
+ * @param $service
+ * @param string|null $code
+ * @throws Google_AuthException
+ * @return string
+ */
+ public function authenticate($service, $code = null) {
+ if (!$code && isset($_GET['code'])) {
+ $code = $_GET['code'];
+ }
+
+ if ($code) {
+ // We got here from the redirect from a successful authorization grant, fetch the access token
+ $request = Google_Client::$io->makeRequest(new Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), array(
+ 'code' => $code,
+ 'grant_type' => 'authorization_code',
+ 'redirect_uri' => $this->redirectUri,
+ 'client_id' => $this->clientId,
+ 'client_secret' => $this->clientSecret
+ )));
+
+ if ($request->getResponseHttpCode() == 200) {
+ $this->setAccessToken($request->getResponseBody());
+ $this->token['created'] = time();
+ return $this->getAccessToken();
+ } else {
+ $response = $request->getResponseBody();
+ $decodedResponse = json_decode($response, true);
+ if ($decodedResponse != null && $decodedResponse['error']) {
+ $response = $decodedResponse['error'];
+ }
+ throw new Google_AuthException("Error fetching OAuth2 access token, message: '$response'", $request->getResponseHttpCode());
+ }
+ }
+
+ $authUrl = $this->createAuthUrl($service['scope']);
+ header('Location: ' . $authUrl);
+ return true;
+ }
+
+ /**
+ * Create a URL to obtain user authorization.
+ * The authorization endpoint allows the user to first
+ * authenticate, and then grant/deny the access request.
+ * @param string $scope The scope is expressed as a list of space-delimited strings.
+ * @return string
+ */
+ public function createAuthUrl($scope) {
+ $params = array(
+ 'response_type=code',
+ 'redirect_uri=' . urlencode($this->redirectUri),
+ 'client_id=' . urlencode($this->clientId),
+ 'scope=' . urlencode($scope),
+ 'access_type=' . urlencode($this->accessType),
+ 'approval_prompt=' . urlencode($this->approvalPrompt),
+ );
+
+ // if the list of scopes contains plus.login, add request_visible_actions
+ // to auth URL
+ if(strpos($scope, 'plus.login') && count($this->requestVisibleActions) > 0) {
+ $params[] = 'request_visible_actions=' .
+ urlencode($this->requestVisibleActions);
+ }
+
+ if (isset($this->state)) {
+ $params[] = 'state=' . urlencode($this->state);
+ }
+ $params = implode('&', $params);
+ return self::OAUTH2_AUTH_URL . "?$params";
+ }
+
+ /**
+ * @param string $token
+ * @throws Google_AuthException
+ */
+ public function setAccessToken($token) {
+ $token = json_decode($token, true);
+ if ($token == null) {
+ throw new Google_AuthException('Could not json decode the token');
+ }
+ if (! isset($token['access_token'])) {
+ throw new Google_AuthException("Invalid token format");
+ }
+ $this->token = $token;
+ }
+
+ public function getAccessToken() {
+ return json_encode($this->token);
+ }
+
+ public function setDeveloperKey($developerKey) {
+ $this->developerKey = $developerKey;
+ }
+
+ public function setState($state) {
+ $this->state = $state;
+ }
+
+ public function setAccessType($accessType) {
+ $this->accessType = $accessType;
+ }
+
+ public function setApprovalPrompt($approvalPrompt) {
+ $this->approvalPrompt = $approvalPrompt;
+ }
+
+ public function setAssertionCredentials(Google_AssertionCredentials $creds) {
+ $this->assertionCredentials = $creds;
+ }
+
+ /**
+ * Include an accessToken in a given apiHttpRequest.
+ * @param Google_HttpRequest $request
+ * @return Google_HttpRequest
+ * @throws Google_AuthException
+ */
+ public function sign(Google_HttpRequest $request) {
+ // add the developer key to the request before signing it
+ if ($this->developerKey) {
+ $requestUrl = $request->getUrl();
+ $requestUrl .= (strpos($request->getUrl(), '?') === false) ? '?' : '&';
+ $requestUrl .= 'key=' . urlencode($this->developerKey);
+ $request->setUrl($requestUrl);
+ }
+
+ // Cannot sign the request without an OAuth access token.
+ if (null == $this->token && null == $this->assertionCredentials) {
+ return $request;
+ }
+
+ // Check if the token is set to expire in the next 30 seconds
+ // (or has already expired).
+ if ($this->isAccessTokenExpired()) {
+ if ($this->assertionCredentials) {
+ $this->refreshTokenWithAssertion();
+ } else {
+ if (! array_key_exists('refresh_token', $this->token)) {
+ throw new Google_AuthException("The OAuth 2.0 access token has expired, "
+ . "and a refresh token is not available. Refresh tokens are not "
+ . "returned for responses that were auto-approved.");
+ }
+ $this->refreshToken($this->token['refresh_token']);
+ }
+ }
+
+ // Add the OAuth2 header to the request
+ $request->setRequestHeaders(
+ array('Authorization' => 'Bearer ' . $this->token['access_token'])
+ );
+
+ return $request;
+ }
+
+ /**
+ * Fetches a fresh access token with the given refresh token.
+ * @param string $refreshToken
+ * @return void
+ */
+ public function refreshToken($refreshToken) {
+ $this->refreshTokenRequest(array(
+ 'client_id' => $this->clientId,
+ 'client_secret' => $this->clientSecret,
+ 'refresh_token' => $refreshToken,
+ 'grant_type' => 'refresh_token'
+ ));
+ }
+
+ /**
+ * Fetches a fresh access token with a given assertion token.
+ * @param Google_AssertionCredentials $assertionCredentials optional.
+ * @return void
+ */
+ public function refreshTokenWithAssertion($assertionCredentials = null) {
+ if (!$assertionCredentials) {
+ $assertionCredentials = $this->assertionCredentials;
+ }
+
+ $this->refreshTokenRequest(array(
+ 'grant_type' => 'assertion',
+ 'assertion_type' => $assertionCredentials->assertionType,
+ 'assertion' => $assertionCredentials->generateAssertion(),
+ ));
+ }
+
+ private function refreshTokenRequest($params) {
+ $http = new Google_HttpRequest(self::OAUTH2_TOKEN_URI, 'POST', array(), $params);
+ $request = Google_Client::$io->makeRequest($http);
+
+ $code = $request->getResponseHttpCode();
+ $body = $request->getResponseBody();
+ if (200 == $code) {
+ $token = json_decode($body, true);
+ if ($token == null) {
+ throw new Google_AuthException("Could not json decode the access token");
+ }
+
+ if (! isset($token['access_token']) || ! isset($token['expires_in'])) {
+ throw new Google_AuthException("Invalid token format");
+ }
+
+ $this->token['access_token'] = $token['access_token'];
+ $this->token['expires_in'] = $token['expires_in'];
+ $this->token['created'] = time();
+ } else {
+ throw new Google_AuthException("Error refreshing the OAuth2 token, message: '$body'", $code);
+ }
+ }
+
+ /**
+ * Revoke an OAuth2 access token or refresh token. This method will revoke the current access
+ * token, if a token isn't provided.
+ * @throws Google_AuthException
+ * @param string|null $token The token (access token or a refresh token) that should be revoked.
+ * @return boolean Returns True if the revocation was successful, otherwise False.
+ */
+ public function revokeToken($token = null) {
+ if (!$token) {
+ $token = $this->token['access_token'];
+ }
+ $request = new Google_HttpRequest(self::OAUTH2_REVOKE_URI, 'POST', array(), "token=$token");
+ $response = Google_Client::$io->makeRequest($request);
+ $code = $response->getResponseHttpCode();
+ if ($code == 200) {
+ $this->token = null;
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns if the access_token is expired.
+ * @return bool Returns True if the access_token is expired.
+ */
+ public function isAccessTokenExpired() {
+ if (null == $this->token) {
+ return true;
+ }
+
+ // If the token is set to expire in the next 30 seconds.
+ $expired = ($this->token['created']
+ + ($this->token['expires_in'] - 30)) < time();
+
+ return $expired;
+ }
+
+ // Gets federated sign-on certificates to use for verifying identity tokens.
+ // Returns certs as array structure, where keys are key ids, and values
+ // are PEM encoded certificates.
+ private function getFederatedSignOnCerts() {
+ // This relies on makeRequest caching certificate responses.
+ $request = Google_Client::$io->makeRequest(new Google_HttpRequest(
+ self::OAUTH2_FEDERATED_SIGNON_CERTS_URL));
+ if ($request->getResponseHttpCode() == 200) {
+ $certs = json_decode($request->getResponseBody(), true);
+ if ($certs) {
+ return $certs;
+ }
+ }
+ throw new Google_AuthException(
+ "Failed to retrieve verification certificates: '" .
+ $request->getResponseBody() . "'.",
+ $request->getResponseHttpCode());
+ }
+
+ /**
+ * Verifies an id token and returns the authenticated apiLoginTicket.
+ * Throws an exception if the id token is not valid.
+ * The audience parameter can be used to control which id tokens are
+ * accepted. By default, the id token must have been issued to this OAuth2 client.
+ *
+ * @param $id_token
+ * @param $audience
+ * @return Google_LoginTicket
+ */
+ public function verifyIdToken($id_token = null, $audience = null) {
+ if (!$id_token) {
+ $id_token = $this->token['id_token'];
+ }
+
+ $certs = $this->getFederatedSignonCerts();
+ if (!$audience) {
+ $audience = $this->clientId;
+ }
+ return $this->verifySignedJwtWithCerts($id_token, $certs, $audience);
+ }
+
+ // Verifies the id token, returns the verified token contents.
+ // Visible for testing.
+ function verifySignedJwtWithCerts($jwt, $certs, $required_audience) {
+ $segments = explode(".", $jwt);
+ if (count($segments) != 3) {
+ throw new Google_AuthException("Wrong number of segments in token: $jwt");
+ }
+ $signed = $segments[0] . "." . $segments[1];
+ $signature = Google_Utils::urlSafeB64Decode($segments[2]);
+
+ // Parse envelope.
+ $envelope = json_decode(Google_Utils::urlSafeB64Decode($segments[0]), true);
+ if (!$envelope) {
+ throw new Google_AuthException("Can't parse token envelope: " . $segments[0]);
+ }
+
+ // Parse token
+ $json_body = Google_Utils::urlSafeB64Decode($segments[1]);
+ $payload = json_decode($json_body, true);
+ if (!$payload) {
+ throw new Google_AuthException("Can't parse token payload: " . $segments[1]);
+ }
+
+ // Check signature
+ $verified = false;
+ foreach ($certs as $keyName => $pem) {
+ $public_key = new Google_PemVerifier($pem);
+ if ($public_key->verify($signed, $signature)) {
+ $verified = true;
+ break;
+ }
+ }
+
+ if (!$verified) {
+ throw new Google_AuthException("Invalid token signature: $jwt");
+ }
+
+ // Check issued-at timestamp
+ $iat = 0;
+ if (array_key_exists("iat", $payload)) {
+ $iat = $payload["iat"];
+ }
+ if (!$iat) {
+ throw new Google_AuthException("No issue time in token: $json_body");
+ }
+ $earliest = $iat - self::CLOCK_SKEW_SECS;
+
+ // Check expiration timestamp
+ $now = time();
+ $exp = 0;
+ if (array_key_exists("exp", $payload)) {
+ $exp = $payload["exp"];
+ }
+ if (!$exp) {
+ throw new Google_AuthException("No expiration time in token: $json_body");
+ }
+ if ($exp >= $now + self::MAX_TOKEN_LIFETIME_SECS) {
+ throw new Google_AuthException(
+ "Expiration time too far in future: $json_body");
+ }
+
+ $latest = $exp + self::CLOCK_SKEW_SECS;
+ if ($now < $earliest) {
+ throw new Google_AuthException(
+ "Token used too early, $now < $earliest: $json_body");
+ }
+ if ($now > $latest) {
+ throw new Google_AuthException(
+ "Token used too late, $now > $latest: $json_body");
+ }
+
+ // TODO(beaton): check issuer field?
+
+ // Check audience
+ $aud = $payload["aud"];
+ if ($aud != $required_audience) {
+ throw new Google_AuthException("Wrong recipient, $aud != $required_audience: $json_body");
+ }
+
+ // All good.
+ return new Google_LoginTicket($envelope, $payload);
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_P12Signer.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_P12Signer.php
new file mode 100644
index 0000000..1bed590
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_P12Signer.php
@@ -0,0 +1,70 @@
+
+ */
+class Google_P12Signer extends Google_Signer {
+ // OpenSSL private key resource
+ private $privateKey;
+
+ // Creates a new signer from a .p12 file.
+ function __construct($p12, $password) {
+ if (!function_exists('openssl_x509_read')) {
+ throw new Exception(
+ 'The Google PHP API library needs the openssl PHP extension');
+ }
+
+ // This throws on error
+ $certs = array();
+ if (!openssl_pkcs12_read($p12, $certs, $password)) {
+ throw new Google_AuthException("Unable to parse the p12 file. " .
+ "Is this a .p12 file? Is the password correct? OpenSSL error: " .
+ openssl_error_string());
+ }
+ // TODO(beaton): is this part of the contract for the openssl_pkcs12_read
+ // method? What happens if there are multiple private keys? Do we care?
+ if (!array_key_exists("pkey", $certs) || !$certs["pkey"]) {
+ throw new Google_AuthException("No private key found in p12 file.");
+ }
+ $this->privateKey = openssl_pkey_get_private($certs["pkey"]);
+ if (!$this->privateKey) {
+ throw new Google_AuthException("Unable to load private key in ");
+ }
+ }
+
+ function __destruct() {
+ if ($this->privateKey) {
+ openssl_pkey_free($this->privateKey);
+ }
+ }
+
+ function sign($data) {
+ if(version_compare(PHP_VERSION, '5.3.0') < 0) {
+ throw new Google_AuthException(
+ "PHP 5.3.0 or higher is required to use service accounts.");
+ }
+ if (!openssl_sign($data, $signature, $this->privateKey, "sha256")) {
+ throw new Google_AuthException("Unable to sign data");
+ }
+ return $signature;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_PemVerifier.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_PemVerifier.php
new file mode 100644
index 0000000..6c1c85f
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_PemVerifier.php
@@ -0,0 +1,66 @@
+
+ */
+class Google_PemVerifier extends Google_Verifier {
+ private $publicKey;
+
+ /**
+ * Constructs a verifier from the supplied PEM-encoded certificate.
+ *
+ * $pem: a PEM encoded certificate (not a file).
+ * @param $pem
+ * @throws Google_AuthException
+ * @throws Google_Exception
+ */
+ function __construct($pem) {
+ if (!function_exists('openssl_x509_read')) {
+ throw new Google_Exception('Google API PHP client needs the openssl PHP extension');
+ }
+ $this->publicKey = openssl_x509_read($pem);
+ if (!$this->publicKey) {
+ throw new Google_AuthException("Unable to parse PEM: $pem");
+ }
+ }
+
+ function __destruct() {
+ if ($this->publicKey) {
+ openssl_x509_free($this->publicKey);
+ }
+ }
+
+ /**
+ * Verifies the signature on data.
+ *
+ * Returns true if the signature is valid, false otherwise.
+ * @param $data
+ * @param $signature
+ * @throws Google_AuthException
+ * @return bool
+ */
+ function verify($data, $signature) {
+ $status = openssl_verify($data, $signature, $this->publicKey, "sha256");
+ if ($status === -1) {
+ throw new Google_AuthException('Signature verification error: ' . openssl_error_string());
+ }
+ return $status === 1;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Signer.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Signer.php
new file mode 100644
index 0000000..7892baa
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Signer.php
@@ -0,0 +1,30 @@
+
+ */
+abstract class Google_Signer {
+ /**
+ * Signs data, returns the signature as binary data.
+ */
+ abstract public function sign($data);
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Verifier.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Verifier.php
new file mode 100644
index 0000000..2839a37
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_Verifier.php
@@ -0,0 +1,31 @@
+
+ */
+abstract class Google_Verifier {
+ /**
+ * Checks a signature, returns true if the signature is correct,
+ * false otherwise.
+ */
+ abstract public function verify($data, $signature);
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_ApcCache.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_ApcCache.php
new file mode 100644
index 0000000..8616731
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_ApcCache.php
@@ -0,0 +1,98 @@
+
+ */
+class Google_APCCache extends Google_Cache {
+
+ public function __construct() {
+ if (! function_exists('apc_add')) {
+ throw new Google_CacheException("Apc functions not available");
+ }
+ }
+
+ private function isLocked($key) {
+ if ((@apc_fetch($key . '.lock')) === false) {
+ return false;
+ }
+ return true;
+ }
+
+ private function createLock($key) {
+ // the interesting thing is that this could fail if the lock was created in the meantime..
+ // but we'll ignore that out of convenience
+ @apc_add($key . '.lock', '', 5);
+ }
+
+ private function removeLock($key) {
+ // suppress all warnings, if some other process removed it that's ok too
+ @apc_delete($key . '.lock');
+ }
+
+ private function waitForLock($key) {
+ // 20 x 250 = 5 seconds
+ $tries = 20;
+ $cnt = 0;
+ do {
+ // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks..
+ usleep(250);
+ $cnt ++;
+ } while ($cnt <= $tries && $this->isLocked($key));
+ if ($this->isLocked($key)) {
+ // 5 seconds passed, assume the owning process died off and remove it
+ $this->removeLock($key);
+ }
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function get($key, $expiration = false) {
+
+ if (($ret = @apc_fetch($key)) === false) {
+ return false;
+ }
+ if (!$expiration || (time() - $ret['time'] > $expiration)) {
+ $this->delete($key);
+ return false;
+ }
+ return unserialize($ret['data']);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function set($key, $value) {
+ if (@apc_store($key, array('time' => time(), 'data' => serialize($value))) == false) {
+ throw new Google_CacheException("Couldn't store data");
+ }
+ }
+
+ /**
+ * @inheritDoc
+ * @param String $key
+ */
+ public function delete($key) {
+ @apc_delete($key);
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_Cache.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_Cache.php
new file mode 100644
index 0000000..809c55e
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_Cache.php
@@ -0,0 +1,55 @@
+
+ */
+abstract class Google_Cache {
+
+ /**
+ * Retrieves the data for the given key, or false if they
+ * key is unknown or expired
+ *
+ * @param String $key The key who's data to retrieve
+ * @param boolean|int $expiration Expiration time in seconds
+ *
+ */
+ abstract function get($key, $expiration = false);
+
+ /**
+ * Store the key => $value set. The $value is serialized
+ * by this function so can be of any type
+ *
+ * @param string $key Key of the data
+ * @param string $value data
+ */
+ abstract function set($key, $value);
+
+ /**
+ * Removes the key/data pair for the given $key
+ *
+ * @param String $key
+ */
+ abstract function delete($key);
+}
+
+
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_FileCache.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_FileCache.php
new file mode 100644
index 0000000..1e32859
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_FileCache.php
@@ -0,0 +1,137 @@
+
+ */
+class Google_FileCache extends Google_Cache {
+ private $path;
+
+ public function __construct() {
+ global $apiConfig;
+ $this->path = $apiConfig['ioFileCache_directory'];
+ }
+
+ private function isLocked($storageFile) {
+ // our lock file convention is simple: /the/file/path.lock
+ return file_exists($storageFile . '.lock');
+ }
+
+ private function createLock($storageFile) {
+ $storageDir = dirname($storageFile);
+ if (! is_dir($storageDir)) {
+ // @codeCoverageIgnoreStart
+ if (! @mkdir($storageDir, 0755, true)) {
+ // make sure the failure isn't because of a concurrency issue
+ if (! is_dir($storageDir)) {
+ throw new Google_CacheException("Could not create storage directory: $storageDir");
+ }
+ }
+ // @codeCoverageIgnoreEnd
+ }
+ @touch($storageFile . '.lock');
+ }
+
+ private function removeLock($storageFile) {
+ // suppress all warnings, if some other process removed it that's ok too
+ @unlink($storageFile . '.lock');
+ }
+
+ private function waitForLock($storageFile) {
+ // 20 x 250 = 5 seconds
+ $tries = 20;
+ $cnt = 0;
+ do {
+ // make sure PHP picks up on file changes. This is an expensive action but really can't be avoided
+ clearstatcache();
+ // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks..
+ usleep(250);
+ $cnt ++;
+ } while ($cnt <= $tries && $this->isLocked($storageFile));
+ if ($this->isLocked($storageFile)) {
+ // 5 seconds passed, assume the owning process died off and remove it
+ $this->removeLock($storageFile);
+ }
+ }
+
+ private function getCacheDir($hash) {
+ // use the first 2 characters of the hash as a directory prefix
+ // this should prevent slowdowns due to huge directory listings
+ // and thus give some basic amount of scalability
+ return $this->path . '/' . substr($hash, 0, 2);
+ }
+
+ private function getCacheFile($hash) {
+ return $this->getCacheDir($hash) . '/' . $hash;
+ }
+
+ public function get($key, $expiration = false) {
+ $storageFile = $this->getCacheFile(md5($key));
+ // See if this storage file is locked, if so we wait up to 5 seconds for the lock owning process to
+ // complete it's work. If the lock is not released within that time frame, it's cleaned up.
+ // This should give us a fair amount of 'Cache Stampeding' protection
+ if ($this->isLocked($storageFile)) {
+ $this->waitForLock($storageFile);
+ }
+ if (file_exists($storageFile) && is_readable($storageFile)) {
+ $now = time();
+ if (! $expiration || (($mtime = @filemtime($storageFile)) !== false && ($now - $mtime) < $expiration)) {
+ if (($data = @file_get_contents($storageFile)) !== false) {
+ $data = unserialize($data);
+ return $data;
+ }
+ }
+ }
+ return false;
+ }
+
+ public function set($key, $value) {
+ $storageDir = $this->getCacheDir(md5($key));
+ $storageFile = $this->getCacheFile(md5($key));
+ if ($this->isLocked($storageFile)) {
+ // some other process is writing to this file too, wait until it's done to prevent hiccups
+ $this->waitForLock($storageFile);
+ }
+ if (! is_dir($storageDir)) {
+ if (! @mkdir($storageDir, 0755, true)) {
+ throw new Google_CacheException("Could not create storage directory: $storageDir");
+ }
+ }
+ // we serialize the whole request object, since we don't only want the
+ // responseContent but also the postBody used, headers, size, etc
+ $data = serialize($value);
+ $this->createLock($storageFile);
+ if (! @file_put_contents($storageFile, $data)) {
+ $this->removeLock($storageFile);
+ throw new Google_CacheException("Could not store data in the file");
+ }
+ $this->removeLock($storageFile);
+ }
+
+ public function delete($key) {
+ $file = $this->getCacheFile(md5($key));
+ if (! @unlink($file)) {
+ throw new Google_CacheException("Cache file could not be deleted");
+ }
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_MemcacheCache.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_MemcacheCache.php
new file mode 100644
index 0000000..04cf596
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/cache/Google_MemcacheCache.php
@@ -0,0 +1,130 @@
+
+ */
+class Google_MemcacheCache extends Google_Cache {
+ private $connection = false;
+
+ public function __construct() {
+ global $apiConfig;
+ if (! function_exists('memcache_connect')) {
+ throw new Google_CacheException("Memcache functions not available");
+ }
+ $this->host = $apiConfig['ioMemCacheCache_host'];
+ $this->port = $apiConfig['ioMemCacheCache_port'];
+ if (empty($this->host) || empty($this->port)) {
+ throw new Google_CacheException("You need to supply a valid memcache host and port");
+ }
+ }
+
+ private function isLocked($key) {
+ $this->check();
+ if ((@memcache_get($this->connection, $key . '.lock')) === false) {
+ return false;
+ }
+ return true;
+ }
+
+ private function createLock($key) {
+ $this->check();
+ // the interesting thing is that this could fail if the lock was created in the meantime..
+ // but we'll ignore that out of convenience
+ @memcache_add($this->connection, $key . '.lock', '', 0, 5);
+ }
+
+ private function removeLock($key) {
+ $this->check();
+ // suppress all warnings, if some other process removed it that's ok too
+ @memcache_delete($this->connection, $key . '.lock');
+ }
+
+ private function waitForLock($key) {
+ $this->check();
+ // 20 x 250 = 5 seconds
+ $tries = 20;
+ $cnt = 0;
+ do {
+ // 250 ms is a long time to sleep, but it does stop the server from burning all resources on polling locks..
+ usleep(250);
+ $cnt ++;
+ } while ($cnt <= $tries && $this->isLocked($key));
+ if ($this->isLocked($key)) {
+ // 5 seconds passed, assume the owning process died off and remove it
+ $this->removeLock($key);
+ }
+ }
+
+ // I prefer lazy initialization since the cache isn't used every request
+ // so this potentially saves a lot of overhead
+ private function connect() {
+ if (! $this->connection = @memcache_pconnect($this->host, $this->port)) {
+ throw new Google_CacheException("Couldn't connect to memcache server");
+ }
+ }
+
+ private function check() {
+ if (! $this->connection) {
+ $this->connect();
+ }
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function get($key, $expiration = false) {
+ $this->check();
+ if (($ret = @memcache_get($this->connection, $key)) === false) {
+ return false;
+ }
+ if (is_numeric($expiration) && (time() - $ret['time'] > $expiration)) {
+ $this->delete($key);
+ return false;
+ }
+ return $ret['data'];
+ }
+
+ /**
+ * @inheritDoc
+ * @param string $key
+ * @param string $value
+ * @throws Google_CacheException
+ */
+ public function set($key, $value) {
+ $this->check();
+ // we store it with the cache_time default expiration so objects will at least get cleaned eventually.
+ if (@memcache_set($this->connection, $key, array('time' => time(),
+ 'data' => $value), false) == false) {
+ throw new Google_CacheException("Couldn't store data in cache");
+ }
+ }
+
+ /**
+ * @inheritDoc
+ * @param String $key
+ */
+ public function delete($key) {
+ $this->check();
+ @memcache_delete($this->connection, $key);
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/config.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/config.php
new file mode 100644
index 0000000..e3a5713
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/config.php
@@ -0,0 +1,81 @@
+ false,
+
+ // The application_name is included in the User-Agent HTTP header.
+ 'application_name' => '',
+
+ // OAuth2 Settings, you can get these keys at https://code.google.com/apis/console
+ 'oauth2_client_id' => '',
+ 'oauth2_client_secret' => '',
+ 'oauth2_redirect_uri' => '',
+
+ // The developer key, you get this at https://code.google.com/apis/console
+ 'developer_key' => '',
+
+ // Site name to show in the Google's OAuth 1 authentication screen.
+ 'site_name' => 'www.example.org',
+
+ // Which Authentication, Storage and HTTP IO classes to use.
+ 'authClass' => 'Google_OAuth2',
+ 'ioClass' => 'Google_CurlIO',
+ 'cacheClass' => 'Google_FileCache',
+
+ // Don't change these unless you're working against a special development or testing environment.
+ 'basePath' => 'https://www.googleapis.com',
+
+ // IO Class dependent configuration, you only have to configure the values
+ // for the class that was configured as the ioClass above
+ 'ioFileCache_directory' =>
+ (function_exists('sys_get_temp_dir') ?
+ sys_get_temp_dir() . '/Google_Client' :
+ '/tmp/Google_Client'),
+
+ // Definition of service specific values like scopes, oauth token URLs, etc
+ 'services' => array(
+ 'analytics' => array('scope' => 'https://www.googleapis.com/auth/analytics.readonly'),
+ 'calendar' => array(
+ 'scope' => array(
+ "https://www.googleapis.com/auth/calendar",
+ "https://www.googleapis.com/auth/calendar.readonly",
+ )
+ ),
+ 'books' => array('scope' => 'https://www.googleapis.com/auth/books'),
+ 'latitude' => array(
+ 'scope' => array(
+ 'https://www.googleapis.com/auth/latitude.all.best',
+ 'https://www.googleapis.com/auth/latitude.all.city',
+ )
+ ),
+ 'moderator' => array('scope' => 'https://www.googleapis.com/auth/moderator'),
+ 'oauth2' => array(
+ 'scope' => array(
+ 'https://www.googleapis.com/auth/userinfo.profile',
+ 'https://www.googleapis.com/auth/userinfo.email',
+ )
+ ),
+ 'plus' => array('scope' => 'https://www.googleapis.com/auth/plus.login'),
+ 'siteVerification' => array('scope' => 'https://www.googleapis.com/auth/siteverification'),
+ 'tasks' => array('scope' => 'https://www.googleapis.com/auth/tasks'),
+ 'urlshortener' => array('scope' => 'https://www.googleapis.com/auth/urlshortener')
+ )
+);
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdExchangeSellerService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdExchangeSellerService.php
new file mode 100644
index 0000000..600bba7
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdExchangeSellerService.php
@@ -0,0 +1,1262 @@
+
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $accounts = $adexchangesellerService->accounts;
+ *
+ */
+ class google_AccountsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get information about the selected Ad Exchange account. (accounts.get)
+ *
+ * @param string $accountId Account to get information about. Tip: 'myaccount' is a valid ID.
+ * @param array $optParams Optional parameters.
+ * @return google_Account
+ */
+ public function get($accountId, $optParams = array()) {
+ $params = array('accountId' => $accountId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new google_Account($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "adclients" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $adclients = $adexchangesellerService->adclients;
+ *
+ */
+ class google_AdclientsServiceResource extends Google_ServiceResource {
+
+ /**
+ * List all ad clients in this Ad Exchange account. (adclients.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of ad clients to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return google_AdClients
+ */
+ public function listAdclients($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_AdClients($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "adunits" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $adunits = $adexchangesellerService->adunits;
+ *
+ */
+ class google_AdunitsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets the specified ad unit in the specified ad client. (adunits.get)
+ *
+ * @param string $adClientId Ad client for which to get the ad unit.
+ * @param string $adUnitId Ad unit to retrieve.
+ * @param array $optParams Optional parameters.
+ * @return google_AdUnit
+ */
+ public function get($adClientId, $adUnitId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'adUnitId' => $adUnitId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new google_AdUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all ad units in the specified ad client for this Ad Exchange account.
+ * (adunits.list)
+ *
+ * @param string $adClientId Ad client for which to list ad units.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeInactive Whether to include inactive ad units. Default: true.
+ * @opt_param string maxResults The maximum number of ad units to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return google_AdUnits
+ */
+ public function listAdunits($adClientId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_AdUnits($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "customchannels" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $customchannels = $adexchangesellerService->customchannels;
+ *
+ */
+ class google_AdunitsCustomchannelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * List all custom channels which the specified ad unit belongs to.
+ * (customchannels.list)
+ *
+ * @param string $adClientId Ad client which contains the ad unit.
+ * @param string $adUnitId Ad unit for which to list custom channels.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of custom channels to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return google_CustomChannels
+ */
+ public function listAdunitsCustomchannels($adClientId, $adUnitId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'adUnitId' => $adUnitId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_CustomChannels($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "alerts" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $alerts = $adexchangesellerService->alerts;
+ *
+ */
+ class google_AlertsServiceResource extends Google_ServiceResource {
+
+ /**
+ * List the alerts for this Ad Exchange account. (alerts.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.
+ * @return google_Alerts
+ */
+ public function listAlerts($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_Alerts($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "customchannels" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $customchannels = $adexchangesellerService->customchannels;
+ *
+ */
+ class google_CustomchannelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get the specified custom channel from the specified ad client.
+ * (customchannels.get)
+ *
+ * @param string $adClientId Ad client which contains the custom channel.
+ * @param string $customChannelId Custom channel to retrieve.
+ * @param array $optParams Optional parameters.
+ * @return google_CustomChannel
+ */
+ public function get($adClientId, $customChannelId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new google_CustomChannel($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all custom channels in the specified ad client for this Ad Exchange
+ * account. (customchannels.list)
+ *
+ * @param string $adClientId Ad client for which to list custom channels.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of custom channels to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return google_CustomChannels
+ */
+ public function listCustomchannels($adClientId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_CustomChannels($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "adunits" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $adunits = $adexchangesellerService->adunits;
+ *
+ */
+ class google_CustomchannelsAdunitsServiceResource extends Google_ServiceResource {
+
+ /**
+ * List all ad units in the specified custom channel. (adunits.list)
+ *
+ * @param string $adClientId Ad client which contains the custom channel.
+ * @param string $customChannelId Custom channel for which to list ad units.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeInactive Whether to include inactive ad units. Default: true.
+ * @opt_param string maxResults The maximum number of ad units to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return google_AdUnits
+ */
+ public function listCustomchannelsAdunits($adClientId, $customChannelId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_AdUnits($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "metadata" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $metadata = $adexchangesellerService->metadata;
+ *
+ */
+ class google_MetadataServiceResource extends Google_ServiceResource {
+
+ }
+
+ /**
+ * The "dimensions" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $dimensions = $adexchangesellerService->dimensions;
+ *
+ */
+ class google_MetadataDimensionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * List the metadata for the dimensions available to this AdExchange account.
+ * (dimensions.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return google_Metadata
+ */
+ public function listMetadataDimensions($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_Metadata($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "metrics" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $metrics = $adexchangesellerService->metrics;
+ *
+ */
+ class google_MetadataMetricsServiceResource extends Google_ServiceResource {
+
+ /**
+ * List the metadata for the metrics available to this AdExchange account.
+ * (metrics.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return google_Metadata
+ */
+ public function listMetadataMetrics($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_Metadata($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "preferreddeals" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $preferreddeals = $adexchangesellerService->preferreddeals;
+ *
+ */
+ class google_PreferreddealsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get information about the selected Ad Exchange Preferred Deal.
+ * (preferreddeals.get)
+ *
+ * @param string $dealId Preferred deal to get information about.
+ * @param array $optParams Optional parameters.
+ * @return google_PreferredDeal
+ */
+ public function get($dealId, $optParams = array()) {
+ $params = array('dealId' => $dealId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new google_PreferredDeal($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List the preferred deals for this Ad Exchange account. (preferreddeals.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return google_PreferredDeals
+ */
+ public function listPreferreddeals($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_PreferredDeals($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "reports" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $reports = $adexchangesellerService->reports;
+ *
+ */
+ class google_ReportsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Generate an Ad Exchange report based on the report request sent in the query
+ * parameters. Returns the result as JSON; to retrieve output in CSV format
+ * specify "alt=csv" as a query parameter. (reports.generate)
+ *
+ * @param string $startDate Start of the date range to report on in "YYYY-MM-DD" format, inclusive.
+ * @param string $endDate End of the date range to report on in "YYYY-MM-DD" format, inclusive.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string dimension Dimensions to base the report on.
+ * @opt_param string filter Filters to be run on the report.
+ * @opt_param string locale Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+ * @opt_param string maxResults The maximum number of rows of report data to return.
+ * @opt_param string metric Numeric columns to include in the report.
+ * @opt_param string sort The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending.
+ * @opt_param string startIndex Index of the first row of report data to return.
+ * @return google_Report
+ */
+ public function generate($startDate, $endDate, $optParams = array()) {
+ $params = array('startDate' => $startDate, 'endDate' => $endDate);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('generate', array($params));
+ if ($this->useObjects()) {
+ return new google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "saved" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $saved = $adexchangesellerService->saved;
+ *
+ */
+ class google_ReportsSavedServiceResource extends Google_ServiceResource {
+
+ /**
+ * Generate an Ad Exchange report based on the saved report ID sent in the query
+ * parameters. (saved.generate)
+ *
+ * @param string $savedReportId The saved report to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+ * @opt_param int maxResults The maximum number of rows of report data to return.
+ * @opt_param int startIndex Index of the first row of report data to return.
+ * @return google_Report
+ */
+ public function generate($savedReportId, $optParams = array()) {
+ $params = array('savedReportId' => $savedReportId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('generate', array($params));
+ if ($this->useObjects()) {
+ return new google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all saved reports in this Ad Exchange account. (saved.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults The maximum number of saved reports to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return google_SavedReports
+ */
+ public function listReportsSaved($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_SavedReports($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "urlchannels" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangesellerService = new google_AdExchangeSellerService(...);
+ * $urlchannels = $adexchangesellerService->urlchannels;
+ *
+ */
+ class google_UrlchannelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * List all URL channels in the specified ad client for this Ad Exchange
+ * account. (urlchannels.list)
+ *
+ * @param string $adClientId Ad client for which to list URL channels.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of URL channels to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return google_UrlChannels
+ */
+ public function listUrlchannels($adClientId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new google_UrlChannels($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for google_AdExchangeSeller (v1.1).
+ *
+ *
+ * Gives Ad Exchange seller users access to their inventory and the ability to generate reports
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class google_AdExchangeSellerService extends Google_Service {
+ public $accounts;
+ public $adclients;
+ public $adunits;
+ public $adunits_customchannels;
+ public $alerts;
+ public $customchannels;
+ public $customchannels_adunits;
+ public $metadata_dimensions;
+ public $metadata_metrics;
+ public $preferreddeals;
+ public $reports;
+ public $reports_saved;
+ public $urlchannels;
+ /**
+ * Constructs the internal representation of the AdExchangeSeller service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'adexchangeseller/v1.1/';
+ $this->version = 'v1.1';
+ $this->serviceName = 'adexchangeseller';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->accounts = new google_AccountsServiceResource($this, $this->serviceName, 'accounts', json_decode('{"methods": {"get": {"id": "adexchangeseller.accounts.get", "path": "accounts/{accountId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Account"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->adclients = new google_AdclientsServiceResource($this, $this->serviceName, 'adclients', json_decode('{"methods": {"list": {"id": "adexchangeseller.adclients.list", "path": "adclients", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "AdClients"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->adunits = new google_AdunitsServiceResource($this, $this->serviceName, 'adunits', json_decode('{"methods": {"get": {"id": "adexchangeseller.adunits.get", "path": "adclients/{adClientId}/adunits/{adUnitId}", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "adUnitId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AdUnit"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}, "list": {"id": "adexchangeseller.adunits.list", "path": "adclients/{adClientId}/adunits", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "includeInactive": {"type": "boolean", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "AdUnits"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->adunits_customchannels = new google_AdunitsCustomchannelsServiceResource($this, $this->serviceName, 'customchannels', json_decode('{"methods": {"list": {"id": "adexchangeseller.adunits.customchannels.list", "path": "adclients/{adClientId}/adunits/{adUnitId}/customchannels", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "adUnitId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CustomChannels"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->alerts = new google_AlertsServiceResource($this, $this->serviceName, 'alerts', json_decode('{"methods": {"list": {"id": "adexchangeseller.alerts.list", "path": "alerts", "httpMethod": "GET", "parameters": {"locale": {"type": "string", "location": "query"}}, "response": {"$ref": "Alerts"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->customchannels = new google_CustomchannelsServiceResource($this, $this->serviceName, 'customchannels', json_decode('{"methods": {"get": {"id": "adexchangeseller.customchannels.get", "path": "adclients/{adClientId}/customchannels/{customChannelId}", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "customChannelId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CustomChannel"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}, "list": {"id": "adexchangeseller.customchannels.list", "path": "adclients/{adClientId}/customchannels", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CustomChannels"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->customchannels_adunits = new google_CustomchannelsAdunitsServiceResource($this, $this->serviceName, 'adunits', json_decode('{"methods": {"list": {"id": "adexchangeseller.customchannels.adunits.list", "path": "adclients/{adClientId}/customchannels/{customChannelId}/adunits", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "customChannelId": {"type": "string", "required": true, "location": "path"}, "includeInactive": {"type": "boolean", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "AdUnits"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->metadata_dimensions = new google_MetadataDimensionsServiceResource($this, $this->serviceName, 'dimensions', json_decode('{"methods": {"list": {"id": "adexchangeseller.metadata.dimensions.list", "path": "metadata/dimensions", "httpMethod": "GET", "response": {"$ref": "Metadata"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->metadata_metrics = new google_MetadataMetricsServiceResource($this, $this->serviceName, 'metrics', json_decode('{"methods": {"list": {"id": "adexchangeseller.metadata.metrics.list", "path": "metadata/metrics", "httpMethod": "GET", "response": {"$ref": "Metadata"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->preferreddeals = new google_PreferreddealsServiceResource($this, $this->serviceName, 'preferreddeals', json_decode('{"methods": {"get": {"id": "adexchangeseller.preferreddeals.get", "path": "preferreddeals/{dealId}", "httpMethod": "GET", "parameters": {"dealId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "PreferredDeal"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}, "list": {"id": "adexchangeseller.preferreddeals.list", "path": "preferreddeals", "httpMethod": "GET", "response": {"$ref": "PreferredDeals"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->reports = new google_ReportsServiceResource($this, $this->serviceName, 'reports', json_decode('{"methods": {"generate": {"id": "adexchangeseller.reports.generate", "path": "reports", "httpMethod": "GET", "parameters": {"dimension": {"type": "string", "repeated": true, "location": "query"}, "endDate": {"type": "string", "required": true, "location": "query"}, "filter": {"type": "string", "repeated": true, "location": "query"}, "locale": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "50000", "location": "query"}, "metric": {"type": "string", "repeated": true, "location": "query"}, "sort": {"type": "string", "repeated": true, "location": "query"}, "startDate": {"type": "string", "required": true, "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "5000", "location": "query"}}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"], "supportsMediaDownload": true}}}', true));
+ $this->reports_saved = new google_ReportsSavedServiceResource($this, $this->serviceName, 'saved', json_decode('{"methods": {"generate": {"id": "adexchangeseller.reports.saved.generate", "path": "reports/{savedReportId}", "httpMethod": "GET", "parameters": {"locale": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "0", "maximum": "50000", "location": "query"}, "savedReportId": {"type": "string", "required": true, "location": "path"}, "startIndex": {"type": "integer", "format": "int32", "minimum": "0", "maximum": "5000", "location": "query"}}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}, "list": {"id": "adexchangeseller.reports.saved.list", "path": "reports/saved", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "int32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "SavedReports"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+ $this->urlchannels = new google_UrlchannelsServiceResource($this, $this->serviceName, 'urlchannels', json_decode('{"methods": {"list": {"id": "adexchangeseller.urlchannels.list", "path": "adclients/{adClientId}/urlchannels", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "UrlChannels"}, "scopes": ["https://www.googleapis.com/auth/adexchange.seller", "https://www.googleapis.com/auth/adexchange.seller.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class google_Account extends Google_Model {
+ public $id;
+ public $kind;
+ public $name;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class google_AdClient extends Google_Model {
+ public $arcOptIn;
+ public $id;
+ public $kind;
+ public $productCode;
+ public $supportsReporting;
+ public function setArcOptIn( $arcOptIn) {
+ $this->arcOptIn = $arcOptIn;
+ }
+ public function getArcOptIn() {
+ return $this->arcOptIn;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setProductCode( $productCode) {
+ $this->productCode = $productCode;
+ }
+ public function getProductCode() {
+ return $this->productCode;
+ }
+ public function setSupportsReporting( $supportsReporting) {
+ $this->supportsReporting = $supportsReporting;
+ }
+ public function getSupportsReporting() {
+ return $this->supportsReporting;
+ }
+}
+
+class google_AdClients extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_AdClient';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(google_AdClient) */ $items) {
+ $this->assertIsArray($items, 'google_AdClient', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class google_AdUnit extends Google_Model {
+ public $code;
+ public $id;
+ public $kind;
+ public $name;
+ public $status;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class google_AdUnits extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_AdUnit';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(google_AdUnit) */ $items) {
+ $this->assertIsArray($items, 'google_AdUnit', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class google_Alert extends Google_Model {
+ public $id;
+ public $kind;
+ public $message;
+ public $severity;
+ public $type;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+ public function setSeverity( $severity) {
+ $this->severity = $severity;
+ }
+ public function getSeverity() {
+ return $this->severity;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class google_Alerts extends Google_Model {
+ protected $__itemsType = 'Google_Alert';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(google_Alert) */ $items) {
+ $this->assertIsArray($items, 'google_Alert', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class google_CustomChannel extends Google_Model {
+ public $code;
+ public $id;
+ public $kind;
+ public $name;
+ protected $__targetingInfoType = 'Google_CustomChannelTargetingInfo';
+ protected $__targetingInfoDataType = '';
+ public $targetingInfo;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setTargetingInfo(Google_CustomChannelTargetingInfo $targetingInfo) {
+ $this->targetingInfo = $targetingInfo;
+ }
+ public function getTargetingInfo() {
+ return $this->targetingInfo;
+ }
+}
+
+class google_CustomChannelTargetingInfo extends Google_Model {
+ public $adsAppearOn;
+ public $description;
+ public $location;
+ public $siteLanguage;
+ public function setAdsAppearOn( $adsAppearOn) {
+ $this->adsAppearOn = $adsAppearOn;
+ }
+ public function getAdsAppearOn() {
+ return $this->adsAppearOn;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setSiteLanguage( $siteLanguage) {
+ $this->siteLanguage = $siteLanguage;
+ }
+ public function getSiteLanguage() {
+ return $this->siteLanguage;
+ }
+}
+
+class google_CustomChannels extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_CustomChannel';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(google_CustomChannel) */ $items) {
+ $this->assertIsArray($items, 'google_CustomChannel', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class google_Metadata extends Google_Model {
+ protected $__itemsType = 'Google_ReportingMetadataEntry';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(google_ReportingMetadataEntry) */ $items) {
+ $this->assertIsArray($items, 'google_ReportingMetadataEntry', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class google_PreferredDeal extends Google_Model {
+ public $advertiserName;
+ public $buyerNetworkName;
+ public $currencyCode;
+ public $endTime;
+ public $fixedCpm;
+ public $id;
+ public $kind;
+ public $startTime;
+ public function setAdvertiserName( $advertiserName) {
+ $this->advertiserName = $advertiserName;
+ }
+ public function getAdvertiserName() {
+ return $this->advertiserName;
+ }
+ public function setBuyerNetworkName( $buyerNetworkName) {
+ $this->buyerNetworkName = $buyerNetworkName;
+ }
+ public function getBuyerNetworkName() {
+ return $this->buyerNetworkName;
+ }
+ public function setCurrencyCode( $currencyCode) {
+ $this->currencyCode = $currencyCode;
+ }
+ public function getCurrencyCode() {
+ return $this->currencyCode;
+ }
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setFixedCpm( $fixedCpm) {
+ $this->fixedCpm = $fixedCpm;
+ }
+ public function getFixedCpm() {
+ return $this->fixedCpm;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+}
+
+class google_PreferredDeals extends Google_Model {
+ protected $__itemsType = 'Google_PreferredDeal';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(google_PreferredDeal) */ $items) {
+ $this->assertIsArray($items, 'google_PreferredDeal', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class google_Report extends Google_Model {
+ public $averages;
+ protected $__headersType = 'Google_ReportHeaders';
+ protected $__headersDataType = 'array';
+ public $headers;
+ public $kind;
+ public $rows;
+ public $totalMatchedRows;
+ public $totals;
+ public $warnings;
+ public function setAverages(/* array(google_string) */ $averages) {
+ $this->assertIsArray($averages, 'google_string', __METHOD__);
+ $this->averages = $averages;
+ }
+ public function getAverages() {
+ return $this->averages;
+ }
+ public function setHeaders(/* array(google_ReportHeaders) */ $headers) {
+ $this->assertIsArray($headers, 'google_ReportHeaders', __METHOD__);
+ $this->headers = $headers;
+ }
+ public function getHeaders() {
+ return $this->headers;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRows(/* array(google_string) */ $rows) {
+ $this->assertIsArray($rows, 'google_string', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setTotalMatchedRows( $totalMatchedRows) {
+ $this->totalMatchedRows = $totalMatchedRows;
+ }
+ public function getTotalMatchedRows() {
+ return $this->totalMatchedRows;
+ }
+ public function setTotals(/* array(google_string) */ $totals) {
+ $this->assertIsArray($totals, 'google_string', __METHOD__);
+ $this->totals = $totals;
+ }
+ public function getTotals() {
+ return $this->totals;
+ }
+ public function setWarnings(/* array(google_string) */ $warnings) {
+ $this->assertIsArray($warnings, 'google_string', __METHOD__);
+ $this->warnings = $warnings;
+ }
+ public function getWarnings() {
+ return $this->warnings;
+ }
+}
+
+class google_ReportHeaders extends Google_Model {
+ public $currency;
+ public $name;
+ public $type;
+ public function setCurrency( $currency) {
+ $this->currency = $currency;
+ }
+ public function getCurrency() {
+ return $this->currency;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class google_ReportingMetadataEntry extends Google_Model {
+ public $compatibleDimensions;
+ public $compatibleMetrics;
+ public $id;
+ public $kind;
+ public $requiredDimensions;
+ public $requiredMetrics;
+ public $supportedProducts;
+ public function setCompatibleDimensions(/* array(google_string) */ $compatibleDimensions) {
+ $this->assertIsArray($compatibleDimensions, 'google_string', __METHOD__);
+ $this->compatibleDimensions = $compatibleDimensions;
+ }
+ public function getCompatibleDimensions() {
+ return $this->compatibleDimensions;
+ }
+ public function setCompatibleMetrics(/* array(google_string) */ $compatibleMetrics) {
+ $this->assertIsArray($compatibleMetrics, 'google_string', __METHOD__);
+ $this->compatibleMetrics = $compatibleMetrics;
+ }
+ public function getCompatibleMetrics() {
+ return $this->compatibleMetrics;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRequiredDimensions(/* array(google_string) */ $requiredDimensions) {
+ $this->assertIsArray($requiredDimensions, 'google_string', __METHOD__);
+ $this->requiredDimensions = $requiredDimensions;
+ }
+ public function getRequiredDimensions() {
+ return $this->requiredDimensions;
+ }
+ public function setRequiredMetrics(/* array(google_string) */ $requiredMetrics) {
+ $this->assertIsArray($requiredMetrics, 'google_string', __METHOD__);
+ $this->requiredMetrics = $requiredMetrics;
+ }
+ public function getRequiredMetrics() {
+ return $this->requiredMetrics;
+ }
+ public function setSupportedProducts(/* array(google_string) */ $supportedProducts) {
+ $this->assertIsArray($supportedProducts, 'google_string', __METHOD__);
+ $this->supportedProducts = $supportedProducts;
+ }
+ public function getSupportedProducts() {
+ return $this->supportedProducts;
+ }
+}
+
+class google_SavedReport extends Google_Model {
+ public $id;
+ public $kind;
+ public $name;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class google_SavedReports extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_SavedReport';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(google_SavedReport) */ $items) {
+ $this->assertIsArray($items, 'google_SavedReport', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class google_UrlChannel extends Google_Model {
+ public $id;
+ public $kind;
+ public $urlPattern;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setUrlPattern( $urlPattern) {
+ $this->urlPattern = $urlPattern;
+ }
+ public function getUrlPattern() {
+ return $this->urlPattern;
+ }
+}
+
+class google_UrlChannels extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_UrlChannel';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(google_UrlChannel) */ $items) {
+ $this->assertIsArray($items, 'google_UrlChannel', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdexchangebuyerService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdexchangebuyerService.php
new file mode 100644
index 0000000..c0da0f2
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdexchangebuyerService.php
@@ -0,0 +1,705 @@
+
+ * $adexchangebuyerService = new Google_AdexchangebuyerService(...);
+ * $accounts = $adexchangebuyerService->accounts;
+ *
+ */
+ class Google_AccountsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one account by ID. (accounts.get)
+ *
+ * @param int $id The account id
+ * @param array $optParams Optional parameters.
+ * @return Google_Account
+ */
+ public function get($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Account($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the authenticated user's list of accounts. (accounts.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_AccountsList
+ */
+ public function listAccounts($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AccountsList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing account. This method supports patch semantics. (accounts.patch)
+ *
+ * @param int $id The account id
+ * @param Google_Account $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Account
+ */
+ public function patch($id, Google_Account $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Account($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing account. (accounts.update)
+ *
+ * @param int $id The account id
+ * @param Google_Account $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Account
+ */
+ public function update($id, Google_Account $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Account($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "creatives" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangebuyerService = new Google_AdexchangebuyerService(...);
+ * $creatives = $adexchangebuyerService->creatives;
+ *
+ */
+ class Google_CreativesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets the status for a single creative. (creatives.get)
+ *
+ * @param int $accountId The id for the account that will serve this creative.
+ * @param string $buyerCreativeId The buyer-specific id for this creative.
+ * @param array $optParams Optional parameters.
+ * @return Google_Creative
+ */
+ public function get($accountId, $buyerCreativeId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'buyerCreativeId' => $buyerCreativeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Creative($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Submit a new creative. (creatives.insert)
+ *
+ * @param Google_Creative $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Creative
+ */
+ public function insert(Google_Creative $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Creative($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of the authenticated user's active creatives. (creatives.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of entries returned on one result page. If not set, the default is 100. Optional.
+ * @opt_param string pageToken A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response. Optional.
+ * @opt_param string statusFilter When specified, only creatives having the given status are returned.
+ * @return Google_CreativesList
+ */
+ public function listCreatives($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CreativesList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "directDeals" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangebuyerService = new Google_AdexchangebuyerService(...);
+ * $directDeals = $adexchangebuyerService->directDeals;
+ *
+ */
+ class Google_DirectDealsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one direct deal by ID. (directDeals.get)
+ *
+ * @param string $id The direct deal id
+ * @param array $optParams Optional parameters.
+ * @return Google_DirectDeal
+ */
+ public function get($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_DirectDeal($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the authenticated user's list of direct deals. (directDeals.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_DirectDealsList
+ */
+ public function listDirectDeals($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_DirectDealsList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "performanceReport" collection of methods.
+ * Typical usage is:
+ *
+ * $adexchangebuyerService = new Google_AdexchangebuyerService(...);
+ * $performanceReport = $adexchangebuyerService->performanceReport;
+ *
+ */
+ class Google_PerformanceReportServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the authenticated user's list of performance metrics. (performanceReport.list)
+ *
+ * @param string $accountId The account id to get the reports for.
+ * @param string $endDateTime The end time for the reports.
+ * @param string $startDateTime The start time for the reports.
+ * @param array $optParams Optional parameters.
+ * @return Google_PerformanceReportList
+ */
+ public function listPerformanceReport($accountId, $endDateTime, $startDateTime, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'endDateTime' => $endDateTime, 'startDateTime' => $startDateTime);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PerformanceReportList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Adexchangebuyer (v1.2).
+ *
+ *
+ * Lets you manage your Ad Exchange Buyer account.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_AdexchangebuyerService extends Google_Service {
+ public $accounts;
+ public $creatives;
+ public $directDeals;
+ public $performanceReport;
+ /**
+ * Constructs the internal representation of the Adexchangebuyer service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'adexchangebuyer/v1.2/';
+ $this->version = 'v1.2';
+ $this->serviceName = 'adexchangebuyer';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->accounts = new Google_AccountsServiceResource($this, $this->serviceName, 'accounts', json_decode('{"methods": {"get": {"id": "adexchangebuyer.accounts.get", "path": "accounts/{id}", "httpMethod": "GET", "parameters": {"id": {"type": "integer", "required": true, "format": "int32", "location": "path"}}, "response": {"$ref": "Account"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}, "list": {"id": "adexchangebuyer.accounts.list", "path": "accounts", "httpMethod": "GET", "response": {"$ref": "AccountsList"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}, "patch": {"id": "adexchangebuyer.accounts.patch", "path": "accounts/{id}", "httpMethod": "PATCH", "parameters": {"id": {"type": "integer", "required": true, "format": "int32", "location": "path"}}, "request": {"$ref": "Account"}, "response": {"$ref": "Account"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}, "update": {"id": "adexchangebuyer.accounts.update", "path": "accounts/{id}", "httpMethod": "PUT", "parameters": {"id": {"type": "integer", "required": true, "format": "int32", "location": "path"}}, "request": {"$ref": "Account"}, "response": {"$ref": "Account"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}}}', true));
+ $this->creatives = new Google_CreativesServiceResource($this, $this->serviceName, 'creatives', json_decode('{"methods": {"get": {"id": "adexchangebuyer.creatives.get", "path": "creatives/{accountId}/{buyerCreativeId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "buyerCreativeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Creative"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}, "insert": {"id": "adexchangebuyer.creatives.insert", "path": "creatives", "httpMethod": "POST", "request": {"$ref": "Creative"}, "response": {"$ref": "Creative"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}, "list": {"id": "adexchangebuyer.creatives.list", "path": "creatives", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "maximum": "1000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "statusFilter": {"type": "string", "enum": ["approved", "disapproved", "not_checked"], "location": "query"}}, "response": {"$ref": "CreativesList"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}}}', true));
+ $this->directDeals = new Google_DirectDealsServiceResource($this, $this->serviceName, 'directDeals', json_decode('{"methods": {"get": {"id": "adexchangebuyer.directDeals.get", "path": "directdeals/{id}", "httpMethod": "GET", "parameters": {"id": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "response": {"$ref": "DirectDeal"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}, "list": {"id": "adexchangebuyer.directDeals.list", "path": "directdeals", "httpMethod": "GET", "response": {"$ref": "DirectDealsList"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}}}', true));
+ $this->performanceReport = new Google_PerformanceReportServiceResource($this, $this->serviceName, 'performanceReport', json_decode('{"methods": {"list": {"id": "adexchangebuyer.performanceReport.list", "path": "performancereport", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "format": "int64", "location": "query"}, "endDateTime": {"type": "string", "required": true, "format": "int64", "location": "query"}, "startDateTime": {"type": "string", "required": true, "format": "int64", "location": "query"}}, "response": {"$ref": "PerformanceReportList"}, "scopes": ["https://www.googleapis.com/auth/adexchange.buyer"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Account extends Google_Model {
+ protected $__bidderLocationType = 'Google_AccountBidderLocation';
+ protected $__bidderLocationDataType = 'array';
+ public $bidderLocation;
+ public $cookieMatchingNid;
+ public $cookieMatchingUrl;
+ public $id;
+ public $kind;
+ public $maximumTotalQps;
+ public function setBidderLocation(/* array(Google_AccountBidderLocation) */ $bidderLocation) {
+ $this->assertIsArray($bidderLocation, 'Google_AccountBidderLocation', __METHOD__);
+ $this->bidderLocation = $bidderLocation;
+ }
+ public function getBidderLocation() {
+ return $this->bidderLocation;
+ }
+ public function setCookieMatchingNid( $cookieMatchingNid) {
+ $this->cookieMatchingNid = $cookieMatchingNid;
+ }
+ public function getCookieMatchingNid() {
+ return $this->cookieMatchingNid;
+ }
+ public function setCookieMatchingUrl( $cookieMatchingUrl) {
+ $this->cookieMatchingUrl = $cookieMatchingUrl;
+ }
+ public function getCookieMatchingUrl() {
+ return $this->cookieMatchingUrl;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaximumTotalQps( $maximumTotalQps) {
+ $this->maximumTotalQps = $maximumTotalQps;
+ }
+ public function getMaximumTotalQps() {
+ return $this->maximumTotalQps;
+ }
+}
+
+class Google_AccountBidderLocation extends Google_Model {
+ public $maximumQps;
+ public $region;
+ public $url;
+ public function setMaximumQps( $maximumQps) {
+ $this->maximumQps = $maximumQps;
+ }
+ public function getMaximumQps() {
+ return $this->maximumQps;
+ }
+ public function setRegion( $region) {
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_AccountsList extends Google_Model {
+ protected $__itemsType = 'Google_Account';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Account) */ $items) {
+ $this->assertIsArray($items, 'Google_Account', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Creative extends Google_Model {
+ public $HTMLSnippet;
+ public $accountId;
+ public $advertiserId;
+ public $advertiserName;
+ public $agencyId;
+ public $attribute;
+ public $buyerCreativeId;
+ public $clickThroughUrl;
+ protected $__disapprovalReasonsType = 'Google_CreativeDisapprovalReasons';
+ protected $__disapprovalReasonsDataType = 'array';
+ public $disapprovalReasons;
+ public $height;
+ public $kind;
+ public $productCategories;
+ public $sensitiveCategories;
+ public $status;
+ public $vendorType;
+ public $videoURL;
+ public $width;
+ public function setHTMLSnippet( $HTMLSnippet) {
+ $this->HTMLSnippet = $HTMLSnippet;
+ }
+ public function getHTMLSnippet() {
+ return $this->HTMLSnippet;
+ }
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setAdvertiserId(/* array(Google_string) */ $advertiserId) {
+ $this->assertIsArray($advertiserId, 'Google_string', __METHOD__);
+ $this->advertiserId = $advertiserId;
+ }
+ public function getAdvertiserId() {
+ return $this->advertiserId;
+ }
+ public function setAdvertiserName( $advertiserName) {
+ $this->advertiserName = $advertiserName;
+ }
+ public function getAdvertiserName() {
+ return $this->advertiserName;
+ }
+ public function setAgencyId( $agencyId) {
+ $this->agencyId = $agencyId;
+ }
+ public function getAgencyId() {
+ return $this->agencyId;
+ }
+ public function setAttribute(/* array(Google_int) */ $attribute) {
+ $this->assertIsArray($attribute, 'Google_int', __METHOD__);
+ $this->attribute = $attribute;
+ }
+ public function getAttribute() {
+ return $this->attribute;
+ }
+ public function setBuyerCreativeId( $buyerCreativeId) {
+ $this->buyerCreativeId = $buyerCreativeId;
+ }
+ public function getBuyerCreativeId() {
+ return $this->buyerCreativeId;
+ }
+ public function setClickThroughUrl(/* array(Google_string) */ $clickThroughUrl) {
+ $this->assertIsArray($clickThroughUrl, 'Google_string', __METHOD__);
+ $this->clickThroughUrl = $clickThroughUrl;
+ }
+ public function getClickThroughUrl() {
+ return $this->clickThroughUrl;
+ }
+ public function setDisapprovalReasons(/* array(Google_CreativeDisapprovalReasons) */ $disapprovalReasons) {
+ $this->assertIsArray($disapprovalReasons, 'Google_CreativeDisapprovalReasons', __METHOD__);
+ $this->disapprovalReasons = $disapprovalReasons;
+ }
+ public function getDisapprovalReasons() {
+ return $this->disapprovalReasons;
+ }
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setProductCategories(/* array(Google_int) */ $productCategories) {
+ $this->assertIsArray($productCategories, 'Google_int', __METHOD__);
+ $this->productCategories = $productCategories;
+ }
+ public function getProductCategories() {
+ return $this->productCategories;
+ }
+ public function setSensitiveCategories(/* array(Google_int) */ $sensitiveCategories) {
+ $this->assertIsArray($sensitiveCategories, 'Google_int', __METHOD__);
+ $this->sensitiveCategories = $sensitiveCategories;
+ }
+ public function getSensitiveCategories() {
+ return $this->sensitiveCategories;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setVendorType(/* array(Google_int) */ $vendorType) {
+ $this->assertIsArray($vendorType, 'Google_int', __METHOD__);
+ $this->vendorType = $vendorType;
+ }
+ public function getVendorType() {
+ return $this->vendorType;
+ }
+ public function setVideoURL( $videoURL) {
+ $this->videoURL = $videoURL;
+ }
+ public function getVideoURL() {
+ return $this->videoURL;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_CreativeDisapprovalReasons extends Google_Model {
+ public $details;
+ public $reason;
+ public function setDetails(/* array(Google_string) */ $details) {
+ $this->assertIsArray($details, 'Google_string', __METHOD__);
+ $this->details = $details;
+ }
+ public function getDetails() {
+ return $this->details;
+ }
+ public function setReason( $reason) {
+ $this->reason = $reason;
+ }
+ public function getReason() {
+ return $this->reason;
+ }
+}
+
+class Google_CreativesList extends Google_Model {
+ protected $__itemsType = 'Google_Creative';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Creative) */ $items) {
+ $this->assertIsArray($items, 'Google_Creative', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_DirectDeal extends Google_Model {
+ public $accountId;
+ public $advertiser;
+ public $currencyCode;
+ public $endTime;
+ public $fixedCpm;
+ public $id;
+ public $kind;
+ public $privateExchangeMinCpm;
+ public $sellerNetwork;
+ public $startTime;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setAdvertiser( $advertiser) {
+ $this->advertiser = $advertiser;
+ }
+ public function getAdvertiser() {
+ return $this->advertiser;
+ }
+ public function setCurrencyCode( $currencyCode) {
+ $this->currencyCode = $currencyCode;
+ }
+ public function getCurrencyCode() {
+ return $this->currencyCode;
+ }
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setFixedCpm( $fixedCpm) {
+ $this->fixedCpm = $fixedCpm;
+ }
+ public function getFixedCpm() {
+ return $this->fixedCpm;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPrivateExchangeMinCpm( $privateExchangeMinCpm) {
+ $this->privateExchangeMinCpm = $privateExchangeMinCpm;
+ }
+ public function getPrivateExchangeMinCpm() {
+ return $this->privateExchangeMinCpm;
+ }
+ public function setSellerNetwork( $sellerNetwork) {
+ $this->sellerNetwork = $sellerNetwork;
+ }
+ public function getSellerNetwork() {
+ return $this->sellerNetwork;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+}
+
+class Google_DirectDealsList extends Google_Model {
+ protected $__directDealsType = 'Google_DirectDeal';
+ protected $__directDealsDataType = 'array';
+ public $directDeals;
+ public $kind;
+ public function setDirectDeals(/* array(Google_DirectDeal) */ $directDeals) {
+ $this->assertIsArray($directDeals, 'Google_DirectDeal', __METHOD__);
+ $this->directDeals = $directDeals;
+ }
+ public function getDirectDeals() {
+ return $this->directDeals;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_PerformanceReportList extends Google_Model {
+ public $kind;
+ protected $__performance_reportType = 'Google_PerformanceReportListPerformanceReport';
+ protected $__performance_reportDataType = 'array';
+ public $performance_report;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPerformance_report(/* array(Google_PerformanceReportListPerformanceReport) */ $performance_report) {
+ $this->assertIsArray($performance_report, 'Google_PerformanceReportListPerformanceReport', __METHOD__);
+ $this->performance_report = $performance_report;
+ }
+ public function getPerformance_report() {
+ return $this->performance_report;
+ }
+}
+
+class Google_PerformanceReportListPerformanceReport extends Google_Model {
+ public $kind;
+ public $latency50thPercentile;
+ public $latency85thPercentile;
+ public $latency95thPercentile;
+ public $region;
+ public $timestamp;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLatency50thPercentile( $latency50thPercentile) {
+ $this->latency50thPercentile = $latency50thPercentile;
+ }
+ public function getLatency50thPercentile() {
+ return $this->latency50thPercentile;
+ }
+ public function setLatency85thPercentile( $latency85thPercentile) {
+ $this->latency85thPercentile = $latency85thPercentile;
+ }
+ public function getLatency85thPercentile() {
+ return $this->latency85thPercentile;
+ }
+ public function setLatency95thPercentile( $latency95thPercentile) {
+ $this->latency95thPercentile = $latency95thPercentile;
+ }
+ public function getLatency95thPercentile() {
+ return $this->latency95thPercentile;
+ }
+ public function setRegion( $region) {
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+ public function setTimestamp( $timestamp) {
+ $this->timestamp = $timestamp;
+ }
+ public function getTimestamp() {
+ return $this->timestamp;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdsensehostService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdsensehostService.php
new file mode 100644
index 0000000..c4f20fc
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AdsensehostService.php
@@ -0,0 +1,1376 @@
+
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $accounts = $adsensehostService->accounts;
+ *
+ */
+ class Google_AccountsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get information about the selected associated AdSense account. (accounts.get)
+ *
+ * @param string $accountId Account to get information about.
+ * @param array $optParams Optional parameters.
+ * @return Google_Account
+ */
+ public function get($accountId, $optParams = array()) {
+ $params = array('accountId' => $accountId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Account($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List hosted accounts associated with this AdSense account by ad client id. (accounts.list)
+ *
+ * @param string $filterAdClientId Ad clients to list accounts for.
+ * @param array $optParams Optional parameters.
+ * @return Google_Accounts
+ */
+ public function listAccounts($filterAdClientId, $optParams = array()) {
+ $params = array('filterAdClientId' => $filterAdClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Accounts($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "adclients" collection of methods.
+ * Typical usage is:
+ *
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $adclients = $adsensehostService->adclients;
+ *
+ */
+ class Google_AccountsAdclientsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get information about one of the ad clients in the specified publisher's AdSense account.
+ * (adclients.get)
+ *
+ * @param string $accountId Account which contains the ad client.
+ * @param string $adClientId Ad client to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_AdClient
+ */
+ public function get($accountId, $adClientId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'adClientId' => $adClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdClient($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all hosted ad clients in the specified hosted account. (adclients.list)
+ *
+ * @param string $accountId Account for which to list ad clients.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of ad clients to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_AdClients
+ */
+ public function listAccountsAdclients($accountId, $optParams = array()) {
+ $params = array('accountId' => $accountId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdClients($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "adunits" collection of methods.
+ * Typical usage is:
+ *
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $adunits = $adsensehostService->adunits;
+ *
+ */
+ class Google_AccountsAdunitsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Delete the specified ad unit from the specified publisher AdSense account. (adunits.delete)
+ *
+ * @param string $accountId Account which contains the ad unit.
+ * @param string $adClientId Ad client for which to get ad unit.
+ * @param string $adUnitId Ad unit to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_AdUnit
+ */
+ public function delete($accountId, $adClientId, $adUnitId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Get the specified host ad unit in this AdSense account. (adunits.get)
+ *
+ * @param string $accountId Account which contains the ad unit.
+ * @param string $adClientId Ad client for which to get ad unit.
+ * @param string $adUnitId Ad unit to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_AdUnit
+ */
+ public function get($accountId, $adClientId, $adUnitId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Get ad code for the specified ad unit, attaching the specified host custom channels.
+ * (adunits.getAdCode)
+ *
+ * @param string $accountId Account which contains the ad client.
+ * @param string $adClientId Ad client with contains the ad unit.
+ * @param string $adUnitId Ad unit to get the code for.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hostCustomChannelId Host custom channel to attach to the ad code.
+ * @return Google_AdCode
+ */
+ public function getAdCode($accountId, $adClientId, $adUnitId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('getAdCode', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdCode($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Insert the supplied ad unit into the specified publisher AdSense account. (adunits.insert)
+ *
+ * @param string $accountId Account which will contain the ad unit.
+ * @param string $adClientId Ad client into which to insert the ad unit.
+ * @param Google_AdUnit $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_AdUnit
+ */
+ public function insert($accountId, $adClientId, Google_AdUnit $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all ad units in the specified publisher's AdSense account. (adunits.list)
+ *
+ * @param string $accountId Account which contains the ad client.
+ * @param string $adClientId Ad client for which to list ad units.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeInactive Whether to include inactive ad units. Default: true.
+ * @opt_param string maxResults The maximum number of ad units to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_AdUnits
+ */
+ public function listAccountsAdunits($accountId, $adClientId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'adClientId' => $adClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdUnits($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update the supplied ad unit in the specified publisher AdSense account. This method supports
+ * patch semantics. (adunits.patch)
+ *
+ * @param string $accountId Account which contains the ad client.
+ * @param string $adClientId Ad client which contains the ad unit.
+ * @param string $adUnitId Ad unit to get.
+ * @param Google_AdUnit $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_AdUnit
+ */
+ public function patch($accountId, $adClientId, $adUnitId, Google_AdUnit $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'adUnitId' => $adUnitId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update the supplied ad unit in the specified publisher AdSense account. (adunits.update)
+ *
+ * @param string $accountId Account which contains the ad client.
+ * @param string $adClientId Ad client which contains the ad unit.
+ * @param Google_AdUnit $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_AdUnit
+ */
+ public function update($accountId, $adClientId, Google_AdUnit $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'adClientId' => $adClientId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "reports" collection of methods.
+ * Typical usage is:
+ *
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $reports = $adsensehostService->reports;
+ *
+ */
+ class Google_AccountsReportsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Generate an AdSense report based on the report request sent in the query parameters. Returns the
+ * result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+ * (reports.generate)
+ *
+ * @param string $accountId Hosted account upon which to report.
+ * @param string $startDate Start of the date range to report on in "YYYY-MM-DD" format, inclusive.
+ * @param string $endDate End of the date range to report on in "YYYY-MM-DD" format, inclusive.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string dimension Dimensions to base the report on.
+ * @opt_param string filter Filters to be run on the report.
+ * @opt_param string locale Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+ * @opt_param string maxResults The maximum number of rows of report data to return.
+ * @opt_param string metric Numeric columns to include in the report.
+ * @opt_param string sort The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending.
+ * @opt_param string startIndex Index of the first row of report data to return.
+ * @return Google_Report
+ */
+ public function generate($accountId, $startDate, $endDate, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'startDate' => $startDate, 'endDate' => $endDate);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('generate', array($params));
+ if ($this->useObjects()) {
+ return new Google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "adclients" collection of methods.
+ * Typical usage is:
+ *
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $adclients = $adsensehostService->adclients;
+ *
+ */
+ class Google_AdclientsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get information about one of the ad clients in the Host AdSense account. (adclients.get)
+ *
+ * @param string $adClientId Ad client to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_AdClient
+ */
+ public function get($adClientId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdClient($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all host ad clients in this AdSense account. (adclients.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of ad clients to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_AdClients
+ */
+ public function listAdclients($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AdClients($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "associationsessions" collection of methods.
+ * Typical usage is:
+ *
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $associationsessions = $adsensehostService->associationsessions;
+ *
+ */
+ class Google_AssociationsessionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Create an association session for initiating an association with an AdSense user.
+ * (associationsessions.start)
+ *
+ * @param string $productCode Products to associate with the user.
+ * @param string $websiteUrl The URL of the user's hosted website.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string userLocale The preferred locale of the user.
+ * @opt_param string websiteLocale The locale of the user's hosted website.
+ * @return Google_AssociationSession
+ */
+ public function start($productCode, $websiteUrl, $optParams = array()) {
+ $params = array('productCode' => $productCode, 'websiteUrl' => $websiteUrl);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('start', array($params));
+ if ($this->useObjects()) {
+ return new Google_AssociationSession($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Verify an association session after the association callback returns from AdSense signup.
+ * (associationsessions.verify)
+ *
+ * @param string $token The token returned to the association callback URL.
+ * @param array $optParams Optional parameters.
+ * @return Google_AssociationSession
+ */
+ public function verify($token, $optParams = array()) {
+ $params = array('token' => $token);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('verify', array($params));
+ if ($this->useObjects()) {
+ return new Google_AssociationSession($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "customchannels" collection of methods.
+ * Typical usage is:
+ *
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $customchannels = $adsensehostService->customchannels;
+ *
+ */
+ class Google_CustomchannelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Delete a specific custom channel from the host AdSense account. (customchannels.delete)
+ *
+ * @param string $adClientId Ad client from which to delete the custom channel.
+ * @param string $customChannelId Custom channel to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_CustomChannel
+ */
+ public function delete($adClientId, $customChannelId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_CustomChannel($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Get a specific custom channel from the host AdSense account. (customchannels.get)
+ *
+ * @param string $adClientId Ad client from which to get the custom channel.
+ * @param string $customChannelId Custom channel to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_CustomChannel
+ */
+ public function get($adClientId, $customChannelId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_CustomChannel($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Add a new custom channel to the host AdSense account. (customchannels.insert)
+ *
+ * @param string $adClientId Ad client to which the new custom channel will be added.
+ * @param Google_CustomChannel $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CustomChannel
+ */
+ public function insert($adClientId, Google_CustomChannel $postBody, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CustomChannel($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all host custom channels in this AdSense account. (customchannels.list)
+ *
+ * @param string $adClientId Ad client for which to list custom channels.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of custom channels to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_CustomChannels
+ */
+ public function listCustomchannels($adClientId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CustomChannels($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update a custom channel in the host AdSense account. This method supports patch semantics.
+ * (customchannels.patch)
+ *
+ * @param string $adClientId Ad client in which the custom channel will be updated.
+ * @param string $customChannelId Custom channel to get.
+ * @param Google_CustomChannel $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CustomChannel
+ */
+ public function patch($adClientId, $customChannelId, Google_CustomChannel $postBody, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'customChannelId' => $customChannelId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_CustomChannel($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update a custom channel in the host AdSense account. (customchannels.update)
+ *
+ * @param string $adClientId Ad client in which the custom channel will be updated.
+ * @param Google_CustomChannel $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CustomChannel
+ */
+ public function update($adClientId, Google_CustomChannel $postBody, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_CustomChannel($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "reports" collection of methods.
+ * Typical usage is:
+ *
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $reports = $adsensehostService->reports;
+ *
+ */
+ class Google_ReportsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Generate an AdSense report based on the report request sent in the query parameters. Returns the
+ * result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+ * (reports.generate)
+ *
+ * @param string $startDate Start of the date range to report on in "YYYY-MM-DD" format, inclusive.
+ * @param string $endDate End of the date range to report on in "YYYY-MM-DD" format, inclusive.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string dimension Dimensions to base the report on.
+ * @opt_param string filter Filters to be run on the report.
+ * @opt_param string locale Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+ * @opt_param string maxResults The maximum number of rows of report data to return.
+ * @opt_param string metric Numeric columns to include in the report.
+ * @opt_param string sort The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending.
+ * @opt_param string startIndex Index of the first row of report data to return.
+ * @return Google_Report
+ */
+ public function generate($startDate, $endDate, $optParams = array()) {
+ $params = array('startDate' => $startDate, 'endDate' => $endDate);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('generate', array($params));
+ if ($this->useObjects()) {
+ return new Google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "urlchannels" collection of methods.
+ * Typical usage is:
+ *
+ * $adsensehostService = new Google_AdSenseHostService(...);
+ * $urlchannels = $adsensehostService->urlchannels;
+ *
+ */
+ class Google_UrlchannelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Delete a URL channel from the host AdSense account. (urlchannels.delete)
+ *
+ * @param string $adClientId Ad client from which to delete the URL channel.
+ * @param string $urlChannelId URL channel to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_UrlChannel
+ */
+ public function delete($adClientId, $urlChannelId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'urlChannelId' => $urlChannelId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_UrlChannel($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Add a new URL channel to the host AdSense account. (urlchannels.insert)
+ *
+ * @param string $adClientId Ad client to which the new URL channel will be added.
+ * @param Google_UrlChannel $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_UrlChannel
+ */
+ public function insert($adClientId, Google_UrlChannel $postBody, $optParams = array()) {
+ $params = array('adClientId' => $adClientId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_UrlChannel($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all host URL channels in the host AdSense account. (urlchannels.list)
+ *
+ * @param string $adClientId Ad client for which to list URL channels.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of URL channels to include in the response, used for paging.
+ * @opt_param string pageToken A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_UrlChannels
+ */
+ public function listUrlchannels($adClientId, $optParams = array()) {
+ $params = array('adClientId' => $adClientId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_UrlChannels($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_AdSenseHost (v4.1).
+ *
+ *
+ * Gives AdSense Hosts access to report generation, ad code generation, and publisher management capabilities.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_AdSenseHostService extends Google_Service {
+ public $accounts;
+ public $accounts_adclients;
+ public $accounts_adunits;
+ public $accounts_reports;
+ public $adclients;
+ public $associationsessions;
+ public $customchannels;
+ public $reports;
+ public $urlchannels;
+ /**
+ * Constructs the internal representation of the AdSenseHost service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'adsensehost/v4.1/';
+ $this->version = 'v4.1';
+ $this->serviceName = 'adsensehost';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->accounts = new Google_AccountsServiceResource($this, $this->serviceName, 'accounts', json_decode('{"methods": {"get": {"id": "adsensehost.accounts.get", "path": "accounts/{accountId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Account"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "list": {"id": "adsensehost.accounts.list", "path": "accounts", "httpMethod": "GET", "parameters": {"filterAdClientId": {"type": "string", "required": true, "repeated": true, "location": "query"}}, "response": {"$ref": "Accounts"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+ $this->accounts_adclients = new Google_AccountsAdclientsServiceResource($this, $this->serviceName, 'adclients', json_decode('{"methods": {"get": {"id": "adsensehost.accounts.adclients.get", "path": "accounts/{accountId}/adclients/{adClientId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "adClientId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AdClient"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "list": {"id": "adsensehost.accounts.adclients.list", "path": "accounts/{accountId}/adclients", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "AdClients"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+ $this->accounts_adunits = new Google_AccountsAdunitsServiceResource($this, $this->serviceName, 'adunits', json_decode('{"methods": {"delete": {"id": "adsensehost.accounts.adunits.delete", "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", "httpMethod": "DELETE", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "adClientId": {"type": "string", "required": true, "location": "path"}, "adUnitId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AdUnit"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "get": {"id": "adsensehost.accounts.adunits.get", "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "adClientId": {"type": "string", "required": true, "location": "path"}, "adUnitId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AdUnit"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "getAdCode": {"id": "adsensehost.accounts.adunits.getAdCode", "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "adClientId": {"type": "string", "required": true, "location": "path"}, "adUnitId": {"type": "string", "required": true, "location": "path"}, "hostCustomChannelId": {"type": "string", "repeated": true, "location": "query"}}, "response": {"$ref": "AdCode"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "insert": {"id": "adsensehost.accounts.adunits.insert", "path": "accounts/{accountId}/adclients/{adClientId}/adunits", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "adClientId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AdUnit"}, "response": {"$ref": "AdUnit"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "list": {"id": "adsensehost.accounts.adunits.list", "path": "accounts/{accountId}/adclients/{adClientId}/adunits", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "adClientId": {"type": "string", "required": true, "location": "path"}, "includeInactive": {"type": "boolean", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "AdUnits"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "patch": {"id": "adsensehost.accounts.adunits.patch", "path": "accounts/{accountId}/adclients/{adClientId}/adunits", "httpMethod": "PATCH", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "adClientId": {"type": "string", "required": true, "location": "path"}, "adUnitId": {"type": "string", "required": true, "location": "query"}}, "request": {"$ref": "AdUnit"}, "response": {"$ref": "AdUnit"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "update": {"id": "adsensehost.accounts.adunits.update", "path": "accounts/{accountId}/adclients/{adClientId}/adunits", "httpMethod": "PUT", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "adClientId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AdUnit"}, "response": {"$ref": "AdUnit"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+ $this->accounts_reports = new Google_AccountsReportsServiceResource($this, $this->serviceName, 'reports', json_decode('{"methods": {"generate": {"id": "adsensehost.accounts.reports.generate", "path": "accounts/{accountId}/reports", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "dimension": {"type": "string", "repeated": true, "location": "query"}, "endDate": {"type": "string", "required": true, "location": "query"}, "filter": {"type": "string", "repeated": true, "location": "query"}, "locale": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "50000", "location": "query"}, "metric": {"type": "string", "repeated": true, "location": "query"}, "sort": {"type": "string", "repeated": true, "location": "query"}, "startDate": {"type": "string", "required": true, "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "5000", "location": "query"}}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+ $this->adclients = new Google_AdclientsServiceResource($this, $this->serviceName, 'adclients', json_decode('{"methods": {"get": {"id": "adsensehost.adclients.get", "path": "adclients/{adClientId}", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AdClient"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "list": {"id": "adsensehost.adclients.list", "path": "adclients", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "AdClients"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+ $this->associationsessions = new Google_AssociationsessionsServiceResource($this, $this->serviceName, 'associationsessions', json_decode('{"methods": {"start": {"id": "adsensehost.associationsessions.start", "path": "associationsessions/start", "httpMethod": "GET", "parameters": {"productCode": {"type": "string", "required": true, "enum": ["AFC", "AFG", "AFMC", "AFS", "AFV"], "repeated": true, "location": "query"}, "userLocale": {"type": "string", "location": "query"}, "websiteLocale": {"type": "string", "location": "query"}, "websiteUrl": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "AssociationSession"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "verify": {"id": "adsensehost.associationsessions.verify", "path": "associationsessions/verify", "httpMethod": "GET", "parameters": {"token": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "AssociationSession"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+ $this->customchannels = new Google_CustomchannelsServiceResource($this, $this->serviceName, 'customchannels', json_decode('{"methods": {"delete": {"id": "adsensehost.customchannels.delete", "path": "adclients/{adClientId}/customchannels/{customChannelId}", "httpMethod": "DELETE", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "customChannelId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CustomChannel"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "get": {"id": "adsensehost.customchannels.get", "path": "adclients/{adClientId}/customchannels/{customChannelId}", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "customChannelId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CustomChannel"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "insert": {"id": "adsensehost.customchannels.insert", "path": "adclients/{adClientId}/customchannels", "httpMethod": "POST", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CustomChannel"}, "response": {"$ref": "CustomChannel"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "list": {"id": "adsensehost.customchannels.list", "path": "adclients/{adClientId}/customchannels", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CustomChannels"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "patch": {"id": "adsensehost.customchannels.patch", "path": "adclients/{adClientId}/customchannels", "httpMethod": "PATCH", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "customChannelId": {"type": "string", "required": true, "location": "query"}}, "request": {"$ref": "CustomChannel"}, "response": {"$ref": "CustomChannel"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "update": {"id": "adsensehost.customchannels.update", "path": "adclients/{adClientId}/customchannels", "httpMethod": "PUT", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CustomChannel"}, "response": {"$ref": "CustomChannel"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+ $this->reports = new Google_ReportsServiceResource($this, $this->serviceName, 'reports', json_decode('{"methods": {"generate": {"id": "adsensehost.reports.generate", "path": "reports", "httpMethod": "GET", "parameters": {"dimension": {"type": "string", "repeated": true, "location": "query"}, "endDate": {"type": "string", "required": true, "location": "query"}, "filter": {"type": "string", "repeated": true, "location": "query"}, "locale": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "50000", "location": "query"}, "metric": {"type": "string", "repeated": true, "location": "query"}, "sort": {"type": "string", "repeated": true, "location": "query"}, "startDate": {"type": "string", "required": true, "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "5000", "location": "query"}}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+ $this->urlchannels = new Google_UrlchannelsServiceResource($this, $this->serviceName, 'urlchannels', json_decode('{"methods": {"delete": {"id": "adsensehost.urlchannels.delete", "path": "adclients/{adClientId}/urlchannels/{urlChannelId}", "httpMethod": "DELETE", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "urlChannelId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "UrlChannel"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "insert": {"id": "adsensehost.urlchannels.insert", "path": "adclients/{adClientId}/urlchannels", "httpMethod": "POST", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "UrlChannel"}, "response": {"$ref": "UrlChannel"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}, "list": {"id": "adsensehost.urlchannels.list", "path": "adclients/{adClientId}/urlchannels", "httpMethod": "GET", "parameters": {"adClientId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "10000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "UrlChannels"}, "scopes": ["https://www.googleapis.com/auth/adsensehost"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Account extends Google_Model {
+ public $id;
+ public $kind;
+ public $name;
+ public $status;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_Accounts extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Account';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Account) */ $items) {
+ $this->assertIsArray($items, 'Google_Account', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_AdClient extends Google_Model {
+ public $arcOptIn;
+ public $id;
+ public $kind;
+ public $productCode;
+ public $supportsReporting;
+ public function setArcOptIn( $arcOptIn) {
+ $this->arcOptIn = $arcOptIn;
+ }
+ public function getArcOptIn() {
+ return $this->arcOptIn;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setProductCode( $productCode) {
+ $this->productCode = $productCode;
+ }
+ public function getProductCode() {
+ return $this->productCode;
+ }
+ public function setSupportsReporting( $supportsReporting) {
+ $this->supportsReporting = $supportsReporting;
+ }
+ public function getSupportsReporting() {
+ return $this->supportsReporting;
+ }
+}
+
+class Google_AdClients extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_AdClient';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_AdClient) */ $items) {
+ $this->assertIsArray($items, 'Google_AdClient', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_AdCode extends Google_Model {
+ public $adCode;
+ public $kind;
+ public function setAdCode( $adCode) {
+ $this->adCode = $adCode;
+ }
+ public function getAdCode() {
+ return $this->adCode;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_AdStyle extends Google_Model {
+ protected $__colorsType = 'Google_AdStyleColors';
+ protected $__colorsDataType = '';
+ public $colors;
+ public $corners;
+ protected $__fontType = 'Google_AdStyleFont';
+ protected $__fontDataType = '';
+ public $font;
+ public $kind;
+ public function setColors(Google_AdStyleColors $colors) {
+ $this->colors = $colors;
+ }
+ public function getColors() {
+ return $this->colors;
+ }
+ public function setCorners( $corners) {
+ $this->corners = $corners;
+ }
+ public function getCorners() {
+ return $this->corners;
+ }
+ public function setFont(Google_AdStyleFont $font) {
+ $this->font = $font;
+ }
+ public function getFont() {
+ return $this->font;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_AdStyleColors extends Google_Model {
+ public $background;
+ public $border;
+ public $text;
+ public $title;
+ public $url;
+ public function setBackground( $background) {
+ $this->background = $background;
+ }
+ public function getBackground() {
+ return $this->background;
+ }
+ public function setBorder( $border) {
+ $this->border = $border;
+ }
+ public function getBorder() {
+ return $this->border;
+ }
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_AdStyleFont extends Google_Model {
+ public $family;
+ public $size;
+ public function setFamily( $family) {
+ $this->family = $family;
+ }
+ public function getFamily() {
+ return $this->family;
+ }
+ public function setSize( $size) {
+ $this->size = $size;
+ }
+ public function getSize() {
+ return $this->size;
+ }
+}
+
+class Google_AdUnit extends Google_Model {
+ public $code;
+ protected $__contentAdsSettingsType = 'Google_AdUnitContentAdsSettings';
+ protected $__contentAdsSettingsDataType = '';
+ public $contentAdsSettings;
+ protected $__customStyleType = 'Google_AdStyle';
+ protected $__customStyleDataType = '';
+ public $customStyle;
+ public $id;
+ public $kind;
+ protected $__mobileContentAdsSettingsType = 'Google_AdUnitMobileContentAdsSettings';
+ protected $__mobileContentAdsSettingsDataType = '';
+ public $mobileContentAdsSettings;
+ public $name;
+ public $status;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setContentAdsSettings(Google_AdUnitContentAdsSettings $contentAdsSettings) {
+ $this->contentAdsSettings = $contentAdsSettings;
+ }
+ public function getContentAdsSettings() {
+ return $this->contentAdsSettings;
+ }
+ public function setCustomStyle(Google_AdStyle $customStyle) {
+ $this->customStyle = $customStyle;
+ }
+ public function getCustomStyle() {
+ return $this->customStyle;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMobileContentAdsSettings(Google_AdUnitMobileContentAdsSettings $mobileContentAdsSettings) {
+ $this->mobileContentAdsSettings = $mobileContentAdsSettings;
+ }
+ public function getMobileContentAdsSettings() {
+ return $this->mobileContentAdsSettings;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_AdUnitContentAdsSettings extends Google_Model {
+ protected $__backupOptionType = 'Google_AdUnitContentAdsSettingsBackupOption';
+ protected $__backupOptionDataType = '';
+ public $backupOption;
+ public $size;
+ public $type;
+ public function setBackupOption(Google_AdUnitContentAdsSettingsBackupOption $backupOption) {
+ $this->backupOption = $backupOption;
+ }
+ public function getBackupOption() {
+ return $this->backupOption;
+ }
+ public function setSize( $size) {
+ $this->size = $size;
+ }
+ public function getSize() {
+ return $this->size;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_AdUnitContentAdsSettingsBackupOption extends Google_Model {
+ public $color;
+ public $type;
+ public $url;
+ public function setColor( $color) {
+ $this->color = $color;
+ }
+ public function getColor() {
+ return $this->color;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_AdUnitMobileContentAdsSettings extends Google_Model {
+ public $markupLanguage;
+ public $scriptingLanguage;
+ public $size;
+ public $type;
+ public function setMarkupLanguage( $markupLanguage) {
+ $this->markupLanguage = $markupLanguage;
+ }
+ public function getMarkupLanguage() {
+ return $this->markupLanguage;
+ }
+ public function setScriptingLanguage( $scriptingLanguage) {
+ $this->scriptingLanguage = $scriptingLanguage;
+ }
+ public function getScriptingLanguage() {
+ return $this->scriptingLanguage;
+ }
+ public function setSize( $size) {
+ $this->size = $size;
+ }
+ public function getSize() {
+ return $this->size;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_AdUnits extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_AdUnit';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_AdUnit) */ $items) {
+ $this->assertIsArray($items, 'Google_AdUnit', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_AssociationSession extends Google_Model {
+ public $accountId;
+ public $id;
+ public $kind;
+ public $productCodes;
+ public $redirectUrl;
+ public $status;
+ public $userLocale;
+ public $websiteLocale;
+ public $websiteUrl;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setProductCodes(/* array(Google_string) */ $productCodes) {
+ $this->assertIsArray($productCodes, 'Google_string', __METHOD__);
+ $this->productCodes = $productCodes;
+ }
+ public function getProductCodes() {
+ return $this->productCodes;
+ }
+ public function setRedirectUrl( $redirectUrl) {
+ $this->redirectUrl = $redirectUrl;
+ }
+ public function getRedirectUrl() {
+ return $this->redirectUrl;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setUserLocale( $userLocale) {
+ $this->userLocale = $userLocale;
+ }
+ public function getUserLocale() {
+ return $this->userLocale;
+ }
+ public function setWebsiteLocale( $websiteLocale) {
+ $this->websiteLocale = $websiteLocale;
+ }
+ public function getWebsiteLocale() {
+ return $this->websiteLocale;
+ }
+ public function setWebsiteUrl( $websiteUrl) {
+ $this->websiteUrl = $websiteUrl;
+ }
+ public function getWebsiteUrl() {
+ return $this->websiteUrl;
+ }
+}
+
+class Google_CustomChannel extends Google_Model {
+ public $code;
+ public $id;
+ public $kind;
+ public $name;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_CustomChannels extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_CustomChannel';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_CustomChannel) */ $items) {
+ $this->assertIsArray($items, 'Google_CustomChannel', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Report extends Google_Model {
+ public $averages;
+ protected $__headersType = 'Google_ReportHeaders';
+ protected $__headersDataType = 'array';
+ public $headers;
+ public $kind;
+ public $rows;
+ public $totalMatchedRows;
+ public $totals;
+ public $warnings;
+ public function setAverages(/* array(Google_string) */ $averages) {
+ $this->assertIsArray($averages, 'Google_string', __METHOD__);
+ $this->averages = $averages;
+ }
+ public function getAverages() {
+ return $this->averages;
+ }
+ public function setHeaders(/* array(Google_ReportHeaders) */ $headers) {
+ $this->assertIsArray($headers, 'Google_ReportHeaders', __METHOD__);
+ $this->headers = $headers;
+ }
+ public function getHeaders() {
+ return $this->headers;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRows(/* array(Google_string) */ $rows) {
+ $this->assertIsArray($rows, 'Google_string', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setTotalMatchedRows( $totalMatchedRows) {
+ $this->totalMatchedRows = $totalMatchedRows;
+ }
+ public function getTotalMatchedRows() {
+ return $this->totalMatchedRows;
+ }
+ public function setTotals(/* array(Google_string) */ $totals) {
+ $this->assertIsArray($totals, 'Google_string', __METHOD__);
+ $this->totals = $totals;
+ }
+ public function getTotals() {
+ return $this->totals;
+ }
+ public function setWarnings(/* array(Google_string) */ $warnings) {
+ $this->assertIsArray($warnings, 'Google_string', __METHOD__);
+ $this->warnings = $warnings;
+ }
+ public function getWarnings() {
+ return $this->warnings;
+ }
+}
+
+class Google_ReportHeaders extends Google_Model {
+ public $currency;
+ public $name;
+ public $type;
+ public function setCurrency( $currency) {
+ $this->currency = $currency;
+ }
+ public function getCurrency() {
+ return $this->currency;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_UrlChannel extends Google_Model {
+ public $id;
+ public $kind;
+ public $urlPattern;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setUrlPattern( $urlPattern) {
+ $this->urlPattern = $urlPattern;
+ }
+ public function getUrlPattern() {
+ return $this->urlPattern;
+ }
+}
+
+class Google_UrlChannels extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_UrlChannel';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_UrlChannel) */ $items) {
+ $this->assertIsArray($items, 'Google_UrlChannel', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AnalyticsService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AnalyticsService.php
new file mode 100644
index 0000000..48812c8
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AnalyticsService.php
@@ -0,0 +1,4336 @@
+
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $data = $analyticsService->data;
+ *
+ */
+ class Google_DataServiceResource extends Google_ServiceResource {
+
+ }
+
+ /**
+ * The "ga" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $ga = $analyticsService->ga;
+ *
+ */
+ class Google_DataGaServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns Analytics data for a view (profile). (ga.get)
+ *
+ * @param string $ids Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID.
+ * @param string $start_date Start date for fetching Analytics data. All requests should specify a start date formatted as YYYY-MM-DD.
+ * @param string $end_date End date for fetching Analytics data. All requests should specify an end date formatted as YYYY-MM-DD.
+ * @param string $metrics A comma-separated list of Analytics metrics. E.g., 'ga:visits,ga:pageviews'. At least one metric must be specified.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string dimensions A comma-separated list of Analytics dimensions. E.g., 'ga:browser,ga:city'.
+ * @opt_param string filters A comma-separated list of dimension or metric filters to be applied to Analytics data.
+ * @opt_param int max-results The maximum number of entries to include in this feed.
+ * @opt_param string segment An Analytics advanced segment to be applied to data.
+ * @opt_param string sort A comma-separated list of dimensions or metrics that determine the sort order for Analytics data.
+ * @opt_param int start-index An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_GaData
+ */
+ public function get($ids, $start_date, $end_date, $metrics, $optParams = array()) {
+ $params = array('ids' => $ids, 'start-date' => $start_date, 'end-date' => $end_date, 'metrics' => $metrics);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_GaData($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "mcf" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $mcf = $analyticsService->mcf;
+ *
+ */
+ class Google_DataMcfServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns Analytics Multi-Channel Funnels data for a view (profile). (mcf.get)
+ *
+ * @param string $ids Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID.
+ * @param string $start_date Start date for fetching Analytics data. All requests should specify a start date formatted as YYYY-MM-DD.
+ * @param string $end_date End date for fetching Analytics data. All requests should specify an end date formatted as YYYY-MM-DD.
+ * @param string $metrics A comma-separated list of Multi-Channel Funnels metrics. E.g., 'mcf:totalConversions,mcf:totalConversionValue'. At least one metric must be specified.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string dimensions A comma-separated list of Multi-Channel Funnels dimensions. E.g., 'mcf:source,mcf:medium'.
+ * @opt_param string filters A comma-separated list of dimension or metric filters to be applied to the Analytics data.
+ * @opt_param int max-results The maximum number of entries to include in this feed.
+ * @opt_param string sort A comma-separated list of dimensions or metrics that determine the sort order for the Analytics data.
+ * @opt_param int start-index An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_McfData
+ */
+ public function get($ids, $start_date, $end_date, $metrics, $optParams = array()) {
+ $params = array('ids' => $ids, 'start-date' => $start_date, 'end-date' => $end_date, 'metrics' => $metrics);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_McfData($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "realtime" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $realtime = $analyticsService->realtime;
+ *
+ */
+ class Google_DataRealtimeServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns real time data for a view (profile). (realtime.get)
+ *
+ * @param string $ids Unique table ID for retrieving real time data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID.
+ * @param string $metrics A comma-separated list of real time metrics. E.g., 'ga:activeVisitors'. At least one metric must be specified.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string dimensions A comma-separated list of real time dimensions. E.g., 'ga:medium,ga:city'.
+ * @opt_param string filters A comma-separated list of dimension or metric filters to be applied to real time data.
+ * @opt_param int max-results The maximum number of entries to include in this feed.
+ * @opt_param string sort A comma-separated list of dimensions or metrics that determine the sort order for real time data.
+ * @return Google_RealtimeData
+ */
+ public function get($ids, $metrics, $optParams = array()) {
+ $params = array('ids' => $ids, 'metrics' => $metrics);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_RealtimeData($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "management" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $management = $analyticsService->management;
+ *
+ */
+ class Google_ManagementServiceResource extends Google_ServiceResource {
+
+ }
+
+ /**
+ * The "accountUserLinks" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $accountUserLinks = $analyticsService->accountUserLinks;
+ *
+ */
+ class Google_ManagementAccountUserLinksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Removes a user from the given account. (accountUserLinks.delete)
+ *
+ * @param string $accountId Account ID to delete the user link for.
+ * @param string $linkId Link ID to delete the user link for.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($accountId, $linkId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'linkId' => $linkId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Adds a new user to the given account. (accountUserLinks.insert)
+ *
+ * @param string $accountId Account ID to create the user link for.
+ * @param Google_EntityUserLink $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_EntityUserLink
+ */
+ public function insert($accountId, Google_EntityUserLink $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLink($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists account-user links for a given account. (accountUserLinks.list)
+ *
+ * @param string $accountId Account ID to retrieve the user links for.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of account-user links to include in this response.
+ * @opt_param int start-index An index of the first account-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_EntityUserLinks
+ */
+ public function listManagementAccountUserLinks($accountId, $optParams = array()) {
+ $params = array('accountId' => $accountId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLinks($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates permissions for an existing user on the given account.
+ * (accountUserLinks.update)
+ *
+ * @param string $accountId Account ID to update the account-user link for.
+ * @param string $linkId Link ID to update the account-user link for.
+ * @param Google_EntityUserLink $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_EntityUserLink
+ */
+ public function update($accountId, $linkId, Google_EntityUserLink $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'linkId' => $linkId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLink($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "accounts" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $accounts = $analyticsService->accounts;
+ *
+ */
+ class Google_ManagementAccountsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Lists all accounts to which the user has access. (accounts.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of accounts to include in this response.
+ * @opt_param int start-index An index of the first account to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_Accounts
+ */
+ public function listManagementAccounts($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Accounts($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "customDataSources" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $customDataSources = $analyticsService->customDataSources;
+ *
+ */
+ class Google_ManagementCustomDataSourcesServiceResource extends Google_ServiceResource {
+
+ /**
+ * List custom data sources to which the user has access.
+ * (customDataSources.list)
+ *
+ * @param string $accountId Account Id for the custom data sources to retrieve.
+ * @param string $webPropertyId Web property Id for the custom data sources to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of custom data sources to include in this response.
+ * @opt_param int start-index A 1-based index of the first custom data source to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_CustomDataSources
+ */
+ public function listManagementCustomDataSources($accountId, $webPropertyId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CustomDataSources($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "dailyUploads" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $dailyUploads = $analyticsService->dailyUploads;
+ *
+ */
+ class Google_ManagementDailyUploadsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Delete uploaded data for the given date. (dailyUploads.delete)
+ *
+ * @param string $accountId Account Id associated with daily upload delete.
+ * @param string $webPropertyId Web property Id associated with daily upload delete.
+ * @param string $customDataSourceId Custom data source Id associated with daily upload delete.
+ * @param string $date Date for which data is to be deleted. Date should be formatted as YYYY-MM-DD.
+ * @param string $type Type of data for this delete.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($accountId, $webPropertyId, $customDataSourceId, $date, $type, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'date' => $date, 'type' => $type);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * List daily uploads to which the user has access. (dailyUploads.list)
+ *
+ * @param string $accountId Account Id for the daily uploads to retrieve.
+ * @param string $webPropertyId Web property Id for the daily uploads to retrieve.
+ * @param string $customDataSourceId Custom data source Id for daily uploads to retrieve.
+ * @param string $start_date Start date of the form YYYY-MM-DD.
+ * @param string $end_date End date of the form YYYY-MM-DD.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of custom data sources to include in this response.
+ * @opt_param int start-index A 1-based index of the first daily upload to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_DailyUploads
+ */
+ public function listManagementDailyUploads($accountId, $webPropertyId, $customDataSourceId, $start_date, $end_date, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'start-date' => $start_date, 'end-date' => $end_date);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_DailyUploads($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update/Overwrite data for a custom data source. (dailyUploads.upload)
+ *
+ * @param string $accountId Account Id associated with daily upload.
+ * @param string $webPropertyId Web property Id associated with daily upload.
+ * @param string $customDataSourceId Custom data source Id to which the data being uploaded belongs.
+ * @param string $date Date for which data is uploaded. Date should be formatted as YYYY-MM-DD.
+ * @param int $appendNumber Append number for this upload indexed from 1.
+ * @param string $type Type of data for this upload.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool reset Reset/Overwrite all previous appends for this date and start over with this file as the first upload.
+ * @return Google_DailyUploadAppend
+ */
+ public function upload($accountId, $webPropertyId, $customDataSourceId, $date, $appendNumber, $type, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'date' => $date, 'appendNumber' => $appendNumber, 'type' => $type);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('upload', array($params));
+ if ($this->useObjects()) {
+ return new Google_DailyUploadAppend($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "experiments" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $experiments = $analyticsService->experiments;
+ *
+ */
+ class Google_ManagementExperimentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Delete an experiment. (experiments.delete)
+ *
+ * @param string $accountId Account ID to which the experiment belongs
+ * @param string $webPropertyId Web property ID to which the experiment belongs
+ * @param string $profileId View (Profile) ID to which the experiment belongs
+ * @param string $experimentId ID of the experiment to delete
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($accountId, $webPropertyId, $profileId, $experimentId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'experimentId' => $experimentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns an experiment to which the user has access. (experiments.get)
+ *
+ * @param string $accountId Account ID to retrieve the experiment for.
+ * @param string $webPropertyId Web property ID to retrieve the experiment for.
+ * @param string $profileId View (Profile) ID to retrieve the experiment for.
+ * @param string $experimentId Experiment ID to retrieve the experiment for.
+ * @param array $optParams Optional parameters.
+ * @return Google_Experiment
+ */
+ public function get($accountId, $webPropertyId, $profileId, $experimentId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'experimentId' => $experimentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Experiment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create a new experiment. (experiments.insert)
+ *
+ * @param string $accountId Account ID to create the experiment for.
+ * @param string $webPropertyId Web property ID to create the experiment for.
+ * @param string $profileId View (Profile) ID to create the experiment for.
+ * @param Google_Experiment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Experiment
+ */
+ public function insert($accountId, $webPropertyId, $profileId, Google_Experiment $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Experiment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists experiments to which the user has access. (experiments.list)
+ *
+ * @param string $accountId Account ID to retrieve experiments for.
+ * @param string $webPropertyId Web property ID to retrieve experiments for.
+ * @param string $profileId View (Profile) ID to retrieve experiments for.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of experiments to include in this response.
+ * @opt_param int start-index An index of the first experiment to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_Experiments
+ */
+ public function listManagementExperiments($accountId, $webPropertyId, $profileId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Experiments($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update an existing experiment. This method supports patch semantics.
+ * (experiments.patch)
+ *
+ * @param string $accountId Account ID of the experiment to update.
+ * @param string $webPropertyId Web property ID of the experiment to update.
+ * @param string $profileId View (Profile) ID of the experiment to update.
+ * @param string $experimentId Experiment ID of the experiment to update.
+ * @param Google_Experiment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Experiment
+ */
+ public function patch($accountId, $webPropertyId, $profileId, $experimentId, Google_Experiment $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'experimentId' => $experimentId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Experiment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update an existing experiment. (experiments.update)
+ *
+ * @param string $accountId Account ID of the experiment to update.
+ * @param string $webPropertyId Web property ID of the experiment to update.
+ * @param string $profileId View (Profile) ID of the experiment to update.
+ * @param string $experimentId Experiment ID of the experiment to update.
+ * @param Google_Experiment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Experiment
+ */
+ public function update($accountId, $webPropertyId, $profileId, $experimentId, Google_Experiment $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'experimentId' => $experimentId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Experiment($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "goals" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $goals = $analyticsService->goals;
+ *
+ */
+ class Google_ManagementGoalsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets a goal to which the user has access. (goals.get)
+ *
+ * @param string $accountId Account ID to retrieve the goal for.
+ * @param string $webPropertyId Web property ID to retrieve the goal for.
+ * @param string $profileId View (Profile) ID to retrieve the goal for.
+ * @param string $goalId Goal ID to retrieve the goal for.
+ * @param array $optParams Optional parameters.
+ * @return Google_Goal
+ */
+ public function get($accountId, $webPropertyId, $profileId, $goalId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'goalId' => $goalId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Goal($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create a new goal. (goals.insert)
+ *
+ * @param string $accountId Account ID to create the goal for.
+ * @param string $webPropertyId Web property ID to create the goal for.
+ * @param string $profileId View (Profile) ID to create the goal for.
+ * @param Google_Goal $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Goal
+ */
+ public function insert($accountId, $webPropertyId, $profileId, Google_Goal $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Goal($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists goals to which the user has access. (goals.list)
+ *
+ * @param string $accountId Account ID to retrieve goals for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to.
+ * @param string $webPropertyId Web property ID to retrieve goals for. Can either be a specific web property ID or '~all', which refers to all the web properties that user has access to.
+ * @param string $profileId View (Profile) ID to retrieve goals for. Can either be a specific view (profile) ID or '~all', which refers to all the views (profiles) that user has access to.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of goals to include in this response.
+ * @opt_param int start-index An index of the first goal to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_Goals
+ */
+ public function listManagementGoals($accountId, $webPropertyId, $profileId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Goals($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing view (profile). This method supports patch semantics.
+ * (goals.patch)
+ *
+ * @param string $accountId Account ID to update the goal.
+ * @param string $webPropertyId Web property ID to update the goal.
+ * @param string $profileId View (Profile) ID to update the goal.
+ * @param string $goalId Index of the goal to be updated.
+ * @param Google_Goal $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Goal
+ */
+ public function patch($accountId, $webPropertyId, $profileId, $goalId, Google_Goal $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'goalId' => $goalId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Goal($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing view (profile). (goals.update)
+ *
+ * @param string $accountId Account ID to update the goal.
+ * @param string $webPropertyId Web property ID to update the goal.
+ * @param string $profileId View (Profile) ID to update the goal.
+ * @param string $goalId Index of the goal to be updated.
+ * @param Google_Goal $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Goal
+ */
+ public function update($accountId, $webPropertyId, $profileId, $goalId, Google_Goal $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'goalId' => $goalId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Goal($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "profileUserLinks" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $profileUserLinks = $analyticsService->profileUserLinks;
+ *
+ */
+ class Google_ManagementProfileUserLinksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Removes a user from the given view (profile). (profileUserLinks.delete)
+ *
+ * @param string $accountId Account ID to delete the user link for.
+ * @param string $webPropertyId Web Property ID to delete the user link for.
+ * @param string $profileId View (Profile) ID to delete the user link for.
+ * @param string $linkId Link ID to delete the user link for.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($accountId, $webPropertyId, $profileId, $linkId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'linkId' => $linkId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Adds a new user to the given view (profile). (profileUserLinks.insert)
+ *
+ * @param string $accountId Account ID to create the user link for.
+ * @param string $webPropertyId Web Property ID to create the user link for.
+ * @param string $profileId View (Profile) ID to create the user link for.
+ * @param Google_EntityUserLink $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_EntityUserLink
+ */
+ public function insert($accountId, $webPropertyId, $profileId, Google_EntityUserLink $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLink($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists profile-user links for a given view (profile). (profileUserLinks.list)
+ *
+ * @param string $accountId Account ID which the given view (profile) belongs to.
+ * @param string $webPropertyId Web Property ID which the given view (profile) belongs to.
+ * @param string $profileId View (Profile) ID to retrieve the profile-user links for
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of profile-user links to include in this response.
+ * @opt_param int start-index An index of the first profile-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_EntityUserLinks
+ */
+ public function listManagementProfileUserLinks($accountId, $webPropertyId, $profileId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLinks($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates permissions for an existing user on the given view (profile).
+ * (profileUserLinks.update)
+ *
+ * @param string $accountId Account ID to update the user link for.
+ * @param string $webPropertyId Web Property ID to update the user link for.
+ * @param string $profileId View (Profile ID) to update the user link for.
+ * @param string $linkId Link ID to update the user link for.
+ * @param Google_EntityUserLink $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_EntityUserLink
+ */
+ public function update($accountId, $webPropertyId, $profileId, $linkId, Google_EntityUserLink $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'linkId' => $linkId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLink($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "profiles" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $profiles = $analyticsService->profiles;
+ *
+ */
+ class Google_ManagementProfilesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a view (profile). (profiles.delete)
+ *
+ * @param string $accountId Account ID to delete the view (profile) for.
+ * @param string $webPropertyId Web property ID to delete the view (profile) for.
+ * @param string $profileId ID of the view (profile) to be deleted.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($accountId, $webPropertyId, $profileId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a view (profile) to which the user has access. (profiles.get)
+ *
+ * @param string $accountId Account ID to retrieve the goal for.
+ * @param string $webPropertyId Web property ID to retrieve the goal for.
+ * @param string $profileId View (Profile) ID to retrieve the goal for.
+ * @param array $optParams Optional parameters.
+ * @return Google_Profile
+ */
+ public function get($accountId, $webPropertyId, $profileId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Profile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create a new view (profile). (profiles.insert)
+ *
+ * @param string $accountId Account ID to create the view (profile) for.
+ * @param string $webPropertyId Web property ID to create the view (profile) for.
+ * @param Google_Profile $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Profile
+ */
+ public function insert($accountId, $webPropertyId, Google_Profile $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Profile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists views (profiles) to which the user has access. (profiles.list)
+ *
+ * @param string $accountId Account ID for the view (profiles) to retrieve. Can either be a specific account ID or '~all', which refers to all the accounts to which the user has access.
+ * @param string $webPropertyId Web property ID for the views (profiles) to retrieve. Can either be a specific web property ID or '~all', which refers to all the web properties to which the user has access.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of views (profiles) to include in this response.
+ * @opt_param int start-index An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_Profiles
+ */
+ public function listManagementProfiles($accountId, $webPropertyId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Profiles($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing view (profile). This method supports patch semantics.
+ * (profiles.patch)
+ *
+ * @param string $accountId Account ID to which the view (profile) belongs
+ * @param string $webPropertyId Web property ID to which the view (profile) belongs
+ * @param string $profileId ID of the view (profile) to be updated.
+ * @param Google_Profile $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Profile
+ */
+ public function patch($accountId, $webPropertyId, $profileId, Google_Profile $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Profile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing view (profile). (profiles.update)
+ *
+ * @param string $accountId Account ID to which the view (profile) belongs
+ * @param string $webPropertyId Web property ID to which the view (profile) belongs
+ * @param string $profileId ID of the view (profile) to be updated.
+ * @param Google_Profile $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Profile
+ */
+ public function update($accountId, $webPropertyId, $profileId, Google_Profile $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'profileId' => $profileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Profile($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "segments" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $segments = $analyticsService->segments;
+ *
+ */
+ class Google_ManagementSegmentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Lists advanced segments to which the user has access. (segments.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of advanced segments to include in this response.
+ * @opt_param int start-index An index of the first advanced segment to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_Segments
+ */
+ public function listManagementSegments($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Segments($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "uploads" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $uploads = $analyticsService->uploads;
+ *
+ */
+ class Google_ManagementUploadsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Delete data associated with a previous upload. (uploads.deleteUploadData)
+ *
+ * @param string $accountId Account Id for the uploads to be deleted.
+ * @param string $webPropertyId Web property Id for the uploads to be deleted.
+ * @param string $customDataSourceId Custom data source Id for the uploads to be deleted.
+ * @param Google_AnalyticsDataimportDeleteUploadDataRequest $postBody
+ * @param array $optParams Optional parameters.
+ */
+ public function deleteUploadData($accountId, $webPropertyId, $customDataSourceId, Google_AnalyticsDataimportDeleteUploadDataRequest $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('deleteUploadData', array($params));
+ return $data;
+ }
+ /**
+ * List uploads to which the user has access. (uploads.get)
+ *
+ * @param string $accountId Account Id for the upload to retrieve.
+ * @param string $webPropertyId Web property Id for the upload to retrieve.
+ * @param string $customDataSourceId Custom data source Id for upload to retrieve.
+ * @param string $uploadId Upload Id to retrieve.
+ * @param array $optParams Optional parameters.
+ * @return Google_Upload
+ */
+ public function get($accountId, $webPropertyId, $customDataSourceId, $uploadId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId, 'uploadId' => $uploadId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Upload($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List uploads to which the user has access. (uploads.list)
+ *
+ * @param string $accountId Account Id for the uploads to retrieve.
+ * @param string $webPropertyId Web property Id for the uploads to retrieve.
+ * @param string $customDataSourceId Custom data source Id for uploads to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of uploads to include in this response.
+ * @opt_param int start-index A 1-based index of the first upload to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_Uploads
+ */
+ public function listManagementUploads($accountId, $webPropertyId, $customDataSourceId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Uploads($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Upload/Overwrite data for a custom data source. (uploads.uploadData)
+ *
+ * @param string $accountId Account Id associated with the upload.
+ * @param string $webPropertyId Web property UA-string associated with the upload.
+ * @param string $customDataSourceId Custom data source Id to which the data being uploaded belongs.
+ * @param array $optParams Optional parameters.
+ * @return Google_Upload
+ */
+ public function uploadData($accountId, $webPropertyId, $customDataSourceId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'customDataSourceId' => $customDataSourceId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('uploadData', array($params));
+ if ($this->useObjects()) {
+ return new Google_Upload($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "webproperties" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $webproperties = $analyticsService->webproperties;
+ *
+ */
+ class Google_ManagementWebpropertiesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets a web property to which the user has access. (webproperties.get)
+ *
+ * @param string $accountId Account ID to retrieve the web property for.
+ * @param string $webPropertyId ID to retrieve the web property for.
+ * @param array $optParams Optional parameters.
+ * @return Google_Webproperty
+ */
+ public function get($accountId, $webPropertyId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Webproperty($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create a new property if the account has fewer than 20 properties.
+ * (webproperties.insert)
+ *
+ * @param string $accountId Account ID to create the web property for.
+ * @param Google_Webproperty $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Webproperty
+ */
+ public function insert($accountId, Google_Webproperty $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Webproperty($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists web properties to which the user has access. (webproperties.list)
+ *
+ * @param string $accountId Account ID to retrieve web properties for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of web properties to include in this response.
+ * @opt_param int start-index An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_Webproperties
+ */
+ public function listManagementWebproperties($accountId, $optParams = array()) {
+ $params = array('accountId' => $accountId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Webproperties($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing web property. This method supports patch semantics.
+ * (webproperties.patch)
+ *
+ * @param string $accountId Account ID to which the web property belongs
+ * @param string $webPropertyId Web property ID
+ * @param Google_Webproperty $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Webproperty
+ */
+ public function patch($accountId, $webPropertyId, Google_Webproperty $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Webproperty($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing web property. (webproperties.update)
+ *
+ * @param string $accountId Account ID to which the web property belongs
+ * @param string $webPropertyId Web property ID
+ * @param Google_Webproperty $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Webproperty
+ */
+ public function update($accountId, $webPropertyId, Google_Webproperty $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Webproperty($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "webpropertyUserLinks" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $webpropertyUserLinks = $analyticsService->webpropertyUserLinks;
+ *
+ */
+ class Google_ManagementWebpropertyUserLinksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Removes a user from the given web property. (webpropertyUserLinks.delete)
+ *
+ * @param string $accountId Account ID to delete the user link for.
+ * @param string $webPropertyId Web Property ID to delete the user link for.
+ * @param string $linkId Link ID to delete the user link for.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($accountId, $webPropertyId, $linkId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'linkId' => $linkId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Adds a new user to the given web property. (webpropertyUserLinks.insert)
+ *
+ * @param string $accountId Account ID to create the user link for.
+ * @param string $webPropertyId Web Property ID to create the user link for.
+ * @param Google_EntityUserLink $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_EntityUserLink
+ */
+ public function insert($accountId, $webPropertyId, Google_EntityUserLink $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLink($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists webProperty-user links for a given web property.
+ * (webpropertyUserLinks.list)
+ *
+ * @param string $accountId Account ID which the given web property belongs to.
+ * @param string $webPropertyId Web Property ID for the webProperty-user links to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int max-results The maximum number of webProperty-user Links to include in this response.
+ * @opt_param int start-index An index of the first webProperty-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+ * @return Google_EntityUserLinks
+ */
+ public function listManagementWebpropertyUserLinks($accountId, $webPropertyId, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLinks($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates permissions for an existing user on the given web property.
+ * (webpropertyUserLinks.update)
+ *
+ * @param string $accountId Account ID to update the account-user link for.
+ * @param string $webPropertyId Web property ID to update the account-user link for.
+ * @param string $linkId Link ID to update the account-user link for.
+ * @param Google_EntityUserLink $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_EntityUserLink
+ */
+ public function update($accountId, $webPropertyId, $linkId, Google_EntityUserLink $postBody, $optParams = array()) {
+ $params = array('accountId' => $accountId, 'webPropertyId' => $webPropertyId, 'linkId' => $linkId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_EntityUserLink($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "metadata" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $metadata = $analyticsService->metadata;
+ *
+ */
+ class Google_MetadataServiceResource extends Google_ServiceResource {
+
+ }
+
+ /**
+ * The "columns" collection of methods.
+ * Typical usage is:
+ *
+ * $analyticsService = new Google_AnalyticsService(...);
+ * $columns = $analyticsService->columns;
+ *
+ */
+ class Google_MetadataColumnsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Lists all columns for a report type (columns.list)
+ *
+ * @param string $reportType Report type. Allowed Values: 'ga'. Where 'ga' corresponds to the Core Reporting API
+ * @param array $optParams Optional parameters.
+ * @return Google_Columns
+ */
+ public function listMetadataColumns($reportType, $optParams = array()) {
+ $params = array('reportType' => $reportType);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Columns($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Analytics (v3).
+ *
+ *
+ * View and manage your Google Analytics data
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_AnalyticsService extends Google_Service {
+ public $data_ga;
+ public $data_mcf;
+ public $data_realtime;
+ public $management_accountUserLinks;
+ public $management_accounts;
+ public $management_customDataSources;
+ public $management_dailyUploads;
+ public $management_experiments;
+ public $management_goals;
+ public $management_profileUserLinks;
+ public $management_profiles;
+ public $management_segments;
+ public $management_uploads;
+ public $management_webproperties;
+ public $management_webpropertyUserLinks;
+ public $metadata_columns;
+ /**
+ * Constructs the internal representation of the Analytics service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'analytics/v3/';
+ $this->version = 'v3';
+ $this->serviceName = 'analytics';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->data_ga = new Google_DataGaServiceResource($this, $this->serviceName, 'ga', json_decode('{"methods": {"get": {"id": "analytics.data.ga.get", "path": "data/ga", "httpMethod": "GET", "parameters": {"dimensions": {"type": "string", "location": "query"}, "end-date": {"type": "string", "required": true, "location": "query"}, "filters": {"type": "string", "location": "query"}, "ids": {"type": "string", "required": true, "location": "query"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "metrics": {"type": "string", "required": true, "location": "query"}, "segment": {"type": "string", "location": "query"}, "sort": {"type": "string", "location": "query"}, "start-date": {"type": "string", "required": true, "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}}, "response": {"$ref": "GaData"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}}}', true));
+ $this->data_mcf = new Google_DataMcfServiceResource($this, $this->serviceName, 'mcf', json_decode('{"methods": {"get": {"id": "analytics.data.mcf.get", "path": "data/mcf", "httpMethod": "GET", "parameters": {"dimensions": {"type": "string", "location": "query"}, "end-date": {"type": "string", "required": true, "location": "query"}, "filters": {"type": "string", "location": "query"}, "ids": {"type": "string", "required": true, "location": "query"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "metrics": {"type": "string", "required": true, "location": "query"}, "sort": {"type": "string", "location": "query"}, "start-date": {"type": "string", "required": true, "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}}, "response": {"$ref": "McfData"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}}}', true));
+ $this->data_realtime = new Google_DataRealtimeServiceResource($this, $this->serviceName, 'realtime', json_decode('{"methods": {"get": {"id": "analytics.data.realtime.get", "path": "data/realtime", "httpMethod": "GET", "parameters": {"dimensions": {"type": "string", "location": "query"}, "filters": {"type": "string", "location": "query"}, "ids": {"type": "string", "required": true, "location": "query"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "metrics": {"type": "string", "required": true, "location": "query"}, "sort": {"type": "string", "location": "query"}}, "response": {"$ref": "RealtimeData"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}}}', true));
+ $this->management_accountUserLinks = new Google_ManagementAccountUserLinksServiceResource($this, $this->serviceName, 'accountUserLinks', json_decode('{"methods": {"delete": {"id": "analytics.management.accountUserLinks.delete", "path": "management/accounts/{accountId}/entityUserLinks/{linkId}", "httpMethod": "DELETE", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "linkId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "insert": {"id": "analytics.management.accountUserLinks.insert", "path": "management/accounts/{accountId}/entityUserLinks", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "EntityUserLink"}, "response": {"$ref": "EntityUserLink"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "list": {"id": "analytics.management.accountUserLinks.list", "path": "management/accounts/{accountId}/entityUserLinks", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}}, "response": {"$ref": "EntityUserLinks"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "update": {"id": "analytics.management.accountUserLinks.update", "path": "management/accounts/{accountId}/entityUserLinks/{linkId}", "httpMethod": "PUT", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "linkId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "EntityUserLink"}, "response": {"$ref": "EntityUserLink"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}}}', true));
+ $this->management_accounts = new Google_ManagementAccountsServiceResource($this, $this->serviceName, 'accounts', json_decode('{"methods": {"list": {"id": "analytics.management.accounts.list", "path": "management/accounts", "httpMethod": "GET", "parameters": {"max-results": {"type": "integer", "format": "int32", "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}}, "response": {"$ref": "Accounts"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}}}', true));
+ $this->management_customDataSources = new Google_ManagementCustomDataSourcesServiceResource($this, $this->serviceName, 'customDataSources', json_decode('{"methods": {"list": {"id": "analytics.management.customDataSources.list", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CustomDataSources"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}}}', true));
+ $this->management_dailyUploads = new Google_ManagementDailyUploadsServiceResource($this, $this->serviceName, 'dailyUploads', json_decode('{"methods": {"delete": {"id": "analytics.management.dailyUploads.delete", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}", "httpMethod": "DELETE", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "customDataSourceId": {"type": "string", "required": true, "location": "path"}, "date": {"type": "string", "required": true, "location": "path"}, "type": {"type": "string", "required": true, "enum": ["cost"], "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "list": {"id": "analytics.management.dailyUploads.list", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "customDataSourceId": {"type": "string", "required": true, "location": "path"}, "end-date": {"type": "string", "required": true, "location": "query"}, "max-results": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "start-date": {"type": "string", "required": true, "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "DailyUploads"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "upload": {"id": "analytics.management.dailyUploads.upload", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}/uploads", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "appendNumber": {"type": "integer", "required": true, "format": "int32", "minimum": "1", "maximum": "20", "location": "query"}, "customDataSourceId": {"type": "string", "required": true, "location": "path"}, "date": {"type": "string", "required": true, "location": "path"}, "reset": {"type": "boolean", "default": "false", "location": "query"}, "type": {"type": "string", "required": true, "enum": ["cost"], "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "DailyUploadAppend"}, "scopes": ["https://www.googleapis.com/auth/analytics"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["application/octet-stream"], "maxSize": "5MB", "protocols": {"simple": {"multipart": true, "path": "/upload/analytics/v3/management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}/uploads"}, "resumable": {"multipart": true, "path": "/resumable/upload/analytics/v3/management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}/uploads"}}}}}}', true));
+ $this->management_experiments = new Google_ManagementExperimentsServiceResource($this, $this->serviceName, 'experiments', json_decode('{"methods": {"delete": {"id": "analytics.management.experiments.delete", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}", "httpMethod": "DELETE", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "experimentId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "get": {"id": "analytics.management.experiments.get", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "experimentId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Experiment"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "insert": {"id": "analytics.management.experiments.insert", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Experiment"}, "response": {"$ref": "Experiment"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "list": {"id": "analytics.management.experiments.list", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "profileId": {"type": "string", "required": true, "location": "path"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Experiments"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "patch": {"id": "analytics.management.experiments.patch", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}", "httpMethod": "PATCH", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "experimentId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Experiment"}, "response": {"$ref": "Experiment"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "update": {"id": "analytics.management.experiments.update", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}", "httpMethod": "PUT", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "experimentId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Experiment"}, "response": {"$ref": "Experiment"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}}}', true));
+ $this->management_goals = new Google_ManagementGoalsServiceResource($this, $this->serviceName, 'goals', json_decode('{"methods": {"get": {"id": "analytics.management.goals.get", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "goalId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Goal"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "insert": {"id": "analytics.management.goals.insert", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Goal"}, "response": {"$ref": "Goal"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "list": {"id": "analytics.management.goals.list", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "profileId": {"type": "string", "required": true, "location": "path"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Goals"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "patch": {"id": "analytics.management.goals.patch", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}", "httpMethod": "PATCH", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "goalId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Goal"}, "response": {"$ref": "Goal"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "update": {"id": "analytics.management.goals.update", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}", "httpMethod": "PUT", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "goalId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Goal"}, "response": {"$ref": "Goal"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}}}', true));
+ $this->management_profileUserLinks = new Google_ManagementProfileUserLinksServiceResource($this, $this->serviceName, 'profileUserLinks', json_decode('{"methods": {"delete": {"id": "analytics.management.profileUserLinks.delete", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks/{linkId}", "httpMethod": "DELETE", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "linkId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "insert": {"id": "analytics.management.profileUserLinks.insert", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "EntityUserLink"}, "response": {"$ref": "EntityUserLink"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "list": {"id": "analytics.management.profileUserLinks.list", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "profileId": {"type": "string", "required": true, "location": "path"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "EntityUserLinks"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "update": {"id": "analytics.management.profileUserLinks.update", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks/{linkId}", "httpMethod": "PUT", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "linkId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "EntityUserLink"}, "response": {"$ref": "EntityUserLink"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}}}', true));
+ $this->management_profiles = new Google_ManagementProfilesServiceResource($this, $this->serviceName, 'profiles', json_decode('{"methods": {"delete": {"id": "analytics.management.profiles.delete", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}", "httpMethod": "DELETE", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "get": {"id": "analytics.management.profiles.get", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Profile"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "insert": {"id": "analytics.management.profiles.insert", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Profile"}, "response": {"$ref": "Profile"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "list": {"id": "analytics.management.profiles.list", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Profiles"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "patch": {"id": "analytics.management.profiles.patch", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}", "httpMethod": "PATCH", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Profile"}, "response": {"$ref": "Profile"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "update": {"id": "analytics.management.profiles.update", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}", "httpMethod": "PUT", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "profileId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Profile"}, "response": {"$ref": "Profile"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}}}', true));
+ $this->management_segments = new Google_ManagementSegmentsServiceResource($this, $this->serviceName, 'segments', json_decode('{"methods": {"list": {"id": "analytics.management.segments.list", "path": "management/segments", "httpMethod": "GET", "parameters": {"max-results": {"type": "integer", "format": "int32", "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}}, "response": {"$ref": "Segments"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}}}', true));
+ $this->management_uploads = new Google_ManagementUploadsServiceResource($this, $this->serviceName, 'uploads', json_decode('{"methods": {"deleteUploadData": {"id": "analytics.management.uploads.deleteUploadData", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/deleteUploadData", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "customDataSourceId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AnalyticsDataimportDeleteUploadDataRequest"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "get": {"id": "analytics.management.uploads.get", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads/{uploadId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "customDataSourceId": {"type": "string", "required": true, "location": "path"}, "uploadId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Upload"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "list": {"id": "analytics.management.uploads.list", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "customDataSourceId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Uploads"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "uploadData": {"id": "analytics.management.uploads.uploadData", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "customDataSourceId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Upload"}, "scopes": ["https://www.googleapis.com/auth/analytics"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["application/octet-stream"], "maxSize": "1GB", "protocols": {"simple": {"multipart": true, "path": "/upload/analytics/v3/management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads"}, "resumable": {"multipart": true, "path": "/resumable/upload/analytics/v3/management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads"}}}}}}', true));
+ $this->management_webproperties = new Google_ManagementWebpropertiesServiceResource($this, $this->serviceName, 'webproperties', json_decode('{"methods": {"get": {"id": "analytics.management.webproperties.get", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Webproperty"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "insert": {"id": "analytics.management.webproperties.insert", "path": "management/accounts/{accountId}/webproperties", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Webproperty"}, "response": {"$ref": "Webproperty"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "list": {"id": "analytics.management.webproperties.list", "path": "management/accounts/{accountId}/webproperties", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}}, "response": {"$ref": "Webproperties"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}, "patch": {"id": "analytics.management.webproperties.patch", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}", "httpMethod": "PATCH", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Webproperty"}, "response": {"$ref": "Webproperty"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}, "update": {"id": "analytics.management.webproperties.update", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}", "httpMethod": "PUT", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Webproperty"}, "response": {"$ref": "Webproperty"}, "scopes": ["https://www.googleapis.com/auth/analytics"]}}}', true));
+ $this->management_webpropertyUserLinks = new Google_ManagementWebpropertyUserLinksServiceResource($this, $this->serviceName, 'webpropertyUserLinks', json_decode('{"methods": {"delete": {"id": "analytics.management.webpropertyUserLinks.delete", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks/{linkId}", "httpMethod": "DELETE", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "linkId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "insert": {"id": "analytics.management.webpropertyUserLinks.insert", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks", "httpMethod": "POST", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "EntityUserLink"}, "response": {"$ref": "EntityUserLink"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "list": {"id": "analytics.management.webpropertyUserLinks.list", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks", "httpMethod": "GET", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "max-results": {"type": "integer", "format": "int32", "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "EntityUserLinks"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}, "update": {"id": "analytics.management.webpropertyUserLinks.update", "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks/{linkId}", "httpMethod": "PUT", "parameters": {"accountId": {"type": "string", "required": true, "location": "path"}, "linkId": {"type": "string", "required": true, "location": "path"}, "webPropertyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "EntityUserLink"}, "response": {"$ref": "EntityUserLink"}, "scopes": ["https://www.googleapis.com/auth/analytics.manage.users"]}}}', true));
+ $this->metadata_columns = new Google_MetadataColumnsServiceResource($this, $this->serviceName, 'columns', json_decode('{"methods": {"list": {"id": "analytics.metadata.columns.list", "path": "metadata/{reportType}/columns", "httpMethod": "GET", "parameters": {"reportType": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Columns"}, "scopes": ["https://www.googleapis.com/auth/analytics", "https://www.googleapis.com/auth/analytics.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Account extends Google_Model {
+ protected $__childLinkType = 'Google_AccountChildLink';
+ protected $__childLinkDataType = '';
+ public $childLink;
+ public $created;
+ public $id;
+ public $kind;
+ public $name;
+ protected $__permissionsType = 'Google_AccountPermissions';
+ protected $__permissionsDataType = '';
+ public $permissions;
+ public $selfLink;
+ public $updated;
+ public function setChildLink(Google_AccountChildLink $childLink) {
+ $this->childLink = $childLink;
+ }
+ public function getChildLink() {
+ return $this->childLink;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPermissions(Google_AccountPermissions $permissions) {
+ $this->permissions = $permissions;
+ }
+ public function getPermissions() {
+ return $this->permissions;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_AccountChildLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_AccountPermissions extends Google_Model {
+ public $effective;
+ public function setEffective(/* array(Google_string) */ $effective) {
+ $this->assertIsArray($effective, 'Google_string', __METHOD__);
+ $this->effective = $effective;
+ }
+ public function getEffective() {
+ return $this->effective;
+ }
+}
+
+class Google_AccountRef extends Google_Model {
+ public $href;
+ public $id;
+ public $kind;
+ public $name;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_Accounts extends Google_Model {
+ protected $__itemsType = 'Google_Account';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public $username;
+ public function setItems(/* array(Google_Account) */ $items) {
+ $this->assertIsArray($items, 'Google_Account', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setUsername( $username) {
+ $this->username = $username;
+ }
+ public function getUsername() {
+ return $this->username;
+ }
+}
+
+class Google_AnalyticsDataimportDeleteUploadDataRequest extends Google_Model {
+ public $customDataImportUids;
+ public function setCustomDataImportUids(/* array(Google_string) */ $customDataImportUids) {
+ $this->assertIsArray($customDataImportUids, 'Google_string', __METHOD__);
+ $this->customDataImportUids = $customDataImportUids;
+ }
+ public function getCustomDataImportUids() {
+ return $this->customDataImportUids;
+ }
+}
+
+class Google_Column extends Google_Model {
+ public $attributes;
+ public $id;
+ public $kind;
+ public function setAttributes( $attributes) {
+ $this->attributes = $attributes;
+ }
+ public function getAttributes() {
+ return $this->attributes;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Columns extends Google_Model {
+ public $attributeNames;
+ public $etag;
+ protected $__itemsType = 'Google_Column';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $totalResults;
+ public function setAttributeNames(/* array(Google_string) */ $attributeNames) {
+ $this->assertIsArray($attributeNames, 'Google_string', __METHOD__);
+ $this->attributeNames = $attributeNames;
+ }
+ public function getAttributeNames() {
+ return $this->attributeNames;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Column) */ $items) {
+ $this->assertIsArray($items, 'Google_Column', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+}
+
+class Google_CustomDataSource extends Google_Model {
+ public $accountId;
+ protected $__childLinkType = 'Google_CustomDataSourceChildLink';
+ protected $__childLinkDataType = '';
+ public $childLink;
+ public $created;
+ public $description;
+ public $id;
+ public $kind;
+ public $name;
+ protected $__parentLinkType = 'Google_CustomDataSourceParentLink';
+ protected $__parentLinkDataType = '';
+ public $parentLink;
+ public $profilesLinked;
+ public $selfLink;
+ public $type;
+ public $updated;
+ public $webPropertyId;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setChildLink(Google_CustomDataSourceChildLink $childLink) {
+ $this->childLink = $childLink;
+ }
+ public function getChildLink() {
+ return $this->childLink;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setParentLink(Google_CustomDataSourceParentLink $parentLink) {
+ $this->parentLink = $parentLink;
+ }
+ public function getParentLink() {
+ return $this->parentLink;
+ }
+ public function setProfilesLinked(/* array(Google_string) */ $profilesLinked) {
+ $this->assertIsArray($profilesLinked, 'Google_string', __METHOD__);
+ $this->profilesLinked = $profilesLinked;
+ }
+ public function getProfilesLinked() {
+ return $this->profilesLinked;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+}
+
+class Google_CustomDataSourceChildLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_CustomDataSourceParentLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_CustomDataSources extends Google_Model {
+ protected $__itemsType = 'Google_CustomDataSource';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public $username;
+ public function setItems(/* array(Google_CustomDataSource) */ $items) {
+ $this->assertIsArray($items, 'Google_CustomDataSource', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setUsername( $username) {
+ $this->username = $username;
+ }
+ public function getUsername() {
+ return $this->username;
+ }
+}
+
+class Google_DailyUpload extends Google_Model {
+ public $accountId;
+ public $appendCount;
+ public $createdTime;
+ public $customDataSourceId;
+ public $date;
+ public $kind;
+ public $modifiedTime;
+ protected $__parentLinkType = 'Google_DailyUploadParentLink';
+ protected $__parentLinkDataType = '';
+ public $parentLink;
+ protected $__recentChangesType = 'Google_DailyUploadRecentChanges';
+ protected $__recentChangesDataType = 'array';
+ public $recentChanges;
+ public $selfLink;
+ public $webPropertyId;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setAppendCount( $appendCount) {
+ $this->appendCount = $appendCount;
+ }
+ public function getAppendCount() {
+ return $this->appendCount;
+ }
+ public function setCreatedTime( $createdTime) {
+ $this->createdTime = $createdTime;
+ }
+ public function getCreatedTime() {
+ return $this->createdTime;
+ }
+ public function setCustomDataSourceId( $customDataSourceId) {
+ $this->customDataSourceId = $customDataSourceId;
+ }
+ public function getCustomDataSourceId() {
+ return $this->customDataSourceId;
+ }
+ public function setDate( $date) {
+ $this->date = $date;
+ }
+ public function getDate() {
+ return $this->date;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setModifiedTime( $modifiedTime) {
+ $this->modifiedTime = $modifiedTime;
+ }
+ public function getModifiedTime() {
+ return $this->modifiedTime;
+ }
+ public function setParentLink(Google_DailyUploadParentLink $parentLink) {
+ $this->parentLink = $parentLink;
+ }
+ public function getParentLink() {
+ return $this->parentLink;
+ }
+ public function setRecentChanges(/* array(Google_DailyUploadRecentChanges) */ $recentChanges) {
+ $this->assertIsArray($recentChanges, 'Google_DailyUploadRecentChanges', __METHOD__);
+ $this->recentChanges = $recentChanges;
+ }
+ public function getRecentChanges() {
+ return $this->recentChanges;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+}
+
+class Google_DailyUploadAppend extends Google_Model {
+ public $accountId;
+ public $appendNumber;
+ public $customDataSourceId;
+ public $date;
+ public $kind;
+ public $nextAppendLink;
+ public $webPropertyId;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setAppendNumber( $appendNumber) {
+ $this->appendNumber = $appendNumber;
+ }
+ public function getAppendNumber() {
+ return $this->appendNumber;
+ }
+ public function setCustomDataSourceId( $customDataSourceId) {
+ $this->customDataSourceId = $customDataSourceId;
+ }
+ public function getCustomDataSourceId() {
+ return $this->customDataSourceId;
+ }
+ public function setDate( $date) {
+ $this->date = $date;
+ }
+ public function getDate() {
+ return $this->date;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextAppendLink( $nextAppendLink) {
+ $this->nextAppendLink = $nextAppendLink;
+ }
+ public function getNextAppendLink() {
+ return $this->nextAppendLink;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+}
+
+class Google_DailyUploadParentLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_DailyUploadRecentChanges extends Google_Model {
+ public $change;
+ public $time;
+ public function setChange( $change) {
+ $this->change = $change;
+ }
+ public function getChange() {
+ return $this->change;
+ }
+ public function setTime( $time) {
+ $this->time = $time;
+ }
+ public function getTime() {
+ return $this->time;
+ }
+}
+
+class Google_DailyUploads extends Google_Model {
+ protected $__itemsType = 'Google_DailyUpload';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public $username;
+ public function setItems(/* array(Google_DailyUpload) */ $items) {
+ $this->assertIsArray($items, 'Google_DailyUpload', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setUsername( $username) {
+ $this->username = $username;
+ }
+ public function getUsername() {
+ return $this->username;
+ }
+}
+
+class Google_EntityUserLink extends Google_Model {
+ protected $__entityType = 'Google_EntityUserLinkEntity';
+ protected $__entityDataType = '';
+ public $entity;
+ public $id;
+ public $kind;
+ protected $__permissionsType = 'Google_EntityUserLinkPermissions';
+ protected $__permissionsDataType = '';
+ public $permissions;
+ public $selfLink;
+ protected $__userRefType = 'Google_UserRef';
+ protected $__userRefDataType = '';
+ public $userRef;
+ public function setEntity(Google_EntityUserLinkEntity $entity) {
+ $this->entity = $entity;
+ }
+ public function getEntity() {
+ return $this->entity;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPermissions(Google_EntityUserLinkPermissions $permissions) {
+ $this->permissions = $permissions;
+ }
+ public function getPermissions() {
+ return $this->permissions;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUserRef(Google_UserRef $userRef) {
+ $this->userRef = $userRef;
+ }
+ public function getUserRef() {
+ return $this->userRef;
+ }
+}
+
+class Google_EntityUserLinkEntity extends Google_Model {
+ protected $__accountRefType = 'Google_AccountRef';
+ protected $__accountRefDataType = '';
+ public $accountRef;
+ protected $__profileRefType = 'Google_ProfileRef';
+ protected $__profileRefDataType = '';
+ public $profileRef;
+ protected $__webPropertyRefType = 'Google_WebPropertyRef';
+ protected $__webPropertyRefDataType = '';
+ public $webPropertyRef;
+ public function setAccountRef(Google_AccountRef $accountRef) {
+ $this->accountRef = $accountRef;
+ }
+ public function getAccountRef() {
+ return $this->accountRef;
+ }
+ public function setProfileRef(Google_ProfileRef $profileRef) {
+ $this->profileRef = $profileRef;
+ }
+ public function getProfileRef() {
+ return $this->profileRef;
+ }
+ public function setWebPropertyRef(Google_WebPropertyRef $webPropertyRef) {
+ $this->webPropertyRef = $webPropertyRef;
+ }
+ public function getWebPropertyRef() {
+ return $this->webPropertyRef;
+ }
+}
+
+class Google_EntityUserLinkPermissions extends Google_Model {
+ public $effective;
+ public $local;
+ public function setEffective(/* array(Google_string) */ $effective) {
+ $this->assertIsArray($effective, 'Google_string', __METHOD__);
+ $this->effective = $effective;
+ }
+ public function getEffective() {
+ return $this->effective;
+ }
+ public function setLocal(/* array(Google_string) */ $local) {
+ $this->assertIsArray($local, 'Google_string', __METHOD__);
+ $this->local = $local;
+ }
+ public function getLocal() {
+ return $this->local;
+ }
+}
+
+class Google_EntityUserLinks extends Google_Model {
+ protected $__itemsType = 'Google_EntityUserLink';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public function setItems(/* array(Google_EntityUserLink) */ $items) {
+ $this->assertIsArray($items, 'Google_EntityUserLink', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+}
+
+class Google_Experiment extends Google_Model {
+ public $accountId;
+ public $created;
+ public $description;
+ public $editableInGaUi;
+ public $endTime;
+ public $id;
+ public $internalWebPropertyId;
+ public $kind;
+ public $minimumExperimentLengthInDays;
+ public $name;
+ public $objectiveMetric;
+ public $optimizationType;
+ protected $__parentLinkType = 'Google_ExperimentParentLink';
+ protected $__parentLinkDataType = '';
+ public $parentLink;
+ public $profileId;
+ public $reasonExperimentEnded;
+ public $rewriteVariationUrlsAsOriginal;
+ public $selfLink;
+ public $servingFramework;
+ public $snippet;
+ public $startTime;
+ public $status;
+ public $trafficCoverage;
+ public $updated;
+ protected $__variationsType = 'Google_ExperimentVariations';
+ protected $__variationsDataType = 'array';
+ public $variations;
+ public $webPropertyId;
+ public $winnerConfidenceLevel;
+ public $winnerFound;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEditableInGaUi( $editableInGaUi) {
+ $this->editableInGaUi = $editableInGaUi;
+ }
+ public function getEditableInGaUi() {
+ return $this->editableInGaUi;
+ }
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMinimumExperimentLengthInDays( $minimumExperimentLengthInDays) {
+ $this->minimumExperimentLengthInDays = $minimumExperimentLengthInDays;
+ }
+ public function getMinimumExperimentLengthInDays() {
+ return $this->minimumExperimentLengthInDays;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setObjectiveMetric( $objectiveMetric) {
+ $this->objectiveMetric = $objectiveMetric;
+ }
+ public function getObjectiveMetric() {
+ return $this->objectiveMetric;
+ }
+ public function setOptimizationType( $optimizationType) {
+ $this->optimizationType = $optimizationType;
+ }
+ public function getOptimizationType() {
+ return $this->optimizationType;
+ }
+ public function setParentLink(Google_ExperimentParentLink $parentLink) {
+ $this->parentLink = $parentLink;
+ }
+ public function getParentLink() {
+ return $this->parentLink;
+ }
+ public function setProfileId( $profileId) {
+ $this->profileId = $profileId;
+ }
+ public function getProfileId() {
+ return $this->profileId;
+ }
+ public function setReasonExperimentEnded( $reasonExperimentEnded) {
+ $this->reasonExperimentEnded = $reasonExperimentEnded;
+ }
+ public function getReasonExperimentEnded() {
+ return $this->reasonExperimentEnded;
+ }
+ public function setRewriteVariationUrlsAsOriginal( $rewriteVariationUrlsAsOriginal) {
+ $this->rewriteVariationUrlsAsOriginal = $rewriteVariationUrlsAsOriginal;
+ }
+ public function getRewriteVariationUrlsAsOriginal() {
+ return $this->rewriteVariationUrlsAsOriginal;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setServingFramework( $servingFramework) {
+ $this->servingFramework = $servingFramework;
+ }
+ public function getServingFramework() {
+ return $this->servingFramework;
+ }
+ public function setSnippet( $snippet) {
+ $this->snippet = $snippet;
+ }
+ public function getSnippet() {
+ return $this->snippet;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setTrafficCoverage( $trafficCoverage) {
+ $this->trafficCoverage = $trafficCoverage;
+ }
+ public function getTrafficCoverage() {
+ return $this->trafficCoverage;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVariations(/* array(Google_ExperimentVariations) */ $variations) {
+ $this->assertIsArray($variations, 'Google_ExperimentVariations', __METHOD__);
+ $this->variations = $variations;
+ }
+ public function getVariations() {
+ return $this->variations;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+ public function setWinnerConfidenceLevel( $winnerConfidenceLevel) {
+ $this->winnerConfidenceLevel = $winnerConfidenceLevel;
+ }
+ public function getWinnerConfidenceLevel() {
+ return $this->winnerConfidenceLevel;
+ }
+ public function setWinnerFound( $winnerFound) {
+ $this->winnerFound = $winnerFound;
+ }
+ public function getWinnerFound() {
+ return $this->winnerFound;
+ }
+}
+
+class Google_ExperimentParentLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ExperimentVariations extends Google_Model {
+ public $name;
+ public $status;
+ public $url;
+ public $weight;
+ public $won;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWeight( $weight) {
+ $this->weight = $weight;
+ }
+ public function getWeight() {
+ return $this->weight;
+ }
+ public function setWon( $won) {
+ $this->won = $won;
+ }
+ public function getWon() {
+ return $this->won;
+ }
+}
+
+class Google_Experiments extends Google_Model {
+ protected $__itemsType = 'Google_Experiment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public $username;
+ public function setItems(/* array(Google_Experiment) */ $items) {
+ $this->assertIsArray($items, 'Google_Experiment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setUsername( $username) {
+ $this->username = $username;
+ }
+ public function getUsername() {
+ return $this->username;
+ }
+}
+
+class Google_GaData extends Google_Model {
+ protected $__columnHeadersType = 'Google_GaDataColumnHeaders';
+ protected $__columnHeadersDataType = 'array';
+ public $columnHeaders;
+ public $containsSampledData;
+ public $id;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ protected $__profileInfoType = 'Google_GaDataProfileInfo';
+ protected $__profileInfoDataType = '';
+ public $profileInfo;
+ protected $__queryType = 'Google_GaDataQuery';
+ protected $__queryDataType = '';
+ public $query;
+ public $rows;
+ public $selfLink;
+ public $totalResults;
+ public $totalsForAllResults;
+ public function setColumnHeaders(/* array(Google_GaDataColumnHeaders) */ $columnHeaders) {
+ $this->assertIsArray($columnHeaders, 'Google_GaDataColumnHeaders', __METHOD__);
+ $this->columnHeaders = $columnHeaders;
+ }
+ public function getColumnHeaders() {
+ return $this->columnHeaders;
+ }
+ public function setContainsSampledData( $containsSampledData) {
+ $this->containsSampledData = $containsSampledData;
+ }
+ public function getContainsSampledData() {
+ return $this->containsSampledData;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setProfileInfo(Google_GaDataProfileInfo $profileInfo) {
+ $this->profileInfo = $profileInfo;
+ }
+ public function getProfileInfo() {
+ return $this->profileInfo;
+ }
+ public function setQuery(Google_GaDataQuery $query) {
+ $this->query = $query;
+ }
+ public function getQuery() {
+ return $this->query;
+ }
+ public function setRows(/* array(Google_string) */ $rows) {
+ $this->assertIsArray($rows, 'Google_string', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setTotalsForAllResults( $totalsForAllResults) {
+ $this->totalsForAllResults = $totalsForAllResults;
+ }
+ public function getTotalsForAllResults() {
+ return $this->totalsForAllResults;
+ }
+}
+
+class Google_GaDataColumnHeaders extends Google_Model {
+ public $columnType;
+ public $dataType;
+ public $name;
+ public function setColumnType( $columnType) {
+ $this->columnType = $columnType;
+ }
+ public function getColumnType() {
+ return $this->columnType;
+ }
+ public function setDataType( $dataType) {
+ $this->dataType = $dataType;
+ }
+ public function getDataType() {
+ return $this->dataType;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_GaDataProfileInfo extends Google_Model {
+ public $accountId;
+ public $internalWebPropertyId;
+ public $profileId;
+ public $profileName;
+ public $tableId;
+ public $webPropertyId;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setProfileId( $profileId) {
+ $this->profileId = $profileId;
+ }
+ public function getProfileId() {
+ return $this->profileId;
+ }
+ public function setProfileName( $profileName) {
+ $this->profileName = $profileName;
+ }
+ public function getProfileName() {
+ return $this->profileName;
+ }
+ public function setTableId( $tableId) {
+ $this->tableId = $tableId;
+ }
+ public function getTableId() {
+ return $this->tableId;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+}
+
+class Google_GaDataQuery extends Google_Model {
+ public $dimensions;
+ public $end_date;
+ public $filters;
+ public $ids;
+ public $max_results;
+ public $metrics;
+ public $segment;
+ public $sort;
+ public $start_date;
+ public $start_index;
+ public function setDimensions( $dimensions) {
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setEnd_date( $end_date) {
+ $this->end_date = $end_date;
+ }
+ public function getEnd_date() {
+ return $this->end_date;
+ }
+ public function setFilters( $filters) {
+ $this->filters = $filters;
+ }
+ public function getFilters() {
+ return $this->filters;
+ }
+ public function setIds( $ids) {
+ $this->ids = $ids;
+ }
+ public function getIds() {
+ return $this->ids;
+ }
+ public function setMax_results( $max_results) {
+ $this->max_results = $max_results;
+ }
+ public function getMax_results() {
+ return $this->max_results;
+ }
+ public function setMetrics(/* array(Google_string) */ $metrics) {
+ $this->assertIsArray($metrics, 'Google_string', __METHOD__);
+ $this->metrics = $metrics;
+ }
+ public function getMetrics() {
+ return $this->metrics;
+ }
+ public function setSegment( $segment) {
+ $this->segment = $segment;
+ }
+ public function getSegment() {
+ return $this->segment;
+ }
+ public function setSort(/* array(Google_string) */ $sort) {
+ $this->assertIsArray($sort, 'Google_string', __METHOD__);
+ $this->sort = $sort;
+ }
+ public function getSort() {
+ return $this->sort;
+ }
+ public function setStart_date( $start_date) {
+ $this->start_date = $start_date;
+ }
+ public function getStart_date() {
+ return $this->start_date;
+ }
+ public function setStart_index( $start_index) {
+ $this->start_index = $start_index;
+ }
+ public function getStart_index() {
+ return $this->start_index;
+ }
+}
+
+class Google_Goal extends Google_Model {
+ public $accountId;
+ public $active;
+ public $created;
+ protected $__eventDetailsType = 'Google_GoalEventDetails';
+ protected $__eventDetailsDataType = '';
+ public $eventDetails;
+ public $id;
+ public $internalWebPropertyId;
+ public $kind;
+ public $name;
+ protected $__parentLinkType = 'Google_GoalParentLink';
+ protected $__parentLinkDataType = '';
+ public $parentLink;
+ public $profileId;
+ public $selfLink;
+ public $type;
+ public $updated;
+ protected $__urlDestinationDetailsType = 'Google_GoalUrlDestinationDetails';
+ protected $__urlDestinationDetailsDataType = '';
+ public $urlDestinationDetails;
+ public $value;
+ protected $__visitNumPagesDetailsType = 'Google_GoalVisitNumPagesDetails';
+ protected $__visitNumPagesDetailsDataType = '';
+ public $visitNumPagesDetails;
+ protected $__visitTimeOnSiteDetailsType = 'Google_GoalVisitTimeOnSiteDetails';
+ protected $__visitTimeOnSiteDetailsDataType = '';
+ public $visitTimeOnSiteDetails;
+ public $webPropertyId;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setActive( $active) {
+ $this->active = $active;
+ }
+ public function getActive() {
+ return $this->active;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setEventDetails(Google_GoalEventDetails $eventDetails) {
+ $this->eventDetails = $eventDetails;
+ }
+ public function getEventDetails() {
+ return $this->eventDetails;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setParentLink(Google_GoalParentLink $parentLink) {
+ $this->parentLink = $parentLink;
+ }
+ public function getParentLink() {
+ return $this->parentLink;
+ }
+ public function setProfileId( $profileId) {
+ $this->profileId = $profileId;
+ }
+ public function getProfileId() {
+ return $this->profileId;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUrlDestinationDetails(Google_GoalUrlDestinationDetails $urlDestinationDetails) {
+ $this->urlDestinationDetails = $urlDestinationDetails;
+ }
+ public function getUrlDestinationDetails() {
+ return $this->urlDestinationDetails;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+ public function setVisitNumPagesDetails(Google_GoalVisitNumPagesDetails $visitNumPagesDetails) {
+ $this->visitNumPagesDetails = $visitNumPagesDetails;
+ }
+ public function getVisitNumPagesDetails() {
+ return $this->visitNumPagesDetails;
+ }
+ public function setVisitTimeOnSiteDetails(Google_GoalVisitTimeOnSiteDetails $visitTimeOnSiteDetails) {
+ $this->visitTimeOnSiteDetails = $visitTimeOnSiteDetails;
+ }
+ public function getVisitTimeOnSiteDetails() {
+ return $this->visitTimeOnSiteDetails;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+}
+
+class Google_GoalEventDetails extends Google_Model {
+ protected $__eventConditionsType = 'Google_GoalEventDetailsEventConditions';
+ protected $__eventConditionsDataType = 'array';
+ public $eventConditions;
+ public $useEventValue;
+ public function setEventConditions(/* array(Google_GoalEventDetailsEventConditions) */ $eventConditions) {
+ $this->assertIsArray($eventConditions, 'Google_GoalEventDetailsEventConditions', __METHOD__);
+ $this->eventConditions = $eventConditions;
+ }
+ public function getEventConditions() {
+ return $this->eventConditions;
+ }
+ public function setUseEventValue( $useEventValue) {
+ $this->useEventValue = $useEventValue;
+ }
+ public function getUseEventValue() {
+ return $this->useEventValue;
+ }
+}
+
+class Google_GoalEventDetailsEventConditions extends Google_Model {
+ public $comparisonType;
+ public $comparisonValue;
+ public $expression;
+ public $matchType;
+ public $type;
+ public function setComparisonType( $comparisonType) {
+ $this->comparisonType = $comparisonType;
+ }
+ public function getComparisonType() {
+ return $this->comparisonType;
+ }
+ public function setComparisonValue( $comparisonValue) {
+ $this->comparisonValue = $comparisonValue;
+ }
+ public function getComparisonValue() {
+ return $this->comparisonValue;
+ }
+ public function setExpression( $expression) {
+ $this->expression = $expression;
+ }
+ public function getExpression() {
+ return $this->expression;
+ }
+ public function setMatchType( $matchType) {
+ $this->matchType = $matchType;
+ }
+ public function getMatchType() {
+ return $this->matchType;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_GoalParentLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_GoalUrlDestinationDetails extends Google_Model {
+ public $caseSensitive;
+ public $firstStepRequired;
+ public $matchType;
+ protected $__stepsType = 'Google_GoalUrlDestinationDetailsSteps';
+ protected $__stepsDataType = 'array';
+ public $steps;
+ public $url;
+ public function setCaseSensitive( $caseSensitive) {
+ $this->caseSensitive = $caseSensitive;
+ }
+ public function getCaseSensitive() {
+ return $this->caseSensitive;
+ }
+ public function setFirstStepRequired( $firstStepRequired) {
+ $this->firstStepRequired = $firstStepRequired;
+ }
+ public function getFirstStepRequired() {
+ return $this->firstStepRequired;
+ }
+ public function setMatchType( $matchType) {
+ $this->matchType = $matchType;
+ }
+ public function getMatchType() {
+ return $this->matchType;
+ }
+ public function setSteps(/* array(Google_GoalUrlDestinationDetailsSteps) */ $steps) {
+ $this->assertIsArray($steps, 'Google_GoalUrlDestinationDetailsSteps', __METHOD__);
+ $this->steps = $steps;
+ }
+ public function getSteps() {
+ return $this->steps;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_GoalUrlDestinationDetailsSteps extends Google_Model {
+ public $name;
+ public $number;
+ public $url;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNumber( $number) {
+ $this->number = $number;
+ }
+ public function getNumber() {
+ return $this->number;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_GoalVisitNumPagesDetails extends Google_Model {
+ public $comparisonType;
+ public $comparisonValue;
+ public function setComparisonType( $comparisonType) {
+ $this->comparisonType = $comparisonType;
+ }
+ public function getComparisonType() {
+ return $this->comparisonType;
+ }
+ public function setComparisonValue( $comparisonValue) {
+ $this->comparisonValue = $comparisonValue;
+ }
+ public function getComparisonValue() {
+ return $this->comparisonValue;
+ }
+}
+
+class Google_GoalVisitTimeOnSiteDetails extends Google_Model {
+ public $comparisonType;
+ public $comparisonValue;
+ public function setComparisonType( $comparisonType) {
+ $this->comparisonType = $comparisonType;
+ }
+ public function getComparisonType() {
+ return $this->comparisonType;
+ }
+ public function setComparisonValue( $comparisonValue) {
+ $this->comparisonValue = $comparisonValue;
+ }
+ public function getComparisonValue() {
+ return $this->comparisonValue;
+ }
+}
+
+class Google_Goals extends Google_Model {
+ protected $__itemsType = 'Google_Goal';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public $username;
+ public function setItems(/* array(Google_Goal) */ $items) {
+ $this->assertIsArray($items, 'Google_Goal', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setUsername( $username) {
+ $this->username = $username;
+ }
+ public function getUsername() {
+ return $this->username;
+ }
+}
+
+class Google_McfData extends Google_Model {
+ protected $__columnHeadersType = 'Google_McfDataColumnHeaders';
+ protected $__columnHeadersDataType = 'array';
+ public $columnHeaders;
+ public $containsSampledData;
+ public $id;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ protected $__profileInfoType = 'Google_McfDataProfileInfo';
+ protected $__profileInfoDataType = '';
+ public $profileInfo;
+ protected $__queryType = 'Google_McfDataQuery';
+ protected $__queryDataType = '';
+ public $query;
+ protected $__rowsType = 'Google_McfDataRows';
+ protected $__rowsDataType = 'array';
+ public $rows;
+ public $selfLink;
+ public $totalResults;
+ public $totalsForAllResults;
+ public function setColumnHeaders(/* array(Google_McfDataColumnHeaders) */ $columnHeaders) {
+ $this->assertIsArray($columnHeaders, 'Google_McfDataColumnHeaders', __METHOD__);
+ $this->columnHeaders = $columnHeaders;
+ }
+ public function getColumnHeaders() {
+ return $this->columnHeaders;
+ }
+ public function setContainsSampledData( $containsSampledData) {
+ $this->containsSampledData = $containsSampledData;
+ }
+ public function getContainsSampledData() {
+ return $this->containsSampledData;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setProfileInfo(Google_McfDataProfileInfo $profileInfo) {
+ $this->profileInfo = $profileInfo;
+ }
+ public function getProfileInfo() {
+ return $this->profileInfo;
+ }
+ public function setQuery(Google_McfDataQuery $query) {
+ $this->query = $query;
+ }
+ public function getQuery() {
+ return $this->query;
+ }
+ public function setRows(/* array(Google_McfDataRows) */ $rows) {
+ $this->assertIsArray($rows, 'Google_McfDataRows', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setTotalsForAllResults( $totalsForAllResults) {
+ $this->totalsForAllResults = $totalsForAllResults;
+ }
+ public function getTotalsForAllResults() {
+ return $this->totalsForAllResults;
+ }
+}
+
+class Google_McfDataColumnHeaders extends Google_Model {
+ public $columnType;
+ public $dataType;
+ public $name;
+ public function setColumnType( $columnType) {
+ $this->columnType = $columnType;
+ }
+ public function getColumnType() {
+ return $this->columnType;
+ }
+ public function setDataType( $dataType) {
+ $this->dataType = $dataType;
+ }
+ public function getDataType() {
+ return $this->dataType;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_McfDataProfileInfo extends Google_Model {
+ public $accountId;
+ public $internalWebPropertyId;
+ public $profileId;
+ public $profileName;
+ public $tableId;
+ public $webPropertyId;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setProfileId( $profileId) {
+ $this->profileId = $profileId;
+ }
+ public function getProfileId() {
+ return $this->profileId;
+ }
+ public function setProfileName( $profileName) {
+ $this->profileName = $profileName;
+ }
+ public function getProfileName() {
+ return $this->profileName;
+ }
+ public function setTableId( $tableId) {
+ $this->tableId = $tableId;
+ }
+ public function getTableId() {
+ return $this->tableId;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+}
+
+class Google_McfDataQuery extends Google_Model {
+ public $dimensions;
+ public $end_date;
+ public $filters;
+ public $ids;
+ public $max_results;
+ public $metrics;
+ public $segment;
+ public $sort;
+ public $start_date;
+ public $start_index;
+ public function setDimensions( $dimensions) {
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setEnd_date( $end_date) {
+ $this->end_date = $end_date;
+ }
+ public function getEnd_date() {
+ return $this->end_date;
+ }
+ public function setFilters( $filters) {
+ $this->filters = $filters;
+ }
+ public function getFilters() {
+ return $this->filters;
+ }
+ public function setIds( $ids) {
+ $this->ids = $ids;
+ }
+ public function getIds() {
+ return $this->ids;
+ }
+ public function setMax_results( $max_results) {
+ $this->max_results = $max_results;
+ }
+ public function getMax_results() {
+ return $this->max_results;
+ }
+ public function setMetrics(/* array(Google_string) */ $metrics) {
+ $this->assertIsArray($metrics, 'Google_string', __METHOD__);
+ $this->metrics = $metrics;
+ }
+ public function getMetrics() {
+ return $this->metrics;
+ }
+ public function setSegment( $segment) {
+ $this->segment = $segment;
+ }
+ public function getSegment() {
+ return $this->segment;
+ }
+ public function setSort(/* array(Google_string) */ $sort) {
+ $this->assertIsArray($sort, 'Google_string', __METHOD__);
+ $this->sort = $sort;
+ }
+ public function getSort() {
+ return $this->sort;
+ }
+ public function setStart_date( $start_date) {
+ $this->start_date = $start_date;
+ }
+ public function getStart_date() {
+ return $this->start_date;
+ }
+ public function setStart_index( $start_index) {
+ $this->start_index = $start_index;
+ }
+ public function getStart_index() {
+ return $this->start_index;
+ }
+}
+
+class Google_McfDataRows extends Google_Model {
+ protected $__conversionPathValueType = 'Google_McfDataRowsConversionPathValue';
+ protected $__conversionPathValueDataType = 'array';
+ public $conversionPathValue;
+ public $primitiveValue;
+ public function setConversionPathValue(/* array(Google_McfDataRowsConversionPathValue) */ $conversionPathValue) {
+ $this->assertIsArray($conversionPathValue, 'Google_McfDataRowsConversionPathValue', __METHOD__);
+ $this->conversionPathValue = $conversionPathValue;
+ }
+ public function getConversionPathValue() {
+ return $this->conversionPathValue;
+ }
+ public function setPrimitiveValue( $primitiveValue) {
+ $this->primitiveValue = $primitiveValue;
+ }
+ public function getPrimitiveValue() {
+ return $this->primitiveValue;
+ }
+}
+
+class Google_McfDataRowsConversionPathValue extends Google_Model {
+ public $interactionType;
+ public $nodeValue;
+ public function setInteractionType( $interactionType) {
+ $this->interactionType = $interactionType;
+ }
+ public function getInteractionType() {
+ return $this->interactionType;
+ }
+ public function setNodeValue( $nodeValue) {
+ $this->nodeValue = $nodeValue;
+ }
+ public function getNodeValue() {
+ return $this->nodeValue;
+ }
+}
+
+class Google_Profile extends Google_Model {
+ public $accountId;
+ protected $__childLinkType = 'Google_ProfileChildLink';
+ protected $__childLinkDataType = '';
+ public $childLink;
+ public $created;
+ public $currency;
+ public $defaultPage;
+ public $eCommerceTracking;
+ public $excludeQueryParameters;
+ public $id;
+ public $internalWebPropertyId;
+ public $kind;
+ public $name;
+ protected $__parentLinkType = 'Google_ProfileParentLink';
+ protected $__parentLinkDataType = '';
+ public $parentLink;
+ protected $__permissionsType = 'Google_ProfilePermissions';
+ protected $__permissionsDataType = '';
+ public $permissions;
+ public $selfLink;
+ public $siteSearchCategoryParameters;
+ public $siteSearchQueryParameters;
+ public $timezone;
+ public $type;
+ public $updated;
+ public $webPropertyId;
+ public $websiteUrl;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setChildLink(Google_ProfileChildLink $childLink) {
+ $this->childLink = $childLink;
+ }
+ public function getChildLink() {
+ return $this->childLink;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setCurrency( $currency) {
+ $this->currency = $currency;
+ }
+ public function getCurrency() {
+ return $this->currency;
+ }
+ public function setDefaultPage( $defaultPage) {
+ $this->defaultPage = $defaultPage;
+ }
+ public function getDefaultPage() {
+ return $this->defaultPage;
+ }
+ public function setECommerceTracking( $eCommerceTracking) {
+ $this->eCommerceTracking = $eCommerceTracking;
+ }
+ public function getECommerceTracking() {
+ return $this->eCommerceTracking;
+ }
+ public function setExcludeQueryParameters( $excludeQueryParameters) {
+ $this->excludeQueryParameters = $excludeQueryParameters;
+ }
+ public function getExcludeQueryParameters() {
+ return $this->excludeQueryParameters;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setParentLink(Google_ProfileParentLink $parentLink) {
+ $this->parentLink = $parentLink;
+ }
+ public function getParentLink() {
+ return $this->parentLink;
+ }
+ public function setPermissions(Google_ProfilePermissions $permissions) {
+ $this->permissions = $permissions;
+ }
+ public function getPermissions() {
+ return $this->permissions;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSiteSearchCategoryParameters( $siteSearchCategoryParameters) {
+ $this->siteSearchCategoryParameters = $siteSearchCategoryParameters;
+ }
+ public function getSiteSearchCategoryParameters() {
+ return $this->siteSearchCategoryParameters;
+ }
+ public function setSiteSearchQueryParameters( $siteSearchQueryParameters) {
+ $this->siteSearchQueryParameters = $siteSearchQueryParameters;
+ }
+ public function getSiteSearchQueryParameters() {
+ return $this->siteSearchQueryParameters;
+ }
+ public function setTimezone( $timezone) {
+ $this->timezone = $timezone;
+ }
+ public function getTimezone() {
+ return $this->timezone;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+ public function setWebsiteUrl( $websiteUrl) {
+ $this->websiteUrl = $websiteUrl;
+ }
+ public function getWebsiteUrl() {
+ return $this->websiteUrl;
+ }
+}
+
+class Google_ProfileChildLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ProfileParentLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ProfilePermissions extends Google_Model {
+ public $effective;
+ public function setEffective(/* array(Google_string) */ $effective) {
+ $this->assertIsArray($effective, 'Google_string', __METHOD__);
+ $this->effective = $effective;
+ }
+ public function getEffective() {
+ return $this->effective;
+ }
+}
+
+class Google_ProfileRef extends Google_Model {
+ public $accountId;
+ public $href;
+ public $id;
+ public $internalWebPropertyId;
+ public $kind;
+ public $name;
+ public $webPropertyId;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+}
+
+class Google_Profiles extends Google_Model {
+ protected $__itemsType = 'Google_Profile';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public $username;
+ public function setItems(/* array(Google_Profile) */ $items) {
+ $this->assertIsArray($items, 'Google_Profile', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setUsername( $username) {
+ $this->username = $username;
+ }
+ public function getUsername() {
+ return $this->username;
+ }
+}
+
+class Google_RealtimeData extends Google_Model {
+ protected $__columnHeadersType = 'Google_RealtimeDataColumnHeaders';
+ protected $__columnHeadersDataType = 'array';
+ public $columnHeaders;
+ public $id;
+ public $kind;
+ protected $__profileInfoType = 'Google_RealtimeDataProfileInfo';
+ protected $__profileInfoDataType = '';
+ public $profileInfo;
+ protected $__queryType = 'Google_RealtimeDataQuery';
+ protected $__queryDataType = '';
+ public $query;
+ public $rows;
+ public $selfLink;
+ public $totalResults;
+ public $totalsForAllResults;
+ public function setColumnHeaders(/* array(Google_RealtimeDataColumnHeaders) */ $columnHeaders) {
+ $this->assertIsArray($columnHeaders, 'Google_RealtimeDataColumnHeaders', __METHOD__);
+ $this->columnHeaders = $columnHeaders;
+ }
+ public function getColumnHeaders() {
+ return $this->columnHeaders;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setProfileInfo(Google_RealtimeDataProfileInfo $profileInfo) {
+ $this->profileInfo = $profileInfo;
+ }
+ public function getProfileInfo() {
+ return $this->profileInfo;
+ }
+ public function setQuery(Google_RealtimeDataQuery $query) {
+ $this->query = $query;
+ }
+ public function getQuery() {
+ return $this->query;
+ }
+ public function setRows(/* array(Google_string) */ $rows) {
+ $this->assertIsArray($rows, 'Google_string', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setTotalsForAllResults( $totalsForAllResults) {
+ $this->totalsForAllResults = $totalsForAllResults;
+ }
+ public function getTotalsForAllResults() {
+ return $this->totalsForAllResults;
+ }
+}
+
+class Google_RealtimeDataColumnHeaders extends Google_Model {
+ public $columnType;
+ public $dataType;
+ public $name;
+ public function setColumnType( $columnType) {
+ $this->columnType = $columnType;
+ }
+ public function getColumnType() {
+ return $this->columnType;
+ }
+ public function setDataType( $dataType) {
+ $this->dataType = $dataType;
+ }
+ public function getDataType() {
+ return $this->dataType;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_RealtimeDataProfileInfo extends Google_Model {
+ public $accountId;
+ public $internalWebPropertyId;
+ public $profileId;
+ public $profileName;
+ public $tableId;
+ public $webPropertyId;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setProfileId( $profileId) {
+ $this->profileId = $profileId;
+ }
+ public function getProfileId() {
+ return $this->profileId;
+ }
+ public function setProfileName( $profileName) {
+ $this->profileName = $profileName;
+ }
+ public function getProfileName() {
+ return $this->profileName;
+ }
+ public function setTableId( $tableId) {
+ $this->tableId = $tableId;
+ }
+ public function getTableId() {
+ return $this->tableId;
+ }
+ public function setWebPropertyId( $webPropertyId) {
+ $this->webPropertyId = $webPropertyId;
+ }
+ public function getWebPropertyId() {
+ return $this->webPropertyId;
+ }
+}
+
+class Google_RealtimeDataQuery extends Google_Model {
+ public $dimensions;
+ public $filters;
+ public $ids;
+ public $max_results;
+ public $metrics;
+ public $sort;
+ public function setDimensions( $dimensions) {
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setFilters( $filters) {
+ $this->filters = $filters;
+ }
+ public function getFilters() {
+ return $this->filters;
+ }
+ public function setIds( $ids) {
+ $this->ids = $ids;
+ }
+ public function getIds() {
+ return $this->ids;
+ }
+ public function setMax_results( $max_results) {
+ $this->max_results = $max_results;
+ }
+ public function getMax_results() {
+ return $this->max_results;
+ }
+ public function setMetrics(/* array(Google_string) */ $metrics) {
+ $this->assertIsArray($metrics, 'Google_string', __METHOD__);
+ $this->metrics = $metrics;
+ }
+ public function getMetrics() {
+ return $this->metrics;
+ }
+ public function setSort(/* array(Google_string) */ $sort) {
+ $this->assertIsArray($sort, 'Google_string', __METHOD__);
+ $this->sort = $sort;
+ }
+ public function getSort() {
+ return $this->sort;
+ }
+}
+
+class Google_Segment extends Google_Model {
+ public $created;
+ public $definition;
+ public $id;
+ public $kind;
+ public $name;
+ public $segmentId;
+ public $selfLink;
+ public $updated;
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setDefinition( $definition) {
+ $this->definition = $definition;
+ }
+ public function getDefinition() {
+ return $this->definition;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setSegmentId( $segmentId) {
+ $this->segmentId = $segmentId;
+ }
+ public function getSegmentId() {
+ return $this->segmentId;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_Segments extends Google_Model {
+ protected $__itemsType = 'Google_Segment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public $username;
+ public function setItems(/* array(Google_Segment) */ $items) {
+ $this->assertIsArray($items, 'Google_Segment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setUsername( $username) {
+ $this->username = $username;
+ }
+ public function getUsername() {
+ return $this->username;
+ }
+}
+
+class Google_Upload extends Google_Model {
+ public $accountId;
+ public $customDataSourceId;
+ public $errors;
+ public $id;
+ public $kind;
+ public $status;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setCustomDataSourceId( $customDataSourceId) {
+ $this->customDataSourceId = $customDataSourceId;
+ }
+ public function getCustomDataSourceId() {
+ return $this->customDataSourceId;
+ }
+ public function setErrors(/* array(Google_string) */ $errors) {
+ $this->assertIsArray($errors, 'Google_string', __METHOD__);
+ $this->errors = $errors;
+ }
+ public function getErrors() {
+ return $this->errors;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_Uploads extends Google_Model {
+ protected $__itemsType = 'Google_Upload';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public function setItems(/* array(Google_Upload) */ $items) {
+ $this->assertIsArray($items, 'Google_Upload', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+}
+
+class Google_UserRef extends Google_Model {
+ public $email;
+ public $id;
+ public $kind;
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_WebPropertyRef extends Google_Model {
+ public $accountId;
+ public $href;
+ public $id;
+ public $internalWebPropertyId;
+ public $kind;
+ public $name;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_Webproperties extends Google_Model {
+ protected $__itemsType = 'Google_Webproperty';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ public $startIndex;
+ public $totalResults;
+ public $username;
+ public function setItems(/* array(Google_Webproperty) */ $items) {
+ $this->assertIsArray($items, 'Google_Webproperty', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+ public function setUsername( $username) {
+ $this->username = $username;
+ }
+ public function getUsername() {
+ return $this->username;
+ }
+}
+
+class Google_Webproperty extends Google_Model {
+ public $accountId;
+ protected $__childLinkType = 'Google_WebpropertyChildLink';
+ protected $__childLinkDataType = '';
+ public $childLink;
+ public $created;
+ public $defaultProfileId;
+ public $id;
+ public $industryVertical;
+ public $internalWebPropertyId;
+ public $kind;
+ public $level;
+ public $name;
+ protected $__parentLinkType = 'Google_WebpropertyParentLink';
+ protected $__parentLinkDataType = '';
+ public $parentLink;
+ protected $__permissionsType = 'Google_WebpropertyPermissions';
+ protected $__permissionsDataType = '';
+ public $permissions;
+ public $profileCount;
+ public $selfLink;
+ public $updated;
+ public $websiteUrl;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setChildLink(Google_WebpropertyChildLink $childLink) {
+ $this->childLink = $childLink;
+ }
+ public function getChildLink() {
+ return $this->childLink;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setDefaultProfileId( $defaultProfileId) {
+ $this->defaultProfileId = $defaultProfileId;
+ }
+ public function getDefaultProfileId() {
+ return $this->defaultProfileId;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIndustryVertical( $industryVertical) {
+ $this->industryVertical = $industryVertical;
+ }
+ public function getIndustryVertical() {
+ return $this->industryVertical;
+ }
+ public function setInternalWebPropertyId( $internalWebPropertyId) {
+ $this->internalWebPropertyId = $internalWebPropertyId;
+ }
+ public function getInternalWebPropertyId() {
+ return $this->internalWebPropertyId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLevel( $level) {
+ $this->level = $level;
+ }
+ public function getLevel() {
+ return $this->level;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setParentLink(Google_WebpropertyParentLink $parentLink) {
+ $this->parentLink = $parentLink;
+ }
+ public function getParentLink() {
+ return $this->parentLink;
+ }
+ public function setPermissions(Google_WebpropertyPermissions $permissions) {
+ $this->permissions = $permissions;
+ }
+ public function getPermissions() {
+ return $this->permissions;
+ }
+ public function setProfileCount( $profileCount) {
+ $this->profileCount = $profileCount;
+ }
+ public function getProfileCount() {
+ return $this->profileCount;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setWebsiteUrl( $websiteUrl) {
+ $this->websiteUrl = $websiteUrl;
+ }
+ public function getWebsiteUrl() {
+ return $this->websiteUrl;
+ }
+}
+
+class Google_WebpropertyChildLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_WebpropertyParentLink extends Google_Model {
+ public $href;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_WebpropertyPermissions extends Google_Model {
+ public $effective;
+ public function setEffective(/* array(Google_string) */ $effective) {
+ $this->assertIsArray($effective, 'Google_string', __METHOD__);
+ $this->effective = $effective;
+ }
+ public function getEffective() {
+ return $this->effective;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AndroidpublisherService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AndroidpublisherService.php
new file mode 100644
index 0000000..b11af59
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AndroidpublisherService.php
@@ -0,0 +1,198 @@
+
+ * $androidpublisherService = new Google_AndroidPublisherService(...);
+ * $inapppurchases = $androidpublisherService->inapppurchases;
+ *
+ */
+ class Google_InapppurchasesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Checks the purchase and consumption status of an inapp item. (inapppurchases.get)
+ *
+ * @param string $packageName The package name of the application the inapp product was sold in (for example, 'com.some.thing').
+ * @param string $productId The inapp product SKU (for example, 'com.some.thing.inapp1').
+ * @param string $token The token provided to the user's device when the inapp product was purchased.
+ * @param array $optParams Optional parameters.
+ * @return Google_InappPurchase
+ */
+ public function get($packageName, $productId, $token, $optParams = array()) {
+ $params = array('packageName' => $packageName, 'productId' => $productId, 'token' => $token);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_InappPurchase($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "purchases" collection of methods.
+ * Typical usage is:
+ *
+ * $androidpublisherService = new Google_AndroidPublisherService(...);
+ * $purchases = $androidpublisherService->purchases;
+ *
+ */
+ class Google_PurchasesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Cancels a user's subscription purchase. The subscription remains valid until its expiration time.
+ * (purchases.cancel)
+ *
+ * @param string $packageName The package name of the application for which this subscription was purchased (for example, 'com.some.thing').
+ * @param string $subscriptionId The purchased subscription ID (for example, 'monthly001').
+ * @param string $token The token provided to the user's device when the subscription was purchased.
+ * @param array $optParams Optional parameters.
+ */
+ public function cancel($packageName, $subscriptionId, $token, $optParams = array()) {
+ $params = array('packageName' => $packageName, 'subscriptionId' => $subscriptionId, 'token' => $token);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('cancel', array($params));
+ return $data;
+ }
+ /**
+ * Checks whether a user's subscription purchase is valid and returns its expiry time.
+ * (purchases.get)
+ *
+ * @param string $packageName The package name of the application for which this subscription was purchased (for example, 'com.some.thing').
+ * @param string $subscriptionId The purchased subscription ID (for example, 'monthly001').
+ * @param string $token The token provided to the user's device when the subscription was purchased.
+ * @param array $optParams Optional parameters.
+ * @return Google_SubscriptionPurchase
+ */
+ public function get($packageName, $subscriptionId, $token, $optParams = array()) {
+ $params = array('packageName' => $packageName, 'subscriptionId' => $subscriptionId, 'token' => $token);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_SubscriptionPurchase($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_AndroidPublisher (v1.1).
+ *
+ *
+ * Lets Android application developers access their Google Play accounts.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_AndroidPublisherService extends Google_Service {
+ public $inapppurchases;
+ public $purchases;
+ /**
+ * Constructs the internal representation of the AndroidPublisher service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'androidpublisher/v1.1/applications/';
+ $this->version = 'v1.1';
+ $this->serviceName = 'androidpublisher';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->inapppurchases = new Google_InapppurchasesServiceResource($this, $this->serviceName, 'inapppurchases', json_decode('{"methods": {"get": {"id": "androidpublisher.inapppurchases.get", "path": "{packageName}/inapp/{productId}/purchases/{token}", "httpMethod": "GET", "parameters": {"packageName": {"type": "string", "required": true, "location": "path"}, "productId": {"type": "string", "required": true, "location": "path"}, "token": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "InappPurchase"}}}}', true));
+ $this->purchases = new Google_PurchasesServiceResource($this, $this->serviceName, 'purchases', json_decode('{"methods": {"cancel": {"id": "androidpublisher.purchases.cancel", "path": "{packageName}/subscriptions/{subscriptionId}/purchases/{token}/cancel", "httpMethod": "POST", "parameters": {"packageName": {"type": "string", "required": true, "location": "path"}, "subscriptionId": {"type": "string", "required": true, "location": "path"}, "token": {"type": "string", "required": true, "location": "path"}}}, "get": {"id": "androidpublisher.purchases.get", "path": "{packageName}/subscriptions/{subscriptionId}/purchases/{token}", "httpMethod": "GET", "parameters": {"packageName": {"type": "string", "required": true, "location": "path"}, "subscriptionId": {"type": "string", "required": true, "location": "path"}, "token": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "SubscriptionPurchase"}}}}', true));
+
+ }
+}
+
+
+
+class Google_InappPurchase extends Google_Model {
+ public $consumptionState;
+ public $developerPayload;
+ public $kind;
+ public $purchaseState;
+ public $purchaseTime;
+ public function setConsumptionState( $consumptionState) {
+ $this->consumptionState = $consumptionState;
+ }
+ public function getConsumptionState() {
+ return $this->consumptionState;
+ }
+ public function setDeveloperPayload( $developerPayload) {
+ $this->developerPayload = $developerPayload;
+ }
+ public function getDeveloperPayload() {
+ return $this->developerPayload;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPurchaseState( $purchaseState) {
+ $this->purchaseState = $purchaseState;
+ }
+ public function getPurchaseState() {
+ return $this->purchaseState;
+ }
+ public function setPurchaseTime( $purchaseTime) {
+ $this->purchaseTime = $purchaseTime;
+ }
+ public function getPurchaseTime() {
+ return $this->purchaseTime;
+ }
+}
+
+class Google_SubscriptionPurchase extends Google_Model {
+ public $autoRenewing;
+ public $initiationTimestampMsec;
+ public $kind;
+ public $validUntilTimestampMsec;
+ public function setAutoRenewing( $autoRenewing) {
+ $this->autoRenewing = $autoRenewing;
+ }
+ public function getAutoRenewing() {
+ return $this->autoRenewing;
+ }
+ public function setInitiationTimestampMsec( $initiationTimestampMsec) {
+ $this->initiationTimestampMsec = $initiationTimestampMsec;
+ }
+ public function getInitiationTimestampMsec() {
+ return $this->initiationTimestampMsec;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setValidUntilTimestampMsec( $validUntilTimestampMsec) {
+ $this->validUntilTimestampMsec = $validUntilTimestampMsec;
+ }
+ public function getValidUntilTimestampMsec() {
+ return $this->validUntilTimestampMsec;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AppstateService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AppstateService.php
new file mode 100644
index 0000000..6ccfa82
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AppstateService.php
@@ -0,0 +1,253 @@
+
+ * $appstateService = new Google_AppstateService(...);
+ * $states = $appstateService->states;
+ *
+ */
+ class Google_StatesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Clears (sets to empty) the data for the passed key if and only if the passed version matches the
+ * currently stored version. This method results in a conflict error on version mismatch.
+ * (states.clear)
+ *
+ * @param int $stateKey The key for the data to be retrieved.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string currentDataVersion The version of the data to be cleared. Version strings are returned by the server.
+ * @return Google_WriteResult
+ */
+ public function clear($stateKey, $optParams = array()) {
+ $params = array('stateKey' => $stateKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('clear', array($params));
+ if ($this->useObjects()) {
+ return new Google_WriteResult($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes a key and the data associated with it. The key is removed and no longer counts against
+ * the key quota. Note that since this method is not safe in the face of concurrent modifications,
+ * it should only be used for development and testing purposes. Invoking this method in shipping
+ * code can result in data loss and data corruption. (states.delete)
+ *
+ * @param int $stateKey The key for the data to be retrieved.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($stateKey, $optParams = array()) {
+ $params = array('stateKey' => $stateKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves the data corresponding to the passed key. (states.get)
+ *
+ * @param int $stateKey The key for the data to be retrieved.
+ * @param array $optParams Optional parameters.
+ * @return Google_GetResponse
+ */
+ public function get($stateKey, $optParams = array()) {
+ $params = array('stateKey' => $stateKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_GetResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all the states keys, and optionally the state data. (states.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeData Whether to include the full data in addition to the version number
+ * @return Google_ListResponse
+ */
+ public function listStates($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update the data associated with the input key if and only if the passed version matches the
+ * currently stored version. This method is safe in the face of concurrent writes. Maximum per-key
+ * size is 128KB. (states.update)
+ *
+ * @param int $stateKey The key for the data to be retrieved.
+ * @param Google_UpdateRequest $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string currentStateVersion The version of the app state your application is attempting to update. If this does not match the current version, this method will return a conflict error. If there is no data stored on the server for this key, the update will succeed irrespective of the value of this parameter.
+ * @return Google_WriteResult
+ */
+ public function update($stateKey, Google_UpdateRequest $postBody, $optParams = array()) {
+ $params = array('stateKey' => $stateKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_WriteResult($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Appstate (v1).
+ *
+ *
+ * The Google App State API.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_AppstateService extends Google_Service {
+ public $states;
+ /**
+ * Constructs the internal representation of the Appstate service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'appstate/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'appstate';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->states = new Google_StatesServiceResource($this, $this->serviceName, 'states', json_decode('{"methods": {"clear": {"id": "appstate.states.clear", "path": "states/{stateKey}/clear", "httpMethod": "POST", "parameters": {"currentDataVersion": {"type": "string", "location": "query"}, "stateKey": {"type": "integer", "required": true, "format": "int32", "minimum": "0", "maximum": "3", "location": "path"}}, "response": {"$ref": "WriteResult"}, "scopes": ["https://www.googleapis.com/auth/appstate"]}, "delete": {"id": "appstate.states.delete", "path": "states/{stateKey}", "httpMethod": "DELETE", "parameters": {"stateKey": {"type": "integer", "required": true, "format": "int32", "minimum": "0", "maximum": "3", "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/appstate"]}, "get": {"id": "appstate.states.get", "path": "states/{stateKey}", "httpMethod": "GET", "parameters": {"stateKey": {"type": "integer", "required": true, "format": "int32", "minimum": "0", "maximum": "3", "location": "path"}}, "response": {"$ref": "GetResponse"}, "scopes": ["https://www.googleapis.com/auth/appstate"]}, "list": {"id": "appstate.states.list", "path": "states", "httpMethod": "GET", "parameters": {"includeData": {"type": "boolean", "default": "false", "location": "query"}}, "response": {"$ref": "ListResponse"}, "scopes": ["https://www.googleapis.com/auth/appstate"]}, "update": {"id": "appstate.states.update", "path": "states/{stateKey}", "httpMethod": "PUT", "parameters": {"currentStateVersion": {"type": "string", "location": "query"}, "stateKey": {"type": "integer", "required": true, "format": "int32", "minimum": "0", "maximum": "3", "location": "path"}}, "request": {"$ref": "UpdateRequest"}, "response": {"$ref": "WriteResult"}, "scopes": ["https://www.googleapis.com/auth/appstate"]}}}', true));
+
+ }
+}
+
+
+
+class Google_GetResponse extends Google_Model {
+ public $currentStateVersion;
+ public $data;
+ public $kind;
+ public $stateKey;
+ public function setCurrentStateVersion( $currentStateVersion) {
+ $this->currentStateVersion = $currentStateVersion;
+ }
+ public function getCurrentStateVersion() {
+ return $this->currentStateVersion;
+ }
+ public function setData( $data) {
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStateKey( $stateKey) {
+ $this->stateKey = $stateKey;
+ }
+ public function getStateKey() {
+ return $this->stateKey;
+ }
+}
+
+class Google_ListResponse extends Google_Model {
+ protected $__itemsType = 'Google_GetResponse';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $maximumKeyCount;
+ public function setItems(/* array(Google_GetResponse) */ $items) {
+ $this->assertIsArray($items, 'Google_GetResponse', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaximumKeyCount( $maximumKeyCount) {
+ $this->maximumKeyCount = $maximumKeyCount;
+ }
+ public function getMaximumKeyCount() {
+ return $this->maximumKeyCount;
+ }
+}
+
+class Google_UpdateRequest extends Google_Model {
+ public $data;
+ public $kind;
+ public function setData( $data) {
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_WriteResult extends Google_Model {
+ public $currentStateVersion;
+ public $kind;
+ public $stateKey;
+ public function setCurrentStateVersion( $currentStateVersion) {
+ $this->currentStateVersion = $currentStateVersion;
+ }
+ public function getCurrentStateVersion() {
+ return $this->currentStateVersion;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStateKey( $stateKey) {
+ $this->stateKey = $stateKey;
+ }
+ public function getStateKey() {
+ return $this->stateKey;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AuditService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AuditService.php
new file mode 100644
index 0000000..b9c90ae
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AuditService.php
@@ -0,0 +1,274 @@
+
+ * $auditService = new Google_AuditService(...);
+ * $activities = $auditService->activities;
+ *
+ */
+ class Google_ActivitiesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a list of activities for a specific customer and application. (activities.list)
+ *
+ * @param string $customerId Represents the customer who is the owner of target object on which action was performed.
+ * @param string $applicationId Application ID of the application on which the event was performed.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string actorApplicationId Application ID of the application which interacted on behalf of the user while performing the event.
+ * @opt_param string actorEmail Email address of the user who performed the action.
+ * @opt_param string actorIpAddress IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.
+ * @opt_param string caller Type of the caller.
+ * @opt_param string continuationToken Next page URL.
+ * @opt_param string endTime Return events which occured at or before this time.
+ * @opt_param string eventName Name of the event being queried.
+ * @opt_param int maxResults Number of activity records to be shown in each page.
+ * @opt_param string startTime Return events which occured at or after this time.
+ * @return Google_Activities
+ */
+ public function listActivities($customerId, $applicationId, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'applicationId' => $applicationId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Activities($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Audit (v1).
+ *
+ *
+ * Lets you access user activities in your enterprise made through various applications.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_AuditService extends Google_Service {
+ public $activities;
+ /**
+ * Constructs the internal representation of the Audit service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'apps/reporting/audit/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'audit';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->activities = new Google_ActivitiesServiceResource($this, $this->serviceName, 'activities', json_decode('{"methods": {"list": {"id": "audit.activities.list", "path": "{customerId}/{applicationId}", "httpMethod": "GET", "parameters": {"actorApplicationId": {"type": "string", "format": "int64", "location": "query"}, "actorEmail": {"type": "string", "location": "query"}, "actorIpAddress": {"type": "string", "location": "query"}, "applicationId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "caller": {"type": "string", "enum": ["application_owner", "customer"], "location": "query"}, "continuationToken": {"type": "string", "location": "query"}, "customerId": {"type": "string", "required": true, "location": "path"}, "endTime": {"type": "string", "location": "query"}, "eventName": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "1000", "location": "query"}, "startTime": {"type": "string", "location": "query"}}, "response": {"$ref": "Activities"}}}}', true));
+
+ }
+}
+
+
+
+class Google_Activities extends Google_Model {
+ protected $__itemsType = 'Google_Activity';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $next;
+ public function setItems(/* array(Google_Activity) */ $items) {
+ $this->assertIsArray($items, 'Google_Activity', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNext( $next) {
+ $this->next = $next;
+ }
+ public function getNext() {
+ return $this->next;
+ }
+}
+
+class Google_Activity extends Google_Model {
+ protected $__actorType = 'Google_ActivityActor';
+ protected $__actorDataType = '';
+ public $actor;
+ protected $__eventsType = 'Google_ActivityEvents';
+ protected $__eventsDataType = 'array';
+ public $events;
+ protected $__idType = 'Google_ActivityId';
+ protected $__idDataType = '';
+ public $id;
+ public $ipAddress;
+ public $kind;
+ public $ownerDomain;
+ public function setActor(Google_ActivityActor $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setEvents(/* array(Google_ActivityEvents) */ $events) {
+ $this->assertIsArray($events, 'Google_ActivityEvents', __METHOD__);
+ $this->events = $events;
+ }
+ public function getEvents() {
+ return $this->events;
+ }
+ public function setId(Google_ActivityId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIpAddress( $ipAddress) {
+ $this->ipAddress = $ipAddress;
+ }
+ public function getIpAddress() {
+ return $this->ipAddress;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOwnerDomain( $ownerDomain) {
+ $this->ownerDomain = $ownerDomain;
+ }
+ public function getOwnerDomain() {
+ return $this->ownerDomain;
+ }
+}
+
+class Google_ActivityActor extends Google_Model {
+ public $applicationId;
+ public $callerType;
+ public $email;
+ public $key;
+ public function setApplicationId( $applicationId) {
+ $this->applicationId = $applicationId;
+ }
+ public function getApplicationId() {
+ return $this->applicationId;
+ }
+ public function setCallerType( $callerType) {
+ $this->callerType = $callerType;
+ }
+ public function getCallerType() {
+ return $this->callerType;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+}
+
+class Google_ActivityEvents extends Google_Model {
+ public $eventType;
+ public $name;
+ protected $__parametersType = 'Google_ActivityEventsParameters';
+ protected $__parametersDataType = 'array';
+ public $parameters;
+ public function setEventType( $eventType) {
+ $this->eventType = $eventType;
+ }
+ public function getEventType() {
+ return $this->eventType;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setParameters(/* array(Google_ActivityEventsParameters) */ $parameters) {
+ $this->assertIsArray($parameters, 'Google_ActivityEventsParameters', __METHOD__);
+ $this->parameters = $parameters;
+ }
+ public function getParameters() {
+ return $this->parameters;
+ }
+}
+
+class Google_ActivityEventsParameters extends Google_Model {
+ public $name;
+ public $value;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_ActivityId extends Google_Model {
+ public $applicationId;
+ public $customerId;
+ public $time;
+ public $uniqQualifier;
+ public function setApplicationId( $applicationId) {
+ $this->applicationId = $applicationId;
+ }
+ public function getApplicationId() {
+ return $this->applicationId;
+ }
+ public function setCustomerId( $customerId) {
+ $this->customerId = $customerId;
+ }
+ public function getCustomerId() {
+ return $this->customerId;
+ }
+ public function setTime( $time) {
+ $this->time = $time;
+ }
+ public function getTime() {
+ return $this->time;
+ }
+ public function setUniqQualifier( $uniqQualifier) {
+ $this->uniqQualifier = $uniqQualifier;
+ }
+ public function getUniqQualifier() {
+ return $this->uniqQualifier;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BigqueryService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BigqueryService.php
new file mode 100644
index 0000000..8a446e1
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BigqueryService.php
@@ -0,0 +1,2011 @@
+
+ * $bigqueryService = new Google_BigqueryService(...);
+ * $datasets = $bigqueryService->datasets;
+ *
+ */
+ class Google_DatasetsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the dataset specified by datasetId value. Before you can delete a dataset, you must
+ * delete all its tables, either manually or by specifying deleteContents. Immediately after
+ * deletion, you can create another dataset with the same name. (datasets.delete)
+ *
+ * @param string $projectId Project ID of the dataset being deleted
+ * @param string $datasetId Dataset ID of dataset being deleted
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool deleteContents If True, delete all the tables in the dataset. If False and the dataset contains tables, the request will fail. Default is False
+ */
+ public function delete($projectId, $datasetId, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns the dataset specified by datasetID. (datasets.get)
+ *
+ * @param string $projectId Project ID of the requested dataset
+ * @param string $datasetId Dataset ID of the requested dataset
+ * @param array $optParams Optional parameters.
+ * @return Google_Dataset
+ */
+ public function get($projectId, $datasetId, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Dataset($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new empty dataset. (datasets.insert)
+ *
+ * @param string $projectId Project ID of the new dataset
+ * @param Google_Dataset $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Dataset
+ */
+ public function insert($projectId, Google_Dataset $postBody, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Dataset($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all the datasets in the specified project to which the caller has read access; however, a
+ * project owner can list (but not necessarily get) all datasets in his project. (datasets.list)
+ *
+ * @param string $projectId Project ID of the datasets to be listed
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of results to return
+ * @opt_param string pageToken Page token, returned by a previous call, to request the next page of results
+ * @return Google_DatasetList
+ */
+ public function listDatasets($projectId, $optParams = array()) {
+ $params = array('projectId' => $projectId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_DatasetList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates information in an existing dataset, specified by datasetId. Properties not included in
+ * the submitted resource will not be changed. If you include the access property without any values
+ * assigned, the request will fail as you must specify at least one owner for a dataset. This method
+ * supports patch semantics. (datasets.patch)
+ *
+ * @param string $projectId Project ID of the dataset being updated
+ * @param string $datasetId Dataset ID of the dataset being updated
+ * @param Google_Dataset $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Dataset
+ */
+ public function patch($projectId, $datasetId, Google_Dataset $postBody, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Dataset($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates information in an existing dataset, specified by datasetId. Properties not included in
+ * the submitted resource will not be changed. If you include the access property without any values
+ * assigned, the request will fail as you must specify at least one owner for a dataset.
+ * (datasets.update)
+ *
+ * @param string $projectId Project ID of the dataset being updated
+ * @param string $datasetId Dataset ID of the dataset being updated
+ * @param Google_Dataset $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Dataset
+ */
+ public function update($projectId, $datasetId, Google_Dataset $postBody, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Dataset($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "jobs" collection of methods.
+ * Typical usage is:
+ *
+ * $bigqueryService = new Google_BigqueryService(...);
+ * $jobs = $bigqueryService->jobs;
+ *
+ */
+ class Google_JobsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the specified job by ID. (jobs.get)
+ *
+ * @param string $projectId Project ID of the requested job
+ * @param string $jobId Job ID of the requested job
+ * @param array $optParams Optional parameters.
+ * @return Google_Job
+ */
+ public function get($projectId, $jobId, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'jobId' => $jobId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Job($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the results of a query job. (jobs.getQueryResults)
+ *
+ * @param string $projectId Project ID of the query job
+ * @param string $jobId Job ID of the query job
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of results to read
+ * @opt_param string pageToken Page token, returned by a previous call, to request the next page of results
+ * @opt_param string startIndex Zero-based index of the starting row
+ * @opt_param string timeoutMs How long to wait for the query to complete, in milliseconds, before returning. Default is to return immediately. If the timeout passes before the job completes, the request will fail with a TIMEOUT error
+ * @return Google_GetQueryResultsResponse
+ */
+ public function getQueryResults($projectId, $jobId, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'jobId' => $jobId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('getQueryResults', array($params));
+ if ($this->useObjects()) {
+ return new Google_GetQueryResultsResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Starts a new asynchronous job. (jobs.insert)
+ *
+ * @param string $projectId Project ID of the project that will be billed for the job
+ * @param Google_Job $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Job
+ */
+ public function insert($projectId, Google_Job $postBody, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Job($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all the Jobs in the specified project that were started by the user. (jobs.list)
+ *
+ * @param string $projectId Project ID of the jobs to list
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool allUsers Whether to display jobs owned by all users in the project. Default false
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageToken Page token, returned by a previous call, to request the next page of results
+ * @opt_param string projection Restrict information returned to a set of selected fields
+ * @opt_param string stateFilter Filter for job state
+ * @return Google_JobList
+ */
+ public function listJobs($projectId, $optParams = array()) {
+ $params = array('projectId' => $projectId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_JobList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Runs a BigQuery SQL query synchronously and returns query results if the query completes within a
+ * specified timeout. (jobs.query)
+ *
+ * @param string $projectId Project ID of the project billed for the query
+ * @param Google_QueryRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_QueryResponse
+ */
+ public function query($projectId, Google_QueryRequest $postBody, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('query', array($params));
+ if ($this->useObjects()) {
+ return new Google_QueryResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "projects" collection of methods.
+ * Typical usage is:
+ *
+ * $bigqueryService = new Google_BigqueryService(...);
+ * $projects = $bigqueryService->projects;
+ *
+ */
+ class Google_ProjectsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Lists the projects to which you have at least read access. (projects.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageToken Page token, returned by a previous call, to request the next page of results
+ * @return Google_ProjectList
+ */
+ public function listProjects($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ProjectList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "tabledata" collection of methods.
+ * Typical usage is:
+ *
+ * $bigqueryService = new Google_BigqueryService(...);
+ * $tabledata = $bigqueryService->tabledata;
+ *
+ */
+ class Google_TabledataServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves table data from a specified set of rows. (tabledata.list)
+ *
+ * @param string $projectId Project ID of the table to read
+ * @param string $datasetId Dataset ID of the table to read
+ * @param string $tableId Table ID of the table to read
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageToken Page token, returned by a previous call, identifying the result set
+ * @opt_param string startIndex Zero-based index of the starting row to read
+ * @return Google_TableDataList
+ */
+ public function listTabledata($projectId, $datasetId, $tableId, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TableDataList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "tables" collection of methods.
+ * Typical usage is:
+ *
+ * $bigqueryService = new Google_BigqueryService(...);
+ * $tables = $bigqueryService->tables;
+ *
+ */
+ class Google_TablesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the table specified by tableId from the dataset. If the table contains data, all the data
+ * will be deleted. (tables.delete)
+ *
+ * @param string $projectId Project ID of the table to delete
+ * @param string $datasetId Dataset ID of the table to delete
+ * @param string $tableId Table ID of the table to delete
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($projectId, $datasetId, $tableId, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets the specified table resource by table ID. This method does not return the data in the table,
+ * it only returns the table resource, which describes the structure of this table. (tables.get)
+ *
+ * @param string $projectId Project ID of the requested table
+ * @param string $datasetId Dataset ID of the requested table
+ * @param string $tableId Table ID of the requested table
+ * @param array $optParams Optional parameters.
+ * @return Google_Table
+ */
+ public function get($projectId, $datasetId, $tableId, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new, empty table in the dataset. (tables.insert)
+ *
+ * @param string $projectId Project ID of the new table
+ * @param string $datasetId Dataset ID of the new table
+ * @param Google_Table $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Table
+ */
+ public function insert($projectId, $datasetId, Google_Table $postBody, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all tables in the specified dataset. (tables.list)
+ *
+ * @param string $projectId Project ID of the tables to list
+ * @param string $datasetId Dataset ID of the tables to list
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageToken Page token, returned by a previous call, to request the next page of results
+ * @return Google_TableList
+ */
+ public function listTables($projectId, $datasetId, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TableList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates information in an existing table, specified by tableId. This method supports patch
+ * semantics. (tables.patch)
+ *
+ * @param string $projectId Project ID of the table to update
+ * @param string $datasetId Dataset ID of the table to update
+ * @param string $tableId Table ID of the table to update
+ * @param Google_Table $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Table
+ */
+ public function patch($projectId, $datasetId, $tableId, Google_Table $postBody, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates information in an existing table, specified by tableId. (tables.update)
+ *
+ * @param string $projectId Project ID of the table to update
+ * @param string $datasetId Dataset ID of the table to update
+ * @param string $tableId Table ID of the table to update
+ * @param Google_Table $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Table
+ */
+ public function update($projectId, $datasetId, $tableId, Google_Table $postBody, $optParams = array()) {
+ $params = array('projectId' => $projectId, 'datasetId' => $datasetId, 'tableId' => $tableId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Bigquery (v2).
+ *
+ *
+ * A data platform for customers to create, manage, share and query data.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_BigqueryService extends Google_Service {
+ public $datasets;
+ public $jobs;
+ public $projects;
+ public $tabledata;
+ public $tables;
+ /**
+ * Constructs the internal representation of the Bigquery service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'bigquery/v2/';
+ $this->version = 'v2';
+ $this->serviceName = 'bigquery';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->datasets = new Google_DatasetsServiceResource($this, $this->serviceName, 'datasets', json_decode('{"methods": {"delete": {"id": "bigquery.datasets.delete", "path": "projects/{projectId}/datasets/{datasetId}", "httpMethod": "DELETE", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "deleteContents": {"type": "boolean", "location": "query"}, "projectId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "get": {"id": "bigquery.datasets.get", "path": "projects/{projectId}/datasets/{datasetId}", "httpMethod": "GET", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Dataset"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "insert": {"id": "bigquery.datasets.insert", "path": "projects/{projectId}/datasets", "httpMethod": "POST", "parameters": {"projectId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Dataset"}, "response": {"$ref": "Dataset"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "list": {"id": "bigquery.datasets.list", "path": "projects/{projectId}/datasets", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projectId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "DatasetList"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "patch": {"id": "bigquery.datasets.patch", "path": "projects/{projectId}/datasets/{datasetId}", "httpMethod": "PATCH", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Dataset"}, "response": {"$ref": "Dataset"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "update": {"id": "bigquery.datasets.update", "path": "projects/{projectId}/datasets/{datasetId}", "httpMethod": "PUT", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Dataset"}, "response": {"$ref": "Dataset"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}}}', true));
+ $this->jobs = new Google_JobsServiceResource($this, $this->serviceName, 'jobs', json_decode('{"methods": {"get": {"id": "bigquery.jobs.get", "path": "projects/{projectId}/jobs/{jobId}", "httpMethod": "GET", "parameters": {"jobId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Job"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "getQueryResults": {"id": "bigquery.jobs.getQueryResults", "path": "projects/{projectId}/queries/{jobId}", "httpMethod": "GET", "parameters": {"jobId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projectId": {"type": "string", "required": true, "location": "path"}, "startIndex": {"type": "string", "format": "uint64", "location": "query"}, "timeoutMs": {"type": "integer", "format": "uint32", "location": "query"}}, "response": {"$ref": "GetQueryResultsResponse"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "insert": {"id": "bigquery.jobs.insert", "path": "projects/{projectId}/jobs", "httpMethod": "POST", "parameters": {"projectId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Job"}, "response": {"$ref": "Job"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/devstorage.read_write"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["application/octet-stream"], "protocols": {"simple": {"multipart": true, "path": "/upload/bigquery/v2/projects/{projectId}/jobs"}, "resumable": {"multipart": true, "path": "/resumable/upload/bigquery/v2/projects/{projectId}/jobs"}}}}, "list": {"id": "bigquery.jobs.list", "path": "projects/{projectId}/jobs", "httpMethod": "GET", "parameters": {"allUsers": {"type": "boolean", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projectId": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["full", "minimal"], "location": "query"}, "stateFilter": {"type": "string", "enum": ["done", "pending", "running"], "repeated": true, "location": "query"}}, "response": {"$ref": "JobList"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "query": {"id": "bigquery.jobs.query", "path": "projects/{projectId}/queries", "httpMethod": "POST", "parameters": {"projectId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "QueryRequest"}, "response": {"$ref": "QueryResponse"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}}}', true));
+ $this->projects = new Google_ProjectsServiceResource($this, $this->serviceName, 'projects', json_decode('{"methods": {"list": {"id": "bigquery.projects.list", "path": "projects", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "ProjectList"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}}}', true));
+ $this->tabledata = new Google_TabledataServiceResource($this, $this->serviceName, 'tabledata', json_decode('{"methods": {"list": {"id": "bigquery.tabledata.list", "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data", "httpMethod": "GET", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projectId": {"type": "string", "required": true, "location": "path"}, "startIndex": {"type": "string", "format": "uint64", "location": "query"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "TableDataList"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}}}', true));
+ $this->tables = new Google_TablesServiceResource($this, $this->serviceName, 'tables', json_decode('{"methods": {"delete": {"id": "bigquery.tables.delete", "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", "httpMethod": "DELETE", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "get": {"id": "bigquery.tables.get", "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", "httpMethod": "GET", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "insert": {"id": "bigquery.tables.insert", "path": "projects/{projectId}/datasets/{datasetId}/tables", "httpMethod": "POST", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Table"}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "list": {"id": "bigquery.tables.list", "path": "projects/{projectId}/datasets/{datasetId}/tables", "httpMethod": "GET", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projectId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "TableList"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "patch": {"id": "bigquery.tables.patch", "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", "httpMethod": "PATCH", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Table"}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}, "update": {"id": "bigquery.tables.update", "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", "httpMethod": "PUT", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}, "projectId": {"type": "string", "required": true, "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Table"}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Dataset extends Google_Model {
+ protected $__accessType = 'Google_DatasetAccess';
+ protected $__accessDataType = 'array';
+ public $access;
+ public $creationTime;
+ protected $__datasetReferenceType = 'Google_DatasetReference';
+ protected $__datasetReferenceDataType = '';
+ public $datasetReference;
+ public $description;
+ public $etag;
+ public $friendlyName;
+ public $id;
+ public $kind;
+ public $lastModifiedTime;
+ public $selfLink;
+ public function setAccess(/* array(Google_DatasetAccess) */ $access) {
+ $this->assertIsArray($access, 'Google_DatasetAccess', __METHOD__);
+ $this->access = $access;
+ }
+ public function getAccess() {
+ return $this->access;
+ }
+ public function setCreationTime( $creationTime) {
+ $this->creationTime = $creationTime;
+ }
+ public function getCreationTime() {
+ return $this->creationTime;
+ }
+ public function setDatasetReference(Google_DatasetReference $datasetReference) {
+ $this->datasetReference = $datasetReference;
+ }
+ public function getDatasetReference() {
+ return $this->datasetReference;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setFriendlyName( $friendlyName) {
+ $this->friendlyName = $friendlyName;
+ }
+ public function getFriendlyName() {
+ return $this->friendlyName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastModifiedTime( $lastModifiedTime) {
+ $this->lastModifiedTime = $lastModifiedTime;
+ }
+ public function getLastModifiedTime() {
+ return $this->lastModifiedTime;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_DatasetAccess extends Google_Model {
+ public $domain;
+ public $groupByEmail;
+ public $role;
+ public $specialGroup;
+ public $userByEmail;
+ public function setDomain( $domain) {
+ $this->domain = $domain;
+ }
+ public function getDomain() {
+ return $this->domain;
+ }
+ public function setGroupByEmail( $groupByEmail) {
+ $this->groupByEmail = $groupByEmail;
+ }
+ public function getGroupByEmail() {
+ return $this->groupByEmail;
+ }
+ public function setRole( $role) {
+ $this->role = $role;
+ }
+ public function getRole() {
+ return $this->role;
+ }
+ public function setSpecialGroup( $specialGroup) {
+ $this->specialGroup = $specialGroup;
+ }
+ public function getSpecialGroup() {
+ return $this->specialGroup;
+ }
+ public function setUserByEmail( $userByEmail) {
+ $this->userByEmail = $userByEmail;
+ }
+ public function getUserByEmail() {
+ return $this->userByEmail;
+ }
+}
+
+class Google_DatasetList extends Google_Model {
+ protected $__datasetsType = 'Google_DatasetListDatasets';
+ protected $__datasetsDataType = 'array';
+ public $datasets;
+ public $etag;
+ public $kind;
+ public $nextPageToken;
+ public function setDatasets(/* array(Google_DatasetListDatasets) */ $datasets) {
+ $this->assertIsArray($datasets, 'Google_DatasetListDatasets', __METHOD__);
+ $this->datasets = $datasets;
+ }
+ public function getDatasets() {
+ return $this->datasets;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_DatasetListDatasets extends Google_Model {
+ protected $__datasetReferenceType = 'Google_DatasetReference';
+ protected $__datasetReferenceDataType = '';
+ public $datasetReference;
+ public $friendlyName;
+ public $id;
+ public $kind;
+ public function setDatasetReference(Google_DatasetReference $datasetReference) {
+ $this->datasetReference = $datasetReference;
+ }
+ public function getDatasetReference() {
+ return $this->datasetReference;
+ }
+ public function setFriendlyName( $friendlyName) {
+ $this->friendlyName = $friendlyName;
+ }
+ public function getFriendlyName() {
+ return $this->friendlyName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_DatasetReference extends Google_Model {
+ public $datasetId;
+ public $projectId;
+ public function setDatasetId( $datasetId) {
+ $this->datasetId = $datasetId;
+ }
+ public function getDatasetId() {
+ return $this->datasetId;
+ }
+ public function setProjectId( $projectId) {
+ $this->projectId = $projectId;
+ }
+ public function getProjectId() {
+ return $this->projectId;
+ }
+}
+
+class Google_ErrorProto extends Google_Model {
+ public $debugInfo;
+ public $location;
+ public $message;
+ public $reason;
+ public function setDebugInfo( $debugInfo) {
+ $this->debugInfo = $debugInfo;
+ }
+ public function getDebugInfo() {
+ return $this->debugInfo;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+ public function setReason( $reason) {
+ $this->reason = $reason;
+ }
+ public function getReason() {
+ return $this->reason;
+ }
+}
+
+class Google_GetQueryResultsResponse extends Google_Model {
+ public $cacheHit;
+ public $etag;
+ public $jobComplete;
+ protected $__jobReferenceType = 'Google_JobReference';
+ protected $__jobReferenceDataType = '';
+ public $jobReference;
+ public $kind;
+ public $pageToken;
+ protected $__rowsType = 'Google_TableRow';
+ protected $__rowsDataType = 'array';
+ public $rows;
+ protected $__schemaType = 'Google_TableSchema';
+ protected $__schemaDataType = '';
+ public $schema;
+ public $totalRows;
+ public function setCacheHit( $cacheHit) {
+ $this->cacheHit = $cacheHit;
+ }
+ public function getCacheHit() {
+ return $this->cacheHit;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setJobComplete( $jobComplete) {
+ $this->jobComplete = $jobComplete;
+ }
+ public function getJobComplete() {
+ return $this->jobComplete;
+ }
+ public function setJobReference(Google_JobReference $jobReference) {
+ $this->jobReference = $jobReference;
+ }
+ public function getJobReference() {
+ return $this->jobReference;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPageToken( $pageToken) {
+ $this->pageToken = $pageToken;
+ }
+ public function getPageToken() {
+ return $this->pageToken;
+ }
+ public function setRows(/* array(Google_TableRow) */ $rows) {
+ $this->assertIsArray($rows, 'Google_TableRow', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setSchema(Google_TableSchema $schema) {
+ $this->schema = $schema;
+ }
+ public function getSchema() {
+ return $this->schema;
+ }
+ public function setTotalRows( $totalRows) {
+ $this->totalRows = $totalRows;
+ }
+ public function getTotalRows() {
+ return $this->totalRows;
+ }
+}
+
+class Google_Job extends Google_Model {
+ protected $__configurationType = 'Google_JobConfiguration';
+ protected $__configurationDataType = '';
+ public $configuration;
+ public $etag;
+ public $id;
+ protected $__jobReferenceType = 'Google_JobReference';
+ protected $__jobReferenceDataType = '';
+ public $jobReference;
+ public $kind;
+ public $selfLink;
+ protected $__statisticsType = 'Google_JobStatistics';
+ protected $__statisticsDataType = '';
+ public $statistics;
+ protected $__statusType = 'Google_JobStatus';
+ protected $__statusDataType = '';
+ public $status;
+ public function setConfiguration(Google_JobConfiguration $configuration) {
+ $this->configuration = $configuration;
+ }
+ public function getConfiguration() {
+ return $this->configuration;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setJobReference(Google_JobReference $jobReference) {
+ $this->jobReference = $jobReference;
+ }
+ public function getJobReference() {
+ return $this->jobReference;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStatistics(Google_JobStatistics $statistics) {
+ $this->statistics = $statistics;
+ }
+ public function getStatistics() {
+ return $this->statistics;
+ }
+ public function setStatus(Google_JobStatus $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_JobConfiguration extends Google_Model {
+ protected $__copyType = 'Google_JobConfigurationTableCopy';
+ protected $__copyDataType = '';
+ public $copy;
+ public $dryRun;
+ protected $__extractType = 'Google_JobConfigurationExtract';
+ protected $__extractDataType = '';
+ public $extract;
+ protected $__linkType = 'Google_JobConfigurationLink';
+ protected $__linkDataType = '';
+ public $link;
+ protected $__loadType = 'Google_JobConfigurationLoad';
+ protected $__loadDataType = '';
+ public $load;
+ protected $__queryType = 'Google_JobConfigurationQuery';
+ protected $__queryDataType = '';
+ public $query;
+ public function setCopy(Google_JobConfigurationTableCopy $copy) {
+ $this->copy = $copy;
+ }
+ public function getCopy() {
+ return $this->copy;
+ }
+ public function setDryRun( $dryRun) {
+ $this->dryRun = $dryRun;
+ }
+ public function getDryRun() {
+ return $this->dryRun;
+ }
+ public function setExtract(Google_JobConfigurationExtract $extract) {
+ $this->extract = $extract;
+ }
+ public function getExtract() {
+ return $this->extract;
+ }
+ public function setLink(Google_JobConfigurationLink $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setLoad(Google_JobConfigurationLoad $load) {
+ $this->load = $load;
+ }
+ public function getLoad() {
+ return $this->load;
+ }
+ public function setQuery(Google_JobConfigurationQuery $query) {
+ $this->query = $query;
+ }
+ public function getQuery() {
+ return $this->query;
+ }
+}
+
+class Google_JobConfigurationExtract extends Google_Model {
+ public $destinationFormat;
+ public $destinationUri;
+ public $fieldDelimiter;
+ public $printHeader;
+ protected $__sourceTableType = 'Google_TableReference';
+ protected $__sourceTableDataType = '';
+ public $sourceTable;
+ public function setDestinationFormat( $destinationFormat) {
+ $this->destinationFormat = $destinationFormat;
+ }
+ public function getDestinationFormat() {
+ return $this->destinationFormat;
+ }
+ public function setDestinationUri( $destinationUri) {
+ $this->destinationUri = $destinationUri;
+ }
+ public function getDestinationUri() {
+ return $this->destinationUri;
+ }
+ public function setFieldDelimiter( $fieldDelimiter) {
+ $this->fieldDelimiter = $fieldDelimiter;
+ }
+ public function getFieldDelimiter() {
+ return $this->fieldDelimiter;
+ }
+ public function setPrintHeader( $printHeader) {
+ $this->printHeader = $printHeader;
+ }
+ public function getPrintHeader() {
+ return $this->printHeader;
+ }
+ public function setSourceTable(Google_TableReference $sourceTable) {
+ $this->sourceTable = $sourceTable;
+ }
+ public function getSourceTable() {
+ return $this->sourceTable;
+ }
+}
+
+class Google_JobConfigurationLink extends Google_Model {
+ public $createDisposition;
+ protected $__destinationTableType = 'Google_TableReference';
+ protected $__destinationTableDataType = '';
+ public $destinationTable;
+ public $sourceUri;
+ public $writeDisposition;
+ public function setCreateDisposition( $createDisposition) {
+ $this->createDisposition = $createDisposition;
+ }
+ public function getCreateDisposition() {
+ return $this->createDisposition;
+ }
+ public function setDestinationTable(Google_TableReference $destinationTable) {
+ $this->destinationTable = $destinationTable;
+ }
+ public function getDestinationTable() {
+ return $this->destinationTable;
+ }
+ public function setSourceUri(/* array(Google_string) */ $sourceUri) {
+ $this->assertIsArray($sourceUri, 'Google_string', __METHOD__);
+ $this->sourceUri = $sourceUri;
+ }
+ public function getSourceUri() {
+ return $this->sourceUri;
+ }
+ public function setWriteDisposition( $writeDisposition) {
+ $this->writeDisposition = $writeDisposition;
+ }
+ public function getWriteDisposition() {
+ return $this->writeDisposition;
+ }
+}
+
+class Google_JobConfigurationLoad extends Google_Model {
+ public $allowJaggedRows;
+ public $allowQuotedNewlines;
+ public $createDisposition;
+ protected $__destinationTableType = 'Google_TableReference';
+ protected $__destinationTableDataType = '';
+ public $destinationTable;
+ public $encoding;
+ public $fieldDelimiter;
+ public $maxBadRecords;
+ public $quote;
+ protected $__schemaType = 'Google_TableSchema';
+ protected $__schemaDataType = '';
+ public $schema;
+ public $schemaInline;
+ public $schemaInlineFormat;
+ public $skipLeadingRows;
+ public $sourceFormat;
+ public $sourceUris;
+ public $writeDisposition;
+ public function setAllowJaggedRows( $allowJaggedRows) {
+ $this->allowJaggedRows = $allowJaggedRows;
+ }
+ public function getAllowJaggedRows() {
+ return $this->allowJaggedRows;
+ }
+ public function setAllowQuotedNewlines( $allowQuotedNewlines) {
+ $this->allowQuotedNewlines = $allowQuotedNewlines;
+ }
+ public function getAllowQuotedNewlines() {
+ return $this->allowQuotedNewlines;
+ }
+ public function setCreateDisposition( $createDisposition) {
+ $this->createDisposition = $createDisposition;
+ }
+ public function getCreateDisposition() {
+ return $this->createDisposition;
+ }
+ public function setDestinationTable(Google_TableReference $destinationTable) {
+ $this->destinationTable = $destinationTable;
+ }
+ public function getDestinationTable() {
+ return $this->destinationTable;
+ }
+ public function setEncoding( $encoding) {
+ $this->encoding = $encoding;
+ }
+ public function getEncoding() {
+ return $this->encoding;
+ }
+ public function setFieldDelimiter( $fieldDelimiter) {
+ $this->fieldDelimiter = $fieldDelimiter;
+ }
+ public function getFieldDelimiter() {
+ return $this->fieldDelimiter;
+ }
+ public function setMaxBadRecords( $maxBadRecords) {
+ $this->maxBadRecords = $maxBadRecords;
+ }
+ public function getMaxBadRecords() {
+ return $this->maxBadRecords;
+ }
+ public function setQuote( $quote) {
+ $this->quote = $quote;
+ }
+ public function getQuote() {
+ return $this->quote;
+ }
+ public function setSchema(Google_TableSchema $schema) {
+ $this->schema = $schema;
+ }
+ public function getSchema() {
+ return $this->schema;
+ }
+ public function setSchemaInline( $schemaInline) {
+ $this->schemaInline = $schemaInline;
+ }
+ public function getSchemaInline() {
+ return $this->schemaInline;
+ }
+ public function setSchemaInlineFormat( $schemaInlineFormat) {
+ $this->schemaInlineFormat = $schemaInlineFormat;
+ }
+ public function getSchemaInlineFormat() {
+ return $this->schemaInlineFormat;
+ }
+ public function setSkipLeadingRows( $skipLeadingRows) {
+ $this->skipLeadingRows = $skipLeadingRows;
+ }
+ public function getSkipLeadingRows() {
+ return $this->skipLeadingRows;
+ }
+ public function setSourceFormat( $sourceFormat) {
+ $this->sourceFormat = $sourceFormat;
+ }
+ public function getSourceFormat() {
+ return $this->sourceFormat;
+ }
+ public function setSourceUris(/* array(Google_string) */ $sourceUris) {
+ $this->assertIsArray($sourceUris, 'Google_string', __METHOD__);
+ $this->sourceUris = $sourceUris;
+ }
+ public function getSourceUris() {
+ return $this->sourceUris;
+ }
+ public function setWriteDisposition( $writeDisposition) {
+ $this->writeDisposition = $writeDisposition;
+ }
+ public function getWriteDisposition() {
+ return $this->writeDisposition;
+ }
+}
+
+class Google_JobConfigurationQuery extends Google_Model {
+ public $allowLargeResults;
+ public $createDisposition;
+ protected $__defaultDatasetType = 'Google_DatasetReference';
+ protected $__defaultDatasetDataType = '';
+ public $defaultDataset;
+ protected $__destinationTableType = 'Google_TableReference';
+ protected $__destinationTableDataType = '';
+ public $destinationTable;
+ public $minCompletionRatio;
+ public $preserveNulls;
+ public $priority;
+ public $query;
+ public $useQueryCache;
+ public $writeDisposition;
+ public function setAllowLargeResults( $allowLargeResults) {
+ $this->allowLargeResults = $allowLargeResults;
+ }
+ public function getAllowLargeResults() {
+ return $this->allowLargeResults;
+ }
+ public function setCreateDisposition( $createDisposition) {
+ $this->createDisposition = $createDisposition;
+ }
+ public function getCreateDisposition() {
+ return $this->createDisposition;
+ }
+ public function setDefaultDataset(Google_DatasetReference $defaultDataset) {
+ $this->defaultDataset = $defaultDataset;
+ }
+ public function getDefaultDataset() {
+ return $this->defaultDataset;
+ }
+ public function setDestinationTable(Google_TableReference $destinationTable) {
+ $this->destinationTable = $destinationTable;
+ }
+ public function getDestinationTable() {
+ return $this->destinationTable;
+ }
+ public function setMinCompletionRatio( $minCompletionRatio) {
+ $this->minCompletionRatio = $minCompletionRatio;
+ }
+ public function getMinCompletionRatio() {
+ return $this->minCompletionRatio;
+ }
+ public function setPreserveNulls( $preserveNulls) {
+ $this->preserveNulls = $preserveNulls;
+ }
+ public function getPreserveNulls() {
+ return $this->preserveNulls;
+ }
+ public function setPriority( $priority) {
+ $this->priority = $priority;
+ }
+ public function getPriority() {
+ return $this->priority;
+ }
+ public function setQuery( $query) {
+ $this->query = $query;
+ }
+ public function getQuery() {
+ return $this->query;
+ }
+ public function setUseQueryCache( $useQueryCache) {
+ $this->useQueryCache = $useQueryCache;
+ }
+ public function getUseQueryCache() {
+ return $this->useQueryCache;
+ }
+ public function setWriteDisposition( $writeDisposition) {
+ $this->writeDisposition = $writeDisposition;
+ }
+ public function getWriteDisposition() {
+ return $this->writeDisposition;
+ }
+}
+
+class Google_JobConfigurationTableCopy extends Google_Model {
+ public $createDisposition;
+ protected $__destinationTableType = 'Google_TableReference';
+ protected $__destinationTableDataType = '';
+ public $destinationTable;
+ protected $__sourceTableType = 'Google_TableReference';
+ protected $__sourceTableDataType = '';
+ public $sourceTable;
+ public $writeDisposition;
+ public function setCreateDisposition( $createDisposition) {
+ $this->createDisposition = $createDisposition;
+ }
+ public function getCreateDisposition() {
+ return $this->createDisposition;
+ }
+ public function setDestinationTable(Google_TableReference $destinationTable) {
+ $this->destinationTable = $destinationTable;
+ }
+ public function getDestinationTable() {
+ return $this->destinationTable;
+ }
+ public function setSourceTable(Google_TableReference $sourceTable) {
+ $this->sourceTable = $sourceTable;
+ }
+ public function getSourceTable() {
+ return $this->sourceTable;
+ }
+ public function setWriteDisposition( $writeDisposition) {
+ $this->writeDisposition = $writeDisposition;
+ }
+ public function getWriteDisposition() {
+ return $this->writeDisposition;
+ }
+}
+
+class Google_JobList extends Google_Model {
+ public $etag;
+ protected $__jobsType = 'Google_JobListJobs';
+ protected $__jobsDataType = 'array';
+ public $jobs;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setJobs(/* array(Google_JobListJobs) */ $jobs) {
+ $this->assertIsArray($jobs, 'Google_JobListJobs', __METHOD__);
+ $this->jobs = $jobs;
+ }
+ public function getJobs() {
+ return $this->jobs;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_JobListJobs extends Google_Model {
+ protected $__configurationType = 'Google_JobConfiguration';
+ protected $__configurationDataType = '';
+ public $configuration;
+ protected $__errorResultType = 'Google_ErrorProto';
+ protected $__errorResultDataType = '';
+ public $errorResult;
+ public $id;
+ protected $__jobReferenceType = 'Google_JobReference';
+ protected $__jobReferenceDataType = '';
+ public $jobReference;
+ public $kind;
+ public $state;
+ protected $__statisticsType = 'Google_JobStatistics';
+ protected $__statisticsDataType = '';
+ public $statistics;
+ protected $__statusType = 'Google_JobStatus';
+ protected $__statusDataType = '';
+ public $status;
+ public function setConfiguration(Google_JobConfiguration $configuration) {
+ $this->configuration = $configuration;
+ }
+ public function getConfiguration() {
+ return $this->configuration;
+ }
+ public function setErrorResult(Google_ErrorProto $errorResult) {
+ $this->errorResult = $errorResult;
+ }
+ public function getErrorResult() {
+ return $this->errorResult;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setJobReference(Google_JobReference $jobReference) {
+ $this->jobReference = $jobReference;
+ }
+ public function getJobReference() {
+ return $this->jobReference;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setState( $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+ public function setStatistics(Google_JobStatistics $statistics) {
+ $this->statistics = $statistics;
+ }
+ public function getStatistics() {
+ return $this->statistics;
+ }
+ public function setStatus(Google_JobStatus $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_JobReference extends Google_Model {
+ public $jobId;
+ public $projectId;
+ public function setJobId( $jobId) {
+ $this->jobId = $jobId;
+ }
+ public function getJobId() {
+ return $this->jobId;
+ }
+ public function setProjectId( $projectId) {
+ $this->projectId = $projectId;
+ }
+ public function getProjectId() {
+ return $this->projectId;
+ }
+}
+
+class Google_JobStatistics extends Google_Model {
+ public $endTime;
+ protected $__loadType = 'Google_JobStatistics3';
+ protected $__loadDataType = '';
+ public $load;
+ protected $__queryType = 'Google_JobStatistics2';
+ protected $__queryDataType = '';
+ public $query;
+ public $startTime;
+ public $totalBytesProcessed;
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setLoad(Google_JobStatistics3 $load) {
+ $this->load = $load;
+ }
+ public function getLoad() {
+ return $this->load;
+ }
+ public function setQuery(Google_JobStatistics2 $query) {
+ $this->query = $query;
+ }
+ public function getQuery() {
+ return $this->query;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+ public function setTotalBytesProcessed( $totalBytesProcessed) {
+ $this->totalBytesProcessed = $totalBytesProcessed;
+ }
+ public function getTotalBytesProcessed() {
+ return $this->totalBytesProcessed;
+ }
+}
+
+class Google_JobStatistics2 extends Google_Model {
+ public $cacheHit;
+ public $completionRatio;
+ public $totalBytesProcessed;
+ public function setCacheHit( $cacheHit) {
+ $this->cacheHit = $cacheHit;
+ }
+ public function getCacheHit() {
+ return $this->cacheHit;
+ }
+ public function setCompletionRatio( $completionRatio) {
+ $this->completionRatio = $completionRatio;
+ }
+ public function getCompletionRatio() {
+ return $this->completionRatio;
+ }
+ public function setTotalBytesProcessed( $totalBytesProcessed) {
+ $this->totalBytesProcessed = $totalBytesProcessed;
+ }
+ public function getTotalBytesProcessed() {
+ return $this->totalBytesProcessed;
+ }
+}
+
+class Google_JobStatistics3 extends Google_Model {
+ public $inputFileBytes;
+ public $inputFiles;
+ public $outputBytes;
+ public $outputRows;
+ public function setInputFileBytes( $inputFileBytes) {
+ $this->inputFileBytes = $inputFileBytes;
+ }
+ public function getInputFileBytes() {
+ return $this->inputFileBytes;
+ }
+ public function setInputFiles( $inputFiles) {
+ $this->inputFiles = $inputFiles;
+ }
+ public function getInputFiles() {
+ return $this->inputFiles;
+ }
+ public function setOutputBytes( $outputBytes) {
+ $this->outputBytes = $outputBytes;
+ }
+ public function getOutputBytes() {
+ return $this->outputBytes;
+ }
+ public function setOutputRows( $outputRows) {
+ $this->outputRows = $outputRows;
+ }
+ public function getOutputRows() {
+ return $this->outputRows;
+ }
+}
+
+class Google_JobStatus extends Google_Model {
+ protected $__errorResultType = 'Google_ErrorProto';
+ protected $__errorResultDataType = '';
+ public $errorResult;
+ protected $__errorsType = 'Google_ErrorProto';
+ protected $__errorsDataType = 'array';
+ public $errors;
+ public $state;
+ public function setErrorResult(Google_ErrorProto $errorResult) {
+ $this->errorResult = $errorResult;
+ }
+ public function getErrorResult() {
+ return $this->errorResult;
+ }
+ public function setErrors(/* array(Google_ErrorProto) */ $errors) {
+ $this->assertIsArray($errors, 'Google_ErrorProto', __METHOD__);
+ $this->errors = $errors;
+ }
+ public function getErrors() {
+ return $this->errors;
+ }
+ public function setState( $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+}
+
+class Google_ProjectList extends Google_Model {
+ public $etag;
+ public $kind;
+ public $nextPageToken;
+ protected $__projectsType = 'Google_ProjectListProjects';
+ protected $__projectsDataType = 'array';
+ public $projects;
+ public $totalItems;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setProjects(/* array(Google_ProjectListProjects) */ $projects) {
+ $this->assertIsArray($projects, 'Google_ProjectListProjects', __METHOD__);
+ $this->projects = $projects;
+ }
+ public function getProjects() {
+ return $this->projects;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ProjectListProjects extends Google_Model {
+ public $friendlyName;
+ public $id;
+ public $kind;
+ public $numericId;
+ protected $__projectReferenceType = 'Google_ProjectReference';
+ protected $__projectReferenceDataType = '';
+ public $projectReference;
+ public function setFriendlyName( $friendlyName) {
+ $this->friendlyName = $friendlyName;
+ }
+ public function getFriendlyName() {
+ return $this->friendlyName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNumericId( $numericId) {
+ $this->numericId = $numericId;
+ }
+ public function getNumericId() {
+ return $this->numericId;
+ }
+ public function setProjectReference(Google_ProjectReference $projectReference) {
+ $this->projectReference = $projectReference;
+ }
+ public function getProjectReference() {
+ return $this->projectReference;
+ }
+}
+
+class Google_ProjectReference extends Google_Model {
+ public $projectId;
+ public function setProjectId( $projectId) {
+ $this->projectId = $projectId;
+ }
+ public function getProjectId() {
+ return $this->projectId;
+ }
+}
+
+class Google_QueryRequest extends Google_Model {
+ protected $__defaultDatasetType = 'Google_DatasetReference';
+ protected $__defaultDatasetDataType = '';
+ public $defaultDataset;
+ public $dryRun;
+ public $kind;
+ public $maxResults;
+ public $minCompletionRatio;
+ public $preserveNulls;
+ public $query;
+ public $timeoutMs;
+ public $useQueryCache;
+ public function setDefaultDataset(Google_DatasetReference $defaultDataset) {
+ $this->defaultDataset = $defaultDataset;
+ }
+ public function getDefaultDataset() {
+ return $this->defaultDataset;
+ }
+ public function setDryRun( $dryRun) {
+ $this->dryRun = $dryRun;
+ }
+ public function getDryRun() {
+ return $this->dryRun;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaxResults( $maxResults) {
+ $this->maxResults = $maxResults;
+ }
+ public function getMaxResults() {
+ return $this->maxResults;
+ }
+ public function setMinCompletionRatio( $minCompletionRatio) {
+ $this->minCompletionRatio = $minCompletionRatio;
+ }
+ public function getMinCompletionRatio() {
+ return $this->minCompletionRatio;
+ }
+ public function setPreserveNulls( $preserveNulls) {
+ $this->preserveNulls = $preserveNulls;
+ }
+ public function getPreserveNulls() {
+ return $this->preserveNulls;
+ }
+ public function setQuery( $query) {
+ $this->query = $query;
+ }
+ public function getQuery() {
+ return $this->query;
+ }
+ public function setTimeoutMs( $timeoutMs) {
+ $this->timeoutMs = $timeoutMs;
+ }
+ public function getTimeoutMs() {
+ return $this->timeoutMs;
+ }
+ public function setUseQueryCache( $useQueryCache) {
+ $this->useQueryCache = $useQueryCache;
+ }
+ public function getUseQueryCache() {
+ return $this->useQueryCache;
+ }
+}
+
+class Google_QueryResponse extends Google_Model {
+ public $cacheHit;
+ public $jobComplete;
+ protected $__jobReferenceType = 'Google_JobReference';
+ protected $__jobReferenceDataType = '';
+ public $jobReference;
+ public $kind;
+ public $pageToken;
+ protected $__rowsType = 'Google_TableRow';
+ protected $__rowsDataType = 'array';
+ public $rows;
+ protected $__schemaType = 'Google_TableSchema';
+ protected $__schemaDataType = '';
+ public $schema;
+ public $totalBytesProcessed;
+ public $totalRows;
+ public function setCacheHit( $cacheHit) {
+ $this->cacheHit = $cacheHit;
+ }
+ public function getCacheHit() {
+ return $this->cacheHit;
+ }
+ public function setJobComplete( $jobComplete) {
+ $this->jobComplete = $jobComplete;
+ }
+ public function getJobComplete() {
+ return $this->jobComplete;
+ }
+ public function setJobReference(Google_JobReference $jobReference) {
+ $this->jobReference = $jobReference;
+ }
+ public function getJobReference() {
+ return $this->jobReference;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPageToken( $pageToken) {
+ $this->pageToken = $pageToken;
+ }
+ public function getPageToken() {
+ return $this->pageToken;
+ }
+ public function setRows(/* array(Google_TableRow) */ $rows) {
+ $this->assertIsArray($rows, 'Google_TableRow', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setSchema(Google_TableSchema $schema) {
+ $this->schema = $schema;
+ }
+ public function getSchema() {
+ return $this->schema;
+ }
+ public function setTotalBytesProcessed( $totalBytesProcessed) {
+ $this->totalBytesProcessed = $totalBytesProcessed;
+ }
+ public function getTotalBytesProcessed() {
+ return $this->totalBytesProcessed;
+ }
+ public function setTotalRows( $totalRows) {
+ $this->totalRows = $totalRows;
+ }
+ public function getTotalRows() {
+ return $this->totalRows;
+ }
+}
+
+class Google_Table extends Google_Model {
+ public $creationTime;
+ public $description;
+ public $etag;
+ public $expirationTime;
+ public $friendlyName;
+ public $id;
+ public $kind;
+ public $lastModifiedTime;
+ public $numBytes;
+ public $numRows;
+ protected $__schemaType = 'Google_TableSchema';
+ protected $__schemaDataType = '';
+ public $schema;
+ public $selfLink;
+ protected $__tableReferenceType = 'Google_TableReference';
+ protected $__tableReferenceDataType = '';
+ public $tableReference;
+ public function setCreationTime( $creationTime) {
+ $this->creationTime = $creationTime;
+ }
+ public function getCreationTime() {
+ return $this->creationTime;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setExpirationTime( $expirationTime) {
+ $this->expirationTime = $expirationTime;
+ }
+ public function getExpirationTime() {
+ return $this->expirationTime;
+ }
+ public function setFriendlyName( $friendlyName) {
+ $this->friendlyName = $friendlyName;
+ }
+ public function getFriendlyName() {
+ return $this->friendlyName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastModifiedTime( $lastModifiedTime) {
+ $this->lastModifiedTime = $lastModifiedTime;
+ }
+ public function getLastModifiedTime() {
+ return $this->lastModifiedTime;
+ }
+ public function setNumBytes( $numBytes) {
+ $this->numBytes = $numBytes;
+ }
+ public function getNumBytes() {
+ return $this->numBytes;
+ }
+ public function setNumRows( $numRows) {
+ $this->numRows = $numRows;
+ }
+ public function getNumRows() {
+ return $this->numRows;
+ }
+ public function setSchema(Google_TableSchema $schema) {
+ $this->schema = $schema;
+ }
+ public function getSchema() {
+ return $this->schema;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTableReference(Google_TableReference $tableReference) {
+ $this->tableReference = $tableReference;
+ }
+ public function getTableReference() {
+ return $this->tableReference;
+ }
+}
+
+class Google_TableCell extends Google_Model {
+ public $v;
+ public function setV( $v) {
+ $this->v = $v;
+ }
+ public function getV() {
+ return $this->v;
+ }
+}
+
+class Google_TableDataList extends Google_Model {
+ public $etag;
+ public $kind;
+ public $pageToken;
+ protected $__rowsType = 'Google_TableRow';
+ protected $__rowsDataType = 'array';
+ public $rows;
+ public $totalRows;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPageToken( $pageToken) {
+ $this->pageToken = $pageToken;
+ }
+ public function getPageToken() {
+ return $this->pageToken;
+ }
+ public function setRows(/* array(Google_TableRow) */ $rows) {
+ $this->assertIsArray($rows, 'Google_TableRow', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setTotalRows( $totalRows) {
+ $this->totalRows = $totalRows;
+ }
+ public function getTotalRows() {
+ return $this->totalRows;
+ }
+}
+
+class Google_TableFieldSchema extends Google_Model {
+ protected $__fieldsType = 'Google_TableFieldSchema';
+ protected $__fieldsDataType = 'array';
+ public $fields;
+ public $mode;
+ public $name;
+ public $type;
+ public function setFields(/* array(Google_TableFieldSchema) */ $fields) {
+ $this->assertIsArray($fields, 'Google_TableFieldSchema', __METHOD__);
+ $this->fields = $fields;
+ }
+ public function getFields() {
+ return $this->fields;
+ }
+ public function setMode( $mode) {
+ $this->mode = $mode;
+ }
+ public function getMode() {
+ return $this->mode;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_TableList extends Google_Model {
+ public $etag;
+ public $kind;
+ public $nextPageToken;
+ protected $__tablesType = 'Google_TableListTables';
+ protected $__tablesDataType = 'array';
+ public $tables;
+ public $totalItems;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTables(/* array(Google_TableListTables) */ $tables) {
+ $this->assertIsArray($tables, 'Google_TableListTables', __METHOD__);
+ $this->tables = $tables;
+ }
+ public function getTables() {
+ return $this->tables;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_TableListTables extends Google_Model {
+ public $friendlyName;
+ public $id;
+ public $kind;
+ protected $__tableReferenceType = 'Google_TableReference';
+ protected $__tableReferenceDataType = '';
+ public $tableReference;
+ public function setFriendlyName( $friendlyName) {
+ $this->friendlyName = $friendlyName;
+ }
+ public function getFriendlyName() {
+ return $this->friendlyName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTableReference(Google_TableReference $tableReference) {
+ $this->tableReference = $tableReference;
+ }
+ public function getTableReference() {
+ return $this->tableReference;
+ }
+}
+
+class Google_TableReference extends Google_Model {
+ public $datasetId;
+ public $projectId;
+ public $tableId;
+ public function setDatasetId( $datasetId) {
+ $this->datasetId = $datasetId;
+ }
+ public function getDatasetId() {
+ return $this->datasetId;
+ }
+ public function setProjectId( $projectId) {
+ $this->projectId = $projectId;
+ }
+ public function getProjectId() {
+ return $this->projectId;
+ }
+ public function setTableId( $tableId) {
+ $this->tableId = $tableId;
+ }
+ public function getTableId() {
+ return $this->tableId;
+ }
+}
+
+class Google_TableRow extends Google_Model {
+ protected $__fType = 'Google_TableCell';
+ protected $__fDataType = 'array';
+ public $f;
+ public function setF(/* array(Google_TableCell) */ $f) {
+ $this->assertIsArray($f, 'Google_TableCell', __METHOD__);
+ $this->f = $f;
+ }
+ public function getF() {
+ return $this->f;
+ }
+}
+
+class Google_TableSchema extends Google_Model {
+ protected $__fieldsType = 'Google_TableFieldSchema';
+ protected $__fieldsDataType = 'array';
+ public $fields;
+ public function setFields(/* array(Google_TableFieldSchema) */ $fields) {
+ $this->assertIsArray($fields, 'Google_TableFieldSchema', __METHOD__);
+ $this->fields = $fields;
+ }
+ public function getFields() {
+ return $this->fields;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BloggerService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BloggerService.php
new file mode 100644
index 0000000..83d1fec
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BloggerService.php
@@ -0,0 +1,1389 @@
+
+ * $bloggerService = new Google_BloggerService(...);
+ * $blogUserInfos = $bloggerService->blogUserInfos;
+ *
+ */
+ class Google_BlogUserInfosServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one blog and user info pair by blogId and userId. (blogUserInfos.get)
+ *
+ * @param string $userId ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier.
+ * @param string $blogId The ID of the blog to get.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxPosts Maximum number of posts to pull back with the blog.
+ * @return Google_BlogUserInfo
+ */
+ public function get($userId, $blogId, $optParams = array()) {
+ $params = array('userId' => $userId, 'blogId' => $blogId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_BlogUserInfo($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "blogs" collection of methods.
+ * Typical usage is:
+ *
+ * $bloggerService = new Google_BloggerService(...);
+ * $blogs = $bloggerService->blogs;
+ *
+ */
+ class Google_BlogsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one blog by id. (blogs.get)
+ *
+ * @param string $blogId The ID of the blog to get.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxPosts Maximum number of posts to pull back with the blog.
+ * @return Google_Blog
+ */
+ public function get($blogId, $optParams = array()) {
+ $params = array('blogId' => $blogId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Blog($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieve a Blog by URL. (blogs.getByUrl)
+ *
+ * @param string $url The URL of the blog to retrieve.
+ * @param array $optParams Optional parameters.
+ * @return Google_Blog
+ */
+ public function getByUrl($url, $optParams = array()) {
+ $params = array('url' => $url);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('getByUrl', array($params));
+ if ($this->useObjects()) {
+ return new Google_Blog($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of blogs, possibly filtered. (blogs.listByUser)
+ *
+ * @param string $userId ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier.
+ * @param array $optParams Optional parameters.
+ * @return Google_BlogList
+ */
+ public function listByUser($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('listByUser', array($params));
+ if ($this->useObjects()) {
+ return new Google_BlogList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "comments" collection of methods.
+ * Typical usage is:
+ *
+ * $bloggerService = new Google_BloggerService(...);
+ * $comments = $bloggerService->comments;
+ *
+ */
+ class Google_CommentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one comment by id. (comments.get)
+ *
+ * @param string $blogId ID of the blog to containing the comment.
+ * @param string $postId ID of the post to fetch posts from.
+ * @param string $commentId The ID of the comment to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_Comment
+ */
+ public function get($blogId, $postId, $commentId, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'postId' => $postId, 'commentId' => $commentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the comments for a blog, possibly filtered. (comments.list)
+ *
+ * @param string $blogId ID of the blog to fetch comments from.
+ * @param string $postId ID of the post to fetch posts from.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string endDate Latest date of comment to fetch, a date-time with RFC 3339 formatting.
+ * @opt_param bool fetchBodies Whether the body content of the comments is included.
+ * @opt_param string maxResults Maximum number of comments to include in the result.
+ * @opt_param string pageToken Continuation token if request is paged.
+ * @opt_param string startDate Earliest date of comment to fetch, a date-time with RFC 3339 formatting.
+ * @return Google_CommentList
+ */
+ public function listComments($blogId, $postId, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'postId' => $postId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "pages" collection of methods.
+ * Typical usage is:
+ *
+ * $bloggerService = new Google_BloggerService(...);
+ * $pages = $bloggerService->pages;
+ *
+ */
+ class Google_PagesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one blog page by id. (pages.get)
+ *
+ * @param string $blogId ID of the blog containing the page.
+ * @param string $pageId The ID of the page to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_Page
+ */
+ public function get($blogId, $pageId, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'pageId' => $pageId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Page($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves pages for a blog, possibly filtered. (pages.list)
+ *
+ * @param string $blogId ID of the blog to fetch pages from.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool fetchBodies Whether to retrieve the Page bodies.
+ * @return Google_PageList
+ */
+ public function listPages($blogId, $optParams = array()) {
+ $params = array('blogId' => $blogId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PageList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "posts" collection of methods.
+ * Typical usage is:
+ *
+ * $bloggerService = new Google_BloggerService(...);
+ * $posts = $bloggerService->posts;
+ *
+ */
+ class Google_PostsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Delete a post by id. (posts.delete)
+ *
+ * @param string $blogId The Id of the Blog.
+ * @param string $postId The ID of the Post.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($blogId, $postId, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'postId' => $postId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Get a post by id. (posts.get)
+ *
+ * @param string $blogId ID of the blog to fetch the post from.
+ * @param string $postId The ID of the post
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxComments Maximum number of comments to pull back on a post.
+ * @return Google_Post
+ */
+ public function get($blogId, $postId, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'postId' => $postId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Post($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieve a Post by Path. (posts.getByPath)
+ *
+ * @param string $blogId ID of the blog to fetch the post from.
+ * @param string $path Path of the Post to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxComments Maximum number of comments to pull back on a post.
+ * @return Google_Post
+ */
+ public function getByPath($blogId, $path, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'path' => $path);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('getByPath', array($params));
+ if ($this->useObjects()) {
+ return new Google_Post($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Add a post. (posts.insert)
+ *
+ * @param string $blogId ID of the blog to add the post to.
+ * @param Google_Post $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Post
+ */
+ public function insert($blogId, Google_Post $postBody, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Post($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of posts, possibly filtered. (posts.list)
+ *
+ * @param string $blogId ID of the blog to fetch posts from.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string endDate Latest post date to fetch, a date-time with RFC 3339 formatting.
+ * @opt_param bool fetchBodies Whether the body content of posts is included.
+ * @opt_param string labels Comma-separated list of labels to search for.
+ * @opt_param string maxResults Maximum number of posts to fetch.
+ * @opt_param string pageToken Continuation token if the request is paged.
+ * @opt_param string startDate Earliest post date to fetch, a date-time with RFC 3339 formatting.
+ * @return Google_PostList
+ */
+ public function listPosts($blogId, $optParams = array()) {
+ $params = array('blogId' => $blogId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PostList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update a post. This method supports patch semantics. (posts.patch)
+ *
+ * @param string $blogId The ID of the Blog.
+ * @param string $postId The ID of the Post.
+ * @param Google_Post $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Post
+ */
+ public function patch($blogId, $postId, Google_Post $postBody, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'postId' => $postId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Post($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Search for a post. (posts.search)
+ *
+ * @param string $blogId ID of the blog to fetch the post from.
+ * @param string $q Query terms to search this blog for matching posts.
+ * @param array $optParams Optional parameters.
+ * @return Google_PostList
+ */
+ public function search($blogId, $q, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'q' => $q);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('search', array($params));
+ if ($this->useObjects()) {
+ return new Google_PostList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update a post. (posts.update)
+ *
+ * @param string $blogId The ID of the Blog.
+ * @param string $postId The ID of the Post.
+ * @param Google_Post $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Post
+ */
+ public function update($blogId, $postId, Google_Post $postBody, $optParams = array()) {
+ $params = array('blogId' => $blogId, 'postId' => $postId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Post($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "users" collection of methods.
+ * Typical usage is:
+ *
+ * $bloggerService = new Google_BloggerService(...);
+ * $users = $bloggerService->users;
+ *
+ */
+ class Google_UsersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one user by id. (users.get)
+ *
+ * @param string $userId The ID of the user to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_User
+ */
+ public function get($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_User($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Blogger (v3).
+ *
+ *
+ * API for access to the data within Blogger.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_BloggerService extends Google_Service {
+ public $blogUserInfos;
+ public $blogs;
+ public $comments;
+ public $pages;
+ public $posts;
+ public $users;
+ /**
+ * Constructs the internal representation of the Blogger service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'blogger/v3/';
+ $this->version = 'v3';
+ $this->serviceName = 'blogger';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->blogUserInfos = new Google_BlogUserInfosServiceResource($this, $this->serviceName, 'blogUserInfos', json_decode('{"methods": {"get": {"id": "blogger.blogUserInfos.get", "path": "users/{userId}/blogs/{blogId}", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "maxPosts": {"type": "integer", "format": "uint32", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "BlogUserInfo"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}}}', true));
+ $this->blogs = new Google_BlogsServiceResource($this, $this->serviceName, 'blogs', json_decode('{"methods": {"get": {"id": "blogger.blogs.get", "path": "blogs/{blogId}", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "maxPosts": {"type": "integer", "format": "uint32", "location": "query"}}, "response": {"$ref": "Blog"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}, "getByUrl": {"id": "blogger.blogs.getByUrl", "path": "blogs/byurl", "httpMethod": "GET", "parameters": {"url": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "Blog"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}, "listByUser": {"id": "blogger.blogs.listByUser", "path": "users/{userId}/blogs", "httpMethod": "GET", "parameters": {"userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "BlogList"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}}}', true));
+ $this->comments = new Google_CommentsServiceResource($this, $this->serviceName, 'comments', json_decode('{"methods": {"get": {"id": "blogger.comments.get", "path": "blogs/{blogId}/posts/{postId}/comments/{commentId}", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "commentId": {"type": "string", "required": true, "location": "path"}, "postId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}, "list": {"id": "blogger.comments.list", "path": "blogs/{blogId}/posts/{postId}/comments", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "endDate": {"type": "string", "format": "date-time", "location": "query"}, "fetchBodies": {"type": "boolean", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "postId": {"type": "string", "required": true, "location": "path"}, "startDate": {"type": "string", "format": "date-time", "location": "query"}}, "response": {"$ref": "CommentList"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}}}', true));
+ $this->pages = new Google_PagesServiceResource($this, $this->serviceName, 'pages', json_decode('{"methods": {"get": {"id": "blogger.pages.get", "path": "blogs/{blogId}/pages/{pageId}", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "pageId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Page"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}, "list": {"id": "blogger.pages.list", "path": "blogs/{blogId}/pages", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "fetchBodies": {"type": "boolean", "location": "query"}}, "response": {"$ref": "PageList"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}}}', true));
+ $this->posts = new Google_PostsServiceResource($this, $this->serviceName, 'posts', json_decode('{"methods": {"delete": {"id": "blogger.posts.delete", "path": "blogs/{blogId}/posts/{postId}", "httpMethod": "DELETE", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "postId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/blogger"]}, "get": {"id": "blogger.posts.get", "path": "blogs/{blogId}/posts/{postId}", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "maxComments": {"type": "integer", "format": "uint32", "location": "query"}, "postId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Post"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}, "getByPath": {"id": "blogger.posts.getByPath", "path": "blogs/{blogId}/posts/bypath", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "maxComments": {"type": "integer", "format": "uint32", "location": "query"}, "path": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "Post"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}, "insert": {"id": "blogger.posts.insert", "path": "blogs/{blogId}/posts", "httpMethod": "POST", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Post"}, "response": {"$ref": "Post"}, "scopes": ["https://www.googleapis.com/auth/blogger"]}, "list": {"id": "blogger.posts.list", "path": "blogs/{blogId}/posts", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "endDate": {"type": "string", "format": "date-time", "location": "query"}, "fetchBodies": {"type": "boolean", "location": "query"}, "labels": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "startDate": {"type": "string", "format": "date-time", "location": "query"}}, "response": {"$ref": "PostList"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}, "patch": {"id": "blogger.posts.patch", "path": "blogs/{blogId}/posts/{postId}", "httpMethod": "PATCH", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "postId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Post"}, "response": {"$ref": "Post"}, "scopes": ["https://www.googleapis.com/auth/blogger"]}, "search": {"id": "blogger.posts.search", "path": "blogs/{blogId}/posts/search", "httpMethod": "GET", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "q": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "PostList"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}, "update": {"id": "blogger.posts.update", "path": "blogs/{blogId}/posts/{postId}", "httpMethod": "PUT", "parameters": {"blogId": {"type": "string", "required": true, "location": "path"}, "postId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Post"}, "response": {"$ref": "Post"}, "scopes": ["https://www.googleapis.com/auth/blogger"]}}}', true));
+ $this->users = new Google_UsersServiceResource($this, $this->serviceName, 'users', json_decode('{"methods": {"get": {"id": "blogger.users.get", "path": "users/{userId}", "httpMethod": "GET", "parameters": {"userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "User"}, "scopes": ["https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/blogger.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Blog extends Google_Model {
+ public $customMetaData;
+ public $description;
+ public $id;
+ public $kind;
+ protected $__localeType = 'Google_BlogLocale';
+ protected $__localeDataType = '';
+ public $locale;
+ public $name;
+ protected $__pagesType = 'Google_BlogPages';
+ protected $__pagesDataType = '';
+ public $pages;
+ protected $__postsType = 'Google_BlogPosts';
+ protected $__postsDataType = '';
+ public $posts;
+ public $published;
+ public $selfLink;
+ public $updated;
+ public $url;
+ public function setCustomMetaData( $customMetaData) {
+ $this->customMetaData = $customMetaData;
+ }
+ public function getCustomMetaData() {
+ return $this->customMetaData;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocale(Google_BlogLocale $locale) {
+ $this->locale = $locale;
+ }
+ public function getLocale() {
+ return $this->locale;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPages(Google_BlogPages $pages) {
+ $this->pages = $pages;
+ }
+ public function getPages() {
+ return $this->pages;
+ }
+ public function setPosts(Google_BlogPosts $posts) {
+ $this->posts = $posts;
+ }
+ public function getPosts() {
+ return $this->posts;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_BlogList extends Google_Model {
+ protected $__itemsType = 'Google_Blog';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Blog) */ $items) {
+ $this->assertIsArray($items, 'Google_Blog', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_BlogLocale extends Google_Model {
+ public $country;
+ public $language;
+ public $variant;
+ public function setCountry( $country) {
+ $this->country = $country;
+ }
+ public function getCountry() {
+ return $this->country;
+ }
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+ public function setVariant( $variant) {
+ $this->variant = $variant;
+ }
+ public function getVariant() {
+ return $this->variant;
+ }
+}
+
+class Google_BlogPages extends Google_Model {
+ public $selfLink;
+ public $totalItems;
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_BlogPerUserInfo extends Google_Model {
+ public $blogId;
+ public $kind;
+ public $photosAlbumKey;
+ public $userId;
+ public function setBlogId( $blogId) {
+ $this->blogId = $blogId;
+ }
+ public function getBlogId() {
+ return $this->blogId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPhotosAlbumKey( $photosAlbumKey) {
+ $this->photosAlbumKey = $photosAlbumKey;
+ }
+ public function getPhotosAlbumKey() {
+ return $this->photosAlbumKey;
+ }
+ public function setUserId( $userId) {
+ $this->userId = $userId;
+ }
+ public function getUserId() {
+ return $this->userId;
+ }
+}
+
+class Google_BlogPosts extends Google_Model {
+ protected $__itemsType = 'Google_Post';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $selfLink;
+ public $totalItems;
+ public function setItems(/* array(Google_Post) */ $items) {
+ $this->assertIsArray($items, 'Google_Post', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_BlogUserInfo extends Google_Model {
+ protected $__blogType = 'Google_Blog';
+ protected $__blogDataType = '';
+ public $blog;
+ public $kind;
+ protected $__userType = 'Google_BlogPerUserInfo';
+ protected $__userDataType = '';
+ public $user;
+ public function setBlog(Google_Blog $blog) {
+ $this->blog = $blog;
+ }
+ public function getBlog() {
+ return $this->blog;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setUser(Google_BlogPerUserInfo $user) {
+ $this->user = $user;
+ }
+ public function getUser() {
+ return $this->user;
+ }
+}
+
+class Google_Comment extends Google_Model {
+ protected $__authorType = 'Google_CommentAuthor';
+ protected $__authorDataType = '';
+ public $author;
+ protected $__blogType = 'Google_CommentBlog';
+ protected $__blogDataType = '';
+ public $blog;
+ public $content;
+ public $id;
+ protected $__inReplyToType = 'Google_CommentInReplyTo';
+ protected $__inReplyToDataType = '';
+ public $inReplyTo;
+ public $kind;
+ protected $__postType = 'Google_CommentPost';
+ protected $__postDataType = '';
+ public $post;
+ public $published;
+ public $selfLink;
+ public $updated;
+ public function setAuthor(Google_CommentAuthor $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setBlog(Google_CommentBlog $blog) {
+ $this->blog = $blog;
+ }
+ public function getBlog() {
+ return $this->blog;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInReplyTo(Google_CommentInReplyTo $inReplyTo) {
+ $this->inReplyTo = $inReplyTo;
+ }
+ public function getInReplyTo() {
+ return $this->inReplyTo;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPost(Google_CommentPost $post) {
+ $this->post = $post;
+ }
+ public function getPost() {
+ return $this->post;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_CommentAuthor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_CommentAuthorImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_CommentAuthorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommentAuthorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommentBlog extends Google_Model {
+ public $id;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_CommentInReplyTo extends Google_Model {
+ public $id;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_CommentList extends Google_Model {
+ protected $__itemsType = 'Google_Comment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $prevPageToken;
+ public function setItems(/* array(Google_Comment) */ $items) {
+ $this->assertIsArray($items, 'Google_Comment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPrevPageToken( $prevPageToken) {
+ $this->prevPageToken = $prevPageToken;
+ }
+ public function getPrevPageToken() {
+ return $this->prevPageToken;
+ }
+}
+
+class Google_CommentPost extends Google_Model {
+ public $id;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_Page extends Google_Model {
+ protected $__authorType = 'Google_PageAuthor';
+ protected $__authorDataType = '';
+ public $author;
+ protected $__blogType = 'Google_PageBlog';
+ protected $__blogDataType = '';
+ public $blog;
+ public $content;
+ public $id;
+ public $kind;
+ public $published;
+ public $selfLink;
+ public $title;
+ public $updated;
+ public $url;
+ public function setAuthor(Google_PageAuthor $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setBlog(Google_PageBlog $blog) {
+ $this->blog = $blog;
+ }
+ public function getBlog() {
+ return $this->blog;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PageAuthor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_PageAuthorImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_PageAuthorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PageAuthorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PageBlog extends Google_Model {
+ public $id;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_PageList extends Google_Model {
+ protected $__itemsType = 'Google_Page';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Page) */ $items) {
+ $this->assertIsArray($items, 'Google_Page', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Post extends Google_Model {
+ protected $__authorType = 'Google_PostAuthor';
+ protected $__authorDataType = '';
+ public $author;
+ protected $__blogType = 'Google_PostBlog';
+ protected $__blogDataType = '';
+ public $blog;
+ public $content;
+ public $customMetaData;
+ public $id;
+ public $kind;
+ public $labels;
+ protected $__locationType = 'Google_PostLocation';
+ protected $__locationDataType = '';
+ public $location;
+ public $published;
+ protected $__repliesType = 'Google_PostReplies';
+ protected $__repliesDataType = '';
+ public $replies;
+ public $selfLink;
+ public $title;
+ public $updated;
+ public $url;
+ public function setAuthor(Google_PostAuthor $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setBlog(Google_PostBlog $blog) {
+ $this->blog = $blog;
+ }
+ public function getBlog() {
+ return $this->blog;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setCustomMetaData( $customMetaData) {
+ $this->customMetaData = $customMetaData;
+ }
+ public function getCustomMetaData() {
+ return $this->customMetaData;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLabels(/* array(Google_string) */ $labels) {
+ $this->assertIsArray($labels, 'Google_string', __METHOD__);
+ $this->labels = $labels;
+ }
+ public function getLabels() {
+ return $this->labels;
+ }
+ public function setLocation(Google_PostLocation $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setReplies(Google_PostReplies $replies) {
+ $this->replies = $replies;
+ }
+ public function getReplies() {
+ return $this->replies;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PostAuthor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_PostAuthorImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_PostAuthorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PostAuthorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PostBlog extends Google_Model {
+ public $id;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_PostList extends Google_Model {
+ protected $__itemsType = 'Google_Post';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $prevPageToken;
+ public function setItems(/* array(Google_Post) */ $items) {
+ $this->assertIsArray($items, 'Google_Post', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPrevPageToken( $prevPageToken) {
+ $this->prevPageToken = $prevPageToken;
+ }
+ public function getPrevPageToken() {
+ return $this->prevPageToken;
+ }
+}
+
+class Google_PostLocation extends Google_Model {
+ public $lat;
+ public $lng;
+ public $name;
+ public $span;
+ public function setLat( $lat) {
+ $this->lat = $lat;
+ }
+ public function getLat() {
+ return $this->lat;
+ }
+ public function setLng( $lng) {
+ $this->lng = $lng;
+ }
+ public function getLng() {
+ return $this->lng;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setSpan( $span) {
+ $this->span = $span;
+ }
+ public function getSpan() {
+ return $this->span;
+ }
+}
+
+class Google_PostReplies extends Google_Model {
+ protected $__itemsType = 'Google_Comment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $selfLink;
+ public $totalItems;
+ public function setItems(/* array(Google_Comment) */ $items) {
+ $this->assertIsArray($items, 'Google_Comment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_User extends Google_Model {
+ public $about;
+ protected $__blogsType = 'Google_UserBlogs';
+ protected $__blogsDataType = '';
+ public $blogs;
+ public $created;
+ public $displayName;
+ public $id;
+ public $kind;
+ protected $__localeType = 'Google_UserLocale';
+ protected $__localeDataType = '';
+ public $locale;
+ public $selfLink;
+ public $url;
+ public function setAbout( $about) {
+ $this->about = $about;
+ }
+ public function getAbout() {
+ return $this->about;
+ }
+ public function setBlogs(Google_UserBlogs $blogs) {
+ $this->blogs = $blogs;
+ }
+ public function getBlogs() {
+ return $this->blogs;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocale(Google_UserLocale $locale) {
+ $this->locale = $locale;
+ }
+ public function getLocale() {
+ return $this->locale;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_UserBlogs extends Google_Model {
+ public $selfLink;
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_UserLocale extends Google_Model {
+ public $country;
+ public $language;
+ public $variant;
+ public function setCountry( $country) {
+ $this->country = $country;
+ }
+ public function getCountry() {
+ return $this->country;
+ }
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+ public function setVariant( $variant) {
+ $this->variant = $variant;
+ }
+ public function getVariant() {
+ return $this->variant;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BooksService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BooksService.php
new file mode 100644
index 0000000..80d6260
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_BooksService.php
@@ -0,0 +1,3491 @@
+
+ * $booksService = new Google_BooksService(...);
+ * $bookshelves = $booksService->bookshelves;
+ *
+ */
+ class Google_BookshelvesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves metadata for a specific bookshelf for the specified user. (bookshelves.get)
+ *
+ * @param string $userId ID of user for whom to retrieve bookshelves.
+ * @param string $shelf ID of bookshelf to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Bookshelf
+ */
+ public function get($userId, $shelf, $optParams = array()) {
+ $params = array('userId' => $userId, 'shelf' => $shelf);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Bookshelf($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of public bookshelves for the specified user. (bookshelves.list)
+ *
+ * @param string $userId ID of user for whom to retrieve bookshelves.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Bookshelves
+ */
+ public function listBookshelves($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Bookshelves($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "volumes" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $volumes = $booksService->volumes;
+ *
+ */
+ class Google_BookshelvesVolumesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves volumes in a specific bookshelf for the specified user. (volumes.list)
+ *
+ * @param string $userId ID of user for whom to retrieve bookshelf volumes.
+ * @param string $shelf ID of bookshelf to retrieve volumes.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param bool showPreorders Set to true to show pre-ordered books. Defaults to false.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param string startIndex Index of the first element to return (starts at 0)
+ * @return Google_Volumes
+ */
+ public function listBookshelvesVolumes($userId, $shelf, $optParams = array()) {
+ $params = array('userId' => $userId, 'shelf' => $shelf);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumes($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "cloudloading" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $cloudloading = $booksService->cloudloading;
+ *
+ */
+ class Google_CloudloadingServiceResource extends Google_ServiceResource {
+
+ /**
+ * (cloudloading.addBook)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string drive_document_id A drive document id. The upload_client_token must not be set.
+ * @opt_param string mime_type The document MIME type. It can be set only if the drive_document_id is set.
+ * @opt_param string name The document name. It can be set only if the drive_document_id is set.
+ * @opt_param string upload_client_token
+ * @return Google_BooksCloudloadingResource
+ */
+ public function addBook($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('addBook', array($params));
+ if ($this->useObjects()) {
+ return new Google_BooksCloudloadingResource($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Remove the book and its contents (cloudloading.deleteBook)
+ *
+ * @param string $volumeId The id of the book to be removed.
+ * @param array $optParams Optional parameters.
+ */
+ public function deleteBook($volumeId, $optParams = array()) {
+ $params = array('volumeId' => $volumeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('deleteBook', array($params));
+ return $data;
+ }
+ /**
+ * (cloudloading.updateBook)
+ *
+ * @param Google_BooksCloudloadingResource $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_BooksCloudloadingResource
+ */
+ public function updateBook(Google_BooksCloudloadingResource $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('updateBook', array($params));
+ if ($this->useObjects()) {
+ return new Google_BooksCloudloadingResource($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "layers" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $layers = $booksService->layers;
+ *
+ */
+ class Google_LayersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets the layer summary for a volume. (layers.get)
+ *
+ * @param string $volumeId The volume to retrieve layers for.
+ * @param string $summaryId The ID for the layer to get the summary for.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string contentVersion The content version for the requested volume.
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Layersummary
+ */
+ public function get($volumeId, $summaryId, $optParams = array()) {
+ $params = array('volumeId' => $volumeId, 'summaryId' => $summaryId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Layersummary($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List the layer summaries for a volume. (layers.list)
+ *
+ * @param string $volumeId The volume to retrieve layers for.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string contentVersion The content version for the requested volume.
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageToken The value of the nextToken from the previous page.
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Layersummaries
+ */
+ public function listLayers($volumeId, $optParams = array()) {
+ $params = array('volumeId' => $volumeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Layersummaries($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "annotationData" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $annotationData = $booksService->annotationData;
+ *
+ */
+ class Google_LayersAnnotationDataServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets the annotation data. (annotationData.get)
+ *
+ * @param string $volumeId The volume to retrieve annotations for.
+ * @param string $layerId The ID for the layer to get the annotations.
+ * @param string $annotationDataId The ID of the annotation data to retrieve.
+ * @param string $contentVersion The content version for the volume you are trying to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int h The requested pixel height for any images. If height is provided width must also be provided.
+ * @opt_param string locale The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.
+ * @opt_param int scale The requested scale for the image.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param int w The requested pixel width for any images. If width is provided height must also be provided.
+ * @return Google_Annotationdata
+ */
+ public function get($volumeId, $layerId, $annotationDataId, $contentVersion, $optParams = array()) {
+ $params = array('volumeId' => $volumeId, 'layerId' => $layerId, 'annotationDataId' => $annotationDataId, 'contentVersion' => $contentVersion);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Annotationdata($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Gets the annotation data for a volume and layer. (annotationData.list)
+ *
+ * @param string $volumeId The volume to retrieve annotation data for.
+ * @param string $layerId The ID for the layer to get the annotation data.
+ * @param string $contentVersion The content version for the requested volume.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string annotationDataId The list of Annotation Data Ids to retrieve. Pagination is ignored if this is set.
+ * @opt_param int h The requested pixel height for any images. If height is provided width must also be provided.
+ * @opt_param string locale The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageToken The value of the nextToken from the previous page.
+ * @opt_param int scale The requested scale for the image.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param string updatedMax RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).
+ * @opt_param string updatedMin RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).
+ * @opt_param int w The requested pixel width for any images. If width is provided height must also be provided.
+ * @return Google_Annotationsdata
+ */
+ public function listLayersAnnotationData($volumeId, $layerId, $contentVersion, $optParams = array()) {
+ $params = array('volumeId' => $volumeId, 'layerId' => $layerId, 'contentVersion' => $contentVersion);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Annotationsdata($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "volumeAnnotations" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $volumeAnnotations = $booksService->volumeAnnotations;
+ *
+ */
+ class Google_LayersVolumeAnnotationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets the volume annotation. (volumeAnnotations.get)
+ *
+ * @param string $volumeId The volume to retrieve annotations for.
+ * @param string $layerId The ID for the layer to get the annotations.
+ * @param string $annotationId The ID of the volume annotation to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Volumeannotation
+ */
+ public function get($volumeId, $layerId, $annotationId, $optParams = array()) {
+ $params = array('volumeId' => $volumeId, 'layerId' => $layerId, 'annotationId' => $annotationId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumeannotation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Gets the volume annotations for a volume and layer. (volumeAnnotations.list)
+ *
+ * @param string $volumeId The volume to retrieve annotations for.
+ * @param string $layerId The ID for the layer to get the annotations.
+ * @param string $contentVersion The content version for the requested volume.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string endOffset The end offset to end retrieving data from.
+ * @opt_param string endPosition The end position to end retrieving data from.
+ * @opt_param string locale The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageToken The value of the nextToken from the previous page.
+ * @opt_param bool showDeleted Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param string startOffset The start offset to start retrieving data from.
+ * @opt_param string startPosition The start position to start retrieving data from.
+ * @opt_param string updatedMax RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).
+ * @opt_param string updatedMin RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).
+ * @opt_param string volumeAnnotationsVersion The version of the volume annotations that you are requesting.
+ * @return Google_Volumeannotations
+ */
+ public function listLayersVolumeAnnotations($volumeId, $layerId, $contentVersion, $optParams = array()) {
+ $params = array('volumeId' => $volumeId, 'layerId' => $layerId, 'contentVersion' => $contentVersion);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumeannotations($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "myconfig" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $myconfig = $booksService->myconfig;
+ *
+ */
+ class Google_MyconfigServiceResource extends Google_ServiceResource {
+
+ /**
+ * Release downloaded content access restriction. (myconfig.releaseDownloadAccess)
+ *
+ * @param string $volumeIds The volume(s) to release restrictions for.
+ * @param string $cpksver The device/version ID from which to release the restriction.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_DownloadAccesses
+ */
+ public function releaseDownloadAccess($volumeIds, $cpksver, $optParams = array()) {
+ $params = array('volumeIds' => $volumeIds, 'cpksver' => $cpksver);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('releaseDownloadAccess', array($params));
+ if ($this->useObjects()) {
+ return new Google_DownloadAccesses($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Request concurrent and download access restrictions. (myconfig.requestAccess)
+ *
+ * @param string $source String to identify the originator of this request.
+ * @param string $volumeId The volume to request concurrent/download restrictions for.
+ * @param string $nonce The client nonce value.
+ * @param string $cpksver The device/version ID from which to request the restrictions.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
+ * @return Google_RequestAccess
+ */
+ public function requestAccess($source, $volumeId, $nonce, $cpksver, $optParams = array()) {
+ $params = array('source' => $source, 'volumeId' => $volumeId, 'nonce' => $nonce, 'cpksver' => $cpksver);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('requestAccess', array($params));
+ if ($this->useObjects()) {
+ return new Google_RequestAccess($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Request downloaded content access for specified volumes on the My eBooks shelf.
+ * (myconfig.syncVolumeLicenses)
+ *
+ * @param string $source String to identify the originator of this request.
+ * @param string $nonce The client nonce value.
+ * @param string $cpksver The device/version ID from which to release the restriction.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
+ * @opt_param bool showPreorders Set to true to show pre-ordered books. Defaults to false.
+ * @opt_param string volumeIds The volume(s) to request download restrictions for.
+ * @return Google_Volumes
+ */
+ public function syncVolumeLicenses($source, $nonce, $cpksver, $optParams = array()) {
+ $params = array('source' => $source, 'nonce' => $nonce, 'cpksver' => $cpksver);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('syncVolumeLicenses', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumes($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "mylibrary" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $mylibrary = $booksService->mylibrary;
+ *
+ */
+ class Google_MylibraryServiceResource extends Google_ServiceResource {
+
+ }
+
+ /**
+ * The "annotations" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $annotations = $booksService->annotations;
+ *
+ */
+ class Google_MylibraryAnnotationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes an annotation. (annotations.delete)
+ *
+ * @param string $annotationId The ID for the annotation to delete.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ */
+ public function delete($annotationId, $optParams = array()) {
+ $params = array('annotationId' => $annotationId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets an annotation by its ID. (annotations.get)
+ *
+ * @param string $annotationId The ID for the annotation to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Annotation
+ */
+ public function get($annotationId, $optParams = array()) {
+ $params = array('annotationId' => $annotationId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Annotation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Inserts a new annotation. (annotations.insert)
+ *
+ * @param Google_Annotation $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Annotation
+ */
+ public function insert(Google_Annotation $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Annotation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of annotations, possibly filtered. (annotations.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string contentVersion The content version for the requested volume.
+ * @opt_param string layerId The layer ID to limit annotation by.
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageIds The page ID(s) for the volume that is being queried.
+ * @opt_param string pageToken The value of the nextToken from the previous page.
+ * @opt_param bool showDeleted Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param string updatedMax RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).
+ * @opt_param string updatedMin RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).
+ * @opt_param string volumeId The volume to restrict annotations to.
+ * @return Google_Annotations
+ */
+ public function listMylibraryAnnotations($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Annotations($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing annotation. (annotations.update)
+ *
+ * @param string $annotationId The ID for the annotation to update.
+ * @param Google_Annotation $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Annotation
+ */
+ public function update($annotationId, Google_Annotation $postBody, $optParams = array()) {
+ $params = array('annotationId' => $annotationId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Annotation($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "bookshelves" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $bookshelves = $booksService->bookshelves;
+ *
+ */
+ class Google_MylibraryBookshelvesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Adds a volume to a bookshelf. (bookshelves.addVolume)
+ *
+ * @param string $shelf ID of bookshelf to which to add a volume.
+ * @param string $volumeId ID of volume to add.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ */
+ public function addVolume($shelf, $volumeId, $optParams = array()) {
+ $params = array('shelf' => $shelf, 'volumeId' => $volumeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('addVolume', array($params));
+ return $data;
+ }
+ /**
+ * Clears all volumes from a bookshelf. (bookshelves.clearVolumes)
+ *
+ * @param string $shelf ID of bookshelf from which to remove a volume.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ */
+ public function clearVolumes($shelf, $optParams = array()) {
+ $params = array('shelf' => $shelf);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('clearVolumes', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves metadata for a specific bookshelf belonging to the authenticated user.
+ * (bookshelves.get)
+ *
+ * @param string $shelf ID of bookshelf to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Bookshelf
+ */
+ public function get($shelf, $optParams = array()) {
+ $params = array('shelf' => $shelf);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Bookshelf($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of bookshelves belonging to the authenticated user. (bookshelves.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Bookshelves
+ */
+ public function listMylibraryBookshelves($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Bookshelves($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Moves a volume within a bookshelf. (bookshelves.moveVolume)
+ *
+ * @param string $shelf ID of bookshelf with the volume.
+ * @param string $volumeId ID of volume to move.
+ * @param int $volumePosition Position on shelf to move the item (0 puts the item before the current first item, 1 puts it between the first and the second and so on.)
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ */
+ public function moveVolume($shelf, $volumeId, $volumePosition, $optParams = array()) {
+ $params = array('shelf' => $shelf, 'volumeId' => $volumeId, 'volumePosition' => $volumePosition);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('moveVolume', array($params));
+ return $data;
+ }
+ /**
+ * Removes a volume from a bookshelf. (bookshelves.removeVolume)
+ *
+ * @param string $shelf ID of bookshelf from which to remove a volume.
+ * @param string $volumeId ID of volume to remove.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string source String to identify the originator of this request.
+ */
+ public function removeVolume($shelf, $volumeId, $optParams = array()) {
+ $params = array('shelf' => $shelf, 'volumeId' => $volumeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('removeVolume', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "volumes" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $volumes = $booksService->volumes;
+ *
+ */
+ class Google_MylibraryBookshelvesVolumesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets volume information for volumes on a bookshelf. (volumes.list)
+ *
+ * @param string $shelf The bookshelf ID or name retrieve volumes for.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string country ISO-3166-1 code to override the IP-based location.
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @opt_param string q Full-text search query string in this bookshelf.
+ * @opt_param bool showPreorders Set to true to show pre-ordered books. Defaults to false.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param string startIndex Index of the first element to return (starts at 0)
+ * @return Google_Volumes
+ */
+ public function listMylibraryBookshelvesVolumes($shelf, $optParams = array()) {
+ $params = array('shelf' => $shelf);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumes($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "readingpositions" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $readingpositions = $booksService->readingpositions;
+ *
+ */
+ class Google_MylibraryReadingpositionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves my reading position information for a volume. (readingpositions.get)
+ *
+ * @param string $volumeId ID of volume for which to retrieve a reading position.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string contentVersion Volume content version for which this reading position is requested.
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_ReadingPosition
+ */
+ public function get($volumeId, $optParams = array()) {
+ $params = array('volumeId' => $volumeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_ReadingPosition($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Sets my reading position information for a volume. (readingpositions.setPosition)
+ *
+ * @param string $volumeId ID of volume for which to update the reading position.
+ * @param string $timestamp RFC 3339 UTC format timestamp associated with this reading position.
+ * @param string $position Position string for the new volume reading position.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string action Action that caused this reading position to be set.
+ * @opt_param string contentVersion Volume content version for which this reading position applies.
+ * @opt_param string deviceCookie Random persistent device cookie optional on set position.
+ * @opt_param string source String to identify the originator of this request.
+ */
+ public function setPosition($volumeId, $timestamp, $position, $optParams = array()) {
+ $params = array('volumeId' => $volumeId, 'timestamp' => $timestamp, 'position' => $position);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('setPosition', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "volumes" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $volumes = $booksService->volumes;
+ *
+ */
+ class Google_VolumesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets volume information for a single volume. (volumes.get)
+ *
+ * @param string $volumeId ID of volume to retrieve.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string country ISO-3166-1 code to override the IP-based location.
+ * @opt_param string partner Brand results for partner ID.
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Volume
+ */
+ public function get($volumeId, $optParams = array()) {
+ $params = array('volumeId' => $volumeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volume($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Performs a book search. (volumes.list)
+ *
+ * @param string $q Full-text search query string.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string download Restrict to volumes by download availability.
+ * @opt_param string filter Filter search results.
+ * @opt_param string langRestrict Restrict results to books with this language code.
+ * @opt_param string libraryRestrict Restrict search to this user's library.
+ * @opt_param string maxResults Maximum number of results to return.
+ * @opt_param string orderBy Sort search results.
+ * @opt_param string partner Restrict and brand results for partner ID.
+ * @opt_param string printType Restrict to books or magazines.
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @opt_param bool showPreorders Set to true to show books available for preorder. Defaults to false.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param string startIndex Index of the first result to return (starts at 0)
+ * @return Google_Volumes
+ */
+ public function listVolumes($q, $optParams = array()) {
+ $params = array('q' => $q);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumes($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "associated" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $associated = $booksService->associated;
+ *
+ */
+ class Google_VolumesAssociatedServiceResource extends Google_ServiceResource {
+
+ /**
+ * Return a list of associated books. (associated.list)
+ *
+ * @param string $volumeId ID of the source volume.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string association Association type.
+ * @opt_param string locale ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Volumes
+ */
+ public function listVolumesAssociated($volumeId, $optParams = array()) {
+ $params = array('volumeId' => $volumeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumes($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "mybooks" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $mybooks = $booksService->mybooks;
+ *
+ */
+ class Google_VolumesMybooksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Return a list of books in My Library. (mybooks.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string acquireMethod How the book was aquired
+ * @opt_param string locale ISO-639-1 language and ISO-3166-1 country code. Ex:'en_US'. Used for generating recommendations.
+ * @opt_param string maxResults Maximum number of results to return.
+ * @opt_param string processingState The processing state of the user uploaded volumes to be returned. Applicable only if the UPLOADED is specified in the acquireMethod.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param string startIndex Index of the first result to return (starts at 0)
+ * @return Google_Volumes
+ */
+ public function listVolumesMybooks($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumes($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "recommended" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $recommended = $booksService->recommended;
+ *
+ */
+ class Google_VolumesRecommendedServiceResource extends Google_ServiceResource {
+
+ /**
+ * Return a list of recommended books for the current user. (recommended.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.
+ * @opt_param string source String to identify the originator of this request.
+ * @return Google_Volumes
+ */
+ public function listVolumesRecommended($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumes($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "useruploaded" collection of methods.
+ * Typical usage is:
+ *
+ * $booksService = new Google_BooksService(...);
+ * $useruploaded = $booksService->useruploaded;
+ *
+ */
+ class Google_VolumesUseruploadedServiceResource extends Google_ServiceResource {
+
+ /**
+ * Return a list of books uploaded by the current user. (useruploaded.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.
+ * @opt_param string maxResults Maximum number of results to return.
+ * @opt_param string processingState The processing state of the user uploaded volumes to be returned.
+ * @opt_param string source String to identify the originator of this request.
+ * @opt_param string startIndex Index of the first result to return (starts at 0)
+ * @opt_param string volumeId The ids of the volumes to be returned. If not specified all that match the processingState are returned.
+ * @return Google_Volumes
+ */
+ public function listVolumesUseruploaded($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Volumes($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Books (v1).
+ *
+ *
+ * Lets you search for books and manage your Google Books library.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_BooksService extends Google_Service {
+ public $bookshelves;
+ public $bookshelves_volumes;
+ public $cloudloading;
+ public $layers;
+ public $layers_annotationData;
+ public $layers_volumeAnnotations;
+ public $myconfig;
+ public $mylibrary_annotations;
+ public $mylibrary_bookshelves;
+ public $mylibrary_bookshelves_volumes;
+ public $mylibrary_readingpositions;
+ public $volumes;
+ public $volumes_associated;
+ public $volumes_mybooks;
+ public $volumes_recommended;
+ public $volumes_useruploaded;
+ /**
+ * Constructs the internal representation of the Books service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'books/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'books';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->bookshelves = new Google_BookshelvesServiceResource($this, $this->serviceName, 'bookshelves', json_decode('{"methods": {"get": {"id": "books.bookshelves.get", "path": "users/{userId}/bookshelves/{shelf}", "httpMethod": "GET", "parameters": {"shelf": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Bookshelf"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "list": {"id": "books.bookshelves.list", "path": "users/{userId}/bookshelves", "httpMethod": "GET", "parameters": {"source": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Bookshelves"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->bookshelves_volumes = new Google_BookshelvesVolumesServiceResource($this, $this->serviceName, 'volumes', json_decode('{"methods": {"list": {"id": "books.bookshelves.volumes.list", "path": "users/{userId}/bookshelves/{shelf}/volumes", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "shelf": {"type": "string", "required": true, "location": "path"}, "showPreorders": {"type": "boolean", "location": "query"}, "source": {"type": "string", "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Volumes"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->cloudloading = new Google_CloudloadingServiceResource($this, $this->serviceName, 'cloudloading', json_decode('{"methods": {"addBook": {"id": "books.cloudloading.addBook", "path": "cloudloading/addBook", "httpMethod": "POST", "parameters": {"drive_document_id": {"type": "string", "location": "query"}, "mime_type": {"type": "string", "location": "query"}, "name": {"type": "string", "location": "query"}, "upload_client_token": {"type": "string", "location": "query"}}, "response": {"$ref": "BooksCloudloadingResource"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "deleteBook": {"id": "books.cloudloading.deleteBook", "path": "cloudloading/deleteBook", "httpMethod": "POST", "parameters": {"volumeId": {"type": "string", "required": true, "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/books"]}, "updateBook": {"id": "books.cloudloading.updateBook", "path": "cloudloading/updateBook", "httpMethod": "POST", "request": {"$ref": "BooksCloudloadingResource"}, "response": {"$ref": "BooksCloudloadingResource"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->layers = new Google_LayersServiceResource($this, $this->serviceName, 'layers', json_decode('{"methods": {"get": {"id": "books.layers.get", "path": "volumes/{volumeId}/layersummary/{summaryId}", "httpMethod": "GET", "parameters": {"contentVersion": {"type": "string", "location": "query"}, "source": {"type": "string", "location": "query"}, "summaryId": {"type": "string", "required": true, "location": "path"}, "volumeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Layersummary"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "list": {"id": "books.layers.list", "path": "volumes/{volumeId}/layersummary", "httpMethod": "GET", "parameters": {"contentVersion": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "200", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Layersummaries"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->layers_annotationData = new Google_LayersAnnotationDataServiceResource($this, $this->serviceName, 'annotationData', json_decode('{"methods": {"get": {"id": "books.layers.annotationData.get", "path": "volumes/{volumeId}/layers/{layerId}/data/{annotationDataId}", "httpMethod": "GET", "parameters": {"annotationDataId": {"type": "string", "required": true, "location": "path"}, "contentVersion": {"type": "string", "required": true, "location": "query"}, "h": {"type": "integer", "format": "int32", "location": "query"}, "layerId": {"type": "string", "required": true, "location": "path"}, "locale": {"type": "string", "location": "query"}, "scale": {"type": "integer", "format": "int32", "minimum": "0", "location": "query"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}, "w": {"type": "integer", "format": "int32", "location": "query"}}, "response": {"$ref": "Annotationdata"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "list": {"id": "books.layers.annotationData.list", "path": "volumes/{volumeId}/layers/{layerId}/data", "httpMethod": "GET", "parameters": {"annotationDataId": {"type": "string", "repeated": true, "location": "query"}, "contentVersion": {"type": "string", "required": true, "location": "query"}, "h": {"type": "integer", "format": "int32", "location": "query"}, "layerId": {"type": "string", "required": true, "location": "path"}, "locale": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "200", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "scale": {"type": "integer", "format": "int32", "minimum": "0", "location": "query"}, "source": {"type": "string", "location": "query"}, "updatedMax": {"type": "string", "location": "query"}, "updatedMin": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}, "w": {"type": "integer", "format": "int32", "location": "query"}}, "response": {"$ref": "Annotationsdata"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->layers_volumeAnnotations = new Google_LayersVolumeAnnotationsServiceResource($this, $this->serviceName, 'volumeAnnotations', json_decode('{"methods": {"get": {"id": "books.layers.volumeAnnotations.get", "path": "volumes/{volumeId}/layers/{layerId}/annotations/{annotationId}", "httpMethod": "GET", "parameters": {"annotationId": {"type": "string", "required": true, "location": "path"}, "layerId": {"type": "string", "required": true, "location": "path"}, "locale": {"type": "string", "location": "query"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Volumeannotation"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "list": {"id": "books.layers.volumeAnnotations.list", "path": "volumes/{volumeId}/layers/{layerId}", "httpMethod": "GET", "parameters": {"contentVersion": {"type": "string", "required": true, "location": "query"}, "endOffset": {"type": "string", "location": "query"}, "endPosition": {"type": "string", "location": "query"}, "layerId": {"type": "string", "required": true, "location": "path"}, "locale": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "200", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "showDeleted": {"type": "boolean", "location": "query"}, "source": {"type": "string", "location": "query"}, "startOffset": {"type": "string", "location": "query"}, "startPosition": {"type": "string", "location": "query"}, "updatedMax": {"type": "string", "location": "query"}, "updatedMin": {"type": "string", "location": "query"}, "volumeAnnotationsVersion": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Volumeannotations"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->myconfig = new Google_MyconfigServiceResource($this, $this->serviceName, 'myconfig', json_decode('{"methods": {"releaseDownloadAccess": {"id": "books.myconfig.releaseDownloadAccess", "path": "myconfig/releaseDownloadAccess", "httpMethod": "POST", "parameters": {"cpksver": {"type": "string", "required": true, "location": "query"}, "locale": {"type": "string", "location": "query"}, "source": {"type": "string", "location": "query"}, "volumeIds": {"type": "string", "required": true, "repeated": true, "location": "query"}}, "response": {"$ref": "DownloadAccesses"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "requestAccess": {"id": "books.myconfig.requestAccess", "path": "myconfig/requestAccess", "httpMethod": "POST", "parameters": {"cpksver": {"type": "string", "required": true, "location": "query"}, "locale": {"type": "string", "location": "query"}, "nonce": {"type": "string", "required": true, "location": "query"}, "source": {"type": "string", "required": true, "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "RequestAccess"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "syncVolumeLicenses": {"id": "books.myconfig.syncVolumeLicenses", "path": "myconfig/syncVolumeLicenses", "httpMethod": "POST", "parameters": {"cpksver": {"type": "string", "required": true, "location": "query"}, "locale": {"type": "string", "location": "query"}, "nonce": {"type": "string", "required": true, "location": "query"}, "showPreorders": {"type": "boolean", "location": "query"}, "source": {"type": "string", "required": true, "location": "query"}, "volumeIds": {"type": "string", "repeated": true, "location": "query"}}, "response": {"$ref": "Volumes"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->mylibrary_annotations = new Google_MylibraryAnnotationsServiceResource($this, $this->serviceName, 'annotations', json_decode('{"methods": {"delete": {"id": "books.mylibrary.annotations.delete", "path": "mylibrary/annotations/{annotationId}", "httpMethod": "DELETE", "parameters": {"annotationId": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/books"]}, "get": {"id": "books.mylibrary.annotations.get", "path": "mylibrary/annotations/{annotationId}", "httpMethod": "GET", "parameters": {"annotationId": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}}, "response": {"$ref": "Annotation"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "insert": {"id": "books.mylibrary.annotations.insert", "path": "mylibrary/annotations", "httpMethod": "POST", "parameters": {"source": {"type": "string", "location": "query"}}, "request": {"$ref": "Annotation"}, "response": {"$ref": "Annotation"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "list": {"id": "books.mylibrary.annotations.list", "path": "mylibrary/annotations", "httpMethod": "GET", "parameters": {"contentVersion": {"type": "string", "location": "query"}, "layerId": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "40", "location": "query"}, "pageIds": {"type": "string", "repeated": true, "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "showDeleted": {"type": "boolean", "location": "query"}, "source": {"type": "string", "location": "query"}, "updatedMax": {"type": "string", "location": "query"}, "updatedMin": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "location": "query"}}, "response": {"$ref": "Annotations"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "update": {"id": "books.mylibrary.annotations.update", "path": "mylibrary/annotations/{annotationId}", "httpMethod": "PUT", "parameters": {"annotationId": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}}, "request": {"$ref": "Annotation"}, "response": {"$ref": "Annotation"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->mylibrary_bookshelves = new Google_MylibraryBookshelvesServiceResource($this, $this->serviceName, 'bookshelves', json_decode('{"methods": {"addVolume": {"id": "books.mylibrary.bookshelves.addVolume", "path": "mylibrary/bookshelves/{shelf}/addVolume", "httpMethod": "POST", "parameters": {"shelf": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/books"]}, "clearVolumes": {"id": "books.mylibrary.bookshelves.clearVolumes", "path": "mylibrary/bookshelves/{shelf}/clearVolumes", "httpMethod": "POST", "parameters": {"shelf": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/books"]}, "get": {"id": "books.mylibrary.bookshelves.get", "path": "mylibrary/bookshelves/{shelf}", "httpMethod": "GET", "parameters": {"shelf": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}}, "response": {"$ref": "Bookshelf"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "list": {"id": "books.mylibrary.bookshelves.list", "path": "mylibrary/bookshelves", "httpMethod": "GET", "parameters": {"source": {"type": "string", "location": "query"}}, "response": {"$ref": "Bookshelves"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "moveVolume": {"id": "books.mylibrary.bookshelves.moveVolume", "path": "mylibrary/bookshelves/{shelf}/moveVolume", "httpMethod": "POST", "parameters": {"shelf": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "query"}, "volumePosition": {"type": "integer", "required": true, "format": "int32", "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/books"]}, "removeVolume": {"id": "books.mylibrary.bookshelves.removeVolume", "path": "mylibrary/bookshelves/{shelf}/removeVolume", "httpMethod": "POST", "parameters": {"shelf": {"type": "string", "required": true, "location": "path"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->mylibrary_bookshelves_volumes = new Google_MylibraryBookshelvesVolumesServiceResource($this, $this->serviceName, 'volumes', json_decode('{"methods": {"list": {"id": "books.mylibrary.bookshelves.volumes.list", "path": "mylibrary/bookshelves/{shelf}/volumes", "httpMethod": "GET", "parameters": {"country": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "projection": {"type": "string", "enum": ["full", "lite"], "location": "query"}, "q": {"type": "string", "location": "query"}, "shelf": {"type": "string", "required": true, "location": "path"}, "showPreorders": {"type": "boolean", "location": "query"}, "source": {"type": "string", "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}}, "response": {"$ref": "Volumes"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->mylibrary_readingpositions = new Google_MylibraryReadingpositionsServiceResource($this, $this->serviceName, 'readingpositions', json_decode('{"methods": {"get": {"id": "books.mylibrary.readingpositions.get", "path": "mylibrary/readingpositions/{volumeId}", "httpMethod": "GET", "parameters": {"contentVersion": {"type": "string", "location": "query"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ReadingPosition"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "setPosition": {"id": "books.mylibrary.readingpositions.setPosition", "path": "mylibrary/readingpositions/{volumeId}/setPosition", "httpMethod": "POST", "parameters": {"action": {"type": "string", "enum": ["bookmark", "chapter", "next-page", "prev-page", "scroll", "search"], "location": "query"}, "contentVersion": {"type": "string", "location": "query"}, "deviceCookie": {"type": "string", "location": "query"}, "position": {"type": "string", "required": true, "location": "query"}, "source": {"type": "string", "location": "query"}, "timestamp": {"type": "string", "required": true, "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->volumes = new Google_VolumesServiceResource($this, $this->serviceName, 'volumes', json_decode('{"methods": {"get": {"id": "books.volumes.get", "path": "volumes/{volumeId}", "httpMethod": "GET", "parameters": {"country": {"type": "string", "location": "query"}, "partner": {"type": "string", "location": "query"}, "projection": {"type": "string", "enum": ["full", "lite"], "location": "query"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Volume"}, "scopes": ["https://www.googleapis.com/auth/books"]}, "list": {"id": "books.volumes.list", "path": "volumes", "httpMethod": "GET", "parameters": {"download": {"type": "string", "enum": ["epub"], "location": "query"}, "filter": {"type": "string", "enum": ["ebooks", "free-ebooks", "full", "paid-ebooks", "partial"], "location": "query"}, "langRestrict": {"type": "string", "location": "query"}, "libraryRestrict": {"type": "string", "enum": ["my-library", "no-restrict"], "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "40", "location": "query"}, "orderBy": {"type": "string", "enum": ["newest", "relevance"], "location": "query"}, "partner": {"type": "string", "location": "query"}, "printType": {"type": "string", "enum": ["all", "books", "magazines"], "location": "query"}, "projection": {"type": "string", "enum": ["full", "lite"], "location": "query"}, "q": {"type": "string", "required": true, "location": "query"}, "showPreorders": {"type": "boolean", "location": "query"}, "source": {"type": "string", "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}}, "response": {"$ref": "Volumes"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->volumes_associated = new Google_VolumesAssociatedServiceResource($this, $this->serviceName, 'associated', json_decode('{"methods": {"list": {"id": "books.volumes.associated.list", "path": "volumes/{volumeId}/associated", "httpMethod": "GET", "parameters": {"association": {"type": "string", "enum": ["end-of-sample", "end-of-volume"], "location": "query"}, "locale": {"type": "string", "location": "query"}, "source": {"type": "string", "location": "query"}, "volumeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Volumes"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->volumes_mybooks = new Google_VolumesMybooksServiceResource($this, $this->serviceName, 'mybooks', json_decode('{"methods": {"list": {"id": "books.volumes.mybooks.list", "path": "volumes/mybooks", "httpMethod": "GET", "parameters": {"acquireMethod": {"type": "string", "enum": ["PREORDERED", "PUBLIC_DOMAIN", "PURCHASED", "SAMPLE", "UPLOADED"], "repeated": true, "location": "query"}, "locale": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "processingState": {"type": "string", "enum": ["COMPLETED_FAILED", "COMPLETED_SUCCESS", "RUNNING"], "repeated": true, "location": "query"}, "source": {"type": "string", "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}}, "response": {"$ref": "Volumes"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->volumes_recommended = new Google_VolumesRecommendedServiceResource($this, $this->serviceName, 'recommended', json_decode('{"methods": {"list": {"id": "books.volumes.recommended.list", "path": "volumes/recommended", "httpMethod": "GET", "parameters": {"locale": {"type": "string", "location": "query"}, "source": {"type": "string", "location": "query"}}, "response": {"$ref": "Volumes"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+ $this->volumes_useruploaded = new Google_VolumesUseruploadedServiceResource($this, $this->serviceName, 'useruploaded', json_decode('{"methods": {"list": {"id": "books.volumes.useruploaded.list", "path": "volumes/useruploaded", "httpMethod": "GET", "parameters": {"locale": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "40", "location": "query"}, "processingState": {"type": "string", "enum": ["COMPLETED_FAILED", "COMPLETED_SUCCESS", "RUNNING"], "repeated": true, "location": "query"}, "source": {"type": "string", "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "volumeId": {"type": "string", "repeated": true, "location": "query"}}, "response": {"$ref": "Volumes"}, "scopes": ["https://www.googleapis.com/auth/books"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Annotation extends Google_Model {
+ public $afterSelectedText;
+ public $beforeSelectedText;
+ protected $__clientVersionRangesType = 'Google_AnnotationClientVersionRanges';
+ protected $__clientVersionRangesDataType = '';
+ public $clientVersionRanges;
+ public $created;
+ protected $__currentVersionRangesType = 'Google_AnnotationCurrentVersionRanges';
+ protected $__currentVersionRangesDataType = '';
+ public $currentVersionRanges;
+ public $data;
+ public $deleted;
+ public $highlightStyle;
+ public $id;
+ public $kind;
+ public $layerId;
+ public $pageIds;
+ public $selectedText;
+ public $selfLink;
+ public $updated;
+ public $volumeId;
+ public function setAfterSelectedText( $afterSelectedText) {
+ $this->afterSelectedText = $afterSelectedText;
+ }
+ public function getAfterSelectedText() {
+ return $this->afterSelectedText;
+ }
+ public function setBeforeSelectedText( $beforeSelectedText) {
+ $this->beforeSelectedText = $beforeSelectedText;
+ }
+ public function getBeforeSelectedText() {
+ return $this->beforeSelectedText;
+ }
+ public function setClientVersionRanges(Google_AnnotationClientVersionRanges $clientVersionRanges) {
+ $this->clientVersionRanges = $clientVersionRanges;
+ }
+ public function getClientVersionRanges() {
+ return $this->clientVersionRanges;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setCurrentVersionRanges(Google_AnnotationCurrentVersionRanges $currentVersionRanges) {
+ $this->currentVersionRanges = $currentVersionRanges;
+ }
+ public function getCurrentVersionRanges() {
+ return $this->currentVersionRanges;
+ }
+ public function setData( $data) {
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setDeleted( $deleted) {
+ $this->deleted = $deleted;
+ }
+ public function getDeleted() {
+ return $this->deleted;
+ }
+ public function setHighlightStyle( $highlightStyle) {
+ $this->highlightStyle = $highlightStyle;
+ }
+ public function getHighlightStyle() {
+ return $this->highlightStyle;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLayerId( $layerId) {
+ $this->layerId = $layerId;
+ }
+ public function getLayerId() {
+ return $this->layerId;
+ }
+ public function setPageIds(/* array(Google_string) */ $pageIds) {
+ $this->assertIsArray($pageIds, 'Google_string', __METHOD__);
+ $this->pageIds = $pageIds;
+ }
+ public function getPageIds() {
+ return $this->pageIds;
+ }
+ public function setSelectedText( $selectedText) {
+ $this->selectedText = $selectedText;
+ }
+ public function getSelectedText() {
+ return $this->selectedText;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_AnnotationClientVersionRanges extends Google_Model {
+ protected $__cfiRangeType = 'Google_BooksAnnotationsRange';
+ protected $__cfiRangeDataType = '';
+ public $cfiRange;
+ public $contentVersion;
+ protected $__gbImageRangeType = 'Google_BooksAnnotationsRange';
+ protected $__gbImageRangeDataType = '';
+ public $gbImageRange;
+ protected $__gbTextRangeType = 'Google_BooksAnnotationsRange';
+ protected $__gbTextRangeDataType = '';
+ public $gbTextRange;
+ protected $__imageCfiRangeType = 'Google_BooksAnnotationsRange';
+ protected $__imageCfiRangeDataType = '';
+ public $imageCfiRange;
+ public function setCfiRange(Google_BooksAnnotationsRange $cfiRange) {
+ $this->cfiRange = $cfiRange;
+ }
+ public function getCfiRange() {
+ return $this->cfiRange;
+ }
+ public function setContentVersion( $contentVersion) {
+ $this->contentVersion = $contentVersion;
+ }
+ public function getContentVersion() {
+ return $this->contentVersion;
+ }
+ public function setGbImageRange(Google_BooksAnnotationsRange $gbImageRange) {
+ $this->gbImageRange = $gbImageRange;
+ }
+ public function getGbImageRange() {
+ return $this->gbImageRange;
+ }
+ public function setGbTextRange(Google_BooksAnnotationsRange $gbTextRange) {
+ $this->gbTextRange = $gbTextRange;
+ }
+ public function getGbTextRange() {
+ return $this->gbTextRange;
+ }
+ public function setImageCfiRange(Google_BooksAnnotationsRange $imageCfiRange) {
+ $this->imageCfiRange = $imageCfiRange;
+ }
+ public function getImageCfiRange() {
+ return $this->imageCfiRange;
+ }
+}
+
+class Google_AnnotationCurrentVersionRanges extends Google_Model {
+ protected $__cfiRangeType = 'Google_BooksAnnotationsRange';
+ protected $__cfiRangeDataType = '';
+ public $cfiRange;
+ public $contentVersion;
+ protected $__gbImageRangeType = 'Google_BooksAnnotationsRange';
+ protected $__gbImageRangeDataType = '';
+ public $gbImageRange;
+ protected $__gbTextRangeType = 'Google_BooksAnnotationsRange';
+ protected $__gbTextRangeDataType = '';
+ public $gbTextRange;
+ protected $__imageCfiRangeType = 'Google_BooksAnnotationsRange';
+ protected $__imageCfiRangeDataType = '';
+ public $imageCfiRange;
+ public function setCfiRange(Google_BooksAnnotationsRange $cfiRange) {
+ $this->cfiRange = $cfiRange;
+ }
+ public function getCfiRange() {
+ return $this->cfiRange;
+ }
+ public function setContentVersion( $contentVersion) {
+ $this->contentVersion = $contentVersion;
+ }
+ public function getContentVersion() {
+ return $this->contentVersion;
+ }
+ public function setGbImageRange(Google_BooksAnnotationsRange $gbImageRange) {
+ $this->gbImageRange = $gbImageRange;
+ }
+ public function getGbImageRange() {
+ return $this->gbImageRange;
+ }
+ public function setGbTextRange(Google_BooksAnnotationsRange $gbTextRange) {
+ $this->gbTextRange = $gbTextRange;
+ }
+ public function getGbTextRange() {
+ return $this->gbTextRange;
+ }
+ public function setImageCfiRange(Google_BooksAnnotationsRange $imageCfiRange) {
+ $this->imageCfiRange = $imageCfiRange;
+ }
+ public function getImageCfiRange() {
+ return $this->imageCfiRange;
+ }
+}
+
+class Google_Annotationdata extends Google_Model {
+ public $annotationType;
+ public $data;
+ public $encoded_data;
+ public $id;
+ public $kind;
+ public $layerId;
+ public $selfLink;
+ public $updated;
+ public $volumeId;
+ public function setAnnotationType( $annotationType) {
+ $this->annotationType = $annotationType;
+ }
+ public function getAnnotationType() {
+ return $this->annotationType;
+ }
+ public function setData( $data) {
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setEncoded_data( $encoded_data) {
+ $this->encoded_data = $encoded_data;
+ }
+ public function getEncoded_data() {
+ return $this->encoded_data;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLayerId( $layerId) {
+ $this->layerId = $layerId;
+ }
+ public function getLayerId() {
+ return $this->layerId;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_Annotations extends Google_Model {
+ protected $__itemsType = 'Google_Annotation';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public function setItems(/* array(Google_Annotation) */ $items) {
+ $this->assertIsArray($items, 'Google_Annotation', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Annotationsdata extends Google_Model {
+ protected $__itemsType = 'Google_Annotationdata';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public function setItems(/* array(Google_Annotationdata) */ $items) {
+ $this->assertIsArray($items, 'Google_Annotationdata', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_BooksAnnotationsRange extends Google_Model {
+ public $endOffset;
+ public $endPosition;
+ public $startOffset;
+ public $startPosition;
+ public function setEndOffset( $endOffset) {
+ $this->endOffset = $endOffset;
+ }
+ public function getEndOffset() {
+ return $this->endOffset;
+ }
+ public function setEndPosition( $endPosition) {
+ $this->endPosition = $endPosition;
+ }
+ public function getEndPosition() {
+ return $this->endPosition;
+ }
+ public function setStartOffset( $startOffset) {
+ $this->startOffset = $startOffset;
+ }
+ public function getStartOffset() {
+ return $this->startOffset;
+ }
+ public function setStartPosition( $startPosition) {
+ $this->startPosition = $startPosition;
+ }
+ public function getStartPosition() {
+ return $this->startPosition;
+ }
+}
+
+class Google_BooksCloudloadingResource extends Google_Model {
+ public $author;
+ public $processingState;
+ public $title;
+ public $volumeId;
+ public function setAuthor( $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setProcessingState( $processingState) {
+ $this->processingState = $processingState;
+ }
+ public function getProcessingState() {
+ return $this->processingState;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_BooksLayerDictData extends Google_Model {
+ protected $__commonType = 'Google_BooksLayerDictDataCommon';
+ protected $__commonDataType = '';
+ public $common;
+ protected $__dictType = 'Google_BooksLayerDictDataDict';
+ protected $__dictDataType = '';
+ public $dict;
+ public function setCommon(Google_BooksLayerDictDataCommon $common) {
+ $this->common = $common;
+ }
+ public function getCommon() {
+ return $this->common;
+ }
+ public function setDict(Google_BooksLayerDictDataDict $dict) {
+ $this->dict = $dict;
+ }
+ public function getDict() {
+ return $this->dict;
+ }
+}
+
+class Google_BooksLayerDictDataCommon extends Google_Model {
+ public $title;
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_BooksLayerDictDataDict extends Google_Model {
+ protected $__sourceType = 'Google_BooksLayerDictDataDictSource';
+ protected $__sourceDataType = '';
+ public $source;
+ protected $__wordsType = 'Google_BooksLayerDictDataDictWords';
+ protected $__wordsDataType = 'array';
+ public $words;
+ public function setSource(Google_BooksLayerDictDataDictSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setWords(/* array(Google_BooksLayerDictDataDictWords) */ $words) {
+ $this->assertIsArray($words, 'Google_BooksLayerDictDataDictWords', __METHOD__);
+ $this->words = $words;
+ }
+ public function getWords() {
+ return $this->words;
+ }
+}
+
+class Google_BooksLayerDictDataDictSource extends Google_Model {
+ public $attribution;
+ public $url;
+ public function setAttribution( $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_BooksLayerDictDataDictWords extends Google_Model {
+ protected $__derivativesType = 'Google_BooksLayerDictDataDictWordsDerivatives';
+ protected $__derivativesDataType = 'array';
+ public $derivatives;
+ protected $__examplesType = 'Google_BooksLayerDictDataDictWordsExamples';
+ protected $__examplesDataType = 'array';
+ public $examples;
+ protected $__sensesType = 'Google_BooksLayerDictDataDictWordsSenses';
+ protected $__sensesDataType = 'array';
+ public $senses;
+ protected $__sourceType = 'Google_BooksLayerDictDataDictWordsSource';
+ protected $__sourceDataType = '';
+ public $source;
+ public function setDerivatives(/* array(Google_BooksLayerDictDataDictWordsDerivatives) */ $derivatives) {
+ $this->assertIsArray($derivatives, 'Google_BooksLayerDictDataDictWordsDerivatives', __METHOD__);
+ $this->derivatives = $derivatives;
+ }
+ public function getDerivatives() {
+ return $this->derivatives;
+ }
+ public function setExamples(/* array(Google_BooksLayerDictDataDictWordsExamples) */ $examples) {
+ $this->assertIsArray($examples, 'Google_BooksLayerDictDataDictWordsExamples', __METHOD__);
+ $this->examples = $examples;
+ }
+ public function getExamples() {
+ return $this->examples;
+ }
+ public function setSenses(/* array(Google_BooksLayerDictDataDictWordsSenses) */ $senses) {
+ $this->assertIsArray($senses, 'Google_BooksLayerDictDataDictWordsSenses', __METHOD__);
+ $this->senses = $senses;
+ }
+ public function getSenses() {
+ return $this->senses;
+ }
+ public function setSource(Google_BooksLayerDictDataDictWordsSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsDerivatives extends Google_Model {
+ protected $__sourceType = 'Google_BooksLayerDictDataDictWordsDerivativesSource';
+ protected $__sourceDataType = '';
+ public $source;
+ public $text;
+ public function setSource(Google_BooksLayerDictDataDictWordsDerivativesSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsDerivativesSource extends Google_Model {
+ public $attribution;
+ public $url;
+ public function setAttribution( $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsExamples extends Google_Model {
+ protected $__sourceType = 'Google_BooksLayerDictDataDictWordsExamplesSource';
+ protected $__sourceDataType = '';
+ public $source;
+ public $text;
+ public function setSource(Google_BooksLayerDictDataDictWordsExamplesSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsExamplesSource extends Google_Model {
+ public $attribution;
+ public $url;
+ public function setAttribution( $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSenses extends Google_Model {
+ protected $__conjugationsType = 'Google_BooksLayerDictDataDictWordsSensesConjugations';
+ protected $__conjugationsDataType = 'array';
+ public $conjugations;
+ protected $__definitionsType = 'Google_BooksLayerDictDataDictWordsSensesDefinitions';
+ protected $__definitionsDataType = 'array';
+ public $definitions;
+ public $partOfSpeech;
+ public $pronunciation;
+ public $pronunciationUrl;
+ protected $__sourceType = 'Google_BooksLayerDictDataDictWordsSensesSource';
+ protected $__sourceDataType = '';
+ public $source;
+ public $syllabification;
+ protected $__synonymsType = 'Google_BooksLayerDictDataDictWordsSensesSynonyms';
+ protected $__synonymsDataType = 'array';
+ public $synonyms;
+ public function setConjugations(/* array(Google_BooksLayerDictDataDictWordsSensesConjugations) */ $conjugations) {
+ $this->assertIsArray($conjugations, 'Google_BooksLayerDictDataDictWordsSensesConjugations', __METHOD__);
+ $this->conjugations = $conjugations;
+ }
+ public function getConjugations() {
+ return $this->conjugations;
+ }
+ public function setDefinitions(/* array(Google_BooksLayerDictDataDictWordsSensesDefinitions) */ $definitions) {
+ $this->assertIsArray($definitions, 'Google_BooksLayerDictDataDictWordsSensesDefinitions', __METHOD__);
+ $this->definitions = $definitions;
+ }
+ public function getDefinitions() {
+ return $this->definitions;
+ }
+ public function setPartOfSpeech( $partOfSpeech) {
+ $this->partOfSpeech = $partOfSpeech;
+ }
+ public function getPartOfSpeech() {
+ return $this->partOfSpeech;
+ }
+ public function setPronunciation( $pronunciation) {
+ $this->pronunciation = $pronunciation;
+ }
+ public function getPronunciation() {
+ return $this->pronunciation;
+ }
+ public function setPronunciationUrl( $pronunciationUrl) {
+ $this->pronunciationUrl = $pronunciationUrl;
+ }
+ public function getPronunciationUrl() {
+ return $this->pronunciationUrl;
+ }
+ public function setSource(Google_BooksLayerDictDataDictWordsSensesSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setSyllabification( $syllabification) {
+ $this->syllabification = $syllabification;
+ }
+ public function getSyllabification() {
+ return $this->syllabification;
+ }
+ public function setSynonyms(/* array(Google_BooksLayerDictDataDictWordsSensesSynonyms) */ $synonyms) {
+ $this->assertIsArray($synonyms, 'Google_BooksLayerDictDataDictWordsSensesSynonyms', __METHOD__);
+ $this->synonyms = $synonyms;
+ }
+ public function getSynonyms() {
+ return $this->synonyms;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSensesConjugations extends Google_Model {
+ public $type;
+ public $value;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSensesDefinitions extends Google_Model {
+ public $definition;
+ protected $__examplesType = 'Google_BooksLayerDictDataDictWordsSensesDefinitionsExamples';
+ protected $__examplesDataType = 'array';
+ public $examples;
+ public function setDefinition( $definition) {
+ $this->definition = $definition;
+ }
+ public function getDefinition() {
+ return $this->definition;
+ }
+ public function setExamples(/* array(Google_BooksLayerDictDataDictWordsSensesDefinitionsExamples) */ $examples) {
+ $this->assertIsArray($examples, 'Google_BooksLayerDictDataDictWordsSensesDefinitionsExamples', __METHOD__);
+ $this->examples = $examples;
+ }
+ public function getExamples() {
+ return $this->examples;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSensesDefinitionsExamples extends Google_Model {
+ protected $__sourceType = 'Google_BooksLayerDictDataDictWordsSensesDefinitionsExamplesSource';
+ protected $__sourceDataType = '';
+ public $source;
+ public $text;
+ public function setSource(Google_BooksLayerDictDataDictWordsSensesDefinitionsExamplesSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSensesDefinitionsExamplesSource extends Google_Model {
+ public $attribution;
+ public $url;
+ public function setAttribution( $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSensesSource extends Google_Model {
+ public $attribution;
+ public $url;
+ public function setAttribution( $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSensesSynonyms extends Google_Model {
+ protected $__sourceType = 'Google_BooksLayerDictDataDictWordsSensesSynonymsSource';
+ protected $__sourceDataType = '';
+ public $source;
+ public $text;
+ public function setSource(Google_BooksLayerDictDataDictWordsSensesSynonymsSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSensesSynonymsSource extends Google_Model {
+ public $attribution;
+ public $url;
+ public function setAttribution( $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_BooksLayerDictDataDictWordsSource extends Google_Model {
+ public $attribution;
+ public $url;
+ public function setAttribution( $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_BooksLayerGeoData extends Google_Model {
+ protected $__commonType = 'Google_BooksLayerGeoDataCommon';
+ protected $__commonDataType = '';
+ public $common;
+ protected $__geoType = 'Google_BooksLayerGeoDataGeo';
+ protected $__geoDataType = '';
+ public $geo;
+ public function setCommon(Google_BooksLayerGeoDataCommon $common) {
+ $this->common = $common;
+ }
+ public function getCommon() {
+ return $this->common;
+ }
+ public function setGeo(Google_BooksLayerGeoDataGeo $geo) {
+ $this->geo = $geo;
+ }
+ public function getGeo() {
+ return $this->geo;
+ }
+}
+
+class Google_BooksLayerGeoDataCommon extends Google_Model {
+ public $lang;
+ public $previewImageUrl;
+ public $snippet;
+ public $snippetUrl;
+ public $title;
+ public function setLang( $lang) {
+ $this->lang = $lang;
+ }
+ public function getLang() {
+ return $this->lang;
+ }
+ public function setPreviewImageUrl( $previewImageUrl) {
+ $this->previewImageUrl = $previewImageUrl;
+ }
+ public function getPreviewImageUrl() {
+ return $this->previewImageUrl;
+ }
+ public function setSnippet( $snippet) {
+ $this->snippet = $snippet;
+ }
+ public function getSnippet() {
+ return $this->snippet;
+ }
+ public function setSnippetUrl( $snippetUrl) {
+ $this->snippetUrl = $snippetUrl;
+ }
+ public function getSnippetUrl() {
+ return $this->snippetUrl;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_BooksLayerGeoDataGeo extends Google_Model {
+ protected $__boundaryType = 'Google_BooksLayerGeoDataGeoBoundary';
+ protected $__boundaryDataType = 'array';
+ public $boundary;
+ public $cachePolicy;
+ public $countryCode;
+ public $latitude;
+ public $longitude;
+ public $mapType;
+ protected $__viewportType = 'Google_BooksLayerGeoDataGeoViewport';
+ protected $__viewportDataType = '';
+ public $viewport;
+ public $zoom;
+ public function setBoundary(/* array(Google_BooksLayerGeoDataGeoBoundary) */ $boundary) {
+ $this->assertIsArray($boundary, 'Google_BooksLayerGeoDataGeoBoundary', __METHOD__);
+ $this->boundary = $boundary;
+ }
+ public function getBoundary() {
+ return $this->boundary;
+ }
+ public function setCachePolicy( $cachePolicy) {
+ $this->cachePolicy = $cachePolicy;
+ }
+ public function getCachePolicy() {
+ return $this->cachePolicy;
+ }
+ public function setCountryCode( $countryCode) {
+ $this->countryCode = $countryCode;
+ }
+ public function getCountryCode() {
+ return $this->countryCode;
+ }
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+ public function setMapType( $mapType) {
+ $this->mapType = $mapType;
+ }
+ public function getMapType() {
+ return $this->mapType;
+ }
+ public function setViewport(Google_BooksLayerGeoDataGeoViewport $viewport) {
+ $this->viewport = $viewport;
+ }
+ public function getViewport() {
+ return $this->viewport;
+ }
+ public function setZoom( $zoom) {
+ $this->zoom = $zoom;
+ }
+ public function getZoom() {
+ return $this->zoom;
+ }
+}
+
+class Google_BooksLayerGeoDataGeoBoundary extends Google_Model {
+ public $latitude;
+ public $longitude;
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_BooksLayerGeoDataGeoViewport extends Google_Model {
+ protected $__hiType = 'Google_BooksLayerGeoDataGeoViewportHi';
+ protected $__hiDataType = '';
+ public $hi;
+ protected $__loType = 'Google_BooksLayerGeoDataGeoViewportLo';
+ protected $__loDataType = '';
+ public $lo;
+ public function setHi(Google_BooksLayerGeoDataGeoViewportHi $hi) {
+ $this->hi = $hi;
+ }
+ public function getHi() {
+ return $this->hi;
+ }
+ public function setLo(Google_BooksLayerGeoDataGeoViewportLo $lo) {
+ $this->lo = $lo;
+ }
+ public function getLo() {
+ return $this->lo;
+ }
+}
+
+class Google_BooksLayerGeoDataGeoViewportHi extends Google_Model {
+ public $latitude;
+ public $longitude;
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_BooksLayerGeoDataGeoViewportLo extends Google_Model {
+ public $latitude;
+ public $longitude;
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_Bookshelf extends Google_Model {
+ public $access;
+ public $created;
+ public $description;
+ public $id;
+ public $kind;
+ public $selfLink;
+ public $title;
+ public $updated;
+ public $volumeCount;
+ public $volumesLastUpdated;
+ public function setAccess( $access) {
+ $this->access = $access;
+ }
+ public function getAccess() {
+ return $this->access;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVolumeCount( $volumeCount) {
+ $this->volumeCount = $volumeCount;
+ }
+ public function getVolumeCount() {
+ return $this->volumeCount;
+ }
+ public function setVolumesLastUpdated( $volumesLastUpdated) {
+ $this->volumesLastUpdated = $volumesLastUpdated;
+ }
+ public function getVolumesLastUpdated() {
+ return $this->volumesLastUpdated;
+ }
+}
+
+class Google_Bookshelves extends Google_Model {
+ protected $__itemsType = 'Google_Bookshelf';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Bookshelf) */ $items) {
+ $this->assertIsArray($items, 'Google_Bookshelf', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_ConcurrentAccessRestriction extends Google_Model {
+ public $deviceAllowed;
+ public $kind;
+ public $maxConcurrentDevices;
+ public $message;
+ public $nonce;
+ public $reasonCode;
+ public $restricted;
+ public $signature;
+ public $source;
+ public $timeWindowSeconds;
+ public $volumeId;
+ public function setDeviceAllowed( $deviceAllowed) {
+ $this->deviceAllowed = $deviceAllowed;
+ }
+ public function getDeviceAllowed() {
+ return $this->deviceAllowed;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaxConcurrentDevices( $maxConcurrentDevices) {
+ $this->maxConcurrentDevices = $maxConcurrentDevices;
+ }
+ public function getMaxConcurrentDevices() {
+ return $this->maxConcurrentDevices;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+ public function setNonce( $nonce) {
+ $this->nonce = $nonce;
+ }
+ public function getNonce() {
+ return $this->nonce;
+ }
+ public function setReasonCode( $reasonCode) {
+ $this->reasonCode = $reasonCode;
+ }
+ public function getReasonCode() {
+ return $this->reasonCode;
+ }
+ public function setRestricted( $restricted) {
+ $this->restricted = $restricted;
+ }
+ public function getRestricted() {
+ return $this->restricted;
+ }
+ public function setSignature( $signature) {
+ $this->signature = $signature;
+ }
+ public function getSignature() {
+ return $this->signature;
+ }
+ public function setSource( $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setTimeWindowSeconds( $timeWindowSeconds) {
+ $this->timeWindowSeconds = $timeWindowSeconds;
+ }
+ public function getTimeWindowSeconds() {
+ return $this->timeWindowSeconds;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_DownloadAccessRestriction extends Google_Model {
+ public $deviceAllowed;
+ public $downloadsAcquired;
+ public $justAcquired;
+ public $kind;
+ public $maxDownloadDevices;
+ public $message;
+ public $nonce;
+ public $reasonCode;
+ public $restricted;
+ public $signature;
+ public $source;
+ public $volumeId;
+ public function setDeviceAllowed( $deviceAllowed) {
+ $this->deviceAllowed = $deviceAllowed;
+ }
+ public function getDeviceAllowed() {
+ return $this->deviceAllowed;
+ }
+ public function setDownloadsAcquired( $downloadsAcquired) {
+ $this->downloadsAcquired = $downloadsAcquired;
+ }
+ public function getDownloadsAcquired() {
+ return $this->downloadsAcquired;
+ }
+ public function setJustAcquired( $justAcquired) {
+ $this->justAcquired = $justAcquired;
+ }
+ public function getJustAcquired() {
+ return $this->justAcquired;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaxDownloadDevices( $maxDownloadDevices) {
+ $this->maxDownloadDevices = $maxDownloadDevices;
+ }
+ public function getMaxDownloadDevices() {
+ return $this->maxDownloadDevices;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+ public function setNonce( $nonce) {
+ $this->nonce = $nonce;
+ }
+ public function getNonce() {
+ return $this->nonce;
+ }
+ public function setReasonCode( $reasonCode) {
+ $this->reasonCode = $reasonCode;
+ }
+ public function getReasonCode() {
+ return $this->reasonCode;
+ }
+ public function setRestricted( $restricted) {
+ $this->restricted = $restricted;
+ }
+ public function getRestricted() {
+ return $this->restricted;
+ }
+ public function setSignature( $signature) {
+ $this->signature = $signature;
+ }
+ public function getSignature() {
+ return $this->signature;
+ }
+ public function setSource( $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_DownloadAccesses extends Google_Model {
+ protected $__downloadAccessListType = 'Google_DownloadAccessRestriction';
+ protected $__downloadAccessListDataType = 'array';
+ public $downloadAccessList;
+ public $kind;
+ public function setDownloadAccessList(/* array(Google_DownloadAccessRestriction) */ $downloadAccessList) {
+ $this->assertIsArray($downloadAccessList, 'Google_DownloadAccessRestriction', __METHOD__);
+ $this->downloadAccessList = $downloadAccessList;
+ }
+ public function getDownloadAccessList() {
+ return $this->downloadAccessList;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Layersummaries extends Google_Model {
+ protected $__itemsType = 'Google_Layersummary';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $totalItems;
+ public function setItems(/* array(Google_Layersummary) */ $items) {
+ $this->assertIsArray($items, 'Google_Layersummary', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Layersummary extends Google_Model {
+ public $annotationCount;
+ public $annotationTypes;
+ public $annotationsDataLink;
+ public $annotationsLink;
+ public $contentVersion;
+ public $dataCount;
+ public $id;
+ public $kind;
+ public $layerId;
+ public $selfLink;
+ public $updated;
+ public $volumeAnnotationsVersion;
+ public $volumeId;
+ public function setAnnotationCount( $annotationCount) {
+ $this->annotationCount = $annotationCount;
+ }
+ public function getAnnotationCount() {
+ return $this->annotationCount;
+ }
+ public function setAnnotationTypes(/* array(Google_string) */ $annotationTypes) {
+ $this->assertIsArray($annotationTypes, 'Google_string', __METHOD__);
+ $this->annotationTypes = $annotationTypes;
+ }
+ public function getAnnotationTypes() {
+ return $this->annotationTypes;
+ }
+ public function setAnnotationsDataLink( $annotationsDataLink) {
+ $this->annotationsDataLink = $annotationsDataLink;
+ }
+ public function getAnnotationsDataLink() {
+ return $this->annotationsDataLink;
+ }
+ public function setAnnotationsLink( $annotationsLink) {
+ $this->annotationsLink = $annotationsLink;
+ }
+ public function getAnnotationsLink() {
+ return $this->annotationsLink;
+ }
+ public function setContentVersion( $contentVersion) {
+ $this->contentVersion = $contentVersion;
+ }
+ public function getContentVersion() {
+ return $this->contentVersion;
+ }
+ public function setDataCount( $dataCount) {
+ $this->dataCount = $dataCount;
+ }
+ public function getDataCount() {
+ return $this->dataCount;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLayerId( $layerId) {
+ $this->layerId = $layerId;
+ }
+ public function getLayerId() {
+ return $this->layerId;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVolumeAnnotationsVersion( $volumeAnnotationsVersion) {
+ $this->volumeAnnotationsVersion = $volumeAnnotationsVersion;
+ }
+ public function getVolumeAnnotationsVersion() {
+ return $this->volumeAnnotationsVersion;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_ReadingPosition extends Google_Model {
+ public $epubCfiPosition;
+ public $gbImagePosition;
+ public $gbTextPosition;
+ public $kind;
+ public $pdfPosition;
+ public $updated;
+ public $volumeId;
+ public function setEpubCfiPosition( $epubCfiPosition) {
+ $this->epubCfiPosition = $epubCfiPosition;
+ }
+ public function getEpubCfiPosition() {
+ return $this->epubCfiPosition;
+ }
+ public function setGbImagePosition( $gbImagePosition) {
+ $this->gbImagePosition = $gbImagePosition;
+ }
+ public function getGbImagePosition() {
+ return $this->gbImagePosition;
+ }
+ public function setGbTextPosition( $gbTextPosition) {
+ $this->gbTextPosition = $gbTextPosition;
+ }
+ public function getGbTextPosition() {
+ return $this->gbTextPosition;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPdfPosition( $pdfPosition) {
+ $this->pdfPosition = $pdfPosition;
+ }
+ public function getPdfPosition() {
+ return $this->pdfPosition;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_RequestAccess extends Google_Model {
+ protected $__concurrentAccessType = 'Google_ConcurrentAccessRestriction';
+ protected $__concurrentAccessDataType = '';
+ public $concurrentAccess;
+ protected $__downloadAccessType = 'Google_DownloadAccessRestriction';
+ protected $__downloadAccessDataType = '';
+ public $downloadAccess;
+ public $kind;
+ public function setConcurrentAccess(Google_ConcurrentAccessRestriction $concurrentAccess) {
+ $this->concurrentAccess = $concurrentAccess;
+ }
+ public function getConcurrentAccess() {
+ return $this->concurrentAccess;
+ }
+ public function setDownloadAccess(Google_DownloadAccessRestriction $downloadAccess) {
+ $this->downloadAccess = $downloadAccess;
+ }
+ public function getDownloadAccess() {
+ return $this->downloadAccess;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Review extends Google_Model {
+ protected $__authorType = 'Google_ReviewAuthor';
+ protected $__authorDataType = '';
+ public $author;
+ public $content;
+ public $date;
+ public $fullTextUrl;
+ public $kind;
+ public $rating;
+ protected $__sourceType = 'Google_ReviewSource';
+ protected $__sourceDataType = '';
+ public $source;
+ public $title;
+ public $type;
+ public $volumeId;
+ public function setAuthor(Google_ReviewAuthor $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setDate( $date) {
+ $this->date = $date;
+ }
+ public function getDate() {
+ return $this->date;
+ }
+ public function setFullTextUrl( $fullTextUrl) {
+ $this->fullTextUrl = $fullTextUrl;
+ }
+ public function getFullTextUrl() {
+ return $this->fullTextUrl;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRating( $rating) {
+ $this->rating = $rating;
+ }
+ public function getRating() {
+ return $this->rating;
+ }
+ public function setSource(Google_ReviewSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_ReviewAuthor extends Google_Model {
+ public $displayName;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+}
+
+class Google_ReviewSource extends Google_Model {
+ public $description;
+ public $extraDescription;
+ public $url;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setExtraDescription( $extraDescription) {
+ $this->extraDescription = $extraDescription;
+ }
+ public function getExtraDescription() {
+ return $this->extraDescription;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_Volume extends Google_Model {
+ protected $__accessInfoType = 'Google_VolumeAccessInfo';
+ protected $__accessInfoDataType = '';
+ public $accessInfo;
+ public $etag;
+ public $id;
+ public $kind;
+ protected $__layerInfoType = 'Google_VolumeLayerInfo';
+ protected $__layerInfoDataType = '';
+ public $layerInfo;
+ protected $__recommendedInfoType = 'Google_VolumeRecommendedInfo';
+ protected $__recommendedInfoDataType = '';
+ public $recommendedInfo;
+ protected $__saleInfoType = 'Google_VolumeSaleInfo';
+ protected $__saleInfoDataType = '';
+ public $saleInfo;
+ protected $__searchInfoType = 'Google_VolumeSearchInfo';
+ protected $__searchInfoDataType = '';
+ public $searchInfo;
+ public $selfLink;
+ protected $__userInfoType = 'Google_VolumeUserInfo';
+ protected $__userInfoDataType = '';
+ public $userInfo;
+ protected $__volumeInfoType = 'Google_VolumeVolumeInfo';
+ protected $__volumeInfoDataType = '';
+ public $volumeInfo;
+ public function setAccessInfo(Google_VolumeAccessInfo $accessInfo) {
+ $this->accessInfo = $accessInfo;
+ }
+ public function getAccessInfo() {
+ return $this->accessInfo;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLayerInfo(Google_VolumeLayerInfo $layerInfo) {
+ $this->layerInfo = $layerInfo;
+ }
+ public function getLayerInfo() {
+ return $this->layerInfo;
+ }
+ public function setRecommendedInfo(Google_VolumeRecommendedInfo $recommendedInfo) {
+ $this->recommendedInfo = $recommendedInfo;
+ }
+ public function getRecommendedInfo() {
+ return $this->recommendedInfo;
+ }
+ public function setSaleInfo(Google_VolumeSaleInfo $saleInfo) {
+ $this->saleInfo = $saleInfo;
+ }
+ public function getSaleInfo() {
+ return $this->saleInfo;
+ }
+ public function setSearchInfo(Google_VolumeSearchInfo $searchInfo) {
+ $this->searchInfo = $searchInfo;
+ }
+ public function getSearchInfo() {
+ return $this->searchInfo;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUserInfo(Google_VolumeUserInfo $userInfo) {
+ $this->userInfo = $userInfo;
+ }
+ public function getUserInfo() {
+ return $this->userInfo;
+ }
+ public function setVolumeInfo(Google_VolumeVolumeInfo $volumeInfo) {
+ $this->volumeInfo = $volumeInfo;
+ }
+ public function getVolumeInfo() {
+ return $this->volumeInfo;
+ }
+}
+
+class Google_VolumeAccessInfo extends Google_Model {
+ public $accessViewStatus;
+ public $country;
+ protected $__downloadAccessType = 'Google_DownloadAccessRestriction';
+ protected $__downloadAccessDataType = '';
+ public $downloadAccess;
+ public $embeddable;
+ protected $__epubType = 'Google_VolumeAccessInfoEpub';
+ protected $__epubDataType = '';
+ public $epub;
+ protected $__pdfType = 'Google_VolumeAccessInfoPdf';
+ protected $__pdfDataType = '';
+ public $pdf;
+ public $publicDomain;
+ public $textToSpeechPermission;
+ public $viewOrderUrl;
+ public $viewability;
+ public $webReaderLink;
+ public function setAccessViewStatus( $accessViewStatus) {
+ $this->accessViewStatus = $accessViewStatus;
+ }
+ public function getAccessViewStatus() {
+ return $this->accessViewStatus;
+ }
+ public function setCountry( $country) {
+ $this->country = $country;
+ }
+ public function getCountry() {
+ return $this->country;
+ }
+ public function setDownloadAccess(Google_DownloadAccessRestriction $downloadAccess) {
+ $this->downloadAccess = $downloadAccess;
+ }
+ public function getDownloadAccess() {
+ return $this->downloadAccess;
+ }
+ public function setEmbeddable( $embeddable) {
+ $this->embeddable = $embeddable;
+ }
+ public function getEmbeddable() {
+ return $this->embeddable;
+ }
+ public function setEpub(Google_VolumeAccessInfoEpub $epub) {
+ $this->epub = $epub;
+ }
+ public function getEpub() {
+ return $this->epub;
+ }
+ public function setPdf(Google_VolumeAccessInfoPdf $pdf) {
+ $this->pdf = $pdf;
+ }
+ public function getPdf() {
+ return $this->pdf;
+ }
+ public function setPublicDomain( $publicDomain) {
+ $this->publicDomain = $publicDomain;
+ }
+ public function getPublicDomain() {
+ return $this->publicDomain;
+ }
+ public function setTextToSpeechPermission( $textToSpeechPermission) {
+ $this->textToSpeechPermission = $textToSpeechPermission;
+ }
+ public function getTextToSpeechPermission() {
+ return $this->textToSpeechPermission;
+ }
+ public function setViewOrderUrl( $viewOrderUrl) {
+ $this->viewOrderUrl = $viewOrderUrl;
+ }
+ public function getViewOrderUrl() {
+ return $this->viewOrderUrl;
+ }
+ public function setViewability( $viewability) {
+ $this->viewability = $viewability;
+ }
+ public function getViewability() {
+ return $this->viewability;
+ }
+ public function setWebReaderLink( $webReaderLink) {
+ $this->webReaderLink = $webReaderLink;
+ }
+ public function getWebReaderLink() {
+ return $this->webReaderLink;
+ }
+}
+
+class Google_VolumeAccessInfoEpub extends Google_Model {
+ public $acsTokenLink;
+ public $downloadLink;
+ public $isAvailable;
+ public function setAcsTokenLink( $acsTokenLink) {
+ $this->acsTokenLink = $acsTokenLink;
+ }
+ public function getAcsTokenLink() {
+ return $this->acsTokenLink;
+ }
+ public function setDownloadLink( $downloadLink) {
+ $this->downloadLink = $downloadLink;
+ }
+ public function getDownloadLink() {
+ return $this->downloadLink;
+ }
+ public function setIsAvailable( $isAvailable) {
+ $this->isAvailable = $isAvailable;
+ }
+ public function getIsAvailable() {
+ return $this->isAvailable;
+ }
+}
+
+class Google_VolumeAccessInfoPdf extends Google_Model {
+ public $acsTokenLink;
+ public $downloadLink;
+ public $isAvailable;
+ public function setAcsTokenLink( $acsTokenLink) {
+ $this->acsTokenLink = $acsTokenLink;
+ }
+ public function getAcsTokenLink() {
+ return $this->acsTokenLink;
+ }
+ public function setDownloadLink( $downloadLink) {
+ $this->downloadLink = $downloadLink;
+ }
+ public function getDownloadLink() {
+ return $this->downloadLink;
+ }
+ public function setIsAvailable( $isAvailable) {
+ $this->isAvailable = $isAvailable;
+ }
+ public function getIsAvailable() {
+ return $this->isAvailable;
+ }
+}
+
+class Google_VolumeLayerInfo extends Google_Model {
+ protected $__layersType = 'Google_VolumeLayerInfoLayers';
+ protected $__layersDataType = 'array';
+ public $layers;
+ public function setLayers(/* array(Google_VolumeLayerInfoLayers) */ $layers) {
+ $this->assertIsArray($layers, 'Google_VolumeLayerInfoLayers', __METHOD__);
+ $this->layers = $layers;
+ }
+ public function getLayers() {
+ return $this->layers;
+ }
+}
+
+class Google_VolumeLayerInfoLayers extends Google_Model {
+ public $layerId;
+ public $volumeAnnotationsVersion;
+ public function setLayerId( $layerId) {
+ $this->layerId = $layerId;
+ }
+ public function getLayerId() {
+ return $this->layerId;
+ }
+ public function setVolumeAnnotationsVersion( $volumeAnnotationsVersion) {
+ $this->volumeAnnotationsVersion = $volumeAnnotationsVersion;
+ }
+ public function getVolumeAnnotationsVersion() {
+ return $this->volumeAnnotationsVersion;
+ }
+}
+
+class Google_VolumeRecommendedInfo extends Google_Model {
+ public $explanation;
+ public function setExplanation( $explanation) {
+ $this->explanation = $explanation;
+ }
+ public function getExplanation() {
+ return $this->explanation;
+ }
+}
+
+class Google_VolumeSaleInfo extends Google_Model {
+ public $buyLink;
+ public $country;
+ public $isEbook;
+ protected $__listPriceType = 'Google_VolumeSaleInfoListPrice';
+ protected $__listPriceDataType = '';
+ public $listPrice;
+ public $onSaleDate;
+ protected $__retailPriceType = 'Google_VolumeSaleInfoRetailPrice';
+ protected $__retailPriceDataType = '';
+ public $retailPrice;
+ public $saleability;
+ public function setBuyLink( $buyLink) {
+ $this->buyLink = $buyLink;
+ }
+ public function getBuyLink() {
+ return $this->buyLink;
+ }
+ public function setCountry( $country) {
+ $this->country = $country;
+ }
+ public function getCountry() {
+ return $this->country;
+ }
+ public function setIsEbook( $isEbook) {
+ $this->isEbook = $isEbook;
+ }
+ public function getIsEbook() {
+ return $this->isEbook;
+ }
+ public function setListPrice(Google_VolumeSaleInfoListPrice $listPrice) {
+ $this->listPrice = $listPrice;
+ }
+ public function getListPrice() {
+ return $this->listPrice;
+ }
+ public function setOnSaleDate( $onSaleDate) {
+ $this->onSaleDate = $onSaleDate;
+ }
+ public function getOnSaleDate() {
+ return $this->onSaleDate;
+ }
+ public function setRetailPrice(Google_VolumeSaleInfoRetailPrice $retailPrice) {
+ $this->retailPrice = $retailPrice;
+ }
+ public function getRetailPrice() {
+ return $this->retailPrice;
+ }
+ public function setSaleability( $saleability) {
+ $this->saleability = $saleability;
+ }
+ public function getSaleability() {
+ return $this->saleability;
+ }
+}
+
+class Google_VolumeSaleInfoListPrice extends Google_Model {
+ public $amount;
+ public $currencyCode;
+ public function setAmount( $amount) {
+ $this->amount = $amount;
+ }
+ public function getAmount() {
+ return $this->amount;
+ }
+ public function setCurrencyCode( $currencyCode) {
+ $this->currencyCode = $currencyCode;
+ }
+ public function getCurrencyCode() {
+ return $this->currencyCode;
+ }
+}
+
+class Google_VolumeSaleInfoRetailPrice extends Google_Model {
+ public $amount;
+ public $currencyCode;
+ public function setAmount( $amount) {
+ $this->amount = $amount;
+ }
+ public function getAmount() {
+ return $this->amount;
+ }
+ public function setCurrencyCode( $currencyCode) {
+ $this->currencyCode = $currencyCode;
+ }
+ public function getCurrencyCode() {
+ return $this->currencyCode;
+ }
+}
+
+class Google_VolumeSearchInfo extends Google_Model {
+ public $textSnippet;
+ public function setTextSnippet( $textSnippet) {
+ $this->textSnippet = $textSnippet;
+ }
+ public function getTextSnippet() {
+ return $this->textSnippet;
+ }
+}
+
+class Google_VolumeUserInfo extends Google_Model {
+ public $isInMyBooks;
+ public $isPreordered;
+ public $isPurchased;
+ public $isUploaded;
+ protected $__readingPositionType = 'Google_ReadingPosition';
+ protected $__readingPositionDataType = '';
+ public $readingPosition;
+ protected $__reviewType = 'Google_Review';
+ protected $__reviewDataType = '';
+ public $review;
+ public $updated;
+ protected $__userUploadedVolumeInfoType = 'Google_VolumeUserInfoUserUploadedVolumeInfo';
+ protected $__userUploadedVolumeInfoDataType = '';
+ public $userUploadedVolumeInfo;
+ public function setIsInMyBooks( $isInMyBooks) {
+ $this->isInMyBooks = $isInMyBooks;
+ }
+ public function getIsInMyBooks() {
+ return $this->isInMyBooks;
+ }
+ public function setIsPreordered( $isPreordered) {
+ $this->isPreordered = $isPreordered;
+ }
+ public function getIsPreordered() {
+ return $this->isPreordered;
+ }
+ public function setIsPurchased( $isPurchased) {
+ $this->isPurchased = $isPurchased;
+ }
+ public function getIsPurchased() {
+ return $this->isPurchased;
+ }
+ public function setIsUploaded( $isUploaded) {
+ $this->isUploaded = $isUploaded;
+ }
+ public function getIsUploaded() {
+ return $this->isUploaded;
+ }
+ public function setReadingPosition(Google_ReadingPosition $readingPosition) {
+ $this->readingPosition = $readingPosition;
+ }
+ public function getReadingPosition() {
+ return $this->readingPosition;
+ }
+ public function setReview(Google_Review $review) {
+ $this->review = $review;
+ }
+ public function getReview() {
+ return $this->review;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUserUploadedVolumeInfo(Google_VolumeUserInfoUserUploadedVolumeInfo $userUploadedVolumeInfo) {
+ $this->userUploadedVolumeInfo = $userUploadedVolumeInfo;
+ }
+ public function getUserUploadedVolumeInfo() {
+ return $this->userUploadedVolumeInfo;
+ }
+}
+
+class Google_VolumeUserInfoUserUploadedVolumeInfo extends Google_Model {
+ public $processingState;
+ public function setProcessingState( $processingState) {
+ $this->processingState = $processingState;
+ }
+ public function getProcessingState() {
+ return $this->processingState;
+ }
+}
+
+class Google_VolumeVolumeInfo extends Google_Model {
+ public $authors;
+ public $averageRating;
+ public $canonicalVolumeLink;
+ public $categories;
+ public $contentVersion;
+ public $description;
+ protected $__dimensionsType = 'Google_VolumeVolumeInfoDimensions';
+ protected $__dimensionsDataType = '';
+ public $dimensions;
+ protected $__imageLinksType = 'Google_VolumeVolumeInfoImageLinks';
+ protected $__imageLinksDataType = '';
+ public $imageLinks;
+ protected $__industryIdentifiersType = 'Google_VolumeVolumeInfoIndustryIdentifiers';
+ protected $__industryIdentifiersDataType = 'array';
+ public $industryIdentifiers;
+ public $infoLink;
+ public $language;
+ public $mainCategory;
+ public $pageCount;
+ public $previewLink;
+ public $printType;
+ public $publishedDate;
+ public $publisher;
+ public $ratingsCount;
+ public $subtitle;
+ public $title;
+ public function setAuthors(/* array(Google_string) */ $authors) {
+ $this->assertIsArray($authors, 'Google_string', __METHOD__);
+ $this->authors = $authors;
+ }
+ public function getAuthors() {
+ return $this->authors;
+ }
+ public function setAverageRating( $averageRating) {
+ $this->averageRating = $averageRating;
+ }
+ public function getAverageRating() {
+ return $this->averageRating;
+ }
+ public function setCanonicalVolumeLink( $canonicalVolumeLink) {
+ $this->canonicalVolumeLink = $canonicalVolumeLink;
+ }
+ public function getCanonicalVolumeLink() {
+ return $this->canonicalVolumeLink;
+ }
+ public function setCategories(/* array(Google_string) */ $categories) {
+ $this->assertIsArray($categories, 'Google_string', __METHOD__);
+ $this->categories = $categories;
+ }
+ public function getCategories() {
+ return $this->categories;
+ }
+ public function setContentVersion( $contentVersion) {
+ $this->contentVersion = $contentVersion;
+ }
+ public function getContentVersion() {
+ return $this->contentVersion;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDimensions(Google_VolumeVolumeInfoDimensions $dimensions) {
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setImageLinks(Google_VolumeVolumeInfoImageLinks $imageLinks) {
+ $this->imageLinks = $imageLinks;
+ }
+ public function getImageLinks() {
+ return $this->imageLinks;
+ }
+ public function setIndustryIdentifiers(/* array(Google_VolumeVolumeInfoIndustryIdentifiers) */ $industryIdentifiers) {
+ $this->assertIsArray($industryIdentifiers, 'Google_VolumeVolumeInfoIndustryIdentifiers', __METHOD__);
+ $this->industryIdentifiers = $industryIdentifiers;
+ }
+ public function getIndustryIdentifiers() {
+ return $this->industryIdentifiers;
+ }
+ public function setInfoLink( $infoLink) {
+ $this->infoLink = $infoLink;
+ }
+ public function getInfoLink() {
+ return $this->infoLink;
+ }
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+ public function setMainCategory( $mainCategory) {
+ $this->mainCategory = $mainCategory;
+ }
+ public function getMainCategory() {
+ return $this->mainCategory;
+ }
+ public function setPageCount( $pageCount) {
+ $this->pageCount = $pageCount;
+ }
+ public function getPageCount() {
+ return $this->pageCount;
+ }
+ public function setPreviewLink( $previewLink) {
+ $this->previewLink = $previewLink;
+ }
+ public function getPreviewLink() {
+ return $this->previewLink;
+ }
+ public function setPrintType( $printType) {
+ $this->printType = $printType;
+ }
+ public function getPrintType() {
+ return $this->printType;
+ }
+ public function setPublishedDate( $publishedDate) {
+ $this->publishedDate = $publishedDate;
+ }
+ public function getPublishedDate() {
+ return $this->publishedDate;
+ }
+ public function setPublisher( $publisher) {
+ $this->publisher = $publisher;
+ }
+ public function getPublisher() {
+ return $this->publisher;
+ }
+ public function setRatingsCount( $ratingsCount) {
+ $this->ratingsCount = $ratingsCount;
+ }
+ public function getRatingsCount() {
+ return $this->ratingsCount;
+ }
+ public function setSubtitle( $subtitle) {
+ $this->subtitle = $subtitle;
+ }
+ public function getSubtitle() {
+ return $this->subtitle;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_VolumeVolumeInfoDimensions extends Google_Model {
+ public $height;
+ public $thickness;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setThickness( $thickness) {
+ $this->thickness = $thickness;
+ }
+ public function getThickness() {
+ return $this->thickness;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_VolumeVolumeInfoImageLinks extends Google_Model {
+ public $extraLarge;
+ public $large;
+ public $medium;
+ public $small;
+ public $smallThumbnail;
+ public $thumbnail;
+ public function setExtraLarge( $extraLarge) {
+ $this->extraLarge = $extraLarge;
+ }
+ public function getExtraLarge() {
+ return $this->extraLarge;
+ }
+ public function setLarge( $large) {
+ $this->large = $large;
+ }
+ public function getLarge() {
+ return $this->large;
+ }
+ public function setMedium( $medium) {
+ $this->medium = $medium;
+ }
+ public function getMedium() {
+ return $this->medium;
+ }
+ public function setSmall( $small) {
+ $this->small = $small;
+ }
+ public function getSmall() {
+ return $this->small;
+ }
+ public function setSmallThumbnail( $smallThumbnail) {
+ $this->smallThumbnail = $smallThumbnail;
+ }
+ public function getSmallThumbnail() {
+ return $this->smallThumbnail;
+ }
+ public function setThumbnail( $thumbnail) {
+ $this->thumbnail = $thumbnail;
+ }
+ public function getThumbnail() {
+ return $this->thumbnail;
+ }
+}
+
+class Google_VolumeVolumeInfoIndustryIdentifiers extends Google_Model {
+ public $identifier;
+ public $type;
+ public function setIdentifier( $identifier) {
+ $this->identifier = $identifier;
+ }
+ public function getIdentifier() {
+ return $this->identifier;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Volumeannotation extends Google_Model {
+ public $annotationDataId;
+ public $annotationDataLink;
+ public $annotationType;
+ protected $__contentRangesType = 'Google_VolumeannotationContentRanges';
+ protected $__contentRangesDataType = '';
+ public $contentRanges;
+ public $data;
+ public $deleted;
+ public $id;
+ public $kind;
+ public $layerId;
+ public $pageIds;
+ public $selectedText;
+ public $selfLink;
+ public $updated;
+ public $volumeId;
+ public function setAnnotationDataId( $annotationDataId) {
+ $this->annotationDataId = $annotationDataId;
+ }
+ public function getAnnotationDataId() {
+ return $this->annotationDataId;
+ }
+ public function setAnnotationDataLink( $annotationDataLink) {
+ $this->annotationDataLink = $annotationDataLink;
+ }
+ public function getAnnotationDataLink() {
+ return $this->annotationDataLink;
+ }
+ public function setAnnotationType( $annotationType) {
+ $this->annotationType = $annotationType;
+ }
+ public function getAnnotationType() {
+ return $this->annotationType;
+ }
+ public function setContentRanges(Google_VolumeannotationContentRanges $contentRanges) {
+ $this->contentRanges = $contentRanges;
+ }
+ public function getContentRanges() {
+ return $this->contentRanges;
+ }
+ public function setData( $data) {
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setDeleted( $deleted) {
+ $this->deleted = $deleted;
+ }
+ public function getDeleted() {
+ return $this->deleted;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLayerId( $layerId) {
+ $this->layerId = $layerId;
+ }
+ public function getLayerId() {
+ return $this->layerId;
+ }
+ public function setPageIds(/* array(Google_string) */ $pageIds) {
+ $this->assertIsArray($pageIds, 'Google_string', __METHOD__);
+ $this->pageIds = $pageIds;
+ }
+ public function getPageIds() {
+ return $this->pageIds;
+ }
+ public function setSelectedText( $selectedText) {
+ $this->selectedText = $selectedText;
+ }
+ public function getSelectedText() {
+ return $this->selectedText;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVolumeId( $volumeId) {
+ $this->volumeId = $volumeId;
+ }
+ public function getVolumeId() {
+ return $this->volumeId;
+ }
+}
+
+class Google_VolumeannotationContentRanges extends Google_Model {
+ protected $__cfiRangeType = 'Google_BooksAnnotationsRange';
+ protected $__cfiRangeDataType = '';
+ public $cfiRange;
+ public $contentVersion;
+ protected $__gbImageRangeType = 'Google_BooksAnnotationsRange';
+ protected $__gbImageRangeDataType = '';
+ public $gbImageRange;
+ protected $__gbTextRangeType = 'Google_BooksAnnotationsRange';
+ protected $__gbTextRangeDataType = '';
+ public $gbTextRange;
+ public function setCfiRange(Google_BooksAnnotationsRange $cfiRange) {
+ $this->cfiRange = $cfiRange;
+ }
+ public function getCfiRange() {
+ return $this->cfiRange;
+ }
+ public function setContentVersion( $contentVersion) {
+ $this->contentVersion = $contentVersion;
+ }
+ public function getContentVersion() {
+ return $this->contentVersion;
+ }
+ public function setGbImageRange(Google_BooksAnnotationsRange $gbImageRange) {
+ $this->gbImageRange = $gbImageRange;
+ }
+ public function getGbImageRange() {
+ return $this->gbImageRange;
+ }
+ public function setGbTextRange(Google_BooksAnnotationsRange $gbTextRange) {
+ $this->gbTextRange = $gbTextRange;
+ }
+ public function getGbTextRange() {
+ return $this->gbTextRange;
+ }
+}
+
+class Google_Volumeannotations extends Google_Model {
+ protected $__itemsType = 'Google_Volumeannotation';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public $version;
+ public function setItems(/* array(Google_Volumeannotation) */ $items) {
+ $this->assertIsArray($items, 'Google_Volumeannotation', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+ public function setVersion( $version) {
+ $this->version = $version;
+ }
+ public function getVersion() {
+ return $this->version;
+ }
+}
+
+class Google_Volumes extends Google_Model {
+ protected $__itemsType = 'Google_Volume';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $totalItems;
+ public function setItems(/* array(Google_Volume) */ $items) {
+ $this->assertIsArray($items, 'Google_Volume', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CalendarService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CalendarService.php
new file mode 100644
index 0000000..c360576
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CalendarService.php
@@ -0,0 +1,1971 @@
+
+ * $calendarService = new Google_CalendarService(...);
+ * $acl = $calendarService->acl;
+ *
+ */
+ class Google_AclServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes an access control rule. (acl.delete)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $ruleId ACL rule identifier.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($calendarId, $ruleId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'ruleId' => $ruleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns an access control rule. (acl.get)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $ruleId ACL rule identifier.
+ * @param array $optParams Optional parameters.
+ * @return Google_AclRule
+ */
+ public function get($calendarId, $ruleId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'ruleId' => $ruleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_AclRule($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates an access control rule. (acl.insert)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param Google_AclRule $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_AclRule
+ */
+ public function insert($calendarId, Google_AclRule $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_AclRule($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the rules in the access control list for the calendar. (acl.list)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param array $optParams Optional parameters.
+ * @return Google_Acl
+ */
+ public function listAcl($calendarId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Acl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an access control rule. This method supports patch semantics. (acl.patch)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $ruleId ACL rule identifier.
+ * @param Google_AclRule $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_AclRule
+ */
+ public function patch($calendarId, $ruleId, Google_AclRule $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'ruleId' => $ruleId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_AclRule($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an access control rule. (acl.update)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $ruleId ACL rule identifier.
+ * @param Google_AclRule $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_AclRule
+ */
+ public function update($calendarId, $ruleId, Google_AclRule $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'ruleId' => $ruleId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_AclRule($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "calendarList" collection of methods.
+ * Typical usage is:
+ *
+ * $calendarService = new Google_CalendarService(...);
+ * $calendarList = $calendarService->calendarList;
+ *
+ */
+ class Google_CalendarListServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes an entry on the user's calendar list. (calendarList.delete)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($calendarId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns an entry on the user's calendar list. (calendarList.get)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param array $optParams Optional parameters.
+ * @return Google_CalendarListEntry
+ */
+ public function get($calendarId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_CalendarListEntry($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Adds an entry to the user's calendar list. (calendarList.insert)
+ *
+ * @param Google_CalendarListEntry $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool colorRgbFormat Whether to use the 'foregroundColor' and 'backgroundColor' fields to write the calendar colors (RGB). If this feature is used, the index-based 'colorId' field will be set to the best matching option automatically. Optional. The default is False.
+ * @return Google_CalendarListEntry
+ */
+ public function insert(Google_CalendarListEntry $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CalendarListEntry($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns entries on the user's calendar list. (calendarList.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of entries returned on one result page. Optional.
+ * @opt_param string minAccessRole The minimum access role for the user in the returned entires. Optional. The default is no restriction.
+ * @opt_param string pageToken Token specifying which result page to return. Optional.
+ * @opt_param bool showHidden Whether to show hidden entries. Optional. The default is False.
+ * @return Google_CalendarList
+ */
+ public function listCalendarList($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CalendarList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an entry on the user's calendar list. This method supports patch semantics.
+ * (calendarList.patch)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param Google_CalendarListEntry $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool colorRgbFormat Whether to use the 'foregroundColor' and 'backgroundColor' fields to write the calendar colors (RGB). If this feature is used, the index-based 'colorId' field will be set to the best matching option automatically. Optional. The default is False.
+ * @return Google_CalendarListEntry
+ */
+ public function patch($calendarId, Google_CalendarListEntry $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_CalendarListEntry($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an entry on the user's calendar list. (calendarList.update)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param Google_CalendarListEntry $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool colorRgbFormat Whether to use the 'foregroundColor' and 'backgroundColor' fields to write the calendar colors (RGB). If this feature is used, the index-based 'colorId' field will be set to the best matching option automatically. Optional. The default is False.
+ * @return Google_CalendarListEntry
+ */
+ public function update($calendarId, Google_CalendarListEntry $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_CalendarListEntry($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "calendars" collection of methods.
+ * Typical usage is:
+ *
+ * $calendarService = new Google_CalendarService(...);
+ * $calendars = $calendarService->calendars;
+ *
+ */
+ class Google_CalendarsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Clears a primary calendar. This operation deletes all data associated with the primary calendar
+ * of an account and cannot be undone. (calendars.clear)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param array $optParams Optional parameters.
+ */
+ public function clear($calendarId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('clear', array($params));
+ return $data;
+ }
+ /**
+ * Deletes a secondary calendar. (calendars.delete)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($calendarId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns metadata for a calendar. (calendars.get)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param array $optParams Optional parameters.
+ * @return Google_Calendar
+ */
+ public function get($calendarId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Calendar($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a secondary calendar. (calendars.insert)
+ *
+ * @param Google_Calendar $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Calendar
+ */
+ public function insert(Google_Calendar $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Calendar($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates metadata for a calendar. This method supports patch semantics. (calendars.patch)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param Google_Calendar $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Calendar
+ */
+ public function patch($calendarId, Google_Calendar $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Calendar($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates metadata for a calendar. (calendars.update)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param Google_Calendar $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Calendar
+ */
+ public function update($calendarId, Google_Calendar $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Calendar($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "colors" collection of methods.
+ * Typical usage is:
+ *
+ * $calendarService = new Google_CalendarService(...);
+ * $colors = $calendarService->colors;
+ *
+ */
+ class Google_ColorsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns the color definitions for calendars and events. (colors.get)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_Colors
+ */
+ public function get($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Colors($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "events" collection of methods.
+ * Typical usage is:
+ *
+ * $calendarService = new Google_CalendarService(...);
+ * $events = $calendarService->events;
+ *
+ */
+ class Google_EventsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes an event. (events.delete)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $eventId Event identifier.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool sendNotifications Whether to send notifications about the deletion of the event. Optional. The default is False.
+ */
+ public function delete($calendarId, $eventId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'eventId' => $eventId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns an event. (events.get)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $eventId Event identifier.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool alwaysIncludeEmail Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+ * @opt_param int maxAttendees The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+ * @opt_param string timeZone Time zone used in the response. Optional. The default is the time zone of the calendar.
+ * @return Google_Event
+ */
+ public function get($calendarId, $eventId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'eventId' => $eventId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Event($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Imports an event. (events.import)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param Google_Event $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Event
+ */
+ public function import($calendarId, Google_Event $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('import', array($params));
+ if ($this->useObjects()) {
+ return new Google_Event($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates an event. (events.insert)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param Google_Event $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxAttendees The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+ * @opt_param bool sendNotifications Whether to send notifications about the creation of the new event. Optional. The default is False.
+ * @return Google_Event
+ */
+ public function insert($calendarId, Google_Event $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Event($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns instances of the specified recurring event. (events.instances)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $eventId Recurring event identifier.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool alwaysIncludeEmail Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+ * @opt_param int maxAttendees The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+ * @opt_param int maxResults Maximum number of events returned on one result page. Optional.
+ * @opt_param string originalStart The original start time of the instance in the result. Optional.
+ * @opt_param string pageToken Token specifying which result page to return. Optional.
+ * @opt_param bool showDeleted Whether to include deleted events (with 'status' equals 'cancelled') in the result. Cancelled instances of recurring events will still be included if 'singleEvents' is False. Optional. The default is False.
+ * @opt_param string timeMax Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.
+ * @opt_param string timeMin Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.
+ * @opt_param string timeZone Time zone used in the response. Optional. The default is the time zone of the calendar.
+ * @return Google_Events
+ */
+ public function instances($calendarId, $eventId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'eventId' => $eventId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('instances', array($params));
+ if ($this->useObjects()) {
+ return new Google_Events($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns events on the specified calendar. (events.list)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool alwaysIncludeEmail Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+ * @opt_param string iCalUID Specifies iCalendar UID (iCalUID) of events to be included in the response. Optional.
+ * @opt_param int maxAttendees The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+ * @opt_param int maxResults Maximum number of events returned on one result page. Optional.
+ * @opt_param string orderBy The order of the events returned in the result. Optional. The default is an unspecified, stable order.
+ * @opt_param string pageToken Token specifying which result page to return. Optional.
+ * @opt_param string q Free text search terms to find events that match these terms in any field, except for extended properties. Optional.
+ * @opt_param bool showDeleted Whether to include deleted events (with 'status' equals 'cancelled') in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if 'showDeleted' and 'singleEvents' are both False. If 'showDeleted' and 'singleEvents' are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.
+ * @opt_param bool showHiddenInvitations Whether to include hidden invitations in the result. Optional. The default is False.
+ * @opt_param bool singleEvents Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.
+ * @opt_param string timeMax Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.
+ * @opt_param string timeMin Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.
+ * @opt_param string timeZone Time zone used in the response. Optional. The default is the time zone of the calendar.
+ * @opt_param string updatedMin Lower bound for an event's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.
+ * @return Google_Events
+ */
+ public function listEvents($calendarId, $optParams = array()) {
+ $params = array('calendarId' => $calendarId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Events($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Moves an event to another calendar, i.e. changes an event's organizer. (events.move)
+ *
+ * @param string $calendarId Calendar identifier of the source calendar where the event currently is on.
+ * @param string $eventId Event identifier.
+ * @param string $destination Calendar identifier of the target calendar where the event is to be moved to.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool sendNotifications Whether to send notifications about the change of the event's organizer. Optional. The default is False.
+ * @return Google_Event
+ */
+ public function move($calendarId, $eventId, $destination, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'eventId' => $eventId, 'destination' => $destination);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('move', array($params));
+ if ($this->useObjects()) {
+ return new Google_Event($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an event. This method supports patch semantics. (events.patch)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $eventId Event identifier.
+ * @param Google_Event $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool alwaysIncludeEmail Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+ * @opt_param int maxAttendees The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+ * @opt_param bool sendNotifications Whether to send notifications about the event update (e.g. attendee's responses, title changes, etc.). Optional. The default is False.
+ * @return Google_Event
+ */
+ public function patch($calendarId, $eventId, Google_Event $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'eventId' => $eventId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Event($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates an event based on a simple text string. (events.quickAdd)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $text The text describing the event to be created.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool sendNotifications Whether to send notifications about the creation of the event. Optional. The default is False.
+ * @return Google_Event
+ */
+ public function quickAdd($calendarId, $text, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'text' => $text);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('quickAdd', array($params));
+ if ($this->useObjects()) {
+ return new Google_Event($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an event. (events.update)
+ *
+ * @param string $calendarId Calendar identifier.
+ * @param string $eventId Event identifier.
+ * @param Google_Event $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool alwaysIncludeEmail Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+ * @opt_param int maxAttendees The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+ * @opt_param bool sendNotifications Whether to send notifications about the event update (e.g. attendee's responses, title changes, etc.). Optional. The default is False.
+ * @return Google_Event
+ */
+ public function update($calendarId, $eventId, Google_Event $postBody, $optParams = array()) {
+ $params = array('calendarId' => $calendarId, 'eventId' => $eventId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Event($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "freebusy" collection of methods.
+ * Typical usage is:
+ *
+ * $calendarService = new Google_CalendarService(...);
+ * $freebusy = $calendarService->freebusy;
+ *
+ */
+ class Google_FreebusyServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns free/busy information for a set of calendars. (freebusy.query)
+ *
+ * @param Google_FreeBusyRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_FreeBusyResponse
+ */
+ public function query(Google_FreeBusyRequest $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('query', array($params));
+ if ($this->useObjects()) {
+ return new Google_FreeBusyResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "settings" collection of methods.
+ * Typical usage is:
+ *
+ * $calendarService = new Google_CalendarService(...);
+ * $settings = $calendarService->settings;
+ *
+ */
+ class Google_SettingsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns a single user setting. (settings.get)
+ *
+ * @param string $setting Name of the user setting.
+ * @param array $optParams Optional parameters.
+ * @return Google_Setting
+ */
+ public function get($setting, $optParams = array()) {
+ $params = array('setting' => $setting);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Setting($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns all user settings for the authenticated user. (settings.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_Settings
+ */
+ public function listSettings($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Settings($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Calendar (v3).
+ *
+ *
+ * Lets you manipulate events and other calendar data.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_CalendarService extends Google_Service {
+ public $acl;
+ public $calendarList;
+ public $calendars;
+ public $colors;
+ public $events;
+ public $freebusy;
+ public $settings;
+ /**
+ * Constructs the internal representation of the Calendar service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'calendar/v3/';
+ $this->version = 'v3';
+ $this->serviceName = 'calendar';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->acl = new Google_AclServiceResource($this, $this->serviceName, 'acl', json_decode('{"methods": {"delete": {"id": "calendar.acl.delete", "path": "calendars/{calendarId}/acl/{ruleId}", "httpMethod": "DELETE", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "ruleId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "get": {"id": "calendar.acl.get", "path": "calendars/{calendarId}/acl/{ruleId}", "httpMethod": "GET", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "ruleId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AclRule"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}, "insert": {"id": "calendar.acl.insert", "path": "calendars/{calendarId}/acl", "httpMethod": "POST", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AclRule"}, "response": {"$ref": "AclRule"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "list": {"id": "calendar.acl.list", "path": "calendars/{calendarId}/acl", "httpMethod": "GET", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Acl"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "patch": {"id": "calendar.acl.patch", "path": "calendars/{calendarId}/acl/{ruleId}", "httpMethod": "PATCH", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "ruleId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AclRule"}, "response": {"$ref": "AclRule"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "update": {"id": "calendar.acl.update", "path": "calendars/{calendarId}/acl/{ruleId}", "httpMethod": "PUT", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "ruleId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AclRule"}, "response": {"$ref": "AclRule"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}}}', true));
+ $this->calendarList = new Google_CalendarListServiceResource($this, $this->serviceName, 'calendarList', json_decode('{"methods": {"delete": {"id": "calendar.calendarList.delete", "path": "users/me/calendarList/{calendarId}", "httpMethod": "DELETE", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "get": {"id": "calendar.calendarList.get", "path": "users/me/calendarList/{calendarId}", "httpMethod": "GET", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CalendarListEntry"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}, "insert": {"id": "calendar.calendarList.insert", "path": "users/me/calendarList", "httpMethod": "POST", "parameters": {"colorRgbFormat": {"type": "boolean", "location": "query"}}, "request": {"$ref": "CalendarListEntry"}, "response": {"$ref": "CalendarListEntry"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "list": {"id": "calendar.calendarList.list", "path": "users/me/calendarList", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "minAccessRole": {"type": "string", "enum": ["freeBusyReader", "owner", "reader", "writer"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "showHidden": {"type": "boolean", "location": "query"}}, "response": {"$ref": "CalendarList"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}, "patch": {"id": "calendar.calendarList.patch", "path": "users/me/calendarList/{calendarId}", "httpMethod": "PATCH", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "colorRgbFormat": {"type": "boolean", "location": "query"}}, "request": {"$ref": "CalendarListEntry"}, "response": {"$ref": "CalendarListEntry"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "update": {"id": "calendar.calendarList.update", "path": "users/me/calendarList/{calendarId}", "httpMethod": "PUT", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "colorRgbFormat": {"type": "boolean", "location": "query"}}, "request": {"$ref": "CalendarListEntry"}, "response": {"$ref": "CalendarListEntry"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}}}', true));
+ $this->calendars = new Google_CalendarsServiceResource($this, $this->serviceName, 'calendars', json_decode('{"methods": {"clear": {"id": "calendar.calendars.clear", "path": "calendars/{calendarId}/clear", "httpMethod": "POST", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "delete": {"id": "calendar.calendars.delete", "path": "calendars/{calendarId}", "httpMethod": "DELETE", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "get": {"id": "calendar.calendars.get", "path": "calendars/{calendarId}", "httpMethod": "GET", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Calendar"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}, "insert": {"id": "calendar.calendars.insert", "path": "calendars", "httpMethod": "POST", "request": {"$ref": "Calendar"}, "response": {"$ref": "Calendar"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "patch": {"id": "calendar.calendars.patch", "path": "calendars/{calendarId}", "httpMethod": "PATCH", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Calendar"}, "response": {"$ref": "Calendar"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "update": {"id": "calendar.calendars.update", "path": "calendars/{calendarId}", "httpMethod": "PUT", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Calendar"}, "response": {"$ref": "Calendar"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}}}', true));
+ $this->colors = new Google_ColorsServiceResource($this, $this->serviceName, 'colors', json_decode('{"methods": {"get": {"id": "calendar.colors.get", "path": "colors", "httpMethod": "GET", "response": {"$ref": "Colors"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}}}', true));
+ $this->events = new Google_EventsServiceResource($this, $this->serviceName, 'events', json_decode('{"methods": {"delete": {"id": "calendar.events.delete", "path": "calendars/{calendarId}/events/{eventId}", "httpMethod": "DELETE", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "eventId": {"type": "string", "required": true, "location": "path"}, "sendNotifications": {"type": "boolean", "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "get": {"id": "calendar.events.get", "path": "calendars/{calendarId}/events/{eventId}", "httpMethod": "GET", "parameters": {"alwaysIncludeEmail": {"type": "boolean", "location": "query"}, "calendarId": {"type": "string", "required": true, "location": "path"}, "eventId": {"type": "string", "required": true, "location": "path"}, "maxAttendees": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "timeZone": {"type": "string", "location": "query"}}, "response": {"$ref": "Event"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}, "import": {"id": "calendar.events.import", "path": "calendars/{calendarId}/events/import", "httpMethod": "POST", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Event"}, "response": {"$ref": "Event"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "insert": {"id": "calendar.events.insert", "path": "calendars/{calendarId}/events", "httpMethod": "POST", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "maxAttendees": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "sendNotifications": {"type": "boolean", "location": "query"}}, "request": {"$ref": "Event"}, "response": {"$ref": "Event"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "instances": {"id": "calendar.events.instances", "path": "calendars/{calendarId}/events/{eventId}/instances", "httpMethod": "GET", "parameters": {"alwaysIncludeEmail": {"type": "boolean", "location": "query"}, "calendarId": {"type": "string", "required": true, "location": "path"}, "eventId": {"type": "string", "required": true, "location": "path"}, "maxAttendees": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "originalStart": {"type": "string", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "showDeleted": {"type": "boolean", "location": "query"}, "timeMax": {"type": "string", "format": "date-time", "location": "query"}, "timeMin": {"type": "string", "format": "date-time", "location": "query"}, "timeZone": {"type": "string", "location": "query"}}, "response": {"$ref": "Events"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"], "supportsSubscription": true}, "list": {"id": "calendar.events.list", "path": "calendars/{calendarId}/events", "httpMethod": "GET", "parameters": {"alwaysIncludeEmail": {"type": "boolean", "location": "query"}, "calendarId": {"type": "string", "required": true, "location": "path"}, "iCalUID": {"type": "string", "location": "query"}, "maxAttendees": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "orderBy": {"type": "string", "enum": ["startTime", "updated"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "q": {"type": "string", "location": "query"}, "showDeleted": {"type": "boolean", "location": "query"}, "showHiddenInvitations": {"type": "boolean", "location": "query"}, "singleEvents": {"type": "boolean", "location": "query"}, "timeMax": {"type": "string", "format": "date-time", "location": "query"}, "timeMin": {"type": "string", "format": "date-time", "location": "query"}, "timeZone": {"type": "string", "location": "query"}, "updatedMin": {"type": "string", "format": "date-time", "location": "query"}}, "response": {"$ref": "Events"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"], "supportsSubscription": true}, "move": {"id": "calendar.events.move", "path": "calendars/{calendarId}/events/{eventId}/move", "httpMethod": "POST", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "destination": {"type": "string", "required": true, "location": "query"}, "eventId": {"type": "string", "required": true, "location": "path"}, "sendNotifications": {"type": "boolean", "location": "query"}}, "response": {"$ref": "Event"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "patch": {"id": "calendar.events.patch", "path": "calendars/{calendarId}/events/{eventId}", "httpMethod": "PATCH", "parameters": {"alwaysIncludeEmail": {"type": "boolean", "location": "query"}, "calendarId": {"type": "string", "required": true, "location": "path"}, "eventId": {"type": "string", "required": true, "location": "path"}, "maxAttendees": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "sendNotifications": {"type": "boolean", "location": "query"}}, "request": {"$ref": "Event"}, "response": {"$ref": "Event"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "quickAdd": {"id": "calendar.events.quickAdd", "path": "calendars/{calendarId}/events/quickAdd", "httpMethod": "POST", "parameters": {"calendarId": {"type": "string", "required": true, "location": "path"}, "sendNotifications": {"type": "boolean", "location": "query"}, "text": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "Event"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}, "update": {"id": "calendar.events.update", "path": "calendars/{calendarId}/events/{eventId}", "httpMethod": "PUT", "parameters": {"alwaysIncludeEmail": {"type": "boolean", "location": "query"}, "calendarId": {"type": "string", "required": true, "location": "path"}, "eventId": {"type": "string", "required": true, "location": "path"}, "maxAttendees": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "sendNotifications": {"type": "boolean", "location": "query"}}, "request": {"$ref": "Event"}, "response": {"$ref": "Event"}, "scopes": ["https://www.googleapis.com/auth/calendar"]}}}', true));
+ $this->freebusy = new Google_FreebusyServiceResource($this, $this->serviceName, 'freebusy', json_decode('{"methods": {"query": {"id": "calendar.freebusy.query", "path": "freeBusy", "httpMethod": "POST", "request": {"$ref": "FreeBusyRequest"}, "response": {"$ref": "FreeBusyResponse"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}}}', true));
+ $this->settings = new Google_SettingsServiceResource($this, $this->serviceName, 'settings', json_decode('{"methods": {"get": {"id": "calendar.settings.get", "path": "users/me/settings/{setting}", "httpMethod": "GET", "parameters": {"setting": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Setting"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}, "list": {"id": "calendar.settings.list", "path": "users/me/settings", "httpMethod": "GET", "response": {"$ref": "Settings"}, "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Acl extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_AclRule';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_AclRule) */ $items) {
+ $this->assertIsArray($items, 'Google_AclRule', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_AclRule extends Google_Model {
+ public $etag;
+ public $id;
+ public $kind;
+ public $role;
+ protected $__scopeType = 'Google_AclRuleScope';
+ protected $__scopeDataType = '';
+ public $scope;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRole( $role) {
+ $this->role = $role;
+ }
+ public function getRole() {
+ return $this->role;
+ }
+ public function setScope(Google_AclRuleScope $scope) {
+ $this->scope = $scope;
+ }
+ public function getScope() {
+ return $this->scope;
+ }
+}
+
+class Google_AclRuleScope extends Google_Model {
+ public $type;
+ public $value;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Calendar extends Google_Model {
+ public $description;
+ public $etag;
+ public $id;
+ public $kind;
+ public $location;
+ public $summary;
+ public $timeZone;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setSummary( $summary) {
+ $this->summary = $summary;
+ }
+ public function getSummary() {
+ return $this->summary;
+ }
+ public function setTimeZone( $timeZone) {
+ $this->timeZone = $timeZone;
+ }
+ public function getTimeZone() {
+ return $this->timeZone;
+ }
+}
+
+class Google_CalendarList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_CalendarListEntry';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_CalendarListEntry) */ $items) {
+ $this->assertIsArray($items, 'Google_CalendarListEntry', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_CalendarListEntry extends Google_Model {
+ public $accessRole;
+ public $backgroundColor;
+ public $colorId;
+ protected $__defaultRemindersType = 'Google_EventReminder';
+ protected $__defaultRemindersDataType = 'array';
+ public $defaultReminders;
+ public $description;
+ public $etag;
+ public $foregroundColor;
+ public $hidden;
+ public $id;
+ public $kind;
+ public $location;
+ public $primary;
+ public $selected;
+ public $summary;
+ public $summaryOverride;
+ public $timeZone;
+ public function setAccessRole( $accessRole) {
+ $this->accessRole = $accessRole;
+ }
+ public function getAccessRole() {
+ return $this->accessRole;
+ }
+ public function setBackgroundColor( $backgroundColor) {
+ $this->backgroundColor = $backgroundColor;
+ }
+ public function getBackgroundColor() {
+ return $this->backgroundColor;
+ }
+ public function setColorId( $colorId) {
+ $this->colorId = $colorId;
+ }
+ public function getColorId() {
+ return $this->colorId;
+ }
+ public function setDefaultReminders(/* array(Google_EventReminder) */ $defaultReminders) {
+ $this->assertIsArray($defaultReminders, 'Google_EventReminder', __METHOD__);
+ $this->defaultReminders = $defaultReminders;
+ }
+ public function getDefaultReminders() {
+ return $this->defaultReminders;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setForegroundColor( $foregroundColor) {
+ $this->foregroundColor = $foregroundColor;
+ }
+ public function getForegroundColor() {
+ return $this->foregroundColor;
+ }
+ public function setHidden( $hidden) {
+ $this->hidden = $hidden;
+ }
+ public function getHidden() {
+ return $this->hidden;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setPrimary( $primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setSelected( $selected) {
+ $this->selected = $selected;
+ }
+ public function getSelected() {
+ return $this->selected;
+ }
+ public function setSummary( $summary) {
+ $this->summary = $summary;
+ }
+ public function getSummary() {
+ return $this->summary;
+ }
+ public function setSummaryOverride( $summaryOverride) {
+ $this->summaryOverride = $summaryOverride;
+ }
+ public function getSummaryOverride() {
+ return $this->summaryOverride;
+ }
+ public function setTimeZone( $timeZone) {
+ $this->timeZone = $timeZone;
+ }
+ public function getTimeZone() {
+ return $this->timeZone;
+ }
+}
+
+class Google_ColorDefinition extends Google_Model {
+ public $background;
+ public $foreground;
+ public function setBackground( $background) {
+ $this->background = $background;
+ }
+ public function getBackground() {
+ return $this->background;
+ }
+ public function setForeground( $foreground) {
+ $this->foreground = $foreground;
+ }
+ public function getForeground() {
+ return $this->foreground;
+ }
+}
+
+class Google_Colors extends Google_Model {
+ protected $__calendarType = 'Google_ColorDefinition';
+ protected $__calendarDataType = 'map';
+ public $calendar;
+ protected $__eventType = 'Google_ColorDefinition';
+ protected $__eventDataType = 'map';
+ public $event;
+ public $kind;
+ public $updated;
+ public function setCalendar(Google_ColorDefinition $calendar) {
+ $this->calendar = $calendar;
+ }
+ public function getCalendar() {
+ return $this->calendar;
+ }
+ public function setEvent(Google_ColorDefinition $event) {
+ $this->event = $event;
+ }
+ public function getEvent() {
+ return $this->event;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_Error extends Google_Model {
+ public $domain;
+ public $reason;
+ public function setDomain( $domain) {
+ $this->domain = $domain;
+ }
+ public function getDomain() {
+ return $this->domain;
+ }
+ public function setReason( $reason) {
+ $this->reason = $reason;
+ }
+ public function getReason() {
+ return $this->reason;
+ }
+}
+
+class Google_Event extends Google_Model {
+ public $anyoneCanAddSelf;
+ protected $__attendeesType = 'Google_EventAttendee';
+ protected $__attendeesDataType = 'array';
+ public $attendees;
+ public $attendeesOmitted;
+ public $colorId;
+ public $created;
+ protected $__creatorType = 'Google_EventCreator';
+ protected $__creatorDataType = '';
+ public $creator;
+ public $description;
+ protected $__endType = 'Google_EventDateTime';
+ protected $__endDataType = '';
+ public $end;
+ public $endTimeUnspecified;
+ public $etag;
+ protected $__extendedPropertiesType = 'Google_EventExtendedProperties';
+ protected $__extendedPropertiesDataType = '';
+ public $extendedProperties;
+ protected $__gadgetType = 'Google_EventGadget';
+ protected $__gadgetDataType = '';
+ public $gadget;
+ public $guestsCanInviteOthers;
+ public $guestsCanModify;
+ public $guestsCanSeeOtherGuests;
+ public $hangoutLink;
+ public $htmlLink;
+ public $iCalUID;
+ public $id;
+ public $kind;
+ public $location;
+ public $locked;
+ protected $__organizerType = 'Google_EventOrganizer';
+ protected $__organizerDataType = '';
+ public $organizer;
+ protected $__originalStartTimeType = 'Google_EventDateTime';
+ protected $__originalStartTimeDataType = '';
+ public $originalStartTime;
+ public $privateCopy;
+ public $recurrence;
+ public $recurringEventId;
+ protected $__remindersType = 'Google_EventReminders';
+ protected $__remindersDataType = '';
+ public $reminders;
+ public $sequence;
+ protected $__sourceType = 'Google_EventSource';
+ protected $__sourceDataType = '';
+ public $source;
+ protected $__startType = 'Google_EventDateTime';
+ protected $__startDataType = '';
+ public $start;
+ public $status;
+ public $summary;
+ public $transparency;
+ public $updated;
+ public $visibility;
+ public function setAnyoneCanAddSelf( $anyoneCanAddSelf) {
+ $this->anyoneCanAddSelf = $anyoneCanAddSelf;
+ }
+ public function getAnyoneCanAddSelf() {
+ return $this->anyoneCanAddSelf;
+ }
+ public function setAttendees(/* array(Google_EventAttendee) */ $attendees) {
+ $this->assertIsArray($attendees, 'Google_EventAttendee', __METHOD__);
+ $this->attendees = $attendees;
+ }
+ public function getAttendees() {
+ return $this->attendees;
+ }
+ public function setAttendeesOmitted( $attendeesOmitted) {
+ $this->attendeesOmitted = $attendeesOmitted;
+ }
+ public function getAttendeesOmitted() {
+ return $this->attendeesOmitted;
+ }
+ public function setColorId( $colorId) {
+ $this->colorId = $colorId;
+ }
+ public function getColorId() {
+ return $this->colorId;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setCreator(Google_EventCreator $creator) {
+ $this->creator = $creator;
+ }
+ public function getCreator() {
+ return $this->creator;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEnd(Google_EventDateTime $end) {
+ $this->end = $end;
+ }
+ public function getEnd() {
+ return $this->end;
+ }
+ public function setEndTimeUnspecified( $endTimeUnspecified) {
+ $this->endTimeUnspecified = $endTimeUnspecified;
+ }
+ public function getEndTimeUnspecified() {
+ return $this->endTimeUnspecified;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setExtendedProperties(Google_EventExtendedProperties $extendedProperties) {
+ $this->extendedProperties = $extendedProperties;
+ }
+ public function getExtendedProperties() {
+ return $this->extendedProperties;
+ }
+ public function setGadget(Google_EventGadget $gadget) {
+ $this->gadget = $gadget;
+ }
+ public function getGadget() {
+ return $this->gadget;
+ }
+ public function setGuestsCanInviteOthers( $guestsCanInviteOthers) {
+ $this->guestsCanInviteOthers = $guestsCanInviteOthers;
+ }
+ public function getGuestsCanInviteOthers() {
+ return $this->guestsCanInviteOthers;
+ }
+ public function setGuestsCanModify( $guestsCanModify) {
+ $this->guestsCanModify = $guestsCanModify;
+ }
+ public function getGuestsCanModify() {
+ return $this->guestsCanModify;
+ }
+ public function setGuestsCanSeeOtherGuests( $guestsCanSeeOtherGuests) {
+ $this->guestsCanSeeOtherGuests = $guestsCanSeeOtherGuests;
+ }
+ public function getGuestsCanSeeOtherGuests() {
+ return $this->guestsCanSeeOtherGuests;
+ }
+ public function setHangoutLink( $hangoutLink) {
+ $this->hangoutLink = $hangoutLink;
+ }
+ public function getHangoutLink() {
+ return $this->hangoutLink;
+ }
+ public function setHtmlLink( $htmlLink) {
+ $this->htmlLink = $htmlLink;
+ }
+ public function getHtmlLink() {
+ return $this->htmlLink;
+ }
+ public function setICalUID( $iCalUID) {
+ $this->iCalUID = $iCalUID;
+ }
+ public function getICalUID() {
+ return $this->iCalUID;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setLocked( $locked) {
+ $this->locked = $locked;
+ }
+ public function getLocked() {
+ return $this->locked;
+ }
+ public function setOrganizer(Google_EventOrganizer $organizer) {
+ $this->organizer = $organizer;
+ }
+ public function getOrganizer() {
+ return $this->organizer;
+ }
+ public function setOriginalStartTime(Google_EventDateTime $originalStartTime) {
+ $this->originalStartTime = $originalStartTime;
+ }
+ public function getOriginalStartTime() {
+ return $this->originalStartTime;
+ }
+ public function setPrivateCopy( $privateCopy) {
+ $this->privateCopy = $privateCopy;
+ }
+ public function getPrivateCopy() {
+ return $this->privateCopy;
+ }
+ public function setRecurrence(/* array(Google_string) */ $recurrence) {
+ $this->assertIsArray($recurrence, 'Google_string', __METHOD__);
+ $this->recurrence = $recurrence;
+ }
+ public function getRecurrence() {
+ return $this->recurrence;
+ }
+ public function setRecurringEventId( $recurringEventId) {
+ $this->recurringEventId = $recurringEventId;
+ }
+ public function getRecurringEventId() {
+ return $this->recurringEventId;
+ }
+ public function setReminders(Google_EventReminders $reminders) {
+ $this->reminders = $reminders;
+ }
+ public function getReminders() {
+ return $this->reminders;
+ }
+ public function setSequence( $sequence) {
+ $this->sequence = $sequence;
+ }
+ public function getSequence() {
+ return $this->sequence;
+ }
+ public function setSource(Google_EventSource $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setStart(Google_EventDateTime $start) {
+ $this->start = $start;
+ }
+ public function getStart() {
+ return $this->start;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setSummary( $summary) {
+ $this->summary = $summary;
+ }
+ public function getSummary() {
+ return $this->summary;
+ }
+ public function setTransparency( $transparency) {
+ $this->transparency = $transparency;
+ }
+ public function getTransparency() {
+ return $this->transparency;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVisibility( $visibility) {
+ $this->visibility = $visibility;
+ }
+ public function getVisibility() {
+ return $this->visibility;
+ }
+}
+
+class Google_EventAttendee extends Google_Model {
+ public $additionalGuests;
+ public $comment;
+ public $displayName;
+ public $email;
+ public $id;
+ public $optional;
+ public $organizer;
+ public $resource;
+ public $responseStatus;
+ public $self;
+ public function setAdditionalGuests( $additionalGuests) {
+ $this->additionalGuests = $additionalGuests;
+ }
+ public function getAdditionalGuests() {
+ return $this->additionalGuests;
+ }
+ public function setComment( $comment) {
+ $this->comment = $comment;
+ }
+ public function getComment() {
+ return $this->comment;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setOptional( $optional) {
+ $this->optional = $optional;
+ }
+ public function getOptional() {
+ return $this->optional;
+ }
+ public function setOrganizer( $organizer) {
+ $this->organizer = $organizer;
+ }
+ public function getOrganizer() {
+ return $this->organizer;
+ }
+ public function setResource( $resource) {
+ $this->resource = $resource;
+ }
+ public function getResource() {
+ return $this->resource;
+ }
+ public function setResponseStatus( $responseStatus) {
+ $this->responseStatus = $responseStatus;
+ }
+ public function getResponseStatus() {
+ return $this->responseStatus;
+ }
+ public function setSelf( $self) {
+ $this->self = $self;
+ }
+ public function getSelf() {
+ return $this->self;
+ }
+}
+
+class Google_EventCreator extends Google_Model {
+ public $displayName;
+ public $email;
+ public $id;
+ public $self;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setSelf( $self) {
+ $this->self = $self;
+ }
+ public function getSelf() {
+ return $this->self;
+ }
+}
+
+class Google_EventDateTime extends Google_Model {
+ public $date;
+ public $dateTime;
+ public $timeZone;
+ public function setDate( $date) {
+ $this->date = $date;
+ }
+ public function getDate() {
+ return $this->date;
+ }
+ public function setDateTime( $dateTime) {
+ $this->dateTime = $dateTime;
+ }
+ public function getDateTime() {
+ return $this->dateTime;
+ }
+ public function setTimeZone( $timeZone) {
+ $this->timeZone = $timeZone;
+ }
+ public function getTimeZone() {
+ return $this->timeZone;
+ }
+}
+
+class Google_EventExtendedProperties extends Google_Model {
+ public $private;
+ public $shared;
+ public function setPrivate( $private) {
+ $this->private = $private;
+ }
+ public function getPrivate() {
+ return $this->private;
+ }
+ public function setShared( $shared) {
+ $this->shared = $shared;
+ }
+ public function getShared() {
+ return $this->shared;
+ }
+}
+
+class Google_EventGadget extends Google_Model {
+ public $display;
+ public $height;
+ public $iconLink;
+ public $link;
+ public $preferences;
+ public $title;
+ public $type;
+ public $width;
+ public function setDisplay( $display) {
+ $this->display = $display;
+ }
+ public function getDisplay() {
+ return $this->display;
+ }
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setIconLink( $iconLink) {
+ $this->iconLink = $iconLink;
+ }
+ public function getIconLink() {
+ return $this->iconLink;
+ }
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setPreferences( $preferences) {
+ $this->preferences = $preferences;
+ }
+ public function getPreferences() {
+ return $this->preferences;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_EventOrganizer extends Google_Model {
+ public $displayName;
+ public $email;
+ public $id;
+ public $self;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setSelf( $self) {
+ $this->self = $self;
+ }
+ public function getSelf() {
+ return $this->self;
+ }
+}
+
+class Google_EventReminder extends Google_Model {
+ public $method;
+ public $minutes;
+ public function setMethod( $method) {
+ $this->method = $method;
+ }
+ public function getMethod() {
+ return $this->method;
+ }
+ public function setMinutes( $minutes) {
+ $this->minutes = $minutes;
+ }
+ public function getMinutes() {
+ return $this->minutes;
+ }
+}
+
+class Google_EventReminders extends Google_Model {
+ protected $__overridesType = 'Google_EventReminder';
+ protected $__overridesDataType = 'array';
+ public $overrides;
+ public $useDefault;
+ public function setOverrides(/* array(Google_EventReminder) */ $overrides) {
+ $this->assertIsArray($overrides, 'Google_EventReminder', __METHOD__);
+ $this->overrides = $overrides;
+ }
+ public function getOverrides() {
+ return $this->overrides;
+ }
+ public function setUseDefault( $useDefault) {
+ $this->useDefault = $useDefault;
+ }
+ public function getUseDefault() {
+ return $this->useDefault;
+ }
+}
+
+class Google_EventSource extends Google_Model {
+ public $title;
+ public $url;
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_Events extends Google_Model {
+ public $accessRole;
+ protected $__defaultRemindersType = 'Google_EventReminder';
+ protected $__defaultRemindersDataType = 'array';
+ public $defaultReminders;
+ public $description;
+ public $etag;
+ protected $__itemsType = 'Google_Event';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $summary;
+ public $timeZone;
+ public $updated;
+ public function setAccessRole( $accessRole) {
+ $this->accessRole = $accessRole;
+ }
+ public function getAccessRole() {
+ return $this->accessRole;
+ }
+ public function setDefaultReminders(/* array(Google_EventReminder) */ $defaultReminders) {
+ $this->assertIsArray($defaultReminders, 'Google_EventReminder', __METHOD__);
+ $this->defaultReminders = $defaultReminders;
+ }
+ public function getDefaultReminders() {
+ return $this->defaultReminders;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Event) */ $items) {
+ $this->assertIsArray($items, 'Google_Event', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSummary( $summary) {
+ $this->summary = $summary;
+ }
+ public function getSummary() {
+ return $this->summary;
+ }
+ public function setTimeZone( $timeZone) {
+ $this->timeZone = $timeZone;
+ }
+ public function getTimeZone() {
+ return $this->timeZone;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_FreeBusyCalendar extends Google_Model {
+ protected $__busyType = 'Google_TimePeriod';
+ protected $__busyDataType = 'array';
+ public $busy;
+ protected $__errorsType = 'Google_Error';
+ protected $__errorsDataType = 'array';
+ public $errors;
+ public function setBusy(/* array(Google_TimePeriod) */ $busy) {
+ $this->assertIsArray($busy, 'Google_TimePeriod', __METHOD__);
+ $this->busy = $busy;
+ }
+ public function getBusy() {
+ return $this->busy;
+ }
+ public function setErrors(/* array(Google_Error) */ $errors) {
+ $this->assertIsArray($errors, 'Google_Error', __METHOD__);
+ $this->errors = $errors;
+ }
+ public function getErrors() {
+ return $this->errors;
+ }
+}
+
+class Google_FreeBusyGroup extends Google_Model {
+ public $calendars;
+ protected $__errorsType = 'Google_Error';
+ protected $__errorsDataType = 'array';
+ public $errors;
+ public function setCalendars(/* array(Google_string) */ $calendars) {
+ $this->assertIsArray($calendars, 'Google_string', __METHOD__);
+ $this->calendars = $calendars;
+ }
+ public function getCalendars() {
+ return $this->calendars;
+ }
+ public function setErrors(/* array(Google_Error) */ $errors) {
+ $this->assertIsArray($errors, 'Google_Error', __METHOD__);
+ $this->errors = $errors;
+ }
+ public function getErrors() {
+ return $this->errors;
+ }
+}
+
+class Google_FreeBusyRequest extends Google_Model {
+ public $calendarExpansionMax;
+ public $groupExpansionMax;
+ protected $__itemsType = 'Google_FreeBusyRequestItem';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $timeMax;
+ public $timeMin;
+ public $timeZone;
+ public function setCalendarExpansionMax( $calendarExpansionMax) {
+ $this->calendarExpansionMax = $calendarExpansionMax;
+ }
+ public function getCalendarExpansionMax() {
+ return $this->calendarExpansionMax;
+ }
+ public function setGroupExpansionMax( $groupExpansionMax) {
+ $this->groupExpansionMax = $groupExpansionMax;
+ }
+ public function getGroupExpansionMax() {
+ return $this->groupExpansionMax;
+ }
+ public function setItems(/* array(Google_FreeBusyRequestItem) */ $items) {
+ $this->assertIsArray($items, 'Google_FreeBusyRequestItem', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setTimeMax( $timeMax) {
+ $this->timeMax = $timeMax;
+ }
+ public function getTimeMax() {
+ return $this->timeMax;
+ }
+ public function setTimeMin( $timeMin) {
+ $this->timeMin = $timeMin;
+ }
+ public function getTimeMin() {
+ return $this->timeMin;
+ }
+ public function setTimeZone( $timeZone) {
+ $this->timeZone = $timeZone;
+ }
+ public function getTimeZone() {
+ return $this->timeZone;
+ }
+}
+
+class Google_FreeBusyRequestItem extends Google_Model {
+ public $id;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_FreeBusyResponse extends Google_Model {
+ protected $__calendarsType = 'Google_FreeBusyCalendar';
+ protected $__calendarsDataType = 'map';
+ public $calendars;
+ protected $__groupsType = 'Google_FreeBusyGroup';
+ protected $__groupsDataType = 'map';
+ public $groups;
+ public $kind;
+ public $timeMax;
+ public $timeMin;
+ public function setCalendars(Google_FreeBusyCalendar $calendars) {
+ $this->calendars = $calendars;
+ }
+ public function getCalendars() {
+ return $this->calendars;
+ }
+ public function setGroups(Google_FreeBusyGroup $groups) {
+ $this->groups = $groups;
+ }
+ public function getGroups() {
+ return $this->groups;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTimeMax( $timeMax) {
+ $this->timeMax = $timeMax;
+ }
+ public function getTimeMax() {
+ return $this->timeMax;
+ }
+ public function setTimeMin( $timeMin) {
+ $this->timeMin = $timeMin;
+ }
+ public function getTimeMin() {
+ return $this->timeMin;
+ }
+}
+
+class Google_Setting extends Google_Model {
+ public $etag;
+ public $id;
+ public $kind;
+ public $value;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Settings extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Setting';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Setting) */ $items) {
+ $this->assertIsArray($items, 'Google_Setting', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_TimePeriod extends Google_Model {
+ public $end;
+ public $start;
+ public function setEnd( $end) {
+ $this->end = $end;
+ }
+ public function getEnd() {
+ return $this->end;
+ }
+ public function setStart( $start) {
+ $this->start = $start;
+ }
+ public function getStart() {
+ return $this->start;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CivicInfoService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CivicInfoService.php
new file mode 100644
index 0000000..3bac149
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CivicInfoService.php
@@ -0,0 +1,778 @@
+
+ * $civicinfoService = new Google_CivicInfoService(...);
+ * $elections = $civicinfoService->elections;
+ *
+ */
+ class Google_ElectionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * List of available elections to query. (elections.electionQuery)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_ElectionsQueryResponse
+ */
+ public function electionQuery($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('electionQuery', array($params));
+ if ($this->useObjects()) {
+ return new Google_ElectionsQueryResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Looks up information relevant to a voter based on the voter's registered address.
+ * (elections.voterInfoQuery)
+ *
+ * @param string $electionId The unique ID of the election to look up. A list of election IDs can be obtained at.https://www.googleapis.com/civicinfo/{version}/elections
+ * @param Google_VoterInfoRequest $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool officialOnly If set to true, only data from official state sources will be returned.
+ * @return Google_VoterInfoResponse
+ */
+ public function voterInfoQuery($electionId, Google_VoterInfoRequest $postBody, $optParams = array()) {
+ $params = array('electionId' => $electionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('voterInfoQuery', array($params));
+ if ($this->useObjects()) {
+ return new Google_VoterInfoResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_CivicInfo (us_v1).
+ *
+ *
+ * An API for accessing civic information.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_CivicInfoService extends Google_Service {
+ public $elections;
+ /**
+ * Constructs the internal representation of the CivicInfo service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'civicinfo/us_v1/';
+ $this->version = 'us_v1';
+ $this->serviceName = 'civicinfo';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->elections = new Google_ElectionsServiceResource($this, $this->serviceName, 'elections', json_decode('{"methods": {"electionQuery": {"id": "civicinfo.elections.electionQuery", "path": "elections", "httpMethod": "GET", "response": {"$ref": "ElectionsQueryResponse"}}, "voterInfoQuery": {"id": "civicinfo.elections.voterInfoQuery", "path": "voterinfo/{electionId}/lookup", "httpMethod": "POST", "parameters": {"electionId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "officialOnly": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "VoterInfoRequest"}, "response": {"$ref": "VoterInfoResponse"}}}}', true));
+
+ }
+}
+
+
+
+class Google_AdministrationRegion extends Google_Model {
+ protected $__electionAdministrationBodyType = 'Google_AdministrativeBody';
+ protected $__electionAdministrationBodyDataType = '';
+ public $electionAdministrationBody;
+ public $id;
+ protected $__local_jurisdictionType = 'Google_AdministrationRegion';
+ protected $__local_jurisdictionDataType = '';
+ public $local_jurisdiction;
+ public $name;
+ protected $__sourcesType = 'Google_Source';
+ protected $__sourcesDataType = 'array';
+ public $sources;
+ public function setElectionAdministrationBody(Google_AdministrativeBody $electionAdministrationBody) {
+ $this->electionAdministrationBody = $electionAdministrationBody;
+ }
+ public function getElectionAdministrationBody() {
+ return $this->electionAdministrationBody;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setLocal_jurisdiction(Google_AdministrationRegion $local_jurisdiction) {
+ $this->local_jurisdiction = $local_jurisdiction;
+ }
+ public function getLocal_jurisdiction() {
+ return $this->local_jurisdiction;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setSources(/* array(Google_Source) */ $sources) {
+ $this->assertIsArray($sources, 'Google_Source', __METHOD__);
+ $this->sources = $sources;
+ }
+ public function getSources() {
+ return $this->sources;
+ }
+}
+
+class Google_AdministrativeBody extends Google_Model {
+ public $absenteeVotingInfoUrl;
+ public $ballotInfoUrl;
+ protected $__correspondenceAddressType = 'Google_SimpleAddressType';
+ protected $__correspondenceAddressDataType = '';
+ public $correspondenceAddress;
+ public $electionInfoUrl;
+ protected $__electionOfficialsType = 'Google_ElectionOfficial';
+ protected $__electionOfficialsDataType = 'array';
+ public $electionOfficials;
+ public $electionRegistrationConfirmationUrl;
+ public $electionRegistrationUrl;
+ public $electionRulesUrl;
+ public $hoursOfOperation;
+ public $name;
+ protected $__physicalAddressType = 'Google_SimpleAddressType';
+ protected $__physicalAddressDataType = '';
+ public $physicalAddress;
+ public $voter_services;
+ public $votingLocationFinderUrl;
+ public function setAbsenteeVotingInfoUrl( $absenteeVotingInfoUrl) {
+ $this->absenteeVotingInfoUrl = $absenteeVotingInfoUrl;
+ }
+ public function getAbsenteeVotingInfoUrl() {
+ return $this->absenteeVotingInfoUrl;
+ }
+ public function setBallotInfoUrl( $ballotInfoUrl) {
+ $this->ballotInfoUrl = $ballotInfoUrl;
+ }
+ public function getBallotInfoUrl() {
+ return $this->ballotInfoUrl;
+ }
+ public function setCorrespondenceAddress(Google_SimpleAddressType $correspondenceAddress) {
+ $this->correspondenceAddress = $correspondenceAddress;
+ }
+ public function getCorrespondenceAddress() {
+ return $this->correspondenceAddress;
+ }
+ public function setElectionInfoUrl( $electionInfoUrl) {
+ $this->electionInfoUrl = $electionInfoUrl;
+ }
+ public function getElectionInfoUrl() {
+ return $this->electionInfoUrl;
+ }
+ public function setElectionOfficials(/* array(Google_ElectionOfficial) */ $electionOfficials) {
+ $this->assertIsArray($electionOfficials, 'Google_ElectionOfficial', __METHOD__);
+ $this->electionOfficials = $electionOfficials;
+ }
+ public function getElectionOfficials() {
+ return $this->electionOfficials;
+ }
+ public function setElectionRegistrationConfirmationUrl( $electionRegistrationConfirmationUrl) {
+ $this->electionRegistrationConfirmationUrl = $electionRegistrationConfirmationUrl;
+ }
+ public function getElectionRegistrationConfirmationUrl() {
+ return $this->electionRegistrationConfirmationUrl;
+ }
+ public function setElectionRegistrationUrl( $electionRegistrationUrl) {
+ $this->electionRegistrationUrl = $electionRegistrationUrl;
+ }
+ public function getElectionRegistrationUrl() {
+ return $this->electionRegistrationUrl;
+ }
+ public function setElectionRulesUrl( $electionRulesUrl) {
+ $this->electionRulesUrl = $electionRulesUrl;
+ }
+ public function getElectionRulesUrl() {
+ return $this->electionRulesUrl;
+ }
+ public function setHoursOfOperation( $hoursOfOperation) {
+ $this->hoursOfOperation = $hoursOfOperation;
+ }
+ public function getHoursOfOperation() {
+ return $this->hoursOfOperation;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPhysicalAddress(Google_SimpleAddressType $physicalAddress) {
+ $this->physicalAddress = $physicalAddress;
+ }
+ public function getPhysicalAddress() {
+ return $this->physicalAddress;
+ }
+ public function setVoter_services(/* array(Google_string) */ $voter_services) {
+ $this->assertIsArray($voter_services, 'Google_string', __METHOD__);
+ $this->voter_services = $voter_services;
+ }
+ public function getVoter_services() {
+ return $this->voter_services;
+ }
+ public function setVotingLocationFinderUrl( $votingLocationFinderUrl) {
+ $this->votingLocationFinderUrl = $votingLocationFinderUrl;
+ }
+ public function getVotingLocationFinderUrl() {
+ return $this->votingLocationFinderUrl;
+ }
+}
+
+class Google_Candidate extends Google_Model {
+ public $candidateUrl;
+ protected $__channelsType = 'Google_Channel';
+ protected $__channelsDataType = 'array';
+ public $channels;
+ public $email;
+ public $name;
+ public $orderOnBallot;
+ public $party;
+ public $phone;
+ public $photoUrl;
+ public function setCandidateUrl( $candidateUrl) {
+ $this->candidateUrl = $candidateUrl;
+ }
+ public function getCandidateUrl() {
+ return $this->candidateUrl;
+ }
+ public function setChannels(/* array(Google_Channel) */ $channels) {
+ $this->assertIsArray($channels, 'Google_Channel', __METHOD__);
+ $this->channels = $channels;
+ }
+ public function getChannels() {
+ return $this->channels;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOrderOnBallot( $orderOnBallot) {
+ $this->orderOnBallot = $orderOnBallot;
+ }
+ public function getOrderOnBallot() {
+ return $this->orderOnBallot;
+ }
+ public function setParty( $party) {
+ $this->party = $party;
+ }
+ public function getParty() {
+ return $this->party;
+ }
+ public function setPhone( $phone) {
+ $this->phone = $phone;
+ }
+ public function getPhone() {
+ return $this->phone;
+ }
+ public function setPhotoUrl( $photoUrl) {
+ $this->photoUrl = $photoUrl;
+ }
+ public function getPhotoUrl() {
+ return $this->photoUrl;
+ }
+}
+
+class Google_Channel extends Google_Model {
+ public $id;
+ public $type;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Contest extends Google_Model {
+ public $ballotPlacement;
+ protected $__candidatesType = 'Google_Candidate';
+ protected $__candidatesDataType = 'array';
+ public $candidates;
+ protected $__districtType = 'Google_ElectoralDistrict';
+ protected $__districtDataType = '';
+ public $district;
+ public $electorateSpecifications;
+ public $id;
+ public $level;
+ public $numberElected;
+ public $numberVotingFor;
+ public $office;
+ public $primaryParty;
+ public $referendumSubtitle;
+ public $referendumTitle;
+ public $referendumUrl;
+ protected $__sourcesType = 'Google_Source';
+ protected $__sourcesDataType = 'array';
+ public $sources;
+ public $special;
+ public $type;
+ public function setBallotPlacement( $ballotPlacement) {
+ $this->ballotPlacement = $ballotPlacement;
+ }
+ public function getBallotPlacement() {
+ return $this->ballotPlacement;
+ }
+ public function setCandidates(/* array(Google_Candidate) */ $candidates) {
+ $this->assertIsArray($candidates, 'Google_Candidate', __METHOD__);
+ $this->candidates = $candidates;
+ }
+ public function getCandidates() {
+ return $this->candidates;
+ }
+ public function setDistrict(Google_ElectoralDistrict $district) {
+ $this->district = $district;
+ }
+ public function getDistrict() {
+ return $this->district;
+ }
+ public function setElectorateSpecifications( $electorateSpecifications) {
+ $this->electorateSpecifications = $electorateSpecifications;
+ }
+ public function getElectorateSpecifications() {
+ return $this->electorateSpecifications;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setLevel( $level) {
+ $this->level = $level;
+ }
+ public function getLevel() {
+ return $this->level;
+ }
+ public function setNumberElected( $numberElected) {
+ $this->numberElected = $numberElected;
+ }
+ public function getNumberElected() {
+ return $this->numberElected;
+ }
+ public function setNumberVotingFor( $numberVotingFor) {
+ $this->numberVotingFor = $numberVotingFor;
+ }
+ public function getNumberVotingFor() {
+ return $this->numberVotingFor;
+ }
+ public function setOffice( $office) {
+ $this->office = $office;
+ }
+ public function getOffice() {
+ return $this->office;
+ }
+ public function setPrimaryParty( $primaryParty) {
+ $this->primaryParty = $primaryParty;
+ }
+ public function getPrimaryParty() {
+ return $this->primaryParty;
+ }
+ public function setReferendumSubtitle( $referendumSubtitle) {
+ $this->referendumSubtitle = $referendumSubtitle;
+ }
+ public function getReferendumSubtitle() {
+ return $this->referendumSubtitle;
+ }
+ public function setReferendumTitle( $referendumTitle) {
+ $this->referendumTitle = $referendumTitle;
+ }
+ public function getReferendumTitle() {
+ return $this->referendumTitle;
+ }
+ public function setReferendumUrl( $referendumUrl) {
+ $this->referendumUrl = $referendumUrl;
+ }
+ public function getReferendumUrl() {
+ return $this->referendumUrl;
+ }
+ public function setSources(/* array(Google_Source) */ $sources) {
+ $this->assertIsArray($sources, 'Google_Source', __METHOD__);
+ $this->sources = $sources;
+ }
+ public function getSources() {
+ return $this->sources;
+ }
+ public function setSpecial( $special) {
+ $this->special = $special;
+ }
+ public function getSpecial() {
+ return $this->special;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Election extends Google_Model {
+ public $electionDay;
+ public $id;
+ public $name;
+ public function setElectionDay( $electionDay) {
+ $this->electionDay = $electionDay;
+ }
+ public function getElectionDay() {
+ return $this->electionDay;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_ElectionOfficial extends Google_Model {
+ public $emailAddress;
+ public $faxNumber;
+ public $name;
+ public $officePhoneNumber;
+ public $title;
+ public function setEmailAddress( $emailAddress) {
+ $this->emailAddress = $emailAddress;
+ }
+ public function getEmailAddress() {
+ return $this->emailAddress;
+ }
+ public function setFaxNumber( $faxNumber) {
+ $this->faxNumber = $faxNumber;
+ }
+ public function getFaxNumber() {
+ return $this->faxNumber;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOfficePhoneNumber( $officePhoneNumber) {
+ $this->officePhoneNumber = $officePhoneNumber;
+ }
+ public function getOfficePhoneNumber() {
+ return $this->officePhoneNumber;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_ElectionsQueryResponse extends Google_Model {
+ protected $__electionsType = 'Google_Election';
+ protected $__electionsDataType = 'array';
+ public $elections;
+ public $kind;
+ public function setElections(/* array(Google_Election) */ $elections) {
+ $this->assertIsArray($elections, 'Google_Election', __METHOD__);
+ $this->elections = $elections;
+ }
+ public function getElections() {
+ return $this->elections;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_ElectoralDistrict extends Google_Model {
+ public $id;
+ public $name;
+ public $scope;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setScope( $scope) {
+ $this->scope = $scope;
+ }
+ public function getScope() {
+ return $this->scope;
+ }
+}
+
+class Google_PollingLocation extends Google_Model {
+ protected $__addressType = 'Google_SimpleAddressType';
+ protected $__addressDataType = '';
+ public $address;
+ public $endDate;
+ public $id;
+ public $name;
+ public $notes;
+ public $pollingHours;
+ protected $__sourcesType = 'Google_Source';
+ protected $__sourcesDataType = 'array';
+ public $sources;
+ public $startDate;
+ public $voterServices;
+ public function setAddress(Google_SimpleAddressType $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setEndDate( $endDate) {
+ $this->endDate = $endDate;
+ }
+ public function getEndDate() {
+ return $this->endDate;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNotes( $notes) {
+ $this->notes = $notes;
+ }
+ public function getNotes() {
+ return $this->notes;
+ }
+ public function setPollingHours( $pollingHours) {
+ $this->pollingHours = $pollingHours;
+ }
+ public function getPollingHours() {
+ return $this->pollingHours;
+ }
+ public function setSources(/* array(Google_Source) */ $sources) {
+ $this->assertIsArray($sources, 'Google_Source', __METHOD__);
+ $this->sources = $sources;
+ }
+ public function getSources() {
+ return $this->sources;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+ public function setVoterServices( $voterServices) {
+ $this->voterServices = $voterServices;
+ }
+ public function getVoterServices() {
+ return $this->voterServices;
+ }
+}
+
+class Google_SimpleAddressType extends Google_Model {
+ public $city;
+ public $line1;
+ public $line2;
+ public $line3;
+ public $locationName;
+ public $state;
+ public $zip;
+ public function setCity( $city) {
+ $this->city = $city;
+ }
+ public function getCity() {
+ return $this->city;
+ }
+ public function setLine1( $line1) {
+ $this->line1 = $line1;
+ }
+ public function getLine1() {
+ return $this->line1;
+ }
+ public function setLine2( $line2) {
+ $this->line2 = $line2;
+ }
+ public function getLine2() {
+ return $this->line2;
+ }
+ public function setLine3( $line3) {
+ $this->line3 = $line3;
+ }
+ public function getLine3() {
+ return $this->line3;
+ }
+ public function setLocationName( $locationName) {
+ $this->locationName = $locationName;
+ }
+ public function getLocationName() {
+ return $this->locationName;
+ }
+ public function setState( $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+ public function setZip( $zip) {
+ $this->zip = $zip;
+ }
+ public function getZip() {
+ return $this->zip;
+ }
+}
+
+class Google_Source extends Google_Model {
+ public $name;
+ public $official;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOfficial( $official) {
+ $this->official = $official;
+ }
+ public function getOfficial() {
+ return $this->official;
+ }
+}
+
+class Google_VoterInfoRequest extends Google_Model {
+ public $address;
+ public function setAddress( $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+}
+
+class Google_VoterInfoResponse extends Google_Model {
+ protected $__contestsType = 'Google_Contest';
+ protected $__contestsDataType = 'array';
+ public $contests;
+ protected $__earlyVoteSitesType = 'Google_PollingLocation';
+ protected $__earlyVoteSitesDataType = 'array';
+ public $earlyVoteSites;
+ protected $__electionType = 'Google_Election';
+ protected $__electionDataType = '';
+ public $election;
+ public $kind;
+ protected $__normalizedInputType = 'Google_SimpleAddressType';
+ protected $__normalizedInputDataType = '';
+ public $normalizedInput;
+ protected $__pollingLocationsType = 'Google_PollingLocation';
+ protected $__pollingLocationsDataType = 'array';
+ public $pollingLocations;
+ protected $__stateType = 'Google_AdministrationRegion';
+ protected $__stateDataType = 'array';
+ public $state;
+ public $status;
+ public function setContests(/* array(Google_Contest) */ $contests) {
+ $this->assertIsArray($contests, 'Google_Contest', __METHOD__);
+ $this->contests = $contests;
+ }
+ public function getContests() {
+ return $this->contests;
+ }
+ public function setEarlyVoteSites(/* array(Google_PollingLocation) */ $earlyVoteSites) {
+ $this->assertIsArray($earlyVoteSites, 'Google_PollingLocation', __METHOD__);
+ $this->earlyVoteSites = $earlyVoteSites;
+ }
+ public function getEarlyVoteSites() {
+ return $this->earlyVoteSites;
+ }
+ public function setElection(Google_Election $election) {
+ $this->election = $election;
+ }
+ public function getElection() {
+ return $this->election;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNormalizedInput(Google_SimpleAddressType $normalizedInput) {
+ $this->normalizedInput = $normalizedInput;
+ }
+ public function getNormalizedInput() {
+ return $this->normalizedInput;
+ }
+ public function setPollingLocations(/* array(Google_PollingLocation) */ $pollingLocations) {
+ $this->assertIsArray($pollingLocations, 'Google_PollingLocation', __METHOD__);
+ $this->pollingLocations = $pollingLocations;
+ }
+ public function getPollingLocations() {
+ return $this->pollingLocations;
+ }
+ public function setState(/* array(Google_AdministrationRegion) */ $state) {
+ $this->assertIsArray($state, 'Google_AdministrationRegion', __METHOD__);
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ComputeService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ComputeService.php
new file mode 100644
index 0000000..dd8d4c5
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ComputeService.php
@@ -0,0 +1,4403 @@
+
+ * $computeService = new Google_ComputeService(...);
+ * $addresses = $computeService->addresses;
+ *
+ */
+ class Google_AddressesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the list of addresses grouped by scope. (addresses.aggregatedList)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_AddressAggregatedList
+ */
+ public function aggregatedList($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('aggregatedList', array($params));
+ if ($this->useObjects()) {
+ return new Google_AddressAggregatedList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes the specified address resource. (addresses.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $region Name of the region scoping this request.
+ * @param string $address Name of the address resource to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function delete($project, $region, $address, $optParams = array()) {
+ $params = array('project' => $project, 'region' => $region, 'address' => $address);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified address resource. (addresses.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $region Name of the region scoping this request.
+ * @param string $address Name of the address resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Address
+ */
+ public function get($project, $region, $address, $optParams = array()) {
+ $params = array('project' => $project, 'region' => $region, 'address' => $address);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Address($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates an address resource in the specified project using the data included in the request.
+ * (addresses.insert)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $region Name of the region scoping this request.
+ * @param Google_Address $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function insert($project, $region, Google_Address $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'region' => $region, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of address resources contained within the specified region. (addresses.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $region Name of the region scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_AddressList
+ */
+ public function listAddresses($project, $region, $optParams = array()) {
+ $params = array('project' => $project, 'region' => $region);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AddressList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "disks" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $disks = $computeService->disks;
+ *
+ */
+ class Google_DisksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the list of disks grouped by scope. (disks.aggregatedList)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_DiskAggregatedList
+ */
+ public function aggregatedList($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('aggregatedList', array($params));
+ if ($this->useObjects()) {
+ return new Google_DiskAggregatedList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * (disks.createSnapshot)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $disk Name of the persistent disk resource to delete.
+ * @param Google_Snapshot $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function createSnapshot($project, $zone, $disk, Google_Snapshot $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'disk' => $disk, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('createSnapshot', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes the specified persistent disk resource. (disks.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $disk Name of the persistent disk resource to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function delete($project, $zone, $disk, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'disk' => $disk);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified persistent disk resource. (disks.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $disk Name of the persistent disk resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Disk
+ */
+ public function get($project, $zone, $disk, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'disk' => $disk);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Disk($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a persistent disk resource in the specified project using the data included in the
+ * request. (disks.insert)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param Google_Disk $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string sourceImage Optional. Source image to restore onto a disk.
+ * @return Google_Operation
+ */
+ public function insert($project, $zone, Google_Disk $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of persistent disk resources contained within the specified zone. (disks.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_DiskList
+ */
+ public function listDisks($project, $zone, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_DiskList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "firewalls" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $firewalls = $computeService->firewalls;
+ *
+ */
+ class Google_FirewallsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the specified firewall resource. (firewalls.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $firewall Name of the firewall resource to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function delete($project, $firewall, $optParams = array()) {
+ $params = array('project' => $project, 'firewall' => $firewall);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified firewall resource. (firewalls.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $firewall Name of the firewall resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Firewall
+ */
+ public function get($project, $firewall, $optParams = array()) {
+ $params = array('project' => $project, 'firewall' => $firewall);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Firewall($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a firewall resource in the specified project using the data included in the request.
+ * (firewalls.insert)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param Google_Firewall $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function insert($project, Google_Firewall $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of firewall resources available to the specified project. (firewalls.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_FirewallList
+ */
+ public function listFirewalls($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_FirewallList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the specified firewall resource with the data included in the request. This method
+ * supports patch semantics. (firewalls.patch)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $firewall Name of the firewall resource to update.
+ * @param Google_Firewall $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function patch($project, $firewall, Google_Firewall $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'firewall' => $firewall, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the specified firewall resource with the data included in the request. (firewalls.update)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $firewall Name of the firewall resource to update.
+ * @param Google_Firewall $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function update($project, $firewall, Google_Firewall $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'firewall' => $firewall, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "globalOperations" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $globalOperations = $computeService->globalOperations;
+ *
+ */
+ class Google_GlobalOperationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the list of all operations grouped by scope. (globalOperations.aggregatedList)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_OperationAggregatedList
+ */
+ public function aggregatedList($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('aggregatedList', array($params));
+ if ($this->useObjects()) {
+ return new Google_OperationAggregatedList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes the specified operation resource. (globalOperations.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $operation Name of the operation resource to delete.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($project, $operation, $optParams = array()) {
+ $params = array('project' => $project, 'operation' => $operation);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves the specified operation resource. (globalOperations.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $operation Name of the operation resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function get($project, $operation, $optParams = array()) {
+ $params = array('project' => $project, 'operation' => $operation);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of operation resources contained within the specified project.
+ * (globalOperations.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_OperationList
+ */
+ public function listGlobalOperations($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_OperationList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "images" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $images = $computeService->images;
+ *
+ */
+ class Google_ImagesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the specified image resource. (images.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $image Name of the image resource to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function delete($project, $image, $optParams = array()) {
+ $params = array('project' => $project, 'image' => $image);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Sets the deprecation status of an image. If no message body is given, clears the deprecation
+ * status instead. (images.deprecate)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $image Image name.
+ * @param Google_DeprecationStatus $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function deprecate($project, $image, Google_DeprecationStatus $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'image' => $image, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('deprecate', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified image resource. (images.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $image Name of the image resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Image
+ */
+ public function get($project, $image, $optParams = array()) {
+ $params = array('project' => $project, 'image' => $image);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Image($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates an image resource in the specified project using the data included in the request.
+ * (images.insert)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param Google_Image $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function insert($project, Google_Image $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of image resources available to the specified project. (images.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_ImageList
+ */
+ public function listImages($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ImageList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "instances" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $instances = $computeService->instances;
+ *
+ */
+ class Google_InstancesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Adds an access config to an instance's network interface. (instances.addAccessConfig)
+ *
+ * @param string $project Project name.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Instance name.
+ * @param string $networkInterface Network interface name.
+ * @param Google_AccessConfig $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function addAccessConfig($project, $zone, $instance, $networkInterface, Google_AccessConfig $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'networkInterface' => $networkInterface, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('addAccessConfig', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * (instances.aggregatedList)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_InstanceAggregatedList
+ */
+ public function aggregatedList($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('aggregatedList', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstanceAggregatedList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Attaches a disk resource to an instance. (instances.attachDisk)
+ *
+ * @param string $project Project name.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Instance name.
+ * @param Google_AttachedDisk $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function attachDisk($project, $zone, $instance, Google_AttachedDisk $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('attachDisk', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes the specified instance resource. (instances.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Name of the instance resource to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function delete($project, $zone, $instance, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes an access config from an instance's network interface. (instances.deleteAccessConfig)
+ *
+ * @param string $project Project name.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Instance name.
+ * @param string $accessConfig Access config name.
+ * @param string $networkInterface Network interface name.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function deleteAccessConfig($project, $zone, $instance, $accessConfig, $networkInterface, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'accessConfig' => $accessConfig, 'networkInterface' => $networkInterface);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('deleteAccessConfig', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Detaches a disk from an instance. (instances.detachDisk)
+ *
+ * @param string $project Project name.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Instance name.
+ * @param string $deviceName Disk device name to detach.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function detachDisk($project, $zone, $instance, $deviceName, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'deviceName' => $deviceName);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('detachDisk', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified instance resource. (instances.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Name of the instance resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Instance
+ */
+ public function get($project, $zone, $instance, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Instance($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified instance's serial port output. (instances.getSerialPortOutput)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Name of the instance scoping this request.
+ * @param array $optParams Optional parameters.
+ * @return Google_SerialPortOutput
+ */
+ public function getSerialPortOutput($project, $zone, $instance, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('getSerialPortOutput', array($params));
+ if ($this->useObjects()) {
+ return new Google_SerialPortOutput($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates an instance resource in the specified project using the data included in the request.
+ * (instances.insert)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param Google_Instance $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function insert($project, $zone, Google_Instance $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of instance resources contained within the specified zone. (instances.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_InstanceList
+ */
+ public function listInstances($project, $zone, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstanceList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Performs a hard reset on the instance. (instances.reset)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Name of the instance scoping this request.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function reset($project, $zone, $instance, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('reset', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Sets metadata for the specified instance to the data included in the request.
+ * (instances.setMetadata)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Name of the instance scoping this request.
+ * @param Google_Metadata $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function setMetadata($project, $zone, $instance, Google_Metadata $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('setMetadata', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Sets tags for the specified instance to the data included in the request. (instances.setTags)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $instance Name of the instance scoping this request.
+ * @param Google_Tags $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function setTags($project, $zone, $instance, Google_Tags $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'instance' => $instance, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('setTags', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "kernels" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $kernels = $computeService->kernels;
+ *
+ */
+ class Google_KernelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns the specified kernel resource. (kernels.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $kernel Name of the kernel resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Kernel
+ */
+ public function get($project, $kernel, $optParams = array()) {
+ $params = array('project' => $project, 'kernel' => $kernel);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Kernel($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of kernel resources available to the specified project. (kernels.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_KernelList
+ */
+ public function listKernels($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_KernelList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "machineTypes" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $machineTypes = $computeService->machineTypes;
+ *
+ */
+ class Google_MachineTypesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the list of machine type resources grouped by scope. (machineTypes.aggregatedList)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_MachineTypeAggregatedList
+ */
+ public function aggregatedList($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('aggregatedList', array($params));
+ if ($this->useObjects()) {
+ return new Google_MachineTypeAggregatedList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified machine type resource. (machineTypes.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $machineType Name of the machine type resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_MachineType
+ */
+ public function get($project, $zone, $machineType, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'machineType' => $machineType);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_MachineType($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of machine type resources available to the specified project.
+ * (machineTypes.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_MachineTypeList
+ */
+ public function listMachineTypes($project, $zone, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_MachineTypeList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "networks" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $networks = $computeService->networks;
+ *
+ */
+ class Google_NetworksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the specified network resource. (networks.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $network Name of the network resource to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function delete($project, $network, $optParams = array()) {
+ $params = array('project' => $project, 'network' => $network);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified network resource. (networks.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $network Name of the network resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Network
+ */
+ public function get($project, $network, $optParams = array()) {
+ $params = array('project' => $project, 'network' => $network);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Network($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a network resource in the specified project using the data included in the request.
+ * (networks.insert)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param Google_Network $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function insert($project, Google_Network $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of network resources available to the specified project. (networks.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_NetworkList
+ */
+ public function listNetworks($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_NetworkList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "projects" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $projects = $computeService->projects;
+ *
+ */
+ class Google_ProjectsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns the specified project resource. (projects.get)
+ *
+ * @param string $project Name of the project resource to retrieve.
+ * @param array $optParams Optional parameters.
+ * @return Google_Project
+ */
+ public function get($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Project($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Sets metadata common to all instances within the specified project using the data included in the
+ * request. (projects.setCommonInstanceMetadata)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param Google_Metadata $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function setCommonInstanceMetadata($project, Google_Metadata $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('setCommonInstanceMetadata', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "regionOperations" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $regionOperations = $computeService->regionOperations;
+ *
+ */
+ class Google_RegionOperationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the specified region-specific operation resource. (regionOperations.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $region Name of the region scoping this request.
+ * @param string $operation Name of the operation resource to delete.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($project, $region, $operation, $optParams = array()) {
+ $params = array('project' => $project, 'region' => $region, 'operation' => $operation);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves the specified region-specific operation resource. (regionOperations.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $region Name of the zone scoping this request.
+ * @param string $operation Name of the operation resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function get($project, $region, $operation, $optParams = array()) {
+ $params = array('project' => $project, 'region' => $region, 'operation' => $operation);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of operation resources contained within the specified region.
+ * (regionOperations.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $region Name of the region scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_OperationList
+ */
+ public function listRegionOperations($project, $region, $optParams = array()) {
+ $params = array('project' => $project, 'region' => $region);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_OperationList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "regions" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $regions = $computeService->regions;
+ *
+ */
+ class Google_RegionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns the specified region resource. (regions.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $region Name of the region resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Region
+ */
+ public function get($project, $region, $optParams = array()) {
+ $params = array('project' => $project, 'region' => $region);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Region($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of region resources available to the specified project. (regions.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_RegionList
+ */
+ public function listRegions($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_RegionList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "routes" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $routes = $computeService->routes;
+ *
+ */
+ class Google_RoutesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the specified route resource. (routes.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $route Name of the route resource to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function delete($project, $route, $optParams = array()) {
+ $params = array('project' => $project, 'route' => $route);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified route resource. (routes.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $route Name of the route resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Route
+ */
+ public function get($project, $route, $optParams = array()) {
+ $params = array('project' => $project, 'route' => $route);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Route($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a route resource in the specified project using the data included in the request.
+ * (routes.insert)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param Google_Route $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function insert($project, Google_Route $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of route resources available to the specified project. (routes.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_RouteList
+ */
+ public function listRoutes($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_RouteList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "snapshots" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $snapshots = $computeService->snapshots;
+ *
+ */
+ class Google_SnapshotsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the specified persistent disk snapshot resource. (snapshots.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $snapshot Name of the persistent disk snapshot resource to delete.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function delete($project, $snapshot, $optParams = array()) {
+ $params = array('project' => $project, 'snapshot' => $snapshot);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified persistent disk snapshot resource. (snapshots.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $snapshot Name of the persistent disk snapshot resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Snapshot
+ */
+ public function get($project, $snapshot, $optParams = array()) {
+ $params = array('project' => $project, 'snapshot' => $snapshot);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Snapshot($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of persistent disk snapshot resources contained within the specified project.
+ * (snapshots.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_SnapshotList
+ */
+ public function listSnapshots($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SnapshotList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "zoneOperations" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $zoneOperations = $computeService->zoneOperations;
+ *
+ */
+ class Google_ZoneOperationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the specified zone-specific operation resource. (zoneOperations.delete)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $operation Name of the operation resource to delete.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($project, $zone, $operation, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'operation' => $operation);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves the specified zone-specific operation resource. (zoneOperations.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param string $operation Name of the operation resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Operation
+ */
+ public function get($project, $zone, $operation, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone, 'operation' => $operation);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Operation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of operation resources contained within the specified zone.
+ * (zoneOperations.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_OperationList
+ */
+ public function listZoneOperations($project, $zone, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_OperationList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "zones" collection of methods.
+ * Typical usage is:
+ *
+ * $computeService = new Google_ComputeService(...);
+ * $zones = $computeService->zones;
+ *
+ */
+ class Google_ZonesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns the specified zone resource. (zones.get)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param string $zone Name of the zone resource to return.
+ * @param array $optParams Optional parameters.
+ * @return Google_Zone
+ */
+ public function get($project, $zone, $optParams = array()) {
+ $params = array('project' => $project, 'zone' => $zone);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Zone($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of zone resources available to the specified project. (zones.list)
+ *
+ * @param string $project Name of the project scoping this request.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filter Optional. Filter expression for filtering listed resources.
+ * @opt_param string maxResults Optional. Maximum count of results to be returned. Maximum and default value is 100.
+ * @opt_param string pageToken Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+ * @return Google_ZoneList
+ */
+ public function listZones($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ZoneList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Compute (v1beta15).
+ *
+ *
+ * API for the Google Compute Engine service.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_ComputeService extends Google_Service {
+ public $addresses;
+ public $disks;
+ public $firewalls;
+ public $globalOperations;
+ public $images;
+ public $instances;
+ public $kernels;
+ public $machineTypes;
+ public $networks;
+ public $projects;
+ public $regionOperations;
+ public $regions;
+ public $routes;
+ public $snapshots;
+ public $zoneOperations;
+ public $zones;
+ /**
+ * Constructs the internal representation of the Compute service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'compute/v1beta15/projects/';
+ $this->version = 'v1beta15';
+ $this->serviceName = 'compute';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->addresses = new Google_AddressesServiceResource($this, $this->serviceName, 'addresses', json_decode('{"methods": {"aggregatedList": {"id": "compute.addresses.aggregatedList", "path": "{project}/aggregated/addresses", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AddressAggregatedList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "delete": {"id": "compute.addresses.delete", "path": "{project}/regions/{region}/addresses/{address}", "httpMethod": "DELETE", "parameters": {"address": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "region": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.addresses.get", "path": "{project}/regions/{region}/addresses/{address}", "httpMethod": "GET", "parameters": {"address": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "region": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Address"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "insert": {"id": "compute.addresses.insert", "path": "{project}/regions/{region}/addresses", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "region": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Address"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "list": {"id": "compute.addresses.list", "path": "{project}/regions/{region}/addresses", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "region": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AddressList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->disks = new Google_DisksServiceResource($this, $this->serviceName, 'disks', json_decode('{"methods": {"aggregatedList": {"id": "compute.disks.aggregatedList", "path": "{project}/aggregated/disks", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "DiskAggregatedList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "createSnapshot": {"id": "compute.disks.createSnapshot", "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot", "httpMethod": "POST", "parameters": {"disk": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Snapshot"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "delete": {"id": "compute.disks.delete", "path": "{project}/zones/{zone}/disks/{disk}", "httpMethod": "DELETE", "parameters": {"disk": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.disks.get", "path": "{project}/zones/{zone}/disks/{disk}", "httpMethod": "GET", "parameters": {"disk": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Disk"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "insert": {"id": "compute.disks.insert", "path": "{project}/zones/{zone}/disks", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "sourceImage": {"type": "string", "location": "query"}, "zone": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Disk"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "list": {"id": "compute.disks.list", "path": "{project}/zones/{zone}/disks", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "DiskList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->firewalls = new Google_FirewallsServiceResource($this, $this->serviceName, 'firewalls', json_decode('{"methods": {"delete": {"id": "compute.firewalls.delete", "path": "{project}/global/firewalls/{firewall}", "httpMethod": "DELETE", "parameters": {"firewall": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.firewalls.get", "path": "{project}/global/firewalls/{firewall}", "httpMethod": "GET", "parameters": {"firewall": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Firewall"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "insert": {"id": "compute.firewalls.insert", "path": "{project}/global/firewalls", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Firewall"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "list": {"id": "compute.firewalls.list", "path": "{project}/global/firewalls", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "FirewallList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "patch": {"id": "compute.firewalls.patch", "path": "{project}/global/firewalls/{firewall}", "httpMethod": "PATCH", "parameters": {"firewall": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Firewall"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "update": {"id": "compute.firewalls.update", "path": "{project}/global/firewalls/{firewall}", "httpMethod": "PUT", "parameters": {"firewall": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Firewall"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}}}', true));
+ $this->globalOperations = new Google_GlobalOperationsServiceResource($this, $this->serviceName, 'globalOperations', json_decode('{"methods": {"aggregatedList": {"id": "compute.globalOperations.aggregatedList", "path": "{project}/aggregated/operations", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "OperationAggregatedList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "delete": {"id": "compute.globalOperations.delete", "path": "{project}/global/operations/{operation}", "httpMethod": "DELETE", "parameters": {"operation": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.globalOperations.get", "path": "{project}/global/operations/{operation}", "httpMethod": "GET", "parameters": {"operation": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "list": {"id": "compute.globalOperations.list", "path": "{project}/global/operations", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "OperationList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->images = new Google_ImagesServiceResource($this, $this->serviceName, 'images', json_decode('{"methods": {"delete": {"id": "compute.images.delete", "path": "{project}/global/images/{image}", "httpMethod": "DELETE", "parameters": {"image": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "deprecate": {"id": "compute.images.deprecate", "path": "{project}/global/images/{image}/deprecate", "httpMethod": "POST", "parameters": {"image": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "DeprecationStatus"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.images.get", "path": "{project}/global/images/{image}", "httpMethod": "GET", "parameters": {"image": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Image"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "insert": {"id": "compute.images.insert", "path": "{project}/global/images", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Image"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/devstorage.read_only"]}, "list": {"id": "compute.images.list", "path": "{project}/global/images", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ImageList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->instances = new Google_InstancesServiceResource($this, $this->serviceName, 'instances', json_decode('{"methods": {"addAccessConfig": {"id": "compute.instances.addAccessConfig", "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig", "httpMethod": "POST", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "networkInterface": {"type": "string", "required": true, "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AccessConfig"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "aggregatedList": {"id": "compute.instances.aggregatedList", "path": "{project}/aggregated/instances", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "InstanceAggregatedList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "attachDisk": {"id": "compute.instances.attachDisk", "path": "{project}/zones/{zone}/instances/{instance}/attachDisk", "httpMethod": "POST", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AttachedDisk"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "delete": {"id": "compute.instances.delete", "path": "{project}/zones/{zone}/instances/{instance}", "httpMethod": "DELETE", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "deleteAccessConfig": {"id": "compute.instances.deleteAccessConfig", "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", "httpMethod": "POST", "parameters": {"accessConfig": {"type": "string", "required": true, "location": "query"}, "instance": {"type": "string", "required": true, "location": "path"}, "networkInterface": {"type": "string", "required": true, "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "detachDisk": {"id": "compute.instances.detachDisk", "path": "{project}/zones/{zone}/instances/{instance}/detachDisk", "httpMethod": "POST", "parameters": {"deviceName": {"type": "string", "required": true, "location": "query"}, "instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.instances.get", "path": "{project}/zones/{zone}/instances/{instance}", "httpMethod": "GET", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Instance"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "getSerialPortOutput": {"id": "compute.instances.getSerialPortOutput", "path": "{project}/zones/{zone}/instances/{instance}/serialPort", "httpMethod": "GET", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "SerialPortOutput"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "insert": {"id": "compute.instances.insert", "path": "{project}/zones/{zone}/instances", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Instance"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "list": {"id": "compute.instances.list", "path": "{project}/zones/{zone}/instances", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "InstanceList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "reset": {"id": "compute.instances.reset", "path": "{project}/zones/{zone}/instances/{instance}/reset", "httpMethod": "POST", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "setMetadata": {"id": "compute.instances.setMetadata", "path": "{project}/zones/{zone}/instances/{instance}/setMetadata", "httpMethod": "POST", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Metadata"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "setTags": {"id": "compute.instances.setTags", "path": "{project}/zones/{zone}/instances/{instance}/setTags", "httpMethod": "POST", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Tags"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}}}', true));
+ $this->kernels = new Google_KernelsServiceResource($this, $this->serviceName, 'kernels', json_decode('{"methods": {"get": {"id": "compute.kernels.get", "path": "{project}/global/kernels/{kernel}", "httpMethod": "GET", "parameters": {"kernel": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Kernel"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "list": {"id": "compute.kernels.list", "path": "{project}/global/kernels", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "KernelList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->machineTypes = new Google_MachineTypesServiceResource($this, $this->serviceName, 'machineTypes', json_decode('{"methods": {"aggregatedList": {"id": "compute.machineTypes.aggregatedList", "path": "{project}/aggregated/machineTypes", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "MachineTypeAggregatedList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "get": {"id": "compute.machineTypes.get", "path": "{project}/zones/{zone}/machineTypes/{machineType}", "httpMethod": "GET", "parameters": {"machineType": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "MachineType"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "list": {"id": "compute.machineTypes.list", "path": "{project}/zones/{zone}/machineTypes", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "MachineTypeList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->networks = new Google_NetworksServiceResource($this, $this->serviceName, 'networks', json_decode('{"methods": {"delete": {"id": "compute.networks.delete", "path": "{project}/global/networks/{network}", "httpMethod": "DELETE", "parameters": {"network": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.networks.get", "path": "{project}/global/networks/{network}", "httpMethod": "GET", "parameters": {"network": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Network"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "insert": {"id": "compute.networks.insert", "path": "{project}/global/networks", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Network"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "list": {"id": "compute.networks.list", "path": "{project}/global/networks", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "NetworkList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->projects = new Google_ProjectsServiceResource($this, $this->serviceName, 'projects', json_decode('{"methods": {"get": {"id": "compute.projects.get", "path": "{project}", "httpMethod": "GET", "parameters": {"project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Project"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "setCommonInstanceMetadata": {"id": "compute.projects.setCommonInstanceMetadata", "path": "{project}/setCommonInstanceMetadata", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Metadata"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}}}', true));
+ $this->regionOperations = new Google_RegionOperationsServiceResource($this, $this->serviceName, 'regionOperations', json_decode('{"methods": {"delete": {"id": "compute.regionOperations.delete", "path": "{project}/regions/{region}/operations/{operation}", "httpMethod": "DELETE", "parameters": {"operation": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "region": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.regionOperations.get", "path": "{project}/regions/{region}/operations/{operation}", "httpMethod": "GET", "parameters": {"operation": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "region": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "list": {"id": "compute.regionOperations.list", "path": "{project}/regions/{region}/operations", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "region": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "OperationList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->regions = new Google_RegionsServiceResource($this, $this->serviceName, 'regions', json_decode('{"methods": {"get": {"id": "compute.regions.get", "path": "{project}/regions/{region}", "httpMethod": "GET", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "region": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Region"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "list": {"id": "compute.regions.list", "path": "{project}/regions", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "RegionList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->routes = new Google_RoutesServiceResource($this, $this->serviceName, 'routes', json_decode('{"methods": {"delete": {"id": "compute.routes.delete", "path": "{project}/global/routes/{route}", "httpMethod": "DELETE", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "route": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.routes.get", "path": "{project}/global/routes/{route}", "httpMethod": "GET", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "route": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Route"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "insert": {"id": "compute.routes.insert", "path": "{project}/global/routes", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Route"}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "list": {"id": "compute.routes.list", "path": "{project}/global/routes", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "RouteList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->snapshots = new Google_SnapshotsServiceResource($this, $this->serviceName, 'snapshots', json_decode('{"methods": {"delete": {"id": "compute.snapshots.delete", "path": "{project}/global/snapshots/{snapshot}", "httpMethod": "DELETE", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "snapshot": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.snapshots.get", "path": "{project}/global/snapshots/{snapshot}", "httpMethod": "GET", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "snapshot": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Snapshot"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "list": {"id": "compute.snapshots.list", "path": "{project}/global/snapshots", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "SnapshotList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->zoneOperations = new Google_ZoneOperationsServiceResource($this, $this->serviceName, 'zoneOperations', json_decode('{"methods": {"delete": {"id": "compute.zoneOperations.delete", "path": "{project}/zones/{zone}/operations/{operation}", "httpMethod": "DELETE", "parameters": {"operation": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/compute"]}, "get": {"id": "compute.zoneOperations.get", "path": "{project}/zones/{zone}/operations/{operation}", "httpMethod": "GET", "parameters": {"operation": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Operation"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "list": {"id": "compute.zoneOperations.list", "path": "{project}/zones/{zone}/operations", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "OperationList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+ $this->zones = new Google_ZonesServiceResource($this, $this->serviceName, 'zones', json_decode('{"methods": {"get": {"id": "compute.zones.get", "path": "{project}/zones/{zone}", "httpMethod": "GET", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "zone": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Zone"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}, "list": {"id": "compute.zones.list", "path": "{project}/zones", "httpMethod": "GET", "parameters": {"filter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ZoneList"}, "scopes": ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class Google_AccessConfig extends Google_Model {
+ public $kind;
+ public $name;
+ public $natIP;
+ public $type;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNatIP( $natIP) {
+ $this->natIP = $natIP;
+ }
+ public function getNatIP() {
+ return $this->natIP;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Address extends Google_Model {
+ public $address;
+ public $creationTimestamp;
+ public $description;
+ public $id;
+ public $kind;
+ public $name;
+ public $region;
+ public $selfLink;
+ public $status;
+ public $user;
+ public function setAddress( $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setRegion( $region) {
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setUser( $user) {
+ $this->user = $user;
+ }
+ public function getUser() {
+ return $this->user;
+ }
+}
+
+class Google_AddressAggregatedList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_AddressesScopedList';
+ protected $__itemsDataType = 'map';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(Google_AddressesScopedList $items) {
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_AddressList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Address';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Address) */ $items) {
+ $this->assertIsArray($items, 'Google_Address', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_AddressesScopedList extends Google_Model {
+ protected $__addressesType = 'Google_Address';
+ protected $__addressesDataType = 'array';
+ public $addresses;
+ protected $__warningType = 'Google_AddressesScopedListWarning';
+ protected $__warningDataType = '';
+ public $warning;
+ public function setAddresses(/* array(Google_Address) */ $addresses) {
+ $this->assertIsArray($addresses, 'Google_Address', __METHOD__);
+ $this->addresses = $addresses;
+ }
+ public function getAddresses() {
+ return $this->addresses;
+ }
+ public function setWarning(Google_AddressesScopedListWarning $warning) {
+ $this->warning = $warning;
+ }
+ public function getWarning() {
+ return $this->warning;
+ }
+}
+
+class Google_AddressesScopedListWarning extends Google_Model {
+ public $code;
+ protected $__dataType = 'Google_AddressesScopedListWarningData';
+ protected $__dataDataType = 'array';
+ public $data;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setData(/* array(Google_AddressesScopedListWarningData) */ $data) {
+ $this->assertIsArray($data, 'Google_AddressesScopedListWarningData', __METHOD__);
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_AddressesScopedListWarningData extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_AttachedDisk extends Google_Model {
+ public $boot;
+ public $deviceName;
+ public $index;
+ public $kind;
+ public $mode;
+ public $source;
+ public $type;
+ public function setBoot( $boot) {
+ $this->boot = $boot;
+ }
+ public function getBoot() {
+ return $this->boot;
+ }
+ public function setDeviceName( $deviceName) {
+ $this->deviceName = $deviceName;
+ }
+ public function getDeviceName() {
+ return $this->deviceName;
+ }
+ public function setIndex( $index) {
+ $this->index = $index;
+ }
+ public function getIndex() {
+ return $this->index;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMode( $mode) {
+ $this->mode = $mode;
+ }
+ public function getMode() {
+ return $this->mode;
+ }
+ public function setSource( $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_DeprecationStatus extends Google_Model {
+ public $deleted;
+ public $deprecated;
+ public $obsolete;
+ public $replacement;
+ public $state;
+ public function setDeleted( $deleted) {
+ $this->deleted = $deleted;
+ }
+ public function getDeleted() {
+ return $this->deleted;
+ }
+ public function setDeprecated( $deprecated) {
+ $this->deprecated = $deprecated;
+ }
+ public function getDeprecated() {
+ return $this->deprecated;
+ }
+ public function setObsolete( $obsolete) {
+ $this->obsolete = $obsolete;
+ }
+ public function getObsolete() {
+ return $this->obsolete;
+ }
+ public function setReplacement( $replacement) {
+ $this->replacement = $replacement;
+ }
+ public function getReplacement() {
+ return $this->replacement;
+ }
+ public function setState( $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+}
+
+class Google_Disk extends Google_Model {
+ public $creationTimestamp;
+ public $description;
+ public $id;
+ public $kind;
+ public $name;
+ public $options;
+ public $selfLink;
+ public $sizeGb;
+ public $sourceSnapshot;
+ public $sourceSnapshotId;
+ public $status;
+ public $zone;
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOptions( $options) {
+ $this->options = $options;
+ }
+ public function getOptions() {
+ return $this->options;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSizeGb( $sizeGb) {
+ $this->sizeGb = $sizeGb;
+ }
+ public function getSizeGb() {
+ return $this->sizeGb;
+ }
+ public function setSourceSnapshot( $sourceSnapshot) {
+ $this->sourceSnapshot = $sourceSnapshot;
+ }
+ public function getSourceSnapshot() {
+ return $this->sourceSnapshot;
+ }
+ public function setSourceSnapshotId( $sourceSnapshotId) {
+ $this->sourceSnapshotId = $sourceSnapshotId;
+ }
+ public function getSourceSnapshotId() {
+ return $this->sourceSnapshotId;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setZone( $zone) {
+ $this->zone = $zone;
+ }
+ public function getZone() {
+ return $this->zone;
+ }
+}
+
+class Google_DiskAggregatedList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_DisksScopedList';
+ protected $__itemsDataType = 'map';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(Google_DisksScopedList $items) {
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_DiskList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Disk';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Disk) */ $items) {
+ $this->assertIsArray($items, 'Google_Disk', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_DisksScopedList extends Google_Model {
+ protected $__disksType = 'Google_Disk';
+ protected $__disksDataType = 'array';
+ public $disks;
+ protected $__warningType = 'Google_DisksScopedListWarning';
+ protected $__warningDataType = '';
+ public $warning;
+ public function setDisks(/* array(Google_Disk) */ $disks) {
+ $this->assertIsArray($disks, 'Google_Disk', __METHOD__);
+ $this->disks = $disks;
+ }
+ public function getDisks() {
+ return $this->disks;
+ }
+ public function setWarning(Google_DisksScopedListWarning $warning) {
+ $this->warning = $warning;
+ }
+ public function getWarning() {
+ return $this->warning;
+ }
+}
+
+class Google_DisksScopedListWarning extends Google_Model {
+ public $code;
+ protected $__dataType = 'Google_DisksScopedListWarningData';
+ protected $__dataDataType = 'array';
+ public $data;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setData(/* array(Google_DisksScopedListWarningData) */ $data) {
+ $this->assertIsArray($data, 'Google_DisksScopedListWarningData', __METHOD__);
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_DisksScopedListWarningData extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Firewall extends Google_Model {
+ protected $__allowedType = 'Google_FirewallAllowed';
+ protected $__allowedDataType = 'array';
+ public $allowed;
+ public $creationTimestamp;
+ public $description;
+ public $id;
+ public $kind;
+ public $name;
+ public $network;
+ public $selfLink;
+ public $sourceRanges;
+ public $sourceTags;
+ public $targetTags;
+ public function setAllowed(/* array(Google_FirewallAllowed) */ $allowed) {
+ $this->assertIsArray($allowed, 'Google_FirewallAllowed', __METHOD__);
+ $this->allowed = $allowed;
+ }
+ public function getAllowed() {
+ return $this->allowed;
+ }
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNetwork( $network) {
+ $this->network = $network;
+ }
+ public function getNetwork() {
+ return $this->network;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSourceRanges(/* array(Google_string) */ $sourceRanges) {
+ $this->assertIsArray($sourceRanges, 'Google_string', __METHOD__);
+ $this->sourceRanges = $sourceRanges;
+ }
+ public function getSourceRanges() {
+ return $this->sourceRanges;
+ }
+ public function setSourceTags(/* array(Google_string) */ $sourceTags) {
+ $this->assertIsArray($sourceTags, 'Google_string', __METHOD__);
+ $this->sourceTags = $sourceTags;
+ }
+ public function getSourceTags() {
+ return $this->sourceTags;
+ }
+ public function setTargetTags(/* array(Google_string) */ $targetTags) {
+ $this->assertIsArray($targetTags, 'Google_string', __METHOD__);
+ $this->targetTags = $targetTags;
+ }
+ public function getTargetTags() {
+ return $this->targetTags;
+ }
+}
+
+class Google_FirewallAllowed extends Google_Model {
+ public $IPProtocol;
+ public $ports;
+ public function setIPProtocol( $IPProtocol) {
+ $this->IPProtocol = $IPProtocol;
+ }
+ public function getIPProtocol() {
+ return $this->IPProtocol;
+ }
+ public function setPorts(/* array(Google_string) */ $ports) {
+ $this->assertIsArray($ports, 'Google_string', __METHOD__);
+ $this->ports = $ports;
+ }
+ public function getPorts() {
+ return $this->ports;
+ }
+}
+
+class Google_FirewallList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Firewall';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Firewall) */ $items) {
+ $this->assertIsArray($items, 'Google_Firewall', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Image extends Google_Model {
+ public $creationTimestamp;
+ protected $__deprecatedType = 'Google_DeprecationStatus';
+ protected $__deprecatedDataType = '';
+ public $deprecated;
+ public $description;
+ public $id;
+ public $kind;
+ public $name;
+ public $preferredKernel;
+ protected $__rawDiskType = 'Google_ImageRawDisk';
+ protected $__rawDiskDataType = '';
+ public $rawDisk;
+ public $selfLink;
+ public $sourceType;
+ public $status;
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDeprecated(Google_DeprecationStatus $deprecated) {
+ $this->deprecated = $deprecated;
+ }
+ public function getDeprecated() {
+ return $this->deprecated;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPreferredKernel( $preferredKernel) {
+ $this->preferredKernel = $preferredKernel;
+ }
+ public function getPreferredKernel() {
+ return $this->preferredKernel;
+ }
+ public function setRawDisk(Google_ImageRawDisk $rawDisk) {
+ $this->rawDisk = $rawDisk;
+ }
+ public function getRawDisk() {
+ return $this->rawDisk;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSourceType( $sourceType) {
+ $this->sourceType = $sourceType;
+ }
+ public function getSourceType() {
+ return $this->sourceType;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_ImageList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Image';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Image) */ $items) {
+ $this->assertIsArray($items, 'Google_Image', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_ImageRawDisk extends Google_Model {
+ public $containerType;
+ public $sha1Checksum;
+ public $source;
+ public function setContainerType( $containerType) {
+ $this->containerType = $containerType;
+ }
+ public function getContainerType() {
+ return $this->containerType;
+ }
+ public function setSha1Checksum( $sha1Checksum) {
+ $this->sha1Checksum = $sha1Checksum;
+ }
+ public function getSha1Checksum() {
+ return $this->sha1Checksum;
+ }
+ public function setSource( $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+}
+
+class Google_Instance extends Google_Model {
+ public $canIpForward;
+ public $creationTimestamp;
+ public $description;
+ protected $__disksType = 'Google_AttachedDisk';
+ protected $__disksDataType = 'array';
+ public $disks;
+ public $id;
+ public $image;
+ public $kernel;
+ public $kind;
+ public $machineType;
+ protected $__metadataType = 'Google_Metadata';
+ protected $__metadataDataType = '';
+ public $metadata;
+ public $name;
+ protected $__networkInterfacesType = 'Google_NetworkInterface';
+ protected $__networkInterfacesDataType = 'array';
+ public $networkInterfaces;
+ public $selfLink;
+ protected $__serviceAccountsType = 'Google_ServiceAccount';
+ protected $__serviceAccountsDataType = 'array';
+ public $serviceAccounts;
+ public $status;
+ public $statusMessage;
+ protected $__tagsType = 'Google_Tags';
+ protected $__tagsDataType = '';
+ public $tags;
+ public $zone;
+ public function setCanIpForward( $canIpForward) {
+ $this->canIpForward = $canIpForward;
+ }
+ public function getCanIpForward() {
+ return $this->canIpForward;
+ }
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDisks(/* array(Google_AttachedDisk) */ $disks) {
+ $this->assertIsArray($disks, 'Google_AttachedDisk', __METHOD__);
+ $this->disks = $disks;
+ }
+ public function getDisks() {
+ return $this->disks;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage( $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setKernel( $kernel) {
+ $this->kernel = $kernel;
+ }
+ public function getKernel() {
+ return $this->kernel;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMachineType( $machineType) {
+ $this->machineType = $machineType;
+ }
+ public function getMachineType() {
+ return $this->machineType;
+ }
+ public function setMetadata(Google_Metadata $metadata) {
+ $this->metadata = $metadata;
+ }
+ public function getMetadata() {
+ return $this->metadata;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNetworkInterfaces(/* array(Google_NetworkInterface) */ $networkInterfaces) {
+ $this->assertIsArray($networkInterfaces, 'Google_NetworkInterface', __METHOD__);
+ $this->networkInterfaces = $networkInterfaces;
+ }
+ public function getNetworkInterfaces() {
+ return $this->networkInterfaces;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setServiceAccounts(/* array(Google_ServiceAccount) */ $serviceAccounts) {
+ $this->assertIsArray($serviceAccounts, 'Google_ServiceAccount', __METHOD__);
+ $this->serviceAccounts = $serviceAccounts;
+ }
+ public function getServiceAccounts() {
+ return $this->serviceAccounts;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setStatusMessage( $statusMessage) {
+ $this->statusMessage = $statusMessage;
+ }
+ public function getStatusMessage() {
+ return $this->statusMessage;
+ }
+ public function setTags(Google_Tags $tags) {
+ $this->tags = $tags;
+ }
+ public function getTags() {
+ return $this->tags;
+ }
+ public function setZone( $zone) {
+ $this->zone = $zone;
+ }
+ public function getZone() {
+ return $this->zone;
+ }
+}
+
+class Google_InstanceAggregatedList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_InstancesScopedList';
+ protected $__itemsDataType = 'map';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(Google_InstancesScopedList $items) {
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_InstanceList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Instance';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Instance) */ $items) {
+ $this->assertIsArray($items, 'Google_Instance', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_InstancesScopedList extends Google_Model {
+ protected $__instancesType = 'Google_Instance';
+ protected $__instancesDataType = 'array';
+ public $instances;
+ protected $__warningType = 'Google_InstancesScopedListWarning';
+ protected $__warningDataType = '';
+ public $warning;
+ public function setInstances(/* array(Google_Instance) */ $instances) {
+ $this->assertIsArray($instances, 'Google_Instance', __METHOD__);
+ $this->instances = $instances;
+ }
+ public function getInstances() {
+ return $this->instances;
+ }
+ public function setWarning(Google_InstancesScopedListWarning $warning) {
+ $this->warning = $warning;
+ }
+ public function getWarning() {
+ return $this->warning;
+ }
+}
+
+class Google_InstancesScopedListWarning extends Google_Model {
+ public $code;
+ protected $__dataType = 'Google_InstancesScopedListWarningData';
+ protected $__dataDataType = 'array';
+ public $data;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setData(/* array(Google_InstancesScopedListWarningData) */ $data) {
+ $this->assertIsArray($data, 'Google_InstancesScopedListWarningData', __METHOD__);
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_InstancesScopedListWarningData extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Kernel extends Google_Model {
+ public $creationTimestamp;
+ protected $__deprecatedType = 'Google_DeprecationStatus';
+ protected $__deprecatedDataType = '';
+ public $deprecated;
+ public $description;
+ public $id;
+ public $kind;
+ public $name;
+ public $selfLink;
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDeprecated(Google_DeprecationStatus $deprecated) {
+ $this->deprecated = $deprecated;
+ }
+ public function getDeprecated() {
+ return $this->deprecated;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_KernelList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Kernel';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Kernel) */ $items) {
+ $this->assertIsArray($items, 'Google_Kernel', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_MachineType extends Google_Model {
+ public $creationTimestamp;
+ protected $__deprecatedType = 'Google_DeprecationStatus';
+ protected $__deprecatedDataType = '';
+ public $deprecated;
+ public $description;
+ public $guestCpus;
+ public $id;
+ public $imageSpaceGb;
+ public $kind;
+ public $maximumPersistentDisks;
+ public $maximumPersistentDisksSizeGb;
+ public $memoryMb;
+ public $name;
+ protected $__scratchDisksType = 'Google_MachineTypeScratchDisks';
+ protected $__scratchDisksDataType = 'array';
+ public $scratchDisks;
+ public $selfLink;
+ public $zone;
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDeprecated(Google_DeprecationStatus $deprecated) {
+ $this->deprecated = $deprecated;
+ }
+ public function getDeprecated() {
+ return $this->deprecated;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setGuestCpus( $guestCpus) {
+ $this->guestCpus = $guestCpus;
+ }
+ public function getGuestCpus() {
+ return $this->guestCpus;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImageSpaceGb( $imageSpaceGb) {
+ $this->imageSpaceGb = $imageSpaceGb;
+ }
+ public function getImageSpaceGb() {
+ return $this->imageSpaceGb;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaximumPersistentDisks( $maximumPersistentDisks) {
+ $this->maximumPersistentDisks = $maximumPersistentDisks;
+ }
+ public function getMaximumPersistentDisks() {
+ return $this->maximumPersistentDisks;
+ }
+ public function setMaximumPersistentDisksSizeGb( $maximumPersistentDisksSizeGb) {
+ $this->maximumPersistentDisksSizeGb = $maximumPersistentDisksSizeGb;
+ }
+ public function getMaximumPersistentDisksSizeGb() {
+ return $this->maximumPersistentDisksSizeGb;
+ }
+ public function setMemoryMb( $memoryMb) {
+ $this->memoryMb = $memoryMb;
+ }
+ public function getMemoryMb() {
+ return $this->memoryMb;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setScratchDisks(/* array(Google_MachineTypeScratchDisks) */ $scratchDisks) {
+ $this->assertIsArray($scratchDisks, 'Google_MachineTypeScratchDisks', __METHOD__);
+ $this->scratchDisks = $scratchDisks;
+ }
+ public function getScratchDisks() {
+ return $this->scratchDisks;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setZone( $zone) {
+ $this->zone = $zone;
+ }
+ public function getZone() {
+ return $this->zone;
+ }
+}
+
+class Google_MachineTypeAggregatedList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_MachineTypesScopedList';
+ protected $__itemsDataType = 'map';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(Google_MachineTypesScopedList $items) {
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_MachineTypeList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_MachineType';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_MachineType) */ $items) {
+ $this->assertIsArray($items, 'Google_MachineType', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_MachineTypeScratchDisks extends Google_Model {
+ public $diskGb;
+ public function setDiskGb( $diskGb) {
+ $this->diskGb = $diskGb;
+ }
+ public function getDiskGb() {
+ return $this->diskGb;
+ }
+}
+
+class Google_MachineTypesScopedList extends Google_Model {
+ protected $__machineTypesType = 'Google_MachineType';
+ protected $__machineTypesDataType = 'array';
+ public $machineTypes;
+ protected $__warningType = 'Google_MachineTypesScopedListWarning';
+ protected $__warningDataType = '';
+ public $warning;
+ public function setMachineTypes(/* array(Google_MachineType) */ $machineTypes) {
+ $this->assertIsArray($machineTypes, 'Google_MachineType', __METHOD__);
+ $this->machineTypes = $machineTypes;
+ }
+ public function getMachineTypes() {
+ return $this->machineTypes;
+ }
+ public function setWarning(Google_MachineTypesScopedListWarning $warning) {
+ $this->warning = $warning;
+ }
+ public function getWarning() {
+ return $this->warning;
+ }
+}
+
+class Google_MachineTypesScopedListWarning extends Google_Model {
+ public $code;
+ protected $__dataType = 'Google_MachineTypesScopedListWarningData';
+ protected $__dataDataType = 'array';
+ public $data;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setData(/* array(Google_MachineTypesScopedListWarningData) */ $data) {
+ $this->assertIsArray($data, 'Google_MachineTypesScopedListWarningData', __METHOD__);
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_MachineTypesScopedListWarningData extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Metadata extends Google_Model {
+ public $fingerprint;
+ protected $__itemsType = 'Google_MetadataItems';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setFingerprint( $fingerprint) {
+ $this->fingerprint = $fingerprint;
+ }
+ public function getFingerprint() {
+ return $this->fingerprint;
+ }
+ public function setItems(/* array(Google_MetadataItems) */ $items) {
+ $this->assertIsArray($items, 'Google_MetadataItems', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_MetadataItems extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Network extends Google_Model {
+ public $IPv4Range;
+ public $creationTimestamp;
+ public $description;
+ public $gatewayIPv4;
+ public $id;
+ public $kind;
+ public $name;
+ public $selfLink;
+ public function setIPv4Range( $IPv4Range) {
+ $this->IPv4Range = $IPv4Range;
+ }
+ public function getIPv4Range() {
+ return $this->IPv4Range;
+ }
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setGatewayIPv4( $gatewayIPv4) {
+ $this->gatewayIPv4 = $gatewayIPv4;
+ }
+ public function getGatewayIPv4() {
+ return $this->gatewayIPv4;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_NetworkInterface extends Google_Model {
+ protected $__accessConfigsType = 'Google_AccessConfig';
+ protected $__accessConfigsDataType = 'array';
+ public $accessConfigs;
+ public $name;
+ public $network;
+ public $networkIP;
+ public function setAccessConfigs(/* array(Google_AccessConfig) */ $accessConfigs) {
+ $this->assertIsArray($accessConfigs, 'Google_AccessConfig', __METHOD__);
+ $this->accessConfigs = $accessConfigs;
+ }
+ public function getAccessConfigs() {
+ return $this->accessConfigs;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNetwork( $network) {
+ $this->network = $network;
+ }
+ public function getNetwork() {
+ return $this->network;
+ }
+ public function setNetworkIP( $networkIP) {
+ $this->networkIP = $networkIP;
+ }
+ public function getNetworkIP() {
+ return $this->networkIP;
+ }
+}
+
+class Google_NetworkList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Network';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Network) */ $items) {
+ $this->assertIsArray($items, 'Google_Network', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Operation extends Google_Model {
+ public $clientOperationId;
+ public $creationTimestamp;
+ public $endTime;
+ protected $__errorType = 'Google_OperationError';
+ protected $__errorDataType = '';
+ public $error;
+ public $httpErrorMessage;
+ public $httpErrorStatusCode;
+ public $id;
+ public $insertTime;
+ public $kind;
+ public $name;
+ public $operationType;
+ public $progress;
+ public $region;
+ public $selfLink;
+ public $startTime;
+ public $status;
+ public $statusMessage;
+ public $targetId;
+ public $targetLink;
+ public $user;
+ protected $__warningsType = 'Google_OperationWarnings';
+ protected $__warningsDataType = 'array';
+ public $warnings;
+ public $zone;
+ public function setClientOperationId( $clientOperationId) {
+ $this->clientOperationId = $clientOperationId;
+ }
+ public function getClientOperationId() {
+ return $this->clientOperationId;
+ }
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setError(Google_OperationError $error) {
+ $this->error = $error;
+ }
+ public function getError() {
+ return $this->error;
+ }
+ public function setHttpErrorMessage( $httpErrorMessage) {
+ $this->httpErrorMessage = $httpErrorMessage;
+ }
+ public function getHttpErrorMessage() {
+ return $this->httpErrorMessage;
+ }
+ public function setHttpErrorStatusCode( $httpErrorStatusCode) {
+ $this->httpErrorStatusCode = $httpErrorStatusCode;
+ }
+ public function getHttpErrorStatusCode() {
+ return $this->httpErrorStatusCode;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInsertTime( $insertTime) {
+ $this->insertTime = $insertTime;
+ }
+ public function getInsertTime() {
+ return $this->insertTime;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOperationType( $operationType) {
+ $this->operationType = $operationType;
+ }
+ public function getOperationType() {
+ return $this->operationType;
+ }
+ public function setProgress( $progress) {
+ $this->progress = $progress;
+ }
+ public function getProgress() {
+ return $this->progress;
+ }
+ public function setRegion( $region) {
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setStatusMessage( $statusMessage) {
+ $this->statusMessage = $statusMessage;
+ }
+ public function getStatusMessage() {
+ return $this->statusMessage;
+ }
+ public function setTargetId( $targetId) {
+ $this->targetId = $targetId;
+ }
+ public function getTargetId() {
+ return $this->targetId;
+ }
+ public function setTargetLink( $targetLink) {
+ $this->targetLink = $targetLink;
+ }
+ public function getTargetLink() {
+ return $this->targetLink;
+ }
+ public function setUser( $user) {
+ $this->user = $user;
+ }
+ public function getUser() {
+ return $this->user;
+ }
+ public function setWarnings(/* array(Google_OperationWarnings) */ $warnings) {
+ $this->assertIsArray($warnings, 'Google_OperationWarnings', __METHOD__);
+ $this->warnings = $warnings;
+ }
+ public function getWarnings() {
+ return $this->warnings;
+ }
+ public function setZone( $zone) {
+ $this->zone = $zone;
+ }
+ public function getZone() {
+ return $this->zone;
+ }
+}
+
+class Google_OperationAggregatedList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_OperationsScopedList';
+ protected $__itemsDataType = 'map';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(Google_OperationsScopedList $items) {
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_OperationError extends Google_Model {
+ protected $__errorsType = 'Google_OperationErrorErrors';
+ protected $__errorsDataType = 'array';
+ public $errors;
+ public function setErrors(/* array(Google_OperationErrorErrors) */ $errors) {
+ $this->assertIsArray($errors, 'Google_OperationErrorErrors', __METHOD__);
+ $this->errors = $errors;
+ }
+ public function getErrors() {
+ return $this->errors;
+ }
+}
+
+class Google_OperationErrorErrors extends Google_Model {
+ public $code;
+ public $location;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_OperationList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Operation';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Operation) */ $items) {
+ $this->assertIsArray($items, 'Google_Operation', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_OperationWarnings extends Google_Model {
+ public $code;
+ protected $__dataType = 'Google_OperationWarningsData';
+ protected $__dataDataType = 'array';
+ public $data;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setData(/* array(Google_OperationWarningsData) */ $data) {
+ $this->assertIsArray($data, 'Google_OperationWarningsData', __METHOD__);
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_OperationWarningsData extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_OperationsScopedList extends Google_Model {
+ protected $__operationsType = 'Google_Operation';
+ protected $__operationsDataType = 'array';
+ public $operations;
+ protected $__warningType = 'Google_OperationsScopedListWarning';
+ protected $__warningDataType = '';
+ public $warning;
+ public function setOperations(/* array(Google_Operation) */ $operations) {
+ $this->assertIsArray($operations, 'Google_Operation', __METHOD__);
+ $this->operations = $operations;
+ }
+ public function getOperations() {
+ return $this->operations;
+ }
+ public function setWarning(Google_OperationsScopedListWarning $warning) {
+ $this->warning = $warning;
+ }
+ public function getWarning() {
+ return $this->warning;
+ }
+}
+
+class Google_OperationsScopedListWarning extends Google_Model {
+ public $code;
+ protected $__dataType = 'Google_OperationsScopedListWarningData';
+ protected $__dataDataType = 'array';
+ public $data;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setData(/* array(Google_OperationsScopedListWarningData) */ $data) {
+ $this->assertIsArray($data, 'Google_OperationsScopedListWarningData', __METHOD__);
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_OperationsScopedListWarningData extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Project extends Google_Model {
+ protected $__commonInstanceMetadataType = 'Google_Metadata';
+ protected $__commonInstanceMetadataDataType = '';
+ public $commonInstanceMetadata;
+ public $creationTimestamp;
+ public $description;
+ public $id;
+ public $kind;
+ public $name;
+ protected $__quotasType = 'Google_Quota';
+ protected $__quotasDataType = 'array';
+ public $quotas;
+ public $selfLink;
+ public function setCommonInstanceMetadata(Google_Metadata $commonInstanceMetadata) {
+ $this->commonInstanceMetadata = $commonInstanceMetadata;
+ }
+ public function getCommonInstanceMetadata() {
+ return $this->commonInstanceMetadata;
+ }
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setQuotas(/* array(Google_Quota) */ $quotas) {
+ $this->assertIsArray($quotas, 'Google_Quota', __METHOD__);
+ $this->quotas = $quotas;
+ }
+ public function getQuotas() {
+ return $this->quotas;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Quota extends Google_Model {
+ public $limit;
+ public $metric;
+ public $usage;
+ public function setLimit( $limit) {
+ $this->limit = $limit;
+ }
+ public function getLimit() {
+ return $this->limit;
+ }
+ public function setMetric( $metric) {
+ $this->metric = $metric;
+ }
+ public function getMetric() {
+ return $this->metric;
+ }
+ public function setUsage( $usage) {
+ $this->usage = $usage;
+ }
+ public function getUsage() {
+ return $this->usage;
+ }
+}
+
+class Google_Region extends Google_Model {
+ public $creationTimestamp;
+ protected $__deprecatedType = 'Google_DeprecationStatus';
+ protected $__deprecatedDataType = '';
+ public $deprecated;
+ public $description;
+ public $id;
+ public $kind;
+ public $name;
+ protected $__quotasType = 'Google_Quota';
+ protected $__quotasDataType = 'array';
+ public $quotas;
+ public $selfLink;
+ public $status;
+ public $zones;
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDeprecated(Google_DeprecationStatus $deprecated) {
+ $this->deprecated = $deprecated;
+ }
+ public function getDeprecated() {
+ return $this->deprecated;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setQuotas(/* array(Google_Quota) */ $quotas) {
+ $this->assertIsArray($quotas, 'Google_Quota', __METHOD__);
+ $this->quotas = $quotas;
+ }
+ public function getQuotas() {
+ return $this->quotas;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setZones(/* array(Google_string) */ $zones) {
+ $this->assertIsArray($zones, 'Google_string', __METHOD__);
+ $this->zones = $zones;
+ }
+ public function getZones() {
+ return $this->zones;
+ }
+}
+
+class Google_RegionList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Region';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Region) */ $items) {
+ $this->assertIsArray($items, 'Google_Region', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Route extends Google_Model {
+ public $creationTimestamp;
+ public $description;
+ public $destRange;
+ public $id;
+ public $kind;
+ public $name;
+ public $network;
+ public $nextHopGateway;
+ public $nextHopInstance;
+ public $nextHopIp;
+ public $nextHopNetwork;
+ public $priority;
+ public $selfLink;
+ public $tags;
+ protected $__warningsType = 'Google_RouteWarnings';
+ protected $__warningsDataType = 'array';
+ public $warnings;
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDestRange( $destRange) {
+ $this->destRange = $destRange;
+ }
+ public function getDestRange() {
+ return $this->destRange;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNetwork( $network) {
+ $this->network = $network;
+ }
+ public function getNetwork() {
+ return $this->network;
+ }
+ public function setNextHopGateway( $nextHopGateway) {
+ $this->nextHopGateway = $nextHopGateway;
+ }
+ public function getNextHopGateway() {
+ return $this->nextHopGateway;
+ }
+ public function setNextHopInstance( $nextHopInstance) {
+ $this->nextHopInstance = $nextHopInstance;
+ }
+ public function getNextHopInstance() {
+ return $this->nextHopInstance;
+ }
+ public function setNextHopIp( $nextHopIp) {
+ $this->nextHopIp = $nextHopIp;
+ }
+ public function getNextHopIp() {
+ return $this->nextHopIp;
+ }
+ public function setNextHopNetwork( $nextHopNetwork) {
+ $this->nextHopNetwork = $nextHopNetwork;
+ }
+ public function getNextHopNetwork() {
+ return $this->nextHopNetwork;
+ }
+ public function setPriority( $priority) {
+ $this->priority = $priority;
+ }
+ public function getPriority() {
+ return $this->priority;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTags(/* array(Google_string) */ $tags) {
+ $this->assertIsArray($tags, 'Google_string', __METHOD__);
+ $this->tags = $tags;
+ }
+ public function getTags() {
+ return $this->tags;
+ }
+ public function setWarnings(/* array(Google_RouteWarnings) */ $warnings) {
+ $this->assertIsArray($warnings, 'Google_RouteWarnings', __METHOD__);
+ $this->warnings = $warnings;
+ }
+ public function getWarnings() {
+ return $this->warnings;
+ }
+}
+
+class Google_RouteList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Route';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Route) */ $items) {
+ $this->assertIsArray($items, 'Google_Route', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_RouteWarnings extends Google_Model {
+ public $code;
+ protected $__dataType = 'Google_RouteWarningsData';
+ protected $__dataDataType = 'array';
+ public $data;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setData(/* array(Google_RouteWarningsData) */ $data) {
+ $this->assertIsArray($data, 'Google_RouteWarningsData', __METHOD__);
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_RouteWarningsData extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_SerialPortOutput extends Google_Model {
+ public $contents;
+ public $kind;
+ public $selfLink;
+ public function setContents( $contents) {
+ $this->contents = $contents;
+ }
+ public function getContents() {
+ return $this->contents;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_ServiceAccount extends Google_Model {
+ public $email;
+ public $scopes;
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setScopes(/* array(Google_string) */ $scopes) {
+ $this->assertIsArray($scopes, 'Google_string', __METHOD__);
+ $this->scopes = $scopes;
+ }
+ public function getScopes() {
+ return $this->scopes;
+ }
+}
+
+class Google_Snapshot extends Google_Model {
+ public $creationTimestamp;
+ public $description;
+ public $diskSizeGb;
+ public $id;
+ public $kind;
+ public $name;
+ public $selfLink;
+ public $sourceDisk;
+ public $sourceDiskId;
+ public $status;
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDiskSizeGb( $diskSizeGb) {
+ $this->diskSizeGb = $diskSizeGb;
+ }
+ public function getDiskSizeGb() {
+ return $this->diskSizeGb;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSourceDisk( $sourceDisk) {
+ $this->sourceDisk = $sourceDisk;
+ }
+ public function getSourceDisk() {
+ return $this->sourceDisk;
+ }
+ public function setSourceDiskId( $sourceDiskId) {
+ $this->sourceDiskId = $sourceDiskId;
+ }
+ public function getSourceDiskId() {
+ return $this->sourceDiskId;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_SnapshotList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Snapshot';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Snapshot) */ $items) {
+ $this->assertIsArray($items, 'Google_Snapshot', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Tags extends Google_Model {
+ public $fingerprint;
+ public $items;
+ public function setFingerprint( $fingerprint) {
+ $this->fingerprint = $fingerprint;
+ }
+ public function getFingerprint() {
+ return $this->fingerprint;
+ }
+ public function setItems(/* array(Google_string) */ $items) {
+ $this->assertIsArray($items, 'Google_string', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+}
+
+class Google_Zone extends Google_Model {
+ public $creationTimestamp;
+ protected $__deprecatedType = 'Google_DeprecationStatus';
+ protected $__deprecatedDataType = '';
+ public $deprecated;
+ public $description;
+ public $id;
+ public $kind;
+ protected $__maintenanceWindowsType = 'Google_ZoneMaintenanceWindows';
+ protected $__maintenanceWindowsDataType = 'array';
+ public $maintenanceWindows;
+ public $name;
+ protected $__quotasType = 'Google_Quota';
+ protected $__quotasDataType = 'array';
+ public $quotas;
+ public $region;
+ public $selfLink;
+ public $status;
+ public function setCreationTimestamp( $creationTimestamp) {
+ $this->creationTimestamp = $creationTimestamp;
+ }
+ public function getCreationTimestamp() {
+ return $this->creationTimestamp;
+ }
+ public function setDeprecated(Google_DeprecationStatus $deprecated) {
+ $this->deprecated = $deprecated;
+ }
+ public function getDeprecated() {
+ return $this->deprecated;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaintenanceWindows(/* array(Google_ZoneMaintenanceWindows) */ $maintenanceWindows) {
+ $this->assertIsArray($maintenanceWindows, 'Google_ZoneMaintenanceWindows', __METHOD__);
+ $this->maintenanceWindows = $maintenanceWindows;
+ }
+ public function getMaintenanceWindows() {
+ return $this->maintenanceWindows;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setQuotas(/* array(Google_Quota) */ $quotas) {
+ $this->assertIsArray($quotas, 'Google_Quota', __METHOD__);
+ $this->quotas = $quotas;
+ }
+ public function getQuotas() {
+ return $this->quotas;
+ }
+ public function setRegion( $region) {
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_ZoneList extends Google_Model {
+ public $id;
+ protected $__itemsType = 'Google_Zone';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Zone) */ $items) {
+ $this->assertIsArray($items, 'Google_Zone', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_ZoneMaintenanceWindows extends Google_Model {
+ public $beginTime;
+ public $description;
+ public $endTime;
+ public $name;
+ public function setBeginTime( $beginTime) {
+ $this->beginTime = $beginTime;
+ }
+ public function getBeginTime() {
+ return $this->beginTime;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CoordinateService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CoordinateService.php
new file mode 100644
index 0000000..2db74f5
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CoordinateService.php
@@ -0,0 +1,842 @@
+
+ * $coordinateService = new Google_CoordinateService(...);
+ * $customFieldDef = $coordinateService->customFieldDef;
+ *
+ */
+ class Google_CustomFieldDefServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a list of custom field definitions for a team. (customFieldDef.list)
+ *
+ * @param string $teamId Team ID
+ * @param array $optParams Optional parameters.
+ * @return Google_CustomFieldDefListResponse
+ */
+ public function listCustomFieldDef($teamId, $optParams = array()) {
+ $params = array('teamId' => $teamId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CustomFieldDefListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "jobs" collection of methods.
+ * Typical usage is:
+ *
+ * $coordinateService = new Google_CoordinateService(...);
+ * $jobs = $coordinateService->jobs;
+ *
+ */
+ class Google_JobsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a job, including all the changes made to the job. (jobs.get)
+ *
+ * @param string $teamId Team ID
+ * @param string $jobId Job number
+ * @param array $optParams Optional parameters.
+ * @return Google_Job
+ */
+ public function get($teamId, $jobId, $optParams = array()) {
+ $params = array('teamId' => $teamId, 'jobId' => $jobId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Job($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Inserts a new job. Only the state field of the job should be set. (jobs.insert)
+ *
+ * @param string $teamId Team ID
+ * @param string $address Job address as newline (Unix) separated string
+ * @param double $lat The latitude coordinate of this job's location.
+ * @param double $lng The longitude coordinate of this job's location.
+ * @param string $title Job title
+ * @param Google_Job $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string assignee Assignee email address, or empty string to unassign.
+ * @opt_param string customField Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice'
+ * @opt_param string customerName Customer name
+ * @opt_param string customerPhoneNumber Customer phone number
+ * @opt_param string note Job note as newline (Unix) separated string
+ * @return Google_Job
+ */
+ public function insert($teamId, $address, $lat, $lng, $title, Google_Job $postBody, $optParams = array()) {
+ $params = array('teamId' => $teamId, 'address' => $address, 'lat' => $lat, 'lng' => $lng, 'title' => $title, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Job($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves jobs created or modified since the given timestamp. (jobs.list)
+ *
+ * @param string $teamId Team ID
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of results to return in one page.
+ * @opt_param string minModifiedTimestampMs Minimum time a job was modified in milliseconds since epoch.
+ * @opt_param string pageToken Continuation token
+ * @return Google_JobListResponse
+ */
+ public function listJobs($teamId, $optParams = array()) {
+ $params = array('teamId' => $teamId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_JobListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a job. Fields that are set in the job state will be updated. This method supports patch
+ * semantics. (jobs.patch)
+ *
+ * @param string $teamId Team ID
+ * @param string $jobId Job number
+ * @param Google_Job $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string address Job address as newline (Unix) separated string
+ * @opt_param string assignee Assignee email address, or empty string to unassign.
+ * @opt_param string customField Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice'
+ * @opt_param string customerName Customer name
+ * @opt_param string customerPhoneNumber Customer phone number
+ * @opt_param double lat The latitude coordinate of this job's location.
+ * @opt_param double lng The longitude coordinate of this job's location.
+ * @opt_param string note Job note as newline (Unix) separated string
+ * @opt_param string progress Job progress
+ * @opt_param string title Job title
+ * @return Google_Job
+ */
+ public function patch($teamId, $jobId, Google_Job $postBody, $optParams = array()) {
+ $params = array('teamId' => $teamId, 'jobId' => $jobId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Job($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a job. Fields that are set in the job state will be updated. (jobs.update)
+ *
+ * @param string $teamId Team ID
+ * @param string $jobId Job number
+ * @param Google_Job $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string address Job address as newline (Unix) separated string
+ * @opt_param string assignee Assignee email address, or empty string to unassign.
+ * @opt_param string customField Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice'
+ * @opt_param string customerName Customer name
+ * @opt_param string customerPhoneNumber Customer phone number
+ * @opt_param double lat The latitude coordinate of this job's location.
+ * @opt_param double lng The longitude coordinate of this job's location.
+ * @opt_param string note Job note as newline (Unix) separated string
+ * @opt_param string progress Job progress
+ * @opt_param string title Job title
+ * @return Google_Job
+ */
+ public function update($teamId, $jobId, Google_Job $postBody, $optParams = array()) {
+ $params = array('teamId' => $teamId, 'jobId' => $jobId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Job($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "location" collection of methods.
+ * Typical usage is:
+ *
+ * $coordinateService = new Google_CoordinateService(...);
+ * $location = $coordinateService->location;
+ *
+ */
+ class Google_LocationServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a list of locations for a worker. (location.list)
+ *
+ * @param string $teamId Team ID
+ * @param string $workerEmail Worker email address.
+ * @param string $startTimestampMs Start timestamp in milliseconds since the epoch.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of results to return in one page.
+ * @opt_param string pageToken Continuation token
+ * @return Google_LocationListResponse
+ */
+ public function listLocation($teamId, $workerEmail, $startTimestampMs, $optParams = array()) {
+ $params = array('teamId' => $teamId, 'workerEmail' => $workerEmail, 'startTimestampMs' => $startTimestampMs);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_LocationListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "schedule" collection of methods.
+ * Typical usage is:
+ *
+ * $coordinateService = new Google_CoordinateService(...);
+ * $schedule = $coordinateService->schedule;
+ *
+ */
+ class Google_ScheduleServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the schedule for a job. (schedule.get)
+ *
+ * @param string $teamId Team ID
+ * @param string $jobId Job number
+ * @param array $optParams Optional parameters.
+ * @return Google_Schedule
+ */
+ public function get($teamId, $jobId, $optParams = array()) {
+ $params = array('teamId' => $teamId, 'jobId' => $jobId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Schedule($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Replaces the schedule of a job with the provided schedule. This method supports patch semantics.
+ * (schedule.patch)
+ *
+ * @param string $teamId Team ID
+ * @param string $jobId Job number
+ * @param Google_Schedule $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool allDay Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+ * @opt_param string duration Job duration in milliseconds.
+ * @opt_param string endTime Scheduled end time in milliseconds since epoch.
+ * @opt_param string startTime Scheduled start time in milliseconds since epoch.
+ * @return Google_Schedule
+ */
+ public function patch($teamId, $jobId, Google_Schedule $postBody, $optParams = array()) {
+ $params = array('teamId' => $teamId, 'jobId' => $jobId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Schedule($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Replaces the schedule of a job with the provided schedule. (schedule.update)
+ *
+ * @param string $teamId Team ID
+ * @param string $jobId Job number
+ * @param Google_Schedule $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool allDay Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+ * @opt_param string duration Job duration in milliseconds.
+ * @opt_param string endTime Scheduled end time in milliseconds since epoch.
+ * @opt_param string startTime Scheduled start time in milliseconds since epoch.
+ * @return Google_Schedule
+ */
+ public function update($teamId, $jobId, Google_Schedule $postBody, $optParams = array()) {
+ $params = array('teamId' => $teamId, 'jobId' => $jobId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Schedule($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "worker" collection of methods.
+ * Typical usage is:
+ *
+ * $coordinateService = new Google_CoordinateService(...);
+ * $worker = $coordinateService->worker;
+ *
+ */
+ class Google_WorkerServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a list of workers in a team. (worker.list)
+ *
+ * @param string $teamId Team ID
+ * @param array $optParams Optional parameters.
+ * @return Google_WorkerListResponse
+ */
+ public function listWorker($teamId, $optParams = array()) {
+ $params = array('teamId' => $teamId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_WorkerListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Coordinate (v1).
+ *
+ *
+ * Lets you view and manage jobs in a Coordinate team.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_CoordinateService extends Google_Service {
+ public $customFieldDef;
+ public $jobs;
+ public $location;
+ public $schedule;
+ public $worker;
+ /**
+ * Constructs the internal representation of the Coordinate service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'coordinate/v1/teams/';
+ $this->version = 'v1';
+ $this->serviceName = 'coordinate';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->customFieldDef = new Google_CustomFieldDefServiceResource($this, $this->serviceName, 'customFieldDef', json_decode('{"methods": {"list": {"id": "coordinate.customFieldDef.list", "path": "{teamId}/custom_fields", "httpMethod": "GET", "parameters": {"teamId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CustomFieldDefListResponse"}, "scopes": ["https://www.googleapis.com/auth/coordinate", "https://www.googleapis.com/auth/coordinate.readonly"]}}}', true));
+ $this->jobs = new Google_JobsServiceResource($this, $this->serviceName, 'jobs', json_decode('{"methods": {"get": {"id": "coordinate.jobs.get", "path": "{teamId}/jobs/{jobId}", "httpMethod": "GET", "parameters": {"jobId": {"type": "string", "required": true, "format": "uint64", "location": "path"}, "teamId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Job"}, "scopes": ["https://www.googleapis.com/auth/coordinate", "https://www.googleapis.com/auth/coordinate.readonly"]}, "insert": {"id": "coordinate.jobs.insert", "path": "{teamId}/jobs", "httpMethod": "POST", "parameters": {"address": {"type": "string", "required": true, "location": "query"}, "assignee": {"type": "string", "location": "query"}, "customField": {"type": "string", "repeated": true, "location": "query"}, "customerName": {"type": "string", "location": "query"}, "customerPhoneNumber": {"type": "string", "location": "query"}, "lat": {"type": "number", "required": true, "format": "double", "location": "query"}, "lng": {"type": "number", "required": true, "format": "double", "location": "query"}, "note": {"type": "string", "location": "query"}, "teamId": {"type": "string", "required": true, "location": "path"}, "title": {"type": "string", "required": true, "location": "query"}}, "request": {"$ref": "Job"}, "response": {"$ref": "Job"}, "scopes": ["https://www.googleapis.com/auth/coordinate"]}, "list": {"id": "coordinate.jobs.list", "path": "{teamId}/jobs", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "minModifiedTimestampMs": {"type": "string", "format": "uint64", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "teamId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "JobListResponse"}, "scopes": ["https://www.googleapis.com/auth/coordinate", "https://www.googleapis.com/auth/coordinate.readonly"]}, "patch": {"id": "coordinate.jobs.patch", "path": "{teamId}/jobs/{jobId}", "httpMethod": "PATCH", "parameters": {"address": {"type": "string", "location": "query"}, "assignee": {"type": "string", "location": "query"}, "customField": {"type": "string", "repeated": true, "location": "query"}, "customerName": {"type": "string", "location": "query"}, "customerPhoneNumber": {"type": "string", "location": "query"}, "jobId": {"type": "string", "required": true, "format": "uint64", "location": "path"}, "lat": {"type": "number", "format": "double", "location": "query"}, "lng": {"type": "number", "format": "double", "location": "query"}, "note": {"type": "string", "location": "query"}, "progress": {"type": "string", "enum": ["COMPLETED", "IN_PROGRESS", "NOT_ACCEPTED", "NOT_STARTED", "OBSOLETE"], "location": "query"}, "teamId": {"type": "string", "required": true, "location": "path"}, "title": {"type": "string", "location": "query"}}, "request": {"$ref": "Job"}, "response": {"$ref": "Job"}, "scopes": ["https://www.googleapis.com/auth/coordinate"]}, "update": {"id": "coordinate.jobs.update", "path": "{teamId}/jobs/{jobId}", "httpMethod": "PUT", "parameters": {"address": {"type": "string", "location": "query"}, "assignee": {"type": "string", "location": "query"}, "customField": {"type": "string", "repeated": true, "location": "query"}, "customerName": {"type": "string", "location": "query"}, "customerPhoneNumber": {"type": "string", "location": "query"}, "jobId": {"type": "string", "required": true, "format": "uint64", "location": "path"}, "lat": {"type": "number", "format": "double", "location": "query"}, "lng": {"type": "number", "format": "double", "location": "query"}, "note": {"type": "string", "location": "query"}, "progress": {"type": "string", "enum": ["COMPLETED", "IN_PROGRESS", "NOT_ACCEPTED", "NOT_STARTED", "OBSOLETE"], "location": "query"}, "teamId": {"type": "string", "required": true, "location": "path"}, "title": {"type": "string", "location": "query"}}, "request": {"$ref": "Job"}, "response": {"$ref": "Job"}, "scopes": ["https://www.googleapis.com/auth/coordinate"]}}}', true));
+ $this->location = new Google_LocationServiceResource($this, $this->serviceName, 'location', json_decode('{"methods": {"list": {"id": "coordinate.location.list", "path": "{teamId}/workers/{workerEmail}/locations", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "startTimestampMs": {"type": "string", "required": true, "format": "uint64", "location": "query"}, "teamId": {"type": "string", "required": true, "location": "path"}, "workerEmail": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "LocationListResponse"}, "scopes": ["https://www.googleapis.com/auth/coordinate", "https://www.googleapis.com/auth/coordinate.readonly"]}}}', true));
+ $this->schedule = new Google_ScheduleServiceResource($this, $this->serviceName, 'schedule', json_decode('{"methods": {"get": {"id": "coordinate.schedule.get", "path": "{teamId}/jobs/{jobId}/schedule", "httpMethod": "GET", "parameters": {"jobId": {"type": "string", "required": true, "format": "uint64", "location": "path"}, "teamId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Schedule"}, "scopes": ["https://www.googleapis.com/auth/coordinate", "https://www.googleapis.com/auth/coordinate.readonly"]}, "patch": {"id": "coordinate.schedule.patch", "path": "{teamId}/jobs/{jobId}/schedule", "httpMethod": "PATCH", "parameters": {"allDay": {"type": "boolean", "location": "query"}, "duration": {"type": "string", "format": "uint64", "location": "query"}, "endTime": {"type": "string", "format": "uint64", "location": "query"}, "jobId": {"type": "string", "required": true, "format": "uint64", "location": "path"}, "startTime": {"type": "string", "format": "uint64", "location": "query"}, "teamId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Schedule"}, "response": {"$ref": "Schedule"}, "scopes": ["https://www.googleapis.com/auth/coordinate"]}, "update": {"id": "coordinate.schedule.update", "path": "{teamId}/jobs/{jobId}/schedule", "httpMethod": "PUT", "parameters": {"allDay": {"type": "boolean", "location": "query"}, "duration": {"type": "string", "format": "uint64", "location": "query"}, "endTime": {"type": "string", "format": "uint64", "location": "query"}, "jobId": {"type": "string", "required": true, "format": "uint64", "location": "path"}, "startTime": {"type": "string", "format": "uint64", "location": "query"}, "teamId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Schedule"}, "response": {"$ref": "Schedule"}, "scopes": ["https://www.googleapis.com/auth/coordinate"]}}}', true));
+ $this->worker = new Google_WorkerServiceResource($this, $this->serviceName, 'worker', json_decode('{"methods": {"list": {"id": "coordinate.worker.list", "path": "{teamId}/workers", "httpMethod": "GET", "parameters": {"teamId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "WorkerListResponse"}, "scopes": ["https://www.googleapis.com/auth/coordinate", "https://www.googleapis.com/auth/coordinate.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class Google_CustomField extends Google_Model {
+ public $customFieldId;
+ public $kind;
+ public $value;
+ public function setCustomFieldId( $customFieldId) {
+ $this->customFieldId = $customFieldId;
+ }
+ public function getCustomFieldId() {
+ return $this->customFieldId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_CustomFieldDef extends Google_Model {
+ public $enabled;
+ public $id;
+ public $kind;
+ public $name;
+ public $requiredForCheckout;
+ public $type;
+ public function setEnabled( $enabled) {
+ $this->enabled = $enabled;
+ }
+ public function getEnabled() {
+ return $this->enabled;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setRequiredForCheckout( $requiredForCheckout) {
+ $this->requiredForCheckout = $requiredForCheckout;
+ }
+ public function getRequiredForCheckout() {
+ return $this->requiredForCheckout;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_CustomFieldDefListResponse extends Google_Model {
+ protected $__itemsType = 'Google_CustomFieldDef';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_CustomFieldDef) */ $items) {
+ $this->assertIsArray($items, 'Google_CustomFieldDef', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_CustomFields extends Google_Model {
+ protected $__customFieldType = 'Google_CustomField';
+ protected $__customFieldDataType = 'array';
+ public $customField;
+ public $kind;
+ public function setCustomField(/* array(Google_CustomField) */ $customField) {
+ $this->assertIsArray($customField, 'Google_CustomField', __METHOD__);
+ $this->customField = $customField;
+ }
+ public function getCustomField() {
+ return $this->customField;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Job extends Google_Model {
+ public $id;
+ protected $__jobChangeType = 'Google_JobChange';
+ protected $__jobChangeDataType = 'array';
+ public $jobChange;
+ public $kind;
+ protected $__stateType = 'Google_JobState';
+ protected $__stateDataType = '';
+ public $state;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setJobChange(/* array(Google_JobChange) */ $jobChange) {
+ $this->assertIsArray($jobChange, 'Google_JobChange', __METHOD__);
+ $this->jobChange = $jobChange;
+ }
+ public function getJobChange() {
+ return $this->jobChange;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setState(Google_JobState $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+}
+
+class Google_JobChange extends Google_Model {
+ public $kind;
+ protected $__stateType = 'Google_JobState';
+ protected $__stateDataType = '';
+ public $state;
+ public $timestamp;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setState(Google_JobState $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+ public function setTimestamp( $timestamp) {
+ $this->timestamp = $timestamp;
+ }
+ public function getTimestamp() {
+ return $this->timestamp;
+ }
+}
+
+class Google_JobListResponse extends Google_Model {
+ protected $__itemsType = 'Google_Job';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Job) */ $items) {
+ $this->assertIsArray($items, 'Google_Job', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_JobState extends Google_Model {
+ public $assignee;
+ protected $__customFieldsType = 'Google_CustomFields';
+ protected $__customFieldsDataType = '';
+ public $customFields;
+ public $customerName;
+ public $customerPhoneNumber;
+ public $kind;
+ protected $__locationType = 'Google_Location';
+ protected $__locationDataType = '';
+ public $location;
+ public $note;
+ public $progress;
+ public $title;
+ public function setAssignee( $assignee) {
+ $this->assignee = $assignee;
+ }
+ public function getAssignee() {
+ return $this->assignee;
+ }
+ public function setCustomFields(Google_CustomFields $customFields) {
+ $this->customFields = $customFields;
+ }
+ public function getCustomFields() {
+ return $this->customFields;
+ }
+ public function setCustomerName( $customerName) {
+ $this->customerName = $customerName;
+ }
+ public function getCustomerName() {
+ return $this->customerName;
+ }
+ public function setCustomerPhoneNumber( $customerPhoneNumber) {
+ $this->customerPhoneNumber = $customerPhoneNumber;
+ }
+ public function getCustomerPhoneNumber() {
+ return $this->customerPhoneNumber;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocation(Google_Location $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setNote(/* array(Google_string) */ $note) {
+ $this->assertIsArray($note, 'Google_string', __METHOD__);
+ $this->note = $note;
+ }
+ public function getNote() {
+ return $this->note;
+ }
+ public function setProgress( $progress) {
+ $this->progress = $progress;
+ }
+ public function getProgress() {
+ return $this->progress;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_Location extends Google_Model {
+ public $addressLine;
+ public $kind;
+ public $lat;
+ public $lng;
+ public function setAddressLine(/* array(Google_string) */ $addressLine) {
+ $this->assertIsArray($addressLine, 'Google_string', __METHOD__);
+ $this->addressLine = $addressLine;
+ }
+ public function getAddressLine() {
+ return $this->addressLine;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLat( $lat) {
+ $this->lat = $lat;
+ }
+ public function getLat() {
+ return $this->lat;
+ }
+ public function setLng( $lng) {
+ $this->lng = $lng;
+ }
+ public function getLng() {
+ return $this->lng;
+ }
+}
+
+class Google_LocationListResponse extends Google_Model {
+ protected $__itemsType = 'Google_LocationRecord';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ protected $__tokenPaginationType = 'Google_TokenPagination';
+ protected $__tokenPaginationDataType = '';
+ public $tokenPagination;
+ public function setItems(/* array(Google_LocationRecord) */ $items) {
+ $this->assertIsArray($items, 'Google_LocationRecord', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTokenPagination(Google_TokenPagination $tokenPagination) {
+ $this->tokenPagination = $tokenPagination;
+ }
+ public function getTokenPagination() {
+ return $this->tokenPagination;
+ }
+}
+
+class Google_LocationRecord extends Google_Model {
+ public $collectionTime;
+ public $confidenceRadius;
+ public $kind;
+ public $latitude;
+ public $longitude;
+ public function setCollectionTime( $collectionTime) {
+ $this->collectionTime = $collectionTime;
+ }
+ public function getCollectionTime() {
+ return $this->collectionTime;
+ }
+ public function setConfidenceRadius( $confidenceRadius) {
+ $this->confidenceRadius = $confidenceRadius;
+ }
+ public function getConfidenceRadius() {
+ return $this->confidenceRadius;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_Schedule extends Google_Model {
+ public $allDay;
+ public $duration;
+ public $endTime;
+ public $kind;
+ public $startTime;
+ public function setAllDay( $allDay) {
+ $this->allDay = $allDay;
+ }
+ public function getAllDay() {
+ return $this->allDay;
+ }
+ public function setDuration( $duration) {
+ $this->duration = $duration;
+ }
+ public function getDuration() {
+ return $this->duration;
+ }
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+}
+
+class Google_TokenPagination extends Google_Model {
+ public $kind;
+ public $nextPageToken;
+ public $previousPageToken;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPreviousPageToken( $previousPageToken) {
+ $this->previousPageToken = $previousPageToken;
+ }
+ public function getPreviousPageToken() {
+ return $this->previousPageToken;
+ }
+}
+
+class Google_Worker extends Google_Model {
+ public $id;
+ public $kind;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_WorkerListResponse extends Google_Model {
+ protected $__itemsType = 'Google_Worker';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Worker) */ $items) {
+ $this->assertIsArray($items, 'Google_Worker', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CustomsearchService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CustomsearchService.php
new file mode 100644
index 0000000..230b7a4
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_CustomsearchService.php
@@ -0,0 +1,837 @@
+
+ * $customsearchService = new Google_CustomsearchService(...);
+ * $cse = $customsearchService->cse;
+ *
+ */
+ class Google_CseServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns metadata about the search performed, metadata about the custom search engine used for the
+ * search, and the search results. (cse.list)
+ *
+ * @param string $q Query
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string c2coff Turns off the translation between zh-CN and zh-TW.
+ * @opt_param string cr Country restrict(s).
+ * @opt_param string cref The URL of a linked custom search engine
+ * @opt_param string cx The custom search engine ID to scope this search query
+ * @opt_param string dateRestrict Specifies all search results are from a time period
+ * @opt_param string exactTerms Identifies a phrase that all documents in the search results must contain
+ * @opt_param string excludeTerms Identifies a word or phrase that should not appear in any documents in the search results
+ * @opt_param string fileType Returns images of a specified type. Some of the allowed values are: bmp, gif, png, jpg, svg, pdf, ...
+ * @opt_param string filter Controls turning on or off the duplicate content filter.
+ * @opt_param string gl Geolocation of end user.
+ * @opt_param string googlehost The local Google domain to use to perform the search.
+ * @opt_param string highRange Creates a range in form as_nlo value..as_nhi value and attempts to append it to query
+ * @opt_param string hl Sets the user interface language.
+ * @opt_param string hq Appends the extra query terms to the query.
+ * @opt_param string imgColorType Returns black and white, grayscale, or color images: mono, gray, and color.
+ * @opt_param string imgDominantColor Returns images of a specific dominant color: yellow, green, teal, blue, purple, pink, white, gray, black and brown.
+ * @opt_param string imgSize Returns images of a specified size, where size can be one of: icon, small, medium, large, xlarge, xxlarge, and huge.
+ * @opt_param string imgType Returns images of a type, which can be one of: clipart, face, lineart, news, and photo.
+ * @opt_param string linkSite Specifies that all search results should contain a link to a particular URL
+ * @opt_param string lowRange Creates a range in form as_nlo value..as_nhi value and attempts to append it to query
+ * @opt_param string lr The language restriction for the search results
+ * @opt_param string num Number of search results to return
+ * @opt_param string orTerms Provides additional search terms to check for in a document, where each document in the search results must contain at least one of the additional search terms
+ * @opt_param string relatedSite Specifies that all search results should be pages that are related to the specified URL
+ * @opt_param string rights Filters based on licensing. Supported values include: cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived and combinations of these.
+ * @opt_param string safe Search safety level
+ * @opt_param string searchType Specifies the search type: image.
+ * @opt_param string siteSearch Specifies all search results should be pages from a given site
+ * @opt_param string siteSearchFilter Controls whether to include or exclude results from the site named in the as_sitesearch parameter
+ * @opt_param string sort The sort expression to apply to the results
+ * @opt_param string start The index of the first result to return
+ * @return Google_Search
+ */
+ public function listCse($q, $optParams = array()) {
+ $params = array('q' => $q);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Search($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Customsearch (v1).
+ *
+ *
+ * Lets you search over a website or collection of websites
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_CustomsearchService extends Google_Service {
+ public $cse;
+ /**
+ * Constructs the internal representation of the Customsearch service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'customsearch/';
+ $this->version = 'v1';
+ $this->serviceName = 'customsearch';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->cse = new Google_CseServiceResource($this, $this->serviceName, 'cse', json_decode('{"methods": {"list": {"id": "search.cse.list", "path": "v1", "httpMethod": "GET", "parameters": {"c2coff": {"type": "string", "location": "query"}, "cr": {"type": "string", "location": "query"}, "cref": {"type": "string", "location": "query"}, "cx": {"type": "string", "location": "query"}, "dateRestrict": {"type": "string", "location": "query"}, "exactTerms": {"type": "string", "location": "query"}, "excludeTerms": {"type": "string", "location": "query"}, "fileType": {"type": "string", "location": "query"}, "filter": {"type": "string", "enum": ["0", "1"], "location": "query"}, "gl": {"type": "string", "location": "query"}, "googlehost": {"type": "string", "location": "query"}, "highRange": {"type": "string", "location": "query"}, "hl": {"type": "string", "location": "query"}, "hq": {"type": "string", "location": "query"}, "imgColorType": {"type": "string", "enum": ["color", "gray", "mono"], "location": "query"}, "imgDominantColor": {"type": "string", "enum": ["black", "blue", "brown", "gray", "green", "pink", "purple", "teal", "white", "yellow"], "location": "query"}, "imgSize": {"type": "string", "enum": ["huge", "icon", "large", "medium", "small", "xlarge", "xxlarge"], "location": "query"}, "imgType": {"type": "string", "enum": ["clipart", "face", "lineart", "news", "photo"], "location": "query"}, "linkSite": {"type": "string", "location": "query"}, "lowRange": {"type": "string", "location": "query"}, "lr": {"type": "string", "enum": ["lang_ar", "lang_bg", "lang_ca", "lang_cs", "lang_da", "lang_de", "lang_el", "lang_en", "lang_es", "lang_et", "lang_fi", "lang_fr", "lang_hr", "lang_hu", "lang_id", "lang_is", "lang_it", "lang_iw", "lang_ja", "lang_ko", "lang_lt", "lang_lv", "lang_nl", "lang_no", "lang_pl", "lang_pt", "lang_ro", "lang_ru", "lang_sk", "lang_sl", "lang_sr", "lang_sv", "lang_tr", "lang_zh-CN", "lang_zh-TW"], "location": "query"}, "num": {"type": "integer", "default": "10", "format": "uint32", "location": "query"}, "orTerms": {"type": "string", "location": "query"}, "q": {"type": "string", "required": true, "location": "query"}, "relatedSite": {"type": "string", "location": "query"}, "rights": {"type": "string", "location": "query"}, "safe": {"type": "string", "default": "off", "enum": ["high", "medium", "off"], "location": "query"}, "searchType": {"type": "string", "enum": ["image"], "location": "query"}, "siteSearch": {"type": "string", "location": "query"}, "siteSearchFilter": {"type": "string", "enum": ["e", "i"], "location": "query"}, "sort": {"type": "string", "location": "query"}, "start": {"type": "integer", "format": "uint32", "location": "query"}}, "response": {"$ref": "Search"}}}}', true));
+
+ }
+}
+
+
+
+class Google_Context extends Google_Model {
+ protected $__facetsType = 'Google_ContextFacets';
+ protected $__facetsDataType = 'array';
+ public $facets;
+ public $title;
+ public function setFacets(/* array(Google_ContextFacets) */ $facets) {
+ $this->assertIsArray($facets, 'Google_ContextFacets', __METHOD__);
+ $this->facets = $facets;
+ }
+ public function getFacets() {
+ return $this->facets;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_ContextFacets extends Google_Model {
+ public $anchor;
+ public $label;
+ public function setAnchor( $anchor) {
+ $this->anchor = $anchor;
+ }
+ public function getAnchor() {
+ return $this->anchor;
+ }
+ public function setLabel( $label) {
+ $this->label = $label;
+ }
+ public function getLabel() {
+ return $this->label;
+ }
+}
+
+class Google_Promotion extends Google_Model {
+ protected $__bodyLinesType = 'Google_PromotionBodyLines';
+ protected $__bodyLinesDataType = 'array';
+ public $bodyLines;
+ public $displayLink;
+ public $htmlTitle;
+ protected $__imageType = 'Google_PromotionImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $link;
+ public $title;
+ public function setBodyLines(/* array(Google_PromotionBodyLines) */ $bodyLines) {
+ $this->assertIsArray($bodyLines, 'Google_PromotionBodyLines', __METHOD__);
+ $this->bodyLines = $bodyLines;
+ }
+ public function getBodyLines() {
+ return $this->bodyLines;
+ }
+ public function setDisplayLink( $displayLink) {
+ $this->displayLink = $displayLink;
+ }
+ public function getDisplayLink() {
+ return $this->displayLink;
+ }
+ public function setHtmlTitle( $htmlTitle) {
+ $this->htmlTitle = $htmlTitle;
+ }
+ public function getHtmlTitle() {
+ return $this->htmlTitle;
+ }
+ public function setImage(Google_PromotionImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_PromotionBodyLines extends Google_Model {
+ public $htmlTitle;
+ public $link;
+ public $title;
+ public $url;
+ public function setHtmlTitle( $htmlTitle) {
+ $this->htmlTitle = $htmlTitle;
+ }
+ public function getHtmlTitle() {
+ return $this->htmlTitle;
+ }
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PromotionImage extends Google_Model {
+ public $height;
+ public $source;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setSource( $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_Query extends Google_Model {
+ public $count;
+ public $cr;
+ public $cref;
+ public $cx;
+ public $dateRestrict;
+ public $disableCnTwTranslation;
+ public $exactTerms;
+ public $excludeTerms;
+ public $fileType;
+ public $filter;
+ public $gl;
+ public $googleHost;
+ public $highRange;
+ public $hl;
+ public $hq;
+ public $imgColorType;
+ public $imgDominantColor;
+ public $imgSize;
+ public $imgType;
+ public $inputEncoding;
+ public $language;
+ public $linkSite;
+ public $lowRange;
+ public $orTerms;
+ public $outputEncoding;
+ public $relatedSite;
+ public $rights;
+ public $safe;
+ public $searchTerms;
+ public $searchType;
+ public $siteSearch;
+ public $siteSearchFilter;
+ public $sort;
+ public $startIndex;
+ public $startPage;
+ public $title;
+ public $totalResults;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setCr( $cr) {
+ $this->cr = $cr;
+ }
+ public function getCr() {
+ return $this->cr;
+ }
+ public function setCref( $cref) {
+ $this->cref = $cref;
+ }
+ public function getCref() {
+ return $this->cref;
+ }
+ public function setCx( $cx) {
+ $this->cx = $cx;
+ }
+ public function getCx() {
+ return $this->cx;
+ }
+ public function setDateRestrict( $dateRestrict) {
+ $this->dateRestrict = $dateRestrict;
+ }
+ public function getDateRestrict() {
+ return $this->dateRestrict;
+ }
+ public function setDisableCnTwTranslation( $disableCnTwTranslation) {
+ $this->disableCnTwTranslation = $disableCnTwTranslation;
+ }
+ public function getDisableCnTwTranslation() {
+ return $this->disableCnTwTranslation;
+ }
+ public function setExactTerms( $exactTerms) {
+ $this->exactTerms = $exactTerms;
+ }
+ public function getExactTerms() {
+ return $this->exactTerms;
+ }
+ public function setExcludeTerms( $excludeTerms) {
+ $this->excludeTerms = $excludeTerms;
+ }
+ public function getExcludeTerms() {
+ return $this->excludeTerms;
+ }
+ public function setFileType( $fileType) {
+ $this->fileType = $fileType;
+ }
+ public function getFileType() {
+ return $this->fileType;
+ }
+ public function setFilter( $filter) {
+ $this->filter = $filter;
+ }
+ public function getFilter() {
+ return $this->filter;
+ }
+ public function setGl( $gl) {
+ $this->gl = $gl;
+ }
+ public function getGl() {
+ return $this->gl;
+ }
+ public function setGoogleHost( $googleHost) {
+ $this->googleHost = $googleHost;
+ }
+ public function getGoogleHost() {
+ return $this->googleHost;
+ }
+ public function setHighRange( $highRange) {
+ $this->highRange = $highRange;
+ }
+ public function getHighRange() {
+ return $this->highRange;
+ }
+ public function setHl( $hl) {
+ $this->hl = $hl;
+ }
+ public function getHl() {
+ return $this->hl;
+ }
+ public function setHq( $hq) {
+ $this->hq = $hq;
+ }
+ public function getHq() {
+ return $this->hq;
+ }
+ public function setImgColorType( $imgColorType) {
+ $this->imgColorType = $imgColorType;
+ }
+ public function getImgColorType() {
+ return $this->imgColorType;
+ }
+ public function setImgDominantColor( $imgDominantColor) {
+ $this->imgDominantColor = $imgDominantColor;
+ }
+ public function getImgDominantColor() {
+ return $this->imgDominantColor;
+ }
+ public function setImgSize( $imgSize) {
+ $this->imgSize = $imgSize;
+ }
+ public function getImgSize() {
+ return $this->imgSize;
+ }
+ public function setImgType( $imgType) {
+ $this->imgType = $imgType;
+ }
+ public function getImgType() {
+ return $this->imgType;
+ }
+ public function setInputEncoding( $inputEncoding) {
+ $this->inputEncoding = $inputEncoding;
+ }
+ public function getInputEncoding() {
+ return $this->inputEncoding;
+ }
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+ public function setLinkSite( $linkSite) {
+ $this->linkSite = $linkSite;
+ }
+ public function getLinkSite() {
+ return $this->linkSite;
+ }
+ public function setLowRange( $lowRange) {
+ $this->lowRange = $lowRange;
+ }
+ public function getLowRange() {
+ return $this->lowRange;
+ }
+ public function setOrTerms( $orTerms) {
+ $this->orTerms = $orTerms;
+ }
+ public function getOrTerms() {
+ return $this->orTerms;
+ }
+ public function setOutputEncoding( $outputEncoding) {
+ $this->outputEncoding = $outputEncoding;
+ }
+ public function getOutputEncoding() {
+ return $this->outputEncoding;
+ }
+ public function setRelatedSite( $relatedSite) {
+ $this->relatedSite = $relatedSite;
+ }
+ public function getRelatedSite() {
+ return $this->relatedSite;
+ }
+ public function setRights( $rights) {
+ $this->rights = $rights;
+ }
+ public function getRights() {
+ return $this->rights;
+ }
+ public function setSafe( $safe) {
+ $this->safe = $safe;
+ }
+ public function getSafe() {
+ return $this->safe;
+ }
+ public function setSearchTerms( $searchTerms) {
+ $this->searchTerms = $searchTerms;
+ }
+ public function getSearchTerms() {
+ return $this->searchTerms;
+ }
+ public function setSearchType( $searchType) {
+ $this->searchType = $searchType;
+ }
+ public function getSearchType() {
+ return $this->searchType;
+ }
+ public function setSiteSearch( $siteSearch) {
+ $this->siteSearch = $siteSearch;
+ }
+ public function getSiteSearch() {
+ return $this->siteSearch;
+ }
+ public function setSiteSearchFilter( $siteSearchFilter) {
+ $this->siteSearchFilter = $siteSearchFilter;
+ }
+ public function getSiteSearchFilter() {
+ return $this->siteSearchFilter;
+ }
+ public function setSort( $sort) {
+ $this->sort = $sort;
+ }
+ public function getSort() {
+ return $this->sort;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setStartPage( $startPage) {
+ $this->startPage = $startPage;
+ }
+ public function getStartPage() {
+ return $this->startPage;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+}
+
+class Google_Result extends Google_Model {
+ public $cacheId;
+ public $displayLink;
+ public $fileFormat;
+ public $formattedUrl;
+ public $htmlFormattedUrl;
+ public $htmlSnippet;
+ public $htmlTitle;
+ protected $__imageType = 'Google_ResultImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $kind;
+ protected $__labelsType = 'Google_ResultLabels';
+ protected $__labelsDataType = 'array';
+ public $labels;
+ public $link;
+ public $mime;
+ public $pagemap;
+ public $snippet;
+ public $title;
+ public function setCacheId( $cacheId) {
+ $this->cacheId = $cacheId;
+ }
+ public function getCacheId() {
+ return $this->cacheId;
+ }
+ public function setDisplayLink( $displayLink) {
+ $this->displayLink = $displayLink;
+ }
+ public function getDisplayLink() {
+ return $this->displayLink;
+ }
+ public function setFileFormat( $fileFormat) {
+ $this->fileFormat = $fileFormat;
+ }
+ public function getFileFormat() {
+ return $this->fileFormat;
+ }
+ public function setFormattedUrl( $formattedUrl) {
+ $this->formattedUrl = $formattedUrl;
+ }
+ public function getFormattedUrl() {
+ return $this->formattedUrl;
+ }
+ public function setHtmlFormattedUrl( $htmlFormattedUrl) {
+ $this->htmlFormattedUrl = $htmlFormattedUrl;
+ }
+ public function getHtmlFormattedUrl() {
+ return $this->htmlFormattedUrl;
+ }
+ public function setHtmlSnippet( $htmlSnippet) {
+ $this->htmlSnippet = $htmlSnippet;
+ }
+ public function getHtmlSnippet() {
+ return $this->htmlSnippet;
+ }
+ public function setHtmlTitle( $htmlTitle) {
+ $this->htmlTitle = $htmlTitle;
+ }
+ public function getHtmlTitle() {
+ return $this->htmlTitle;
+ }
+ public function setImage(Google_ResultImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLabels(/* array(Google_ResultLabels) */ $labels) {
+ $this->assertIsArray($labels, 'Google_ResultLabels', __METHOD__);
+ $this->labels = $labels;
+ }
+ public function getLabels() {
+ return $this->labels;
+ }
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setMime( $mime) {
+ $this->mime = $mime;
+ }
+ public function getMime() {
+ return $this->mime;
+ }
+ public function setPagemap( $pagemap) {
+ $this->pagemap = $pagemap;
+ }
+ public function getPagemap() {
+ return $this->pagemap;
+ }
+ public function setSnippet( $snippet) {
+ $this->snippet = $snippet;
+ }
+ public function getSnippet() {
+ return $this->snippet;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_ResultImage extends Google_Model {
+ public $byteSize;
+ public $contextLink;
+ public $height;
+ public $thumbnailHeight;
+ public $thumbnailLink;
+ public $thumbnailWidth;
+ public $width;
+ public function setByteSize( $byteSize) {
+ $this->byteSize = $byteSize;
+ }
+ public function getByteSize() {
+ return $this->byteSize;
+ }
+ public function setContextLink( $contextLink) {
+ $this->contextLink = $contextLink;
+ }
+ public function getContextLink() {
+ return $this->contextLink;
+ }
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setThumbnailHeight( $thumbnailHeight) {
+ $this->thumbnailHeight = $thumbnailHeight;
+ }
+ public function getThumbnailHeight() {
+ return $this->thumbnailHeight;
+ }
+ public function setThumbnailLink( $thumbnailLink) {
+ $this->thumbnailLink = $thumbnailLink;
+ }
+ public function getThumbnailLink() {
+ return $this->thumbnailLink;
+ }
+ public function setThumbnailWidth( $thumbnailWidth) {
+ $this->thumbnailWidth = $thumbnailWidth;
+ }
+ public function getThumbnailWidth() {
+ return $this->thumbnailWidth;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ResultLabels extends Google_Model {
+ public $displayName;
+ public $name;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_Search extends Google_Model {
+ protected $__contextType = 'Google_Context';
+ protected $__contextDataType = '';
+ public $context;
+ protected $__itemsType = 'Google_Result';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ protected $__promotionsType = 'Google_Promotion';
+ protected $__promotionsDataType = 'array';
+ public $promotions;
+ protected $__queriesType = 'Google_Query';
+ protected $__queriesDataType = 'map';
+ public $queries;
+ protected $__searchInformationType = 'Google_SearchSearchInformation';
+ protected $__searchInformationDataType = '';
+ public $searchInformation;
+ protected $__spellingType = 'Google_SearchSpelling';
+ protected $__spellingDataType = '';
+ public $spelling;
+ protected $__urlType = 'Google_SearchUrl';
+ protected $__urlDataType = '';
+ public $url;
+ public function setContext(Google_Context $context) {
+ $this->context = $context;
+ }
+ public function getContext() {
+ return $this->context;
+ }
+ public function setItems(/* array(Google_Result) */ $items) {
+ $this->assertIsArray($items, 'Google_Result', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPromotions(/* array(Google_Promotion) */ $promotions) {
+ $this->assertIsArray($promotions, 'Google_Promotion', __METHOD__);
+ $this->promotions = $promotions;
+ }
+ public function getPromotions() {
+ return $this->promotions;
+ }
+ public function setQueries(Google_Query $queries) {
+ $this->queries = $queries;
+ }
+ public function getQueries() {
+ return $this->queries;
+ }
+ public function setSearchInformation(Google_SearchSearchInformation $searchInformation) {
+ $this->searchInformation = $searchInformation;
+ }
+ public function getSearchInformation() {
+ return $this->searchInformation;
+ }
+ public function setSpelling(Google_SearchSpelling $spelling) {
+ $this->spelling = $spelling;
+ }
+ public function getSpelling() {
+ return $this->spelling;
+ }
+ public function setUrl(Google_SearchUrl $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_SearchSearchInformation extends Google_Model {
+ public $formattedSearchTime;
+ public $formattedTotalResults;
+ public $searchTime;
+ public $totalResults;
+ public function setFormattedSearchTime( $formattedSearchTime) {
+ $this->formattedSearchTime = $formattedSearchTime;
+ }
+ public function getFormattedSearchTime() {
+ return $this->formattedSearchTime;
+ }
+ public function setFormattedTotalResults( $formattedTotalResults) {
+ $this->formattedTotalResults = $formattedTotalResults;
+ }
+ public function getFormattedTotalResults() {
+ return $this->formattedTotalResults;
+ }
+ public function setSearchTime( $searchTime) {
+ $this->searchTime = $searchTime;
+ }
+ public function getSearchTime() {
+ return $this->searchTime;
+ }
+ public function setTotalResults( $totalResults) {
+ $this->totalResults = $totalResults;
+ }
+ public function getTotalResults() {
+ return $this->totalResults;
+ }
+}
+
+class Google_SearchSpelling extends Google_Model {
+ public $correctedQuery;
+ public $htmlCorrectedQuery;
+ public function setCorrectedQuery( $correctedQuery) {
+ $this->correctedQuery = $correctedQuery;
+ }
+ public function getCorrectedQuery() {
+ return $this->correctedQuery;
+ }
+ public function setHtmlCorrectedQuery( $htmlCorrectedQuery) {
+ $this->htmlCorrectedQuery = $htmlCorrectedQuery;
+ }
+ public function getHtmlCorrectedQuery() {
+ return $this->htmlCorrectedQuery;
+ }
+}
+
+class Google_SearchUrl extends Google_Model {
+ public $template;
+ public $type;
+ public function setTemplate( $template) {
+ $this->template = $template;
+ }
+ public function getTemplate() {
+ return $this->template;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DatastoreService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DatastoreService.php
new file mode 100644
index 0000000..9146961
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DatastoreService.php
@@ -0,0 +1,998 @@
+
+ * $datastoreService = new Google_DatastoreService(...);
+ * $datasets = $datastoreService->datasets;
+ *
+ */
+ class Google_DatasetsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).
+ * (datasets.allocateIds)
+ *
+ * @param string $datasetId Identifies the dataset.
+ * @param Google_AllocateIdsRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_AllocateIdsResponse
+ */
+ public function allocateIds($datasetId, Google_AllocateIdsRequest $postBody, $optParams = array()) {
+ $params = array('datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('allocateIds', array($params));
+ if ($this->useObjects()) {
+ return new Google_AllocateIdsResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Begin a new transaction. (datasets.beginTransaction)
+ *
+ * @param string $datasetId Identifies the dataset.
+ * @param Google_BeginTransactionRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_BeginTransactionResponse
+ */
+ public function beginTransaction($datasetId, Google_BeginTransactionRequest $postBody, $optParams = array()) {
+ $params = array('datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('beginTransaction', array($params));
+ if ($this->useObjects()) {
+ return new Google_BeginTransactionResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create, delete or modify some entities outside a transaction. (datasets.blindWrite)
+ *
+ * @param string $datasetId Identifies the dataset.
+ * @param Google_BlindWriteRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_BlindWriteResponse
+ */
+ public function blindWrite($datasetId, Google_BlindWriteRequest $postBody, $optParams = array()) {
+ $params = array('datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('blindWrite', array($params));
+ if ($this->useObjects()) {
+ return new Google_BlindWriteResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Commit a transaction, optionally creating, deleting or modifying some entities. (datasets.commit)
+ *
+ * @param string $datasetId Identifies the dataset.
+ * @param Google_CommitRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CommitResponse
+ */
+ public function commit($datasetId, Google_CommitRequest $postBody, $optParams = array()) {
+ $params = array('datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('commit', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommitResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Look up some entities by key. (datasets.lookup)
+ *
+ * @param string $datasetId Identifies the dataset.
+ * @param Google_LookupRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_LookupResponse
+ */
+ public function lookup($datasetId, Google_LookupRequest $postBody, $optParams = array()) {
+ $params = array('datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('lookup', array($params));
+ if ($this->useObjects()) {
+ return new Google_LookupResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Roll back a transaction. (datasets.rollback)
+ *
+ * @param string $datasetId Identifies the dataset.
+ * @param Google_RollbackRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_RollbackResponse
+ */
+ public function rollback($datasetId, Google_RollbackRequest $postBody, $optParams = array()) {
+ $params = array('datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('rollback', array($params));
+ if ($this->useObjects()) {
+ return new Google_RollbackResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Query for entities. (datasets.runQuery)
+ *
+ * @param string $datasetId Identifies the dataset.
+ * @param Google_RunQueryRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_RunQueryResponse
+ */
+ public function runQuery($datasetId, Google_RunQueryRequest $postBody, $optParams = array()) {
+ $params = array('datasetId' => $datasetId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('runQuery', array($params));
+ if ($this->useObjects()) {
+ return new Google_RunQueryResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Datastore (v1beta1).
+ *
+ *
+ * API for accessing Google Cloud Datastore.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_DatastoreService extends Google_Service {
+ public $datasets;
+ /**
+ * Constructs the internal representation of the Datastore service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'datastore/v1beta1/datasets/';
+ $this->version = 'v1beta1';
+ $this->serviceName = 'datastore';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->datasets = new Google_DatasetsServiceResource($this, $this->serviceName, 'datasets', json_decode('{"methods": {"allocateIds": {"id": "datastore.datasets.allocateIds", "path": "{datasetId}/allocateIds", "httpMethod": "POST", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "AllocateIdsRequest"}, "response": {"$ref": "AllocateIdsResponse"}, "scopes": ["https://www.googleapis.com/auth/userinfo.email"]}, "beginTransaction": {"id": "datastore.datasets.beginTransaction", "path": "{datasetId}/beginTransaction", "httpMethod": "POST", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "BeginTransactionRequest"}, "response": {"$ref": "BeginTransactionResponse"}, "scopes": ["https://www.googleapis.com/auth/userinfo.email"]}, "blindWrite": {"id": "datastore.datasets.blindWrite", "path": "{datasetId}/blindWrite", "httpMethod": "POST", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "BlindWriteRequest"}, "response": {"$ref": "BlindWriteResponse"}, "scopes": ["https://www.googleapis.com/auth/userinfo.email"]}, "commit": {"id": "datastore.datasets.commit", "path": "{datasetId}/commit", "httpMethod": "POST", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommitRequest"}, "response": {"$ref": "CommitResponse"}, "scopes": ["https://www.googleapis.com/auth/userinfo.email"]}, "lookup": {"id": "datastore.datasets.lookup", "path": "{datasetId}/lookup", "httpMethod": "POST", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "LookupRequest"}, "response": {"$ref": "LookupResponse"}, "scopes": ["https://www.googleapis.com/auth/userinfo.email"]}, "rollback": {"id": "datastore.datasets.rollback", "path": "{datasetId}/rollback", "httpMethod": "POST", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "RollbackRequest"}, "response": {"$ref": "RollbackResponse"}, "scopes": ["https://www.googleapis.com/auth/userinfo.email"]}, "runQuery": {"id": "datastore.datasets.runQuery", "path": "{datasetId}/runQuery", "httpMethod": "POST", "parameters": {"datasetId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "RunQueryRequest"}, "response": {"$ref": "RunQueryResponse"}, "scopes": ["https://www.googleapis.com/auth/userinfo.email"]}}}', true));
+
+ }
+}
+
+
+
+class Google_AllocateIdsRequest extends Google_Model {
+ protected $__keysType = 'Google_Key';
+ protected $__keysDataType = 'array';
+ public $keys;
+ public function setKeys(/* array(Google_Key) */ $keys) {
+ $this->assertIsArray($keys, 'Google_Key', __METHOD__);
+ $this->keys = $keys;
+ }
+ public function getKeys() {
+ return $this->keys;
+ }
+}
+
+class Google_AllocateIdsResponse extends Google_Model {
+ protected $__keysType = 'Google_Key';
+ protected $__keysDataType = 'array';
+ public $keys;
+ public $kind;
+ public function setKeys(/* array(Google_Key) */ $keys) {
+ $this->assertIsArray($keys, 'Google_Key', __METHOD__);
+ $this->keys = $keys;
+ }
+ public function getKeys() {
+ return $this->keys;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_BeginTransactionRequest extends Google_Model {
+ public $isolationLevel;
+ public function setIsolationLevel( $isolationLevel) {
+ $this->isolationLevel = $isolationLevel;
+ }
+ public function getIsolationLevel() {
+ return $this->isolationLevel;
+ }
+}
+
+class Google_BeginTransactionResponse extends Google_Model {
+ public $kind;
+ public $transaction;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTransaction( $transaction) {
+ $this->transaction = $transaction;
+ }
+ public function getTransaction() {
+ return $this->transaction;
+ }
+}
+
+class Google_BlindWriteRequest extends Google_Model {
+ protected $__mutationType = 'Google_Mutation';
+ protected $__mutationDataType = '';
+ public $mutation;
+ public function setMutation(Google_Mutation $mutation) {
+ $this->mutation = $mutation;
+ }
+ public function getMutation() {
+ return $this->mutation;
+ }
+}
+
+class Google_BlindWriteResponse extends Google_Model {
+ public $kind;
+ protected $__mutationResultType = 'Google_MutationResult';
+ protected $__mutationResultDataType = '';
+ public $mutationResult;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMutationResult(Google_MutationResult $mutationResult) {
+ $this->mutationResult = $mutationResult;
+ }
+ public function getMutationResult() {
+ return $this->mutationResult;
+ }
+}
+
+class Google_CommitRequest extends Google_Model {
+ protected $__mutationType = 'Google_Mutation';
+ protected $__mutationDataType = '';
+ public $mutation;
+ public $transaction;
+ public function setMutation(Google_Mutation $mutation) {
+ $this->mutation = $mutation;
+ }
+ public function getMutation() {
+ return $this->mutation;
+ }
+ public function setTransaction( $transaction) {
+ $this->transaction = $transaction;
+ }
+ public function getTransaction() {
+ return $this->transaction;
+ }
+}
+
+class Google_CommitResponse extends Google_Model {
+ public $kind;
+ protected $__mutationResultType = 'Google_MutationResult';
+ protected $__mutationResultDataType = '';
+ public $mutationResult;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMutationResult(Google_MutationResult $mutationResult) {
+ $this->mutationResult = $mutationResult;
+ }
+ public function getMutationResult() {
+ return $this->mutationResult;
+ }
+}
+
+class Google_CompositeFilter extends Google_Model {
+ protected $__filtersType = 'Google_Filter';
+ protected $__filtersDataType = 'array';
+ public $filters;
+ public $operator;
+ public function setFilters(/* array(Google_Filter) */ $filters) {
+ $this->assertIsArray($filters, 'Google_Filter', __METHOD__);
+ $this->filters = $filters;
+ }
+ public function getFilters() {
+ return $this->filters;
+ }
+ public function setOperator( $operator) {
+ $this->operator = $operator;
+ }
+ public function getOperator() {
+ return $this->operator;
+ }
+}
+
+class Google_Entity extends Google_Model {
+ protected $__keyType = 'Google_Key';
+ protected $__keyDataType = '';
+ public $key;
+ protected $__propertiesType = 'Google_Property';
+ protected $__propertiesDataType = 'map';
+ public $properties;
+ public function setKey(Google_Key $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ /* lynchb@ Made a modification here to remove the typing
+ * allow for an array of properties to be set
+ * on an entity. Otherwise the file is unchanged
+ * from the generator.
+ */
+ public function setProperties($properties) {
+ $this->properties = $properties;
+ }
+ public function getProperties() {
+ return $this->properties;
+ }
+}
+
+class Google_EntityResult extends Google_Model {
+ protected $__entityType = 'Google_Entity';
+ protected $__entityDataType = '';
+ public $entity;
+ public function setEntity(Google_Entity $entity) {
+ $this->entity = $entity;
+ }
+ public function getEntity() {
+ return $this->entity;
+ }
+}
+
+class Google_Filter extends Google_Model {
+ protected $__compositeFilterType = 'Google_CompositeFilter';
+ protected $__compositeFilterDataType = '';
+ public $compositeFilter;
+ protected $__propertyFilterType = 'Google_PropertyFilter';
+ protected $__propertyFilterDataType = '';
+ public $propertyFilter;
+ public function setCompositeFilter(Google_CompositeFilter $compositeFilter) {
+ $this->compositeFilter = $compositeFilter;
+ }
+ public function getCompositeFilter() {
+ return $this->compositeFilter;
+ }
+ public function setPropertyFilter(Google_PropertyFilter $propertyFilter) {
+ $this->propertyFilter = $propertyFilter;
+ }
+ public function getPropertyFilter() {
+ return $this->propertyFilter;
+ }
+}
+
+class Google_Key extends Google_Model {
+ protected $__partitionIdType = 'Google_PartitionId';
+ protected $__partitionIdDataType = '';
+ public $partitionId;
+ protected $__pathType = 'Google_KeyPathElement';
+ protected $__pathDataType = 'array';
+ public $path;
+ public function setPartitionId(Google_PartitionId $partitionId) {
+ $this->partitionId = $partitionId;
+ }
+ public function getPartitionId() {
+ return $this->partitionId;
+ }
+ public function setPath(/* array(Google_KeyPathElement) */ $path) {
+ $this->assertIsArray($path, 'Google_KeyPathElement', __METHOD__);
+ $this->path = $path;
+ }
+ public function getPath() {
+ return $this->path;
+ }
+}
+
+class Google_KeyPathElement extends Google_Model {
+ public $id;
+ public $kind;
+ public $name;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_KindExpression extends Google_Model {
+ public $name;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_LookupRequest extends Google_Model {
+ protected $__keysType = 'Google_Key';
+ protected $__keysDataType = 'array';
+ public $keys;
+ protected $__readOptionsType = 'Google_ReadOptions';
+ protected $__readOptionsDataType = '';
+ public $readOptions;
+ public function setKeys(/* array(Google_Key) */ $keys) {
+ $this->assertIsArray($keys, 'Google_Key', __METHOD__);
+ $this->keys = $keys;
+ }
+ public function getKeys() {
+ return $this->keys;
+ }
+ public function setReadOptions(Google_ReadOptions $readOptions) {
+ $this->readOptions = $readOptions;
+ }
+ public function getReadOptions() {
+ return $this->readOptions;
+ }
+}
+
+class Google_LookupResponse extends Google_Model {
+ protected $__deferredType = 'Google_Key';
+ protected $__deferredDataType = 'array';
+ public $deferred;
+ protected $__foundType = 'Google_EntityResult';
+ protected $__foundDataType = 'array';
+ public $found;
+ public $kind;
+ protected $__missingType = 'Google_EntityResult';
+ protected $__missingDataType = 'array';
+ public $missing;
+ public function setDeferred(/* array(Google_Key) */ $deferred) {
+ $this->assertIsArray($deferred, 'Google_Key', __METHOD__);
+ $this->deferred = $deferred;
+ }
+ public function getDeferred() {
+ return $this->deferred;
+ }
+ public function setFound(/* array(Google_EntityResult) */ $found) {
+ $this->assertIsArray($found, 'Google_EntityResult', __METHOD__);
+ $this->found = $found;
+ }
+ public function getFound() {
+ return $this->found;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMissing(/* array(Google_EntityResult) */ $missing) {
+ $this->assertIsArray($missing, 'Google_EntityResult', __METHOD__);
+ $this->missing = $missing;
+ }
+ public function getMissing() {
+ return $this->missing;
+ }
+}
+
+class Google_Mutation extends Google_Model {
+ protected $__deleteType = 'Google_Key';
+ protected $__deleteDataType = 'array';
+ public $delete;
+ public $force;
+ protected $__insertType = 'Google_Entity';
+ protected $__insertDataType = 'array';
+ public $insert;
+ protected $__insertAutoIdType = 'Google_Entity';
+ protected $__insertAutoIdDataType = 'array';
+ public $insertAutoId;
+ protected $__updateType = 'Google_Entity';
+ protected $__updateDataType = 'array';
+ public $update;
+ protected $__upsertType = 'Google_Entity';
+ protected $__upsertDataType = 'array';
+ public $upsert;
+ public function setDelete(/* array(Google_Key) */ $delete) {
+ $this->assertIsArray($delete, 'Google_Key', __METHOD__);
+ $this->delete = $delete;
+ }
+ public function getDelete() {
+ return $this->delete;
+ }
+ public function setForce( $force) {
+ $this->force = $force;
+ }
+ public function getForce() {
+ return $this->force;
+ }
+ public function setInsert(/* array(Google_Entity) */ $insert) {
+ $this->assertIsArray($insert, 'Google_Entity', __METHOD__);
+ $this->insert = $insert;
+ }
+ public function getInsert() {
+ return $this->insert;
+ }
+ public function setInsertAutoId(/* array(Google_Entity) */ $insertAutoId) {
+ $this->assertIsArray($insertAutoId, 'Google_Entity', __METHOD__);
+ $this->insertAutoId = $insertAutoId;
+ }
+ public function getInsertAutoId() {
+ return $this->insertAutoId;
+ }
+ public function setUpdate(/* array(Google_Entity) */ $update) {
+ $this->assertIsArray($update, 'Google_Entity', __METHOD__);
+ $this->update = $update;
+ }
+ public function getUpdate() {
+ return $this->update;
+ }
+ public function setUpsert(/* array(Google_Entity) */ $upsert) {
+ $this->assertIsArray($upsert, 'Google_Entity', __METHOD__);
+ $this->upsert = $upsert;
+ }
+ public function getUpsert() {
+ return $this->upsert;
+ }
+}
+
+class Google_MutationResult extends Google_Model {
+ public $indexUpdates;
+ protected $__insertAutoIdKeysType = 'Google_Key';
+ protected $__insertAutoIdKeysDataType = 'array';
+ public $insertAutoIdKeys;
+ public function setIndexUpdates( $indexUpdates) {
+ $this->indexUpdates = $indexUpdates;
+ }
+ public function getIndexUpdates() {
+ return $this->indexUpdates;
+ }
+ public function setInsertAutoIdKeys(/* array(Google_Key) */ $insertAutoIdKeys) {
+ $this->assertIsArray($insertAutoIdKeys, 'Google_Key', __METHOD__);
+ $this->insertAutoIdKeys = $insertAutoIdKeys;
+ }
+ public function getInsertAutoIdKeys() {
+ return $this->insertAutoIdKeys;
+ }
+}
+
+class Google_PartitionId extends Google_Model {
+ public $datasetId;
+ public $namespace;
+ public function setDatasetId( $datasetId) {
+ $this->datasetId = $datasetId;
+ }
+ public function getDatasetId() {
+ return $this->datasetId;
+ }
+ public function setNamespace( $namespace) {
+ $this->namespace = $namespace;
+ }
+ public function getNamespace() {
+ return $this->namespace;
+ }
+}
+
+class Google_Property extends Google_Model {
+ public $multi;
+ protected $__valuesType = 'Google_Value';
+ protected $__valuesDataType = 'array';
+ public $values;
+ public function setMulti( $multi) {
+ $this->multi = $multi;
+ }
+ public function getMulti() {
+ return $this->multi;
+ }
+ public function setValues(/* array(Google_Value) */ $values) {
+ $this->assertIsArray($values, 'Google_Value', __METHOD__);
+ $this->values = $values;
+ }
+ public function getValues() {
+ return $this->values;
+ }
+}
+
+class Google_PropertyExpression extends Google_Model {
+ public $aggregationFunction;
+ protected $__propertyType = 'Google_PropertyReference';
+ protected $__propertyDataType = '';
+ public $property;
+ public function setAggregationFunction( $aggregationFunction) {
+ $this->aggregationFunction = $aggregationFunction;
+ }
+ public function getAggregationFunction() {
+ return $this->aggregationFunction;
+ }
+ public function setProperty(Google_PropertyReference $property) {
+ $this->property = $property;
+ }
+ public function getProperty() {
+ return $this->property;
+ }
+}
+
+class Google_PropertyFilter extends Google_Model {
+ public $operator;
+ protected $__propertyType = 'Google_PropertyReference';
+ protected $__propertyDataType = '';
+ public $property;
+ protected $__valueType = 'Google_Value';
+ protected $__valueDataType = '';
+ public $value;
+ public function setOperator( $operator) {
+ $this->operator = $operator;
+ }
+ public function getOperator() {
+ return $this->operator;
+ }
+ public function setProperty(Google_PropertyReference $property) {
+ $this->property = $property;
+ }
+ public function getProperty() {
+ return $this->property;
+ }
+ public function setValue(Google_Value $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_PropertyOrder extends Google_Model {
+ public $direction;
+ protected $__propertyType = 'Google_PropertyReference';
+ protected $__propertyDataType = '';
+ public $property;
+ public function setDirection( $direction) {
+ $this->direction = $direction;
+ }
+ public function getDirection() {
+ return $this->direction;
+ }
+ public function setProperty(Google_PropertyReference $property) {
+ $this->property = $property;
+ }
+ public function getProperty() {
+ return $this->property;
+ }
+}
+
+class Google_PropertyReference extends Google_Model {
+ public $name;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_Query extends Google_Model {
+ public $endCursor;
+ protected $__filterType = 'Google_Filter';
+ protected $__filterDataType = '';
+ public $filter;
+ protected $__groupByType = 'Google_PropertyReference';
+ protected $__groupByDataType = 'array';
+ public $groupBy;
+ protected $__kindsType = 'Google_KindExpression';
+ protected $__kindsDataType = 'array';
+ public $kinds;
+ public $limit;
+ public $offset;
+ protected $__orderType = 'Google_PropertyOrder';
+ protected $__orderDataType = 'array';
+ public $order;
+ protected $__projectionType = 'Google_PropertyExpression';
+ protected $__projectionDataType = 'array';
+ public $projection;
+ public $startCursor;
+ public function setEndCursor( $endCursor) {
+ $this->endCursor = $endCursor;
+ }
+ public function getEndCursor() {
+ return $this->endCursor;
+ }
+ public function setFilter(Google_Filter $filter) {
+ $this->filter = $filter;
+ }
+ public function getFilter() {
+ return $this->filter;
+ }
+ public function setGroupBy(/* array(Google_PropertyReference) */ $groupBy) {
+ $this->assertIsArray($groupBy, 'Google_PropertyReference', __METHOD__);
+ $this->groupBy = $groupBy;
+ }
+ public function getGroupBy() {
+ return $this->groupBy;
+ }
+ public function setKinds(/* array(Google_KindExpression) */ $kinds) {
+ $this->assertIsArray($kinds, 'Google_KindExpression', __METHOD__);
+ $this->kinds = $kinds;
+ }
+ public function getKinds() {
+ return $this->kinds;
+ }
+ public function setLimit( $limit) {
+ $this->limit = $limit;
+ }
+ public function getLimit() {
+ return $this->limit;
+ }
+ public function setOffset( $offset) {
+ $this->offset = $offset;
+ }
+ public function getOffset() {
+ return $this->offset;
+ }
+ public function setOrder(/* array(Google_PropertyOrder) */ $order) {
+ $this->assertIsArray($order, 'Google_PropertyOrder', __METHOD__);
+ $this->order = $order;
+ }
+ public function getOrder() {
+ return $this->order;
+ }
+ public function setProjection(/* array(Google_PropertyExpression) */ $projection) {
+ $this->assertIsArray($projection, 'Google_PropertyExpression', __METHOD__);
+ $this->projection = $projection;
+ }
+ public function getProjection() {
+ return $this->projection;
+ }
+ public function setStartCursor( $startCursor) {
+ $this->startCursor = $startCursor;
+ }
+ public function getStartCursor() {
+ return $this->startCursor;
+ }
+}
+
+class Google_QueryResultBatch extends Google_Model {
+ public $endCursor;
+ public $entityResultType;
+ protected $__entityResultsType = 'Google_EntityResult';
+ protected $__entityResultsDataType = 'array';
+ public $entityResults;
+ public $moreResults;
+ public $skippedResults;
+ public function setEndCursor( $endCursor) {
+ $this->endCursor = $endCursor;
+ }
+ public function getEndCursor() {
+ return $this->endCursor;
+ }
+ public function setEntityResultType( $entityResultType) {
+ $this->entityResultType = $entityResultType;
+ }
+ public function getEntityResultType() {
+ return $this->entityResultType;
+ }
+ public function setEntityResults(/* array(Google_EntityResult) */ $entityResults) {
+ $this->assertIsArray($entityResults, 'Google_EntityResult', __METHOD__);
+ $this->entityResults = $entityResults;
+ }
+ public function getEntityResults() {
+ return $this->entityResults;
+ }
+ public function setMoreResults( $moreResults) {
+ $this->moreResults = $moreResults;
+ }
+ public function getMoreResults() {
+ return $this->moreResults;
+ }
+ public function setSkippedResults( $skippedResults) {
+ $this->skippedResults = $skippedResults;
+ }
+ public function getSkippedResults() {
+ return $this->skippedResults;
+ }
+}
+
+class Google_ReadOptions extends Google_Model {
+ public $readConsistency;
+ public $transaction;
+ public function setReadConsistency( $readConsistency) {
+ $this->readConsistency = $readConsistency;
+ }
+ public function getReadConsistency() {
+ return $this->readConsistency;
+ }
+ public function setTransaction( $transaction) {
+ $this->transaction = $transaction;
+ }
+ public function getTransaction() {
+ return $this->transaction;
+ }
+}
+
+class Google_RollbackRequest extends Google_Model {
+ public $transaction;
+ public function setTransaction( $transaction) {
+ $this->transaction = $transaction;
+ }
+ public function getTransaction() {
+ return $this->transaction;
+ }
+}
+
+class Google_RollbackResponse extends Google_Model {
+ public $kind;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_RunQueryRequest extends Google_Model {
+ protected $__partitionIdType = 'Google_PartitionId';
+ protected $__partitionIdDataType = '';
+ public $partitionId;
+ protected $__queryType = 'Google_Query';
+ protected $__queryDataType = '';
+ public $query;
+ protected $__readOptionsType = 'Google_ReadOptions';
+ protected $__readOptionsDataType = '';
+ public $readOptions;
+ public function setPartitionId(Google_PartitionId $partitionId) {
+ $this->partitionId = $partitionId;
+ }
+ public function getPartitionId() {
+ return $this->partitionId;
+ }
+ public function setQuery(Google_Query $query) {
+ $this->query = $query;
+ }
+ public function getQuery() {
+ return $this->query;
+ }
+ public function setReadOptions(Google_ReadOptions $readOptions) {
+ $this->readOptions = $readOptions;
+ }
+ public function getReadOptions() {
+ return $this->readOptions;
+ }
+}
+
+class Google_RunQueryResponse extends Google_Model {
+ protected $__batchType = 'Google_QueryResultBatch';
+ protected $__batchDataType = '';
+ public $batch;
+ public $kind;
+ public function setBatch(Google_QueryResultBatch $batch) {
+ $this->batch = $batch;
+ }
+ public function getBatch() {
+ return $this->batch;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Value extends Google_Model {
+ public $blobKeyValue;
+ public $blobValue;
+ public $booleanValue;
+ public $dateTimeValue;
+ public $doubleValue;
+ protected $__entityValueType = 'Google_Entity';
+ protected $__entityValueDataType = '';
+ public $entityValue;
+ public $indexed;
+ public $integerValue;
+ protected $__keyValueType = 'Google_Key';
+ protected $__keyValueDataType = '';
+ public $keyValue;
+ public $meaning;
+ public $stringValue;
+ public function setBlobKeyValue( $blobKeyValue) {
+ $this->blobKeyValue = $blobKeyValue;
+ }
+ public function getBlobKeyValue() {
+ return $this->blobKeyValue;
+ }
+ public function setBlobValue( $blobValue) {
+ $this->blobValue = $blobValue;
+ }
+ public function getBlobValue() {
+ return $this->blobValue;
+ }
+ public function setBooleanValue( $booleanValue) {
+ $this->booleanValue = $booleanValue;
+ }
+ public function getBooleanValue() {
+ return $this->booleanValue;
+ }
+ public function setDateTimeValue( $dateTimeValue) {
+ $this->dateTimeValue = $dateTimeValue;
+ }
+ public function getDateTimeValue() {
+ return $this->dateTimeValue;
+ }
+ public function setDoubleValue( $doubleValue) {
+ $this->doubleValue = $doubleValue;
+ }
+ public function getDoubleValue() {
+ return $this->doubleValue;
+ }
+ public function setEntityValue(Google_Entity $entityValue) {
+ $this->entityValue = $entityValue;
+ }
+ public function getEntityValue() {
+ return $this->entityValue;
+ }
+ public function setIndexed( $indexed) {
+ $this->indexed = $indexed;
+ }
+ public function getIndexed() {
+ return $this->indexed;
+ }
+ public function setIntegerValue( $integerValue) {
+ $this->integerValue = $integerValue;
+ }
+ public function getIntegerValue() {
+ return $this->integerValue;
+ }
+ public function setKeyValue(Google_Key $keyValue) {
+ $this->keyValue = $keyValue;
+ }
+ public function getKeyValue() {
+ return $this->keyValue;
+ }
+ public function setMeaning( $meaning) {
+ $this->meaning = $meaning;
+ }
+ public function getMeaning() {
+ return $this->meaning;
+ }
+ public function setStringValue( $stringValue) {
+ $this->stringValue = $stringValue;
+ }
+ public function getStringValue() {
+ return $this->stringValue;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DfareportingService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DfareportingService.php
new file mode 100644
index 0000000..685358f
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DfareportingService.php
@@ -0,0 +1,1986 @@
+
+ * $dfareportingService = new Google_DfareportingService(...);
+ * $dimensionValues = $dfareportingService->dimensionValues;
+ *
+ */
+ class Google_DimensionValuesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves list of report dimension values for a list of filters. (dimensionValues.query)
+ *
+ * @param string $profileId The DFA user profile ID.
+ * @param Google_DimensionValueRequest $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of results to return.
+ * @opt_param string pageToken The value of the nextToken from the previous result page.
+ * @return Google_DimensionValueList
+ */
+ public function query($profileId, Google_DimensionValueRequest $postBody, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('query', array($params));
+ if ($this->useObjects()) {
+ return new Google_DimensionValueList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "files" collection of methods.
+ * Typical usage is:
+ *
+ * $dfareportingService = new Google_DfareportingService(...);
+ * $files = $dfareportingService->files;
+ *
+ */
+ class Google_FilesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a report file by its report ID and file ID. (files.get)
+ *
+ * @param string $reportId The ID of the report.
+ * @param string $fileId The ID of the report file.
+ * @param array $optParams Optional parameters.
+ * @return Google_DfareportingFile
+ */
+ public function get($reportId, $fileId, $optParams = array()) {
+ $params = array('reportId' => $reportId, 'fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_DfareportingFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists files for a user profile. (files.list)
+ *
+ * @param string $profileId The DFA profile ID.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of results to return.
+ * @opt_param string pageToken The value of the nextToken from the previous result page.
+ * @opt_param string scope The scope that defines which results are returned, default is 'MINE'.
+ * @opt_param string sortField The field by which to sort the list.
+ * @opt_param string sortOrder Order of sorted results, default is 'DESCENDING'.
+ * @return Google_FileList
+ */
+ public function listFiles($profileId, $optParams = array()) {
+ $params = array('profileId' => $profileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_FileList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "reports" collection of methods.
+ * Typical usage is:
+ *
+ * $dfareportingService = new Google_DfareportingService(...);
+ * $reports = $dfareportingService->reports;
+ *
+ */
+ class Google_ReportsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a report by its ID. (reports.delete)
+ *
+ * @param string $profileId The DFA user profile ID.
+ * @param string $reportId The ID of the report.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($profileId, $reportId, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'reportId' => $reportId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves a report by its ID. (reports.get)
+ *
+ * @param string $profileId The DFA user profile ID.
+ * @param string $reportId The ID of the report.
+ * @param array $optParams Optional parameters.
+ * @return Google_Report
+ */
+ public function get($profileId, $reportId, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'reportId' => $reportId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a report. (reports.insert)
+ *
+ * @param string $profileId The DFA user profile ID.
+ * @param Google_Report $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Report
+ */
+ public function insert($profileId, Google_Report $postBody, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves list of reports. (reports.list)
+ *
+ * @param string $profileId The DFA user profile ID.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of results to return.
+ * @opt_param string pageToken The value of the nextToken from the previous result page.
+ * @opt_param string scope The scope that defines which results are returned, default is 'MINE'.
+ * @opt_param string sortField The field by which to sort the list.
+ * @opt_param string sortOrder Order of sorted results, default is 'DESCENDING'.
+ * @return Google_ReportList
+ */
+ public function listReports($profileId, $optParams = array()) {
+ $params = array('profileId' => $profileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ReportList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a report. This method supports patch semantics. (reports.patch)
+ *
+ * @param string $profileId The DFA user profile ID.
+ * @param string $reportId The ID of the report.
+ * @param Google_Report $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Report
+ */
+ public function patch($profileId, $reportId, Google_Report $postBody, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'reportId' => $reportId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Runs a report. (reports.run)
+ *
+ * @param string $profileId The DFA profile ID.
+ * @param string $reportId The ID of the report.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool synchronous If set and true, tries to run the report synchronously.
+ * @return Google_DfareportingFile
+ */
+ public function run($profileId, $reportId, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'reportId' => $reportId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('run', array($params));
+ if ($this->useObjects()) {
+ return new Google_DfareportingFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a report. (reports.update)
+ *
+ * @param string $profileId The DFA user profile ID.
+ * @param string $reportId The ID of the report.
+ * @param Google_Report $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Report
+ */
+ public function update($profileId, $reportId, Google_Report $postBody, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'reportId' => $reportId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "compatibleFields" collection of methods.
+ * Typical usage is:
+ *
+ * $dfareportingService = new Google_DfareportingService(...);
+ * $compatibleFields = $dfareportingService->compatibleFields;
+ *
+ */
+ class Google_ReportsCompatibleFieldsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns the fields that are compatible to be selected in the respective sections of a report
+ * criteria, given the fields already selected in the input report and user permissions.
+ * (compatibleFields.query)
+ *
+ * @param string $profileId The DFA user profile ID.
+ * @param Google_Report $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CompatibleFields
+ */
+ public function query($profileId, Google_Report $postBody, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('query', array($params));
+ if ($this->useObjects()) {
+ return new Google_CompatibleFields($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "files" collection of methods.
+ * Typical usage is:
+ *
+ * $dfareportingService = new Google_DfareportingService(...);
+ * $files = $dfareportingService->files;
+ *
+ */
+ class Google_ReportsFilesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a report file. (files.get)
+ *
+ * @param string $profileId The DFA profile ID.
+ * @param string $reportId The ID of the report.
+ * @param string $fileId The ID of the report file.
+ * @param array $optParams Optional parameters.
+ * @return Google_DfareportingFile
+ */
+ public function get($profileId, $reportId, $fileId, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'reportId' => $reportId, 'fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_DfareportingFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists files for a report. (files.list)
+ *
+ * @param string $profileId The DFA profile ID.
+ * @param string $reportId The ID of the parent report.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of results to return.
+ * @opt_param string pageToken The value of the nextToken from the previous result page.
+ * @opt_param string sortField The field by which to sort the list.
+ * @opt_param string sortOrder Order of sorted results, default is 'DESCENDING'.
+ * @return Google_FileList
+ */
+ public function listReportsFiles($profileId, $reportId, $optParams = array()) {
+ $params = array('profileId' => $profileId, 'reportId' => $reportId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_FileList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "userProfiles" collection of methods.
+ * Typical usage is:
+ *
+ * $dfareportingService = new Google_DfareportingService(...);
+ * $userProfiles = $dfareportingService->userProfiles;
+ *
+ */
+ class Google_UserProfilesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one user profile by ID. (userProfiles.get)
+ *
+ * @param string $profileId The user profile ID.
+ * @param array $optParams Optional parameters.
+ * @return Google_UserProfile
+ */
+ public function get($profileId, $optParams = array()) {
+ $params = array('profileId' => $profileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_UserProfile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves list of user profiles for a user. (userProfiles.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_UserProfileList
+ */
+ public function listUserProfiles($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_UserProfileList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Dfareporting (v1.3).
+ *
+ *
+ * Lets you create, run and download reports.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_DfareportingService extends Google_Service {
+ public $dimensionValues;
+ public $files;
+ public $reports;
+ public $reports_compatibleFields;
+ public $reports_files;
+ public $userProfiles;
+ /**
+ * Constructs the internal representation of the Dfareporting service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'dfareporting/v1.3/';
+ $this->version = 'v1.3';
+ $this->serviceName = 'dfareporting';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->dimensionValues = new Google_DimensionValuesServiceResource($this, $this->serviceName, 'dimensionValues', json_decode('{"methods": {"query": {"id": "dfareporting.dimensionValues.query", "path": "userprofiles/{profileId}/dimensionvalues/query", "httpMethod": "POST", "parameters": {"maxResults": {"type": "integer", "format": "int32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "request": {"$ref": "DimensionValueRequest"}, "response": {"$ref": "DimensionValueList"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}}}', true));
+ $this->files = new Google_FilesServiceResource($this, $this->serviceName, 'files', json_decode('{"methods": {"get": {"id": "dfareporting.files.get", "path": "reports/{reportId}/files/{fileId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "reportId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"], "supportsMediaDownload": true}, "list": {"id": "dfareporting.files.list", "path": "userprofiles/{profileId}/files", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "int32", "minimum": "0", "maximum": "10", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "scope": {"type": "string", "default": "MINE", "enum": ["ALL", "MINE", "SHARED_WITH_ME"], "location": "query"}, "sortField": {"type": "string", "default": "LAST_MODIFIED_TIME", "enum": ["ID", "LAST_MODIFIED_TIME"], "location": "query"}, "sortOrder": {"type": "string", "default": "DESCENDING", "enum": ["ASCENDING", "DESCENDING"], "location": "query"}}, "response": {"$ref": "FileList"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}}}', true));
+ $this->reports = new Google_ReportsServiceResource($this, $this->serviceName, 'reports', json_decode('{"methods": {"delete": {"id": "dfareporting.reports.delete", "path": "userprofiles/{profileId}/reports/{reportId}", "httpMethod": "DELETE", "parameters": {"profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "reportId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}, "get": {"id": "dfareporting.reports.get", "path": "userprofiles/{profileId}/reports/{reportId}", "httpMethod": "GET", "parameters": {"profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "reportId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}, "insert": {"id": "dfareporting.reports.insert", "path": "userprofiles/{profileId}/reports", "httpMethod": "POST", "parameters": {"profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "request": {"$ref": "Report"}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}, "list": {"id": "dfareporting.reports.list", "path": "userprofiles/{profileId}/reports", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "int32", "minimum": "0", "maximum": "10", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "scope": {"type": "string", "default": "MINE", "enum": ["ALL", "MINE"], "location": "query"}, "sortField": {"type": "string", "default": "LAST_MODIFIED_TIME", "enum": ["ID", "LAST_MODIFIED_TIME", "NAME"], "location": "query"}, "sortOrder": {"type": "string", "default": "DESCENDING", "enum": ["ASCENDING", "DESCENDING"], "location": "query"}}, "response": {"$ref": "ReportList"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}, "patch": {"id": "dfareporting.reports.patch", "path": "userprofiles/{profileId}/reports/{reportId}", "httpMethod": "PATCH", "parameters": {"profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "reportId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "request": {"$ref": "Report"}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}, "run": {"id": "dfareporting.reports.run", "path": "userprofiles/{profileId}/reports/{reportId}/run", "httpMethod": "POST", "parameters": {"profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "reportId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "synchronous": {"type": "boolean", "location": "query"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}, "update": {"id": "dfareporting.reports.update", "path": "userprofiles/{profileId}/reports/{reportId}", "httpMethod": "PUT", "parameters": {"profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "reportId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "request": {"$ref": "Report"}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}}}', true));
+ $this->reports_compatibleFields = new Google_ReportsCompatibleFieldsServiceResource($this, $this->serviceName, 'compatibleFields', json_decode('{"methods": {"query": {"id": "dfareporting.reports.compatibleFields.query", "path": "userprofiles/{profileId}/reports/compatiblefields/query", "httpMethod": "POST", "parameters": {"profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "request": {"$ref": "Report"}, "response": {"$ref": "CompatibleFields"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}}}', true));
+ $this->reports_files = new Google_ReportsFilesServiceResource($this, $this->serviceName, 'files', json_decode('{"methods": {"get": {"id": "dfareporting.reports.files.get", "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "reportId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"], "supportsMediaDownload": true}, "list": {"id": "dfareporting.reports.files.list", "path": "userprofiles/{profileId}/reports/{reportId}/files", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "int32", "minimum": "0", "maximum": "10", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "reportId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "sortField": {"type": "string", "default": "LAST_MODIFIED_TIME", "enum": ["ID", "LAST_MODIFIED_TIME"], "location": "query"}, "sortOrder": {"type": "string", "default": "DESCENDING", "enum": ["ASCENDING", "DESCENDING"], "location": "query"}}, "response": {"$ref": "FileList"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}}}', true));
+ $this->userProfiles = new Google_UserProfilesServiceResource($this, $this->serviceName, 'userProfiles', json_decode('{"methods": {"get": {"id": "dfareporting.userProfiles.get", "path": "userprofiles/{profileId}", "httpMethod": "GET", "parameters": {"profileId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "response": {"$ref": "UserProfile"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}, "list": {"id": "dfareporting.userProfiles.list", "path": "userprofiles", "httpMethod": "GET", "response": {"$ref": "UserProfileList"}, "scopes": ["https://www.googleapis.com/auth/dfareporting"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Activities extends Google_Model {
+ protected $__filtersType = 'Google_DimensionValue';
+ protected $__filtersDataType = 'array';
+ public $filters;
+ public $kind;
+ public $metricNames;
+ public function setFilters(/* array(Google_DimensionValue) */ $filters) {
+ $this->assertIsArray($filters, 'Google_DimensionValue', __METHOD__);
+ $this->filters = $filters;
+ }
+ public function getFilters() {
+ return $this->filters;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMetricNames(/* array(Google_string) */ $metricNames) {
+ $this->assertIsArray($metricNames, 'Google_string', __METHOD__);
+ $this->metricNames = $metricNames;
+ }
+ public function getMetricNames() {
+ return $this->metricNames;
+ }
+}
+
+class Google_CompatibleFields extends Google_Model {
+ protected $__crossDimensionReachReportCompatibleFieldsType = 'Google_CrossDimensionReachReportCompatibleFields';
+ protected $__crossDimensionReachReportCompatibleFieldsDataType = '';
+ public $crossDimensionReachReportCompatibleFields;
+ protected $__floodlightReportCompatibleFieldsType = 'Google_FloodlightReportCompatibleFields';
+ protected $__floodlightReportCompatibleFieldsDataType = '';
+ public $floodlightReportCompatibleFields;
+ public $kind;
+ protected $__pathToConversionReportCompatibleFieldsType = 'Google_PathToConversionReportCompatibleFields';
+ protected $__pathToConversionReportCompatibleFieldsDataType = '';
+ public $pathToConversionReportCompatibleFields;
+ protected $__reachReportCompatibleFieldsType = 'Google_ReachReportCompatibleFields';
+ protected $__reachReportCompatibleFieldsDataType = '';
+ public $reachReportCompatibleFields;
+ protected $__reportCompatibleFieldsType = 'Google_ReportCompatibleFields';
+ protected $__reportCompatibleFieldsDataType = '';
+ public $reportCompatibleFields;
+ public function setCrossDimensionReachReportCompatibleFields(Google_CrossDimensionReachReportCompatibleFields $crossDimensionReachReportCompatibleFields) {
+ $this->crossDimensionReachReportCompatibleFields = $crossDimensionReachReportCompatibleFields;
+ }
+ public function getCrossDimensionReachReportCompatibleFields() {
+ return $this->crossDimensionReachReportCompatibleFields;
+ }
+ public function setFloodlightReportCompatibleFields(Google_FloodlightReportCompatibleFields $floodlightReportCompatibleFields) {
+ $this->floodlightReportCompatibleFields = $floodlightReportCompatibleFields;
+ }
+ public function getFloodlightReportCompatibleFields() {
+ return $this->floodlightReportCompatibleFields;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPathToConversionReportCompatibleFields(Google_PathToConversionReportCompatibleFields $pathToConversionReportCompatibleFields) {
+ $this->pathToConversionReportCompatibleFields = $pathToConversionReportCompatibleFields;
+ }
+ public function getPathToConversionReportCompatibleFields() {
+ return $this->pathToConversionReportCompatibleFields;
+ }
+ public function setReachReportCompatibleFields(Google_ReachReportCompatibleFields $reachReportCompatibleFields) {
+ $this->reachReportCompatibleFields = $reachReportCompatibleFields;
+ }
+ public function getReachReportCompatibleFields() {
+ return $this->reachReportCompatibleFields;
+ }
+ public function setReportCompatibleFields(Google_ReportCompatibleFields $reportCompatibleFields) {
+ $this->reportCompatibleFields = $reportCompatibleFields;
+ }
+ public function getReportCompatibleFields() {
+ return $this->reportCompatibleFields;
+ }
+}
+
+class Google_CrossDimensionReachReportCompatibleFields extends Google_Model {
+ protected $__breakdownType = 'Google_Dimension';
+ protected $__breakdownDataType = 'array';
+ public $breakdown;
+ protected $__dimensionFiltersType = 'Google_Dimension';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ public $kind;
+ protected $__metricsType = 'Google_Metric';
+ protected $__metricsDataType = 'array';
+ public $metrics;
+ protected $__overlapMetricsType = 'Google_Metric';
+ protected $__overlapMetricsDataType = 'array';
+ public $overlapMetrics;
+ public function setBreakdown(/* array(Google_Dimension) */ $breakdown) {
+ $this->assertIsArray($breakdown, 'Google_Dimension', __METHOD__);
+ $this->breakdown = $breakdown;
+ }
+ public function getBreakdown() {
+ return $this->breakdown;
+ }
+ public function setDimensionFilters(/* array(Google_Dimension) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_Dimension', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMetrics(/* array(Google_Metric) */ $metrics) {
+ $this->assertIsArray($metrics, 'Google_Metric', __METHOD__);
+ $this->metrics = $metrics;
+ }
+ public function getMetrics() {
+ return $this->metrics;
+ }
+ public function setOverlapMetrics(/* array(Google_Metric) */ $overlapMetrics) {
+ $this->assertIsArray($overlapMetrics, 'Google_Metric', __METHOD__);
+ $this->overlapMetrics = $overlapMetrics;
+ }
+ public function getOverlapMetrics() {
+ return $this->overlapMetrics;
+ }
+}
+
+class Google_CustomRichMediaEvents extends Google_Model {
+ protected $__filteredEventIdsType = 'Google_DimensionValue';
+ protected $__filteredEventIdsDataType = 'array';
+ public $filteredEventIds;
+ public $kind;
+ public function setFilteredEventIds(/* array(Google_DimensionValue) */ $filteredEventIds) {
+ $this->assertIsArray($filteredEventIds, 'Google_DimensionValue', __METHOD__);
+ $this->filteredEventIds = $filteredEventIds;
+ }
+ public function getFilteredEventIds() {
+ return $this->filteredEventIds;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_DateRange extends Google_Model {
+ public $endDate;
+ public $kind;
+ public $relativeDateRange;
+ public $startDate;
+ public function setEndDate( $endDate) {
+ $this->endDate = $endDate;
+ }
+ public function getEndDate() {
+ return $this->endDate;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRelativeDateRange( $relativeDateRange) {
+ $this->relativeDateRange = $relativeDateRange;
+ }
+ public function getRelativeDateRange() {
+ return $this->relativeDateRange;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+}
+
+class Google_DfareportingFile extends Google_Model {
+ protected $__dateRangeType = 'Google_DateRange';
+ protected $__dateRangeDataType = '';
+ public $dateRange;
+ public $etag;
+ public $fileName;
+ public $format;
+ public $id;
+ public $kind;
+ public $lastModifiedTime;
+ public $reportId;
+ public $status;
+ protected $__urlsType = 'Google_DfareportingFileUrls';
+ protected $__urlsDataType = '';
+ public $urls;
+ public function setDateRange(Google_DateRange $dateRange) {
+ $this->dateRange = $dateRange;
+ }
+ public function getDateRange() {
+ return $this->dateRange;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setFileName( $fileName) {
+ $this->fileName = $fileName;
+ }
+ public function getFileName() {
+ return $this->fileName;
+ }
+ public function setFormat( $format) {
+ $this->format = $format;
+ }
+ public function getFormat() {
+ return $this->format;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastModifiedTime( $lastModifiedTime) {
+ $this->lastModifiedTime = $lastModifiedTime;
+ }
+ public function getLastModifiedTime() {
+ return $this->lastModifiedTime;
+ }
+ public function setReportId( $reportId) {
+ $this->reportId = $reportId;
+ }
+ public function getReportId() {
+ return $this->reportId;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setUrls(Google_DfareportingFileUrls $urls) {
+ $this->urls = $urls;
+ }
+ public function getUrls() {
+ return $this->urls;
+ }
+}
+
+class Google_DfareportingFileUrls extends Google_Model {
+ public $apiUrl;
+ public $browserUrl;
+ public function setApiUrl( $apiUrl) {
+ $this->apiUrl = $apiUrl;
+ }
+ public function getApiUrl() {
+ return $this->apiUrl;
+ }
+ public function setBrowserUrl( $browserUrl) {
+ $this->browserUrl = $browserUrl;
+ }
+ public function getBrowserUrl() {
+ return $this->browserUrl;
+ }
+}
+
+class Google_Dimension extends Google_Model {
+ public $kind;
+ public $name;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_DimensionFilter extends Google_Model {
+ public $dimensionName;
+ public $kind;
+ public $value;
+ public function setDimensionName( $dimensionName) {
+ $this->dimensionName = $dimensionName;
+ }
+ public function getDimensionName() {
+ return $this->dimensionName;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_DimensionValue extends Google_Model {
+ public $dimensionName;
+ public $etag;
+ public $id;
+ public $kind;
+ public $matchType;
+ public $value;
+ public function setDimensionName( $dimensionName) {
+ $this->dimensionName = $dimensionName;
+ }
+ public function getDimensionName() {
+ return $this->dimensionName;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMatchType( $matchType) {
+ $this->matchType = $matchType;
+ }
+ public function getMatchType() {
+ return $this->matchType;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_DimensionValueList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_DimensionValue';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_DimensionValue) */ $items) {
+ $this->assertIsArray($items, 'Google_DimensionValue', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_DimensionValueRequest extends Google_Model {
+ public $dimensionName;
+ public $endDate;
+ protected $__filtersType = 'Google_DimensionFilter';
+ protected $__filtersDataType = 'array';
+ public $filters;
+ public $kind;
+ public $startDate;
+ public function setDimensionName( $dimensionName) {
+ $this->dimensionName = $dimensionName;
+ }
+ public function getDimensionName() {
+ return $this->dimensionName;
+ }
+ public function setEndDate( $endDate) {
+ $this->endDate = $endDate;
+ }
+ public function getEndDate() {
+ return $this->endDate;
+ }
+ public function setFilters(/* array(Google_DimensionFilter) */ $filters) {
+ $this->assertIsArray($filters, 'Google_DimensionFilter', __METHOD__);
+ $this->filters = $filters;
+ }
+ public function getFilters() {
+ return $this->filters;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+}
+
+class Google_FileList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_DfareportingFile';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_DfareportingFile) */ $items) {
+ $this->assertIsArray($items, 'Google_DfareportingFile', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_FloodlightReportCompatibleFields extends Google_Model {
+ protected $__dimensionFiltersType = 'Google_Dimension';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ protected $__dimensionsType = 'Google_Dimension';
+ protected $__dimensionsDataType = 'array';
+ public $dimensions;
+ public $kind;
+ protected $__metricsType = 'Google_Metric';
+ protected $__metricsDataType = 'array';
+ public $metrics;
+ public function setDimensionFilters(/* array(Google_Dimension) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_Dimension', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setDimensions(/* array(Google_Dimension) */ $dimensions) {
+ $this->assertIsArray($dimensions, 'Google_Dimension', __METHOD__);
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMetrics(/* array(Google_Metric) */ $metrics) {
+ $this->assertIsArray($metrics, 'Google_Metric', __METHOD__);
+ $this->metrics = $metrics;
+ }
+ public function getMetrics() {
+ return $this->metrics;
+ }
+}
+
+class Google_Metric extends Google_Model {
+ public $kind;
+ public $name;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_PathToConversionReportCompatibleFields extends Google_Model {
+ protected $__conversionDimensionsType = 'Google_Dimension';
+ protected $__conversionDimensionsDataType = 'array';
+ public $conversionDimensions;
+ protected $__customFloodlightVariablesType = 'Google_Dimension';
+ protected $__customFloodlightVariablesDataType = 'array';
+ public $customFloodlightVariables;
+ public $kind;
+ protected $__metricsType = 'Google_Metric';
+ protected $__metricsDataType = 'array';
+ public $metrics;
+ protected $__perInteractionDimensionsType = 'Google_Dimension';
+ protected $__perInteractionDimensionsDataType = 'array';
+ public $perInteractionDimensions;
+ public function setConversionDimensions(/* array(Google_Dimension) */ $conversionDimensions) {
+ $this->assertIsArray($conversionDimensions, 'Google_Dimension', __METHOD__);
+ $this->conversionDimensions = $conversionDimensions;
+ }
+ public function getConversionDimensions() {
+ return $this->conversionDimensions;
+ }
+ public function setCustomFloodlightVariables(/* array(Google_Dimension) */ $customFloodlightVariables) {
+ $this->assertIsArray($customFloodlightVariables, 'Google_Dimension', __METHOD__);
+ $this->customFloodlightVariables = $customFloodlightVariables;
+ }
+ public function getCustomFloodlightVariables() {
+ return $this->customFloodlightVariables;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMetrics(/* array(Google_Metric) */ $metrics) {
+ $this->assertIsArray($metrics, 'Google_Metric', __METHOD__);
+ $this->metrics = $metrics;
+ }
+ public function getMetrics() {
+ return $this->metrics;
+ }
+ public function setPerInteractionDimensions(/* array(Google_Dimension) */ $perInteractionDimensions) {
+ $this->assertIsArray($perInteractionDimensions, 'Google_Dimension', __METHOD__);
+ $this->perInteractionDimensions = $perInteractionDimensions;
+ }
+ public function getPerInteractionDimensions() {
+ return $this->perInteractionDimensions;
+ }
+}
+
+class Google_ReachReportCompatibleFields extends Google_Model {
+ protected $__dimensionFiltersType = 'Google_Dimension';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ protected $__dimensionsType = 'Google_Dimension';
+ protected $__dimensionsDataType = 'array';
+ public $dimensions;
+ public $kind;
+ protected $__metricsType = 'Google_Metric';
+ protected $__metricsDataType = 'array';
+ public $metrics;
+ protected $__pivotedActivityMetricsType = 'Google_Metric';
+ protected $__pivotedActivityMetricsDataType = 'array';
+ public $pivotedActivityMetrics;
+ protected $__reachByFrequencyMetricsType = 'Google_Metric';
+ protected $__reachByFrequencyMetricsDataType = 'array';
+ public $reachByFrequencyMetrics;
+ public function setDimensionFilters(/* array(Google_Dimension) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_Dimension', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setDimensions(/* array(Google_Dimension) */ $dimensions) {
+ $this->assertIsArray($dimensions, 'Google_Dimension', __METHOD__);
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMetrics(/* array(Google_Metric) */ $metrics) {
+ $this->assertIsArray($metrics, 'Google_Metric', __METHOD__);
+ $this->metrics = $metrics;
+ }
+ public function getMetrics() {
+ return $this->metrics;
+ }
+ public function setPivotedActivityMetrics(/* array(Google_Metric) */ $pivotedActivityMetrics) {
+ $this->assertIsArray($pivotedActivityMetrics, 'Google_Metric', __METHOD__);
+ $this->pivotedActivityMetrics = $pivotedActivityMetrics;
+ }
+ public function getPivotedActivityMetrics() {
+ return $this->pivotedActivityMetrics;
+ }
+ public function setReachByFrequencyMetrics(/* array(Google_Metric) */ $reachByFrequencyMetrics) {
+ $this->assertIsArray($reachByFrequencyMetrics, 'Google_Metric', __METHOD__);
+ $this->reachByFrequencyMetrics = $reachByFrequencyMetrics;
+ }
+ public function getReachByFrequencyMetrics() {
+ return $this->reachByFrequencyMetrics;
+ }
+}
+
+class Google_Recipient extends Google_Model {
+ public $deliveryType;
+ public $email;
+ public $kind;
+ public function setDeliveryType( $deliveryType) {
+ $this->deliveryType = $deliveryType;
+ }
+ public function getDeliveryType() {
+ return $this->deliveryType;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Report extends Google_Model {
+ public $accountId;
+ protected $__activeGrpCriteriaType = 'Google_ReportActiveGrpCriteria';
+ protected $__activeGrpCriteriaDataType = '';
+ public $activeGrpCriteria;
+ protected $__criteriaType = 'Google_ReportCriteria';
+ protected $__criteriaDataType = '';
+ public $criteria;
+ protected $__crossDimensionReachCriteriaType = 'Google_ReportCrossDimensionReachCriteria';
+ protected $__crossDimensionReachCriteriaDataType = '';
+ public $crossDimensionReachCriteria;
+ protected $__deliveryType = 'Google_ReportDelivery';
+ protected $__deliveryDataType = '';
+ public $delivery;
+ public $etag;
+ public $fileName;
+ protected $__floodlightCriteriaType = 'Google_ReportFloodlightCriteria';
+ protected $__floodlightCriteriaDataType = '';
+ public $floodlightCriteria;
+ public $format;
+ public $id;
+ public $kind;
+ public $lastModifiedTime;
+ public $name;
+ public $ownerProfileId;
+ protected $__pathToConversionCriteriaType = 'Google_ReportPathToConversionCriteria';
+ protected $__pathToConversionCriteriaDataType = '';
+ public $pathToConversionCriteria;
+ protected $__reachCriteriaType = 'Google_ReportReachCriteria';
+ protected $__reachCriteriaDataType = '';
+ public $reachCriteria;
+ protected $__scheduleType = 'Google_ReportSchedule';
+ protected $__scheduleDataType = '';
+ public $schedule;
+ public $subAccountId;
+ public $type;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setActiveGrpCriteria(Google_ReportActiveGrpCriteria $activeGrpCriteria) {
+ $this->activeGrpCriteria = $activeGrpCriteria;
+ }
+ public function getActiveGrpCriteria() {
+ return $this->activeGrpCriteria;
+ }
+ public function setCriteria(Google_ReportCriteria $criteria) {
+ $this->criteria = $criteria;
+ }
+ public function getCriteria() {
+ return $this->criteria;
+ }
+ public function setCrossDimensionReachCriteria(Google_ReportCrossDimensionReachCriteria $crossDimensionReachCriteria) {
+ $this->crossDimensionReachCriteria = $crossDimensionReachCriteria;
+ }
+ public function getCrossDimensionReachCriteria() {
+ return $this->crossDimensionReachCriteria;
+ }
+ public function setDelivery(Google_ReportDelivery $delivery) {
+ $this->delivery = $delivery;
+ }
+ public function getDelivery() {
+ return $this->delivery;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setFileName( $fileName) {
+ $this->fileName = $fileName;
+ }
+ public function getFileName() {
+ return $this->fileName;
+ }
+ public function setFloodlightCriteria(Google_ReportFloodlightCriteria $floodlightCriteria) {
+ $this->floodlightCriteria = $floodlightCriteria;
+ }
+ public function getFloodlightCriteria() {
+ return $this->floodlightCriteria;
+ }
+ public function setFormat( $format) {
+ $this->format = $format;
+ }
+ public function getFormat() {
+ return $this->format;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastModifiedTime( $lastModifiedTime) {
+ $this->lastModifiedTime = $lastModifiedTime;
+ }
+ public function getLastModifiedTime() {
+ return $this->lastModifiedTime;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOwnerProfileId( $ownerProfileId) {
+ $this->ownerProfileId = $ownerProfileId;
+ }
+ public function getOwnerProfileId() {
+ return $this->ownerProfileId;
+ }
+ public function setPathToConversionCriteria(Google_ReportPathToConversionCriteria $pathToConversionCriteria) {
+ $this->pathToConversionCriteria = $pathToConversionCriteria;
+ }
+ public function getPathToConversionCriteria() {
+ return $this->pathToConversionCriteria;
+ }
+ public function setReachCriteria(Google_ReportReachCriteria $reachCriteria) {
+ $this->reachCriteria = $reachCriteria;
+ }
+ public function getReachCriteria() {
+ return $this->reachCriteria;
+ }
+ public function setSchedule(Google_ReportSchedule $schedule) {
+ $this->schedule = $schedule;
+ }
+ public function getSchedule() {
+ return $this->schedule;
+ }
+ public function setSubAccountId( $subAccountId) {
+ $this->subAccountId = $subAccountId;
+ }
+ public function getSubAccountId() {
+ return $this->subAccountId;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ReportActiveGrpCriteria extends Google_Model {
+ protected $__dateRangeType = 'Google_DateRange';
+ protected $__dateRangeDataType = '';
+ public $dateRange;
+ protected $__dimensionFiltersType = 'Google_DimensionValue';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ protected $__dimensionsType = 'Google_SortedDimension';
+ protected $__dimensionsDataType = 'array';
+ public $dimensions;
+ public $metricNames;
+ public function setDateRange(Google_DateRange $dateRange) {
+ $this->dateRange = $dateRange;
+ }
+ public function getDateRange() {
+ return $this->dateRange;
+ }
+ public function setDimensionFilters(/* array(Google_DimensionValue) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_DimensionValue', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setDimensions(/* array(Google_SortedDimension) */ $dimensions) {
+ $this->assertIsArray($dimensions, 'Google_SortedDimension', __METHOD__);
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setMetricNames(/* array(Google_string) */ $metricNames) {
+ $this->assertIsArray($metricNames, 'Google_string', __METHOD__);
+ $this->metricNames = $metricNames;
+ }
+ public function getMetricNames() {
+ return $this->metricNames;
+ }
+}
+
+class Google_ReportCompatibleFields extends Google_Model {
+ protected $__dimensionFiltersType = 'Google_Dimension';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ protected $__dimensionsType = 'Google_Dimension';
+ protected $__dimensionsDataType = 'array';
+ public $dimensions;
+ public $kind;
+ protected $__metricsType = 'Google_Metric';
+ protected $__metricsDataType = 'array';
+ public $metrics;
+ protected $__pivotedActivityMetricsType = 'Google_Metric';
+ protected $__pivotedActivityMetricsDataType = 'array';
+ public $pivotedActivityMetrics;
+ public function setDimensionFilters(/* array(Google_Dimension) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_Dimension', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setDimensions(/* array(Google_Dimension) */ $dimensions) {
+ $this->assertIsArray($dimensions, 'Google_Dimension', __METHOD__);
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMetrics(/* array(Google_Metric) */ $metrics) {
+ $this->assertIsArray($metrics, 'Google_Metric', __METHOD__);
+ $this->metrics = $metrics;
+ }
+ public function getMetrics() {
+ return $this->metrics;
+ }
+ public function setPivotedActivityMetrics(/* array(Google_Metric) */ $pivotedActivityMetrics) {
+ $this->assertIsArray($pivotedActivityMetrics, 'Google_Metric', __METHOD__);
+ $this->pivotedActivityMetrics = $pivotedActivityMetrics;
+ }
+ public function getPivotedActivityMetrics() {
+ return $this->pivotedActivityMetrics;
+ }
+}
+
+class Google_ReportCriteria extends Google_Model {
+ protected $__activitiesType = 'Google_Activities';
+ protected $__activitiesDataType = '';
+ public $activities;
+ protected $__customRichMediaEventsType = 'Google_CustomRichMediaEvents';
+ protected $__customRichMediaEventsDataType = '';
+ public $customRichMediaEvents;
+ protected $__dateRangeType = 'Google_DateRange';
+ protected $__dateRangeDataType = '';
+ public $dateRange;
+ protected $__dimensionFiltersType = 'Google_DimensionValue';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ protected $__dimensionsType = 'Google_SortedDimension';
+ protected $__dimensionsDataType = 'array';
+ public $dimensions;
+ public $metricNames;
+ public function setActivities(Google_Activities $activities) {
+ $this->activities = $activities;
+ }
+ public function getActivities() {
+ return $this->activities;
+ }
+ public function setCustomRichMediaEvents(Google_CustomRichMediaEvents $customRichMediaEvents) {
+ $this->customRichMediaEvents = $customRichMediaEvents;
+ }
+ public function getCustomRichMediaEvents() {
+ return $this->customRichMediaEvents;
+ }
+ public function setDateRange(Google_DateRange $dateRange) {
+ $this->dateRange = $dateRange;
+ }
+ public function getDateRange() {
+ return $this->dateRange;
+ }
+ public function setDimensionFilters(/* array(Google_DimensionValue) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_DimensionValue', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setDimensions(/* array(Google_SortedDimension) */ $dimensions) {
+ $this->assertIsArray($dimensions, 'Google_SortedDimension', __METHOD__);
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setMetricNames(/* array(Google_string) */ $metricNames) {
+ $this->assertIsArray($metricNames, 'Google_string', __METHOD__);
+ $this->metricNames = $metricNames;
+ }
+ public function getMetricNames() {
+ return $this->metricNames;
+ }
+}
+
+class Google_ReportCrossDimensionReachCriteria extends Google_Model {
+ protected $__breakdownType = 'Google_SortedDimension';
+ protected $__breakdownDataType = 'array';
+ public $breakdown;
+ protected $__dateRangeType = 'Google_DateRange';
+ protected $__dateRangeDataType = '';
+ public $dateRange;
+ public $dimension;
+ protected $__dimensionFiltersType = 'Google_DimensionValue';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ public $metricNames;
+ public $overlapMetricNames;
+ public $pivoted;
+ public function setBreakdown(/* array(Google_SortedDimension) */ $breakdown) {
+ $this->assertIsArray($breakdown, 'Google_SortedDimension', __METHOD__);
+ $this->breakdown = $breakdown;
+ }
+ public function getBreakdown() {
+ return $this->breakdown;
+ }
+ public function setDateRange(Google_DateRange $dateRange) {
+ $this->dateRange = $dateRange;
+ }
+ public function getDateRange() {
+ return $this->dateRange;
+ }
+ public function setDimension( $dimension) {
+ $this->dimension = $dimension;
+ }
+ public function getDimension() {
+ return $this->dimension;
+ }
+ public function setDimensionFilters(/* array(Google_DimensionValue) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_DimensionValue', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setMetricNames(/* array(Google_string) */ $metricNames) {
+ $this->assertIsArray($metricNames, 'Google_string', __METHOD__);
+ $this->metricNames = $metricNames;
+ }
+ public function getMetricNames() {
+ return $this->metricNames;
+ }
+ public function setOverlapMetricNames(/* array(Google_string) */ $overlapMetricNames) {
+ $this->assertIsArray($overlapMetricNames, 'Google_string', __METHOD__);
+ $this->overlapMetricNames = $overlapMetricNames;
+ }
+ public function getOverlapMetricNames() {
+ return $this->overlapMetricNames;
+ }
+ public function setPivoted( $pivoted) {
+ $this->pivoted = $pivoted;
+ }
+ public function getPivoted() {
+ return $this->pivoted;
+ }
+}
+
+class Google_ReportDelivery extends Google_Model {
+ public $emailOwner;
+ public $emailOwnerDeliveryType;
+ public $message;
+ protected $__recipientsType = 'Google_Recipient';
+ protected $__recipientsDataType = 'array';
+ public $recipients;
+ public function setEmailOwner( $emailOwner) {
+ $this->emailOwner = $emailOwner;
+ }
+ public function getEmailOwner() {
+ return $this->emailOwner;
+ }
+ public function setEmailOwnerDeliveryType( $emailOwnerDeliveryType) {
+ $this->emailOwnerDeliveryType = $emailOwnerDeliveryType;
+ }
+ public function getEmailOwnerDeliveryType() {
+ return $this->emailOwnerDeliveryType;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+ public function setRecipients(/* array(Google_Recipient) */ $recipients) {
+ $this->assertIsArray($recipients, 'Google_Recipient', __METHOD__);
+ $this->recipients = $recipients;
+ }
+ public function getRecipients() {
+ return $this->recipients;
+ }
+}
+
+class Google_ReportFloodlightCriteria extends Google_Model {
+ protected $__customRichMediaEventsType = 'Google_DimensionValue';
+ protected $__customRichMediaEventsDataType = 'array';
+ public $customRichMediaEvents;
+ protected $__dateRangeType = 'Google_DateRange';
+ protected $__dateRangeDataType = '';
+ public $dateRange;
+ protected $__dimensionFiltersType = 'Google_DimensionValue';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ protected $__dimensionsType = 'Google_SortedDimension';
+ protected $__dimensionsDataType = 'array';
+ public $dimensions;
+ protected $__floodlightConfigIdType = 'Google_DimensionValue';
+ protected $__floodlightConfigIdDataType = '';
+ public $floodlightConfigId;
+ public $metricNames;
+ protected $__reportPropertiesType = 'Google_ReportFloodlightCriteriaReportProperties';
+ protected $__reportPropertiesDataType = '';
+ public $reportProperties;
+ public function setCustomRichMediaEvents(/* array(Google_DimensionValue) */ $customRichMediaEvents) {
+ $this->assertIsArray($customRichMediaEvents, 'Google_DimensionValue', __METHOD__);
+ $this->customRichMediaEvents = $customRichMediaEvents;
+ }
+ public function getCustomRichMediaEvents() {
+ return $this->customRichMediaEvents;
+ }
+ public function setDateRange(Google_DateRange $dateRange) {
+ $this->dateRange = $dateRange;
+ }
+ public function getDateRange() {
+ return $this->dateRange;
+ }
+ public function setDimensionFilters(/* array(Google_DimensionValue) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_DimensionValue', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setDimensions(/* array(Google_SortedDimension) */ $dimensions) {
+ $this->assertIsArray($dimensions, 'Google_SortedDimension', __METHOD__);
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setFloodlightConfigId(Google_DimensionValue $floodlightConfigId) {
+ $this->floodlightConfigId = $floodlightConfigId;
+ }
+ public function getFloodlightConfigId() {
+ return $this->floodlightConfigId;
+ }
+ public function setMetricNames(/* array(Google_string) */ $metricNames) {
+ $this->assertIsArray($metricNames, 'Google_string', __METHOD__);
+ $this->metricNames = $metricNames;
+ }
+ public function getMetricNames() {
+ return $this->metricNames;
+ }
+ public function setReportProperties(Google_ReportFloodlightCriteriaReportProperties $reportProperties) {
+ $this->reportProperties = $reportProperties;
+ }
+ public function getReportProperties() {
+ return $this->reportProperties;
+ }
+}
+
+class Google_ReportFloodlightCriteriaReportProperties extends Google_Model {
+ public $includeAttributedIPConversions;
+ public $includeUnattributedCookieConversions;
+ public $includeUnattributedIPConversions;
+ public function setIncludeAttributedIPConversions( $includeAttributedIPConversions) {
+ $this->includeAttributedIPConversions = $includeAttributedIPConversions;
+ }
+ public function getIncludeAttributedIPConversions() {
+ return $this->includeAttributedIPConversions;
+ }
+ public function setIncludeUnattributedCookieConversions( $includeUnattributedCookieConversions) {
+ $this->includeUnattributedCookieConversions = $includeUnattributedCookieConversions;
+ }
+ public function getIncludeUnattributedCookieConversions() {
+ return $this->includeUnattributedCookieConversions;
+ }
+ public function setIncludeUnattributedIPConversions( $includeUnattributedIPConversions) {
+ $this->includeUnattributedIPConversions = $includeUnattributedIPConversions;
+ }
+ public function getIncludeUnattributedIPConversions() {
+ return $this->includeUnattributedIPConversions;
+ }
+}
+
+class Google_ReportList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Report';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Report) */ $items) {
+ $this->assertIsArray($items, 'Google_Report', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_ReportPathToConversionCriteria extends Google_Model {
+ protected $__activityFiltersType = 'Google_DimensionValue';
+ protected $__activityFiltersDataType = 'array';
+ public $activityFilters;
+ protected $__conversionDimensionsType = 'Google_SortedDimension';
+ protected $__conversionDimensionsDataType = 'array';
+ public $conversionDimensions;
+ protected $__customFloodlightVariablesType = 'Google_SortedDimension';
+ protected $__customFloodlightVariablesDataType = 'array';
+ public $customFloodlightVariables;
+ protected $__customRichMediaEventsType = 'Google_DimensionValue';
+ protected $__customRichMediaEventsDataType = 'array';
+ public $customRichMediaEvents;
+ protected $__dateRangeType = 'Google_DateRange';
+ protected $__dateRangeDataType = '';
+ public $dateRange;
+ protected $__floodlightConfigIdType = 'Google_DimensionValue';
+ protected $__floodlightConfigIdDataType = '';
+ public $floodlightConfigId;
+ public $metricNames;
+ protected $__perInteractionDimensionsType = 'Google_SortedDimension';
+ protected $__perInteractionDimensionsDataType = 'array';
+ public $perInteractionDimensions;
+ protected $__reportPropertiesType = 'Google_ReportPathToConversionCriteriaReportProperties';
+ protected $__reportPropertiesDataType = '';
+ public $reportProperties;
+ public function setActivityFilters(/* array(Google_DimensionValue) */ $activityFilters) {
+ $this->assertIsArray($activityFilters, 'Google_DimensionValue', __METHOD__);
+ $this->activityFilters = $activityFilters;
+ }
+ public function getActivityFilters() {
+ return $this->activityFilters;
+ }
+ public function setConversionDimensions(/* array(Google_SortedDimension) */ $conversionDimensions) {
+ $this->assertIsArray($conversionDimensions, 'Google_SortedDimension', __METHOD__);
+ $this->conversionDimensions = $conversionDimensions;
+ }
+ public function getConversionDimensions() {
+ return $this->conversionDimensions;
+ }
+ public function setCustomFloodlightVariables(/* array(Google_SortedDimension) */ $customFloodlightVariables) {
+ $this->assertIsArray($customFloodlightVariables, 'Google_SortedDimension', __METHOD__);
+ $this->customFloodlightVariables = $customFloodlightVariables;
+ }
+ public function getCustomFloodlightVariables() {
+ return $this->customFloodlightVariables;
+ }
+ public function setCustomRichMediaEvents(/* array(Google_DimensionValue) */ $customRichMediaEvents) {
+ $this->assertIsArray($customRichMediaEvents, 'Google_DimensionValue', __METHOD__);
+ $this->customRichMediaEvents = $customRichMediaEvents;
+ }
+ public function getCustomRichMediaEvents() {
+ return $this->customRichMediaEvents;
+ }
+ public function setDateRange(Google_DateRange $dateRange) {
+ $this->dateRange = $dateRange;
+ }
+ public function getDateRange() {
+ return $this->dateRange;
+ }
+ public function setFloodlightConfigId(Google_DimensionValue $floodlightConfigId) {
+ $this->floodlightConfigId = $floodlightConfigId;
+ }
+ public function getFloodlightConfigId() {
+ return $this->floodlightConfigId;
+ }
+ public function setMetricNames(/* array(Google_string) */ $metricNames) {
+ $this->assertIsArray($metricNames, 'Google_string', __METHOD__);
+ $this->metricNames = $metricNames;
+ }
+ public function getMetricNames() {
+ return $this->metricNames;
+ }
+ public function setPerInteractionDimensions(/* array(Google_SortedDimension) */ $perInteractionDimensions) {
+ $this->assertIsArray($perInteractionDimensions, 'Google_SortedDimension', __METHOD__);
+ $this->perInteractionDimensions = $perInteractionDimensions;
+ }
+ public function getPerInteractionDimensions() {
+ return $this->perInteractionDimensions;
+ }
+ public function setReportProperties(Google_ReportPathToConversionCriteriaReportProperties $reportProperties) {
+ $this->reportProperties = $reportProperties;
+ }
+ public function getReportProperties() {
+ return $this->reportProperties;
+ }
+}
+
+class Google_ReportPathToConversionCriteriaReportProperties extends Google_Model {
+ public $clicksLookbackWindow;
+ public $impressionsLookbackWindow;
+ public $includeAttributedIPConversions;
+ public $includeUnattributedCookieConversions;
+ public $includeUnattributedIPConversions;
+ public $maximumClickInteractions;
+ public $maximumImpressionInteractions;
+ public $maximumInteractionGap;
+ public $pivotOnInteractionPath;
+ public function setClicksLookbackWindow( $clicksLookbackWindow) {
+ $this->clicksLookbackWindow = $clicksLookbackWindow;
+ }
+ public function getClicksLookbackWindow() {
+ return $this->clicksLookbackWindow;
+ }
+ public function setImpressionsLookbackWindow( $impressionsLookbackWindow) {
+ $this->impressionsLookbackWindow = $impressionsLookbackWindow;
+ }
+ public function getImpressionsLookbackWindow() {
+ return $this->impressionsLookbackWindow;
+ }
+ public function setIncludeAttributedIPConversions( $includeAttributedIPConversions) {
+ $this->includeAttributedIPConversions = $includeAttributedIPConversions;
+ }
+ public function getIncludeAttributedIPConversions() {
+ return $this->includeAttributedIPConversions;
+ }
+ public function setIncludeUnattributedCookieConversions( $includeUnattributedCookieConversions) {
+ $this->includeUnattributedCookieConversions = $includeUnattributedCookieConversions;
+ }
+ public function getIncludeUnattributedCookieConversions() {
+ return $this->includeUnattributedCookieConversions;
+ }
+ public function setIncludeUnattributedIPConversions( $includeUnattributedIPConversions) {
+ $this->includeUnattributedIPConversions = $includeUnattributedIPConversions;
+ }
+ public function getIncludeUnattributedIPConversions() {
+ return $this->includeUnattributedIPConversions;
+ }
+ public function setMaximumClickInteractions( $maximumClickInteractions) {
+ $this->maximumClickInteractions = $maximumClickInteractions;
+ }
+ public function getMaximumClickInteractions() {
+ return $this->maximumClickInteractions;
+ }
+ public function setMaximumImpressionInteractions( $maximumImpressionInteractions) {
+ $this->maximumImpressionInteractions = $maximumImpressionInteractions;
+ }
+ public function getMaximumImpressionInteractions() {
+ return $this->maximumImpressionInteractions;
+ }
+ public function setMaximumInteractionGap( $maximumInteractionGap) {
+ $this->maximumInteractionGap = $maximumInteractionGap;
+ }
+ public function getMaximumInteractionGap() {
+ return $this->maximumInteractionGap;
+ }
+ public function setPivotOnInteractionPath( $pivotOnInteractionPath) {
+ $this->pivotOnInteractionPath = $pivotOnInteractionPath;
+ }
+ public function getPivotOnInteractionPath() {
+ return $this->pivotOnInteractionPath;
+ }
+}
+
+class Google_ReportReachCriteria extends Google_Model {
+ protected $__activitiesType = 'Google_Activities';
+ protected $__activitiesDataType = '';
+ public $activities;
+ protected $__customRichMediaEventsType = 'Google_CustomRichMediaEvents';
+ protected $__customRichMediaEventsDataType = '';
+ public $customRichMediaEvents;
+ protected $__dateRangeType = 'Google_DateRange';
+ protected $__dateRangeDataType = '';
+ public $dateRange;
+ protected $__dimensionFiltersType = 'Google_DimensionValue';
+ protected $__dimensionFiltersDataType = 'array';
+ public $dimensionFilters;
+ protected $__dimensionsType = 'Google_SortedDimension';
+ protected $__dimensionsDataType = 'array';
+ public $dimensions;
+ public $metricNames;
+ public $reachByFrequencyMetricNames;
+ public function setActivities(Google_Activities $activities) {
+ $this->activities = $activities;
+ }
+ public function getActivities() {
+ return $this->activities;
+ }
+ public function setCustomRichMediaEvents(Google_CustomRichMediaEvents $customRichMediaEvents) {
+ $this->customRichMediaEvents = $customRichMediaEvents;
+ }
+ public function getCustomRichMediaEvents() {
+ return $this->customRichMediaEvents;
+ }
+ public function setDateRange(Google_DateRange $dateRange) {
+ $this->dateRange = $dateRange;
+ }
+ public function getDateRange() {
+ return $this->dateRange;
+ }
+ public function setDimensionFilters(/* array(Google_DimensionValue) */ $dimensionFilters) {
+ $this->assertIsArray($dimensionFilters, 'Google_DimensionValue', __METHOD__);
+ $this->dimensionFilters = $dimensionFilters;
+ }
+ public function getDimensionFilters() {
+ return $this->dimensionFilters;
+ }
+ public function setDimensions(/* array(Google_SortedDimension) */ $dimensions) {
+ $this->assertIsArray($dimensions, 'Google_SortedDimension', __METHOD__);
+ $this->dimensions = $dimensions;
+ }
+ public function getDimensions() {
+ return $this->dimensions;
+ }
+ public function setMetricNames(/* array(Google_string) */ $metricNames) {
+ $this->assertIsArray($metricNames, 'Google_string', __METHOD__);
+ $this->metricNames = $metricNames;
+ }
+ public function getMetricNames() {
+ return $this->metricNames;
+ }
+ public function setReachByFrequencyMetricNames(/* array(Google_string) */ $reachByFrequencyMetricNames) {
+ $this->assertIsArray($reachByFrequencyMetricNames, 'Google_string', __METHOD__);
+ $this->reachByFrequencyMetricNames = $reachByFrequencyMetricNames;
+ }
+ public function getReachByFrequencyMetricNames() {
+ return $this->reachByFrequencyMetricNames;
+ }
+}
+
+class Google_ReportSchedule extends Google_Model {
+ public $active;
+ public $every;
+ public $expirationDate;
+ public $repeats;
+ public $repeatsOnWeekDays;
+ public $runsOnDayOfMonth;
+ public $startDate;
+ public function setActive( $active) {
+ $this->active = $active;
+ }
+ public function getActive() {
+ return $this->active;
+ }
+ public function setEvery( $every) {
+ $this->every = $every;
+ }
+ public function getEvery() {
+ return $this->every;
+ }
+ public function setExpirationDate( $expirationDate) {
+ $this->expirationDate = $expirationDate;
+ }
+ public function getExpirationDate() {
+ return $this->expirationDate;
+ }
+ public function setRepeats( $repeats) {
+ $this->repeats = $repeats;
+ }
+ public function getRepeats() {
+ return $this->repeats;
+ }
+ public function setRepeatsOnWeekDays(/* array(Google_string) */ $repeatsOnWeekDays) {
+ $this->assertIsArray($repeatsOnWeekDays, 'Google_string', __METHOD__);
+ $this->repeatsOnWeekDays = $repeatsOnWeekDays;
+ }
+ public function getRepeatsOnWeekDays() {
+ return $this->repeatsOnWeekDays;
+ }
+ public function setRunsOnDayOfMonth( $runsOnDayOfMonth) {
+ $this->runsOnDayOfMonth = $runsOnDayOfMonth;
+ }
+ public function getRunsOnDayOfMonth() {
+ return $this->runsOnDayOfMonth;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+}
+
+class Google_SortedDimension extends Google_Model {
+ public $kind;
+ public $name;
+ public $sortOrder;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setSortOrder( $sortOrder) {
+ $this->sortOrder = $sortOrder;
+ }
+ public function getSortOrder() {
+ return $this->sortOrder;
+ }
+}
+
+class Google_UserProfile extends Google_Model {
+ public $accountId;
+ public $accountName;
+ public $etag;
+ public $kind;
+ public $profileId;
+ public $subAccountId;
+ public $subAccountName;
+ public $userName;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setAccountName( $accountName) {
+ $this->accountName = $accountName;
+ }
+ public function getAccountName() {
+ return $this->accountName;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setProfileId( $profileId) {
+ $this->profileId = $profileId;
+ }
+ public function getProfileId() {
+ return $this->profileId;
+ }
+ public function setSubAccountId( $subAccountId) {
+ $this->subAccountId = $subAccountId;
+ }
+ public function getSubAccountId() {
+ return $this->subAccountId;
+ }
+ public function setSubAccountName( $subAccountName) {
+ $this->subAccountName = $subAccountName;
+ }
+ public function getSubAccountName() {
+ return $this->subAccountName;
+ }
+ public function setUserName( $userName) {
+ $this->userName = $userName;
+ }
+ public function getUserName() {
+ return $this->userName;
+ }
+}
+
+class Google_UserProfileList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_UserProfile';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_UserProfile) */ $items) {
+ $this->assertIsArray($items, 'Google_UserProfile', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DirectoryService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DirectoryService.php
new file mode 100644
index 0000000..906883a
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DirectoryService.php
@@ -0,0 +1,2263 @@
+
+ * $adminService = new Google_DirectoryService(...);
+ * $chromeosdevices = $adminService->chromeosdevices;
+ *
+ */
+ class Google_ChromeosdevicesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Retrieve Chrome OS Device (chromeosdevices.get)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $deviceId Immutable id of Chrome OS Device
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @return Google_ChromeOsDevice
+ */
+ public function get($customerId, $deviceId, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'deviceId' => $deviceId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_ChromeOsDevice($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieve all Chrome OS Devices of a customer (paginated) (chromeosdevices.list)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of results to return. Default is 100
+ * @opt_param string orderBy Column to use for sorting results
+ * @opt_param string pageToken Token to specify next page in the list
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @opt_param string query Search string in the format given at http://support.google.com/chromeos/a/bin/answer.py?hl=en=1698333
+ * @opt_param string sortOrder Whether to return results in ascending or descending order. Only of use when orderBy is also used
+ * @return Google_ChromeOsDevices
+ */
+ public function listChromeosdevices($customerId, $optParams = array()) {
+ $params = array('customerId' => $customerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ChromeOsDevices($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update Chrome OS Device. This method supports patch semantics. (chromeosdevices.patch)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $deviceId Immutable id of Chrome OS Device
+ * @param Google_ChromeOsDevice $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @return Google_ChromeOsDevice
+ */
+ public function patch($customerId, $deviceId, Google_ChromeOsDevice $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'deviceId' => $deviceId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_ChromeOsDevice($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update Chrome OS Device (chromeosdevices.update)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $deviceId Immutable id of Chrome OS Device
+ * @param Google_ChromeOsDevice $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @return Google_ChromeOsDevice
+ */
+ public function update($customerId, $deviceId, Google_ChromeOsDevice $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'deviceId' => $deviceId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_ChromeOsDevice($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "groups" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_DirectoryService(...);
+ * $groups = $adminService->groups;
+ *
+ */
+ class Google_GroupsServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Delete Group (groups.delete)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($groupKey, $optParams = array()) {
+ $params = array('groupKey' => $groupKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieve Group (groups.get)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param array $optParams Optional parameters.
+ * @return Google_Group
+ */
+ public function get($groupKey, $optParams = array()) {
+ $params = array('groupKey' => $groupKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Group($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create Group (groups.insert)
+ *
+ * @param Google_Group $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Group
+ */
+ public function insert(Google_Group $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Group($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieve all groups in a domain (paginated) (groups.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string customer Immutable id of the Google Apps account. In case of multi-domain, to fetch all groups for a customer, fill this field instead of domain.
+ * @opt_param string domain Name of the domain. Fill this field to get groups from only this domain. To return all groups in a multi-domain fill customer field instead.
+ * @opt_param int maxResults Maximum number of results to return. Default is 200
+ * @opt_param string pageToken Token to specify next page in the list
+ * @opt_param string userKey Email or immutable Id of the user if only those groups are to be listed, the given user is a member of. If Id, it should match with id of user object
+ * @return Google_Groups
+ */
+ public function listGroups($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Groups($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update Group. This method supports patch semantics. (groups.patch)
+ *
+ * @param string $groupKey Email or immutable Id of the group. If Id, it should match with id of group object
+ * @param Google_Group $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Group
+ */
+ public function patch($groupKey, Google_Group $postBody, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Group($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update Group (groups.update)
+ *
+ * @param string $groupKey Email or immutable Id of the group. If Id, it should match with id of group object
+ * @param Google_Group $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Group
+ */
+ public function update($groupKey, Google_Group $postBody, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Group($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "aliases" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_DirectoryService(...);
+ * $aliases = $adminService->aliases;
+ *
+ */
+ class Google_GroupsAliasesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Remove a alias for the group (aliases.delete)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param string $alias The alias to be removed
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($groupKey, $alias, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'alias' => $alias);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Add a alias for the group (aliases.insert)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param Google_Alias $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Alias
+ */
+ public function insert($groupKey, Google_Alias $postBody, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Alias($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all aliases for a group (aliases.list)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param array $optParams Optional parameters.
+ * @return Google_Aliases
+ */
+ public function listGroupsAliases($groupKey, $optParams = array()) {
+ $params = array('groupKey' => $groupKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Aliases($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "members" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_DirectoryService(...);
+ * $members = $adminService->members;
+ *
+ */
+ class Google_MembersServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Remove membership. (members.delete)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param string $memberKey Email or immutable Id of the member
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($groupKey, $memberKey, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'memberKey' => $memberKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieve Group Member (members.get)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param string $memberKey Email or immutable Id of the member
+ * @param array $optParams Optional parameters.
+ * @return Google_Member
+ */
+ public function get($groupKey, $memberKey, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'memberKey' => $memberKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Member($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Add user to the specified group. (members.insert)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param Google_Member $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Member
+ */
+ public function insert($groupKey, Google_Member $postBody, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Member($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieve all members in a group (paginated) (members.list)
+ *
+ * @param string $groupKey Email or immutable Id of the group
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of results to return. Default is 200
+ * @opt_param string pageToken Token to specify next page in the list
+ * @opt_param string roles Comma separated role values to filter list results on.
+ * @return Google_Members
+ */
+ public function listMembers($groupKey, $optParams = array()) {
+ $params = array('groupKey' => $groupKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Members($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update membership of a user in the specified group. This method supports patch semantics.
+ * (members.patch)
+ *
+ * @param string $groupKey Email or immutable Id of the group. If Id, it should match with id of group object
+ * @param string $memberKey Email or immutable Id of the user. If Id, it should match with id of member object
+ * @param Google_Member $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Member
+ */
+ public function patch($groupKey, $memberKey, Google_Member $postBody, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'memberKey' => $memberKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Member($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update membership of a user in the specified group. (members.update)
+ *
+ * @param string $groupKey Email or immutable Id of the group. If Id, it should match with id of group object
+ * @param string $memberKey Email or immutable Id of the user. If Id, it should match with id of member object
+ * @param Google_Member $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Member
+ */
+ public function update($groupKey, $memberKey, Google_Member $postBody, $optParams = array()) {
+ $params = array('groupKey' => $groupKey, 'memberKey' => $memberKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Member($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "mobiledevices" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_DirectoryService(...);
+ * $mobiledevices = $adminService->mobiledevices;
+ *
+ */
+ class Google_MobiledevicesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Take action on Mobile Device (mobiledevices.action)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $resourceId Immutable id of Mobile Device
+ * @param Google_MobileDeviceAction $postBody
+ * @param array $optParams Optional parameters.
+ */
+ public function action($customerId, $resourceId, Google_MobileDeviceAction $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'resourceId' => $resourceId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('action', array($params));
+ return $data;
+ }
+ /**
+ * Delete Mobile Device (mobiledevices.delete)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $resourceId Immutable id of Mobile Device
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($customerId, $resourceId, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'resourceId' => $resourceId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieve Mobile Device (mobiledevices.get)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $resourceId Immutable id of Mobile Device
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @return Google_MobileDevice
+ */
+ public function get($customerId, $resourceId, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'resourceId' => $resourceId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_MobileDevice($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieve all Mobile Devices of a customer (paginated) (mobiledevices.list)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of results to return. Default is 100
+ * @opt_param string orderBy Column to use for sorting results
+ * @opt_param string pageToken Token to specify next page in the list
+ * @opt_param string projection Restrict information returned to a set of selected fields.
+ * @opt_param string query Search string in the format given at http://support.google.com/a/bin/answer.py?hl=en=1408863#search
+ * @opt_param string sortOrder Whether to return results in ascending or descending order. Only of use when orderBy is also used
+ * @return Google_MobileDevices
+ */
+ public function listMobiledevices($customerId, $optParams = array()) {
+ $params = array('customerId' => $customerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_MobileDevices($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "orgunits" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_DirectoryService(...);
+ * $orgunits = $adminService->orgunits;
+ *
+ */
+ class Google_OrgunitsServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Remove Organization Unit (orgunits.delete)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $orgUnitPath Full path of the organization unit
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($customerId, $orgUnitPath, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'orgUnitPath' => $orgUnitPath);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieve Organization Unit (orgunits.get)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $orgUnitPath Full path of the organization unit
+ * @param array $optParams Optional parameters.
+ * @return Google_OrgUnit
+ */
+ public function get($customerId, $orgUnitPath, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'orgUnitPath' => $orgUnitPath);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_OrgUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Add Organization Unit (orgunits.insert)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param Google_OrgUnit $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_OrgUnit
+ */
+ public function insert($customerId, Google_OrgUnit $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_OrgUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieve all Organization Units (orgunits.list)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string orgUnitPath the URL-encoded organization unit
+ * @opt_param string type Whether to return all sub-organizations or just immediate children
+ * @return Google_OrgUnits
+ */
+ public function listOrgunits($customerId, $optParams = array()) {
+ $params = array('customerId' => $customerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_OrgUnits($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update Organization Unit. This method supports patch semantics. (orgunits.patch)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $orgUnitPath Full path of the organization unit
+ * @param Google_OrgUnit $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_OrgUnit
+ */
+ public function patch($customerId, $orgUnitPath, Google_OrgUnit $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'orgUnitPath' => $orgUnitPath, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_OrgUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update Organization Unit (orgunits.update)
+ *
+ * @param string $customerId Immutable id of the Google Apps account
+ * @param string $orgUnitPath Full path of the organization unit
+ * @param Google_OrgUnit $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_OrgUnit
+ */
+ public function update($customerId, $orgUnitPath, Google_OrgUnit $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'orgUnitPath' => $orgUnitPath, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_OrgUnit($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "users" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_DirectoryService(...);
+ * $users = $adminService->users;
+ *
+ */
+ class Google_UsersServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Delete user (users.delete)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($userKey, $optParams = array()) {
+ $params = array('userKey' => $userKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * retrieve user (users.get)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param array $optParams Optional parameters.
+ * @return Google_User
+ */
+ public function get($userKey, $optParams = array()) {
+ $params = array('userKey' => $userKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_User($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * create user. (users.insert)
+ *
+ * @param Google_User $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_User
+ */
+ public function insert(Google_User $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_User($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieve either deleted users or all users in a domain (paginated) (users.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string customer Immutable id of the Google Apps account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.
+ * @opt_param string domain Name of the domain. Fill this field to get users from only this domain. To return all users in a multi-domain fill customer field instead.
+ * @opt_param int maxResults Maximum number of results to return. Default is 100. Max allowed is 500
+ * @opt_param string orderBy Column to use for sorting results
+ * @opt_param string pageToken Token to specify next page in the list
+ * @opt_param string query Query string for prefix matching searches. Should be of the form "key:value*" where key can be "email", "givenName" or "familyName". The asterisk is required, for example: "givenName:Ann*" is a valid query.
+ * @opt_param string showDeleted If set to true retrieves the list of deleted users. Default is false
+ * @opt_param string sortOrder Whether to return results in ascending or descending order.
+ * @return Google_Users
+ */
+ public function listUsers($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Users($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * change admin status of a user (users.makeAdmin)
+ *
+ * @param string $userKey Email or immutable Id of the user as admin
+ * @param Google_UserMakeAdmin $postBody
+ * @param array $optParams Optional parameters.
+ */
+ public function makeAdmin($userKey, Google_UserMakeAdmin $postBody, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('makeAdmin', array($params));
+ return $data;
+ }
+ /**
+ * update user. This method supports patch semantics. (users.patch)
+ *
+ * @param string $userKey Email or immutable Id of the user. If Id, it should match with id of user object
+ * @param Google_User $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_User
+ */
+ public function patch($userKey, Google_User $postBody, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_User($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Undelete a deleted user (users.undelete)
+ *
+ * @param string $userKey The immutable id of the user
+ * @param Google_UserUndelete $postBody
+ * @param array $optParams Optional parameters.
+ */
+ public function undelete($userKey, Google_UserUndelete $postBody, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('undelete', array($params));
+ return $data;
+ }
+ /**
+ * update user (users.update)
+ *
+ * @param string $userKey Email or immutable Id of the user. If Id, it should match with id of user object
+ * @param Google_User $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_User
+ */
+ public function update($userKey, Google_User $postBody, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_User($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "aliases" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_DirectoryService(...);
+ * $aliases = $adminService->aliases;
+ *
+ */
+ class Google_UsersAliasesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Remove a alias for the user (aliases.delete)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param string $alias The alias to be removed
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($userKey, $alias, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'alias' => $alias);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Add a alias for the user (aliases.insert)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param Google_Alias $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Alias
+ */
+ public function insert($userKey, Google_Alias $postBody, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Alias($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all aliases for a user (aliases.list)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param array $optParams Optional parameters.
+ * @return Google_Aliases
+ */
+ public function listUsersAliases($userKey, $optParams = array()) {
+ $params = array('userKey' => $userKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Aliases($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "photos" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_DirectoryService(...);
+ * $photos = $adminService->photos;
+ *
+ */
+ class Google_UsersPhotosServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Remove photos for the user (photos.delete)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($userKey, $optParams = array()) {
+ $params = array('userKey' => $userKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieve photo of a user (photos.get)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param array $optParams Optional parameters.
+ * @return Google_UserPhoto
+ */
+ public function get($userKey, $optParams = array()) {
+ $params = array('userKey' => $userKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_UserPhoto($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Add a photo for the user. This method supports patch semantics. (photos.patch)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param Google_UserPhoto $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_UserPhoto
+ */
+ public function patch($userKey, Google_UserPhoto $postBody, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_UserPhoto($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Add a photo for the user (photos.update)
+ *
+ * @param string $userKey Email or immutable Id of the user
+ * @param Google_UserPhoto $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_UserPhoto
+ */
+ public function update($userKey, Google_UserPhoto $postBody, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_UserPhoto($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Directory (directory_v1).
+ *
+ *
+ * Apps Directory API lets you view and manage enterprise resources like user, groups, OrgUnit, devices.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_DirectoryService extends Google_Service {
+ public $chromeosdevices;
+ public $groups;
+ public $groups_aliases;
+ public $members;
+ public $mobiledevices;
+ public $orgunits;
+ public $users;
+ public $users_aliases;
+ public $users_photos;
+ /**
+ * Constructs the internal representation of the Directory service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'admin/directory/v1/';
+ $this->version = 'directory_v1';
+ $this->serviceName = 'admin';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->chromeosdevices = new Google_ChromeosdevicesServiceResource($this, $this->serviceName, 'chromeosdevices', json_decode('{"methods": {"get": {"id": "directory.chromeosdevices.get", "path": "customer/{customerId}/devices/chromeos/{deviceId}", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "deviceId": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}}, "response": {"$ref": "ChromeOsDevice"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.device.chromeos", "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly"]}, "list": {"id": "directory.chromeosdevices.list", "path": "customer/{customerId}/devices/chromeos", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "orderBy": {"type": "string", "enum": ["annotatedLocation", "annotatedUser", "lastSync", "notes", "serialNumber", "status", "supportEndDate"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}, "query": {"type": "string", "location": "query"}, "sortOrder": {"type": "string", "enum": ["ASCENDING", "DESCENDING"], "location": "query"}}, "response": {"$ref": "ChromeOsDevices"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.device.chromeos", "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly"]}, "patch": {"id": "directory.chromeosdevices.patch", "path": "customer/{customerId}/devices/chromeos/{deviceId}", "httpMethod": "PATCH", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "deviceId": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}}, "request": {"$ref": "ChromeOsDevice"}, "response": {"$ref": "ChromeOsDevice"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.device.chromeos"]}, "update": {"id": "directory.chromeosdevices.update", "path": "customer/{customerId}/devices/chromeos/{deviceId}", "httpMethod": "PUT", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "deviceId": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}}, "request": {"$ref": "ChromeOsDevice"}, "response": {"$ref": "ChromeOsDevice"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.device.chromeos"]}}}', true));
+ $this->groups = new Google_GroupsServiceResource($this, $this->serviceName, 'groups', json_decode('{"methods": {"delete": {"id": "directory.groups.delete", "path": "groups/{groupKey}", "httpMethod": "DELETE", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group"]}, "get": {"id": "directory.groups.get", "path": "groups/{groupKey}", "httpMethod": "GET", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Group"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.readonly"]}, "insert": {"id": "directory.groups.insert", "path": "groups", "httpMethod": "POST", "request": {"$ref": "Group"}, "response": {"$ref": "Group"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group"]}, "list": {"id": "directory.groups.list", "path": "groups", "httpMethod": "GET", "parameters": {"customer": {"type": "string", "location": "query"}, "domain": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "userKey": {"type": "string", "location": "query"}}, "response": {"$ref": "Groups"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.readonly"]}, "patch": {"id": "directory.groups.patch", "path": "groups/{groupKey}", "httpMethod": "PATCH", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Group"}, "response": {"$ref": "Group"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group"]}, "update": {"id": "directory.groups.update", "path": "groups/{groupKey}", "httpMethod": "PUT", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Group"}, "response": {"$ref": "Group"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group"]}}}', true));
+ $this->groups_aliases = new Google_GroupsAliasesServiceResource($this, $this->serviceName, 'aliases', json_decode('{"methods": {"delete": {"id": "directory.groups.aliases.delete", "path": "groups/{groupKey}/aliases/{alias}", "httpMethod": "DELETE", "parameters": {"alias": {"type": "string", "required": true, "location": "path"}, "groupKey": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group"]}, "insert": {"id": "directory.groups.aliases.insert", "path": "groups/{groupKey}/aliases", "httpMethod": "POST", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Alias"}, "response": {"$ref": "Alias"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group"]}, "list": {"id": "directory.groups.aliases.list", "path": "groups/{groupKey}/aliases", "httpMethod": "GET", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Aliases"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.readonly"]}}}', true));
+ $this->members = new Google_MembersServiceResource($this, $this->serviceName, 'members', json_decode('{"methods": {"delete": {"id": "directory.members.delete", "path": "groups/{groupKey}/members/{memberKey}", "httpMethod": "DELETE", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}, "memberKey": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.member"]}, "get": {"id": "directory.members.get", "path": "groups/{groupKey}/members/{memberKey}", "httpMethod": "GET", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}, "memberKey": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Member"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.member", "https://www.googleapis.com/auth/admin.directory.group.member.readonly", "https://www.googleapis.com/auth/admin.directory.group.readonly"]}, "insert": {"id": "directory.members.insert", "path": "groups/{groupKey}/members", "httpMethod": "POST", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Member"}, "response": {"$ref": "Member"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.member"]}, "list": {"id": "directory.members.list", "path": "groups/{groupKey}/members", "httpMethod": "GET", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "roles": {"type": "string", "location": "query"}}, "response": {"$ref": "Members"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.member", "https://www.googleapis.com/auth/admin.directory.group.member.readonly", "https://www.googleapis.com/auth/admin.directory.group.readonly"]}, "patch": {"id": "directory.members.patch", "path": "groups/{groupKey}/members/{memberKey}", "httpMethod": "PATCH", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}, "memberKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Member"}, "response": {"$ref": "Member"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.member"]}, "update": {"id": "directory.members.update", "path": "groups/{groupKey}/members/{memberKey}", "httpMethod": "PUT", "parameters": {"groupKey": {"type": "string", "required": true, "location": "path"}, "memberKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Member"}, "response": {"$ref": "Member"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.group", "https://www.googleapis.com/auth/admin.directory.group.member"]}}}', true));
+ $this->mobiledevices = new Google_MobiledevicesServiceResource($this, $this->serviceName, 'mobiledevices', json_decode('{"methods": {"action": {"id": "directory.mobiledevices.action", "path": "customer/{customerId}/devices/mobile/{resourceId}/action", "httpMethod": "POST", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "resourceId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "MobileDeviceAction"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.device.mobile", "https://www.googleapis.com/auth/admin.directory.device.mobile.action"]}, "delete": {"id": "directory.mobiledevices.delete", "path": "customer/{customerId}/devices/mobile/{resourceId}", "httpMethod": "DELETE", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "resourceId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/admin.directory.device.mobile"]}, "get": {"id": "directory.mobiledevices.get", "path": "customer/{customerId}/devices/mobile/{resourceId}", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}, "resourceId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "MobileDevice"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.device.mobile", "https://www.googleapis.com/auth/admin.directory.device.mobile.action", "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly"]}, "list": {"id": "directory.mobiledevices.list", "path": "customer/{customerId}/devices/mobile", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "orderBy": {"type": "string", "enum": ["deviceId", "email", "lastSync", "model", "name", "os", "status", "type"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}, "query": {"type": "string", "location": "query"}, "sortOrder": {"type": "string", "enum": ["ASCENDING", "DESCENDING"], "location": "query"}}, "response": {"$ref": "MobileDevices"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.device.mobile", "https://www.googleapis.com/auth/admin.directory.device.mobile.action", "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly"]}}}', true));
+ $this->orgunits = new Google_OrgunitsServiceResource($this, $this->serviceName, 'orgunits', json_decode('{"methods": {"delete": {"id": "directory.orgunits.delete", "path": "customer/{customerId}/orgunits{/orgUnitPath*}", "httpMethod": "DELETE", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "orgUnitPath": {"type": "string", "required": true, "repeated": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/admin.directory.orgunit"]}, "get": {"id": "directory.orgunits.get", "path": "customer/{customerId}/orgunits{/orgUnitPath*}", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "orgUnitPath": {"type": "string", "required": true, "repeated": true, "location": "path"}}, "response": {"$ref": "OrgUnit"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.orgunit", "https://www.googleapis.com/auth/admin.directory.orgunit.readonly"]}, "insert": {"id": "directory.orgunits.insert", "path": "customer/{customerId}/orgunits", "httpMethod": "POST", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "OrgUnit"}, "response": {"$ref": "OrgUnit"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.orgunit"]}, "list": {"id": "directory.orgunits.list", "path": "customer/{customerId}/orgunits", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "orgUnitPath": {"type": "string", "default": "", "location": "query"}, "type": {"type": "string", "enum": ["all", "children"], "location": "query"}}, "response": {"$ref": "OrgUnits"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.orgunit", "https://www.googleapis.com/auth/admin.directory.orgunit.readonly"]}, "patch": {"id": "directory.orgunits.patch", "path": "customer/{customerId}/orgunits{/orgUnitPath*}", "httpMethod": "PATCH", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "orgUnitPath": {"type": "string", "required": true, "repeated": true, "location": "path"}}, "request": {"$ref": "OrgUnit"}, "response": {"$ref": "OrgUnit"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.orgunit"]}, "update": {"id": "directory.orgunits.update", "path": "customer/{customerId}/orgunits{/orgUnitPath*}", "httpMethod": "PUT", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "orgUnitPath": {"type": "string", "required": true, "repeated": true, "location": "path"}}, "request": {"$ref": "OrgUnit"}, "response": {"$ref": "OrgUnit"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.orgunit"]}}}', true));
+ $this->users = new Google_UsersServiceResource($this, $this->serviceName, 'users', json_decode('{"methods": {"delete": {"id": "directory.users.delete", "path": "users/{userKey}", "httpMethod": "DELETE", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}, "get": {"id": "directory.users.get", "path": "users/{userKey}", "httpMethod": "GET", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "User"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user", "https://www.googleapis.com/auth/admin.directory.user.readonly"]}, "insert": {"id": "directory.users.insert", "path": "users", "httpMethod": "POST", "request": {"$ref": "User"}, "response": {"$ref": "User"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}, "list": {"id": "directory.users.list", "path": "users", "httpMethod": "GET", "parameters": {"customer": {"type": "string", "location": "query"}, "domain": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "500", "location": "query"}, "orderBy": {"type": "string", "enum": ["email", "familyName", "givenName"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "query": {"type": "string", "location": "query"}, "showDeleted": {"type": "string", "location": "query"}, "sortOrder": {"type": "string", "enum": ["ASCENDING", "DESCENDING"], "location": "query"}}, "response": {"$ref": "Users"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user", "https://www.googleapis.com/auth/admin.directory.user.readonly"]}, "makeAdmin": {"id": "directory.users.makeAdmin", "path": "users/{userKey}/makeAdmin", "httpMethod": "POST", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "UserMakeAdmin"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}, "patch": {"id": "directory.users.patch", "path": "users/{userKey}", "httpMethod": "PATCH", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "User"}, "response": {"$ref": "User"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}, "undelete": {"id": "directory.users.undelete", "path": "users/{userKey}/undelete", "httpMethod": "POST", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "UserUndelete"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}, "update": {"id": "directory.users.update", "path": "users/{userKey}", "httpMethod": "PUT", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "User"}, "response": {"$ref": "User"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}}}', true));
+ $this->users_aliases = new Google_UsersAliasesServiceResource($this, $this->serviceName, 'aliases', json_decode('{"methods": {"delete": {"id": "directory.users.aliases.delete", "path": "users/{userKey}/aliases/{alias}", "httpMethod": "DELETE", "parameters": {"alias": {"type": "string", "required": true, "location": "path"}, "userKey": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user", "https://www.googleapis.com/auth/admin.directory.user.alias"]}, "insert": {"id": "directory.users.aliases.insert", "path": "users/{userKey}/aliases", "httpMethod": "POST", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Alias"}, "response": {"$ref": "Alias"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user", "https://www.googleapis.com/auth/admin.directory.user.alias"]}, "list": {"id": "directory.users.aliases.list", "path": "users/{userKey}/aliases", "httpMethod": "GET", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Aliases"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user", "https://www.googleapis.com/auth/admin.directory.user.alias", "https://www.googleapis.com/auth/admin.directory.user.alias.readonly", "https://www.googleapis.com/auth/admin.directory.user.readonly"]}}}', true));
+ $this->users_photos = new Google_UsersPhotosServiceResource($this, $this->serviceName, 'photos', json_decode('{"methods": {"delete": {"id": "directory.users.photos.delete", "path": "users/{userKey}/photos/thumbnail", "httpMethod": "DELETE", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}, "get": {"id": "directory.users.photos.get", "path": "users/{userKey}/photos/thumbnail", "httpMethod": "GET", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "UserPhoto"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user", "https://www.googleapis.com/auth/admin.directory.user.readonly"]}, "patch": {"id": "directory.users.photos.patch", "path": "users/{userKey}/photos/thumbnail", "httpMethod": "PATCH", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "UserPhoto"}, "response": {"$ref": "UserPhoto"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}, "update": {"id": "directory.users.photos.update", "path": "users/{userKey}/photos/thumbnail", "httpMethod": "PUT", "parameters": {"userKey": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "UserPhoto"}, "response": {"$ref": "UserPhoto"}, "scopes": ["https://www.googleapis.com/auth/admin.directory.user"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Alias extends Google_Model {
+ public $alias;
+ public $id;
+ public $kind;
+ public $primaryEmail;
+ public function setAlias($alias) {
+ $this->alias = $alias;
+ }
+ public function getAlias() {
+ return $this->alias;
+ }
+ public function setId($id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPrimaryEmail($primaryEmail) {
+ $this->primaryEmail = $primaryEmail;
+ }
+ public function getPrimaryEmail() {
+ return $this->primaryEmail;
+ }
+}
+
+class Google_Aliases extends Google_Model {
+ protected $__aliasesType = 'Google_Alias';
+ protected $__aliasesDataType = 'array';
+ public $aliases;
+ public $kind;
+ public function setAliases(/* array(Google_Alias) */ $aliases) {
+ $this->assertIsArray($aliases, 'Google_Alias', __METHOD__);
+ $this->aliases = $aliases;
+ }
+ public function getAliases() {
+ return $this->aliases;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_ChromeOsDevice extends Google_Model {
+ public $annotatedLocation;
+ public $annotatedUser;
+ public $bootMode;
+ public $deviceId;
+ public $firmwareVersion;
+ public $kind;
+ public $lastEnrollmentTime;
+ public $lastSync;
+ public $macAddress;
+ public $meid;
+ public $model;
+ public $notes;
+ public $orderNumber;
+ public $orgUnitPath;
+ public $osVersion;
+ public $platformVersion;
+ public $serialNumber;
+ public $status;
+ public $supportEndDate;
+ public $willAutoRenew;
+ public function setAnnotatedLocation($annotatedLocation) {
+ $this->annotatedLocation = $annotatedLocation;
+ }
+ public function getAnnotatedLocation() {
+ return $this->annotatedLocation;
+ }
+ public function setAnnotatedUser($annotatedUser) {
+ $this->annotatedUser = $annotatedUser;
+ }
+ public function getAnnotatedUser() {
+ return $this->annotatedUser;
+ }
+ public function setBootMode($bootMode) {
+ $this->bootMode = $bootMode;
+ }
+ public function getBootMode() {
+ return $this->bootMode;
+ }
+ public function setDeviceId($deviceId) {
+ $this->deviceId = $deviceId;
+ }
+ public function getDeviceId() {
+ return $this->deviceId;
+ }
+ public function setFirmwareVersion($firmwareVersion) {
+ $this->firmwareVersion = $firmwareVersion;
+ }
+ public function getFirmwareVersion() {
+ return $this->firmwareVersion;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastEnrollmentTime($lastEnrollmentTime) {
+ $this->lastEnrollmentTime = $lastEnrollmentTime;
+ }
+ public function getLastEnrollmentTime() {
+ return $this->lastEnrollmentTime;
+ }
+ public function setLastSync($lastSync) {
+ $this->lastSync = $lastSync;
+ }
+ public function getLastSync() {
+ return $this->lastSync;
+ }
+ public function setMacAddress($macAddress) {
+ $this->macAddress = $macAddress;
+ }
+ public function getMacAddress() {
+ return $this->macAddress;
+ }
+ public function setMeid($meid) {
+ $this->meid = $meid;
+ }
+ public function getMeid() {
+ return $this->meid;
+ }
+ public function setModel($model) {
+ $this->model = $model;
+ }
+ public function getModel() {
+ return $this->model;
+ }
+ public function setNotes($notes) {
+ $this->notes = $notes;
+ }
+ public function getNotes() {
+ return $this->notes;
+ }
+ public function setOrderNumber($orderNumber) {
+ $this->orderNumber = $orderNumber;
+ }
+ public function getOrderNumber() {
+ return $this->orderNumber;
+ }
+ public function setOrgUnitPath($orgUnitPath) {
+ $this->orgUnitPath = $orgUnitPath;
+ }
+ public function getOrgUnitPath() {
+ return $this->orgUnitPath;
+ }
+ public function setOsVersion($osVersion) {
+ $this->osVersion = $osVersion;
+ }
+ public function getOsVersion() {
+ return $this->osVersion;
+ }
+ public function setPlatformVersion($platformVersion) {
+ $this->platformVersion = $platformVersion;
+ }
+ public function getPlatformVersion() {
+ return $this->platformVersion;
+ }
+ public function setSerialNumber($serialNumber) {
+ $this->serialNumber = $serialNumber;
+ }
+ public function getSerialNumber() {
+ return $this->serialNumber;
+ }
+ public function setStatus($status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setSupportEndDate($supportEndDate) {
+ $this->supportEndDate = $supportEndDate;
+ }
+ public function getSupportEndDate() {
+ return $this->supportEndDate;
+ }
+ public function setWillAutoRenew($willAutoRenew) {
+ $this->willAutoRenew = $willAutoRenew;
+ }
+ public function getWillAutoRenew() {
+ return $this->willAutoRenew;
+ }
+}
+
+class Google_ChromeOsDevices extends Google_Model {
+ protected $__chromeosdevicesType = 'Google_ChromeOsDevice';
+ protected $__chromeosdevicesDataType = 'array';
+ public $chromeosdevices;
+ public $kind;
+ public $nextPageToken;
+ public function setChromeosdevices(/* array(Google_ChromeOsDevice) */ $chromeosdevices) {
+ $this->assertIsArray($chromeosdevices, 'Google_ChromeOsDevice', __METHOD__);
+ $this->chromeosdevices = $chromeosdevices;
+ }
+ public function getChromeosdevices() {
+ return $this->chromeosdevices;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken($nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Group extends Google_Model {
+ public $adminCreated;
+ public $aliases;
+ public $description;
+ public $email;
+ public $id;
+ public $kind;
+ public $name;
+ public $nonEditableAliases;
+ public function setAdminCreated($adminCreated) {
+ $this->adminCreated = $adminCreated;
+ }
+ public function getAdminCreated() {
+ return $this->adminCreated;
+ }
+ public function setAliases(/* array(Google_string) */ $aliases) {
+ $this->assertIsArray($aliases, 'Google_string', __METHOD__);
+ $this->aliases = $aliases;
+ }
+ public function getAliases() {
+ return $this->aliases;
+ }
+ public function setDescription($description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEmail($email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setId($id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName($name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNonEditableAliases(/* array(Google_string) */ $nonEditableAliases) {
+ $this->assertIsArray($nonEditableAliases, 'Google_string', __METHOD__);
+ $this->nonEditableAliases = $nonEditableAliases;
+ }
+ public function getNonEditableAliases() {
+ return $this->nonEditableAliases;
+ }
+}
+
+class Google_Groups extends Google_Model {
+ protected $__groupsType = 'Google_Group';
+ protected $__groupsDataType = 'array';
+ public $groups;
+ public $kind;
+ public $nextPageToken;
+ public function setGroups(/* array(Google_Group) */ $groups) {
+ $this->assertIsArray($groups, 'Google_Group', __METHOD__);
+ $this->groups = $groups;
+ }
+ public function getGroups() {
+ return $this->groups;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken($nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Member extends Google_Model {
+ public $email;
+ public $id;
+ public $kind;
+ public $role;
+ public $type;
+ public function setEmail($email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setId($id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRole($role) {
+ $this->role = $role;
+ }
+ public function getRole() {
+ return $this->role;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Members extends Google_Model {
+ public $kind;
+ protected $__membersType = 'Google_Member';
+ protected $__membersDataType = 'array';
+ public $members;
+ public $nextPageToken;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMembers(/* array(Google_Member) */ $members) {
+ $this->assertIsArray($members, 'Google_Member', __METHOD__);
+ $this->members = $members;
+ }
+ public function getMembers() {
+ return $this->members;
+ }
+ public function setNextPageToken($nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_MobileDevice extends Google_Model {
+ protected $__applicationsType = 'Google_MobileDeviceApplications';
+ protected $__applicationsDataType = 'array';
+ public $applications;
+ public $deviceId;
+ public $email;
+ public $firstSync;
+ public $hardwareId;
+ public $kind;
+ public $lastSync;
+ public $model;
+ public $name;
+ public $os;
+ public $resourceId;
+ public $status;
+ public $type;
+ public $userAgent;
+ public function setApplications(/* array(Google_MobileDeviceApplications) */ $applications) {
+ $this->assertIsArray($applications, 'Google_MobileDeviceApplications', __METHOD__);
+ $this->applications = $applications;
+ }
+ public function getApplications() {
+ return $this->applications;
+ }
+ public function setDeviceId($deviceId) {
+ $this->deviceId = $deviceId;
+ }
+ public function getDeviceId() {
+ return $this->deviceId;
+ }
+ public function setEmail(/* array(Google_string) */ $email) {
+ $this->assertIsArray($email, 'Google_string', __METHOD__);
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setFirstSync($firstSync) {
+ $this->firstSync = $firstSync;
+ }
+ public function getFirstSync() {
+ return $this->firstSync;
+ }
+ public function setHardwareId($hardwareId) {
+ $this->hardwareId = $hardwareId;
+ }
+ public function getHardwareId() {
+ return $this->hardwareId;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastSync($lastSync) {
+ $this->lastSync = $lastSync;
+ }
+ public function getLastSync() {
+ return $this->lastSync;
+ }
+ public function setModel($model) {
+ $this->model = $model;
+ }
+ public function getModel() {
+ return $this->model;
+ }
+ public function setName(/* array(Google_string) */ $name) {
+ $this->assertIsArray($name, 'Google_string', __METHOD__);
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOs($os) {
+ $this->os = $os;
+ }
+ public function getOs() {
+ return $this->os;
+ }
+ public function setResourceId($resourceId) {
+ $this->resourceId = $resourceId;
+ }
+ public function getResourceId() {
+ return $this->resourceId;
+ }
+ public function setStatus($status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUserAgent($userAgent) {
+ $this->userAgent = $userAgent;
+ }
+ public function getUserAgent() {
+ return $this->userAgent;
+ }
+}
+
+class Google_MobileDeviceAction extends Google_Model {
+ public $action;
+ public function setAction($action) {
+ $this->action = $action;
+ }
+ public function getAction() {
+ return $this->action;
+ }
+}
+
+class Google_MobileDeviceApplications extends Google_Model {
+ public $displayName;
+ public $packageName;
+ public $permission;
+ public $versionCode;
+ public $versionName;
+ public function setDisplayName($displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setPackageName($packageName) {
+ $this->packageName = $packageName;
+ }
+ public function getPackageName() {
+ return $this->packageName;
+ }
+ public function setPermission(/* array(Google_string) */ $permission) {
+ $this->assertIsArray($permission, 'Google_string', __METHOD__);
+ $this->permission = $permission;
+ }
+ public function getPermission() {
+ return $this->permission;
+ }
+ public function setVersionCode($versionCode) {
+ $this->versionCode = $versionCode;
+ }
+ public function getVersionCode() {
+ return $this->versionCode;
+ }
+ public function setVersionName($versionName) {
+ $this->versionName = $versionName;
+ }
+ public function getVersionName() {
+ return $this->versionName;
+ }
+}
+
+class Google_MobileDevices extends Google_Model {
+ public $kind;
+ protected $__mobiledevicesType = 'Google_MobileDevice';
+ protected $__mobiledevicesDataType = 'array';
+ public $mobiledevices;
+ public $nextPageToken;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMobiledevices(/* array(Google_MobileDevice) */ $mobiledevices) {
+ $this->assertIsArray($mobiledevices, 'Google_MobileDevice', __METHOD__);
+ $this->mobiledevices = $mobiledevices;
+ }
+ public function getMobiledevices() {
+ return $this->mobiledevices;
+ }
+ public function setNextPageToken($nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_OrgUnit extends Google_Model {
+ public $blockInheritance;
+ public $description;
+ public $kind;
+ public $name;
+ public $orgUnitPath;
+ public $parentOrgUnitPath;
+ public function setBlockInheritance($blockInheritance) {
+ $this->blockInheritance = $blockInheritance;
+ }
+ public function getBlockInheritance() {
+ return $this->blockInheritance;
+ }
+ public function setDescription($description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName($name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOrgUnitPath($orgUnitPath) {
+ $this->orgUnitPath = $orgUnitPath;
+ }
+ public function getOrgUnitPath() {
+ return $this->orgUnitPath;
+ }
+ public function setParentOrgUnitPath($parentOrgUnitPath) {
+ $this->parentOrgUnitPath = $parentOrgUnitPath;
+ }
+ public function getParentOrgUnitPath() {
+ return $this->parentOrgUnitPath;
+ }
+}
+
+class Google_OrgUnits extends Google_Model {
+ public $kind;
+ protected $__organizationUnitsType = 'Google_OrgUnit';
+ protected $__organizationUnitsDataType = 'array';
+ public $organizationUnits;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOrganizationUnits(/* array(Google_OrgUnit) */ $organizationUnits) {
+ $this->assertIsArray($organizationUnits, 'Google_OrgUnit', __METHOD__);
+ $this->organizationUnits = $organizationUnits;
+ }
+ public function getOrganizationUnits() {
+ return $this->organizationUnits;
+ }
+}
+
+class Google_User extends Google_Model {
+ protected $__addressesType = 'Google_UserAddress';
+ protected $__addressesDataType = 'array';
+ public $addresses;
+ public $agreedToTerms;
+ public $aliases;
+ public $changePasswordAtNextLogin;
+ public $creationTime;
+ public $customerId;
+ protected $__emailsType = 'Google_UserEmail';
+ protected $__emailsDataType = 'array';
+ public $emails;
+ protected $__externalIdsType = 'Google_UserExternalId';
+ protected $__externalIdsDataType = 'array';
+ public $externalIds;
+ public $hashFunction;
+ public $id;
+ protected $__imsType = 'Google_UserIm';
+ protected $__imsDataType = 'array';
+ public $ims;
+ public $includeInGlobalAddressList;
+ public $ipWhitelisted;
+ public $isAdmin;
+ public $isDelegatedAdmin;
+ public $isMailboxSetup;
+ public $kind;
+ public $lastLoginTime;
+ protected $__nameType = 'Google_UserName';
+ protected $__nameDataType = '';
+ public $name;
+ public $nonEditableAliases;
+ public $orgUnitPath;
+ protected $__organizationsType = 'Google_UserOrganization';
+ protected $__organizationsDataType = 'array';
+ public $organizations;
+ public $password;
+ protected $__phonesType = 'Google_UserPhone';
+ protected $__phonesDataType = 'array';
+ public $phones;
+ public $primaryEmail;
+ protected $__relationsType = 'Google_UserRelation';
+ protected $__relationsDataType = 'array';
+ public $relations;
+ public $suspended;
+ public $suspensionReason;
+ public $thumbnailPhotoUrl;
+ public function setAddresses(/* array(Google_UserAddress) */ $addresses) {
+ $this->assertIsArray($addresses, 'Google_UserAddress', __METHOD__);
+ $this->addresses = $addresses;
+ }
+ public function getAddresses() {
+ return $this->addresses;
+ }
+ public function setAgreedToTerms($agreedToTerms) {
+ $this->agreedToTerms = $agreedToTerms;
+ }
+ public function getAgreedToTerms() {
+ return $this->agreedToTerms;
+ }
+ public function setAliases(/* array(Google_string) */ $aliases) {
+ $this->assertIsArray($aliases, 'Google_string', __METHOD__);
+ $this->aliases = $aliases;
+ }
+ public function getAliases() {
+ return $this->aliases;
+ }
+ public function setChangePasswordAtNextLogin($changePasswordAtNextLogin) {
+ $this->changePasswordAtNextLogin = $changePasswordAtNextLogin;
+ }
+ public function getChangePasswordAtNextLogin() {
+ return $this->changePasswordAtNextLogin;
+ }
+ public function setCreationTime($creationTime) {
+ $this->creationTime = $creationTime;
+ }
+ public function getCreationTime() {
+ return $this->creationTime;
+ }
+ public function setCustomerId($customerId) {
+ $this->customerId = $customerId;
+ }
+ public function getCustomerId() {
+ return $this->customerId;
+ }
+ public function setEmails(/* array(Google_UserEmail) */ $emails) {
+ $this->assertIsArray($emails, 'Google_UserEmail', __METHOD__);
+ $this->emails = $emails;
+ }
+ public function getEmails() {
+ return $this->emails;
+ }
+ public function setExternalIds(/* array(Google_UserExternalId) */ $externalIds) {
+ $this->assertIsArray($externalIds, 'Google_UserExternalId', __METHOD__);
+ $this->externalIds = $externalIds;
+ }
+ public function getExternalIds() {
+ return $this->externalIds;
+ }
+ public function setHashFunction($hashFunction) {
+ $this->hashFunction = $hashFunction;
+ }
+ public function getHashFunction() {
+ return $this->hashFunction;
+ }
+ public function setId($id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIms(/* array(Google_UserIm) */ $ims) {
+ $this->assertIsArray($ims, 'Google_UserIm', __METHOD__);
+ $this->ims = $ims;
+ }
+ public function getIms() {
+ return $this->ims;
+ }
+ public function setIncludeInGlobalAddressList($includeInGlobalAddressList) {
+ $this->includeInGlobalAddressList = $includeInGlobalAddressList;
+ }
+ public function getIncludeInGlobalAddressList() {
+ return $this->includeInGlobalAddressList;
+ }
+ public function setIpWhitelisted($ipWhitelisted) {
+ $this->ipWhitelisted = $ipWhitelisted;
+ }
+ public function getIpWhitelisted() {
+ return $this->ipWhitelisted;
+ }
+ public function setIsAdmin($isAdmin) {
+ $this->isAdmin = $isAdmin;
+ }
+ public function getIsAdmin() {
+ return $this->isAdmin;
+ }
+ public function setIsDelegatedAdmin($isDelegatedAdmin) {
+ $this->isDelegatedAdmin = $isDelegatedAdmin;
+ }
+ public function getIsDelegatedAdmin() {
+ return $this->isDelegatedAdmin;
+ }
+ public function setIsMailboxSetup($isMailboxSetup) {
+ $this->isMailboxSetup = $isMailboxSetup;
+ }
+ public function getIsMailboxSetup() {
+ return $this->isMailboxSetup;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastLoginTime($lastLoginTime) {
+ $this->lastLoginTime = $lastLoginTime;
+ }
+ public function getLastLoginTime() {
+ return $this->lastLoginTime;
+ }
+ public function setName(Google_UserName $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNonEditableAliases(/* array(Google_string) */ $nonEditableAliases) {
+ $this->assertIsArray($nonEditableAliases, 'Google_string', __METHOD__);
+ $this->nonEditableAliases = $nonEditableAliases;
+ }
+ public function getNonEditableAliases() {
+ return $this->nonEditableAliases;
+ }
+ public function setOrgUnitPath($orgUnitPath) {
+ $this->orgUnitPath = $orgUnitPath;
+ }
+ public function getOrgUnitPath() {
+ return $this->orgUnitPath;
+ }
+ public function setOrganizations(/* array(Google_UserOrganization) */ $organizations) {
+ $this->assertIsArray($organizations, 'Google_UserOrganization', __METHOD__);
+ $this->organizations = $organizations;
+ }
+ public function getOrganizations() {
+ return $this->organizations;
+ }
+ public function setPassword($password) {
+ $this->password = $password;
+ }
+ public function getPassword() {
+ return $this->password;
+ }
+ public function setPhones(/* array(Google_UserPhone) */ $phones) {
+ $this->assertIsArray($phones, 'Google_UserPhone', __METHOD__);
+ $this->phones = $phones;
+ }
+ public function getPhones() {
+ return $this->phones;
+ }
+ public function setPrimaryEmail($primaryEmail) {
+ $this->primaryEmail = $primaryEmail;
+ }
+ public function getPrimaryEmail() {
+ return $this->primaryEmail;
+ }
+ public function setRelations(/* array(Google_UserRelation) */ $relations) {
+ $this->assertIsArray($relations, 'Google_UserRelation', __METHOD__);
+ $this->relations = $relations;
+ }
+ public function getRelations() {
+ return $this->relations;
+ }
+ public function setSuspended($suspended) {
+ $this->suspended = $suspended;
+ }
+ public function getSuspended() {
+ return $this->suspended;
+ }
+ public function setSuspensionReason($suspensionReason) {
+ $this->suspensionReason = $suspensionReason;
+ }
+ public function getSuspensionReason() {
+ return $this->suspensionReason;
+ }
+ public function setThumbnailPhotoUrl($thumbnailPhotoUrl) {
+ $this->thumbnailPhotoUrl = $thumbnailPhotoUrl;
+ }
+ public function getThumbnailPhotoUrl() {
+ return $this->thumbnailPhotoUrl;
+ }
+}
+
+class Google_UserAddress extends Google_Model {
+ public $country;
+ public $countryCode;
+ public $customType;
+ public $extendedAddress;
+ public $formatted;
+ public $locality;
+ public $poBox;
+ public $postalCode;
+ public $primary;
+ public $region;
+ public $sourceIsStructured;
+ public $streetAddress;
+ public $type;
+ public function setCountry($country) {
+ $this->country = $country;
+ }
+ public function getCountry() {
+ return $this->country;
+ }
+ public function setCountryCode($countryCode) {
+ $this->countryCode = $countryCode;
+ }
+ public function getCountryCode() {
+ return $this->countryCode;
+ }
+ public function setCustomType($customType) {
+ $this->customType = $customType;
+ }
+ public function getCustomType() {
+ return $this->customType;
+ }
+ public function setExtendedAddress($extendedAddress) {
+ $this->extendedAddress = $extendedAddress;
+ }
+ public function getExtendedAddress() {
+ return $this->extendedAddress;
+ }
+ public function setFormatted($formatted) {
+ $this->formatted = $formatted;
+ }
+ public function getFormatted() {
+ return $this->formatted;
+ }
+ public function setLocality($locality) {
+ $this->locality = $locality;
+ }
+ public function getLocality() {
+ return $this->locality;
+ }
+ public function setPoBox($poBox) {
+ $this->poBox = $poBox;
+ }
+ public function getPoBox() {
+ return $this->poBox;
+ }
+ public function setPostalCode($postalCode) {
+ $this->postalCode = $postalCode;
+ }
+ public function getPostalCode() {
+ return $this->postalCode;
+ }
+ public function setPrimary($primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setRegion($region) {
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+ public function setSourceIsStructured($sourceIsStructured) {
+ $this->sourceIsStructured = $sourceIsStructured;
+ }
+ public function getSourceIsStructured() {
+ return $this->sourceIsStructured;
+ }
+ public function setStreetAddress($streetAddress) {
+ $this->streetAddress = $streetAddress;
+ }
+ public function getStreetAddress() {
+ return $this->streetAddress;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_UserEmail extends Google_Model {
+ public $address;
+ public $customType;
+ public $primary;
+ public $type;
+ public function setAddress($address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setCustomType($customType) {
+ $this->customType = $customType;
+ }
+ public function getCustomType() {
+ return $this->customType;
+ }
+ public function setPrimary($primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_UserExternalId extends Google_Model {
+ public $customType;
+ public $type;
+ public $value;
+ public function setCustomType($customType) {
+ $this->customType = $customType;
+ }
+ public function getCustomType() {
+ return $this->customType;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue($value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_UserIm extends Google_Model {
+ public $customProtocol;
+ public $customType;
+ public $im;
+ public $primary;
+ public $protocol;
+ public $type;
+ public function setCustomProtocol($customProtocol) {
+ $this->customProtocol = $customProtocol;
+ }
+ public function getCustomProtocol() {
+ return $this->customProtocol;
+ }
+ public function setCustomType($customType) {
+ $this->customType = $customType;
+ }
+ public function getCustomType() {
+ return $this->customType;
+ }
+ public function setIm($im) {
+ $this->im = $im;
+ }
+ public function getIm() {
+ return $this->im;
+ }
+ public function setPrimary($primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setProtocol($protocol) {
+ $this->protocol = $protocol;
+ }
+ public function getProtocol() {
+ return $this->protocol;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_UserMakeAdmin extends Google_Model {
+ public $status;
+ public function setStatus($status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_UserName extends Google_Model {
+ public $familyName;
+ public $fullName;
+ public $givenName;
+ public function setFamilyName($familyName) {
+ $this->familyName = $familyName;
+ }
+ public function getFamilyName() {
+ return $this->familyName;
+ }
+ public function setFullName($fullName) {
+ $this->fullName = $fullName;
+ }
+ public function getFullName() {
+ return $this->fullName;
+ }
+ public function setGivenName($givenName) {
+ $this->givenName = $givenName;
+ }
+ public function getGivenName() {
+ return $this->givenName;
+ }
+}
+
+class Google_UserOrganization extends Google_Model {
+ public $costCenter;
+ public $customType;
+ public $department;
+ public $description;
+ public $domain;
+ public $location;
+ public $name;
+ public $primary;
+ public $symbol;
+ public $title;
+ public $type;
+ public function setCostCenter($costCenter) {
+ $this->costCenter = $costCenter;
+ }
+ public function getCostCenter() {
+ return $this->costCenter;
+ }
+ public function setCustomType($customType) {
+ $this->customType = $customType;
+ }
+ public function getCustomType() {
+ return $this->customType;
+ }
+ public function setDepartment($department) {
+ $this->department = $department;
+ }
+ public function getDepartment() {
+ return $this->department;
+ }
+ public function setDescription($description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDomain($domain) {
+ $this->domain = $domain;
+ }
+ public function getDomain() {
+ return $this->domain;
+ }
+ public function setLocation($location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setName($name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPrimary($primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setSymbol($symbol) {
+ $this->symbol = $symbol;
+ }
+ public function getSymbol() {
+ return $this->symbol;
+ }
+ public function setTitle($title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_UserPhone extends Google_Model {
+ public $customType;
+ public $primary;
+ public $type;
+ public $value;
+ public function setCustomType($customType) {
+ $this->customType = $customType;
+ }
+ public function getCustomType() {
+ return $this->customType;
+ }
+ public function setPrimary($primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue($value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_UserPhoto extends Google_Model {
+ public $height;
+ public $id;
+ public $kind;
+ public $mimeType;
+ public $photoData;
+ public $primaryEmail;
+ public $width;
+ public function setHeight($height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setId($id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMimeType($mimeType) {
+ $this->mimeType = $mimeType;
+ }
+ public function getMimeType() {
+ return $this->mimeType;
+ }
+ public function setPhotoData($photoData) {
+ $this->photoData = $photoData;
+ }
+ public function getPhotoData() {
+ return $this->photoData;
+ }
+ public function setPrimaryEmail($primaryEmail) {
+ $this->primaryEmail = $primaryEmail;
+ }
+ public function getPrimaryEmail() {
+ return $this->primaryEmail;
+ }
+ public function setWidth($width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_UserRelation extends Google_Model {
+ public $customType;
+ public $type;
+ public $value;
+ public function setCustomType($customType) {
+ $this->customType = $customType;
+ }
+ public function getCustomType() {
+ return $this->customType;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue($value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_UserUndelete extends Google_Model {
+ public $orgUnitPath;
+ public function setOrgUnitPath($orgUnitPath) {
+ $this->orgUnitPath = $orgUnitPath;
+ }
+ public function getOrgUnitPath() {
+ return $this->orgUnitPath;
+ }
+}
+
+class Google_Users extends Google_Model {
+ public $kind;
+ public $nextPageToken;
+ public $trigger_event;
+ protected $__usersType = 'Google_User';
+ protected $__usersDataType = 'array';
+ public $users;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken($nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTrigger_event($trigger_event) {
+ $this->trigger_event = $trigger_event;
+ }
+ public function getTrigger_event() {
+ return $this->trigger_event;
+ }
+ public function setUsers(/* array(Google_User) */ $users) {
+ $this->assertIsArray($users, 'Google_User', __METHOD__);
+ $this->users = $users;
+ }
+ public function getUsers() {
+ return $this->users;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DriveService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DriveService.php
new file mode 100644
index 0000000..66703d0
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_DriveService.php
@@ -0,0 +1,3381 @@
+
+ * $driveService = new Google_DriveService(...);
+ * $about = $driveService->about;
+ *
+ */
+ class Google_AboutServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets the information about the current user along with Drive API settings (about.get)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeSubscribed When calculating the number of remaining change IDs, whether to include shared files and public files the user has opened. When set to false, this counts only change IDs for owned files and any shared or public files that the user has explictly added to a folder in Drive.
+ * @opt_param string maxChangeIdCount Maximum number of remaining change IDs to count
+ * @opt_param string startChangeId Change ID to start counting from when calculating number of remaining change IDs
+ * @return Google_About
+ */
+ public function get($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_About($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "apps" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $apps = $driveService->apps;
+ *
+ */
+ class Google_AppsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets a specific app. (apps.get)
+ *
+ * @param string $appId The ID of the app.
+ * @param array $optParams Optional parameters.
+ * @return Google_App
+ */
+ public function get($appId, $optParams = array()) {
+ $params = array('appId' => $appId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_App($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists a user's installed apps. (apps.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_AppList
+ */
+ public function listApps($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AppList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "changes" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $changes = $driveService->changes;
+ *
+ */
+ class Google_ChangesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets a specific change. (changes.get)
+ *
+ * @param string $changeId The ID of the change.
+ * @param array $optParams Optional parameters.
+ * @return Google_Change
+ */
+ public function get($changeId, $optParams = array()) {
+ $params = array('changeId' => $changeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Change($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists the changes for a user. (changes.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeDeleted Whether to include deleted items.
+ * @opt_param bool includeSubscribed Whether to include shared files and public files the user has opened. When set to false, the list will include owned files plus any shared or public files the user has explictly added to a folder in Drive.
+ * @opt_param int maxResults Maximum number of changes to return.
+ * @opt_param string pageToken Page token for changes.
+ * @opt_param string startChangeId Change ID to start listing changes from.
+ * @return Google_ChangeList
+ */
+ public function listChanges($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ChangeList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Subscribe to changes for a user. (changes.watch)
+ *
+ * @param Google_Channel $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeDeleted Whether to include deleted items.
+ * @opt_param bool includeSubscribed Whether to include shared files and public files the user has opened. When set to false, the list will include owned files plus any shared or public files the user has explictly added to a folder in Drive.
+ * @opt_param int maxResults Maximum number of changes to return.
+ * @opt_param string pageToken Page token for changes.
+ * @opt_param string startChangeId Change ID to start listing changes from.
+ * @return Google_Channel
+ */
+ public function watch(Google_Channel $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('watch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Channel($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "channels" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $channels = $driveService->channels;
+ *
+ */
+ class Google_ChannelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * (channels.stop)
+ *
+ * @param Google_Channel $postBody
+ * @param array $optParams Optional parameters.
+ */
+ public function stop(Google_Channel $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('stop', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "children" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $children = $driveService->children;
+ *
+ */
+ class Google_ChildrenServiceResource extends Google_ServiceResource {
+
+ /**
+ * Removes a child from a folder. (children.delete)
+ *
+ * @param string $folderId The ID of the folder.
+ * @param string $childId The ID of the child.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($folderId, $childId, $optParams = array()) {
+ $params = array('folderId' => $folderId, 'childId' => $childId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a specific child reference. (children.get)
+ *
+ * @param string $folderId The ID of the folder.
+ * @param string $childId The ID of the child.
+ * @param array $optParams Optional parameters.
+ * @return Google_ChildReference
+ */
+ public function get($folderId, $childId, $optParams = array()) {
+ $params = array('folderId' => $folderId, 'childId' => $childId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_ChildReference($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Inserts a file into a folder. (children.insert)
+ *
+ * @param string $folderId The ID of the folder.
+ * @param Google_ChildReference $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_ChildReference
+ */
+ public function insert($folderId, Google_ChildReference $postBody, $optParams = array()) {
+ $params = array('folderId' => $folderId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_ChildReference($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists a folder's children. (children.list)
+ *
+ * @param string $folderId The ID of the folder.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of children to return.
+ * @opt_param string pageToken Page token for children.
+ * @opt_param string q Query string for searching children.
+ * @return Google_ChildList
+ */
+ public function listChildren($folderId, $optParams = array()) {
+ $params = array('folderId' => $folderId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ChildList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "comments" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $comments = $driveService->comments;
+ *
+ */
+ class Google_CommentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a comment. (comments.delete)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($fileId, $commentId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a comment by ID. (comments.get)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeDeleted If set, this will succeed when retrieving a deleted comment, and will include any deleted replies.
+ * @return Google_Comment
+ */
+ public function get($fileId, $commentId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new comment on the given file. (comments.insert)
+ *
+ * @param string $fileId The ID of the file.
+ * @param Google_Comment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Comment
+ */
+ public function insert($fileId, Google_Comment $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists a file's comments. (comments.list)
+ *
+ * @param string $fileId The ID of the file.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeDeleted If set, all comments and replies, including deleted comments and replies (with content stripped) will be returned.
+ * @opt_param int maxResults The maximum number of discussions to include in the response, used for paging.
+ * @opt_param string pageToken The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @opt_param string updatedMin Only discussions that were updated after this timestamp will be returned. Formatted as an RFC 3339 timestamp.
+ * @return Google_CommentList
+ */
+ public function listComments($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing comment. This method supports patch semantics. (comments.patch)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param Google_Comment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Comment
+ */
+ public function patch($fileId, $commentId, Google_Comment $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing comment. (comments.update)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param Google_Comment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Comment
+ */
+ public function update($fileId, $commentId, Google_Comment $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "files" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $files = $driveService->files;
+ *
+ */
+ class Google_FilesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Creates a copy of the specified file. (files.copy)
+ *
+ * @param string $fileId The ID of the file to copy.
+ * @param Google_DriveFile $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format.
+ * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
+ * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
+ * @opt_param bool pinned Whether to pin the head revision of the new copy.
+ * @opt_param string timedTextLanguage The language of the timed text.
+ * @opt_param string timedTextTrackName The timed text track name.
+ * @opt_param string visibility The visibility of the new file. This parameter is only relevant when the source is not a native Google Doc and convert=false.
+ * @return Google_DriveFile
+ */
+ public function copy($fileId, Google_DriveFile $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('copy', array($params));
+ if ($this->useObjects()) {
+ return new Google_DriveFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Permanently deletes a file by ID. Skips the trash. (files.delete)
+ *
+ * @param string $fileId The ID of the file to delete.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a file's metadata by ID. (files.get)
+ *
+ * @param string $fileId The ID for the file in question.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection This parameter is deprecated and has no function.
+ * @opt_param bool updateViewedDate Whether to update the view date after successfully retrieving the file.
+ * @return Google_DriveFile
+ */
+ public function get($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_DriveFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Insert a new file. (files.insert)
+ *
+ * @param Google_DriveFile $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format.
+ * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
+ * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
+ * @opt_param bool pinned Whether to pin the head revision of the uploaded file.
+ * @opt_param string timedTextLanguage The language of the timed text.
+ * @opt_param string timedTextTrackName The timed text track name.
+ * @opt_param bool useContentAsIndexableText Whether to use the content as indexable text.
+ * @opt_param string visibility The visibility of the new file. This parameter is only relevant when convert=false.
+ * @return Google_DriveFile
+ */
+ public function insert(Google_DriveFile $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_DriveFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists the user's files. (files.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of files to return.
+ * @opt_param string pageToken Page token for files.
+ * @opt_param string projection This parameter is deprecated and has no function.
+ * @opt_param string q Query string for searching files.
+ * @return Google_FileList
+ */
+ public function listFiles($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_FileList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates file metadata and/or content. This method supports patch semantics. (files.patch)
+ *
+ * @param string $fileId The ID of the file to update.
+ * @param Google_DriveFile $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format.
+ * @opt_param bool newRevision Whether a blob upload should create a new revision. If not set or false, the blob data in the current head revision is replaced. If true, a new blob is created as head revision, and previous revisions are preserved (causing increased use of the user's data storage quota).
+ * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
+ * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
+ * @opt_param bool pinned Whether to pin the new revision.
+ * @opt_param bool setModifiedDate Whether to set the modified date with the supplied modified date.
+ * @opt_param string timedTextLanguage The language of the timed text.
+ * @opt_param string timedTextTrackName The timed text track name.
+ * @opt_param bool updateViewedDate Whether to update the view date after successfully updating the file.
+ * @opt_param bool useContentAsIndexableText Whether to use the content as indexable text.
+ * @return Google_DriveFile
+ */
+ public function patch($fileId, Google_DriveFile $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_DriveFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Set the file's updated time to the current server time. (files.touch)
+ *
+ * @param string $fileId The ID of the file to update.
+ * @param array $optParams Optional parameters.
+ * @return Google_DriveFile
+ */
+ public function touch($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('touch', array($params));
+ if ($this->useObjects()) {
+ return new Google_DriveFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Moves a file to the trash. (files.trash)
+ *
+ * @param string $fileId The ID of the file to trash.
+ * @param array $optParams Optional parameters.
+ * @return Google_DriveFile
+ */
+ public function trash($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('trash', array($params));
+ if ($this->useObjects()) {
+ return new Google_DriveFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Restores a file from the trash. (files.untrash)
+ *
+ * @param string $fileId The ID of the file to untrash.
+ * @param array $optParams Optional parameters.
+ * @return Google_DriveFile
+ */
+ public function untrash($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('untrash', array($params));
+ if ($this->useObjects()) {
+ return new Google_DriveFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates file metadata and/or content. (files.update)
+ *
+ * @param string $fileId The ID of the file to update.
+ * @param Google_DriveFile $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format.
+ * @opt_param bool newRevision Whether a blob upload should create a new revision. If not set or false, the blob data in the current head revision is replaced. If true, a new blob is created as head revision, and previous revisions are preserved (causing increased use of the user's data storage quota).
+ * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
+ * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
+ * @opt_param bool pinned Whether to pin the new revision.
+ * @opt_param bool setModifiedDate Whether to set the modified date with the supplied modified date.
+ * @opt_param string timedTextLanguage The language of the timed text.
+ * @opt_param string timedTextTrackName The timed text track name.
+ * @opt_param bool updateViewedDate Whether to update the view date after successfully updating the file.
+ * @opt_param bool useContentAsIndexableText Whether to use the content as indexable text.
+ * @return Google_DriveFile
+ */
+ public function update($fileId, Google_DriveFile $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_DriveFile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Subscribe to changes on a file (files.watch)
+ *
+ * @param string $fileId The ID for the file in question.
+ * @param Google_Channel $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection This parameter is deprecated and has no function.
+ * @opt_param bool updateViewedDate Whether to update the view date after successfully retrieving the file.
+ * @return Google_Channel
+ */
+ public function watch($fileId, Google_Channel $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('watch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Channel($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "parents" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $parents = $driveService->parents;
+ *
+ */
+ class Google_ParentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Removes a parent from a file. (parents.delete)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $parentId The ID of the parent.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($fileId, $parentId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'parentId' => $parentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a specific parent reference. (parents.get)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $parentId The ID of the parent.
+ * @param array $optParams Optional parameters.
+ * @return Google_ParentReference
+ */
+ public function get($fileId, $parentId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'parentId' => $parentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_ParentReference($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Adds a parent folder for a file. (parents.insert)
+ *
+ * @param string $fileId The ID of the file.
+ * @param Google_ParentReference $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_ParentReference
+ */
+ public function insert($fileId, Google_ParentReference $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_ParentReference($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists a file's parents. (parents.list)
+ *
+ * @param string $fileId The ID of the file.
+ * @param array $optParams Optional parameters.
+ * @return Google_ParentList
+ */
+ public function listParents($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ParentList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "permissions" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $permissions = $driveService->permissions;
+ *
+ */
+ class Google_PermissionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a permission from a file. (permissions.delete)
+ *
+ * @param string $fileId The ID for the file.
+ * @param string $permissionId The ID for the permission.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($fileId, $permissionId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'permissionId' => $permissionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a permission by ID. (permissions.get)
+ *
+ * @param string $fileId The ID for the file.
+ * @param string $permissionId The ID for the permission.
+ * @param array $optParams Optional parameters.
+ * @return Google_Permission
+ */
+ public function get($fileId, $permissionId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'permissionId' => $permissionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Permission($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Inserts a permission for a file. (permissions.insert)
+ *
+ * @param string $fileId The ID for the file.
+ * @param Google_Permission $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string emailMessage A custom message to include in notification emails.
+ * @opt_param bool sendNotificationEmails Whether to send notification emails when sharing to users or groups.
+ * @return Google_Permission
+ */
+ public function insert($fileId, Google_Permission $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Permission($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists a file's permissions. (permissions.list)
+ *
+ * @param string $fileId The ID for the file.
+ * @param array $optParams Optional parameters.
+ * @return Google_PermissionList
+ */
+ public function listPermissions($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PermissionList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a permission. This method supports patch semantics. (permissions.patch)
+ *
+ * @param string $fileId The ID for the file.
+ * @param string $permissionId The ID for the permission.
+ * @param Google_Permission $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool transferOwnership Whether changing a role to 'owner' should also downgrade the current owners to writers.
+ * @return Google_Permission
+ */
+ public function patch($fileId, $permissionId, Google_Permission $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'permissionId' => $permissionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Permission($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a permission. (permissions.update)
+ *
+ * @param string $fileId The ID for the file.
+ * @param string $permissionId The ID for the permission.
+ * @param Google_Permission $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool transferOwnership Whether changing a role to 'owner' should also downgrade the current owners to writers.
+ * @return Google_Permission
+ */
+ public function update($fileId, $permissionId, Google_Permission $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'permissionId' => $permissionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Permission($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "properties" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $properties = $driveService->properties;
+ *
+ */
+ class Google_PropertiesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a property. (properties.delete)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $propertyKey The key of the property.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string visibility The visibility of the property.
+ */
+ public function delete($fileId, $propertyKey, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a property by its key. (properties.get)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $propertyKey The key of the property.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string visibility The visibility of the property.
+ * @return Google_Property
+ */
+ public function get($fileId, $propertyKey, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Property($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Adds a property to a file. (properties.insert)
+ *
+ * @param string $fileId The ID of the file.
+ * @param Google_Property $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Property
+ */
+ public function insert($fileId, Google_Property $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Property($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists a file's properties. (properties.list)
+ *
+ * @param string $fileId The ID of the file.
+ * @param array $optParams Optional parameters.
+ * @return Google_PropertyList
+ */
+ public function listProperties($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PropertyList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a property. This method supports patch semantics. (properties.patch)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $propertyKey The key of the property.
+ * @param Google_Property $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string visibility The visibility of the property.
+ * @return Google_Property
+ */
+ public function patch($fileId, $propertyKey, Google_Property $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Property($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a property. (properties.update)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $propertyKey The key of the property.
+ * @param Google_Property $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string visibility The visibility of the property.
+ * @return Google_Property
+ */
+ public function update($fileId, $propertyKey, Google_Property $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'propertyKey' => $propertyKey, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Property($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "realtime" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $realtime = $driveService->realtime;
+ *
+ */
+ class Google_RealtimeServiceResource extends Google_ServiceResource {
+
+ /**
+ * Exports the contents of the Realtime API data model associated with this file as JSON.
+ * (realtime.get)
+ *
+ * @param string $fileId The ID of the file that the Realtime API data model is associated with.
+ * @param array $optParams Optional parameters.
+ */
+ public function get($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "replies" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $replies = $driveService->replies;
+ *
+ */
+ class Google_RepliesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a reply. (replies.delete)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param string $replyId The ID of the reply.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($fileId, $commentId, $replyId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a reply. (replies.get)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param string $replyId The ID of the reply.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeDeleted If set, this will succeed when retrieving a deleted reply.
+ * @return Google_CommentReply
+ */
+ public function get($fileId, $commentId, $replyId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentReply($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new reply to the given comment. (replies.insert)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param Google_CommentReply $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CommentReply
+ */
+ public function insert($fileId, $commentId, Google_CommentReply $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentReply($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all of the replies to a comment. (replies.list)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool includeDeleted If set, all replies, including deleted replies (with content stripped) will be returned.
+ * @opt_param int maxResults The maximum number of replies to include in the response, used for paging.
+ * @opt_param string pageToken The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_CommentReplyList
+ */
+ public function listReplies($fileId, $commentId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentReplyList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing reply. This method supports patch semantics. (replies.patch)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param string $replyId The ID of the reply.
+ * @param Google_CommentReply $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CommentReply
+ */
+ public function patch($fileId, $commentId, $replyId, Google_CommentReply $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentReply($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing reply. (replies.update)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $commentId The ID of the comment.
+ * @param string $replyId The ID of the reply.
+ * @param Google_CommentReply $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CommentReply
+ */
+ public function update($fileId, $commentId, $replyId, Google_CommentReply $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'commentId' => $commentId, 'replyId' => $replyId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentReply($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "revisions" collection of methods.
+ * Typical usage is:
+ *
+ * $driveService = new Google_DriveService(...);
+ * $revisions = $driveService->revisions;
+ *
+ */
+ class Google_RevisionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Removes a revision. (revisions.delete)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $revisionId The ID of the revision.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($fileId, $revisionId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'revisionId' => $revisionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a specific revision. (revisions.get)
+ *
+ * @param string $fileId The ID of the file.
+ * @param string $revisionId The ID of the revision.
+ * @param array $optParams Optional parameters.
+ * @return Google_Revision
+ */
+ public function get($fileId, $revisionId, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'revisionId' => $revisionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Revision($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists a file's revisions. (revisions.list)
+ *
+ * @param string $fileId The ID of the file.
+ * @param array $optParams Optional parameters.
+ * @return Google_RevisionList
+ */
+ public function listRevisions($fileId, $optParams = array()) {
+ $params = array('fileId' => $fileId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_RevisionList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a revision. This method supports patch semantics. (revisions.patch)
+ *
+ * @param string $fileId The ID for the file.
+ * @param string $revisionId The ID for the revision.
+ * @param Google_Revision $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Revision
+ */
+ public function patch($fileId, $revisionId, Google_Revision $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'revisionId' => $revisionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Revision($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a revision. (revisions.update)
+ *
+ * @param string $fileId The ID for the file.
+ * @param string $revisionId The ID for the revision.
+ * @param Google_Revision $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Revision
+ */
+ public function update($fileId, $revisionId, Google_Revision $postBody, $optParams = array()) {
+ $params = array('fileId' => $fileId, 'revisionId' => $revisionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Revision($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Drive (v2).
+ *
+ *
+ * The API to interact with Drive.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_DriveService extends Google_Service {
+ public $about;
+ public $apps;
+ public $changes;
+ public $channels;
+ public $children;
+ public $comments;
+ public $files;
+ public $parents;
+ public $permissions;
+ public $properties;
+ public $realtime;
+ public $replies;
+ public $revisions;
+ /**
+ * Constructs the internal representation of the Drive service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'drive/v2/';
+ $this->version = 'v2';
+ $this->serviceName = 'drive';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->about = new Google_AboutServiceResource($this, $this->serviceName, 'about', json_decode('{"methods": {"get": {"id": "drive.about.get", "path": "about", "httpMethod": "GET", "parameters": {"includeSubscribed": {"type": "boolean", "default": "true", "location": "query"}, "maxChangeIdCount": {"type": "string", "default": "1", "format": "int64", "location": "query"}, "startChangeId": {"type": "string", "format": "int64", "location": "query"}}, "response": {"$ref": "About"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}}}', true));
+ $this->apps = new Google_AppsServiceResource($this, $this->serviceName, 'apps', json_decode('{"methods": {"get": {"id": "drive.apps.get", "path": "apps/{appId}", "httpMethod": "GET", "parameters": {"appId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "App"}, "scopes": ["https://www.googleapis.com/auth/drive.apps.readonly"]}, "list": {"id": "drive.apps.list", "path": "apps", "httpMethod": "GET", "response": {"$ref": "AppList"}, "scopes": ["https://www.googleapis.com/auth/drive.apps.readonly"]}}}', true));
+ $this->changes = new Google_ChangesServiceResource($this, $this->serviceName, 'changes', json_decode('{"methods": {"get": {"id": "drive.changes.get", "path": "changes/{changeId}", "httpMethod": "GET", "parameters": {"changeId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Change"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "list": {"id": "drive.changes.list", "path": "changes", "httpMethod": "GET", "parameters": {"includeDeleted": {"type": "boolean", "default": "true", "location": "query"}, "includeSubscribed": {"type": "boolean", "default": "true", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "int32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "startChangeId": {"type": "string", "format": "int64", "location": "query"}}, "response": {"$ref": "ChangeList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"], "supportsSubscription": true}, "watch": {"id": "drive.changes.watch", "path": "changes/watch", "httpMethod": "POST", "parameters": {"includeDeleted": {"type": "boolean", "default": "true", "location": "query"}, "includeSubscribed": {"type": "boolean", "default": "true", "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "int32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "startChangeId": {"type": "string", "format": "int64", "location": "query"}}, "request": {"$ref": "Channel"}, "response": {"$ref": "Channel"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"], "supportsSubscription": true}}}', true));
+ $this->channels = new Google_ChannelsServiceResource($this, $this->serviceName, 'channels', json_decode('{"methods": {"stop": {"id": "drive.channels.stop", "path": "channels/stop", "httpMethod": "POST", "request": {"$ref": "Channel"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}}}', true));
+ $this->children = new Google_ChildrenServiceResource($this, $this->serviceName, 'children', json_decode('{"methods": {"delete": {"id": "drive.children.delete", "path": "files/{folderId}/children/{childId}", "httpMethod": "DELETE", "parameters": {"childId": {"type": "string", "required": true, "location": "path"}, "folderId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.children.get", "path": "files/{folderId}/children/{childId}", "httpMethod": "GET", "parameters": {"childId": {"type": "string", "required": true, "location": "path"}, "folderId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ChildReference"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.children.insert", "path": "files/{folderId}/children", "httpMethod": "POST", "parameters": {"folderId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ChildReference"}, "response": {"$ref": "ChildReference"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.children.list", "path": "files/{folderId}/children", "httpMethod": "GET", "parameters": {"folderId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "default": "100", "format": "int32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "q": {"type": "string", "location": "query"}}, "response": {"$ref": "ChildList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}}}', true));
+ $this->comments = new Google_CommentsServiceResource($this, $this->serviceName, 'comments', json_decode('{"methods": {"delete": {"id": "drive.comments.delete", "path": "files/{fileId}/comments/{commentId}", "httpMethod": "DELETE", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "get": {"id": "drive.comments.get", "path": "files/{fileId}/comments/{commentId}", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "includeDeleted": {"type": "boolean", "default": "false", "location": "query"}}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.comments.insert", "path": "files/{fileId}/comments", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Comment"}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "list": {"id": "drive.comments.list", "path": "files/{fileId}/comments", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "includeDeleted": {"type": "boolean", "default": "false", "location": "query"}, "maxResults": {"type": "integer", "default": "20", "format": "int32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "updatedMin": {"type": "string", "location": "query"}}, "response": {"$ref": "CommentList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.comments.patch", "path": "files/{fileId}/comments/{commentId}", "httpMethod": "PATCH", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Comment"}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.comments.update", "path": "files/{fileId}/comments/{commentId}", "httpMethod": "PUT", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Comment"}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true));
+ $this->files = new Google_FilesServiceResource($this, $this->serviceName, 'files', json_decode('{"methods": {"copy": {"id": "drive.files.copy", "path": "files/{fileId}/copy", "httpMethod": "POST", "parameters": {"convert": {"type": "boolean", "default": "false", "location": "query"}, "fileId": {"type": "string", "required": true, "location": "path"}, "ocr": {"type": "boolean", "default": "false", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"type": "boolean", "default": "false", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}, "visibility": {"type": "string", "default": "DEFAULT", "enum": ["DEFAULT", "PRIVATE"], "location": "query"}}, "request": {"$ref": "File"}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file"]}, "delete": {"id": "drive.files.delete", "path": "files/{fileId}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.files.get", "path": "files/{fileId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}, "updateViewedDate": {"type": "boolean", "default": "false", "location": "query"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"], "supportsSubscription": true}, "insert": {"id": "drive.files.insert", "path": "files", "httpMethod": "POST", "parameters": {"convert": {"type": "boolean", "default": "false", "location": "query"}, "ocr": {"type": "boolean", "default": "false", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"type": "boolean", "default": "false", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}, "useContentAsIndexableText": {"type": "boolean", "default": "false", "location": "query"}, "visibility": {"type": "string", "default": "DEFAULT", "enum": ["DEFAULT", "PRIVATE"], "location": "query"}}, "request": {"$ref": "File"}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["*/*"], "maxSize": "10GB", "protocols": {"simple": {"multipart": true, "path": "/upload/drive/v2/files"}, "resumable": {"multipart": true, "path": "/resumable/upload/drive/v2/files"}}}, "supportsSubscription": true}, "list": {"id": "drive.files.list", "path": "files", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "default": "100", "format": "int32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}, "q": {"type": "string", "location": "query"}}, "response": {"$ref": "FileList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.files.patch", "path": "files/{fileId}", "httpMethod": "PATCH", "parameters": {"convert": {"type": "boolean", "default": "false", "location": "query"}, "fileId": {"type": "string", "required": true, "location": "path"}, "newRevision": {"type": "boolean", "default": "true", "location": "query"}, "ocr": {"type": "boolean", "default": "false", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"type": "boolean", "default": "false", "location": "query"}, "setModifiedDate": {"type": "boolean", "default": "false", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}, "updateViewedDate": {"type": "boolean", "default": "true", "location": "query"}, "useContentAsIndexableText": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "File"}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.scripts"]}, "touch": {"id": "drive.files.touch", "path": "files/{fileId}/touch", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file"]}, "trash": {"id": "drive.files.trash", "path": "files/{fileId}/trash", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file"]}, "untrash": {"id": "drive.files.untrash", "path": "files/{fileId}/untrash", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.files.update", "path": "files/{fileId}", "httpMethod": "PUT", "parameters": {"convert": {"type": "boolean", "default": "false", "location": "query"}, "fileId": {"type": "string", "required": true, "location": "path"}, "newRevision": {"type": "boolean", "default": "true", "location": "query"}, "ocr": {"type": "boolean", "default": "false", "location": "query"}, "ocrLanguage": {"type": "string", "location": "query"}, "pinned": {"type": "boolean", "default": "false", "location": "query"}, "setModifiedDate": {"type": "boolean", "default": "false", "location": "query"}, "timedTextLanguage": {"type": "string", "location": "query"}, "timedTextTrackName": {"type": "string", "location": "query"}, "updateViewedDate": {"type": "boolean", "default": "true", "location": "query"}, "useContentAsIndexableText": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "File"}, "response": {"$ref": "File"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.scripts"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["*/*"], "maxSize": "10GB", "protocols": {"simple": {"multipart": true, "path": "/upload/drive/v2/files/{fileId}"}, "resumable": {"multipart": true, "path": "/resumable/upload/drive/v2/files/{fileId}"}}}}, "watch": {"id": "drive.files.watch", "path": "files/{fileId}/watch", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["BASIC", "FULL"], "location": "query"}, "updateViewedDate": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "Channel"}, "response": {"$ref": "Channel"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.apps.readonly", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"], "supportsSubscription": true}}}', true));
+ $this->parents = new Google_ParentsServiceResource($this, $this->serviceName, 'parents', json_decode('{"methods": {"delete": {"id": "drive.parents.delete", "path": "files/{fileId}/parents/{parentId}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "parentId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.parents.get", "path": "files/{fileId}/parents/{parentId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "parentId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ParentReference"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.parents.insert", "path": "files/{fileId}/parents", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ParentReference"}, "response": {"$ref": "ParentReference"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.parents.list", "path": "files/{fileId}/parents", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ParentList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}}}', true));
+ $this->permissions = new Google_PermissionsServiceResource($this, $this->serviceName, 'permissions', json_decode('{"methods": {"delete": {"id": "drive.permissions.delete", "path": "files/{fileId}/permissions/{permissionId}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "permissionId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.permissions.get", "path": "files/{fileId}/permissions/{permissionId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "permissionId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Permission"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.permissions.insert", "path": "files/{fileId}/permissions", "httpMethod": "POST", "parameters": {"emailMessage": {"type": "string", "location": "query"}, "fileId": {"type": "string", "required": true, "location": "path"}, "sendNotificationEmails": {"type": "boolean", "default": "true", "location": "query"}}, "request": {"$ref": "Permission"}, "response": {"$ref": "Permission"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.permissions.list", "path": "files/{fileId}/permissions", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "PermissionList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.permissions.patch", "path": "files/{fileId}/permissions/{permissionId}", "httpMethod": "PATCH", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "permissionId": {"type": "string", "required": true, "location": "path"}, "transferOwnership": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "Permission"}, "response": {"$ref": "Permission"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.permissions.update", "path": "files/{fileId}/permissions/{permissionId}", "httpMethod": "PUT", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "permissionId": {"type": "string", "required": true, "location": "path"}, "transferOwnership": {"type": "boolean", "default": "false", "location": "query"}}, "request": {"$ref": "Permission"}, "response": {"$ref": "Permission"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true));
+ $this->properties = new Google_PropertiesServiceResource($this, $this->serviceName, 'properties', json_decode('{"methods": {"delete": {"id": "drive.properties.delete", "path": "files/{fileId}/properties/{propertyKey}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "propertyKey": {"type": "string", "required": true, "location": "path"}, "visibility": {"type": "string", "default": "private", "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.properties.get", "path": "files/{fileId}/properties/{propertyKey}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "propertyKey": {"type": "string", "required": true, "location": "path"}, "visibility": {"type": "string", "default": "private", "location": "query"}}, "response": {"$ref": "Property"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.properties.insert", "path": "files/{fileId}/properties", "httpMethod": "POST", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Property"}, "response": {"$ref": "Property"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.properties.list", "path": "files/{fileId}/properties", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "PropertyList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.properties.patch", "path": "files/{fileId}/properties/{propertyKey}", "httpMethod": "PATCH", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "propertyKey": {"type": "string", "required": true, "location": "path"}, "visibility": {"type": "string", "default": "private", "location": "query"}}, "request": {"$ref": "Property"}, "response": {"$ref": "Property"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.properties.update", "path": "files/{fileId}/properties/{propertyKey}", "httpMethod": "PUT", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "propertyKey": {"type": "string", "required": true, "location": "path"}, "visibility": {"type": "string", "default": "private", "location": "query"}}, "request": {"$ref": "Property"}, "response": {"$ref": "Property"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true));
+ $this->realtime = new Google_RealtimeServiceResource($this, $this->serviceName, 'realtime', json_decode('{"methods": {"get": {"id": "drive.realtime.get", "path": "files/{fileId}/realtime", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"], "supportsMediaDownload": true}}}', true));
+ $this->replies = new Google_RepliesServiceResource($this, $this->serviceName, 'replies', json_decode('{"methods": {"delete": {"id": "drive.replies.delete", "path": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "DELETE", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "replyId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.replies.get", "path": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "includeDeleted": {"type": "boolean", "default": "false", "location": "query"}, "replyId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CommentReply"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "insert": {"id": "drive.replies.insert", "path": "files/{fileId}/comments/{commentId}/replies", "httpMethod": "POST", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommentReply"}, "response": {"$ref": "CommentReply"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "list": {"id": "drive.replies.list", "path": "files/{fileId}/comments/{commentId}/replies", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "includeDeleted": {"type": "boolean", "default": "false", "location": "query"}, "maxResults": {"type": "integer", "default": "20", "format": "int32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CommentReplyList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.replies.patch", "path": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "PATCH", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "replyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommentReply"}, "response": {"$ref": "CommentReply"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.replies.update", "path": "files/{fileId}/comments/{commentId}/replies/{replyId}", "httpMethod": "PUT", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "fileId": {"type": "string", "required": true, "location": "path"}, "replyId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommentReply"}, "response": {"$ref": "CommentReply"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true));
+ $this->revisions = new Google_RevisionsServiceResource($this, $this->serviceName, 'revisions', json_decode('{"methods": {"delete": {"id": "drive.revisions.delete", "path": "files/{fileId}/revisions/{revisionId}", "httpMethod": "DELETE", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "revisionId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "get": {"id": "drive.revisions.get", "path": "files/{fileId}/revisions/{revisionId}", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "revisionId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Revision"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "list": {"id": "drive.revisions.list", "path": "files/{fileId}/revisions", "httpMethod": "GET", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "RevisionList"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.readonly", "https://www.googleapis.com/auth/drive.readonly"]}, "patch": {"id": "drive.revisions.patch", "path": "files/{fileId}/revisions/{revisionId}", "httpMethod": "PATCH", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "revisionId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Revision"}, "response": {"$ref": "Revision"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}, "update": {"id": "drive.revisions.update", "path": "files/{fileId}/revisions/{revisionId}", "httpMethod": "PUT", "parameters": {"fileId": {"type": "string", "required": true, "location": "path"}, "revisionId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Revision"}, "response": {"$ref": "Revision"}, "scopes": ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]}}}', true));
+
+ }
+}
+
+
+
+class Google_About extends Google_Model {
+ protected $__additionalRoleInfoType = 'Google_AboutAdditionalRoleInfo';
+ protected $__additionalRoleInfoDataType = 'array';
+ public $additionalRoleInfo;
+ public $domainSharingPolicy;
+ public $etag;
+ protected $__exportFormatsType = 'Google_AboutExportFormats';
+ protected $__exportFormatsDataType = 'array';
+ public $exportFormats;
+ protected $__featuresType = 'Google_AboutFeatures';
+ protected $__featuresDataType = 'array';
+ public $features;
+ protected $__importFormatsType = 'Google_AboutImportFormats';
+ protected $__importFormatsDataType = 'array';
+ public $importFormats;
+ public $isCurrentAppInstalled;
+ public $kind;
+ public $largestChangeId;
+ protected $__maxUploadSizesType = 'Google_AboutMaxUploadSizes';
+ protected $__maxUploadSizesDataType = 'array';
+ public $maxUploadSizes;
+ public $name;
+ public $permissionId;
+ public $quotaBytesTotal;
+ public $quotaBytesUsed;
+ public $quotaBytesUsedAggregate;
+ public $quotaBytesUsedInTrash;
+ public $remainingChangeIds;
+ public $rootFolderId;
+ public $selfLink;
+ protected $__userType = 'Google_User';
+ protected $__userDataType = '';
+ public $user;
+ public function setAdditionalRoleInfo(/* array(Google_AboutAdditionalRoleInfo) */ $additionalRoleInfo) {
+ $this->assertIsArray($additionalRoleInfo, 'Google_AboutAdditionalRoleInfo', __METHOD__);
+ $this->additionalRoleInfo = $additionalRoleInfo;
+ }
+ public function getAdditionalRoleInfo() {
+ return $this->additionalRoleInfo;
+ }
+ public function setDomainSharingPolicy( $domainSharingPolicy) {
+ $this->domainSharingPolicy = $domainSharingPolicy;
+ }
+ public function getDomainSharingPolicy() {
+ return $this->domainSharingPolicy;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setExportFormats(/* array(Google_AboutExportFormats) */ $exportFormats) {
+ $this->assertIsArray($exportFormats, 'Google_AboutExportFormats', __METHOD__);
+ $this->exportFormats = $exportFormats;
+ }
+ public function getExportFormats() {
+ return $this->exportFormats;
+ }
+ public function setFeatures(/* array(Google_AboutFeatures) */ $features) {
+ $this->assertIsArray($features, 'Google_AboutFeatures', __METHOD__);
+ $this->features = $features;
+ }
+ public function getFeatures() {
+ return $this->features;
+ }
+ public function setImportFormats(/* array(Google_AboutImportFormats) */ $importFormats) {
+ $this->assertIsArray($importFormats, 'Google_AboutImportFormats', __METHOD__);
+ $this->importFormats = $importFormats;
+ }
+ public function getImportFormats() {
+ return $this->importFormats;
+ }
+ public function setIsCurrentAppInstalled( $isCurrentAppInstalled) {
+ $this->isCurrentAppInstalled = $isCurrentAppInstalled;
+ }
+ public function getIsCurrentAppInstalled() {
+ return $this->isCurrentAppInstalled;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLargestChangeId( $largestChangeId) {
+ $this->largestChangeId = $largestChangeId;
+ }
+ public function getLargestChangeId() {
+ return $this->largestChangeId;
+ }
+ public function setMaxUploadSizes(/* array(Google_AboutMaxUploadSizes) */ $maxUploadSizes) {
+ $this->assertIsArray($maxUploadSizes, 'Google_AboutMaxUploadSizes', __METHOD__);
+ $this->maxUploadSizes = $maxUploadSizes;
+ }
+ public function getMaxUploadSizes() {
+ return $this->maxUploadSizes;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPermissionId( $permissionId) {
+ $this->permissionId = $permissionId;
+ }
+ public function getPermissionId() {
+ return $this->permissionId;
+ }
+ public function setQuotaBytesTotal( $quotaBytesTotal) {
+ $this->quotaBytesTotal = $quotaBytesTotal;
+ }
+ public function getQuotaBytesTotal() {
+ return $this->quotaBytesTotal;
+ }
+ public function setQuotaBytesUsed( $quotaBytesUsed) {
+ $this->quotaBytesUsed = $quotaBytesUsed;
+ }
+ public function getQuotaBytesUsed() {
+ return $this->quotaBytesUsed;
+ }
+ public function setQuotaBytesUsedAggregate( $quotaBytesUsedAggregate) {
+ $this->quotaBytesUsedAggregate = $quotaBytesUsedAggregate;
+ }
+ public function getQuotaBytesUsedAggregate() {
+ return $this->quotaBytesUsedAggregate;
+ }
+ public function setQuotaBytesUsedInTrash( $quotaBytesUsedInTrash) {
+ $this->quotaBytesUsedInTrash = $quotaBytesUsedInTrash;
+ }
+ public function getQuotaBytesUsedInTrash() {
+ return $this->quotaBytesUsedInTrash;
+ }
+ public function setRemainingChangeIds( $remainingChangeIds) {
+ $this->remainingChangeIds = $remainingChangeIds;
+ }
+ public function getRemainingChangeIds() {
+ return $this->remainingChangeIds;
+ }
+ public function setRootFolderId( $rootFolderId) {
+ $this->rootFolderId = $rootFolderId;
+ }
+ public function getRootFolderId() {
+ return $this->rootFolderId;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUser(Google_User $user) {
+ $this->user = $user;
+ }
+ public function getUser() {
+ return $this->user;
+ }
+}
+
+class Google_AboutAdditionalRoleInfo extends Google_Model {
+ protected $__roleSetsType = 'Google_AboutAdditionalRoleInfoRoleSets';
+ protected $__roleSetsDataType = 'array';
+ public $roleSets;
+ public $type;
+ public function setRoleSets(/* array(Google_AboutAdditionalRoleInfoRoleSets) */ $roleSets) {
+ $this->assertIsArray($roleSets, 'Google_AboutAdditionalRoleInfoRoleSets', __METHOD__);
+ $this->roleSets = $roleSets;
+ }
+ public function getRoleSets() {
+ return $this->roleSets;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_AboutAdditionalRoleInfoRoleSets extends Google_Model {
+ public $additionalRoles;
+ public $primaryRole;
+ public function setAdditionalRoles(/* array(Google_string) */ $additionalRoles) {
+ $this->assertIsArray($additionalRoles, 'Google_string', __METHOD__);
+ $this->additionalRoles = $additionalRoles;
+ }
+ public function getAdditionalRoles() {
+ return $this->additionalRoles;
+ }
+ public function setPrimaryRole( $primaryRole) {
+ $this->primaryRole = $primaryRole;
+ }
+ public function getPrimaryRole() {
+ return $this->primaryRole;
+ }
+}
+
+class Google_AboutExportFormats extends Google_Model {
+ public $source;
+ public $targets;
+ public function setSource( $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setTargets(/* array(Google_string) */ $targets) {
+ $this->assertIsArray($targets, 'Google_string', __METHOD__);
+ $this->targets = $targets;
+ }
+ public function getTargets() {
+ return $this->targets;
+ }
+}
+
+class Google_AboutFeatures extends Google_Model {
+ public $featureName;
+ public $featureRate;
+ public function setFeatureName( $featureName) {
+ $this->featureName = $featureName;
+ }
+ public function getFeatureName() {
+ return $this->featureName;
+ }
+ public function setFeatureRate( $featureRate) {
+ $this->featureRate = $featureRate;
+ }
+ public function getFeatureRate() {
+ return $this->featureRate;
+ }
+}
+
+class Google_AboutImportFormats extends Google_Model {
+ public $source;
+ public $targets;
+ public function setSource( $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setTargets(/* array(Google_string) */ $targets) {
+ $this->assertIsArray($targets, 'Google_string', __METHOD__);
+ $this->targets = $targets;
+ }
+ public function getTargets() {
+ return $this->targets;
+ }
+}
+
+class Google_AboutMaxUploadSizes extends Google_Model {
+ public $size;
+ public $type;
+ public function setSize( $size) {
+ $this->size = $size;
+ }
+ public function getSize() {
+ return $this->size;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_App extends Google_Model {
+ public $authorized;
+ protected $__iconsType = 'Google_AppIcons';
+ protected $__iconsDataType = 'array';
+ public $icons;
+ public $id;
+ public $installed;
+ public $kind;
+ public $longDescription;
+ public $name;
+ public $objectType;
+ public $openUrlTemplate;
+ public $primaryFileExtensions;
+ public $primaryMimeTypes;
+ public $productId;
+ public $productUrl;
+ public $secondaryFileExtensions;
+ public $secondaryMimeTypes;
+ public $shortDescription;
+ public $supportsCreate;
+ public $supportsImport;
+ public $supportsMultiOpen;
+ public $useByDefault;
+ public function setAuthorized( $authorized) {
+ $this->authorized = $authorized;
+ }
+ public function getAuthorized() {
+ return $this->authorized;
+ }
+ public function setIcons(/* array(Google_AppIcons) */ $icons) {
+ $this->assertIsArray($icons, 'Google_AppIcons', __METHOD__);
+ $this->icons = $icons;
+ }
+ public function getIcons() {
+ return $this->icons;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInstalled( $installed) {
+ $this->installed = $installed;
+ }
+ public function getInstalled() {
+ return $this->installed;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLongDescription( $longDescription) {
+ $this->longDescription = $longDescription;
+ }
+ public function getLongDescription() {
+ return $this->longDescription;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setOpenUrlTemplate( $openUrlTemplate) {
+ $this->openUrlTemplate = $openUrlTemplate;
+ }
+ public function getOpenUrlTemplate() {
+ return $this->openUrlTemplate;
+ }
+ public function setPrimaryFileExtensions(/* array(Google_string) */ $primaryFileExtensions) {
+ $this->assertIsArray($primaryFileExtensions, 'Google_string', __METHOD__);
+ $this->primaryFileExtensions = $primaryFileExtensions;
+ }
+ public function getPrimaryFileExtensions() {
+ return $this->primaryFileExtensions;
+ }
+ public function setPrimaryMimeTypes(/* array(Google_string) */ $primaryMimeTypes) {
+ $this->assertIsArray($primaryMimeTypes, 'Google_string', __METHOD__);
+ $this->primaryMimeTypes = $primaryMimeTypes;
+ }
+ public function getPrimaryMimeTypes() {
+ return $this->primaryMimeTypes;
+ }
+ public function setProductId( $productId) {
+ $this->productId = $productId;
+ }
+ public function getProductId() {
+ return $this->productId;
+ }
+ public function setProductUrl( $productUrl) {
+ $this->productUrl = $productUrl;
+ }
+ public function getProductUrl() {
+ return $this->productUrl;
+ }
+ public function setSecondaryFileExtensions(/* array(Google_string) */ $secondaryFileExtensions) {
+ $this->assertIsArray($secondaryFileExtensions, 'Google_string', __METHOD__);
+ $this->secondaryFileExtensions = $secondaryFileExtensions;
+ }
+ public function getSecondaryFileExtensions() {
+ return $this->secondaryFileExtensions;
+ }
+ public function setSecondaryMimeTypes(/* array(Google_string) */ $secondaryMimeTypes) {
+ $this->assertIsArray($secondaryMimeTypes, 'Google_string', __METHOD__);
+ $this->secondaryMimeTypes = $secondaryMimeTypes;
+ }
+ public function getSecondaryMimeTypes() {
+ return $this->secondaryMimeTypes;
+ }
+ public function setShortDescription( $shortDescription) {
+ $this->shortDescription = $shortDescription;
+ }
+ public function getShortDescription() {
+ return $this->shortDescription;
+ }
+ public function setSupportsCreate( $supportsCreate) {
+ $this->supportsCreate = $supportsCreate;
+ }
+ public function getSupportsCreate() {
+ return $this->supportsCreate;
+ }
+ public function setSupportsImport( $supportsImport) {
+ $this->supportsImport = $supportsImport;
+ }
+ public function getSupportsImport() {
+ return $this->supportsImport;
+ }
+ public function setSupportsMultiOpen( $supportsMultiOpen) {
+ $this->supportsMultiOpen = $supportsMultiOpen;
+ }
+ public function getSupportsMultiOpen() {
+ return $this->supportsMultiOpen;
+ }
+ public function setUseByDefault( $useByDefault) {
+ $this->useByDefault = $useByDefault;
+ }
+ public function getUseByDefault() {
+ return $this->useByDefault;
+ }
+}
+
+class Google_AppIcons extends Google_Model {
+ public $category;
+ public $iconUrl;
+ public $size;
+ public function setCategory( $category) {
+ $this->category = $category;
+ }
+ public function getCategory() {
+ return $this->category;
+ }
+ public function setIconUrl( $iconUrl) {
+ $this->iconUrl = $iconUrl;
+ }
+ public function getIconUrl() {
+ return $this->iconUrl;
+ }
+ public function setSize( $size) {
+ $this->size = $size;
+ }
+ public function getSize() {
+ return $this->size;
+ }
+}
+
+class Google_AppList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_App';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $selfLink;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_App) */ $items) {
+ $this->assertIsArray($items, 'Google_App', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Change extends Google_Model {
+ public $deleted;
+ protected $__fileType = 'Google_DriveFile';
+ protected $__fileDataType = '';
+ public $file;
+ public $fileId;
+ public $id;
+ public $kind;
+ public $selfLink;
+ public function setDeleted( $deleted) {
+ $this->deleted = $deleted;
+ }
+ public function getDeleted() {
+ return $this->deleted;
+ }
+ public function setFile(Google_DriveFile $file) {
+ $this->file = $file;
+ }
+ public function getFile() {
+ return $this->file;
+ }
+ public function setFileId( $fileId) {
+ $this->fileId = $fileId;
+ }
+ public function getFileId() {
+ return $this->fileId;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_ChangeList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Change';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $largestChangeId;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Change) */ $items) {
+ $this->assertIsArray($items, 'Google_Change', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLargestChangeId( $largestChangeId) {
+ $this->largestChangeId = $largestChangeId;
+ }
+ public function getLargestChangeId() {
+ return $this->largestChangeId;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Channel extends Google_Model {
+ public $address;
+ public $expiration;
+ public $id;
+ public $kind;
+ public $params;
+ public $resourceId;
+ public $resourceUri;
+ public $token;
+ public $type;
+ public function setAddress( $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setExpiration( $expiration) {
+ $this->expiration = $expiration;
+ }
+ public function getExpiration() {
+ return $this->expiration;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setParams( $params) {
+ $this->params = $params;
+ }
+ public function getParams() {
+ return $this->params;
+ }
+ public function setResourceId( $resourceId) {
+ $this->resourceId = $resourceId;
+ }
+ public function getResourceId() {
+ return $this->resourceId;
+ }
+ public function setResourceUri( $resourceUri) {
+ $this->resourceUri = $resourceUri;
+ }
+ public function getResourceUri() {
+ return $this->resourceUri;
+ }
+ public function setToken( $token) {
+ $this->token = $token;
+ }
+ public function getToken() {
+ return $this->token;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ChildList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_ChildReference';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_ChildReference) */ $items) {
+ $this->assertIsArray($items, 'Google_ChildReference', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_ChildReference extends Google_Model {
+ public $childLink;
+ public $id;
+ public $kind;
+ public $selfLink;
+ public function setChildLink( $childLink) {
+ $this->childLink = $childLink;
+ }
+ public function getChildLink() {
+ return $this->childLink;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Comment extends Google_Model {
+ public $anchor;
+ protected $__authorType = 'Google_User';
+ protected $__authorDataType = '';
+ public $author;
+ public $commentId;
+ public $content;
+ protected $__contextType = 'Google_CommentContext';
+ protected $__contextDataType = '';
+ public $context;
+ public $createdDate;
+ public $deleted;
+ public $fileId;
+ public $fileTitle;
+ public $htmlContent;
+ public $kind;
+ public $modifiedDate;
+ protected $__repliesType = 'Google_CommentReply';
+ protected $__repliesDataType = 'array';
+ public $replies;
+ public $selfLink;
+ public $status;
+ public function setAnchor( $anchor) {
+ $this->anchor = $anchor;
+ }
+ public function getAnchor() {
+ return $this->anchor;
+ }
+ public function setAuthor(Google_User $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setCommentId( $commentId) {
+ $this->commentId = $commentId;
+ }
+ public function getCommentId() {
+ return $this->commentId;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setContext(Google_CommentContext $context) {
+ $this->context = $context;
+ }
+ public function getContext() {
+ return $this->context;
+ }
+ public function setCreatedDate( $createdDate) {
+ $this->createdDate = $createdDate;
+ }
+ public function getCreatedDate() {
+ return $this->createdDate;
+ }
+ public function setDeleted( $deleted) {
+ $this->deleted = $deleted;
+ }
+ public function getDeleted() {
+ return $this->deleted;
+ }
+ public function setFileId( $fileId) {
+ $this->fileId = $fileId;
+ }
+ public function getFileId() {
+ return $this->fileId;
+ }
+ public function setFileTitle( $fileTitle) {
+ $this->fileTitle = $fileTitle;
+ }
+ public function getFileTitle() {
+ return $this->fileTitle;
+ }
+ public function setHtmlContent( $htmlContent) {
+ $this->htmlContent = $htmlContent;
+ }
+ public function getHtmlContent() {
+ return $this->htmlContent;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setModifiedDate( $modifiedDate) {
+ $this->modifiedDate = $modifiedDate;
+ }
+ public function getModifiedDate() {
+ return $this->modifiedDate;
+ }
+ public function setReplies(/* array(Google_CommentReply) */ $replies) {
+ $this->assertIsArray($replies, 'Google_CommentReply', __METHOD__);
+ $this->replies = $replies;
+ }
+ public function getReplies() {
+ return $this->replies;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_CommentContext extends Google_Model {
+ public $type;
+ public $value;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_CommentList extends Google_Model {
+ protected $__itemsType = 'Google_Comment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public function setItems(/* array(Google_Comment) */ $items) {
+ $this->assertIsArray($items, 'Google_Comment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_CommentReply extends Google_Model {
+ protected $__authorType = 'Google_User';
+ protected $__authorDataType = '';
+ public $author;
+ public $content;
+ public $createdDate;
+ public $deleted;
+ public $htmlContent;
+ public $kind;
+ public $modifiedDate;
+ public $replyId;
+ public $verb;
+ public function setAuthor(Google_User $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setCreatedDate( $createdDate) {
+ $this->createdDate = $createdDate;
+ }
+ public function getCreatedDate() {
+ return $this->createdDate;
+ }
+ public function setDeleted( $deleted) {
+ $this->deleted = $deleted;
+ }
+ public function getDeleted() {
+ return $this->deleted;
+ }
+ public function setHtmlContent( $htmlContent) {
+ $this->htmlContent = $htmlContent;
+ }
+ public function getHtmlContent() {
+ return $this->htmlContent;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setModifiedDate( $modifiedDate) {
+ $this->modifiedDate = $modifiedDate;
+ }
+ public function getModifiedDate() {
+ return $this->modifiedDate;
+ }
+ public function setReplyId( $replyId) {
+ $this->replyId = $replyId;
+ }
+ public function getReplyId() {
+ return $this->replyId;
+ }
+ public function setVerb( $verb) {
+ $this->verb = $verb;
+ }
+ public function getVerb() {
+ return $this->verb;
+ }
+}
+
+class Google_CommentReplyList extends Google_Model {
+ protected $__itemsType = 'Google_CommentReply';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public function setItems(/* array(Google_CommentReply) */ $items) {
+ $this->assertIsArray($items, 'Google_CommentReply', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_DriveFile extends Google_Model {
+ public $alternateLink;
+ public $appDataContents;
+ public $createdDate;
+ public $defaultOpenWithLink;
+ public $description;
+ public $downloadUrl;
+ public $editable;
+ public $embedLink;
+ public $etag;
+ public $explicitlyTrashed;
+ public $exportLinks;
+ public $fileExtension;
+ public $fileSize;
+ public $headRevisionId;
+ public $iconLink;
+ public $id;
+ protected $__imageMediaMetadataType = 'Google_DriveFileImageMediaMetadata';
+ protected $__imageMediaMetadataDataType = '';
+ public $imageMediaMetadata;
+ protected $__indexableTextType = 'Google_DriveFileIndexableText';
+ protected $__indexableTextDataType = '';
+ public $indexableText;
+ public $kind;
+ protected $__labelsType = 'Google_DriveFileLabels';
+ protected $__labelsDataType = '';
+ public $labels;
+ protected $__lastModifyingUserType = 'Google_User';
+ protected $__lastModifyingUserDataType = '';
+ public $lastModifyingUser;
+ public $lastModifyingUserName;
+ public $lastViewedByMeDate;
+ public $md5Checksum;
+ public $mimeType;
+ public $modifiedByMeDate;
+ public $modifiedDate;
+ public $openWithLinks;
+ public $originalFilename;
+ public $ownerNames;
+ protected $__ownersType = 'Google_User';
+ protected $__ownersDataType = 'array';
+ public $owners;
+ protected $__parentsType = 'Google_ParentReference';
+ protected $__parentsDataType = 'array';
+ public $parents;
+ public $quotaBytesUsed;
+ public $selfLink;
+ public $shared;
+ public $sharedWithMeDate;
+ protected $__thumbnailType = 'Google_DriveFileThumbnail';
+ protected $__thumbnailDataType = '';
+ public $thumbnail;
+ public $thumbnailLink;
+ public $title;
+ protected $__userPermissionType = 'Google_Permission';
+ protected $__userPermissionDataType = '';
+ public $userPermission;
+ public $webContentLink;
+ public $webViewLink;
+ public $writersCanShare;
+ public function setAlternateLink( $alternateLink) {
+ $this->alternateLink = $alternateLink;
+ }
+ public function getAlternateLink() {
+ return $this->alternateLink;
+ }
+ public function setAppDataContents( $appDataContents) {
+ $this->appDataContents = $appDataContents;
+ }
+ public function getAppDataContents() {
+ return $this->appDataContents;
+ }
+ public function setCreatedDate( $createdDate) {
+ $this->createdDate = $createdDate;
+ }
+ public function getCreatedDate() {
+ return $this->createdDate;
+ }
+ public function setDefaultOpenWithLink( $defaultOpenWithLink) {
+ $this->defaultOpenWithLink = $defaultOpenWithLink;
+ }
+ public function getDefaultOpenWithLink() {
+ return $this->defaultOpenWithLink;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDownloadUrl( $downloadUrl) {
+ $this->downloadUrl = $downloadUrl;
+ }
+ public function getDownloadUrl() {
+ return $this->downloadUrl;
+ }
+ public function setEditable( $editable) {
+ $this->editable = $editable;
+ }
+ public function getEditable() {
+ return $this->editable;
+ }
+ public function setEmbedLink( $embedLink) {
+ $this->embedLink = $embedLink;
+ }
+ public function getEmbedLink() {
+ return $this->embedLink;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setExplicitlyTrashed( $explicitlyTrashed) {
+ $this->explicitlyTrashed = $explicitlyTrashed;
+ }
+ public function getExplicitlyTrashed() {
+ return $this->explicitlyTrashed;
+ }
+ public function setExportLinks( $exportLinks) {
+ $this->exportLinks = $exportLinks;
+ }
+ public function getExportLinks() {
+ return $this->exportLinks;
+ }
+ public function setFileExtension( $fileExtension) {
+ $this->fileExtension = $fileExtension;
+ }
+ public function getFileExtension() {
+ return $this->fileExtension;
+ }
+ public function setFileSize( $fileSize) {
+ $this->fileSize = $fileSize;
+ }
+ public function getFileSize() {
+ return $this->fileSize;
+ }
+ public function setHeadRevisionId( $headRevisionId) {
+ $this->headRevisionId = $headRevisionId;
+ }
+ public function getHeadRevisionId() {
+ return $this->headRevisionId;
+ }
+ public function setIconLink( $iconLink) {
+ $this->iconLink = $iconLink;
+ }
+ public function getIconLink() {
+ return $this->iconLink;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImageMediaMetadata(Google_DriveFileImageMediaMetadata $imageMediaMetadata) {
+ $this->imageMediaMetadata = $imageMediaMetadata;
+ }
+ public function getImageMediaMetadata() {
+ return $this->imageMediaMetadata;
+ }
+ public function setIndexableText(Google_DriveFileIndexableText $indexableText) {
+ $this->indexableText = $indexableText;
+ }
+ public function getIndexableText() {
+ return $this->indexableText;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLabels(Google_DriveFileLabels $labels) {
+ $this->labels = $labels;
+ }
+ public function getLabels() {
+ return $this->labels;
+ }
+ public function setLastModifyingUser(Google_User $lastModifyingUser) {
+ $this->lastModifyingUser = $lastModifyingUser;
+ }
+ public function getLastModifyingUser() {
+ return $this->lastModifyingUser;
+ }
+ public function setLastModifyingUserName( $lastModifyingUserName) {
+ $this->lastModifyingUserName = $lastModifyingUserName;
+ }
+ public function getLastModifyingUserName() {
+ return $this->lastModifyingUserName;
+ }
+ public function setLastViewedByMeDate( $lastViewedByMeDate) {
+ $this->lastViewedByMeDate = $lastViewedByMeDate;
+ }
+ public function getLastViewedByMeDate() {
+ return $this->lastViewedByMeDate;
+ }
+ public function setMd5Checksum( $md5Checksum) {
+ $this->md5Checksum = $md5Checksum;
+ }
+ public function getMd5Checksum() {
+ return $this->md5Checksum;
+ }
+ public function setMimeType( $mimeType) {
+ $this->mimeType = $mimeType;
+ }
+ public function getMimeType() {
+ return $this->mimeType;
+ }
+ public function setModifiedByMeDate( $modifiedByMeDate) {
+ $this->modifiedByMeDate = $modifiedByMeDate;
+ }
+ public function getModifiedByMeDate() {
+ return $this->modifiedByMeDate;
+ }
+ public function setModifiedDate( $modifiedDate) {
+ $this->modifiedDate = $modifiedDate;
+ }
+ public function getModifiedDate() {
+ return $this->modifiedDate;
+ }
+ public function setOpenWithLinks( $openWithLinks) {
+ $this->openWithLinks = $openWithLinks;
+ }
+ public function getOpenWithLinks() {
+ return $this->openWithLinks;
+ }
+ public function setOriginalFilename( $originalFilename) {
+ $this->originalFilename = $originalFilename;
+ }
+ public function getOriginalFilename() {
+ return $this->originalFilename;
+ }
+ public function setOwnerNames(/* array(Google_string) */ $ownerNames) {
+ $this->assertIsArray($ownerNames, 'Google_string', __METHOD__);
+ $this->ownerNames = $ownerNames;
+ }
+ public function getOwnerNames() {
+ return $this->ownerNames;
+ }
+ public function setOwners(/* array(Google_User) */ $owners) {
+ $this->assertIsArray($owners, 'Google_User', __METHOD__);
+ $this->owners = $owners;
+ }
+ public function getOwners() {
+ return $this->owners;
+ }
+ public function setParents(/* array(Google_ParentReference) */ $parents) {
+ $this->assertIsArray($parents, 'Google_ParentReference', __METHOD__);
+ $this->parents = $parents;
+ }
+ public function getParents() {
+ return $this->parents;
+ }
+ public function setQuotaBytesUsed( $quotaBytesUsed) {
+ $this->quotaBytesUsed = $quotaBytesUsed;
+ }
+ public function getQuotaBytesUsed() {
+ return $this->quotaBytesUsed;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setShared( $shared) {
+ $this->shared = $shared;
+ }
+ public function getShared() {
+ return $this->shared;
+ }
+ public function setSharedWithMeDate( $sharedWithMeDate) {
+ $this->sharedWithMeDate = $sharedWithMeDate;
+ }
+ public function getSharedWithMeDate() {
+ return $this->sharedWithMeDate;
+ }
+ public function setThumbnail(Google_DriveFileThumbnail $thumbnail) {
+ $this->thumbnail = $thumbnail;
+ }
+ public function getThumbnail() {
+ return $this->thumbnail;
+ }
+ public function setThumbnailLink( $thumbnailLink) {
+ $this->thumbnailLink = $thumbnailLink;
+ }
+ public function getThumbnailLink() {
+ return $this->thumbnailLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUserPermission(Google_Permission $userPermission) {
+ $this->userPermission = $userPermission;
+ }
+ public function getUserPermission() {
+ return $this->userPermission;
+ }
+ public function setWebContentLink( $webContentLink) {
+ $this->webContentLink = $webContentLink;
+ }
+ public function getWebContentLink() {
+ return $this->webContentLink;
+ }
+ public function setWebViewLink( $webViewLink) {
+ $this->webViewLink = $webViewLink;
+ }
+ public function getWebViewLink() {
+ return $this->webViewLink;
+ }
+ public function setWritersCanShare( $writersCanShare) {
+ $this->writersCanShare = $writersCanShare;
+ }
+ public function getWritersCanShare() {
+ return $this->writersCanShare;
+ }
+}
+
+class Google_DriveFileImageMediaMetadata extends Google_Model {
+ public $aperture;
+ public $cameraMake;
+ public $cameraModel;
+ public $colorSpace;
+ public $date;
+ public $exposureBias;
+ public $exposureMode;
+ public $exposureTime;
+ public $flashUsed;
+ public $focalLength;
+ public $height;
+ public $isoSpeed;
+ public $lens;
+ protected $__locationType = 'Google_DriveFileImageMediaMetadataLocation';
+ protected $__locationDataType = '';
+ public $location;
+ public $maxApertureValue;
+ public $meteringMode;
+ public $rotation;
+ public $sensor;
+ public $subjectDistance;
+ public $whiteBalance;
+ public $width;
+ public function setAperture( $aperture) {
+ $this->aperture = $aperture;
+ }
+ public function getAperture() {
+ return $this->aperture;
+ }
+ public function setCameraMake( $cameraMake) {
+ $this->cameraMake = $cameraMake;
+ }
+ public function getCameraMake() {
+ return $this->cameraMake;
+ }
+ public function setCameraModel( $cameraModel) {
+ $this->cameraModel = $cameraModel;
+ }
+ public function getCameraModel() {
+ return $this->cameraModel;
+ }
+ public function setColorSpace( $colorSpace) {
+ $this->colorSpace = $colorSpace;
+ }
+ public function getColorSpace() {
+ return $this->colorSpace;
+ }
+ public function setDate( $date) {
+ $this->date = $date;
+ }
+ public function getDate() {
+ return $this->date;
+ }
+ public function setExposureBias( $exposureBias) {
+ $this->exposureBias = $exposureBias;
+ }
+ public function getExposureBias() {
+ return $this->exposureBias;
+ }
+ public function setExposureMode( $exposureMode) {
+ $this->exposureMode = $exposureMode;
+ }
+ public function getExposureMode() {
+ return $this->exposureMode;
+ }
+ public function setExposureTime( $exposureTime) {
+ $this->exposureTime = $exposureTime;
+ }
+ public function getExposureTime() {
+ return $this->exposureTime;
+ }
+ public function setFlashUsed( $flashUsed) {
+ $this->flashUsed = $flashUsed;
+ }
+ public function getFlashUsed() {
+ return $this->flashUsed;
+ }
+ public function setFocalLength( $focalLength) {
+ $this->focalLength = $focalLength;
+ }
+ public function getFocalLength() {
+ return $this->focalLength;
+ }
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setIsoSpeed( $isoSpeed) {
+ $this->isoSpeed = $isoSpeed;
+ }
+ public function getIsoSpeed() {
+ return $this->isoSpeed;
+ }
+ public function setLens( $lens) {
+ $this->lens = $lens;
+ }
+ public function getLens() {
+ return $this->lens;
+ }
+ public function setLocation(Google_DriveFileImageMediaMetadataLocation $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setMaxApertureValue( $maxApertureValue) {
+ $this->maxApertureValue = $maxApertureValue;
+ }
+ public function getMaxApertureValue() {
+ return $this->maxApertureValue;
+ }
+ public function setMeteringMode( $meteringMode) {
+ $this->meteringMode = $meteringMode;
+ }
+ public function getMeteringMode() {
+ return $this->meteringMode;
+ }
+ public function setRotation( $rotation) {
+ $this->rotation = $rotation;
+ }
+ public function getRotation() {
+ return $this->rotation;
+ }
+ public function setSensor( $sensor) {
+ $this->sensor = $sensor;
+ }
+ public function getSensor() {
+ return $this->sensor;
+ }
+ public function setSubjectDistance( $subjectDistance) {
+ $this->subjectDistance = $subjectDistance;
+ }
+ public function getSubjectDistance() {
+ return $this->subjectDistance;
+ }
+ public function setWhiteBalance( $whiteBalance) {
+ $this->whiteBalance = $whiteBalance;
+ }
+ public function getWhiteBalance() {
+ return $this->whiteBalance;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_DriveFileImageMediaMetadataLocation extends Google_Model {
+ public $altitude;
+ public $latitude;
+ public $longitude;
+ public function setAltitude( $altitude) {
+ $this->altitude = $altitude;
+ }
+ public function getAltitude() {
+ return $this->altitude;
+ }
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_DriveFileIndexableText extends Google_Model {
+ public $text;
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+}
+
+class Google_DriveFileLabels extends Google_Model {
+ public $hidden;
+ public $restricted;
+ public $starred;
+ public $trashed;
+ public $viewed;
+ public function setHidden( $hidden) {
+ $this->hidden = $hidden;
+ }
+ public function getHidden() {
+ return $this->hidden;
+ }
+ public function setRestricted( $restricted) {
+ $this->restricted = $restricted;
+ }
+ public function getRestricted() {
+ return $this->restricted;
+ }
+ public function setStarred( $starred) {
+ $this->starred = $starred;
+ }
+ public function getStarred() {
+ return $this->starred;
+ }
+ public function setTrashed( $trashed) {
+ $this->trashed = $trashed;
+ }
+ public function getTrashed() {
+ return $this->trashed;
+ }
+ public function setViewed( $viewed) {
+ $this->viewed = $viewed;
+ }
+ public function getViewed() {
+ return $this->viewed;
+ }
+}
+
+class Google_DriveFileThumbnail extends Google_Model {
+ public $image;
+ public $mimeType;
+ public function setImage( $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setMimeType( $mimeType) {
+ $this->mimeType = $mimeType;
+ }
+ public function getMimeType() {
+ return $this->mimeType;
+ }
+}
+
+class Google_FileList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_DriveFile';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_DriveFile) */ $items) {
+ $this->assertIsArray($items, 'Google_DriveFile', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_ParentList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_ParentReference';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $selfLink;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_ParentReference) */ $items) {
+ $this->assertIsArray($items, 'Google_ParentReference', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_ParentReference extends Google_Model {
+ public $id;
+ public $isRoot;
+ public $kind;
+ public $parentLink;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIsRoot( $isRoot) {
+ $this->isRoot = $isRoot;
+ }
+ public function getIsRoot() {
+ return $this->isRoot;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setParentLink( $parentLink) {
+ $this->parentLink = $parentLink;
+ }
+ public function getParentLink() {
+ return $this->parentLink;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Permission extends Google_Model {
+ public $additionalRoles;
+ public $authKey;
+ public $etag;
+ public $id;
+ public $kind;
+ public $name;
+ public $photoLink;
+ public $role;
+ public $selfLink;
+ public $type;
+ public $value;
+ public $withLink;
+ public function setAdditionalRoles(/* array(Google_string) */ $additionalRoles) {
+ $this->assertIsArray($additionalRoles, 'Google_string', __METHOD__);
+ $this->additionalRoles = $additionalRoles;
+ }
+ public function getAdditionalRoles() {
+ return $this->additionalRoles;
+ }
+ public function setAuthKey( $authKey) {
+ $this->authKey = $authKey;
+ }
+ public function getAuthKey() {
+ return $this->authKey;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPhotoLink( $photoLink) {
+ $this->photoLink = $photoLink;
+ }
+ public function getPhotoLink() {
+ return $this->photoLink;
+ }
+ public function setRole( $role) {
+ $this->role = $role;
+ }
+ public function getRole() {
+ return $this->role;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+ public function setWithLink( $withLink) {
+ $this->withLink = $withLink;
+ }
+ public function getWithLink() {
+ return $this->withLink;
+ }
+}
+
+class Google_PermissionList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Permission';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $selfLink;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Permission) */ $items) {
+ $this->assertIsArray($items, 'Google_Permission', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Property extends Google_Model {
+ public $etag;
+ public $key;
+ public $kind;
+ public $selfLink;
+ public $value;
+ public $visibility;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+ public function setVisibility( $visibility) {
+ $this->visibility = $visibility;
+ }
+ public function getVisibility() {
+ return $this->visibility;
+ }
+}
+
+class Google_PropertyList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Property';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $selfLink;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Property) */ $items) {
+ $this->assertIsArray($items, 'Google_Property', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Revision extends Google_Model {
+ public $downloadUrl;
+ public $etag;
+ public $exportLinks;
+ public $fileSize;
+ public $id;
+ public $kind;
+ protected $__lastModifyingUserType = 'Google_User';
+ protected $__lastModifyingUserDataType = '';
+ public $lastModifyingUser;
+ public $lastModifyingUserName;
+ public $md5Checksum;
+ public $mimeType;
+ public $modifiedDate;
+ public $originalFilename;
+ public $pinned;
+ public $publishAuto;
+ public $published;
+ public $publishedLink;
+ public $publishedOutsideDomain;
+ public $selfLink;
+ public function setDownloadUrl( $downloadUrl) {
+ $this->downloadUrl = $downloadUrl;
+ }
+ public function getDownloadUrl() {
+ return $this->downloadUrl;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setExportLinks( $exportLinks) {
+ $this->exportLinks = $exportLinks;
+ }
+ public function getExportLinks() {
+ return $this->exportLinks;
+ }
+ public function setFileSize( $fileSize) {
+ $this->fileSize = $fileSize;
+ }
+ public function getFileSize() {
+ return $this->fileSize;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastModifyingUser(Google_User $lastModifyingUser) {
+ $this->lastModifyingUser = $lastModifyingUser;
+ }
+ public function getLastModifyingUser() {
+ return $this->lastModifyingUser;
+ }
+ public function setLastModifyingUserName( $lastModifyingUserName) {
+ $this->lastModifyingUserName = $lastModifyingUserName;
+ }
+ public function getLastModifyingUserName() {
+ return $this->lastModifyingUserName;
+ }
+ public function setMd5Checksum( $md5Checksum) {
+ $this->md5Checksum = $md5Checksum;
+ }
+ public function getMd5Checksum() {
+ return $this->md5Checksum;
+ }
+ public function setMimeType( $mimeType) {
+ $this->mimeType = $mimeType;
+ }
+ public function getMimeType() {
+ return $this->mimeType;
+ }
+ public function setModifiedDate( $modifiedDate) {
+ $this->modifiedDate = $modifiedDate;
+ }
+ public function getModifiedDate() {
+ return $this->modifiedDate;
+ }
+ public function setOriginalFilename( $originalFilename) {
+ $this->originalFilename = $originalFilename;
+ }
+ public function getOriginalFilename() {
+ return $this->originalFilename;
+ }
+ public function setPinned( $pinned) {
+ $this->pinned = $pinned;
+ }
+ public function getPinned() {
+ return $this->pinned;
+ }
+ public function setPublishAuto( $publishAuto) {
+ $this->publishAuto = $publishAuto;
+ }
+ public function getPublishAuto() {
+ return $this->publishAuto;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setPublishedLink( $publishedLink) {
+ $this->publishedLink = $publishedLink;
+ }
+ public function getPublishedLink() {
+ return $this->publishedLink;
+ }
+ public function setPublishedOutsideDomain( $publishedOutsideDomain) {
+ $this->publishedOutsideDomain = $publishedOutsideDomain;
+ }
+ public function getPublishedOutsideDomain() {
+ return $this->publishedOutsideDomain;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_RevisionList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Revision';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $selfLink;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Revision) */ $items) {
+ $this->assertIsArray($items, 'Google_Revision', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_User extends Google_Model {
+ public $displayName;
+ public $isAuthenticatedUser;
+ public $kind;
+ public $permissionId;
+ protected $__pictureType = 'Google_UserPicture';
+ protected $__pictureDataType = '';
+ public $picture;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setIsAuthenticatedUser( $isAuthenticatedUser) {
+ $this->isAuthenticatedUser = $isAuthenticatedUser;
+ }
+ public function getIsAuthenticatedUser() {
+ return $this->isAuthenticatedUser;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPermissionId( $permissionId) {
+ $this->permissionId = $permissionId;
+ }
+ public function getPermissionId() {
+ return $this->permissionId;
+ }
+ public function setPicture(Google_UserPicture $picture) {
+ $this->picture = $picture;
+ }
+ public function getPicture() {
+ return $this->picture;
+ }
+}
+
+class Google_UserPicture extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_FreebaseService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_FreebaseService.php
new file mode 100644
index 0000000..7d5852e
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_FreebaseService.php
@@ -0,0 +1,388 @@
+
+ * $freebaseService = new Google_FreebaseService(...);
+ * $text = $freebaseService->text;
+ *
+ */
+ class Google_TextServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns blob attached to node at specified id as HTML (text.get)
+ *
+ * @param string $id The id of the item that you want data about
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string format Sanitizing transformation.
+ * @opt_param string maxlength The max number of characters to return. Valid only for 'plain' format.
+ * @return Google_ContentserviceGet
+ */
+ public function get($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_ContentserviceGet($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "topic" collection of methods.
+ * Typical usage is:
+ *
+ * $freebaseService = new Google_FreebaseService(...);
+ * $topic = $freebaseService->topic;
+ *
+ */
+ class Google_TopicServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get properties and meta-data about a topic. (topic.lookup)
+ *
+ * @param string $id The id of the item that you want data about.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string dateline Determines how up-to-date the data returned is. A unix epoch time, a guid or a 'now'
+ * @opt_param string filter A frebase domain, type or property id, 'suggest', 'commons', or 'all'. Filter the results and returns only appropriate properties.
+ * @opt_param string lang The language you 'd like the content in - a freebase /type/lang language key.
+ * @opt_param string limit The maximum number of property values to return for each property.
+ * @opt_param bool raw Do not apply any constraints, or get any names.
+ * @return Google_TopicLookup
+ */
+ public function lookup($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('lookup', array($params));
+ if ($this->useObjects()) {
+ return new Google_TopicLookup($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Freebase (v1).
+ *
+ *
+ * Topic and MQL APIs provide you structured access to Freebase data.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_FreebaseService extends Google_Service {
+ public $text;
+ public $topic;
+ /**
+ * Constructs the internal representation of the Freebase service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'freebase/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'freebase';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->text = new Google_TextServiceResource($this, $this->serviceName, 'text', json_decode('{"methods": {"get": {"id": "freebase.text.get", "path": "text{/id*}", "httpMethod": "GET", "parameters": {"format": {"type": "string", "default": "plain", "enum": ["html", "plain", "raw"], "location": "query"}, "id": {"type": "string", "required": true, "repeated": true, "location": "path"}, "maxlength": {"type": "integer", "format": "uint32", "location": "query"}}, "response": {"$ref": "ContentserviceGet"}}}}', true));
+ $this->topic = new Google_TopicServiceResource($this, $this->serviceName, 'topic', json_decode('{"methods": {"lookup": {"id": "freebase.topic.lookup", "path": "topic{/id*}", "httpMethod": "GET", "parameters": {"dateline": {"type": "string", "location": "query"}, "filter": {"type": "string", "repeated": true, "location": "query"}, "id": {"type": "string", "required": true, "repeated": true, "location": "path"}, "lang": {"type": "string", "default": "en", "location": "query"}, "limit": {"type": "integer", "default": "10", "format": "uint32", "location": "query"}, "raw": {"type": "boolean", "default": "false", "location": "query"}}, "response": {"$ref": "TopicLookup"}}}}', true));
+
+ $this->image = new Google_ImageServiceResource($this, $this->serviceName, 'image', json_decode('{"httpMethod": "GET", "path": "image{/id*}", "supportsMediaDownload": true, "id": "freebase.image", "parameters": {"fallbackid": {"type": "string", "default": "/freebase/no_image_png", "location": "query"}, "id": {"type": "string", "required": true, "repeated": true, "location": "path"}, "maxheight": {"type": "integer", "format": "uint32", "maximum": "4096", "location": "query"}, "maxwidth": {"type": "integer", "format": "uint32", "maximum": "4096", "location": "query"}, "mode": {"type": "string", "default": "fit", "enum": ["fill", "fillcrop", "fillcropmid", "fit"], "location": "query"}, "pad": {"type": "boolean", "default": "false", "location": "query"}}}', true));
+ $this->mqlread = new Google_MqlreadServiceResource($this, $this->serviceName, 'mqlread', json_decode('{"httpMethod": "GET", "path": "mqlread", "supportsMediaDownload": true, "id": "freebase.mqlread", "parameters": {"as_of_time": {"type": "string", "location": "query"}, "callback": {"type": "string", "location": "query"}, "cost": {"type": "boolean", "default": "false", "location": "query"}, "cursor": {"type": "string", "location": "query"}, "dateline": {"type": "string", "location": "query"}, "html_escape": {"type": "boolean", "default": "true", "location": "query"}, "indent": {"type": "integer", "default": "0", "format": "uint32", "maximum": "10", "location": "query"}, "lang": {"type": "string", "default": "/lang/en", "location": "query"}, "query": {"type": "string", "required": true, "location": "query"}, "uniqueness_failure": {"type": "string", "default": "hard", "enum": ["hard", "soft"], "location": "query"}}}', true));
+ $this->mqlwrite = new Google_MqlwriteServiceResource($this, $this->serviceName, 'mqlwrite', json_decode('{"httpMethod": "GET", "path": "mqlwrite", "scopes": ["https://www.googleapis.com/auth/freebase"], "supportsMediaDownload": true, "id": "freebase.mqlwrite", "parameters": {"callback": {"type": "string", "location": "query"}, "dateline": {"type": "string", "location": "query"}, "indent": {"type": "integer", "default": "0", "format": "uint32", "maximum": "10", "location": "query"}, "query": {"type": "string", "required": true, "location": "query"}, "use_permission_of": {"type": "string", "location": "query"}}}', true));
+ }
+}
+
+
+
+class Google_ContentserviceGet extends Google_Model {
+ public $result;
+ public function setResult( $result) {
+ $this->result = $result;
+ }
+ public function getResult() {
+ return $this->result;
+ }
+}
+
+class Google_TopicLookup extends Google_Model {
+ public $id;
+ protected $__propertyType = 'Google_TopicLookupProperty';
+ protected $__propertyDataType = '';
+ public $property;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setProperty(Google_TopicLookupProperty $property) {
+ $this->property = $property;
+ }
+ public function getProperty() {
+ return $this->property;
+ }
+}
+
+class Google_TopicLookupProperty extends Google_Model {
+ protected $___freebase_object_profile_linkcountType = 'Google_TopicStatslinkcount';
+ protected $___freebase_object_profile_linkcountDataType = '';
+ public $_freebase_object_profile_linkcount;
+ public function set_freebase_object_profile_linkcount(Google_TopicStatslinkcount $_freebase_object_profile_linkcount) {
+ $this->_freebase_object_profile_linkcount = $_freebase_object_profile_linkcount;
+ }
+ public function get_freebase_object_profile_linkcount() {
+ return $this->_freebase_object_profile_linkcount;
+ }
+}
+
+class Google_TopicPropertyvalue extends Google_Model {
+ public $count;
+ public $status;
+ protected $__valuesType = 'Google_TopicValue';
+ protected $__valuesDataType = 'array';
+ public $values;
+ public $valuetype;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setValues(/* array(Google_TopicValue) */ $values) {
+ $this->assertIsArray($values, 'Google_TopicValue', __METHOD__);
+ $this->values = $values;
+ }
+ public function getValues() {
+ return $this->values;
+ }
+ public function setValuetype( $valuetype) {
+ $this->valuetype = $valuetype;
+ }
+ public function getValuetype() {
+ return $this->valuetype;
+ }
+}
+
+class Google_TopicStatslinkcount extends Google_Model {
+ public $type;
+ protected $__valuesType = 'Google_TopicStatslinkcountValues';
+ protected $__valuesDataType = 'array';
+ public $values;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValues(/* array(Google_TopicStatslinkcountValues) */ $values) {
+ $this->assertIsArray($values, 'Google_TopicStatslinkcountValues', __METHOD__);
+ $this->values = $values;
+ }
+ public function getValues() {
+ return $this->values;
+ }
+}
+
+class Google_TopicStatslinkcountValues extends Google_Model {
+ public $count;
+ public $id;
+ protected $__valuesType = 'Google_TopicStatslinkcountValuesValues';
+ protected $__valuesDataType = 'array';
+ public $values;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setValues(/* array(Google_TopicStatslinkcountValuesValues) */ $values) {
+ $this->assertIsArray($values, 'Google_TopicStatslinkcountValuesValues', __METHOD__);
+ $this->values = $values;
+ }
+ public function getValues() {
+ return $this->values;
+ }
+}
+
+class Google_TopicStatslinkcountValuesValues extends Google_Model {
+ public $count;
+ public $id;
+ protected $__valuesType = 'Google_TopicStatslinkcountValuesValuesValues';
+ protected $__valuesDataType = 'array';
+ public $values;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setValues(/* array(Google_TopicStatslinkcountValuesValuesValues) */ $values) {
+ $this->assertIsArray($values, 'Google_TopicStatslinkcountValuesValuesValues', __METHOD__);
+ $this->values = $values;
+ }
+ public function getValues() {
+ return $this->values;
+ }
+}
+
+class Google_TopicStatslinkcountValuesValuesValues extends Google_Model {
+ public $count;
+ public $id;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_TopicValue extends Google_Model {
+ protected $__citationType = 'Google_TopicValueCitation';
+ protected $__citationDataType = '';
+ public $citation;
+ public $creator;
+ public $dataset;
+ public $id;
+ public $lang;
+ public $project;
+ protected $__propertyType = 'Google_TopicPropertyvalue';
+ protected $__propertyDataType = 'map';
+ public $property;
+ public $text;
+ public $timestamp;
+ public $value;
+ public function setCitation(Google_TopicValueCitation $citation) {
+ $this->citation = $citation;
+ }
+ public function getCitation() {
+ return $this->citation;
+ }
+ public function setCreator( $creator) {
+ $this->creator = $creator;
+ }
+ public function getCreator() {
+ return $this->creator;
+ }
+ public function setDataset( $dataset) {
+ $this->dataset = $dataset;
+ }
+ public function getDataset() {
+ return $this->dataset;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setLang( $lang) {
+ $this->lang = $lang;
+ }
+ public function getLang() {
+ return $this->lang;
+ }
+ public function setProject( $project) {
+ $this->project = $project;
+ }
+ public function getProject() {
+ return $this->project;
+ }
+ public function setProperty(Google_TopicPropertyvalue $property) {
+ $this->property = $property;
+ }
+ public function getProperty() {
+ return $this->property;
+ }
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+ public function setTimestamp( $timestamp) {
+ $this->timestamp = $timestamp;
+ }
+ public function getTimestamp() {
+ return $this->timestamp;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_TopicValueCitation extends Google_Model {
+ public $provider;
+ public $statement;
+ public $uri;
+ public function setProvider( $provider) {
+ $this->provider = $provider;
+ }
+ public function getProvider() {
+ return $this->provider;
+ }
+ public function setStatement( $statement) {
+ $this->statement = $statement;
+ }
+ public function getStatement() {
+ return $this->statement;
+ }
+ public function setUri( $uri) {
+ $this->uri = $uri;
+ }
+ public function getUri() {
+ return $this->uri;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_FusiontablesService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_FusiontablesService.php
new file mode 100644
index 0000000..6868c4e
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_FusiontablesService.php
@@ -0,0 +1,1388 @@
+
+ * $fusiontablesService = new Google_FusiontablesService(...);
+ * $column = $fusiontablesService->column;
+ *
+ */
+ class Google_ColumnServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the column. (column.delete)
+ *
+ * @param string $tableId Table from which the column is being deleted.
+ * @param string $columnId Name or identifier for the column being deleted.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($tableId, $columnId, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'columnId' => $columnId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves a specific column by its id. (column.get)
+ *
+ * @param string $tableId Table to which the column belongs.
+ * @param string $columnId Name or identifier for the column that is being requested.
+ * @param array $optParams Optional parameters.
+ * @return Google_Column
+ */
+ public function get($tableId, $columnId, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'columnId' => $columnId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Column($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Adds a new column to the table. (column.insert)
+ *
+ * @param string $tableId Table for which a new column is being added.
+ * @param Google_Column $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Column
+ */
+ public function insert($tableId, Google_Column $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Column($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of columns. (column.list)
+ *
+ * @param string $tableId Table whose columns are being listed.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of columns to return. Optional. Default is 5.
+ * @opt_param string pageToken Continuation token specifying which result page to return. Optional.
+ * @return Google_ColumnList
+ */
+ public function listColumn($tableId, $optParams = array()) {
+ $params = array('tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ColumnList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the name or type of an existing column. This method supports patch semantics.
+ * (column.patch)
+ *
+ * @param string $tableId Table for which the column is being updated.
+ * @param string $columnId Name or identifier for the column that is being updated.
+ * @param Google_Column $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Column
+ */
+ public function patch($tableId, $columnId, Google_Column $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'columnId' => $columnId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Column($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the name or type of an existing column. (column.update)
+ *
+ * @param string $tableId Table for which the column is being updated.
+ * @param string $columnId Name or identifier for the column that is being updated.
+ * @param Google_Column $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Column
+ */
+ public function update($tableId, $columnId, Google_Column $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'columnId' => $columnId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Column($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "query" collection of methods.
+ * Typical usage is:
+ *
+ * $fusiontablesService = new Google_FusiontablesService(...);
+ * $query = $fusiontablesService->query;
+ *
+ */
+ class Google_QueryServiceResource extends Google_ServiceResource {
+
+ /**
+ * Executes an SQL SELECT/INSERT/UPDATE/DELETE/SHOW/DESCRIBE/CREATE statement. (query.sql)
+ *
+ * @param string $sql An SQL SELECT/SHOW/DESCRIBE/INSERT/UPDATE/DELETE/CREATE statement.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool hdrs Should column names be included (in the first row)?. Default is true.
+ * @opt_param bool typed Should typed values be returned in the (JSON) response -- numbers for numeric values and parsed geometries for KML values? Default is true.
+ * @return Google_Sqlresponse
+ */
+ public function sql($sql, $optParams = array()) {
+ $params = array('sql' => $sql);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('sql', array($params));
+ if ($this->useObjects()) {
+ return new Google_Sqlresponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Executes an SQL SELECT/SHOW/DESCRIBE statement. (query.sqlGet)
+ *
+ * @param string $sql An SQL SELECT/SHOW/DESCRIBE statement.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool hdrs Should column names be included (in the first row)?. Default is true.
+ * @opt_param bool typed Should typed values be returned in the (JSON) response -- numbers for numeric values and parsed geometries for KML values? Default is true.
+ * @return Google_Sqlresponse
+ */
+ public function sqlGet($sql, $optParams = array()) {
+ $params = array('sql' => $sql);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('sqlGet', array($params));
+ if ($this->useObjects()) {
+ return new Google_Sqlresponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "style" collection of methods.
+ * Typical usage is:
+ *
+ * $fusiontablesService = new Google_FusiontablesService(...);
+ * $style = $fusiontablesService->style;
+ *
+ */
+ class Google_StyleServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a style. (style.delete)
+ *
+ * @param string $tableId Table from which the style is being deleted
+ * @param int $styleId Identifier (within a table) for the style being deleted
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($tableId, $styleId, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'styleId' => $styleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a specific style. (style.get)
+ *
+ * @param string $tableId Table to which the requested style belongs
+ * @param int $styleId Identifier (integer) for a specific style in a table
+ * @param array $optParams Optional parameters.
+ * @return Google_StyleSetting
+ */
+ public function get($tableId, $styleId, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'styleId' => $styleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_StyleSetting($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Adds a new style for the table. (style.insert)
+ *
+ * @param string $tableId Table for which a new style is being added
+ * @param Google_StyleSetting $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_StyleSetting
+ */
+ public function insert($tableId, Google_StyleSetting $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_StyleSetting($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of styles. (style.list)
+ *
+ * @param string $tableId Table whose styles are being listed
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of styles to return. Optional. Default is 5.
+ * @opt_param string pageToken Continuation token specifying which result page to return. Optional.
+ * @return Google_StyleSettingList
+ */
+ public function listStyle($tableId, $optParams = array()) {
+ $params = array('tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_StyleSettingList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing style. This method supports patch semantics. (style.patch)
+ *
+ * @param string $tableId Table whose style is being updated.
+ * @param int $styleId Identifier (within a table) for the style being updated.
+ * @param Google_StyleSetting $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_StyleSetting
+ */
+ public function patch($tableId, $styleId, Google_StyleSetting $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'styleId' => $styleId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_StyleSetting($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing style. (style.update)
+ *
+ * @param string $tableId Table whose style is being updated.
+ * @param int $styleId Identifier (within a table) for the style being updated.
+ * @param Google_StyleSetting $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_StyleSetting
+ */
+ public function update($tableId, $styleId, Google_StyleSetting $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'styleId' => $styleId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_StyleSetting($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "table" collection of methods.
+ * Typical usage is:
+ *
+ * $fusiontablesService = new Google_FusiontablesService(...);
+ * $table = $fusiontablesService->table;
+ *
+ */
+ class Google_TableServiceResource extends Google_ServiceResource {
+
+ /**
+ * Copies a table. (table.copy)
+ *
+ * @param string $tableId ID of the table that is being copied.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool copyPresentation Whether to also copy tabs, styles, and templates. Default is false.
+ * @return Google_Table
+ */
+ public function copy($tableId, $optParams = array()) {
+ $params = array('tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('copy', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes a table. (table.delete)
+ *
+ * @param string $tableId ID of the table that is being deleted.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($tableId, $optParams = array()) {
+ $params = array('tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves a specific table by its id. (table.get)
+ *
+ * @param string $tableId Identifier(ID) for the table being requested.
+ * @param array $optParams Optional parameters.
+ * @return Google_Table
+ */
+ public function get($tableId, $optParams = array()) {
+ $params = array('tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Import more rows into a table. (table.importRows)
+ *
+ * @param string $tableId The table into which new rows are being imported.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string delimiter The delimiter used to separate cell values. This can only consist of a single character. Default is ','.
+ * @opt_param string encoding The encoding of the content. Default is UTF-8. Use 'auto-detect' if you are unsure of the encoding.
+ * @opt_param int endLine The index of the last line from which to start importing, exclusive. Thus, the number of imported lines is endLine - startLine. If this parameter is not provided, the file will be imported until the last line of the file. If endLine is negative, then the imported content will exclude the last endLine lines. That is, if endline is negative, no line will be imported whose index is greater than N + endLine where N is the number of lines in the file, and the number of imported lines will be N + endLine - startLine.
+ * @opt_param bool isStrict Whether the CSV must have the same number of values for each row. If false, rows with fewer values will be padded with empty values. Default is true.
+ * @opt_param int startLine The index of the first line from which to start importing, inclusive. Default is 0.
+ * @return Google_Import
+ */
+ public function importRows($tableId, $optParams = array()) {
+ $params = array('tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('importRows', array($params));
+ if ($this->useObjects()) {
+ return new Google_Import($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Import a new table. (table.importTable)
+ *
+ * @param string $name The name to be assigned to the new table.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string delimiter The delimiter used to separate cell values. This can only consist of a single character. Default is ','.
+ * @opt_param string encoding The encoding of the content. Default is UTF-8. Use 'auto-detect' if you are unsure of the encoding.
+ * @return Google_Table
+ */
+ public function importTable($name, $optParams = array()) {
+ $params = array('name' => $name);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('importTable', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new table. (table.insert)
+ *
+ * @param Google_Table $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Table
+ */
+ public function insert(Google_Table $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of tables a user owns. (table.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of styles to return. Optional. Default is 5.
+ * @opt_param string pageToken Continuation token specifying which result page to return. Optional.
+ * @return Google_TableList
+ */
+ public function listTable($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TableList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing table. Unless explicitly requested, only the name, description, and
+ * attribution will be updated. This method supports patch semantics. (table.patch)
+ *
+ * @param string $tableId ID of the table that is being updated.
+ * @param Google_Table $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool replaceViewDefinition Should the view definition also be updated? The specified view definition replaces the existing one. Only a view can be updated with a new definition.
+ * @return Google_Table
+ */
+ public function patch($tableId, Google_Table $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing table. Unless explicitly requested, only the name, description, and
+ * attribution will be updated. (table.update)
+ *
+ * @param string $tableId ID of the table that is being updated.
+ * @param Google_Table $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool replaceViewDefinition Should the view definition also be updated? The specified view definition replaces the existing one. Only a view can be updated with a new definition.
+ * @return Google_Table
+ */
+ public function update($tableId, Google_Table $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Table($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "template" collection of methods.
+ * Typical usage is:
+ *
+ * $fusiontablesService = new Google_FusiontablesService(...);
+ * $template = $fusiontablesService->template;
+ *
+ */
+ class Google_TemplateServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a template (template.delete)
+ *
+ * @param string $tableId Table from which the template is being deleted
+ * @param int $templateId Identifier for the template which is being deleted
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($tableId, $templateId, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'templateId' => $templateId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves a specific template by its id (template.get)
+ *
+ * @param string $tableId Table to which the template belongs
+ * @param int $templateId Identifier for the template that is being requested
+ * @param array $optParams Optional parameters.
+ * @return Google_Template
+ */
+ public function get($tableId, $templateId, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'templateId' => $templateId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Template($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new template for the table. (template.insert)
+ *
+ * @param string $tableId Table for which a new template is being created
+ * @param Google_Template $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Template
+ */
+ public function insert($tableId, Google_Template $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Template($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of templates. (template.list)
+ *
+ * @param string $tableId Identifier for the table whose templates are being requested
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of templates to return. Optional. Default is 5.
+ * @opt_param string pageToken Continuation token specifying which results page to return. Optional.
+ * @return Google_TemplateList
+ */
+ public function listTemplate($tableId, $optParams = array()) {
+ $params = array('tableId' => $tableId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TemplateList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing template. This method supports patch semantics. (template.patch)
+ *
+ * @param string $tableId Table to which the updated template belongs
+ * @param int $templateId Identifier for the template that is being updated
+ * @param Google_Template $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Template
+ */
+ public function patch($tableId, $templateId, Google_Template $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'templateId' => $templateId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Template($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing template (template.update)
+ *
+ * @param string $tableId Table to which the updated template belongs
+ * @param int $templateId Identifier for the template that is being updated
+ * @param Google_Template $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Template
+ */
+ public function update($tableId, $templateId, Google_Template $postBody, $optParams = array()) {
+ $params = array('tableId' => $tableId, 'templateId' => $templateId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Template($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Fusiontables (v1).
+ *
+ *
+ * API for working with Fusion Tables data.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_FusiontablesService extends Google_Service {
+ public $column;
+ public $query;
+ public $style;
+ public $table;
+ public $template;
+ /**
+ * Constructs the internal representation of the Fusiontables service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'fusiontables/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'fusiontables';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->column = new Google_ColumnServiceResource($this, $this->serviceName, 'column', json_decode('{"methods": {"delete": {"id": "fusiontables.column.delete", "path": "tables/{tableId}/columns/{columnId}", "httpMethod": "DELETE", "parameters": {"columnId": {"type": "string", "required": true, "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "get": {"id": "fusiontables.column.get", "path": "tables/{tableId}/columns/{columnId}", "httpMethod": "GET", "parameters": {"columnId": {"type": "string", "required": true, "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Column"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "insert": {"id": "fusiontables.column.insert", "path": "tables/{tableId}/columns", "httpMethod": "POST", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Column"}, "response": {"$ref": "Column"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "list": {"id": "fusiontables.column.list", "path": "tables/{tableId}/columns", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ColumnList"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "patch": {"id": "fusiontables.column.patch", "path": "tables/{tableId}/columns/{columnId}", "httpMethod": "PATCH", "parameters": {"columnId": {"type": "string", "required": true, "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Column"}, "response": {"$ref": "Column"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "update": {"id": "fusiontables.column.update", "path": "tables/{tableId}/columns/{columnId}", "httpMethod": "PUT", "parameters": {"columnId": {"type": "string", "required": true, "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Column"}, "response": {"$ref": "Column"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}}}', true));
+ $this->query = new Google_QueryServiceResource($this, $this->serviceName, 'query', json_decode('{"methods": {"sql": {"id": "fusiontables.query.sql", "path": "query", "httpMethod": "POST", "parameters": {"hdrs": {"type": "boolean", "location": "query"}, "sql": {"type": "string", "required": true, "location": "query"}, "typed": {"type": "boolean", "location": "query"}}, "response": {"$ref": "Sqlresponse"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "sqlGet": {"id": "fusiontables.query.sqlGet", "path": "query", "httpMethod": "GET", "parameters": {"hdrs": {"type": "boolean", "location": "query"}, "sql": {"type": "string", "required": true, "location": "query"}, "typed": {"type": "boolean", "location": "query"}}, "response": {"$ref": "Sqlresponse"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}}}', true));
+ $this->style = new Google_StyleServiceResource($this, $this->serviceName, 'style', json_decode('{"methods": {"delete": {"id": "fusiontables.style.delete", "path": "tables/{tableId}/styles/{styleId}", "httpMethod": "DELETE", "parameters": {"styleId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "get": {"id": "fusiontables.style.get", "path": "tables/{tableId}/styles/{styleId}", "httpMethod": "GET", "parameters": {"styleId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "StyleSetting"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "insert": {"id": "fusiontables.style.insert", "path": "tables/{tableId}/styles", "httpMethod": "POST", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "StyleSetting"}, "response": {"$ref": "StyleSetting"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "list": {"id": "fusiontables.style.list", "path": "tables/{tableId}/styles", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "StyleSettingList"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "patch": {"id": "fusiontables.style.patch", "path": "tables/{tableId}/styles/{styleId}", "httpMethod": "PATCH", "parameters": {"styleId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "StyleSetting"}, "response": {"$ref": "StyleSetting"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "update": {"id": "fusiontables.style.update", "path": "tables/{tableId}/styles/{styleId}", "httpMethod": "PUT", "parameters": {"styleId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "StyleSetting"}, "response": {"$ref": "StyleSetting"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}}}', true));
+ $this->table = new Google_TableServiceResource($this, $this->serviceName, 'table', json_decode('{"methods": {"copy": {"id": "fusiontables.table.copy", "path": "tables/{tableId}/copy", "httpMethod": "POST", "parameters": {"copyPresentation": {"type": "boolean", "location": "query"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "delete": {"id": "fusiontables.table.delete", "path": "tables/{tableId}", "httpMethod": "DELETE", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "get": {"id": "fusiontables.table.get", "path": "tables/{tableId}", "httpMethod": "GET", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "importRows": {"id": "fusiontables.table.importRows", "path": "tables/{tableId}/import", "httpMethod": "POST", "parameters": {"delimiter": {"type": "string", "location": "query"}, "encoding": {"type": "string", "location": "query"}, "endLine": {"type": "integer", "format": "int32", "location": "query"}, "isStrict": {"type": "boolean", "location": "query"}, "startLine": {"type": "integer", "format": "int32", "location": "query"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Import"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["application/octet-stream"], "maxSize": "100MB", "protocols": {"simple": {"multipart": true, "path": "/upload/fusiontables/v1/tables/{tableId}/import"}, "resumable": {"multipart": true, "path": "/resumable/upload/fusiontables/v1/tables/{tableId}/import"}}}}, "importTable": {"id": "fusiontables.table.importTable", "path": "tables/import", "httpMethod": "POST", "parameters": {"delimiter": {"type": "string", "location": "query"}, "encoding": {"type": "string", "location": "query"}, "name": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["application/octet-stream"], "maxSize": "100MB", "protocols": {"simple": {"multipart": true, "path": "/upload/fusiontables/v1/tables/import"}, "resumable": {"multipart": true, "path": "/resumable/upload/fusiontables/v1/tables/import"}}}}, "insert": {"id": "fusiontables.table.insert", "path": "tables", "httpMethod": "POST", "request": {"$ref": "Table"}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "list": {"id": "fusiontables.table.list", "path": "tables", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "TableList"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "patch": {"id": "fusiontables.table.patch", "path": "tables/{tableId}", "httpMethod": "PATCH", "parameters": {"replaceViewDefinition": {"type": "boolean", "location": "query"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Table"}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "update": {"id": "fusiontables.table.update", "path": "tables/{tableId}", "httpMethod": "PUT", "parameters": {"replaceViewDefinition": {"type": "boolean", "location": "query"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Table"}, "response": {"$ref": "Table"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}}}', true));
+ $this->template = new Google_TemplateServiceResource($this, $this->serviceName, 'template', json_decode('{"methods": {"delete": {"id": "fusiontables.template.delete", "path": "tables/{tableId}/templates/{templateId}", "httpMethod": "DELETE", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}, "templateId": {"type": "integer", "required": true, "format": "int32", "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "get": {"id": "fusiontables.template.get", "path": "tables/{tableId}/templates/{templateId}", "httpMethod": "GET", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}, "templateId": {"type": "integer", "required": true, "format": "int32", "location": "path"}}, "response": {"$ref": "Template"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "insert": {"id": "fusiontables.template.insert", "path": "tables/{tableId}/templates", "httpMethod": "POST", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Template"}, "response": {"$ref": "Template"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "list": {"id": "fusiontables.template.list", "path": "tables/{tableId}/templates", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "tableId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "TemplateList"}, "scopes": ["https://www.googleapis.com/auth/fusiontables", "https://www.googleapis.com/auth/fusiontables.readonly"]}, "patch": {"id": "fusiontables.template.patch", "path": "tables/{tableId}/templates/{templateId}", "httpMethod": "PATCH", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}, "templateId": {"type": "integer", "required": true, "format": "int32", "location": "path"}}, "request": {"$ref": "Template"}, "response": {"$ref": "Template"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}, "update": {"id": "fusiontables.template.update", "path": "tables/{tableId}/templates/{templateId}", "httpMethod": "PUT", "parameters": {"tableId": {"type": "string", "required": true, "location": "path"}, "templateId": {"type": "integer", "required": true, "format": "int32", "location": "path"}}, "request": {"$ref": "Template"}, "response": {"$ref": "Template"}, "scopes": ["https://www.googleapis.com/auth/fusiontables"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Bucket extends Google_Model {
+ public $color;
+ public $icon;
+ public $max;
+ public $min;
+ public $opacity;
+ public $weight;
+ public function setColor( $color) {
+ $this->color = $color;
+ }
+ public function getColor() {
+ return $this->color;
+ }
+ public function setIcon( $icon) {
+ $this->icon = $icon;
+ }
+ public function getIcon() {
+ return $this->icon;
+ }
+ public function setMax( $max) {
+ $this->max = $max;
+ }
+ public function getMax() {
+ return $this->max;
+ }
+ public function setMin( $min) {
+ $this->min = $min;
+ }
+ public function getMin() {
+ return $this->min;
+ }
+ public function setOpacity( $opacity) {
+ $this->opacity = $opacity;
+ }
+ public function getOpacity() {
+ return $this->opacity;
+ }
+ public function setWeight( $weight) {
+ $this->weight = $weight;
+ }
+ public function getWeight() {
+ return $this->weight;
+ }
+}
+
+class Google_Column extends Google_Model {
+ protected $__baseColumnType = 'Google_ColumnBaseColumn';
+ protected $__baseColumnDataType = '';
+ public $baseColumn;
+ public $columnId;
+ public $kind;
+ public $name;
+ public $type;
+ public function setBaseColumn(Google_ColumnBaseColumn $baseColumn) {
+ $this->baseColumn = $baseColumn;
+ }
+ public function getBaseColumn() {
+ return $this->baseColumn;
+ }
+ public function setColumnId( $columnId) {
+ $this->columnId = $columnId;
+ }
+ public function getColumnId() {
+ return $this->columnId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ColumnBaseColumn extends Google_Model {
+ public $columnId;
+ public $tableIndex;
+ public function setColumnId( $columnId) {
+ $this->columnId = $columnId;
+ }
+ public function getColumnId() {
+ return $this->columnId;
+ }
+ public function setTableIndex( $tableIndex) {
+ $this->tableIndex = $tableIndex;
+ }
+ public function getTableIndex() {
+ return $this->tableIndex;
+ }
+}
+
+class Google_ColumnList extends Google_Model {
+ protected $__itemsType = 'Google_Column';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public function setItems(/* array(Google_Column) */ $items) {
+ $this->assertIsArray($items, 'Google_Column', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Geometry extends Google_Model {
+ public $geometries;
+ public $geometry;
+ public $type;
+ public function setGeometries(/* array(Google_object) */ $geometries) {
+ $this->assertIsArray($geometries, 'Google_object', __METHOD__);
+ $this->geometries = $geometries;
+ }
+ public function getGeometries() {
+ return $this->geometries;
+ }
+ public function setGeometry( $geometry) {
+ $this->geometry = $geometry;
+ }
+ public function getGeometry() {
+ return $this->geometry;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Import extends Google_Model {
+ public $kind;
+ public $numRowsReceived;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNumRowsReceived( $numRowsReceived) {
+ $this->numRowsReceived = $numRowsReceived;
+ }
+ public function getNumRowsReceived() {
+ return $this->numRowsReceived;
+ }
+}
+
+class Google_Line extends Google_Model {
+ public $coordinates;
+ public $type;
+ public function setCoordinates(/* array(Google_double) */ $coordinates) {
+ $this->assertIsArray($coordinates, 'Google_double', __METHOD__);
+ $this->coordinates = $coordinates;
+ }
+ public function getCoordinates() {
+ return $this->coordinates;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_LineStyle extends Google_Model {
+ public $strokeColor;
+ protected $__strokeColorStylerType = 'Google_StyleFunction';
+ protected $__strokeColorStylerDataType = '';
+ public $strokeColorStyler;
+ public $strokeOpacity;
+ public $strokeWeight;
+ protected $__strokeWeightStylerType = 'Google_StyleFunction';
+ protected $__strokeWeightStylerDataType = '';
+ public $strokeWeightStyler;
+ public function setStrokeColor( $strokeColor) {
+ $this->strokeColor = $strokeColor;
+ }
+ public function getStrokeColor() {
+ return $this->strokeColor;
+ }
+ public function setStrokeColorStyler(Google_StyleFunction $strokeColorStyler) {
+ $this->strokeColorStyler = $strokeColorStyler;
+ }
+ public function getStrokeColorStyler() {
+ return $this->strokeColorStyler;
+ }
+ public function setStrokeOpacity( $strokeOpacity) {
+ $this->strokeOpacity = $strokeOpacity;
+ }
+ public function getStrokeOpacity() {
+ return $this->strokeOpacity;
+ }
+ public function setStrokeWeight( $strokeWeight) {
+ $this->strokeWeight = $strokeWeight;
+ }
+ public function getStrokeWeight() {
+ return $this->strokeWeight;
+ }
+ public function setStrokeWeightStyler(Google_StyleFunction $strokeWeightStyler) {
+ $this->strokeWeightStyler = $strokeWeightStyler;
+ }
+ public function getStrokeWeightStyler() {
+ return $this->strokeWeightStyler;
+ }
+}
+
+class Google_Point extends Google_Model {
+ public $coordinates;
+ public $type;
+ public function setCoordinates(/* array(Google_double) */ $coordinates) {
+ $this->assertIsArray($coordinates, 'Google_double', __METHOD__);
+ $this->coordinates = $coordinates;
+ }
+ public function getCoordinates() {
+ return $this->coordinates;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_PointStyle extends Google_Model {
+ public $iconName;
+ protected $__iconStylerType = 'Google_StyleFunction';
+ protected $__iconStylerDataType = '';
+ public $iconStyler;
+ public function setIconName( $iconName) {
+ $this->iconName = $iconName;
+ }
+ public function getIconName() {
+ return $this->iconName;
+ }
+ public function setIconStyler(Google_StyleFunction $iconStyler) {
+ $this->iconStyler = $iconStyler;
+ }
+ public function getIconStyler() {
+ return $this->iconStyler;
+ }
+}
+
+class Google_Polygon extends Google_Model {
+ public $coordinates;
+ public $type;
+ public function setCoordinates(/* array(Google_double) */ $coordinates) {
+ $this->assertIsArray($coordinates, 'Google_double', __METHOD__);
+ $this->coordinates = $coordinates;
+ }
+ public function getCoordinates() {
+ return $this->coordinates;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_PolygonStyle extends Google_Model {
+ public $fillColor;
+ protected $__fillColorStylerType = 'Google_StyleFunction';
+ protected $__fillColorStylerDataType = '';
+ public $fillColorStyler;
+ public $fillOpacity;
+ public $strokeColor;
+ protected $__strokeColorStylerType = 'Google_StyleFunction';
+ protected $__strokeColorStylerDataType = '';
+ public $strokeColorStyler;
+ public $strokeOpacity;
+ public $strokeWeight;
+ protected $__strokeWeightStylerType = 'Google_StyleFunction';
+ protected $__strokeWeightStylerDataType = '';
+ public $strokeWeightStyler;
+ public function setFillColor( $fillColor) {
+ $this->fillColor = $fillColor;
+ }
+ public function getFillColor() {
+ return $this->fillColor;
+ }
+ public function setFillColorStyler(Google_StyleFunction $fillColorStyler) {
+ $this->fillColorStyler = $fillColorStyler;
+ }
+ public function getFillColorStyler() {
+ return $this->fillColorStyler;
+ }
+ public function setFillOpacity( $fillOpacity) {
+ $this->fillOpacity = $fillOpacity;
+ }
+ public function getFillOpacity() {
+ return $this->fillOpacity;
+ }
+ public function setStrokeColor( $strokeColor) {
+ $this->strokeColor = $strokeColor;
+ }
+ public function getStrokeColor() {
+ return $this->strokeColor;
+ }
+ public function setStrokeColorStyler(Google_StyleFunction $strokeColorStyler) {
+ $this->strokeColorStyler = $strokeColorStyler;
+ }
+ public function getStrokeColorStyler() {
+ return $this->strokeColorStyler;
+ }
+ public function setStrokeOpacity( $strokeOpacity) {
+ $this->strokeOpacity = $strokeOpacity;
+ }
+ public function getStrokeOpacity() {
+ return $this->strokeOpacity;
+ }
+ public function setStrokeWeight( $strokeWeight) {
+ $this->strokeWeight = $strokeWeight;
+ }
+ public function getStrokeWeight() {
+ return $this->strokeWeight;
+ }
+ public function setStrokeWeightStyler(Google_StyleFunction $strokeWeightStyler) {
+ $this->strokeWeightStyler = $strokeWeightStyler;
+ }
+ public function getStrokeWeightStyler() {
+ return $this->strokeWeightStyler;
+ }
+}
+
+class Google_Sqlresponse extends Google_Model {
+ public $columns;
+ public $kind;
+ public $rows;
+ public function setColumns(/* array(Google_string) */ $columns) {
+ $this->assertIsArray($columns, 'Google_string', __METHOD__);
+ $this->columns = $columns;
+ }
+ public function getColumns() {
+ return $this->columns;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRows(/* array(Google_object) */ $rows) {
+ $this->assertIsArray($rows, 'Google_object', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+}
+
+class Google_StyleFunction extends Google_Model {
+ protected $__bucketsType = 'Google_Bucket';
+ protected $__bucketsDataType = 'array';
+ public $buckets;
+ public $columnName;
+ protected $__gradientType = 'Google_StyleFunctionGradient';
+ protected $__gradientDataType = '';
+ public $gradient;
+ public $kind;
+ public function setBuckets(/* array(Google_Bucket) */ $buckets) {
+ $this->assertIsArray($buckets, 'Google_Bucket', __METHOD__);
+ $this->buckets = $buckets;
+ }
+ public function getBuckets() {
+ return $this->buckets;
+ }
+ public function setColumnName( $columnName) {
+ $this->columnName = $columnName;
+ }
+ public function getColumnName() {
+ return $this->columnName;
+ }
+ public function setGradient(Google_StyleFunctionGradient $gradient) {
+ $this->gradient = $gradient;
+ }
+ public function getGradient() {
+ return $this->gradient;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_StyleFunctionGradient extends Google_Model {
+ protected $__colorsType = 'Google_StyleFunctionGradientColors';
+ protected $__colorsDataType = 'array';
+ public $colors;
+ public $max;
+ public $min;
+ public function setColors(/* array(Google_StyleFunctionGradientColors) */ $colors) {
+ $this->assertIsArray($colors, 'Google_StyleFunctionGradientColors', __METHOD__);
+ $this->colors = $colors;
+ }
+ public function getColors() {
+ return $this->colors;
+ }
+ public function setMax( $max) {
+ $this->max = $max;
+ }
+ public function getMax() {
+ return $this->max;
+ }
+ public function setMin( $min) {
+ $this->min = $min;
+ }
+ public function getMin() {
+ return $this->min;
+ }
+}
+
+class Google_StyleFunctionGradientColors extends Google_Model {
+ public $color;
+ public $opacity;
+ public function setColor( $color) {
+ $this->color = $color;
+ }
+ public function getColor() {
+ return $this->color;
+ }
+ public function setOpacity( $opacity) {
+ $this->opacity = $opacity;
+ }
+ public function getOpacity() {
+ return $this->opacity;
+ }
+}
+
+class Google_StyleSetting extends Google_Model {
+ public $kind;
+ protected $__markerOptionsType = 'Google_PointStyle';
+ protected $__markerOptionsDataType = '';
+ public $markerOptions;
+ public $name;
+ protected $__polygonOptionsType = 'Google_PolygonStyle';
+ protected $__polygonOptionsDataType = '';
+ public $polygonOptions;
+ protected $__polylineOptionsType = 'Google_LineStyle';
+ protected $__polylineOptionsDataType = '';
+ public $polylineOptions;
+ public $styleId;
+ public $tableId;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMarkerOptions(Google_PointStyle $markerOptions) {
+ $this->markerOptions = $markerOptions;
+ }
+ public function getMarkerOptions() {
+ return $this->markerOptions;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPolygonOptions(Google_PolygonStyle $polygonOptions) {
+ $this->polygonOptions = $polygonOptions;
+ }
+ public function getPolygonOptions() {
+ return $this->polygonOptions;
+ }
+ public function setPolylineOptions(Google_LineStyle $polylineOptions) {
+ $this->polylineOptions = $polylineOptions;
+ }
+ public function getPolylineOptions() {
+ return $this->polylineOptions;
+ }
+ public function setStyleId( $styleId) {
+ $this->styleId = $styleId;
+ }
+ public function getStyleId() {
+ return $this->styleId;
+ }
+ public function setTableId( $tableId) {
+ $this->tableId = $tableId;
+ }
+ public function getTableId() {
+ return $this->tableId;
+ }
+}
+
+class Google_StyleSettingList extends Google_Model {
+ protected $__itemsType = 'Google_StyleSetting';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public function setItems(/* array(Google_StyleSetting) */ $items) {
+ $this->assertIsArray($items, 'Google_StyleSetting', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Table extends Google_Model {
+ public $attribution;
+ public $attributionLink;
+ public $baseTableIds;
+ protected $__columnsType = 'Google_Column';
+ protected $__columnsDataType = 'array';
+ public $columns;
+ public $description;
+ public $isExportable;
+ public $kind;
+ public $name;
+ public $sql;
+ public $tableId;
+ public function setAttribution( $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setAttributionLink( $attributionLink) {
+ $this->attributionLink = $attributionLink;
+ }
+ public function getAttributionLink() {
+ return $this->attributionLink;
+ }
+ public function setBaseTableIds(/* array(Google_string) */ $baseTableIds) {
+ $this->assertIsArray($baseTableIds, 'Google_string', __METHOD__);
+ $this->baseTableIds = $baseTableIds;
+ }
+ public function getBaseTableIds() {
+ return $this->baseTableIds;
+ }
+ public function setColumns(/* array(Google_Column) */ $columns) {
+ $this->assertIsArray($columns, 'Google_Column', __METHOD__);
+ $this->columns = $columns;
+ }
+ public function getColumns() {
+ return $this->columns;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setIsExportable( $isExportable) {
+ $this->isExportable = $isExportable;
+ }
+ public function getIsExportable() {
+ return $this->isExportable;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setSql( $sql) {
+ $this->sql = $sql;
+ }
+ public function getSql() {
+ return $this->sql;
+ }
+ public function setTableId( $tableId) {
+ $this->tableId = $tableId;
+ }
+ public function getTableId() {
+ return $this->tableId;
+ }
+}
+
+class Google_TableList extends Google_Model {
+ protected $__itemsType = 'Google_Table';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Table) */ $items) {
+ $this->assertIsArray($items, 'Google_Table', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Template extends Google_Model {
+ public $automaticColumnNames;
+ public $body;
+ public $kind;
+ public $name;
+ public $tableId;
+ public $templateId;
+ public function setAutomaticColumnNames(/* array(Google_string) */ $automaticColumnNames) {
+ $this->assertIsArray($automaticColumnNames, 'Google_string', __METHOD__);
+ $this->automaticColumnNames = $automaticColumnNames;
+ }
+ public function getAutomaticColumnNames() {
+ return $this->automaticColumnNames;
+ }
+ public function setBody( $body) {
+ $this->body = $body;
+ }
+ public function getBody() {
+ return $this->body;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setTableId( $tableId) {
+ $this->tableId = $tableId;
+ }
+ public function getTableId() {
+ return $this->tableId;
+ }
+ public function setTemplateId( $templateId) {
+ $this->templateId = $templateId;
+ }
+ public function getTemplateId() {
+ return $this->templateId;
+ }
+}
+
+class Google_TemplateList extends Google_Model {
+ protected $__itemsType = 'Google_Template';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public function setItems(/* array(Google_Template) */ $items) {
+ $this->assertIsArray($items, 'Google_Template', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GamesManagementService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GamesManagementService.php
new file mode 100644
index 0000000..409ce1e
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GamesManagementService.php
@@ -0,0 +1,384 @@
+
+ * $gamesManagementService = new Google_GamesManagementService(...);
+ * $achievements = $gamesManagementService->achievements;
+ *
+ */
+ class Google_AchievementsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Resets the achievement with the given ID. This method is only accessible to whitelisted tester
+ * accounts for your application. (achievements.reset)
+ *
+ * @param string $achievementId The ID of the achievement used by this method.
+ * @param array $optParams Optional parameters.
+ * @return Google_AchievementResetResponse
+ */
+ public function reset($achievementId, $optParams = array()) {
+ $params = array('achievementId' => $achievementId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('reset', array($params));
+ if ($this->useObjects()) {
+ return new Google_AchievementResetResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Resets all achievements for the currently authenticated player for your application. This method
+ * is only accessible to whitelisted tester accounts for your application. (achievements.resetAll)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_AchievementResetAllResponse
+ */
+ public function resetAll($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('resetAll', array($params));
+ if ($this->useObjects()) {
+ return new Google_AchievementResetAllResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "applications" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesManagementService = new Google_GamesManagementService(...);
+ * $applications = $gamesManagementService->applications;
+ *
+ */
+ class Google_ApplicationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get the list of players hidden from the given application. This method is only available to user
+ * accounts for your developer console. (applications.listHidden)
+ *
+ * @param string $applicationId The application being requested.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults The maximum number of player resources to return in the response, used for paging. For any response, the actual number of player resources returned may be less than the specified maxResults.
+ * @opt_param string pageToken The token returned by the previous request.
+ * @return Google_HiddenPlayerList
+ */
+ public function listHidden($applicationId, $optParams = array()) {
+ $params = array('applicationId' => $applicationId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('listHidden', array($params));
+ if ($this->useObjects()) {
+ return new Google_HiddenPlayerList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "players" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesManagementService = new Google_GamesManagementService(...);
+ * $players = $gamesManagementService->players;
+ *
+ */
+ class Google_PlayersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Hide the given player's leaderboard scores from the given application. This method is only
+ * available to user accounts for your developer console. (players.hide)
+ *
+ * @param string $applicationId The application being requested.
+ * @param string $playerId A player ID. A value of me may be used in place of the authenticated player's ID.
+ * @param array $optParams Optional parameters.
+ */
+ public function hide($applicationId, $playerId, $optParams = array()) {
+ $params = array('applicationId' => $applicationId, 'playerId' => $playerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('hide', array($params));
+ return $data;
+ }
+ /**
+ * Unhide the given player's leaderboard scores from the given application. This method is only
+ * available to user accounts for your developer console. (players.unhide)
+ *
+ * @param string $applicationId The application being requested.
+ * @param string $playerId A player ID. A value of me may be used in place of the authenticated player's ID.
+ * @param array $optParams Optional parameters.
+ */
+ public function unhide($applicationId, $playerId, $optParams = array()) {
+ $params = array('applicationId' => $applicationId, 'playerId' => $playerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('unhide', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "rooms" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesManagementService = new Google_GamesManagementService(...);
+ * $rooms = $gamesManagementService->rooms;
+ *
+ */
+ class Google_RoomsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Reset all rooms for the currently authenticated player for your application. This method is only
+ * accessible to whitelisted tester accounts for your application. (rooms.reset)
+ *
+ * @param array $optParams Optional parameters.
+ */
+ public function reset($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('reset', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "scores" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesManagementService = new Google_GamesManagementService(...);
+ * $scores = $gamesManagementService->scores;
+ *
+ */
+ class Google_ScoresServiceResource extends Google_ServiceResource {
+
+ /**
+ * Reset scores for the specified leaderboard, resetting the leaderboard to empty. This method is
+ * only accessible to whitelisted tester accounts for your application. (scores.reset)
+ *
+ * @param string $leaderboardId The ID of the leaderboard.
+ * @param array $optParams Optional parameters.
+ * @return Google_PlayerScoreResetResponse
+ */
+ public function reset($leaderboardId, $optParams = array()) {
+ $params = array('leaderboardId' => $leaderboardId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('reset', array($params));
+ if ($this->useObjects()) {
+ return new Google_PlayerScoreResetResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_GamesManagement (v1management).
+ *
+ *
+ * The Management API for Google Play Game Services.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_GamesManagementService extends Google_Service {
+ public $achievements;
+ public $applications;
+ public $players;
+ public $rooms;
+ public $scores;
+ /**
+ * Constructs the internal representation of the GamesManagement service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'games/v1management/';
+ $this->version = 'v1management';
+ $this->serviceName = 'gamesManagement';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->achievements = new Google_AchievementsServiceResource($this, $this->serviceName, 'achievements', json_decode('{"methods": {"reset": {"id": "gamesManagement.achievements.reset", "path": "achievements/{achievementId}/reset", "httpMethod": "POST", "parameters": {"achievementId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AchievementResetResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "resetAll": {"id": "gamesManagement.achievements.resetAll", "path": "achievements/reset", "httpMethod": "POST", "response": {"$ref": "AchievementResetAllResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->applications = new Google_ApplicationsServiceResource($this, $this->serviceName, 'applications', json_decode('{"methods": {"listHidden": {"id": "gamesManagement.applications.listHidden", "path": "applications/{applicationId}/players/hidden", "httpMethod": "GET", "parameters": {"applicationId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "15", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "HiddenPlayerList"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->players = new Google_PlayersServiceResource($this, $this->serviceName, 'players', json_decode('{"methods": {"hide": {"id": "gamesManagement.players.hide", "path": "applications/{applicationId}/players/hidden/{playerId}", "httpMethod": "POST", "parameters": {"applicationId": {"type": "string", "required": true, "location": "path"}, "playerId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "unhide": {"id": "gamesManagement.players.unhide", "path": "applications/{applicationId}/players/hidden/{playerId}", "httpMethod": "DELETE", "parameters": {"applicationId": {"type": "string", "required": true, "location": "path"}, "playerId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->rooms = new Google_RoomsServiceResource($this, $this->serviceName, 'rooms', json_decode('{"methods": {"reset": {"id": "gamesManagement.rooms.reset", "path": "rooms/reset", "httpMethod": "POST", "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->scores = new Google_ScoresServiceResource($this, $this->serviceName, 'scores', json_decode('{"methods": {"reset": {"id": "gamesManagement.scores.reset", "path": "leaderboards/{leaderboardId}/scores/reset", "httpMethod": "POST", "parameters": {"leaderboardId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "PlayerScoreResetResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+
+ }
+}
+
+
+
+class Google_AchievementResetAllResponse extends Google_Model {
+ public $kind;
+ protected $__resultsType = 'Google_AchievementResetResponse';
+ protected $__resultsDataType = 'array';
+ public $results;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setResults(/* array(Google_AchievementResetResponse) */ $results) {
+ $this->assertIsArray($results, 'Google_AchievementResetResponse', __METHOD__);
+ $this->results = $results;
+ }
+ public function getResults() {
+ return $this->results;
+ }
+}
+
+class Google_AchievementResetResponse extends Google_Model {
+ public $currentState;
+ public $definitionId;
+ public $kind;
+ public $updateOccurred;
+ public function setCurrentState( $currentState) {
+ $this->currentState = $currentState;
+ }
+ public function getCurrentState() {
+ return $this->currentState;
+ }
+ public function setDefinitionId( $definitionId) {
+ $this->definitionId = $definitionId;
+ }
+ public function getDefinitionId() {
+ return $this->definitionId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setUpdateOccurred( $updateOccurred) {
+ $this->updateOccurred = $updateOccurred;
+ }
+ public function getUpdateOccurred() {
+ return $this->updateOccurred;
+ }
+}
+
+class Google_HiddenPlayer extends Google_Model {
+ public $hiddenTimeMillis;
+ public $kind;
+ protected $__playerType = 'Google_Player';
+ protected $__playerDataType = '';
+ public $player;
+ public function setHiddenTimeMillis( $hiddenTimeMillis) {
+ $this->hiddenTimeMillis = $hiddenTimeMillis;
+ }
+ public function getHiddenTimeMillis() {
+ return $this->hiddenTimeMillis;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPlayer(Google_Player $player) {
+ $this->player = $player;
+ }
+ public function getPlayer() {
+ return $this->player;
+ }
+}
+
+class Google_HiddenPlayerList extends Google_Model {
+ protected $__itemsType = 'Google_HiddenPlayer';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_HiddenPlayer) */ $items) {
+ $this->assertIsArray($items, 'Google_HiddenPlayer', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Player extends Google_Model {
+ public $avatarImageUrl;
+ public $displayName;
+ public $kind;
+ public $playerId;
+ public function setAvatarImageUrl( $avatarImageUrl) {
+ $this->avatarImageUrl = $avatarImageUrl;
+ }
+ public function getAvatarImageUrl() {
+ return $this->avatarImageUrl;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPlayerId( $playerId) {
+ $this->playerId = $playerId;
+ }
+ public function getPlayerId() {
+ return $this->playerId;
+ }
+}
+
+class Google_PlayerScoreResetResponse extends Google_Model {
+ public $kind;
+ public $resetScoreTimeSpans;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setResetScoreTimeSpans(/* array(Google_string) */ $resetScoreTimeSpans) {
+ $this->assertIsArray($resetScoreTimeSpans, 'Google_string', __METHOD__);
+ $this->resetScoreTimeSpans = $resetScoreTimeSpans;
+ }
+ public function getResetScoreTimeSpans() {
+ return $this->resetScoreTimeSpans;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GamesService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GamesService.php
new file mode 100644
index 0000000..75f6238
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GamesService.php
@@ -0,0 +1,2467 @@
+
+ * $gamesService = new Google_GamesService(...);
+ * $achievementDefinitions = $gamesService->achievementDefinitions;
+ *
+ */
+ class Google_AchievementDefinitionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Lists all the achievement definitions for your application. (achievementDefinitions.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @opt_param int maxResults The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified maxResults.
+ * @opt_param string pageToken The token returned by the previous request.
+ * @return Google_AchievementDefinitionsListResponse
+ */
+ public function listAchievementDefinitions($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AchievementDefinitionsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "achievements" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesService = new Google_GamesService(...);
+ * $achievements = $gamesService->achievements;
+ *
+ */
+ class Google_AchievementsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Increments the steps of the achievement with the given ID for the currently authenticated player.
+ * (achievements.increment)
+ *
+ * @param string $achievementId The ID of the achievement used by this method.
+ * @param int $stepsToIncrement The number of steps to increment.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string requestId A randomly generated numeric ID for each request specified by the caller. This number is used at the server to ensure that the increment is performed correctly across retries.
+ * @return Google_AchievementIncrementResponse
+ */
+ public function increment($achievementId, $stepsToIncrement, $optParams = array()) {
+ $params = array('achievementId' => $achievementId, 'stepsToIncrement' => $stepsToIncrement);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('increment', array($params));
+ if ($this->useObjects()) {
+ return new Google_AchievementIncrementResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists the progress for all your application's achievements for the currently authenticated
+ * player. (achievements.list)
+ *
+ * @param string $playerId A player ID. A value of me may be used in place of the authenticated player's ID.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @opt_param int maxResults The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified maxResults.
+ * @opt_param string pageToken The token returned by the previous request.
+ * @opt_param string state Tells the server to return only achievements with the specified state. If this parameter isn't specified, all achievements are returned.
+ * @return Google_PlayerAchievementListResponse
+ */
+ public function listAchievements($playerId, $optParams = array()) {
+ $params = array('playerId' => $playerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PlayerAchievementListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Sets the state of the achievement with the given ID to REVEALED for the currently authenticated
+ * player. (achievements.reveal)
+ *
+ * @param string $achievementId The ID of the achievement used by this method.
+ * @param array $optParams Optional parameters.
+ * @return Google_AchievementRevealResponse
+ */
+ public function reveal($achievementId, $optParams = array()) {
+ $params = array('achievementId' => $achievementId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('reveal', array($params));
+ if ($this->useObjects()) {
+ return new Google_AchievementRevealResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Unlocks this achievement for the currently authenticated player. (achievements.unlock)
+ *
+ * @param string $achievementId The ID of the achievement used by this method.
+ * @param array $optParams Optional parameters.
+ * @return Google_AchievementUnlockResponse
+ */
+ public function unlock($achievementId, $optParams = array()) {
+ $params = array('achievementId' => $achievementId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('unlock', array($params));
+ if ($this->useObjects()) {
+ return new Google_AchievementUnlockResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "applications" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesService = new Google_GamesService(...);
+ * $applications = $gamesService->applications;
+ *
+ */
+ class Google_ApplicationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the metadata of the application with the given ID. If the requested application is not
+ * available for the specified platformType, the returned response will not include any instance
+ * data. (applications.get)
+ *
+ * @param string $applicationId The application being requested.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @opt_param string platformType Restrict application details returned to the specific platform.
+ * @return Google_Application
+ */
+ public function get($applicationId, $optParams = array()) {
+ $params = array('applicationId' => $applicationId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Application($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Indicate that the the currently authenticated user is playing your application.
+ * (applications.played)
+ *
+ * @param array $optParams Optional parameters.
+ */
+ public function played($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('played', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "leaderboards" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesService = new Google_GamesService(...);
+ * $leaderboards = $gamesService->leaderboards;
+ *
+ */
+ class Google_LeaderboardsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the metadata of the leaderboard with the given ID. (leaderboards.get)
+ *
+ * @param string $leaderboardId The ID of the leaderboard.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @return Google_Leaderboard
+ */
+ public function get($leaderboardId, $optParams = array()) {
+ $params = array('leaderboardId' => $leaderboardId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Leaderboard($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all the leaderboard metadata for your application. (leaderboards.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @opt_param int maxResults The maximum number of leaderboards to return in the response. For any response, the actual number of leaderboards returned may be less than the specified maxResults.
+ * @opt_param string pageToken The token returned by the previous request.
+ * @return Google_LeaderboardListResponse
+ */
+ public function listLeaderboards($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_LeaderboardListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "players" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesService = new Google_GamesService(...);
+ * $players = $gamesService->players;
+ *
+ */
+ class Google_PlayersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the Player resource with the given ID. To retrieve the player for the currently
+ * authenticated user, set playerId to me. (players.get)
+ *
+ * @param string $playerId A player ID. A value of me may be used in place of the authenticated player's ID.
+ * @param array $optParams Optional parameters.
+ * @return Google_Player
+ */
+ public function get($playerId, $optParams = array()) {
+ $params = array('playerId' => $playerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Player($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "revisions" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesService = new Google_GamesService(...);
+ * $revisions = $gamesService->revisions;
+ *
+ */
+ class Google_RevisionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Checks whether the games client is out of date. (revisions.check)
+ *
+ * @param string $clientRevision The revision of the client SDK used by your application.
+ * @param array $optParams Optional parameters.
+ * @return Google_RevisionCheckResponse
+ */
+ public function check($clientRevision, $optParams = array()) {
+ $params = array('clientRevision' => $clientRevision);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('check', array($params));
+ if ($this->useObjects()) {
+ return new Google_RevisionCheckResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "rooms" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesService = new Google_GamesService(...);
+ * $rooms = $gamesService->rooms;
+ *
+ */
+ class Google_RoomsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Create a room. For internal use by the Games SDK only. Calling this method directly is
+ * unsupported. (rooms.create)
+ *
+ * @param Google_RoomCreateRequest $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @return Google_Room
+ */
+ public function create(Google_RoomCreateRequest $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('create', array($params));
+ if ($this->useObjects()) {
+ return new Google_Room($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Decline an invitation to join a room. For internal use by the Games SDK only. Calling this method
+ * directly is unsupported. (rooms.decline)
+ *
+ * @param string $roomId The ID of the room.
+ * @param array $optParams Optional parameters.
+ * @return Google_Room
+ */
+ public function decline($roomId, $optParams = array()) {
+ $params = array('roomId' => $roomId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('decline', array($params));
+ if ($this->useObjects()) {
+ return new Google_Room($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Dismiss an invitation to join a room. For internal use by the Games SDK only. Calling this method
+ * directly is unsupported. (rooms.dismiss)
+ *
+ * @param string $roomId The ID of the room.
+ * @param array $optParams Optional parameters.
+ */
+ public function dismiss($roomId, $optParams = array()) {
+ $params = array('roomId' => $roomId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('dismiss', array($params));
+ return $data;
+ }
+ /**
+ * Get the data for a room. (rooms.get)
+ *
+ * @param string $roomId The ID of the room.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language Specify the preferred language to use to format room info.
+ * @return Google_Room
+ */
+ public function get($roomId, $optParams = array()) {
+ $params = array('roomId' => $roomId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Room($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.
+ * (rooms.join)
+ *
+ * @param string $roomId The ID of the room.
+ * @param Google_RoomJoinRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Room
+ */
+ public function join($roomId, Google_RoomJoinRequest $postBody, $optParams = array()) {
+ $params = array('roomId' => $roomId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('join', array($params));
+ if ($this->useObjects()) {
+ return new Google_Room($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Leave a room. For internal use by the Games SDK only. Calling this method directly is
+ * unsupported. (rooms.leave)
+ *
+ * @param string $roomId The ID of the room.
+ * @param Google_RoomLeaveRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Room
+ */
+ public function leave($roomId, Google_RoomLeaveRequest $postBody, $optParams = array()) {
+ $params = array('roomId' => $roomId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('leave', array($params));
+ if ($this->useObjects()) {
+ return new Google_Room($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns invitations to join rooms. (rooms.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @opt_param int maxResults The maximum number of rooms to return in the response, used for paging. For any response, the actual number of rooms to return may be less than the specified maxResults.
+ * @opt_param string pageToken The token returned by the previous request.
+ * @return Google_RoomList
+ */
+ public function listRooms($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_RoomList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates sent by a client reporting the status of peers in a room. For internal use by the Games
+ * SDK only. Calling this method directly is unsupported. (rooms.reportStatus)
+ *
+ * @param string $roomId The ID of the room.
+ * @param Google_RoomP2PStatuses $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_RoomStatus
+ */
+ public function reportStatus($roomId, Google_RoomP2PStatuses $postBody, $optParams = array()) {
+ $params = array('roomId' => $roomId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('reportStatus', array($params));
+ if ($this->useObjects()) {
+ return new Google_RoomStatus($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "scores" collection of methods.
+ * Typical usage is:
+ *
+ * $gamesService = new Google_GamesService(...);
+ * $scores = $gamesService->scores;
+ *
+ */
+ class Google_ScoresServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get high scores and optionally, ranks in leaderboards for the currently authenticated player. For
+ * a specific time span, leaderboardId can be set to ALL to retrieve data for all leaderboards in a
+ * given time span. (scores.get)
+ *
+ * @param string $playerId A player ID. A value of me may be used in place of the authenticated player's ID.
+ * @param string $leaderboardId The ID of the leaderboard.
+ * @param string $timeSpan The time span for the scores and ranks you're requesting.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string includeRankType The types of ranks to return. If the parameter is omitted, no ranks will be returned.
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @opt_param int maxResults The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.
+ * @opt_param string pageToken The token returned by the previous request.
+ * @return Google_PlayerLeaderboardScoreListResponse
+ */
+ public function get($playerId, $leaderboardId, $timeSpan, $optParams = array()) {
+ $params = array('playerId' => $playerId, 'leaderboardId' => $leaderboardId, 'timeSpan' => $timeSpan);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_PlayerLeaderboardScoreListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists the scores in a leaderboard, starting from the top. (scores.list)
+ *
+ * @param string $leaderboardId The ID of the leaderboard.
+ * @param string $collection The collection of scores you're requesting.
+ * @param string $timeSpan The time span for the scores and ranks you're requesting.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @opt_param int maxResults The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.
+ * @opt_param string pageToken The token returned by the previous request.
+ * @return Google_LeaderboardScores
+ */
+ public function listScores($leaderboardId, $collection, $timeSpan, $optParams = array()) {
+ $params = array('leaderboardId' => $leaderboardId, 'collection' => $collection, 'timeSpan' => $timeSpan);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_LeaderboardScores($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists the scores in a leaderboard around (and including) a player's score. (scores.listWindow)
+ *
+ * @param string $leaderboardId The ID of the leaderboard.
+ * @param string $collection The collection of scores you're requesting.
+ * @param string $timeSpan The time span for the scores and ranks you're requesting.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @opt_param int maxResults The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.
+ * @opt_param string pageToken The token returned by the previous request.
+ * @opt_param int resultsAbove The preferred number of scores to return above the player's score. More scores may be returned if the player is at the bottom of the leaderboard; fewer may be returned if the player is at the top. Must be less than or equal to maxResults.
+ * @opt_param bool returnTopIfAbsent True if the top scores should be returned when the player is not in the leaderboard. Defaults to true.
+ * @return Google_LeaderboardScores
+ */
+ public function listWindow($leaderboardId, $collection, $timeSpan, $optParams = array()) {
+ $params = array('leaderboardId' => $leaderboardId, 'collection' => $collection, 'timeSpan' => $timeSpan);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('listWindow', array($params));
+ if ($this->useObjects()) {
+ return new Google_LeaderboardScores($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Submits a score to the specified leaderboard. (scores.submit)
+ *
+ * @param string $leaderboardId The ID of the leaderboard.
+ * @param string $score The score you're submitting. The submitted score is ignored if it is worse than a previously submitted score, where worse depends on the leaderboard sort order. The meaning of the score value depends on the leaderboard format type. For fixed-point, the score represents the raw value. For time, the score represents elapsed time in milliseconds. For currency, the score represents a value in micro units.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @return Google_PlayerScoreResponse
+ */
+ public function submit($leaderboardId, $score, $optParams = array()) {
+ $params = array('leaderboardId' => $leaderboardId, 'score' => $score);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('submit', array($params));
+ if ($this->useObjects()) {
+ return new Google_PlayerScoreResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Submits multiple scores to leaderboards. (scores.submitMultiple)
+ *
+ * @param Google_PlayerScoreSubmissionList $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language The preferred language to use for strings returned by this method.
+ * @return Google_PlayerScoreListResponse
+ */
+ public function submitMultiple(Google_PlayerScoreSubmissionList $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('submitMultiple', array($params));
+ if ($this->useObjects()) {
+ return new Google_PlayerScoreListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Games (v1).
+ *
+ *
+ * The API for Google Play Game Services.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_GamesService extends Google_Service {
+ public $achievementDefinitions;
+ public $achievements;
+ public $applications;
+ public $leaderboards;
+ public $players;
+ public $revisions;
+ public $rooms;
+ public $scores;
+ /**
+ * Constructs the internal representation of the Games service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'games/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'games';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->achievementDefinitions = new Google_AchievementDefinitionsServiceResource($this, $this->serviceName, 'achievementDefinitions', json_decode('{"methods": {"list": {"id": "games.achievementDefinitions.list", "path": "achievements", "httpMethod": "GET", "parameters": {"language": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "200", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "AchievementDefinitionsListResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->achievements = new Google_AchievementsServiceResource($this, $this->serviceName, 'achievements', json_decode('{"methods": {"increment": {"id": "games.achievements.increment", "path": "achievements/{achievementId}/increment", "httpMethod": "POST", "parameters": {"achievementId": {"type": "string", "required": true, "location": "path"}, "requestId": {"type": "string", "format": "int64", "location": "query"}, "stepsToIncrement": {"type": "integer", "required": true, "format": "int32", "minimum": "1", "location": "query"}}, "response": {"$ref": "AchievementIncrementResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "list": {"id": "games.achievements.list", "path": "players/{playerId}/achievements", "httpMethod": "GET", "parameters": {"language": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "200", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "playerId": {"type": "string", "required": true, "location": "path"}, "state": {"type": "string", "enum": ["ALL", "HIDDEN", "REVEALED", "UNLOCKED"], "location": "query"}}, "response": {"$ref": "PlayerAchievementListResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "reveal": {"id": "games.achievements.reveal", "path": "achievements/{achievementId}/reveal", "httpMethod": "POST", "parameters": {"achievementId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AchievementRevealResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "unlock": {"id": "games.achievements.unlock", "path": "achievements/{achievementId}/unlock", "httpMethod": "POST", "parameters": {"achievementId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AchievementUnlockResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->applications = new Google_ApplicationsServiceResource($this, $this->serviceName, 'applications', json_decode('{"methods": {"get": {"id": "games.applications.get", "path": "applications/{applicationId}", "httpMethod": "GET", "parameters": {"applicationId": {"type": "string", "required": true, "location": "path"}, "language": {"type": "string", "location": "query"}, "platformType": {"type": "string", "enum": ["ANDROID", "IOS", "WEB_APP"], "location": "query"}}, "response": {"$ref": "Application"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "played": {"id": "games.applications.played", "path": "applications/played", "httpMethod": "POST", "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->leaderboards = new Google_LeaderboardsServiceResource($this, $this->serviceName, 'leaderboards', json_decode('{"methods": {"get": {"id": "games.leaderboards.get", "path": "leaderboards/{leaderboardId}", "httpMethod": "GET", "parameters": {"language": {"type": "string", "location": "query"}, "leaderboardId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Leaderboard"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "list": {"id": "games.leaderboards.list", "path": "leaderboards", "httpMethod": "GET", "parameters": {"language": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "LeaderboardListResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->players = new Google_PlayersServiceResource($this, $this->serviceName, 'players', json_decode('{"methods": {"get": {"id": "games.players.get", "path": "players/{playerId}", "httpMethod": "GET", "parameters": {"playerId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Player"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->revisions = new Google_RevisionsServiceResource($this, $this->serviceName, 'revisions', json_decode('{"methods": {"check": {"id": "games.revisions.check", "path": "revisions/check", "httpMethod": "GET", "parameters": {"clientRevision": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "RevisionCheckResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->rooms = new Google_RoomsServiceResource($this, $this->serviceName, 'rooms', json_decode('{"methods": {"create": {"id": "games.rooms.create", "path": "rooms/create", "httpMethod": "POST", "parameters": {"language": {"type": "string", "location": "query"}}, "request": {"$ref": "RoomCreateRequest"}, "response": {"$ref": "Room"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "decline": {"id": "games.rooms.decline", "path": "rooms/{roomId}/decline", "httpMethod": "POST", "parameters": {"roomId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Room"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "dismiss": {"id": "games.rooms.dismiss", "path": "rooms/{roomId}/dismiss", "httpMethod": "POST", "parameters": {"roomId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "get": {"id": "games.rooms.get", "path": "rooms/{roomId}", "httpMethod": "GET", "parameters": {"language": {"type": "string", "location": "query"}, "roomId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Room"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "join": {"id": "games.rooms.join", "path": "rooms/{roomId}/join", "httpMethod": "POST", "parameters": {"roomId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "RoomJoinRequest"}, "response": {"$ref": "Room"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "leave": {"id": "games.rooms.leave", "path": "rooms/{roomId}/leave", "httpMethod": "POST", "parameters": {"roomId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "RoomLeaveRequest"}, "response": {"$ref": "Room"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "list": {"id": "games.rooms.list", "path": "rooms", "httpMethod": "GET", "parameters": {"language": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "500", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "RoomList"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "reportStatus": {"id": "games.rooms.reportStatus", "path": "rooms/{roomId}/reportstatus", "httpMethod": "POST", "parameters": {"roomId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "RoomP2PStatuses"}, "response": {"$ref": "RoomStatus"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->scores = new Google_ScoresServiceResource($this, $this->serviceName, 'scores', json_decode('{"methods": {"get": {"id": "games.scores.get", "path": "players/{playerId}/leaderboards/{leaderboardId}/scores/{timeSpan}", "httpMethod": "GET", "parameters": {"includeRankType": {"type": "string", "enum": ["ALL", "PUBLIC", "SOCIAL"], "location": "query"}, "language": {"type": "string", "location": "query"}, "leaderboardId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "25", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "playerId": {"type": "string", "required": true, "location": "path"}, "timeSpan": {"type": "string", "required": true, "enum": ["ALL", "ALL_TIME", "DAILY", "WEEKLY"], "location": "path"}}, "response": {"$ref": "PlayerLeaderboardScoreListResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "list": {"id": "games.scores.list", "path": "leaderboards/{leaderboardId}/scores/{collection}", "httpMethod": "GET", "parameters": {"collection": {"type": "string", "required": true, "enum": ["PUBLIC", "SOCIAL"], "location": "path"}, "language": {"type": "string", "location": "query"}, "leaderboardId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "25", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "timeSpan": {"type": "string", "required": true, "enum": ["ALL_TIME", "DAILY", "WEEKLY"], "location": "query"}}, "response": {"$ref": "LeaderboardScores"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "listWindow": {"id": "games.scores.listWindow", "path": "leaderboards/{leaderboardId}/window/{collection}", "httpMethod": "GET", "parameters": {"collection": {"type": "string", "required": true, "enum": ["PUBLIC", "SOCIAL"], "location": "path"}, "language": {"type": "string", "location": "query"}, "leaderboardId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "25", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "resultsAbove": {"type": "integer", "format": "int32", "location": "query"}, "returnTopIfAbsent": {"type": "boolean", "location": "query"}, "timeSpan": {"type": "string", "required": true, "enum": ["ALL_TIME", "DAILY", "WEEKLY"], "location": "query"}}, "response": {"$ref": "LeaderboardScores"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "submit": {"id": "games.scores.submit", "path": "leaderboards/{leaderboardId}/scores", "httpMethod": "POST", "parameters": {"language": {"type": "string", "location": "query"}, "leaderboardId": {"type": "string", "required": true, "location": "path"}, "score": {"type": "string", "required": true, "format": "int64", "location": "query"}}, "response": {"$ref": "PlayerScoreResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "submitMultiple": {"id": "games.scores.submitMultiple", "path": "leaderboards/scores", "httpMethod": "POST", "parameters": {"language": {"type": "string", "location": "query"}}, "request": {"$ref": "PlayerScoreSubmissionList"}, "response": {"$ref": "PlayerScoreListResponse"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+
+ }
+}
+
+
+
+class Google_AchievementDefinition extends Google_Model {
+ public $achievementType;
+ public $description;
+ public $formattedTotalSteps;
+ public $id;
+ public $initialState;
+ public $isRevealedIconUrlDefault;
+ public $isUnlockedIconUrlDefault;
+ public $kind;
+ public $name;
+ public $revealedIconUrl;
+ public $totalSteps;
+ public $unlockedIconUrl;
+ public function setAchievementType( $achievementType) {
+ $this->achievementType = $achievementType;
+ }
+ public function getAchievementType() {
+ return $this->achievementType;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setFormattedTotalSteps( $formattedTotalSteps) {
+ $this->formattedTotalSteps = $formattedTotalSteps;
+ }
+ public function getFormattedTotalSteps() {
+ return $this->formattedTotalSteps;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInitialState( $initialState) {
+ $this->initialState = $initialState;
+ }
+ public function getInitialState() {
+ return $this->initialState;
+ }
+ public function setIsRevealedIconUrlDefault( $isRevealedIconUrlDefault) {
+ $this->isRevealedIconUrlDefault = $isRevealedIconUrlDefault;
+ }
+ public function getIsRevealedIconUrlDefault() {
+ return $this->isRevealedIconUrlDefault;
+ }
+ public function setIsUnlockedIconUrlDefault( $isUnlockedIconUrlDefault) {
+ $this->isUnlockedIconUrlDefault = $isUnlockedIconUrlDefault;
+ }
+ public function getIsUnlockedIconUrlDefault() {
+ return $this->isUnlockedIconUrlDefault;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setRevealedIconUrl( $revealedIconUrl) {
+ $this->revealedIconUrl = $revealedIconUrl;
+ }
+ public function getRevealedIconUrl() {
+ return $this->revealedIconUrl;
+ }
+ public function setTotalSteps( $totalSteps) {
+ $this->totalSteps = $totalSteps;
+ }
+ public function getTotalSteps() {
+ return $this->totalSteps;
+ }
+ public function setUnlockedIconUrl( $unlockedIconUrl) {
+ $this->unlockedIconUrl = $unlockedIconUrl;
+ }
+ public function getUnlockedIconUrl() {
+ return $this->unlockedIconUrl;
+ }
+}
+
+class Google_AchievementDefinitionsListResponse extends Google_Model {
+ protected $__itemsType = 'Google_AchievementDefinition';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_AchievementDefinition) */ $items) {
+ $this->assertIsArray($items, 'Google_AchievementDefinition', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_AchievementIncrementResponse extends Google_Model {
+ public $currentSteps;
+ public $kind;
+ public $newlyUnlocked;
+ public function setCurrentSteps( $currentSteps) {
+ $this->currentSteps = $currentSteps;
+ }
+ public function getCurrentSteps() {
+ return $this->currentSteps;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNewlyUnlocked( $newlyUnlocked) {
+ $this->newlyUnlocked = $newlyUnlocked;
+ }
+ public function getNewlyUnlocked() {
+ return $this->newlyUnlocked;
+ }
+}
+
+class Google_AchievementRevealResponse extends Google_Model {
+ public $currentState;
+ public $kind;
+ public function setCurrentState( $currentState) {
+ $this->currentState = $currentState;
+ }
+ public function getCurrentState() {
+ return $this->currentState;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_AchievementUnlockResponse extends Google_Model {
+ public $kind;
+ public $newlyUnlocked;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNewlyUnlocked( $newlyUnlocked) {
+ $this->newlyUnlocked = $newlyUnlocked;
+ }
+ public function getNewlyUnlocked() {
+ return $this->newlyUnlocked;
+ }
+}
+
+class Google_AggregateStats extends Google_Model {
+ public $count;
+ public $kind;
+ public $max;
+ public $min;
+ public $sum;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMax( $max) {
+ $this->max = $max;
+ }
+ public function getMax() {
+ return $this->max;
+ }
+ public function setMin( $min) {
+ $this->min = $min;
+ }
+ public function getMin() {
+ return $this->min;
+ }
+ public function setSum( $sum) {
+ $this->sum = $sum;
+ }
+ public function getSum() {
+ return $this->sum;
+ }
+}
+
+class Google_AnonymousPlayer extends Google_Model {
+ public $avatarImageUrl;
+ public $displayName;
+ public $kind;
+ public function setAvatarImageUrl( $avatarImageUrl) {
+ $this->avatarImageUrl = $avatarImageUrl;
+ }
+ public function getAvatarImageUrl() {
+ return $this->avatarImageUrl;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Application extends Google_Model {
+ public $achievement_count;
+ protected $__assetsType = 'Google_ImageAsset';
+ protected $__assetsDataType = 'array';
+ public $assets;
+ public $author;
+ protected $__categoryType = 'Google_ApplicationCategory';
+ protected $__categoryDataType = '';
+ public $category;
+ public $description;
+ public $id;
+ protected $__instancesType = 'Google_Instance';
+ protected $__instancesDataType = 'array';
+ public $instances;
+ public $kind;
+ public $lastUpdatedTimestamp;
+ public $leaderboard_count;
+ public $name;
+ public function setAchievement_count( $achievement_count) {
+ $this->achievement_count = $achievement_count;
+ }
+ public function getAchievement_count() {
+ return $this->achievement_count;
+ }
+ public function setAssets(/* array(Google_ImageAsset) */ $assets) {
+ $this->assertIsArray($assets, 'Google_ImageAsset', __METHOD__);
+ $this->assets = $assets;
+ }
+ public function getAssets() {
+ return $this->assets;
+ }
+ public function setAuthor( $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setCategory(Google_ApplicationCategory $category) {
+ $this->category = $category;
+ }
+ public function getCategory() {
+ return $this->category;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInstances(/* array(Google_Instance) */ $instances) {
+ $this->assertIsArray($instances, 'Google_Instance', __METHOD__);
+ $this->instances = $instances;
+ }
+ public function getInstances() {
+ return $this->instances;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastUpdatedTimestamp( $lastUpdatedTimestamp) {
+ $this->lastUpdatedTimestamp = $lastUpdatedTimestamp;
+ }
+ public function getLastUpdatedTimestamp() {
+ return $this->lastUpdatedTimestamp;
+ }
+ public function setLeaderboard_count( $leaderboard_count) {
+ $this->leaderboard_count = $leaderboard_count;
+ }
+ public function getLeaderboard_count() {
+ return $this->leaderboard_count;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_ApplicationCategory extends Google_Model {
+ public $kind;
+ public $primary;
+ public $secondary;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPrimary( $primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setSecondary( $secondary) {
+ $this->secondary = $secondary;
+ }
+ public function getSecondary() {
+ return $this->secondary;
+ }
+}
+
+class Google_ImageAsset extends Google_Model {
+ public $height;
+ public $kind;
+ public $name;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_Instance extends Google_Model {
+ public $acquisitionUri;
+ protected $__androidInstanceType = 'Google_InstanceAndroidDetails';
+ protected $__androidInstanceDataType = '';
+ public $androidInstance;
+ protected $__iosInstanceType = 'Google_InstanceIosDetails';
+ protected $__iosInstanceDataType = '';
+ public $iosInstance;
+ public $kind;
+ public $name;
+ public $platformType;
+ public $realtimePlay;
+ public $turnBasedPlay;
+ protected $__webInstanceType = 'Google_InstanceWebDetails';
+ protected $__webInstanceDataType = '';
+ public $webInstance;
+ public function setAcquisitionUri( $acquisitionUri) {
+ $this->acquisitionUri = $acquisitionUri;
+ }
+ public function getAcquisitionUri() {
+ return $this->acquisitionUri;
+ }
+ public function setAndroidInstance(Google_InstanceAndroidDetails $androidInstance) {
+ $this->androidInstance = $androidInstance;
+ }
+ public function getAndroidInstance() {
+ return $this->androidInstance;
+ }
+ public function setIosInstance(Google_InstanceIosDetails $iosInstance) {
+ $this->iosInstance = $iosInstance;
+ }
+ public function getIosInstance() {
+ return $this->iosInstance;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPlatformType( $platformType) {
+ $this->platformType = $platformType;
+ }
+ public function getPlatformType() {
+ return $this->platformType;
+ }
+ public function setRealtimePlay( $realtimePlay) {
+ $this->realtimePlay = $realtimePlay;
+ }
+ public function getRealtimePlay() {
+ return $this->realtimePlay;
+ }
+ public function setTurnBasedPlay( $turnBasedPlay) {
+ $this->turnBasedPlay = $turnBasedPlay;
+ }
+ public function getTurnBasedPlay() {
+ return $this->turnBasedPlay;
+ }
+ public function setWebInstance(Google_InstanceWebDetails $webInstance) {
+ $this->webInstance = $webInstance;
+ }
+ public function getWebInstance() {
+ return $this->webInstance;
+ }
+}
+
+class Google_InstanceAndroidDetails extends Google_Model {
+ public $enablePiracyCheck;
+ public $kind;
+ public $packageName;
+ public $preferred;
+ public function setEnablePiracyCheck( $enablePiracyCheck) {
+ $this->enablePiracyCheck = $enablePiracyCheck;
+ }
+ public function getEnablePiracyCheck() {
+ return $this->enablePiracyCheck;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPackageName( $packageName) {
+ $this->packageName = $packageName;
+ }
+ public function getPackageName() {
+ return $this->packageName;
+ }
+ public function setPreferred( $preferred) {
+ $this->preferred = $preferred;
+ }
+ public function getPreferred() {
+ return $this->preferred;
+ }
+}
+
+class Google_InstanceIosDetails extends Google_Model {
+ public $bundleIdentifier;
+ public $itunesAppId;
+ public $kind;
+ public $preferredForIpad;
+ public $preferredForIphone;
+ public $supportIpad;
+ public $supportIphone;
+ public function setBundleIdentifier( $bundleIdentifier) {
+ $this->bundleIdentifier = $bundleIdentifier;
+ }
+ public function getBundleIdentifier() {
+ return $this->bundleIdentifier;
+ }
+ public function setItunesAppId( $itunesAppId) {
+ $this->itunesAppId = $itunesAppId;
+ }
+ public function getItunesAppId() {
+ return $this->itunesAppId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPreferredForIpad( $preferredForIpad) {
+ $this->preferredForIpad = $preferredForIpad;
+ }
+ public function getPreferredForIpad() {
+ return $this->preferredForIpad;
+ }
+ public function setPreferredForIphone( $preferredForIphone) {
+ $this->preferredForIphone = $preferredForIphone;
+ }
+ public function getPreferredForIphone() {
+ return $this->preferredForIphone;
+ }
+ public function setSupportIpad( $supportIpad) {
+ $this->supportIpad = $supportIpad;
+ }
+ public function getSupportIpad() {
+ return $this->supportIpad;
+ }
+ public function setSupportIphone( $supportIphone) {
+ $this->supportIphone = $supportIphone;
+ }
+ public function getSupportIphone() {
+ return $this->supportIphone;
+ }
+}
+
+class Google_InstanceWebDetails extends Google_Model {
+ public $kind;
+ public $launchUrl;
+ public $preferred;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLaunchUrl( $launchUrl) {
+ $this->launchUrl = $launchUrl;
+ }
+ public function getLaunchUrl() {
+ return $this->launchUrl;
+ }
+ public function setPreferred( $preferred) {
+ $this->preferred = $preferred;
+ }
+ public function getPreferred() {
+ return $this->preferred;
+ }
+}
+
+class Google_Leaderboard extends Google_Model {
+ public $iconUrl;
+ public $id;
+ public $isIconUrlDefault;
+ public $kind;
+ public $name;
+ public $order;
+ public function setIconUrl( $iconUrl) {
+ $this->iconUrl = $iconUrl;
+ }
+ public function getIconUrl() {
+ return $this->iconUrl;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIsIconUrlDefault( $isIconUrlDefault) {
+ $this->isIconUrlDefault = $isIconUrlDefault;
+ }
+ public function getIsIconUrlDefault() {
+ return $this->isIconUrlDefault;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOrder( $order) {
+ $this->order = $order;
+ }
+ public function getOrder() {
+ return $this->order;
+ }
+}
+
+class Google_LeaderboardEntry extends Google_Model {
+ public $formattedScore;
+ public $formattedScoreRank;
+ public $kind;
+ protected $__playerType = 'Google_Player';
+ protected $__playerDataType = '';
+ public $player;
+ public $scoreRank;
+ public $scoreValue;
+ public $timeSpan;
+ public $writeTimestampMillis;
+ public function setFormattedScore( $formattedScore) {
+ $this->formattedScore = $formattedScore;
+ }
+ public function getFormattedScore() {
+ return $this->formattedScore;
+ }
+ public function setFormattedScoreRank( $formattedScoreRank) {
+ $this->formattedScoreRank = $formattedScoreRank;
+ }
+ public function getFormattedScoreRank() {
+ return $this->formattedScoreRank;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPlayer(Google_Player $player) {
+ $this->player = $player;
+ }
+ public function getPlayer() {
+ return $this->player;
+ }
+ public function setScoreRank( $scoreRank) {
+ $this->scoreRank = $scoreRank;
+ }
+ public function getScoreRank() {
+ return $this->scoreRank;
+ }
+ public function setScoreValue( $scoreValue) {
+ $this->scoreValue = $scoreValue;
+ }
+ public function getScoreValue() {
+ return $this->scoreValue;
+ }
+ public function setTimeSpan( $timeSpan) {
+ $this->timeSpan = $timeSpan;
+ }
+ public function getTimeSpan() {
+ return $this->timeSpan;
+ }
+ public function setWriteTimestampMillis( $writeTimestampMillis) {
+ $this->writeTimestampMillis = $writeTimestampMillis;
+ }
+ public function getWriteTimestampMillis() {
+ return $this->writeTimestampMillis;
+ }
+}
+
+class Google_LeaderboardListResponse extends Google_Model {
+ protected $__itemsType = 'Google_Leaderboard';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Leaderboard) */ $items) {
+ $this->assertIsArray($items, 'Google_Leaderboard', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_LeaderboardScoreRank extends Google_Model {
+ public $formattedNumScores;
+ public $formattedRank;
+ public $kind;
+ public $numScores;
+ public $rank;
+ public function setFormattedNumScores( $formattedNumScores) {
+ $this->formattedNumScores = $formattedNumScores;
+ }
+ public function getFormattedNumScores() {
+ return $this->formattedNumScores;
+ }
+ public function setFormattedRank( $formattedRank) {
+ $this->formattedRank = $formattedRank;
+ }
+ public function getFormattedRank() {
+ return $this->formattedRank;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNumScores( $numScores) {
+ $this->numScores = $numScores;
+ }
+ public function getNumScores() {
+ return $this->numScores;
+ }
+ public function setRank( $rank) {
+ $this->rank = $rank;
+ }
+ public function getRank() {
+ return $this->rank;
+ }
+}
+
+class Google_LeaderboardScores extends Google_Model {
+ protected $__itemsType = 'Google_LeaderboardEntry';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $numScores;
+ protected $__playerScoreType = 'Google_LeaderboardEntry';
+ protected $__playerScoreDataType = '';
+ public $playerScore;
+ public $prevPageToken;
+ public function setItems(/* array(Google_LeaderboardEntry) */ $items) {
+ $this->assertIsArray($items, 'Google_LeaderboardEntry', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setNumScores( $numScores) {
+ $this->numScores = $numScores;
+ }
+ public function getNumScores() {
+ return $this->numScores;
+ }
+ public function setPlayerScore(Google_LeaderboardEntry $playerScore) {
+ $this->playerScore = $playerScore;
+ }
+ public function getPlayerScore() {
+ return $this->playerScore;
+ }
+ public function setPrevPageToken( $prevPageToken) {
+ $this->prevPageToken = $prevPageToken;
+ }
+ public function getPrevPageToken() {
+ return $this->prevPageToken;
+ }
+}
+
+class Google_NetworkDiagnostics extends Google_Model {
+ public $androidNetworkSubtype;
+ public $androidNetworkType;
+ public $kind;
+ public $registrationLatencyMillis;
+ public function setAndroidNetworkSubtype( $androidNetworkSubtype) {
+ $this->androidNetworkSubtype = $androidNetworkSubtype;
+ }
+ public function getAndroidNetworkSubtype() {
+ return $this->androidNetworkSubtype;
+ }
+ public function setAndroidNetworkType( $androidNetworkType) {
+ $this->androidNetworkType = $androidNetworkType;
+ }
+ public function getAndroidNetworkType() {
+ return $this->androidNetworkType;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRegistrationLatencyMillis( $registrationLatencyMillis) {
+ $this->registrationLatencyMillis = $registrationLatencyMillis;
+ }
+ public function getRegistrationLatencyMillis() {
+ return $this->registrationLatencyMillis;
+ }
+}
+
+class Google_PeerChannelDiagnostics extends Google_Model {
+ protected $__bytesReceivedType = 'Google_AggregateStats';
+ protected $__bytesReceivedDataType = '';
+ public $bytesReceived;
+ protected $__bytesSentType = 'Google_AggregateStats';
+ protected $__bytesSentDataType = '';
+ public $bytesSent;
+ public $kind;
+ public $numMessagesLost;
+ public $numMessagesReceived;
+ public $numMessagesSent;
+ public $numSendFailures;
+ protected $__roundtripLatencyMillisType = 'Google_AggregateStats';
+ protected $__roundtripLatencyMillisDataType = '';
+ public $roundtripLatencyMillis;
+ public function setBytesReceived(Google_AggregateStats $bytesReceived) {
+ $this->bytesReceived = $bytesReceived;
+ }
+ public function getBytesReceived() {
+ return $this->bytesReceived;
+ }
+ public function setBytesSent(Google_AggregateStats $bytesSent) {
+ $this->bytesSent = $bytesSent;
+ }
+ public function getBytesSent() {
+ return $this->bytesSent;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNumMessagesLost( $numMessagesLost) {
+ $this->numMessagesLost = $numMessagesLost;
+ }
+ public function getNumMessagesLost() {
+ return $this->numMessagesLost;
+ }
+ public function setNumMessagesReceived( $numMessagesReceived) {
+ $this->numMessagesReceived = $numMessagesReceived;
+ }
+ public function getNumMessagesReceived() {
+ return $this->numMessagesReceived;
+ }
+ public function setNumMessagesSent( $numMessagesSent) {
+ $this->numMessagesSent = $numMessagesSent;
+ }
+ public function getNumMessagesSent() {
+ return $this->numMessagesSent;
+ }
+ public function setNumSendFailures( $numSendFailures) {
+ $this->numSendFailures = $numSendFailures;
+ }
+ public function getNumSendFailures() {
+ return $this->numSendFailures;
+ }
+ public function setRoundtripLatencyMillis(Google_AggregateStats $roundtripLatencyMillis) {
+ $this->roundtripLatencyMillis = $roundtripLatencyMillis;
+ }
+ public function getRoundtripLatencyMillis() {
+ return $this->roundtripLatencyMillis;
+ }
+}
+
+class Google_PeerSessionDiagnostics extends Google_Model {
+ public $connectedTimestampMillis;
+ public $kind;
+ public $participantId;
+ protected $__reliableChannelType = 'Google_PeerChannelDiagnostics';
+ protected $__reliableChannelDataType = '';
+ public $reliableChannel;
+ protected $__unreliableChannelType = 'Google_PeerChannelDiagnostics';
+ protected $__unreliableChannelDataType = '';
+ public $unreliableChannel;
+ public function setConnectedTimestampMillis( $connectedTimestampMillis) {
+ $this->connectedTimestampMillis = $connectedTimestampMillis;
+ }
+ public function getConnectedTimestampMillis() {
+ return $this->connectedTimestampMillis;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setParticipantId( $participantId) {
+ $this->participantId = $participantId;
+ }
+ public function getParticipantId() {
+ return $this->participantId;
+ }
+ public function setReliableChannel(Google_PeerChannelDiagnostics $reliableChannel) {
+ $this->reliableChannel = $reliableChannel;
+ }
+ public function getReliableChannel() {
+ return $this->reliableChannel;
+ }
+ public function setUnreliableChannel(Google_PeerChannelDiagnostics $unreliableChannel) {
+ $this->unreliableChannel = $unreliableChannel;
+ }
+ public function getUnreliableChannel() {
+ return $this->unreliableChannel;
+ }
+}
+
+class Google_Player extends Google_Model {
+ public $avatarImageUrl;
+ public $displayName;
+ public $kind;
+ public $playerId;
+ public function setAvatarImageUrl( $avatarImageUrl) {
+ $this->avatarImageUrl = $avatarImageUrl;
+ }
+ public function getAvatarImageUrl() {
+ return $this->avatarImageUrl;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPlayerId( $playerId) {
+ $this->playerId = $playerId;
+ }
+ public function getPlayerId() {
+ return $this->playerId;
+ }
+}
+
+class Google_PlayerAchievement extends Google_Model {
+ public $achievementState;
+ public $currentSteps;
+ public $formattedCurrentStepsString;
+ public $id;
+ public $kind;
+ public $lastUpdatedTimestamp;
+ public function setAchievementState( $achievementState) {
+ $this->achievementState = $achievementState;
+ }
+ public function getAchievementState() {
+ return $this->achievementState;
+ }
+ public function setCurrentSteps( $currentSteps) {
+ $this->currentSteps = $currentSteps;
+ }
+ public function getCurrentSteps() {
+ return $this->currentSteps;
+ }
+ public function setFormattedCurrentStepsString( $formattedCurrentStepsString) {
+ $this->formattedCurrentStepsString = $formattedCurrentStepsString;
+ }
+ public function getFormattedCurrentStepsString() {
+ return $this->formattedCurrentStepsString;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastUpdatedTimestamp( $lastUpdatedTimestamp) {
+ $this->lastUpdatedTimestamp = $lastUpdatedTimestamp;
+ }
+ public function getLastUpdatedTimestamp() {
+ return $this->lastUpdatedTimestamp;
+ }
+}
+
+class Google_PlayerAchievementListResponse extends Google_Model {
+ protected $__itemsType = 'Google_PlayerAchievement';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_PlayerAchievement) */ $items) {
+ $this->assertIsArray($items, 'Google_PlayerAchievement', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_PlayerLeaderboardScore extends Google_Model {
+ public $kind;
+ public $leaderboard_id;
+ protected $__publicRankType = 'Google_LeaderboardScoreRank';
+ protected $__publicRankDataType = '';
+ public $publicRank;
+ public $scoreString;
+ public $scoreValue;
+ protected $__socialRankType = 'Google_LeaderboardScoreRank';
+ protected $__socialRankDataType = '';
+ public $socialRank;
+ public $timeSpan;
+ public $writeTimestamp;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLeaderboard_id( $leaderboard_id) {
+ $this->leaderboard_id = $leaderboard_id;
+ }
+ public function getLeaderboard_id() {
+ return $this->leaderboard_id;
+ }
+ public function setPublicRank(Google_LeaderboardScoreRank $publicRank) {
+ $this->publicRank = $publicRank;
+ }
+ public function getPublicRank() {
+ return $this->publicRank;
+ }
+ public function setScoreString( $scoreString) {
+ $this->scoreString = $scoreString;
+ }
+ public function getScoreString() {
+ return $this->scoreString;
+ }
+ public function setScoreValue( $scoreValue) {
+ $this->scoreValue = $scoreValue;
+ }
+ public function getScoreValue() {
+ return $this->scoreValue;
+ }
+ public function setSocialRank(Google_LeaderboardScoreRank $socialRank) {
+ $this->socialRank = $socialRank;
+ }
+ public function getSocialRank() {
+ return $this->socialRank;
+ }
+ public function setTimeSpan( $timeSpan) {
+ $this->timeSpan = $timeSpan;
+ }
+ public function getTimeSpan() {
+ return $this->timeSpan;
+ }
+ public function setWriteTimestamp( $writeTimestamp) {
+ $this->writeTimestamp = $writeTimestamp;
+ }
+ public function getWriteTimestamp() {
+ return $this->writeTimestamp;
+ }
+}
+
+class Google_PlayerLeaderboardScoreListResponse extends Google_Model {
+ protected $__itemsType = 'Google_PlayerLeaderboardScore';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_PlayerLeaderboardScore) */ $items) {
+ $this->assertIsArray($items, 'Google_PlayerLeaderboardScore', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_PlayerScore extends Google_Model {
+ public $formattedScore;
+ public $kind;
+ public $score;
+ public $timeSpan;
+ public function setFormattedScore( $formattedScore) {
+ $this->formattedScore = $formattedScore;
+ }
+ public function getFormattedScore() {
+ return $this->formattedScore;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setScore( $score) {
+ $this->score = $score;
+ }
+ public function getScore() {
+ return $this->score;
+ }
+ public function setTimeSpan( $timeSpan) {
+ $this->timeSpan = $timeSpan;
+ }
+ public function getTimeSpan() {
+ return $this->timeSpan;
+ }
+}
+
+class Google_PlayerScoreListResponse extends Google_Model {
+ public $kind;
+ protected $__submittedScoresType = 'Google_PlayerScoreResponse';
+ protected $__submittedScoresDataType = 'array';
+ public $submittedScores;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSubmittedScores(/* array(Google_PlayerScoreResponse) */ $submittedScores) {
+ $this->assertIsArray($submittedScores, 'Google_PlayerScoreResponse', __METHOD__);
+ $this->submittedScores = $submittedScores;
+ }
+ public function getSubmittedScores() {
+ return $this->submittedScores;
+ }
+}
+
+class Google_PlayerScoreResponse extends Google_Model {
+ public $beatenScoreTimeSpans;
+ public $formattedScore;
+ public $kind;
+ public $leaderboardId;
+ protected $__unbeatenScoresType = 'Google_PlayerScore';
+ protected $__unbeatenScoresDataType = 'array';
+ public $unbeatenScores;
+ public function setBeatenScoreTimeSpans(/* array(Google_string) */ $beatenScoreTimeSpans) {
+ $this->assertIsArray($beatenScoreTimeSpans, 'Google_string', __METHOD__);
+ $this->beatenScoreTimeSpans = $beatenScoreTimeSpans;
+ }
+ public function getBeatenScoreTimeSpans() {
+ return $this->beatenScoreTimeSpans;
+ }
+ public function setFormattedScore( $formattedScore) {
+ $this->formattedScore = $formattedScore;
+ }
+ public function getFormattedScore() {
+ return $this->formattedScore;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLeaderboardId( $leaderboardId) {
+ $this->leaderboardId = $leaderboardId;
+ }
+ public function getLeaderboardId() {
+ return $this->leaderboardId;
+ }
+ public function setUnbeatenScores(/* array(Google_PlayerScore) */ $unbeatenScores) {
+ $this->assertIsArray($unbeatenScores, 'Google_PlayerScore', __METHOD__);
+ $this->unbeatenScores = $unbeatenScores;
+ }
+ public function getUnbeatenScores() {
+ return $this->unbeatenScores;
+ }
+}
+
+class Google_PlayerScoreSubmissionList extends Google_Model {
+ public $kind;
+ protected $__scoresType = 'Google_ScoreSubmission';
+ protected $__scoresDataType = 'array';
+ public $scores;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setScores(/* array(Google_ScoreSubmission) */ $scores) {
+ $this->assertIsArray($scores, 'Google_ScoreSubmission', __METHOD__);
+ $this->scores = $scores;
+ }
+ public function getScores() {
+ return $this->scores;
+ }
+}
+
+class Google_RevisionCheckResponse extends Google_Model {
+ public $kind;
+ public $revisionStatus;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRevisionStatus( $revisionStatus) {
+ $this->revisionStatus = $revisionStatus;
+ }
+ public function getRevisionStatus() {
+ return $this->revisionStatus;
+ }
+}
+
+class Google_Room extends Google_Model {
+ public $applicationId;
+ protected $__autoMatchingCriteriaType = 'Google_RoomAutoMatchingCriteria';
+ protected $__autoMatchingCriteriaDataType = '';
+ public $autoMatchingCriteria;
+ protected $__autoMatchingStatusType = 'Google_RoomAutoMatchStatus';
+ protected $__autoMatchingStatusDataType = '';
+ public $autoMatchingStatus;
+ protected $__creationDetailsType = 'Google_RoomModification';
+ protected $__creationDetailsDataType = '';
+ public $creationDetails;
+ public $description;
+ public $kind;
+ protected $__lastUpdateDetailsType = 'Google_RoomModification';
+ protected $__lastUpdateDetailsDataType = '';
+ public $lastUpdateDetails;
+ protected $__participantsType = 'Google_RoomParticipant';
+ protected $__participantsDataType = 'array';
+ public $participants;
+ public $roomId;
+ public $roomStatusVersion;
+ public $status;
+ public $variant;
+ public function setApplicationId( $applicationId) {
+ $this->applicationId = $applicationId;
+ }
+ public function getApplicationId() {
+ return $this->applicationId;
+ }
+ public function setAutoMatchingCriteria(Google_RoomAutoMatchingCriteria $autoMatchingCriteria) {
+ $this->autoMatchingCriteria = $autoMatchingCriteria;
+ }
+ public function getAutoMatchingCriteria() {
+ return $this->autoMatchingCriteria;
+ }
+ public function setAutoMatchingStatus(Google_RoomAutoMatchStatus $autoMatchingStatus) {
+ $this->autoMatchingStatus = $autoMatchingStatus;
+ }
+ public function getAutoMatchingStatus() {
+ return $this->autoMatchingStatus;
+ }
+ public function setCreationDetails(Google_RoomModification $creationDetails) {
+ $this->creationDetails = $creationDetails;
+ }
+ public function getCreationDetails() {
+ return $this->creationDetails;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastUpdateDetails(Google_RoomModification $lastUpdateDetails) {
+ $this->lastUpdateDetails = $lastUpdateDetails;
+ }
+ public function getLastUpdateDetails() {
+ return $this->lastUpdateDetails;
+ }
+ public function setParticipants(/* array(Google_RoomParticipant) */ $participants) {
+ $this->assertIsArray($participants, 'Google_RoomParticipant', __METHOD__);
+ $this->participants = $participants;
+ }
+ public function getParticipants() {
+ return $this->participants;
+ }
+ public function setRoomId( $roomId) {
+ $this->roomId = $roomId;
+ }
+ public function getRoomId() {
+ return $this->roomId;
+ }
+ public function setRoomStatusVersion( $roomStatusVersion) {
+ $this->roomStatusVersion = $roomStatusVersion;
+ }
+ public function getRoomStatusVersion() {
+ return $this->roomStatusVersion;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setVariant( $variant) {
+ $this->variant = $variant;
+ }
+ public function getVariant() {
+ return $this->variant;
+ }
+}
+
+class Google_RoomAutoMatchStatus extends Google_Model {
+ public $kind;
+ public $waitEstimateSeconds;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setWaitEstimateSeconds( $waitEstimateSeconds) {
+ $this->waitEstimateSeconds = $waitEstimateSeconds;
+ }
+ public function getWaitEstimateSeconds() {
+ return $this->waitEstimateSeconds;
+ }
+}
+
+class Google_RoomAutoMatchingCriteria extends Google_Model {
+ public $exclusiveBitmask;
+ public $kind;
+ public $maxAutoMatchingPlayers;
+ public $minAutoMatchingPlayers;
+ public function setExclusiveBitmask( $exclusiveBitmask) {
+ $this->exclusiveBitmask = $exclusiveBitmask;
+ }
+ public function getExclusiveBitmask() {
+ return $this->exclusiveBitmask;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaxAutoMatchingPlayers( $maxAutoMatchingPlayers) {
+ $this->maxAutoMatchingPlayers = $maxAutoMatchingPlayers;
+ }
+ public function getMaxAutoMatchingPlayers() {
+ return $this->maxAutoMatchingPlayers;
+ }
+ public function setMinAutoMatchingPlayers( $minAutoMatchingPlayers) {
+ $this->minAutoMatchingPlayers = $minAutoMatchingPlayers;
+ }
+ public function getMinAutoMatchingPlayers() {
+ return $this->minAutoMatchingPlayers;
+ }
+}
+
+class Google_RoomClientAddress extends Google_Model {
+ public $kind;
+ public $xmppAddress;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setXmppAddress( $xmppAddress) {
+ $this->xmppAddress = $xmppAddress;
+ }
+ public function getXmppAddress() {
+ return $this->xmppAddress;
+ }
+}
+
+class Google_RoomCreateRequest extends Google_Model {
+ protected $__autoMatchingCriteriaType = 'Google_RoomAutoMatchingCriteria';
+ protected $__autoMatchingCriteriaDataType = '';
+ public $autoMatchingCriteria;
+ public $capabilities;
+ protected $__clientAddressType = 'Google_RoomClientAddress';
+ protected $__clientAddressDataType = '';
+ public $clientAddress;
+ public $invitedPlayerIds;
+ public $kind;
+ protected $__networkDiagnosticsType = 'Google_NetworkDiagnostics';
+ protected $__networkDiagnosticsDataType = '';
+ public $networkDiagnostics;
+ public $variant;
+ public function setAutoMatchingCriteria(Google_RoomAutoMatchingCriteria $autoMatchingCriteria) {
+ $this->autoMatchingCriteria = $autoMatchingCriteria;
+ }
+ public function getAutoMatchingCriteria() {
+ return $this->autoMatchingCriteria;
+ }
+ public function setCapabilities(/* array(Google_string) */ $capabilities) {
+ $this->assertIsArray($capabilities, 'Google_string', __METHOD__);
+ $this->capabilities = $capabilities;
+ }
+ public function getCapabilities() {
+ return $this->capabilities;
+ }
+ public function setClientAddress(Google_RoomClientAddress $clientAddress) {
+ $this->clientAddress = $clientAddress;
+ }
+ public function getClientAddress() {
+ return $this->clientAddress;
+ }
+ public function setInvitedPlayerIds(/* array(Google_string) */ $invitedPlayerIds) {
+ $this->assertIsArray($invitedPlayerIds, 'Google_string', __METHOD__);
+ $this->invitedPlayerIds = $invitedPlayerIds;
+ }
+ public function getInvitedPlayerIds() {
+ return $this->invitedPlayerIds;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNetworkDiagnostics(Google_NetworkDiagnostics $networkDiagnostics) {
+ $this->networkDiagnostics = $networkDiagnostics;
+ }
+ public function getNetworkDiagnostics() {
+ return $this->networkDiagnostics;
+ }
+ public function setVariant( $variant) {
+ $this->variant = $variant;
+ }
+ public function getVariant() {
+ return $this->variant;
+ }
+}
+
+class Google_RoomJoinRequest extends Google_Model {
+ public $capabilities;
+ protected $__clientAddressType = 'Google_RoomClientAddress';
+ protected $__clientAddressDataType = '';
+ public $clientAddress;
+ public $kind;
+ protected $__networkDiagnosticsType = 'Google_NetworkDiagnostics';
+ protected $__networkDiagnosticsDataType = '';
+ public $networkDiagnostics;
+ public function setCapabilities(/* array(Google_string) */ $capabilities) {
+ $this->assertIsArray($capabilities, 'Google_string', __METHOD__);
+ $this->capabilities = $capabilities;
+ }
+ public function getCapabilities() {
+ return $this->capabilities;
+ }
+ public function setClientAddress(Google_RoomClientAddress $clientAddress) {
+ $this->clientAddress = $clientAddress;
+ }
+ public function getClientAddress() {
+ return $this->clientAddress;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNetworkDiagnostics(Google_NetworkDiagnostics $networkDiagnostics) {
+ $this->networkDiagnostics = $networkDiagnostics;
+ }
+ public function getNetworkDiagnostics() {
+ return $this->networkDiagnostics;
+ }
+}
+
+class Google_RoomLeaveDiagnostics extends Google_Model {
+ public $androidNetworkSubtype;
+ public $androidNetworkType;
+ public $kind;
+ protected $__peerSessionType = 'Google_PeerSessionDiagnostics';
+ protected $__peerSessionDataType = 'array';
+ public $peerSession;
+ public $socketsUsed;
+ public function setAndroidNetworkSubtype( $androidNetworkSubtype) {
+ $this->androidNetworkSubtype = $androidNetworkSubtype;
+ }
+ public function getAndroidNetworkSubtype() {
+ return $this->androidNetworkSubtype;
+ }
+ public function setAndroidNetworkType( $androidNetworkType) {
+ $this->androidNetworkType = $androidNetworkType;
+ }
+ public function getAndroidNetworkType() {
+ return $this->androidNetworkType;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPeerSession(/* array(Google_PeerSessionDiagnostics) */ $peerSession) {
+ $this->assertIsArray($peerSession, 'Google_PeerSessionDiagnostics', __METHOD__);
+ $this->peerSession = $peerSession;
+ }
+ public function getPeerSession() {
+ return $this->peerSession;
+ }
+ public function setSocketsUsed( $socketsUsed) {
+ $this->socketsUsed = $socketsUsed;
+ }
+ public function getSocketsUsed() {
+ return $this->socketsUsed;
+ }
+}
+
+class Google_RoomLeaveRequest extends Google_Model {
+ public $kind;
+ protected $__leaveDiagnosticsType = 'Google_RoomLeaveDiagnostics';
+ protected $__leaveDiagnosticsDataType = '';
+ public $leaveDiagnostics;
+ public $reason;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLeaveDiagnostics(Google_RoomLeaveDiagnostics $leaveDiagnostics) {
+ $this->leaveDiagnostics = $leaveDiagnostics;
+ }
+ public function getLeaveDiagnostics() {
+ return $this->leaveDiagnostics;
+ }
+ public function setReason( $reason) {
+ $this->reason = $reason;
+ }
+ public function getReason() {
+ return $this->reason;
+ }
+}
+
+class Google_RoomList extends Google_Model {
+ protected $__itemsType = 'Google_Room';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Room) */ $items) {
+ $this->assertIsArray($items, 'Google_Room', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_RoomModification extends Google_Model {
+ public $kind;
+ public $modifiedTimestampMillis;
+ public $participantId;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setModifiedTimestampMillis( $modifiedTimestampMillis) {
+ $this->modifiedTimestampMillis = $modifiedTimestampMillis;
+ }
+ public function getModifiedTimestampMillis() {
+ return $this->modifiedTimestampMillis;
+ }
+ public function setParticipantId( $participantId) {
+ $this->participantId = $participantId;
+ }
+ public function getParticipantId() {
+ return $this->participantId;
+ }
+}
+
+class Google_RoomP2PStatus extends Google_Model {
+ public $connectionSetupLatencyMillis;
+ public $error;
+ public $error_reason;
+ public $kind;
+ public $participantId;
+ public $status;
+ public $unreliableRoundtripLatencyMillis;
+ public function setConnectionSetupLatencyMillis( $connectionSetupLatencyMillis) {
+ $this->connectionSetupLatencyMillis = $connectionSetupLatencyMillis;
+ }
+ public function getConnectionSetupLatencyMillis() {
+ return $this->connectionSetupLatencyMillis;
+ }
+ public function setError( $error) {
+ $this->error = $error;
+ }
+ public function getError() {
+ return $this->error;
+ }
+ public function setError_reason( $error_reason) {
+ $this->error_reason = $error_reason;
+ }
+ public function getError_reason() {
+ return $this->error_reason;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setParticipantId( $participantId) {
+ $this->participantId = $participantId;
+ }
+ public function getParticipantId() {
+ return $this->participantId;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setUnreliableRoundtripLatencyMillis( $unreliableRoundtripLatencyMillis) {
+ $this->unreliableRoundtripLatencyMillis = $unreliableRoundtripLatencyMillis;
+ }
+ public function getUnreliableRoundtripLatencyMillis() {
+ return $this->unreliableRoundtripLatencyMillis;
+ }
+}
+
+class Google_RoomP2PStatuses extends Google_Model {
+ public $kind;
+ protected $__updatesType = 'Google_RoomP2PStatus';
+ protected $__updatesDataType = 'array';
+ public $updates;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setUpdates(/* array(Google_RoomP2PStatus) */ $updates) {
+ $this->assertIsArray($updates, 'Google_RoomP2PStatus', __METHOD__);
+ $this->updates = $updates;
+ }
+ public function getUpdates() {
+ return $this->updates;
+ }
+}
+
+class Google_RoomParticipant extends Google_Model {
+ protected $__autoMatchedPlayerType = 'Google_AnonymousPlayer';
+ protected $__autoMatchedPlayerDataType = '';
+ public $autoMatchedPlayer;
+ public $capabilities;
+ protected $__clientAddressType = 'Google_RoomClientAddress';
+ protected $__clientAddressDataType = '';
+ public $clientAddress;
+ public $connected;
+ public $id;
+ public $kind;
+ public $leaveReason;
+ protected $__playerType = 'Google_Player';
+ protected $__playerDataType = '';
+ public $player;
+ public $status;
+ public function setAutoMatchedPlayer(Google_AnonymousPlayer $autoMatchedPlayer) {
+ $this->autoMatchedPlayer = $autoMatchedPlayer;
+ }
+ public function getAutoMatchedPlayer() {
+ return $this->autoMatchedPlayer;
+ }
+ public function setCapabilities(/* array(Google_string) */ $capabilities) {
+ $this->assertIsArray($capabilities, 'Google_string', __METHOD__);
+ $this->capabilities = $capabilities;
+ }
+ public function getCapabilities() {
+ return $this->capabilities;
+ }
+ public function setClientAddress(Google_RoomClientAddress $clientAddress) {
+ $this->clientAddress = $clientAddress;
+ }
+ public function getClientAddress() {
+ return $this->clientAddress;
+ }
+ public function setConnected( $connected) {
+ $this->connected = $connected;
+ }
+ public function getConnected() {
+ return $this->connected;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLeaveReason( $leaveReason) {
+ $this->leaveReason = $leaveReason;
+ }
+ public function getLeaveReason() {
+ return $this->leaveReason;
+ }
+ public function setPlayer(Google_Player $player) {
+ $this->player = $player;
+ }
+ public function getPlayer() {
+ return $this->player;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_RoomStatus extends Google_Model {
+ protected $__autoMatchingStatusType = 'Google_RoomAutoMatchStatus';
+ protected $__autoMatchingStatusDataType = '';
+ public $autoMatchingStatus;
+ public $kind;
+ protected $__participantsType = 'Google_RoomParticipant';
+ protected $__participantsDataType = 'array';
+ public $participants;
+ public $roomId;
+ public $status;
+ public $statusVersion;
+ public function setAutoMatchingStatus(Google_RoomAutoMatchStatus $autoMatchingStatus) {
+ $this->autoMatchingStatus = $autoMatchingStatus;
+ }
+ public function getAutoMatchingStatus() {
+ return $this->autoMatchingStatus;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setParticipants(/* array(Google_RoomParticipant) */ $participants) {
+ $this->assertIsArray($participants, 'Google_RoomParticipant', __METHOD__);
+ $this->participants = $participants;
+ }
+ public function getParticipants() {
+ return $this->participants;
+ }
+ public function setRoomId( $roomId) {
+ $this->roomId = $roomId;
+ }
+ public function getRoomId() {
+ return $this->roomId;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setStatusVersion( $statusVersion) {
+ $this->statusVersion = $statusVersion;
+ }
+ public function getStatusVersion() {
+ return $this->statusVersion;
+ }
+}
+
+class Google_ScoreSubmission extends Google_Model {
+ public $kind;
+ public $leaderboardId;
+ public $score;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLeaderboardId( $leaderboardId) {
+ $this->leaderboardId = $leaderboardId;
+ }
+ public function getLeaderboardId() {
+ return $this->leaderboardId;
+ }
+ public function setScore( $score) {
+ $this->score = $score;
+ }
+ public function getScore() {
+ return $this->score;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GanService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GanService.php
new file mode 100644
index 0000000..a746b02
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GanService.php
@@ -0,0 +1,1827 @@
+
+ * $ganService = new Google_GanService(...);
+ * $advertisers = $ganService->advertisers;
+ *
+ */
+ class Google_AdvertisersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves data about a single advertiser if that the requesting advertiser/publisher has access
+ * to it. Only publishers can lookup advertisers. Advertisers can request information about
+ * themselves by omitting the advertiserId query parameter. (advertisers.get)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string advertiserId The ID of the advertiser to look up. Optional.
+ * @return Google_Advertiser
+ */
+ public function get($role, $roleId, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Advertiser($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves data about all advertisers that the requesting advertiser/publisher has access to.
+ * (advertisers.list)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string advertiserCategory Caret(^) delimted list of advertiser categories. Valid categories are defined here: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en=107581. Filters out all advertisers not in one of the given advertiser categories. Optional.
+ * @opt_param string maxResults Max number of items to return in this page. Optional. Defaults to 20.
+ * @opt_param double minNinetyDayEpc Filters out all advertisers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.
+ * @opt_param int minPayoutRank A value between 1 and 4, where 1 represents the quartile of advertisers with the lowest ranks and 4 represents the quartile of advertisers with the highest ranks. Filters out all advertisers with a lower rank than the given quartile. For example if a 2 was given only advertisers with a payout rank of 25 or higher would be included. Optional.
+ * @opt_param double minSevenDayEpc Filters out all advertisers that have a seven day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.
+ * @opt_param string pageToken The value of 'nextPageToken' from the previous page. Optional.
+ * @opt_param string relationshipStatus Filters out all advertisers for which do not have the given relationship status with the requesting publisher.
+ * @return Google_Advertisers
+ */
+ public function listAdvertisers($role, $roleId, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Advertisers($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "ccOffers" collection of methods.
+ * Typical usage is:
+ *
+ * $ganService = new Google_GanService(...);
+ * $ccOffers = $ganService->ccOffers;
+ *
+ */
+ class Google_CcOffersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves credit card offers for the given publisher. (ccOffers.list)
+ *
+ * @param string $publisher The ID of the publisher in question.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string advertiser The advertiser ID of a card issuer whose offers to include. Optional, may be repeated.
+ * @opt_param string projection The set of fields to return.
+ * @return Google_CcOffers
+ */
+ public function listCcOffers($publisher, $optParams = array()) {
+ $params = array('publisher' => $publisher);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CcOffers($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "events" collection of methods.
+ * Typical usage is:
+ *
+ * $ganService = new Google_GanService(...);
+ * $events = $ganService->events;
+ *
+ */
+ class Google_EventsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves event data for a given advertiser/publisher. (events.list)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string advertiserId Caret(^) delimited list of advertiser IDs. Filters out all events that do not reference one of the given advertiser IDs. Only used when under publishers role. Optional.
+ * @opt_param string chargeType Filters out all charge events that are not of the given charge type. Valid values: 'other', 'slotting_fee', 'monthly_minimum', 'tier_bonus', 'credit', 'debit'. Optional.
+ * @opt_param string eventDateMax Filters out all events later than given date. Optional. Defaults to 24 hours after eventMin.
+ * @opt_param string eventDateMin Filters out all events earlier than given date. Optional. Defaults to 24 hours from current date/time.
+ * @opt_param string linkId Caret(^) delimited list of link IDs. Filters out all events that do not reference one of the given link IDs. Optional.
+ * @opt_param string maxResults Max number of offers to return in this page. Optional. Defaults to 20.
+ * @opt_param string memberId Caret(^) delimited list of member IDs. Filters out all events that do not reference one of the given member IDs. Optional.
+ * @opt_param string modifyDateMax Filters out all events modified later than given date. Optional. Defaults to 24 hours after modifyDateMin, if modifyDateMin is explicitly set.
+ * @opt_param string modifyDateMin Filters out all events modified earlier than given date. Optional. Defaults to 24 hours before the current modifyDateMax, if modifyDateMax is explicitly set.
+ * @opt_param string orderId Caret(^) delimited list of order IDs. Filters out all events that do not reference one of the given order IDs. Optional.
+ * @opt_param string pageToken The value of 'nextPageToken' from the previous page. Optional.
+ * @opt_param string productCategory Caret(^) delimited list of product categories. Filters out all events that do not reference a product in one of the given product categories. Optional.
+ * @opt_param string publisherId Caret(^) delimited list of publisher IDs. Filters out all events that do not reference one of the given publishers IDs. Only used when under advertiser role. Optional.
+ * @opt_param string sku Caret(^) delimited list of SKUs. Filters out all events that do not reference one of the given SKU. Optional.
+ * @opt_param string status Filters out all events that do not have the given status. Valid values: 'active', 'canceled'. Optional.
+ * @opt_param string type Filters out all events that are not of the given type. Valid values: 'action', 'transaction', 'charge'. Optional.
+ * @return Google_Events
+ */
+ public function listEvents($role, $roleId, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Events($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "links" collection of methods.
+ * Typical usage is:
+ *
+ * $ganService = new Google_GanService(...);
+ * $links = $ganService->links;
+ *
+ */
+ class Google_LinksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves data about a single link if the requesting advertiser/publisher has access to it.
+ * Advertisers can look up their own links. Publishers can look up visible links or links belonging
+ * to advertisers they are in a relationship with. (links.get)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param string $linkId The ID of the link to look up.
+ * @param array $optParams Optional parameters.
+ * @return Google_Link
+ */
+ public function get($role, $roleId, $linkId, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId, 'linkId' => $linkId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Link($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Inserts a new link. (links.insert)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param Google_Link $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Link
+ */
+ public function insert($role, $roleId, Google_Link $postBody, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Link($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves all links that match the query parameters. (links.list)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string advertiserId Limits the resulting links to the ones belonging to the listed advertisers.
+ * @opt_param string assetSize The size of the given asset.
+ * @opt_param string authorship The role of the author of the link.
+ * @opt_param string createDateMax The end of the create date range.
+ * @opt_param string createDateMin The beginning of the create date range.
+ * @opt_param string linkType The type of the link.
+ * @opt_param string maxResults Max number of items to return in this page. Optional. Defaults to 20.
+ * @opt_param string pageToken The value of 'nextPageToken' from the previous page. Optional.
+ * @opt_param string promotionType The promotion type.
+ * @opt_param string relationshipStatus The status of the relationship.
+ * @opt_param string searchText Field for full text search across title and merchandising text, supports link id search.
+ * @opt_param string startDateMax The end of the start date range.
+ * @opt_param string startDateMin The beginning of the start date range.
+ * @return Google_Links
+ */
+ public function listLinks($role, $roleId, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Links($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "publishers" collection of methods.
+ * Typical usage is:
+ *
+ * $ganService = new Google_GanService(...);
+ * $publishers = $ganService->publishers;
+ *
+ */
+ class Google_PublishersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves data about a single advertiser if that the requesting advertiser/publisher has access
+ * to it. Only advertisers can look up publishers. Publishers can request information about
+ * themselves by omitting the publisherId query parameter. (publishers.get)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string publisherId The ID of the publisher to look up. Optional.
+ * @return Google_Publisher
+ */
+ public function get($role, $roleId, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Publisher($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves data about all publishers that the requesting advertiser/publisher has access to.
+ * (publishers.list)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Max number of items to return in this page. Optional. Defaults to 20.
+ * @opt_param double minNinetyDayEpc Filters out all publishers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.
+ * @opt_param int minPayoutRank A value between 1 and 4, where 1 represents the quartile of publishers with the lowest ranks and 4 represents the quartile of publishers with the highest ranks. Filters out all publishers with a lower rank than the given quartile. For example if a 2 was given only publishers with a payout rank of 25 or higher would be included. Optional.
+ * @opt_param double minSevenDayEpc Filters out all publishers that have a seven day EPC average lower than the given value (inclusive). Min value 0.0. Optional.
+ * @opt_param string pageToken The value of 'nextPageToken' from the previous page. Optional.
+ * @opt_param string publisherCategory Caret(^) delimted list of publisher categories. Valid categories: (unclassified|community_and_content|shopping_and_promotion|loyalty_and_rewards|network|search_specialist|comparison_shopping|email). Filters out all publishers not in one of the given advertiser categories. Optional.
+ * @opt_param string relationshipStatus Filters out all publishers for which do not have the given relationship status with the requesting publisher.
+ * @return Google_Publishers
+ */
+ public function listPublishers($role, $roleId, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Publishers($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "reports" collection of methods.
+ * Typical usage is:
+ *
+ * $ganService = new Google_GanService(...);
+ * $reports = $ganService->reports;
+ *
+ */
+ class Google_ReportsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a report of the specified type. (reports.get)
+ *
+ * @param string $role The role of the requester. Valid values: 'advertisers' or 'publishers'.
+ * @param string $roleId The ID of the requesting advertiser or publisher.
+ * @param string $reportType The type of report being requested. Valid values: 'order_delta'. Required.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string advertiserId The IDs of the advertisers to look up, if applicable.
+ * @opt_param bool calculateTotals Whether or not to calculate totals rows. Optional.
+ * @opt_param string endDate The end date (exclusive), in RFC 3339 format, for the report data to be returned. Defaults to one day after startDate, if that is given, or today. Optional.
+ * @opt_param string eventType Filters out all events that are not of the given type. Valid values: 'action', 'transaction', or 'charge'. Optional.
+ * @opt_param string linkId Filters to capture one of given link IDs. Optional.
+ * @opt_param string maxResults Max number of items to return in this page. Optional. Defaults to return all results.
+ * @opt_param string orderId Filters to capture one of the given order IDs. Optional.
+ * @opt_param string publisherId The IDs of the publishers to look up, if applicable.
+ * @opt_param string startDate The start date (inclusive), in RFC 3339 format, for the report data to be returned. Defaults to one day before endDate, if that is given, or yesterday. Optional.
+ * @opt_param string startIndex Offset on which to return results when paging. Optional.
+ * @opt_param string status Filters out all events that do not have the given status. Valid values: 'active', 'canceled', or 'invalid'. Optional.
+ * @return Google_Report
+ */
+ public function get($role, $roleId, $reportType, $optParams = array()) {
+ $params = array('role' => $role, 'roleId' => $roleId, 'reportType' => $reportType);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Report($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Gan (v1beta1).
+ *
+ *
+ * Lets you have programmatic access to your Google Affiliate Network data.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_GanService extends Google_Service {
+ public $advertisers;
+ public $ccOffers;
+ public $events;
+ public $links;
+ public $publishers;
+ public $reports;
+ /**
+ * Constructs the internal representation of the Gan service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'gan/v1beta1/';
+ $this->version = 'v1beta1';
+ $this->serviceName = 'gan';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->advertisers = new Google_AdvertisersServiceResource($this, $this->serviceName, 'advertisers', json_decode('{"methods": {"get": {"id": "gan.advertisers.get", "path": "{role}/{roleId}/advertiser", "httpMethod": "GET", "parameters": {"advertiserId": {"type": "string", "location": "query"}, "role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Advertiser"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}, "list": {"id": "gan.advertisers.list", "path": "{role}/{roleId}/advertisers", "httpMethod": "GET", "parameters": {"advertiserCategory": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "minNinetyDayEpc": {"type": "number", "format": "double", "location": "query"}, "minPayoutRank": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "4", "location": "query"}, "minSevenDayEpc": {"type": "number", "format": "double", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "relationshipStatus": {"type": "string", "enum": ["approved", "available", "deactivated", "declined", "pending"], "location": "query"}, "role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Advertisers"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}}}', true));
+ $this->ccOffers = new Google_CcOffersServiceResource($this, $this->serviceName, 'ccOffers', json_decode('{"methods": {"list": {"id": "gan.ccOffers.list", "path": "publishers/{publisher}/ccOffers", "httpMethod": "GET", "parameters": {"advertiser": {"type": "string", "repeated": true, "location": "query"}, "projection": {"type": "string", "enum": ["full", "summary"], "location": "query"}, "publisher": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CcOffers"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}}}', true));
+ $this->events = new Google_EventsServiceResource($this, $this->serviceName, 'events', json_decode('{"methods": {"list": {"id": "gan.events.list", "path": "{role}/{roleId}/events", "httpMethod": "GET", "parameters": {"advertiserId": {"type": "string", "location": "query"}, "chargeType": {"type": "string", "enum": ["credit", "debit", "monthly_minimum", "other", "slotting_fee", "tier_bonus"], "location": "query"}, "eventDateMax": {"type": "string", "location": "query"}, "eventDateMin": {"type": "string", "location": "query"}, "linkId": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "memberId": {"type": "string", "location": "query"}, "modifyDateMax": {"type": "string", "location": "query"}, "modifyDateMin": {"type": "string", "location": "query"}, "orderId": {"type": "string", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "productCategory": {"type": "string", "location": "query"}, "publisherId": {"type": "string", "location": "query"}, "role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}, "sku": {"type": "string", "location": "query"}, "status": {"type": "string", "enum": ["active", "canceled"], "location": "query"}, "type": {"type": "string", "enum": ["action", "charge", "transaction"], "location": "query"}}, "response": {"$ref": "Events"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}}}', true));
+ $this->links = new Google_LinksServiceResource($this, $this->serviceName, 'links', json_decode('{"methods": {"get": {"id": "gan.links.get", "path": "{role}/{roleId}/link/{linkId}", "httpMethod": "GET", "parameters": {"linkId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Link"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}, "insert": {"id": "gan.links.insert", "path": "{role}/{roleId}/link", "httpMethod": "POST", "parameters": {"role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Link"}, "response": {"$ref": "Link"}, "scopes": ["https://www.googleapis.com/auth/gan"]}, "list": {"id": "gan.links.list", "path": "{role}/{roleId}/links", "httpMethod": "GET", "parameters": {"advertiserId": {"type": "string", "format": "int64", "repeated": true, "location": "query"}, "assetSize": {"type": "string", "repeated": true, "location": "query"}, "authorship": {"type": "string", "enum": ["advertiser", "publisher"], "location": "query"}, "createDateMax": {"type": "string", "location": "query"}, "createDateMin": {"type": "string", "location": "query"}, "linkType": {"type": "string", "enum": ["banner", "text"], "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "promotionType": {"type": "string", "enum": ["coupon", "free_gift", "free_shipping", "percent_off", "price_cut"], "repeated": true, "location": "query"}, "relationshipStatus": {"type": "string", "enum": ["approved", "available"], "location": "query"}, "role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}, "searchText": {"type": "string", "location": "query"}, "startDateMax": {"type": "string", "location": "query"}, "startDateMin": {"type": "string", "location": "query"}}, "response": {"$ref": "Links"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}}}', true));
+ $this->publishers = new Google_PublishersServiceResource($this, $this->serviceName, 'publishers', json_decode('{"methods": {"get": {"id": "gan.publishers.get", "path": "{role}/{roleId}/publisher", "httpMethod": "GET", "parameters": {"publisherId": {"type": "string", "location": "query"}, "role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Publisher"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}, "list": {"id": "gan.publishers.list", "path": "{role}/{roleId}/publishers", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "maximum": "100", "location": "query"}, "minNinetyDayEpc": {"type": "number", "format": "double", "location": "query"}, "minPayoutRank": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "4", "location": "query"}, "minSevenDayEpc": {"type": "number", "format": "double", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "publisherCategory": {"type": "string", "location": "query"}, "relationshipStatus": {"type": "string", "enum": ["approved", "available", "deactivated", "declined", "pending"], "location": "query"}, "role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Publishers"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}}}', true));
+ $this->reports = new Google_ReportsServiceResource($this, $this->serviceName, 'reports', json_decode('{"methods": {"get": {"id": "gan.reports.get", "path": "{role}/{roleId}/report/{reportType}", "httpMethod": "GET", "parameters": {"advertiserId": {"type": "string", "repeated": true, "location": "query"}, "calculateTotals": {"type": "boolean", "location": "query"}, "endDate": {"type": "string", "location": "query"}, "eventType": {"type": "string", "enum": ["action", "charge", "transaction"], "location": "query"}, "linkId": {"type": "string", "repeated": true, "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "orderId": {"type": "string", "repeated": true, "location": "query"}, "publisherId": {"type": "string", "repeated": true, "location": "query"}, "reportType": {"type": "string", "required": true, "enum": ["order_delta"], "location": "path"}, "role": {"type": "string", "required": true, "enum": ["advertisers", "publishers"], "location": "path"}, "roleId": {"type": "string", "required": true, "location": "path"}, "startDate": {"type": "string", "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "status": {"type": "string", "enum": ["active", "canceled", "invalid"], "location": "query"}}, "response": {"$ref": "Report"}, "scopes": ["https://www.googleapis.com/auth/gan", "https://www.googleapis.com/auth/gan.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Advertiser extends Google_Model {
+ public $allowPublisherCreatedLinks;
+ public $category;
+ public $commissionDuration;
+ public $contactEmail;
+ public $contactPhone;
+ public $defaultLinkId;
+ public $description;
+ protected $__epcNinetyDayAverageType = 'Google_Money';
+ protected $__epcNinetyDayAverageDataType = '';
+ public $epcNinetyDayAverage;
+ protected $__epcSevenDayAverageType = 'Google_Money';
+ protected $__epcSevenDayAverageDataType = '';
+ public $epcSevenDayAverage;
+ public $id;
+ protected $__itemType = 'Google_Advertiser';
+ protected $__itemDataType = '';
+ public $item;
+ public $joinDate;
+ public $kind;
+ public $logoUrl;
+ public $merchantCenterIds;
+ public $name;
+ public $payoutRank;
+ public $productFeedsEnabled;
+ public $redirectDomains;
+ public $siteUrl;
+ public $status;
+ public function setAllowPublisherCreatedLinks( $allowPublisherCreatedLinks) {
+ $this->allowPublisherCreatedLinks = $allowPublisherCreatedLinks;
+ }
+ public function getAllowPublisherCreatedLinks() {
+ return $this->allowPublisherCreatedLinks;
+ }
+ public function setCategory( $category) {
+ $this->category = $category;
+ }
+ public function getCategory() {
+ return $this->category;
+ }
+ public function setCommissionDuration( $commissionDuration) {
+ $this->commissionDuration = $commissionDuration;
+ }
+ public function getCommissionDuration() {
+ return $this->commissionDuration;
+ }
+ public function setContactEmail( $contactEmail) {
+ $this->contactEmail = $contactEmail;
+ }
+ public function getContactEmail() {
+ return $this->contactEmail;
+ }
+ public function setContactPhone( $contactPhone) {
+ $this->contactPhone = $contactPhone;
+ }
+ public function getContactPhone() {
+ return $this->contactPhone;
+ }
+ public function setDefaultLinkId( $defaultLinkId) {
+ $this->defaultLinkId = $defaultLinkId;
+ }
+ public function getDefaultLinkId() {
+ return $this->defaultLinkId;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEpcNinetyDayAverage(Google_Money $epcNinetyDayAverage) {
+ $this->epcNinetyDayAverage = $epcNinetyDayAverage;
+ }
+ public function getEpcNinetyDayAverage() {
+ return $this->epcNinetyDayAverage;
+ }
+ public function setEpcSevenDayAverage(Google_Money $epcSevenDayAverage) {
+ $this->epcSevenDayAverage = $epcSevenDayAverage;
+ }
+ public function getEpcSevenDayAverage() {
+ return $this->epcSevenDayAverage;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItem(Google_Advertiser $item) {
+ $this->item = $item;
+ }
+ public function getItem() {
+ return $this->item;
+ }
+ public function setJoinDate( $joinDate) {
+ $this->joinDate = $joinDate;
+ }
+ public function getJoinDate() {
+ return $this->joinDate;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLogoUrl( $logoUrl) {
+ $this->logoUrl = $logoUrl;
+ }
+ public function getLogoUrl() {
+ return $this->logoUrl;
+ }
+ public function setMerchantCenterIds(/* array(Google_string) */ $merchantCenterIds) {
+ $this->assertIsArray($merchantCenterIds, 'Google_string', __METHOD__);
+ $this->merchantCenterIds = $merchantCenterIds;
+ }
+ public function getMerchantCenterIds() {
+ return $this->merchantCenterIds;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPayoutRank( $payoutRank) {
+ $this->payoutRank = $payoutRank;
+ }
+ public function getPayoutRank() {
+ return $this->payoutRank;
+ }
+ public function setProductFeedsEnabled( $productFeedsEnabled) {
+ $this->productFeedsEnabled = $productFeedsEnabled;
+ }
+ public function getProductFeedsEnabled() {
+ return $this->productFeedsEnabled;
+ }
+ public function setRedirectDomains(/* array(Google_string) */ $redirectDomains) {
+ $this->assertIsArray($redirectDomains, 'Google_string', __METHOD__);
+ $this->redirectDomains = $redirectDomains;
+ }
+ public function getRedirectDomains() {
+ return $this->redirectDomains;
+ }
+ public function setSiteUrl( $siteUrl) {
+ $this->siteUrl = $siteUrl;
+ }
+ public function getSiteUrl() {
+ return $this->siteUrl;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_Advertisers extends Google_Model {
+ protected $__itemsType = 'Google_Advertiser';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Advertiser) */ $items) {
+ $this->assertIsArray($items, 'Google_Advertiser', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_CcOffer extends Google_Model {
+ public $additionalCardBenefits;
+ public $additionalCardHolderFee;
+ public $ageMinimum;
+ public $ageMinimumDetails;
+ public $annualFee;
+ public $annualFeeDisplay;
+ public $annualRewardMaximum;
+ public $approvedCategories;
+ public $aprDisplay;
+ public $balanceComputationMethod;
+ public $balanceTransferTerms;
+ protected $__bonusRewardsType = 'Google_CcOfferBonusRewards';
+ protected $__bonusRewardsDataType = 'array';
+ public $bonusRewards;
+ public $carRentalInsurance;
+ public $cardBenefits;
+ public $cardName;
+ public $cardType;
+ public $cashAdvanceTerms;
+ public $creditLimitMax;
+ public $creditLimitMin;
+ public $creditRatingDisplay;
+ protected $__defaultFeesType = 'Google_CcOfferDefaultFees';
+ protected $__defaultFeesDataType = 'array';
+ public $defaultFees;
+ public $disclaimer;
+ public $emergencyInsurance;
+ public $existingCustomerOnly;
+ public $extendedWarranty;
+ public $firstYearAnnualFee;
+ public $flightAccidentInsurance;
+ public $foreignCurrencyTransactionFee;
+ public $fraudLiability;
+ public $gracePeriodDisplay;
+ public $imageUrl;
+ public $initialSetupAndProcessingFee;
+ public $introBalanceTransferTerms;
+ public $introCashAdvanceTerms;
+ public $introPurchaseTerms;
+ public $issuer;
+ public $issuerId;
+ public $issuerWebsite;
+ public $kind;
+ public $landingPageUrl;
+ public $latePaymentFee;
+ public $luggageInsurance;
+ public $maxPurchaseRate;
+ public $minPurchaseRate;
+ public $minimumFinanceCharge;
+ public $network;
+ public $offerId;
+ public $offersImmediateCashReward;
+ public $overLimitFee;
+ public $prohibitedCategories;
+ public $purchaseRateAdditionalDetails;
+ public $purchaseRateType;
+ public $returnedPaymentFee;
+ public $rewardPartner;
+ public $rewardUnit;
+ protected $__rewardsType = 'Google_CcOfferRewards';
+ protected $__rewardsDataType = 'array';
+ public $rewards;
+ public $rewardsExpire;
+ public $rewardsHaveBlackoutDates;
+ public $statementCopyFee;
+ public $trackingUrl;
+ public $travelInsurance;
+ public $variableRatesLastUpdated;
+ public $variableRatesUpdateFrequency;
+ public function setAdditionalCardBenefits(/* array(Google_string) */ $additionalCardBenefits) {
+ $this->assertIsArray($additionalCardBenefits, 'Google_string', __METHOD__);
+ $this->additionalCardBenefits = $additionalCardBenefits;
+ }
+ public function getAdditionalCardBenefits() {
+ return $this->additionalCardBenefits;
+ }
+ public function setAdditionalCardHolderFee( $additionalCardHolderFee) {
+ $this->additionalCardHolderFee = $additionalCardHolderFee;
+ }
+ public function getAdditionalCardHolderFee() {
+ return $this->additionalCardHolderFee;
+ }
+ public function setAgeMinimum( $ageMinimum) {
+ $this->ageMinimum = $ageMinimum;
+ }
+ public function getAgeMinimum() {
+ return $this->ageMinimum;
+ }
+ public function setAgeMinimumDetails( $ageMinimumDetails) {
+ $this->ageMinimumDetails = $ageMinimumDetails;
+ }
+ public function getAgeMinimumDetails() {
+ return $this->ageMinimumDetails;
+ }
+ public function setAnnualFee( $annualFee) {
+ $this->annualFee = $annualFee;
+ }
+ public function getAnnualFee() {
+ return $this->annualFee;
+ }
+ public function setAnnualFeeDisplay( $annualFeeDisplay) {
+ $this->annualFeeDisplay = $annualFeeDisplay;
+ }
+ public function getAnnualFeeDisplay() {
+ return $this->annualFeeDisplay;
+ }
+ public function setAnnualRewardMaximum( $annualRewardMaximum) {
+ $this->annualRewardMaximum = $annualRewardMaximum;
+ }
+ public function getAnnualRewardMaximum() {
+ return $this->annualRewardMaximum;
+ }
+ public function setApprovedCategories(/* array(Google_string) */ $approvedCategories) {
+ $this->assertIsArray($approvedCategories, 'Google_string', __METHOD__);
+ $this->approvedCategories = $approvedCategories;
+ }
+ public function getApprovedCategories() {
+ return $this->approvedCategories;
+ }
+ public function setAprDisplay( $aprDisplay) {
+ $this->aprDisplay = $aprDisplay;
+ }
+ public function getAprDisplay() {
+ return $this->aprDisplay;
+ }
+ public function setBalanceComputationMethod( $balanceComputationMethod) {
+ $this->balanceComputationMethod = $balanceComputationMethod;
+ }
+ public function getBalanceComputationMethod() {
+ return $this->balanceComputationMethod;
+ }
+ public function setBalanceTransferTerms( $balanceTransferTerms) {
+ $this->balanceTransferTerms = $balanceTransferTerms;
+ }
+ public function getBalanceTransferTerms() {
+ return $this->balanceTransferTerms;
+ }
+ public function setBonusRewards(/* array(Google_CcOfferBonusRewards) */ $bonusRewards) {
+ $this->assertIsArray($bonusRewards, 'Google_CcOfferBonusRewards', __METHOD__);
+ $this->bonusRewards = $bonusRewards;
+ }
+ public function getBonusRewards() {
+ return $this->bonusRewards;
+ }
+ public function setCarRentalInsurance( $carRentalInsurance) {
+ $this->carRentalInsurance = $carRentalInsurance;
+ }
+ public function getCarRentalInsurance() {
+ return $this->carRentalInsurance;
+ }
+ public function setCardBenefits(/* array(Google_string) */ $cardBenefits) {
+ $this->assertIsArray($cardBenefits, 'Google_string', __METHOD__);
+ $this->cardBenefits = $cardBenefits;
+ }
+ public function getCardBenefits() {
+ return $this->cardBenefits;
+ }
+ public function setCardName( $cardName) {
+ $this->cardName = $cardName;
+ }
+ public function getCardName() {
+ return $this->cardName;
+ }
+ public function setCardType( $cardType) {
+ $this->cardType = $cardType;
+ }
+ public function getCardType() {
+ return $this->cardType;
+ }
+ public function setCashAdvanceTerms( $cashAdvanceTerms) {
+ $this->cashAdvanceTerms = $cashAdvanceTerms;
+ }
+ public function getCashAdvanceTerms() {
+ return $this->cashAdvanceTerms;
+ }
+ public function setCreditLimitMax( $creditLimitMax) {
+ $this->creditLimitMax = $creditLimitMax;
+ }
+ public function getCreditLimitMax() {
+ return $this->creditLimitMax;
+ }
+ public function setCreditLimitMin( $creditLimitMin) {
+ $this->creditLimitMin = $creditLimitMin;
+ }
+ public function getCreditLimitMin() {
+ return $this->creditLimitMin;
+ }
+ public function setCreditRatingDisplay( $creditRatingDisplay) {
+ $this->creditRatingDisplay = $creditRatingDisplay;
+ }
+ public function getCreditRatingDisplay() {
+ return $this->creditRatingDisplay;
+ }
+ public function setDefaultFees(/* array(Google_CcOfferDefaultFees) */ $defaultFees) {
+ $this->assertIsArray($defaultFees, 'Google_CcOfferDefaultFees', __METHOD__);
+ $this->defaultFees = $defaultFees;
+ }
+ public function getDefaultFees() {
+ return $this->defaultFees;
+ }
+ public function setDisclaimer( $disclaimer) {
+ $this->disclaimer = $disclaimer;
+ }
+ public function getDisclaimer() {
+ return $this->disclaimer;
+ }
+ public function setEmergencyInsurance( $emergencyInsurance) {
+ $this->emergencyInsurance = $emergencyInsurance;
+ }
+ public function getEmergencyInsurance() {
+ return $this->emergencyInsurance;
+ }
+ public function setExistingCustomerOnly( $existingCustomerOnly) {
+ $this->existingCustomerOnly = $existingCustomerOnly;
+ }
+ public function getExistingCustomerOnly() {
+ return $this->existingCustomerOnly;
+ }
+ public function setExtendedWarranty( $extendedWarranty) {
+ $this->extendedWarranty = $extendedWarranty;
+ }
+ public function getExtendedWarranty() {
+ return $this->extendedWarranty;
+ }
+ public function setFirstYearAnnualFee( $firstYearAnnualFee) {
+ $this->firstYearAnnualFee = $firstYearAnnualFee;
+ }
+ public function getFirstYearAnnualFee() {
+ return $this->firstYearAnnualFee;
+ }
+ public function setFlightAccidentInsurance( $flightAccidentInsurance) {
+ $this->flightAccidentInsurance = $flightAccidentInsurance;
+ }
+ public function getFlightAccidentInsurance() {
+ return $this->flightAccidentInsurance;
+ }
+ public function setForeignCurrencyTransactionFee( $foreignCurrencyTransactionFee) {
+ $this->foreignCurrencyTransactionFee = $foreignCurrencyTransactionFee;
+ }
+ public function getForeignCurrencyTransactionFee() {
+ return $this->foreignCurrencyTransactionFee;
+ }
+ public function setFraudLiability( $fraudLiability) {
+ $this->fraudLiability = $fraudLiability;
+ }
+ public function getFraudLiability() {
+ return $this->fraudLiability;
+ }
+ public function setGracePeriodDisplay( $gracePeriodDisplay) {
+ $this->gracePeriodDisplay = $gracePeriodDisplay;
+ }
+ public function getGracePeriodDisplay() {
+ return $this->gracePeriodDisplay;
+ }
+ public function setImageUrl( $imageUrl) {
+ $this->imageUrl = $imageUrl;
+ }
+ public function getImageUrl() {
+ return $this->imageUrl;
+ }
+ public function setInitialSetupAndProcessingFee( $initialSetupAndProcessingFee) {
+ $this->initialSetupAndProcessingFee = $initialSetupAndProcessingFee;
+ }
+ public function getInitialSetupAndProcessingFee() {
+ return $this->initialSetupAndProcessingFee;
+ }
+ public function setIntroBalanceTransferTerms( $introBalanceTransferTerms) {
+ $this->introBalanceTransferTerms = $introBalanceTransferTerms;
+ }
+ public function getIntroBalanceTransferTerms() {
+ return $this->introBalanceTransferTerms;
+ }
+ public function setIntroCashAdvanceTerms( $introCashAdvanceTerms) {
+ $this->introCashAdvanceTerms = $introCashAdvanceTerms;
+ }
+ public function getIntroCashAdvanceTerms() {
+ return $this->introCashAdvanceTerms;
+ }
+ public function setIntroPurchaseTerms( $introPurchaseTerms) {
+ $this->introPurchaseTerms = $introPurchaseTerms;
+ }
+ public function getIntroPurchaseTerms() {
+ return $this->introPurchaseTerms;
+ }
+ public function setIssuer( $issuer) {
+ $this->issuer = $issuer;
+ }
+ public function getIssuer() {
+ return $this->issuer;
+ }
+ public function setIssuerId( $issuerId) {
+ $this->issuerId = $issuerId;
+ }
+ public function getIssuerId() {
+ return $this->issuerId;
+ }
+ public function setIssuerWebsite( $issuerWebsite) {
+ $this->issuerWebsite = $issuerWebsite;
+ }
+ public function getIssuerWebsite() {
+ return $this->issuerWebsite;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLandingPageUrl( $landingPageUrl) {
+ $this->landingPageUrl = $landingPageUrl;
+ }
+ public function getLandingPageUrl() {
+ return $this->landingPageUrl;
+ }
+ public function setLatePaymentFee( $latePaymentFee) {
+ $this->latePaymentFee = $latePaymentFee;
+ }
+ public function getLatePaymentFee() {
+ return $this->latePaymentFee;
+ }
+ public function setLuggageInsurance( $luggageInsurance) {
+ $this->luggageInsurance = $luggageInsurance;
+ }
+ public function getLuggageInsurance() {
+ return $this->luggageInsurance;
+ }
+ public function setMaxPurchaseRate( $maxPurchaseRate) {
+ $this->maxPurchaseRate = $maxPurchaseRate;
+ }
+ public function getMaxPurchaseRate() {
+ return $this->maxPurchaseRate;
+ }
+ public function setMinPurchaseRate( $minPurchaseRate) {
+ $this->minPurchaseRate = $minPurchaseRate;
+ }
+ public function getMinPurchaseRate() {
+ return $this->minPurchaseRate;
+ }
+ public function setMinimumFinanceCharge( $minimumFinanceCharge) {
+ $this->minimumFinanceCharge = $minimumFinanceCharge;
+ }
+ public function getMinimumFinanceCharge() {
+ return $this->minimumFinanceCharge;
+ }
+ public function setNetwork( $network) {
+ $this->network = $network;
+ }
+ public function getNetwork() {
+ return $this->network;
+ }
+ public function setOfferId( $offerId) {
+ $this->offerId = $offerId;
+ }
+ public function getOfferId() {
+ return $this->offerId;
+ }
+ public function setOffersImmediateCashReward( $offersImmediateCashReward) {
+ $this->offersImmediateCashReward = $offersImmediateCashReward;
+ }
+ public function getOffersImmediateCashReward() {
+ return $this->offersImmediateCashReward;
+ }
+ public function setOverLimitFee( $overLimitFee) {
+ $this->overLimitFee = $overLimitFee;
+ }
+ public function getOverLimitFee() {
+ return $this->overLimitFee;
+ }
+ public function setProhibitedCategories(/* array(Google_string) */ $prohibitedCategories) {
+ $this->assertIsArray($prohibitedCategories, 'Google_string', __METHOD__);
+ $this->prohibitedCategories = $prohibitedCategories;
+ }
+ public function getProhibitedCategories() {
+ return $this->prohibitedCategories;
+ }
+ public function setPurchaseRateAdditionalDetails( $purchaseRateAdditionalDetails) {
+ $this->purchaseRateAdditionalDetails = $purchaseRateAdditionalDetails;
+ }
+ public function getPurchaseRateAdditionalDetails() {
+ return $this->purchaseRateAdditionalDetails;
+ }
+ public function setPurchaseRateType( $purchaseRateType) {
+ $this->purchaseRateType = $purchaseRateType;
+ }
+ public function getPurchaseRateType() {
+ return $this->purchaseRateType;
+ }
+ public function setReturnedPaymentFee( $returnedPaymentFee) {
+ $this->returnedPaymentFee = $returnedPaymentFee;
+ }
+ public function getReturnedPaymentFee() {
+ return $this->returnedPaymentFee;
+ }
+ public function setRewardPartner( $rewardPartner) {
+ $this->rewardPartner = $rewardPartner;
+ }
+ public function getRewardPartner() {
+ return $this->rewardPartner;
+ }
+ public function setRewardUnit( $rewardUnit) {
+ $this->rewardUnit = $rewardUnit;
+ }
+ public function getRewardUnit() {
+ return $this->rewardUnit;
+ }
+ public function setRewards(/* array(Google_CcOfferRewards) */ $rewards) {
+ $this->assertIsArray($rewards, 'Google_CcOfferRewards', __METHOD__);
+ $this->rewards = $rewards;
+ }
+ public function getRewards() {
+ return $this->rewards;
+ }
+ public function setRewardsExpire( $rewardsExpire) {
+ $this->rewardsExpire = $rewardsExpire;
+ }
+ public function getRewardsExpire() {
+ return $this->rewardsExpire;
+ }
+ public function setRewardsHaveBlackoutDates( $rewardsHaveBlackoutDates) {
+ $this->rewardsHaveBlackoutDates = $rewardsHaveBlackoutDates;
+ }
+ public function getRewardsHaveBlackoutDates() {
+ return $this->rewardsHaveBlackoutDates;
+ }
+ public function setStatementCopyFee( $statementCopyFee) {
+ $this->statementCopyFee = $statementCopyFee;
+ }
+ public function getStatementCopyFee() {
+ return $this->statementCopyFee;
+ }
+ public function setTrackingUrl( $trackingUrl) {
+ $this->trackingUrl = $trackingUrl;
+ }
+ public function getTrackingUrl() {
+ return $this->trackingUrl;
+ }
+ public function setTravelInsurance( $travelInsurance) {
+ $this->travelInsurance = $travelInsurance;
+ }
+ public function getTravelInsurance() {
+ return $this->travelInsurance;
+ }
+ public function setVariableRatesLastUpdated( $variableRatesLastUpdated) {
+ $this->variableRatesLastUpdated = $variableRatesLastUpdated;
+ }
+ public function getVariableRatesLastUpdated() {
+ return $this->variableRatesLastUpdated;
+ }
+ public function setVariableRatesUpdateFrequency( $variableRatesUpdateFrequency) {
+ $this->variableRatesUpdateFrequency = $variableRatesUpdateFrequency;
+ }
+ public function getVariableRatesUpdateFrequency() {
+ return $this->variableRatesUpdateFrequency;
+ }
+}
+
+class Google_CcOfferBonusRewards extends Google_Model {
+ public $amount;
+ public $details;
+ public function setAmount( $amount) {
+ $this->amount = $amount;
+ }
+ public function getAmount() {
+ return $this->amount;
+ }
+ public function setDetails( $details) {
+ $this->details = $details;
+ }
+ public function getDetails() {
+ return $this->details;
+ }
+}
+
+class Google_CcOfferDefaultFees extends Google_Model {
+ public $category;
+ public $maxRate;
+ public $minRate;
+ public $rateType;
+ public function setCategory( $category) {
+ $this->category = $category;
+ }
+ public function getCategory() {
+ return $this->category;
+ }
+ public function setMaxRate( $maxRate) {
+ $this->maxRate = $maxRate;
+ }
+ public function getMaxRate() {
+ return $this->maxRate;
+ }
+ public function setMinRate( $minRate) {
+ $this->minRate = $minRate;
+ }
+ public function getMinRate() {
+ return $this->minRate;
+ }
+ public function setRateType( $rateType) {
+ $this->rateType = $rateType;
+ }
+ public function getRateType() {
+ return $this->rateType;
+ }
+}
+
+class Google_CcOfferRewards extends Google_Model {
+ public $additionalDetails;
+ public $amount;
+ public $category;
+ public $expirationMonths;
+ public $maxRewardTier;
+ public $minRewardTier;
+ public function setAdditionalDetails( $additionalDetails) {
+ $this->additionalDetails = $additionalDetails;
+ }
+ public function getAdditionalDetails() {
+ return $this->additionalDetails;
+ }
+ public function setAmount( $amount) {
+ $this->amount = $amount;
+ }
+ public function getAmount() {
+ return $this->amount;
+ }
+ public function setCategory( $category) {
+ $this->category = $category;
+ }
+ public function getCategory() {
+ return $this->category;
+ }
+ public function setExpirationMonths( $expirationMonths) {
+ $this->expirationMonths = $expirationMonths;
+ }
+ public function getExpirationMonths() {
+ return $this->expirationMonths;
+ }
+ public function setMaxRewardTier( $maxRewardTier) {
+ $this->maxRewardTier = $maxRewardTier;
+ }
+ public function getMaxRewardTier() {
+ return $this->maxRewardTier;
+ }
+ public function setMinRewardTier( $minRewardTier) {
+ $this->minRewardTier = $minRewardTier;
+ }
+ public function getMinRewardTier() {
+ return $this->minRewardTier;
+ }
+}
+
+class Google_CcOffers extends Google_Model {
+ protected $__itemsType = 'Google_CcOffer';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_CcOffer) */ $items) {
+ $this->assertIsArray($items, 'Google_CcOffer', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Event extends Google_Model {
+ public $advertiserId;
+ public $advertiserName;
+ public $chargeId;
+ public $chargeType;
+ protected $__commissionableSalesType = 'Google_Money';
+ protected $__commissionableSalesDataType = '';
+ public $commissionableSales;
+ protected $__earningsType = 'Google_Money';
+ protected $__earningsDataType = '';
+ public $earnings;
+ public $eventDate;
+ public $kind;
+ public $memberId;
+ public $modifyDate;
+ protected $__networkFeeType = 'Google_Money';
+ protected $__networkFeeDataType = '';
+ public $networkFee;
+ public $orderId;
+ protected $__productsType = 'Google_EventProducts';
+ protected $__productsDataType = 'array';
+ public $products;
+ protected $__publisherFeeType = 'Google_Money';
+ protected $__publisherFeeDataType = '';
+ public $publisherFee;
+ public $publisherId;
+ public $publisherName;
+ public $status;
+ public $type;
+ public function setAdvertiserId( $advertiserId) {
+ $this->advertiserId = $advertiserId;
+ }
+ public function getAdvertiserId() {
+ return $this->advertiserId;
+ }
+ public function setAdvertiserName( $advertiserName) {
+ $this->advertiserName = $advertiserName;
+ }
+ public function getAdvertiserName() {
+ return $this->advertiserName;
+ }
+ public function setChargeId( $chargeId) {
+ $this->chargeId = $chargeId;
+ }
+ public function getChargeId() {
+ return $this->chargeId;
+ }
+ public function setChargeType( $chargeType) {
+ $this->chargeType = $chargeType;
+ }
+ public function getChargeType() {
+ return $this->chargeType;
+ }
+ public function setCommissionableSales(Google_Money $commissionableSales) {
+ $this->commissionableSales = $commissionableSales;
+ }
+ public function getCommissionableSales() {
+ return $this->commissionableSales;
+ }
+ public function setEarnings(Google_Money $earnings) {
+ $this->earnings = $earnings;
+ }
+ public function getEarnings() {
+ return $this->earnings;
+ }
+ public function setEventDate( $eventDate) {
+ $this->eventDate = $eventDate;
+ }
+ public function getEventDate() {
+ return $this->eventDate;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMemberId( $memberId) {
+ $this->memberId = $memberId;
+ }
+ public function getMemberId() {
+ return $this->memberId;
+ }
+ public function setModifyDate( $modifyDate) {
+ $this->modifyDate = $modifyDate;
+ }
+ public function getModifyDate() {
+ return $this->modifyDate;
+ }
+ public function setNetworkFee(Google_Money $networkFee) {
+ $this->networkFee = $networkFee;
+ }
+ public function getNetworkFee() {
+ return $this->networkFee;
+ }
+ public function setOrderId( $orderId) {
+ $this->orderId = $orderId;
+ }
+ public function getOrderId() {
+ return $this->orderId;
+ }
+ public function setProducts(/* array(Google_EventProducts) */ $products) {
+ $this->assertIsArray($products, 'Google_EventProducts', __METHOD__);
+ $this->products = $products;
+ }
+ public function getProducts() {
+ return $this->products;
+ }
+ public function setPublisherFee(Google_Money $publisherFee) {
+ $this->publisherFee = $publisherFee;
+ }
+ public function getPublisherFee() {
+ return $this->publisherFee;
+ }
+ public function setPublisherId( $publisherId) {
+ $this->publisherId = $publisherId;
+ }
+ public function getPublisherId() {
+ return $this->publisherId;
+ }
+ public function setPublisherName( $publisherName) {
+ $this->publisherName = $publisherName;
+ }
+ public function getPublisherName() {
+ return $this->publisherName;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_EventProducts extends Google_Model {
+ public $categoryId;
+ public $categoryName;
+ protected $__earningsType = 'Google_Money';
+ protected $__earningsDataType = '';
+ public $earnings;
+ protected $__networkFeeType = 'Google_Money';
+ protected $__networkFeeDataType = '';
+ public $networkFee;
+ protected $__publisherFeeType = 'Google_Money';
+ protected $__publisherFeeDataType = '';
+ public $publisherFee;
+ public $quantity;
+ public $sku;
+ public $skuName;
+ protected $__unitPriceType = 'Google_Money';
+ protected $__unitPriceDataType = '';
+ public $unitPrice;
+ public function setCategoryId( $categoryId) {
+ $this->categoryId = $categoryId;
+ }
+ public function getCategoryId() {
+ return $this->categoryId;
+ }
+ public function setCategoryName( $categoryName) {
+ $this->categoryName = $categoryName;
+ }
+ public function getCategoryName() {
+ return $this->categoryName;
+ }
+ public function setEarnings(Google_Money $earnings) {
+ $this->earnings = $earnings;
+ }
+ public function getEarnings() {
+ return $this->earnings;
+ }
+ public function setNetworkFee(Google_Money $networkFee) {
+ $this->networkFee = $networkFee;
+ }
+ public function getNetworkFee() {
+ return $this->networkFee;
+ }
+ public function setPublisherFee(Google_Money $publisherFee) {
+ $this->publisherFee = $publisherFee;
+ }
+ public function getPublisherFee() {
+ return $this->publisherFee;
+ }
+ public function setQuantity( $quantity) {
+ $this->quantity = $quantity;
+ }
+ public function getQuantity() {
+ return $this->quantity;
+ }
+ public function setSku( $sku) {
+ $this->sku = $sku;
+ }
+ public function getSku() {
+ return $this->sku;
+ }
+ public function setSkuName( $skuName) {
+ $this->skuName = $skuName;
+ }
+ public function getSkuName() {
+ return $this->skuName;
+ }
+ public function setUnitPrice(Google_Money $unitPrice) {
+ $this->unitPrice = $unitPrice;
+ }
+ public function getUnitPrice() {
+ return $this->unitPrice;
+ }
+}
+
+class Google_Events extends Google_Model {
+ protected $__itemsType = 'Google_Event';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Event) */ $items) {
+ $this->assertIsArray($items, 'Google_Event', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Link extends Google_Model {
+ public $advertiserId;
+ public $authorship;
+ public $availability;
+ public $clickTrackingUrl;
+ public $createDate;
+ public $description;
+ public $destinationUrl;
+ public $duration;
+ public $endDate;
+ protected $__epcNinetyDayAverageType = 'Google_Money';
+ protected $__epcNinetyDayAverageDataType = '';
+ public $epcNinetyDayAverage;
+ protected $__epcSevenDayAverageType = 'Google_Money';
+ protected $__epcSevenDayAverageDataType = '';
+ public $epcSevenDayAverage;
+ public $id;
+ public $imageAltText;
+ public $impressionTrackingUrl;
+ public $isActive;
+ public $kind;
+ public $linkType;
+ public $name;
+ public $promotionType;
+ protected $__specialOffersType = 'Google_LinkSpecialOffers';
+ protected $__specialOffersDataType = '';
+ public $specialOffers;
+ public $startDate;
+ public function setAdvertiserId( $advertiserId) {
+ $this->advertiserId = $advertiserId;
+ }
+ public function getAdvertiserId() {
+ return $this->advertiserId;
+ }
+ public function setAuthorship( $authorship) {
+ $this->authorship = $authorship;
+ }
+ public function getAuthorship() {
+ return $this->authorship;
+ }
+ public function setAvailability( $availability) {
+ $this->availability = $availability;
+ }
+ public function getAvailability() {
+ return $this->availability;
+ }
+ public function setClickTrackingUrl( $clickTrackingUrl) {
+ $this->clickTrackingUrl = $clickTrackingUrl;
+ }
+ public function getClickTrackingUrl() {
+ return $this->clickTrackingUrl;
+ }
+ public function setCreateDate( $createDate) {
+ $this->createDate = $createDate;
+ }
+ public function getCreateDate() {
+ return $this->createDate;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDestinationUrl( $destinationUrl) {
+ $this->destinationUrl = $destinationUrl;
+ }
+ public function getDestinationUrl() {
+ return $this->destinationUrl;
+ }
+ public function setDuration( $duration) {
+ $this->duration = $duration;
+ }
+ public function getDuration() {
+ return $this->duration;
+ }
+ public function setEndDate( $endDate) {
+ $this->endDate = $endDate;
+ }
+ public function getEndDate() {
+ return $this->endDate;
+ }
+ public function setEpcNinetyDayAverage(Google_Money $epcNinetyDayAverage) {
+ $this->epcNinetyDayAverage = $epcNinetyDayAverage;
+ }
+ public function getEpcNinetyDayAverage() {
+ return $this->epcNinetyDayAverage;
+ }
+ public function setEpcSevenDayAverage(Google_Money $epcSevenDayAverage) {
+ $this->epcSevenDayAverage = $epcSevenDayAverage;
+ }
+ public function getEpcSevenDayAverage() {
+ return $this->epcSevenDayAverage;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImageAltText( $imageAltText) {
+ $this->imageAltText = $imageAltText;
+ }
+ public function getImageAltText() {
+ return $this->imageAltText;
+ }
+ public function setImpressionTrackingUrl( $impressionTrackingUrl) {
+ $this->impressionTrackingUrl = $impressionTrackingUrl;
+ }
+ public function getImpressionTrackingUrl() {
+ return $this->impressionTrackingUrl;
+ }
+ public function setIsActive( $isActive) {
+ $this->isActive = $isActive;
+ }
+ public function getIsActive() {
+ return $this->isActive;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLinkType( $linkType) {
+ $this->linkType = $linkType;
+ }
+ public function getLinkType() {
+ return $this->linkType;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPromotionType( $promotionType) {
+ $this->promotionType = $promotionType;
+ }
+ public function getPromotionType() {
+ return $this->promotionType;
+ }
+ public function setSpecialOffers(Google_LinkSpecialOffers $specialOffers) {
+ $this->specialOffers = $specialOffers;
+ }
+ public function getSpecialOffers() {
+ return $this->specialOffers;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+}
+
+class Google_LinkSpecialOffers extends Google_Model {
+ public $freeGift;
+ public $freeShipping;
+ protected $__freeShippingMinType = 'Google_Money';
+ protected $__freeShippingMinDataType = '';
+ public $freeShippingMin;
+ public $percentOff;
+ protected $__percentOffMinType = 'Google_Money';
+ protected $__percentOffMinDataType = '';
+ public $percentOffMin;
+ protected $__priceCutType = 'Google_Money';
+ protected $__priceCutDataType = '';
+ public $priceCut;
+ protected $__priceCutMinType = 'Google_Money';
+ protected $__priceCutMinDataType = '';
+ public $priceCutMin;
+ public $promotionCodes;
+ public function setFreeGift( $freeGift) {
+ $this->freeGift = $freeGift;
+ }
+ public function getFreeGift() {
+ return $this->freeGift;
+ }
+ public function setFreeShipping( $freeShipping) {
+ $this->freeShipping = $freeShipping;
+ }
+ public function getFreeShipping() {
+ return $this->freeShipping;
+ }
+ public function setFreeShippingMin(Google_Money $freeShippingMin) {
+ $this->freeShippingMin = $freeShippingMin;
+ }
+ public function getFreeShippingMin() {
+ return $this->freeShippingMin;
+ }
+ public function setPercentOff( $percentOff) {
+ $this->percentOff = $percentOff;
+ }
+ public function getPercentOff() {
+ return $this->percentOff;
+ }
+ public function setPercentOffMin(Google_Money $percentOffMin) {
+ $this->percentOffMin = $percentOffMin;
+ }
+ public function getPercentOffMin() {
+ return $this->percentOffMin;
+ }
+ public function setPriceCut(Google_Money $priceCut) {
+ $this->priceCut = $priceCut;
+ }
+ public function getPriceCut() {
+ return $this->priceCut;
+ }
+ public function setPriceCutMin(Google_Money $priceCutMin) {
+ $this->priceCutMin = $priceCutMin;
+ }
+ public function getPriceCutMin() {
+ return $this->priceCutMin;
+ }
+ public function setPromotionCodes(/* array(Google_string) */ $promotionCodes) {
+ $this->assertIsArray($promotionCodes, 'Google_string', __METHOD__);
+ $this->promotionCodes = $promotionCodes;
+ }
+ public function getPromotionCodes() {
+ return $this->promotionCodes;
+ }
+}
+
+class Google_Links extends Google_Model {
+ protected $__itemsType = 'Google_Link';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Link) */ $items) {
+ $this->assertIsArray($items, 'Google_Link', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Money extends Google_Model {
+ public $amount;
+ public $currencyCode;
+ public function setAmount( $amount) {
+ $this->amount = $amount;
+ }
+ public function getAmount() {
+ return $this->amount;
+ }
+ public function setCurrencyCode( $currencyCode) {
+ $this->currencyCode = $currencyCode;
+ }
+ public function getCurrencyCode() {
+ return $this->currencyCode;
+ }
+}
+
+class Google_Publisher extends Google_Model {
+ public $classification;
+ protected $__epcNinetyDayAverageType = 'Google_Money';
+ protected $__epcNinetyDayAverageDataType = '';
+ public $epcNinetyDayAverage;
+ protected $__epcSevenDayAverageType = 'Google_Money';
+ protected $__epcSevenDayAverageDataType = '';
+ public $epcSevenDayAverage;
+ public $id;
+ protected $__itemType = 'Google_Publisher';
+ protected $__itemDataType = '';
+ public $item;
+ public $joinDate;
+ public $kind;
+ public $name;
+ public $payoutRank;
+ public $sites;
+ public $status;
+ public function setClassification( $classification) {
+ $this->classification = $classification;
+ }
+ public function getClassification() {
+ return $this->classification;
+ }
+ public function setEpcNinetyDayAverage(Google_Money $epcNinetyDayAverage) {
+ $this->epcNinetyDayAverage = $epcNinetyDayAverage;
+ }
+ public function getEpcNinetyDayAverage() {
+ return $this->epcNinetyDayAverage;
+ }
+ public function setEpcSevenDayAverage(Google_Money $epcSevenDayAverage) {
+ $this->epcSevenDayAverage = $epcSevenDayAverage;
+ }
+ public function getEpcSevenDayAverage() {
+ return $this->epcSevenDayAverage;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItem(Google_Publisher $item) {
+ $this->item = $item;
+ }
+ public function getItem() {
+ return $this->item;
+ }
+ public function setJoinDate( $joinDate) {
+ $this->joinDate = $joinDate;
+ }
+ public function getJoinDate() {
+ return $this->joinDate;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPayoutRank( $payoutRank) {
+ $this->payoutRank = $payoutRank;
+ }
+ public function getPayoutRank() {
+ return $this->payoutRank;
+ }
+ public function setSites(/* array(Google_string) */ $sites) {
+ $this->assertIsArray($sites, 'Google_string', __METHOD__);
+ $this->sites = $sites;
+ }
+ public function getSites() {
+ return $this->sites;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_Publishers extends Google_Model {
+ protected $__itemsType = 'Google_Publisher';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Publisher) */ $items) {
+ $this->assertIsArray($items, 'Google_Publisher', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Report extends Google_Model {
+ public $column_names;
+ public $end_date;
+ public $kind;
+ public $matching_row_count;
+ public $rows;
+ public $start_date;
+ public $totals_rows;
+ public $type;
+ public function setColumn_names(/* array(Google_string) */ $column_names) {
+ $this->assertIsArray($column_names, 'Google_string', __METHOD__);
+ $this->column_names = $column_names;
+ }
+ public function getColumn_names() {
+ return $this->column_names;
+ }
+ public function setEnd_date( $end_date) {
+ $this->end_date = $end_date;
+ }
+ public function getEnd_date() {
+ return $this->end_date;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMatching_row_count( $matching_row_count) {
+ $this->matching_row_count = $matching_row_count;
+ }
+ public function getMatching_row_count() {
+ return $this->matching_row_count;
+ }
+ public function setRows(/* array(Google_object) */ $rows) {
+ $this->assertIsArray($rows, 'Google_object', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+ public function setStart_date( $start_date) {
+ $this->start_date = $start_date;
+ }
+ public function getStart_date() {
+ return $this->start_date;
+ }
+ public function setTotals_rows(/* array(Google_object) */ $totals_rows) {
+ $this->assertIsArray($totals_rows, 'Google_object', __METHOD__);
+ $this->totals_rows = $totals_rows;
+ }
+ public function getTotals_rows() {
+ return $this->totals_rows;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GroupssettingsService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GroupssettingsService.php
new file mode 100644
index 0000000..4096ad9
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_GroupssettingsService.php
@@ -0,0 +1,299 @@
+
+ * $groupssettingsService = new Google_GroupssettingsService(...);
+ * $groups = $groupssettingsService->groups;
+ *
+ */
+ class Google_GroupsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets one resource by id. (groups.get)
+ *
+ * @param string $groupUniqueId The resource ID
+ * @param array $optParams Optional parameters.
+ * @return Google_Groups
+ */
+ public function get($groupUniqueId, $optParams = array()) {
+ $params = array('groupUniqueId' => $groupUniqueId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Groups($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing resource. This method supports patch semantics. (groups.patch)
+ *
+ * @param string $groupUniqueId The resource ID
+ * @param Google_Groups $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Groups
+ */
+ public function patch($groupUniqueId, Google_Groups $postBody, $optParams = array()) {
+ $params = array('groupUniqueId' => $groupUniqueId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Groups($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing resource. (groups.update)
+ *
+ * @param string $groupUniqueId The resource ID
+ * @param Google_Groups $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Groups
+ */
+ public function update($groupUniqueId, Google_Groups $postBody, $optParams = array()) {
+ $params = array('groupUniqueId' => $groupUniqueId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Groups($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Groupssettings (v1).
+ *
+ *
+ * Lets you manage permission levels and related settings of a group.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_GroupssettingsService extends Google_Service {
+ public $groups;
+ /**
+ * Constructs the internal representation of the Groupssettings service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'groups/v1/groups/';
+ $this->version = 'v1';
+ $this->serviceName = 'groupssettings';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->groups = new Google_GroupsServiceResource($this, $this->serviceName, 'groups', json_decode('{"methods": {"get": {"id": "groupsSettings.groups.get", "path": "{groupUniqueId}", "httpMethod": "GET", "parameters": {"groupUniqueId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Groups"}, "scopes": ["https://www.googleapis.com/auth/apps.groups.settings"]}, "patch": {"id": "groupsSettings.groups.patch", "path": "{groupUniqueId}", "httpMethod": "PATCH", "parameters": {"groupUniqueId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Groups"}, "response": {"$ref": "Groups"}, "scopes": ["https://www.googleapis.com/auth/apps.groups.settings"]}, "update": {"id": "groupsSettings.groups.update", "path": "{groupUniqueId}", "httpMethod": "PUT", "parameters": {"groupUniqueId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Groups"}, "response": {"$ref": "Groups"}, "scopes": ["https://www.googleapis.com/auth/apps.groups.settings"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Groups extends Google_Model {
+ public $allowExternalMembers;
+ public $allowGoogleCommunication;
+ public $allowWebPosting;
+ public $archiveOnly;
+ public $customReplyTo;
+ public $defaultMessageDenyNotificationText;
+ public $description;
+ public $email;
+ public $includeInGlobalAddressList;
+ public $isArchived;
+ public $kind;
+ public $maxMessageBytes;
+ public $membersCanPostAsTheGroup;
+ public $messageDisplayFont;
+ public $messageModerationLevel;
+ public $name;
+ public $primaryLanguage;
+ public $replyTo;
+ public $sendMessageDenyNotification;
+ public $showInGroupDirectory;
+ public $spamModerationLevel;
+ public $whoCanInvite;
+ public $whoCanJoin;
+ public $whoCanPostMessage;
+ public $whoCanViewGroup;
+ public $whoCanViewMembership;
+ public function setAllowExternalMembers( $allowExternalMembers) {
+ $this->allowExternalMembers = $allowExternalMembers;
+ }
+ public function getAllowExternalMembers() {
+ return $this->allowExternalMembers;
+ }
+ public function setAllowGoogleCommunication( $allowGoogleCommunication) {
+ $this->allowGoogleCommunication = $allowGoogleCommunication;
+ }
+ public function getAllowGoogleCommunication() {
+ return $this->allowGoogleCommunication;
+ }
+ public function setAllowWebPosting( $allowWebPosting) {
+ $this->allowWebPosting = $allowWebPosting;
+ }
+ public function getAllowWebPosting() {
+ return $this->allowWebPosting;
+ }
+ public function setArchiveOnly( $archiveOnly) {
+ $this->archiveOnly = $archiveOnly;
+ }
+ public function getArchiveOnly() {
+ return $this->archiveOnly;
+ }
+ public function setCustomReplyTo( $customReplyTo) {
+ $this->customReplyTo = $customReplyTo;
+ }
+ public function getCustomReplyTo() {
+ return $this->customReplyTo;
+ }
+ public function setDefaultMessageDenyNotificationText( $defaultMessageDenyNotificationText) {
+ $this->defaultMessageDenyNotificationText = $defaultMessageDenyNotificationText;
+ }
+ public function getDefaultMessageDenyNotificationText() {
+ return $this->defaultMessageDenyNotificationText;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setIncludeInGlobalAddressList( $includeInGlobalAddressList) {
+ $this->includeInGlobalAddressList = $includeInGlobalAddressList;
+ }
+ public function getIncludeInGlobalAddressList() {
+ return $this->includeInGlobalAddressList;
+ }
+ public function setIsArchived( $isArchived) {
+ $this->isArchived = $isArchived;
+ }
+ public function getIsArchived() {
+ return $this->isArchived;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaxMessageBytes( $maxMessageBytes) {
+ $this->maxMessageBytes = $maxMessageBytes;
+ }
+ public function getMaxMessageBytes() {
+ return $this->maxMessageBytes;
+ }
+ public function setMembersCanPostAsTheGroup( $membersCanPostAsTheGroup) {
+ $this->membersCanPostAsTheGroup = $membersCanPostAsTheGroup;
+ }
+ public function getMembersCanPostAsTheGroup() {
+ return $this->membersCanPostAsTheGroup;
+ }
+ public function setMessageDisplayFont( $messageDisplayFont) {
+ $this->messageDisplayFont = $messageDisplayFont;
+ }
+ public function getMessageDisplayFont() {
+ return $this->messageDisplayFont;
+ }
+ public function setMessageModerationLevel( $messageModerationLevel) {
+ $this->messageModerationLevel = $messageModerationLevel;
+ }
+ public function getMessageModerationLevel() {
+ return $this->messageModerationLevel;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPrimaryLanguage( $primaryLanguage) {
+ $this->primaryLanguage = $primaryLanguage;
+ }
+ public function getPrimaryLanguage() {
+ return $this->primaryLanguage;
+ }
+ public function setReplyTo( $replyTo) {
+ $this->replyTo = $replyTo;
+ }
+ public function getReplyTo() {
+ return $this->replyTo;
+ }
+ public function setSendMessageDenyNotification( $sendMessageDenyNotification) {
+ $this->sendMessageDenyNotification = $sendMessageDenyNotification;
+ }
+ public function getSendMessageDenyNotification() {
+ return $this->sendMessageDenyNotification;
+ }
+ public function setShowInGroupDirectory( $showInGroupDirectory) {
+ $this->showInGroupDirectory = $showInGroupDirectory;
+ }
+ public function getShowInGroupDirectory() {
+ return $this->showInGroupDirectory;
+ }
+ public function setSpamModerationLevel( $spamModerationLevel) {
+ $this->spamModerationLevel = $spamModerationLevel;
+ }
+ public function getSpamModerationLevel() {
+ return $this->spamModerationLevel;
+ }
+ public function setWhoCanInvite( $whoCanInvite) {
+ $this->whoCanInvite = $whoCanInvite;
+ }
+ public function getWhoCanInvite() {
+ return $this->whoCanInvite;
+ }
+ public function setWhoCanJoin( $whoCanJoin) {
+ $this->whoCanJoin = $whoCanJoin;
+ }
+ public function getWhoCanJoin() {
+ return $this->whoCanJoin;
+ }
+ public function setWhoCanPostMessage( $whoCanPostMessage) {
+ $this->whoCanPostMessage = $whoCanPostMessage;
+ }
+ public function getWhoCanPostMessage() {
+ return $this->whoCanPostMessage;
+ }
+ public function setWhoCanViewGroup( $whoCanViewGroup) {
+ $this->whoCanViewGroup = $whoCanViewGroup;
+ }
+ public function getWhoCanViewGroup() {
+ return $this->whoCanViewGroup;
+ }
+ public function setWhoCanViewMembership( $whoCanViewMembership) {
+ $this->whoCanViewMembership = $whoCanViewMembership;
+ }
+ public function getWhoCanViewMembership() {
+ return $this->whoCanViewMembership;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_LatitudeService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_LatitudeService.php
new file mode 100644
index 0000000..21cd03c
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_LatitudeService.php
@@ -0,0 +1,283 @@
+
+ * $latitudeService = new Google_LatitudeService(...);
+ * $currentLocation = $latitudeService->currentLocation;
+ *
+ */
+ class Google_CurrentLocationServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Updates or creates the user's current location. (currentLocation.insert)
+ *
+ * @param Google_Location $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Location
+ */
+ public function insert(Google_Location $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Location($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the authenticated user's current location. (currentLocation.get)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string granularity Granularity of the requested location.
+ * @return Google_Location
+ */
+ public function get($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Location($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes the authenticated user's current location. (currentLocation.delete)
+ *
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "location" collection of methods.
+ * Typical usage is:
+ *
+ * $latitudeService = new Google_LatitudeService(...);
+ * $location = $latitudeService->location;
+ *
+ */
+ class Google_LocationServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Inserts or updates a location in the user's location history. (location.insert)
+ *
+ * @param Google_Location $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Location
+ */
+ public function insert(Google_Location $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Location($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Reads a location from the user's location history. (location.get)
+ *
+ * @param string $locationId Timestamp of the location to read (ms since epoch).
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string granularity Granularity of the location to return.
+ * @return Google_Location
+ */
+ public function get($locationId, $optParams = array()) {
+ $params = array('locationId' => $locationId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Location($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists the user's location history. (location.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string max-results Maximum number of locations to return.
+ * @opt_param string max-time Maximum timestamp of locations to return (ms since epoch).
+ * @opt_param string min-time Minimum timestamp of locations to return (ms since epoch).
+ * @opt_param string granularity Granularity of the requested locations.
+ * @return Google_LocationFeed
+ */
+ public function listLocation($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_LocationFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes a location from the user's location history. (location.delete)
+ *
+ * @param string $locationId Timestamp of the location to delete (ms since epoch).
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($locationId, $optParams = array()) {
+ $params = array('locationId' => $locationId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ }
+
+/**
+ * Service definition for Google_Latitude (v1).
+ *
+ *
+ * Lets you read and update your current location and work with your location history
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_LatitudeService extends Google_Service {
+ public $currentLocation;
+ public $location;
+ /**
+ * Constructs the internal representation of the Latitude service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'latitude/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'latitude';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->currentLocation = new Google_CurrentLocationServiceResource($this, $this->serviceName, 'currentLocation', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city", "https://www.googleapis.com/auth/latitude.current.best", "https://www.googleapis.com/auth/latitude.current.city"], "request": {"$ref": "LatitudeCurrentlocationResourceJson"}, "response": {"$ref": "LatitudeCurrentlocationResourceJson"}, "httpMethod": "POST", "path": "currentLocation", "id": "latitude.currentLocation.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city", "https://www.googleapis.com/auth/latitude.current.best", "https://www.googleapis.com/auth/latitude.current.city"], "parameters": {"granularity": {"default": "city", "enum": ["best", "city"], "type": "string", "location": "query"}}, "response": {"$ref": "LatitudeCurrentlocationResourceJson"}, "httpMethod": "GET", "path": "currentLocation", "id": "latitude.currentLocation.get"}, "delete": {"path": "currentLocation", "scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city", "https://www.googleapis.com/auth/latitude.current.best", "https://www.googleapis.com/auth/latitude.current.city"], "id": "latitude.currentLocation.delete", "httpMethod": "DELETE"}}}', true));
+ $this->location = new Google_LocationServiceResource($this, $this->serviceName, 'location', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city"], "request": {"$ref": "Location"}, "response": {"$ref": "Location"}, "httpMethod": "POST", "path": "location", "id": "latitude.location.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city"], "parameters": {"locationId": {"required": true, "type": "string", "location": "path"}, "granularity": {"default": "city", "enum": ["best", "city"], "type": "string", "location": "query"}}, "id": "latitude.location.get", "httpMethod": "GET", "path": "location/{locationId}", "response": {"$ref": "Location"}}, "list": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city"], "parameters": {"max-results": {"type": "string", "location": "query"}, "max-time": {"type": "string", "location": "query"}, "min-time": {"type": "string", "location": "query"}, "granularity": {"default": "city", "enum": ["best", "city"], "type": "string", "location": "query"}}, "response": {"$ref": "LocationFeed"}, "httpMethod": "GET", "path": "location", "id": "latitude.location.list"}, "delete": {"scopes": ["https://www.googleapis.com/auth/latitude.all.best", "https://www.googleapis.com/auth/latitude.all.city"], "path": "location/{locationId}", "id": "latitude.location.delete", "parameters": {"locationId": {"required": true, "type": "string", "location": "path"}}, "httpMethod": "DELETE"}}}', true));
+
+ }
+}
+
+class Google_Location extends Google_Model {
+ public $kind;
+ public $altitude;
+ public $longitude;
+ public $activityId;
+ public $latitude;
+ public $altitudeAccuracy;
+ public $timestampMs;
+ public $speed;
+ public $heading;
+ public $accuracy;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setAltitude($altitude) {
+ $this->altitude = $altitude;
+ }
+ public function getAltitude() {
+ return $this->altitude;
+ }
+ public function setLongitude($longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+ public function setActivityId($activityId) {
+ $this->activityId = $activityId;
+ }
+ public function getActivityId() {
+ return $this->activityId;
+ }
+ public function setLatitude($latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setAltitudeAccuracy($altitudeAccuracy) {
+ $this->altitudeAccuracy = $altitudeAccuracy;
+ }
+ public function getAltitudeAccuracy() {
+ return $this->altitudeAccuracy;
+ }
+ public function setTimestampMs($timestampMs) {
+ $this->timestampMs = $timestampMs;
+ }
+ public function getTimestampMs() {
+ return $this->timestampMs;
+ }
+ public function setSpeed($speed) {
+ $this->speed = $speed;
+ }
+ public function getSpeed() {
+ return $this->speed;
+ }
+ public function setHeading($heading) {
+ $this->heading = $heading;
+ }
+ public function getHeading() {
+ return $this->heading;
+ }
+ public function setAccuracy($accuracy) {
+ $this->accuracy = $accuracy;
+ }
+ public function getAccuracy() {
+ return $this->accuracy;
+ }
+}
+
+class Google_LocationFeed extends Google_Model {
+ protected $__itemsType = 'Google_Location';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Location) */ $items) {
+ $this->assertIsArray($items, 'Google_Location', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_LicensingService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_LicensingService.php
new file mode 100644
index 0000000..34db140
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_LicensingService.php
@@ -0,0 +1,286 @@
+
+ * $licensingService = new Google_LicensingService(...);
+ * $licenseAssignments = $licensingService->licenseAssignments;
+ *
+ */
+ class Google_LicenseAssignmentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Revoke License. (licenseAssignments.delete)
+ *
+ * @param string $productId Name for product
+ * @param string $skuId Name for sku
+ * @param string $userId email id or unique Id of the user
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($productId, $skuId, $userId, $optParams = array()) {
+ $params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Get license assignment of a particular product and sku for a user (licenseAssignments.get)
+ *
+ * @param string $productId Name for product
+ * @param string $skuId Name for sku
+ * @param string $userId email id or unique Id of the user
+ * @param array $optParams Optional parameters.
+ * @return Google_LicenseAssignment
+ */
+ public function get($productId, $skuId, $userId, $optParams = array()) {
+ $params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_LicenseAssignment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Assign License. (licenseAssignments.insert)
+ *
+ * @param string $productId Name for product
+ * @param string $skuId Name for sku
+ * @param Google_LicenseAssignmentInsert $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_LicenseAssignment
+ */
+ public function insert($productId, $skuId, Google_LicenseAssignmentInsert $postBody, $optParams = array()) {
+ $params = array('productId' => $productId, 'skuId' => $skuId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_LicenseAssignment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List license assignments for given product of the customer. (licenseAssignments.listForProduct)
+ *
+ * @param string $productId Name for product
+ * @param string $customerId CustomerId represents the customer for whom licenseassignments are queried
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is 100.
+ * @opt_param string pageToken Token to fetch the next page.Optional. By default server will return first page
+ * @return Google_LicenseAssignmentList
+ */
+ public function listForProduct($productId, $customerId, $optParams = array()) {
+ $params = array('productId' => $productId, 'customerId' => $customerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('listForProduct', array($params));
+ if ($this->useObjects()) {
+ return new Google_LicenseAssignmentList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List license assignments for given product and sku of the customer.
+ * (licenseAssignments.listForProductAndSku)
+ *
+ * @param string $productId Name for product
+ * @param string $skuId Name for sku
+ * @param string $customerId CustomerId represents the customer for whom licenseassignments are queried
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is 100.
+ * @opt_param string pageToken Token to fetch the next page.Optional. By default server will return first page
+ * @return Google_LicenseAssignmentList
+ */
+ public function listForProductAndSku($productId, $skuId, $customerId, $optParams = array()) {
+ $params = array('productId' => $productId, 'skuId' => $skuId, 'customerId' => $customerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('listForProductAndSku', array($params));
+ if ($this->useObjects()) {
+ return new Google_LicenseAssignmentList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Assign License. This method supports patch semantics. (licenseAssignments.patch)
+ *
+ * @param string $productId Name for product
+ * @param string $skuId Name for sku for which license would be revoked
+ * @param string $userId email id or unique Id of the user
+ * @param Google_LicenseAssignment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_LicenseAssignment
+ */
+ public function patch($productId, $skuId, $userId, Google_LicenseAssignment $postBody, $optParams = array()) {
+ $params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_LicenseAssignment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Assign License. (licenseAssignments.update)
+ *
+ * @param string $productId Name for product
+ * @param string $skuId Name for sku for which license would be revoked
+ * @param string $userId email id or unique Id of the user
+ * @param Google_LicenseAssignment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_LicenseAssignment
+ */
+ public function update($productId, $skuId, $userId, Google_LicenseAssignment $postBody, $optParams = array()) {
+ $params = array('productId' => $productId, 'skuId' => $skuId, 'userId' => $userId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_LicenseAssignment($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Licensing (v1).
+ *
+ *
+ * Licensing API to view and manage license for your domain.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_LicensingService extends Google_Service {
+ public $licenseAssignments;
+ /**
+ * Constructs the internal representation of the Licensing service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'apps/licensing/v1/product/';
+ $this->version = 'v1';
+ $this->serviceName = 'licensing';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->licenseAssignments = new Google_LicenseAssignmentsServiceResource($this, $this->serviceName, 'licenseAssignments', json_decode('{"methods": {"delete": {"id": "licensing.licenseAssignments.delete", "path": "{productId}/sku/{skuId}/user/{userId}", "httpMethod": "DELETE", "parameters": {"productId": {"type": "string", "required": true, "location": "path"}, "skuId": {"type": "string", "required": true, "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}}, "get": {"id": "licensing.licenseAssignments.get", "path": "{productId}/sku/{skuId}/user/{userId}", "httpMethod": "GET", "parameters": {"productId": {"type": "string", "required": true, "location": "path"}, "skuId": {"type": "string", "required": true, "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "LicenseAssignment"}}, "insert": {"id": "licensing.licenseAssignments.insert", "path": "{productId}/sku/{skuId}/user", "httpMethod": "POST", "parameters": {"productId": {"type": "string", "required": true, "location": "path"}, "skuId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "LicenseAssignmentInsert"}, "response": {"$ref": "LicenseAssignment"}}, "listForProduct": {"id": "licensing.licenseAssignments.listForProduct", "path": "{productId}/users", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "1", "maximum": "1000", "location": "query"}, "pageToken": {"type": "string", "default": "", "location": "query"}, "productId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "LicenseAssignmentList"}}, "listForProductAndSku": {"id": "licensing.licenseAssignments.listForProductAndSku", "path": "{productId}/sku/{skuId}/users", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "query"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "1", "maximum": "1000", "location": "query"}, "pageToken": {"type": "string", "default": "", "location": "query"}, "productId": {"type": "string", "required": true, "location": "path"}, "skuId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "LicenseAssignmentList"}}, "patch": {"id": "licensing.licenseAssignments.patch", "path": "{productId}/sku/{skuId}/user/{userId}", "httpMethod": "PATCH", "parameters": {"productId": {"type": "string", "required": true, "location": "path"}, "skuId": {"type": "string", "required": true, "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "LicenseAssignment"}, "response": {"$ref": "LicenseAssignment"}}, "update": {"id": "licensing.licenseAssignments.update", "path": "{productId}/sku/{skuId}/user/{userId}", "httpMethod": "PUT", "parameters": {"productId": {"type": "string", "required": true, "location": "path"}, "skuId": {"type": "string", "required": true, "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "LicenseAssignment"}, "response": {"$ref": "LicenseAssignment"}}}}', true));
+
+ }
+}
+
+
+
+class Google_LicenseAssignment extends Google_Model {
+ public $etags;
+ public $kind;
+ public $productId;
+ public $selfLink;
+ public $skuId;
+ public $userId;
+ public function setEtags( $etags) {
+ $this->etags = $etags;
+ }
+ public function getEtags() {
+ return $this->etags;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setProductId( $productId) {
+ $this->productId = $productId;
+ }
+ public function getProductId() {
+ return $this->productId;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSkuId( $skuId) {
+ $this->skuId = $skuId;
+ }
+ public function getSkuId() {
+ return $this->skuId;
+ }
+ public function setUserId( $userId) {
+ $this->userId = $userId;
+ }
+ public function getUserId() {
+ return $this->userId;
+ }
+}
+
+class Google_LicenseAssignmentInsert extends Google_Model {
+ public $userId;
+ public function setUserId( $userId) {
+ $this->userId = $userId;
+ }
+ public function getUserId() {
+ return $this->userId;
+ }
+}
+
+class Google_LicenseAssignmentList extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_LicenseAssignment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_LicenseAssignment) */ $items) {
+ $this->assertIsArray($items, 'Google_LicenseAssignment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_MirrorService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_MirrorService.php
new file mode 100644
index 0000000..01facdb
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_MirrorService.php
@@ -0,0 +1,1203 @@
+
+ * $mirrorService = new Google_MirrorService(...);
+ * $contacts = $mirrorService->contacts;
+ *
+ */
+ class Google_ContactsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a contact. (contacts.delete)
+ *
+ * @param string $id The ID of the contact.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a single contact by ID. (contacts.get)
+ *
+ * @param string $id The ID of the contact.
+ * @param array $optParams Optional parameters.
+ * @return Google_Contact
+ */
+ public function get($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Contact($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Inserts a new contact. (contacts.insert)
+ *
+ * @param Google_Contact $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Contact
+ */
+ public function insert(Google_Contact $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Contact($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of contacts for the authenticated user. (contacts.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_ContactsListResponse
+ */
+ public function listContacts($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ContactsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a contact in place. This method supports patch semantics.
+ * (contacts.patch)
+ *
+ * @param string $id The ID of the contact.
+ * @param Google_Contact $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Contact
+ */
+ public function patch($id, Google_Contact $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Contact($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a contact in place. (contacts.update)
+ *
+ * @param string $id The ID of the contact.
+ * @param Google_Contact $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Contact
+ */
+ public function update($id, Google_Contact $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Contact($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "locations" collection of methods.
+ * Typical usage is:
+ *
+ * $mirrorService = new Google_MirrorService(...);
+ * $locations = $mirrorService->locations;
+ *
+ */
+ class Google_LocationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets a single location by ID. (locations.get)
+ *
+ * @param string $id The ID of the location or latest for the last known location.
+ * @param array $optParams Optional parameters.
+ * @return Google_Location
+ */
+ public function get($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Location($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of locations for the user. (locations.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_LocationsListResponse
+ */
+ public function listLocations($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_LocationsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "subscriptions" collection of methods.
+ * Typical usage is:
+ *
+ * $mirrorService = new Google_MirrorService(...);
+ * $subscriptions = $mirrorService->subscriptions;
+ *
+ */
+ class Google_SubscriptionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a subscription. (subscriptions.delete)
+ *
+ * @param string $id The ID of the subscription.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Creates a new subscription. (subscriptions.insert)
+ *
+ * @param Google_Subscription $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Subscription
+ */
+ public function insert(Google_Subscription $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscription($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of subscriptions for the authenticated user and service.
+ * (subscriptions.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_SubscriptionsListResponse
+ */
+ public function listSubscriptions($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SubscriptionsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an existing subscription in place. (subscriptions.update)
+ *
+ * @param string $id The ID of the subscription.
+ * @param Google_Subscription $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Subscription
+ */
+ public function update($id, Google_Subscription $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscription($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "timeline" collection of methods.
+ * Typical usage is:
+ *
+ * $mirrorService = new Google_MirrorService(...);
+ * $timeline = $mirrorService->timeline;
+ *
+ */
+ class Google_TimelineServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a timeline item. (timeline.delete)
+ *
+ * @param string $id The ID of the timeline item.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a single timeline item by ID. (timeline.get)
+ *
+ * @param string $id The ID of the timeline item.
+ * @param array $optParams Optional parameters.
+ * @return Google_TimelineItem
+ */
+ public function get($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_TimelineItem($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Inserts a new item into the timeline. (timeline.insert)
+ *
+ * @param Google_TimelineItem $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_TimelineItem
+ */
+ public function insert(Google_TimelineItem $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_TimelineItem($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of timeline items for the authenticated user.
+ * (timeline.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string bundleId If provided, only items with the given bundleId will be returned.
+ * @opt_param bool includeDeleted If true, tombstone records for deleted items will be returned.
+ * @opt_param string maxResults The maximum number of items to include in the response, used for paging.
+ * @opt_param string orderBy Controls the order in which timeline items are returned.
+ * @opt_param string pageToken Token for the page of results to return.
+ * @opt_param bool pinnedOnly If true, only pinned items will be returned.
+ * @opt_param string sourceItemId If provided, only items with the given sourceItemId will be returned.
+ * @return Google_TimelineListResponse
+ */
+ public function listTimeline($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TimelineListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a timeline item in place. This method supports patch semantics.
+ * (timeline.patch)
+ *
+ * @param string $id The ID of the timeline item.
+ * @param Google_TimelineItem $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_TimelineItem
+ */
+ public function patch($id, Google_TimelineItem $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_TimelineItem($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a timeline item in place. (timeline.update)
+ *
+ * @param string $id The ID of the timeline item.
+ * @param Google_TimelineItem $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_TimelineItem
+ */
+ public function update($id, Google_TimelineItem $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_TimelineItem($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "attachments" collection of methods.
+ * Typical usage is:
+ *
+ * $mirrorService = new Google_MirrorService(...);
+ * $attachments = $mirrorService->attachments;
+ *
+ */
+ class Google_TimelineAttachmentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes an attachment from a timeline item. (attachments.delete)
+ *
+ * @param string $itemId The ID of the timeline item the attachment belongs to.
+ * @param string $attachmentId The ID of the attachment.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($itemId, $attachmentId, $optParams = array()) {
+ $params = array('itemId' => $itemId, 'attachmentId' => $attachmentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves an attachment on a timeline item by item ID and attachment ID.
+ * (attachments.get)
+ *
+ * @param string $itemId The ID of the timeline item the attachment belongs to.
+ * @param string $attachmentId The ID of the attachment.
+ * @param array $optParams Optional parameters.
+ * @return Google_Attachment
+ */
+ public function get($itemId, $attachmentId, $optParams = array()) {
+ $params = array('itemId' => $itemId, 'attachmentId' => $attachmentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Attachment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Adds a new attachment to a timeline item. (attachments.insert)
+ *
+ * @param string $itemId The ID of the timeline item the attachment belongs to.
+ * @param array $optParams Optional parameters.
+ * @return Google_Attachment
+ */
+ public function insert($itemId, $optParams = array()) {
+ $params = array('itemId' => $itemId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Attachment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns a list of attachments for a timeline item. (attachments.list)
+ *
+ * @param string $itemId The ID of the timeline item whose attachments should be listed.
+ * @param array $optParams Optional parameters.
+ * @return Google_AttachmentsListResponse
+ */
+ public function listTimelineAttachments($itemId, $optParams = array()) {
+ $params = array('itemId' => $itemId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AttachmentsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Mirror (v1).
+ *
+ *
+ * API for interacting with Glass users via the timeline.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_MirrorService extends Google_Service {
+ public $contacts;
+ public $locations;
+ public $subscriptions;
+ public $timeline;
+ public $timeline_attachments;
+ /**
+ * Constructs the internal representation of the Mirror service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'mirror/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'mirror';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->contacts = new Google_ContactsServiceResource($this, $this->serviceName, 'contacts', json_decode('{"methods": {"delete": {"id": "mirror.contacts.delete", "path": "contacts/{id}", "httpMethod": "DELETE", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}}, "get": {"id": "mirror.contacts.get", "path": "contacts/{id}", "httpMethod": "GET", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Contact"}}, "insert": {"id": "mirror.contacts.insert", "path": "contacts", "httpMethod": "POST", "request": {"$ref": "Contact"}, "response": {"$ref": "Contact"}}, "list": {"id": "mirror.contacts.list", "path": "contacts", "httpMethod": "GET", "response": {"$ref": "ContactsListResponse"}}, "patch": {"id": "mirror.contacts.patch", "path": "contacts/{id}", "httpMethod": "PATCH", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Contact"}, "response": {"$ref": "Contact"}}, "update": {"id": "mirror.contacts.update", "path": "contacts/{id}", "httpMethod": "PUT", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Contact"}, "response": {"$ref": "Contact"}}}}', true));
+ $this->locations = new Google_LocationsServiceResource($this, $this->serviceName, 'locations', json_decode('{"methods": {"get": {"id": "mirror.locations.get", "path": "locations/{id}", "httpMethod": "GET", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Location"}}, "list": {"id": "mirror.locations.list", "path": "locations", "httpMethod": "GET", "response": {"$ref": "LocationsListResponse"}}}}', true));
+ $this->subscriptions = new Google_SubscriptionsServiceResource($this, $this->serviceName, 'subscriptions', json_decode('{"methods": {"delete": {"id": "mirror.subscriptions.delete", "path": "subscriptions/{id}", "httpMethod": "DELETE", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}}, "insert": {"id": "mirror.subscriptions.insert", "path": "subscriptions", "httpMethod": "POST", "request": {"$ref": "Subscription"}, "response": {"$ref": "Subscription"}}, "list": {"id": "mirror.subscriptions.list", "path": "subscriptions", "httpMethod": "GET", "response": {"$ref": "SubscriptionsListResponse"}}, "update": {"id": "mirror.subscriptions.update", "path": "subscriptions/{id}", "httpMethod": "PUT", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Subscription"}, "response": {"$ref": "Subscription"}}}}', true));
+ $this->timeline = new Google_TimelineServiceResource($this, $this->serviceName, 'timeline', json_decode('{"methods": {"delete": {"id": "mirror.timeline.delete", "path": "timeline/{id}", "httpMethod": "DELETE", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}}, "get": {"id": "mirror.timeline.get", "path": "timeline/{id}", "httpMethod": "GET", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "TimelineItem"}}, "insert": {"id": "mirror.timeline.insert", "path": "timeline", "httpMethod": "POST", "request": {"$ref": "TimelineItem"}, "response": {"$ref": "TimelineItem"}, "supportsMediaUpload": true, "mediaUpload": {"accept": ["audio/*", "image/*", "video/*"], "maxSize": "10MB", "protocols": {"simple": {"multipart": true, "path": "/upload/mirror/v1/timeline"}, "resumable": {"multipart": true, "path": "/resumable/upload/mirror/v1/timeline"}}}}, "list": {"id": "mirror.timeline.list", "path": "timeline", "httpMethod": "GET", "parameters": {"bundleId": {"type": "string", "location": "query"}, "includeDeleted": {"type": "boolean", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "orderBy": {"type": "string", "enum": ["displayTime", "writeTime"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "pinnedOnly": {"type": "boolean", "location": "query"}, "sourceItemId": {"type": "string", "location": "query"}}, "response": {"$ref": "TimelineListResponse"}}, "patch": {"id": "mirror.timeline.patch", "path": "timeline/{id}", "httpMethod": "PATCH", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "TimelineItem"}, "response": {"$ref": "TimelineItem"}}, "update": {"id": "mirror.timeline.update", "path": "timeline/{id}", "httpMethod": "PUT", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "TimelineItem"}, "response": {"$ref": "TimelineItem"}, "supportsMediaUpload": true, "mediaUpload": {"accept": ["audio/*", "image/*", "video/*"], "maxSize": "10MB", "protocols": {"simple": {"multipart": true, "path": "/upload/mirror/v1/timeline/{id}"}, "resumable": {"multipart": true, "path": "/resumable/upload/mirror/v1/timeline/{id}"}}}}}}', true));
+ $this->timeline_attachments = new Google_TimelineAttachmentsServiceResource($this, $this->serviceName, 'attachments', json_decode('{"methods": {"delete": {"id": "mirror.timeline.attachments.delete", "path": "timeline/{itemId}/attachments/{attachmentId}", "httpMethod": "DELETE", "parameters": {"attachmentId": {"type": "string", "required": true, "location": "path"}, "itemId": {"type": "string", "required": true, "location": "path"}}}, "get": {"id": "mirror.timeline.attachments.get", "path": "timeline/{itemId}/attachments/{attachmentId}", "httpMethod": "GET", "parameters": {"attachmentId": {"type": "string", "required": true, "location": "path"}, "itemId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Attachment"}, "supportsMediaDownload": true}, "insert": {"id": "mirror.timeline.attachments.insert", "path": "timeline/{itemId}/attachments", "httpMethod": "POST", "parameters": {"itemId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Attachment"}, "supportsMediaUpload": true, "mediaUpload": {"accept": ["audio/*", "image/*", "video/*"], "maxSize": "10MB", "protocols": {"simple": {"multipart": true, "path": "/upload/mirror/v1/timeline/{itemId}/attachments"}, "resumable": {"multipart": true, "path": "/resumable/upload/mirror/v1/timeline/{itemId}/attachments"}}}}, "list": {"id": "mirror.timeline.attachments.list", "path": "timeline/{itemId}/attachments", "httpMethod": "GET", "parameters": {"itemId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AttachmentsListResponse"}}}}', true));
+
+ }
+}
+
+
+
+class Google_Attachment extends Google_Model {
+ public $contentType;
+ public $contentUrl;
+ public $id;
+ public $isProcessingContent;
+ public function setContentType( $contentType) {
+ $this->contentType = $contentType;
+ }
+ public function getContentType() {
+ return $this->contentType;
+ }
+ public function setContentUrl( $contentUrl) {
+ $this->contentUrl = $contentUrl;
+ }
+ public function getContentUrl() {
+ return $this->contentUrl;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIsProcessingContent( $isProcessingContent) {
+ $this->isProcessingContent = $isProcessingContent;
+ }
+ public function getIsProcessingContent() {
+ return $this->isProcessingContent;
+ }
+}
+
+class Google_AttachmentsListResponse extends Google_Model {
+ protected $__itemsType = 'Google_Attachment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Attachment) */ $items) {
+ $this->assertIsArray($items, 'Google_Attachment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Command extends Google_Model {
+ public $type;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Contact extends Google_Model {
+ protected $__acceptCommandsType = 'Google_Command';
+ protected $__acceptCommandsDataType = 'array';
+ public $acceptCommands;
+ public $acceptTypes;
+ public $displayName;
+ public $id;
+ public $imageUrls;
+ public $kind;
+ public $phoneNumber;
+ public $priority;
+ public $source;
+ public $speakableName;
+ public $type;
+ public function setAcceptCommands(/* array(Google_Command) */ $acceptCommands) {
+ $this->assertIsArray($acceptCommands, 'Google_Command', __METHOD__);
+ $this->acceptCommands = $acceptCommands;
+ }
+ public function getAcceptCommands() {
+ return $this->acceptCommands;
+ }
+ public function setAcceptTypes(/* array(Google_string) */ $acceptTypes) {
+ $this->assertIsArray($acceptTypes, 'Google_string', __METHOD__);
+ $this->acceptTypes = $acceptTypes;
+ }
+ public function getAcceptTypes() {
+ return $this->acceptTypes;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImageUrls(/* array(Google_string) */ $imageUrls) {
+ $this->assertIsArray($imageUrls, 'Google_string', __METHOD__);
+ $this->imageUrls = $imageUrls;
+ }
+ public function getImageUrls() {
+ return $this->imageUrls;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPhoneNumber( $phoneNumber) {
+ $this->phoneNumber = $phoneNumber;
+ }
+ public function getPhoneNumber() {
+ return $this->phoneNumber;
+ }
+ public function setPriority( $priority) {
+ $this->priority = $priority;
+ }
+ public function getPriority() {
+ return $this->priority;
+ }
+ public function setSource( $source) {
+ $this->source = $source;
+ }
+ public function getSource() {
+ return $this->source;
+ }
+ public function setSpeakableName( $speakableName) {
+ $this->speakableName = $speakableName;
+ }
+ public function getSpeakableName() {
+ return $this->speakableName;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ContactsListResponse extends Google_Model {
+ protected $__itemsType = 'Google_Contact';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Contact) */ $items) {
+ $this->assertIsArray($items, 'Google_Contact', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Location extends Google_Model {
+ public $accuracy;
+ public $address;
+ public $displayName;
+ public $id;
+ public $kind;
+ public $latitude;
+ public $longitude;
+ public $timestamp;
+ public function setAccuracy( $accuracy) {
+ $this->accuracy = $accuracy;
+ }
+ public function getAccuracy() {
+ return $this->accuracy;
+ }
+ public function setAddress( $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+ public function setTimestamp( $timestamp) {
+ $this->timestamp = $timestamp;
+ }
+ public function getTimestamp() {
+ return $this->timestamp;
+ }
+}
+
+class Google_LocationsListResponse extends Google_Model {
+ protected $__itemsType = 'Google_Location';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Location) */ $items) {
+ $this->assertIsArray($items, 'Google_Location', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_MenuItem extends Google_Model {
+ public $action;
+ public $id;
+ public $payload;
+ public $removeWhenSelected;
+ protected $__valuesType = 'Google_MenuValue';
+ protected $__valuesDataType = 'array';
+ public $values;
+ public function setAction( $action) {
+ $this->action = $action;
+ }
+ public function getAction() {
+ return $this->action;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setPayload( $payload) {
+ $this->payload = $payload;
+ }
+ public function getPayload() {
+ return $this->payload;
+ }
+ public function setRemoveWhenSelected( $removeWhenSelected) {
+ $this->removeWhenSelected = $removeWhenSelected;
+ }
+ public function getRemoveWhenSelected() {
+ return $this->removeWhenSelected;
+ }
+ public function setValues(/* array(Google_MenuValue) */ $values) {
+ $this->assertIsArray($values, 'Google_MenuValue', __METHOD__);
+ $this->values = $values;
+ }
+ public function getValues() {
+ return $this->values;
+ }
+}
+
+class Google_MenuValue extends Google_Model {
+ public $displayName;
+ public $iconUrl;
+ public $state;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setIconUrl( $iconUrl) {
+ $this->iconUrl = $iconUrl;
+ }
+ public function getIconUrl() {
+ return $this->iconUrl;
+ }
+ public function setState( $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+}
+
+class Google_Notification extends Google_Model {
+ public $collection;
+ public $itemId;
+ public $operation;
+ protected $__userActionsType = 'Google_UserAction';
+ protected $__userActionsDataType = 'array';
+ public $userActions;
+ public $userToken;
+ public $verifyToken;
+ public function setCollection( $collection) {
+ $this->collection = $collection;
+ }
+ public function getCollection() {
+ return $this->collection;
+ }
+ public function setItemId( $itemId) {
+ $this->itemId = $itemId;
+ }
+ public function getItemId() {
+ return $this->itemId;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+ public function setUserActions(/* array(Google_UserAction) */ $userActions) {
+ $this->assertIsArray($userActions, 'Google_UserAction', __METHOD__);
+ $this->userActions = $userActions;
+ }
+ public function getUserActions() {
+ return $this->userActions;
+ }
+ public function setUserToken( $userToken) {
+ $this->userToken = $userToken;
+ }
+ public function getUserToken() {
+ return $this->userToken;
+ }
+ public function setVerifyToken( $verifyToken) {
+ $this->verifyToken = $verifyToken;
+ }
+ public function getVerifyToken() {
+ return $this->verifyToken;
+ }
+}
+
+class Google_NotificationConfig extends Google_Model {
+ public $deliveryTime;
+ public $level;
+ public function setDeliveryTime( $deliveryTime) {
+ $this->deliveryTime = $deliveryTime;
+ }
+ public function getDeliveryTime() {
+ return $this->deliveryTime;
+ }
+ public function setLevel( $level) {
+ $this->level = $level;
+ }
+ public function getLevel() {
+ return $this->level;
+ }
+}
+
+class Google_Subscription extends Google_Model {
+ public $callbackUrl;
+ public $collection;
+ public $id;
+ public $kind;
+ protected $__notificationType = 'Google_Notification';
+ protected $__notificationDataType = '';
+ public $notification;
+ public $operation;
+ public $updated;
+ public $userToken;
+ public $verifyToken;
+ public function setCallbackUrl( $callbackUrl) {
+ $this->callbackUrl = $callbackUrl;
+ }
+ public function getCallbackUrl() {
+ return $this->callbackUrl;
+ }
+ public function setCollection( $collection) {
+ $this->collection = $collection;
+ }
+ public function getCollection() {
+ return $this->collection;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNotification(Google_Notification $notification) {
+ $this->notification = $notification;
+ }
+ public function getNotification() {
+ return $this->notification;
+ }
+ public function setOperation(/* array(Google_string) */ $operation) {
+ $this->assertIsArray($operation, 'Google_string', __METHOD__);
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUserToken( $userToken) {
+ $this->userToken = $userToken;
+ }
+ public function getUserToken() {
+ return $this->userToken;
+ }
+ public function setVerifyToken( $verifyToken) {
+ $this->verifyToken = $verifyToken;
+ }
+ public function getVerifyToken() {
+ return $this->verifyToken;
+ }
+}
+
+class Google_SubscriptionsListResponse extends Google_Model {
+ protected $__itemsType = 'Google_Subscription';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Subscription) */ $items) {
+ $this->assertIsArray($items, 'Google_Subscription', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_TimelineItem extends Google_Model {
+ protected $__attachmentsType = 'Google_Attachment';
+ protected $__attachmentsDataType = 'array';
+ public $attachments;
+ public $bundleId;
+ public $canonicalUrl;
+ public $created;
+ protected $__creatorType = 'Google_Contact';
+ protected $__creatorDataType = '';
+ public $creator;
+ public $displayTime;
+ public $etag;
+ public $html;
+ public $htmlPages;
+ public $id;
+ public $inReplyTo;
+ public $isBundleCover;
+ public $isDeleted;
+ public $isPinned;
+ public $kind;
+ protected $__locationType = 'Google_Location';
+ protected $__locationDataType = '';
+ public $location;
+ protected $__menuItemsType = 'Google_MenuItem';
+ protected $__menuItemsDataType = 'array';
+ public $menuItems;
+ protected $__notificationType = 'Google_NotificationConfig';
+ protected $__notificationDataType = '';
+ public $notification;
+ public $pinScore;
+ protected $__recipientsType = 'Google_Contact';
+ protected $__recipientsDataType = 'array';
+ public $recipients;
+ public $selfLink;
+ public $sourceItemId;
+ public $speakableText;
+ public $speakableType;
+ public $text;
+ public $title;
+ public $updated;
+ public function setAttachments(/* array(Google_Attachment) */ $attachments) {
+ $this->assertIsArray($attachments, 'Google_Attachment', __METHOD__);
+ $this->attachments = $attachments;
+ }
+ public function getAttachments() {
+ return $this->attachments;
+ }
+ public function setBundleId( $bundleId) {
+ $this->bundleId = $bundleId;
+ }
+ public function getBundleId() {
+ return $this->bundleId;
+ }
+ public function setCanonicalUrl( $canonicalUrl) {
+ $this->canonicalUrl = $canonicalUrl;
+ }
+ public function getCanonicalUrl() {
+ return $this->canonicalUrl;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setCreator(Google_Contact $creator) {
+ $this->creator = $creator;
+ }
+ public function getCreator() {
+ return $this->creator;
+ }
+ public function setDisplayTime( $displayTime) {
+ $this->displayTime = $displayTime;
+ }
+ public function getDisplayTime() {
+ return $this->displayTime;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setHtml( $html) {
+ $this->html = $html;
+ }
+ public function getHtml() {
+ return $this->html;
+ }
+ public function setHtmlPages(/* array(Google_string) */ $htmlPages) {
+ $this->assertIsArray($htmlPages, 'Google_string', __METHOD__);
+ $this->htmlPages = $htmlPages;
+ }
+ public function getHtmlPages() {
+ return $this->htmlPages;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInReplyTo( $inReplyTo) {
+ $this->inReplyTo = $inReplyTo;
+ }
+ public function getInReplyTo() {
+ return $this->inReplyTo;
+ }
+ public function setIsBundleCover( $isBundleCover) {
+ $this->isBundleCover = $isBundleCover;
+ }
+ public function getIsBundleCover() {
+ return $this->isBundleCover;
+ }
+ public function setIsDeleted( $isDeleted) {
+ $this->isDeleted = $isDeleted;
+ }
+ public function getIsDeleted() {
+ return $this->isDeleted;
+ }
+ public function setIsPinned( $isPinned) {
+ $this->isPinned = $isPinned;
+ }
+ public function getIsPinned() {
+ return $this->isPinned;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocation(Google_Location $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setMenuItems(/* array(Google_MenuItem) */ $menuItems) {
+ $this->assertIsArray($menuItems, 'Google_MenuItem', __METHOD__);
+ $this->menuItems = $menuItems;
+ }
+ public function getMenuItems() {
+ return $this->menuItems;
+ }
+ public function setNotification(Google_NotificationConfig $notification) {
+ $this->notification = $notification;
+ }
+ public function getNotification() {
+ return $this->notification;
+ }
+ public function setPinScore( $pinScore) {
+ $this->pinScore = $pinScore;
+ }
+ public function getPinScore() {
+ return $this->pinScore;
+ }
+ public function setRecipients(/* array(Google_Contact) */ $recipients) {
+ $this->assertIsArray($recipients, 'Google_Contact', __METHOD__);
+ $this->recipients = $recipients;
+ }
+ public function getRecipients() {
+ return $this->recipients;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSourceItemId( $sourceItemId) {
+ $this->sourceItemId = $sourceItemId;
+ }
+ public function getSourceItemId() {
+ return $this->sourceItemId;
+ }
+ public function setSpeakableText( $speakableText) {
+ $this->speakableText = $speakableText;
+ }
+ public function getSpeakableText() {
+ return $this->speakableText;
+ }
+ public function setSpeakableType( $speakableType) {
+ $this->speakableType = $speakableType;
+ }
+ public function getSpeakableType() {
+ return $this->speakableType;
+ }
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_TimelineListResponse extends Google_Model {
+ protected $__itemsType = 'Google_TimelineItem';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_TimelineItem) */ $items) {
+ $this->assertIsArray($items, 'Google_TimelineItem', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_UserAction extends Google_Model {
+ public $payload;
+ public $type;
+ public function setPayload( $payload) {
+ $this->payload = $payload;
+ }
+ public function getPayload() {
+ return $this->payload;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ModeratorService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ModeratorService.php
new file mode 100644
index 0000000..b00d65f
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ModeratorService.php
@@ -0,0 +1,1888 @@
+
+ * $moderatorService = new Google_ModeratorService(...);
+ * $votes = $moderatorService->votes;
+ *
+ */
+ class Google_VotesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Inserts a new vote by the authenticated user for the specified submission within the specified
+ * series. (votes.insert)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param Google_Vote $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string unauthToken User identifier for unauthenticated usage mode
+ * @return Google_Vote
+ */
+ public function insert($seriesId, $submissionId, Google_Vote $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Vote($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the votes by the authenticated user for the specified submission within the specified
+ * series. This method supports patch semantics. (votes.patch)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param Google_Vote $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string userId
+ * @opt_param string unauthToken User identifier for unauthenticated usage mode
+ * @return Google_Vote
+ */
+ public function patch($seriesId, $submissionId, Google_Vote $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Vote($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists the votes by the authenticated user for the given series. (votes.list)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string max-results Maximum number of results to return.
+ * @opt_param string start-index Index of the first result to be retrieved.
+ * @return Google_VoteList
+ */
+ public function listVotes($seriesId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_VoteList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the votes by the authenticated user for the specified submission within the specified
+ * series. (votes.update)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param Google_Vote $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string userId
+ * @opt_param string unauthToken User identifier for unauthenticated usage mode
+ * @return Google_Vote
+ */
+ public function update($seriesId, $submissionId, Google_Vote $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Vote($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the votes by the authenticated user for the specified submission within the specified
+ * series. (votes.get)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string userId
+ * @opt_param string unauthToken User identifier for unauthenticated usage mode
+ * @return Google_Vote
+ */
+ public function get($seriesId, $submissionId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Vote($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "responses" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $responses = $moderatorService->responses;
+ *
+ */
+ class Google_ResponsesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Inserts a response for the specified submission in the specified topic within the specified
+ * series. (responses.insert)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $topicId The decimal ID of the Topic within the Series.
+ * @param string $parentSubmissionId The decimal ID of the parent Submission within the Series.
+ * @param Google_Submission $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string unauthToken User identifier for unauthenticated usage mode
+ * @opt_param bool anonymous Set to true to mark the new submission as anonymous.
+ * @return Google_Submission
+ */
+ public function insert($seriesId, $topicId, $parentSubmissionId, Google_Submission $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'topicId' => $topicId, 'parentSubmissionId' => $parentSubmissionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Submission($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists or searches the responses for the specified submission within the specified series and
+ * returns the search results. (responses.list)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string max-results Maximum number of results to return.
+ * @opt_param string sort Sort order.
+ * @opt_param string author Restricts the results to submissions by a specific author.
+ * @opt_param string start-index Index of the first result to be retrieved.
+ * @opt_param string q Search query.
+ * @opt_param bool hasAttachedVideo Specifies whether to restrict to submissions that have videos attached.
+ * @return Google_SubmissionList
+ */
+ public function listResponses($seriesId, $submissionId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SubmissionList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "tags" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $tags = $moderatorService->tags;
+ *
+ */
+ class Google_TagsServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Inserts a new tag for the specified submission within the specified series. (tags.insert)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param Google_Tag $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Tag
+ */
+ public function insert($seriesId, $submissionId, Google_Tag $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Tag($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all tags for the specified submission within the specified series. (tags.list)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param array $optParams Optional parameters.
+ * @return Google_TagList
+ */
+ public function listTags($seriesId, $submissionId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TagList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes the specified tag from the specified submission within the specified series.
+ * (tags.delete)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param string $tagId
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($seriesId, $submissionId, $tagId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId, 'tagId' => $tagId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "series" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $series = $moderatorService->series;
+ *
+ */
+ class Google_SeriesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Inserts a new series. (series.insert)
+ *
+ * @param Google_Series $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Series
+ */
+ public function insert(Google_Series $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Series($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the specified series. This method supports patch semantics. (series.patch)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param Google_Series $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Series
+ */
+ public function patch($seriesId, Google_Series $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Series($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Searches the series and returns the search results. (series.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string max-results Maximum number of results to return.
+ * @opt_param string q Search query.
+ * @opt_param string start-index Index of the first result to be retrieved.
+ * @return Google_SeriesList
+ */
+ public function listSeries($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SeriesList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the specified series. (series.update)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param Google_Series $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Series
+ */
+ public function update($seriesId, Google_Series $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Series($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified series. (series.get)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param array $optParams Optional parameters.
+ * @return Google_Series
+ */
+ public function get($seriesId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Series($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "submissions" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $submissions = $moderatorService->submissions;
+ *
+ */
+ class Google_SeriesSubmissionsServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Searches the submissions for the specified series and returns the search results.
+ * (submissions.list)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string lang The language code for the language the client prefers results in.
+ * @opt_param string max-results Maximum number of results to return.
+ * @opt_param bool includeVotes Specifies whether to include the current user's vote
+ * @opt_param string start-index Index of the first result to be retrieved.
+ * @opt_param string author Restricts the results to submissions by a specific author.
+ * @opt_param string sort Sort order.
+ * @opt_param string q Search query.
+ * @opt_param bool hasAttachedVideo Specifies whether to restrict to submissions that have videos attached.
+ * @return Google_SubmissionList
+ */
+ public function listSeriesSubmissions($seriesId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SubmissionList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+ /**
+ * The "responses" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $responses = $moderatorService->responses;
+ *
+ */
+ class Google_SeriesResponsesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Searches the responses for the specified series and returns the search results. (responses.list)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string max-results Maximum number of results to return.
+ * @opt_param string sort Sort order.
+ * @opt_param string author Restricts the results to submissions by a specific author.
+ * @opt_param string start-index Index of the first result to be retrieved.
+ * @opt_param string q Search query.
+ * @opt_param bool hasAttachedVideo Specifies whether to restrict to submissions that have videos attached.
+ * @return Google_SeriesList
+ */
+ public function listSeriesResponses($seriesId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SeriesList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "topics" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $topics = $moderatorService->topics;
+ *
+ */
+ class Google_TopicsServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Inserts a new topic into the specified series. (topics.insert)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param Google_Topic $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Topic
+ */
+ public function insert($seriesId, Google_Topic $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Topic($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Searches the topics within the specified series and returns the search results. (topics.list)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string max-results Maximum number of results to return.
+ * @opt_param string q Search query.
+ * @opt_param string start-index Index of the first result to be retrieved.
+ * @opt_param string mode
+ * @return Google_TopicList
+ */
+ public function listTopics($seriesId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TopicList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the specified topic within the specified series. (topics.update)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $topicId The decimal ID of the Topic within the Series.
+ * @param Google_Topic $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Topic
+ */
+ public function update($seriesId, $topicId, Google_Topic $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'topicId' => $topicId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Topic($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified topic from the specified series. (topics.get)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $topicId The decimal ID of the Topic within the Series.
+ * @param array $optParams Optional parameters.
+ * @return Google_Topic
+ */
+ public function get($seriesId, $topicId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'topicId' => $topicId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Topic($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "submissions" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $submissions = $moderatorService->submissions;
+ *
+ */
+ class Google_TopicsSubmissionsServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Searches the submissions for the specified topic within the specified series and returns the
+ * search results. (submissions.list)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $topicId The decimal ID of the Topic within the Series.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string max-results Maximum number of results to return.
+ * @opt_param bool includeVotes Specifies whether to include the current user's vote
+ * @opt_param string start-index Index of the first result to be retrieved.
+ * @opt_param string author Restricts the results to submissions by a specific author.
+ * @opt_param string sort Sort order.
+ * @opt_param string q Search query.
+ * @opt_param bool hasAttachedVideo Specifies whether to restrict to submissions that have videos attached.
+ * @return Google_SubmissionList
+ */
+ public function listTopicsSubmissions($seriesId, $topicId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'topicId' => $topicId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SubmissionList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "global" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $global = $moderatorService->global;
+ *
+ */
+ class Google_ModeratorGlobalServiceResource extends Google_ServiceResource {
+
+
+ }
+
+ /**
+ * The "series" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $series = $moderatorService->series;
+ *
+ */
+ class Google_ModeratorGlobalSeriesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Searches the public series and returns the search results. (series.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string max-results Maximum number of results to return.
+ * @opt_param string q Search query.
+ * @opt_param string start-index Index of the first result to be retrieved.
+ * @return Google_SeriesList
+ */
+ public function listModeratorGlobalSeries($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SeriesList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "profiles" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $profiles = $moderatorService->profiles;
+ *
+ */
+ class Google_ProfilesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Updates the profile information for the authenticated user. This method supports patch semantics.
+ * (profiles.patch)
+ *
+ * @param Google_Profile $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Profile
+ */
+ public function patch(Google_Profile $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Profile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the profile information for the authenticated user. (profiles.update)
+ *
+ * @param Google_Profile $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Profile
+ */
+ public function update(Google_Profile $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Profile($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the profile information for the authenticated user. (profiles.get)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_Profile
+ */
+ public function get($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Profile($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "featured" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $featured = $moderatorService->featured;
+ *
+ */
+ class Google_FeaturedServiceResource extends Google_ServiceResource {
+
+
+ }
+
+ /**
+ * The "series" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $series = $moderatorService->series;
+ *
+ */
+ class Google_FeaturedSeriesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Lists the featured series. (series.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_SeriesList
+ */
+ public function listFeaturedSeries($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SeriesList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "myrecent" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $myrecent = $moderatorService->myrecent;
+ *
+ */
+ class Google_MyrecentServiceResource extends Google_ServiceResource {
+
+
+ }
+
+ /**
+ * The "series" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $series = $moderatorService->series;
+ *
+ */
+ class Google_MyrecentSeriesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Lists the series the authenticated user has visited. (series.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_SeriesList
+ */
+ public function listMyrecentSeries($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SeriesList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "my" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $my = $moderatorService->my;
+ *
+ */
+ class Google_MyServiceResource extends Google_ServiceResource {
+
+
+ }
+
+ /**
+ * The "series" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $series = $moderatorService->series;
+ *
+ */
+ class Google_MySeriesServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Lists all series created by the authenticated user. (series.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_SeriesList
+ */
+ public function listMySeries($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SeriesList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "submissions" collection of methods.
+ * Typical usage is:
+ *
+ * $moderatorService = new Google_ModeratorService(...);
+ * $submissions = $moderatorService->submissions;
+ *
+ */
+ class Google_SubmissionsServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Inserts a new submission in the specified topic within the specified series. (submissions.insert)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $topicId The decimal ID of the Topic within the Series.
+ * @param Google_Submission $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string unauthToken User identifier for unauthenticated usage mode
+ * @opt_param bool anonymous Set to true to mark the new submission as anonymous.
+ * @return Google_Submission
+ */
+ public function insert($seriesId, $topicId, Google_Submission $postBody, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'topicId' => $topicId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Submission($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns the specified submission within the specified series. (submissions.get)
+ *
+ * @param string $seriesId The decimal ID of the Series.
+ * @param string $submissionId The decimal ID of the Submission within the Series.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string lang The language code for the language the client prefers results in.
+ * @opt_param bool includeVotes Specifies whether to include the current user's vote
+ * @return Google_Submission
+ */
+ public function get($seriesId, $submissionId, $optParams = array()) {
+ $params = array('seriesId' => $seriesId, 'submissionId' => $submissionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Submission($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Moderator (v1).
+ *
+ *
+ * Moderator API
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_ModeratorService extends Google_Service {
+ public $votes;
+ public $responses;
+ public $tags;
+ public $series;
+ public $series_submissions;
+ public $series_responses;
+ public $topics;
+ public $topics_submissions;
+ public $global_series;
+ public $profiles;
+ public $featured_series;
+ public $myrecent_series;
+ public $my_series;
+ public $submissions;
+ /**
+ * Constructs the internal representation of the Moderator service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'moderator/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'moderator';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->votes = new Google_VotesServiceResource($this, $this->serviceName, 'votes', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "unauthToken": {"type": "string", "location": "query"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Vote"}, "response": {"$ref": "Vote"}, "httpMethod": "POST", "path": "series/{seriesId}/submissions/{submissionId}/votes/@me", "id": "moderator.votes.insert"}, "patch": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "userId": {"type": "string", "location": "query"}, "unauthToken": {"type": "string", "location": "query"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Vote"}, "response": {"$ref": "Vote"}, "httpMethod": "PATCH", "path": "series/{seriesId}/submissions/{submissionId}/votes/@me", "id": "moderator.votes.patch"}, "list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"max-results": {"type": "integer", "location": "query", "format": "uint32"}, "seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "start-index": {"type": "integer", "location": "query", "format": "uint32"}}, "id": "moderator.votes.list", "httpMethod": "GET", "path": "series/{seriesId}/votes/@me", "response": {"$ref": "VoteList"}}, "update": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "userId": {"type": "string", "location": "query"}, "unauthToken": {"type": "string", "location": "query"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Vote"}, "response": {"$ref": "Vote"}, "httpMethod": "PUT", "path": "series/{seriesId}/submissions/{submissionId}/votes/@me", "id": "moderator.votes.update"}, "get": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "userId": {"type": "string", "location": "query"}, "unauthToken": {"type": "string", "location": "query"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "id": "moderator.votes.get", "httpMethod": "GET", "path": "series/{seriesId}/submissions/{submissionId}/votes/@me", "response": {"$ref": "Vote"}}}}', true));
+ $this->responses = new Google_ResponsesServiceResource($this, $this->serviceName, 'responses', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "parentSubmissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "unauthToken": {"type": "string", "location": "query"}, "anonymous": {"type": "boolean", "location": "query"}, "topicId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Submission"}, "response": {"$ref": "Submission"}, "httpMethod": "POST", "path": "series/{seriesId}/topics/{topicId}/submissions/{parentSubmissionId}/responses", "id": "moderator.responses.insert"}, "list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"max-results": {"type": "integer", "location": "query", "format": "uint32"}, "sort": {"type": "string", "location": "query"}, "seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "author": {"type": "string", "location": "query"}, "start-index": {"type": "integer", "location": "query", "format": "uint32"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "q": {"type": "string", "location": "query"}, "hasAttachedVideo": {"type": "boolean", "location": "query"}}, "id": "moderator.responses.list", "httpMethod": "GET", "path": "series/{seriesId}/submissions/{submissionId}/responses", "response": {"$ref": "SubmissionList"}}}}', true));
+ $this->tags = new Google_TagsServiceResource($this, $this->serviceName, 'tags', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Tag"}, "response": {"$ref": "Tag"}, "httpMethod": "POST", "path": "series/{seriesId}/submissions/{submissionId}/tags", "id": "moderator.tags.insert"}, "list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "id": "moderator.tags.list", "httpMethod": "GET", "path": "series/{seriesId}/submissions/{submissionId}/tags", "response": {"$ref": "TagList"}}, "delete": {"scopes": ["https://www.googleapis.com/auth/moderator"], "path": "series/{seriesId}/submissions/{submissionId}/tags/{tagId}", "id": "moderator.tags.delete", "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "tagId": {"required": true, "type": "string", "location": "path"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "httpMethod": "DELETE"}}}', true));
+ $this->series = new Google_SeriesServiceResource($this, $this->serviceName, 'series', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/moderator"], "request": {"$ref": "Series"}, "response": {"$ref": "Series"}, "httpMethod": "POST", "path": "series", "id": "moderator.series.insert"}, "patch": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Series"}, "response": {"$ref": "Series"}, "httpMethod": "PATCH", "path": "series/{seriesId}", "id": "moderator.series.patch"}, "list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"max-results": {"type": "integer", "location": "query", "format": "uint32"}, "q": {"type": "string", "location": "query"}, "start-index": {"type": "integer", "location": "query", "format": "uint32"}}, "response": {"$ref": "SeriesList"}, "httpMethod": "GET", "path": "series", "id": "moderator.series.list"}, "update": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Series"}, "response": {"$ref": "Series"}, "httpMethod": "PUT", "path": "series/{seriesId}", "id": "moderator.series.update"}, "get": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "id": "moderator.series.get", "httpMethod": "GET", "path": "series/{seriesId}", "response": {"$ref": "Series"}}}}', true));
+ $this->series_submissions = new Google_SeriesSubmissionsServiceResource($this, $this->serviceName, 'submissions', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"lang": {"type": "string", "location": "query"}, "max-results": {"type": "integer", "location": "query", "format": "uint32"}, "seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "includeVotes": {"type": "boolean", "location": "query"}, "start-index": {"type": "integer", "location": "query", "format": "uint32"}, "author": {"type": "string", "location": "query"}, "sort": {"type": "string", "location": "query"}, "q": {"type": "string", "location": "query"}, "hasAttachedVideo": {"type": "boolean", "location": "query"}}, "id": "moderator.series.submissions.list", "httpMethod": "GET", "path": "series/{seriesId}/submissions", "response": {"$ref": "SubmissionList"}}}}', true));
+ $this->series_responses = new Google_SeriesResponsesServiceResource($this, $this->serviceName, 'responses', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"max-results": {"type": "integer", "location": "query", "format": "uint32"}, "sort": {"type": "string", "location": "query"}, "seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "author": {"type": "string", "location": "query"}, "start-index": {"type": "integer", "location": "query", "format": "uint32"}, "q": {"type": "string", "location": "query"}, "hasAttachedVideo": {"type": "boolean", "location": "query"}}, "id": "moderator.series.responses.list", "httpMethod": "GET", "path": "series/{seriesId}/responses", "response": {"$ref": "SeriesList"}}}}', true));
+ $this->topics = new Google_TopicsServiceResource($this, $this->serviceName, 'topics', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Topic"}, "response": {"$ref": "Topic"}, "httpMethod": "POST", "path": "series/{seriesId}/topics", "id": "moderator.topics.insert"}, "list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"max-results": {"type": "integer", "location": "query", "format": "uint32"}, "q": {"type": "string", "location": "query"}, "start-index": {"type": "integer", "location": "query", "format": "uint32"}, "mode": {"type": "string", "location": "query"}, "seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "id": "moderator.topics.list", "httpMethod": "GET", "path": "series/{seriesId}/topics", "response": {"$ref": "TopicList"}}, "update": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "topicId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "request": {"$ref": "Topic"}, "response": {"$ref": "Topic"}, "httpMethod": "PUT", "path": "series/{seriesId}/topics/{topicId}", "id": "moderator.topics.update"}, "get": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "topicId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}}, "id": "moderator.topics.get", "httpMethod": "GET", "path": "series/{seriesId}/topics/{topicId}", "response": {"$ref": "Topic"}}}}', true));
+ $this->topics_submissions = new Google_TopicsSubmissionsServiceResource($this, $this->serviceName, 'submissions', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"max-results": {"type": "integer", "location": "query", "format": "uint32"}, "seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "includeVotes": {"type": "boolean", "location": "query"}, "topicId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "start-index": {"type": "integer", "location": "query", "format": "uint32"}, "author": {"type": "string", "location": "query"}, "sort": {"type": "string", "location": "query"}, "q": {"type": "string", "location": "query"}, "hasAttachedVideo": {"type": "boolean", "location": "query"}}, "id": "moderator.topics.submissions.list", "httpMethod": "GET", "path": "series/{seriesId}/topics/{topicId}/submissions", "response": {"$ref": "SubmissionList"}}}}', true));
+ $this->global_series = new Google_ModeratorGlobalSeriesServiceResource($this, $this->serviceName, 'series', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"max-results": {"type": "integer", "location": "query", "format": "uint32"}, "q": {"type": "string", "location": "query"}, "start-index": {"type": "integer", "location": "query", "format": "uint32"}}, "response": {"$ref": "SeriesList"}, "httpMethod": "GET", "path": "search", "id": "moderator.global.series.list"}}}', true));
+ $this->profiles = new Google_ProfilesServiceResource($this, $this->serviceName, 'profiles', json_decode('{"methods": {"patch": {"scopes": ["https://www.googleapis.com/auth/moderator"], "request": {"$ref": "Profile"}, "response": {"$ref": "Profile"}, "httpMethod": "PATCH", "path": "profiles/@me", "id": "moderator.profiles.patch"}, "update": {"scopes": ["https://www.googleapis.com/auth/moderator"], "request": {"$ref": "Profile"}, "response": {"$ref": "Profile"}, "httpMethod": "PUT", "path": "profiles/@me", "id": "moderator.profiles.update"}, "get": {"scopes": ["https://www.googleapis.com/auth/moderator"], "path": "profiles/@me", "response": {"$ref": "Profile"}, "id": "moderator.profiles.get", "httpMethod": "GET"}}}', true));
+ $this->featured_series = new Google_FeaturedSeriesServiceResource($this, $this->serviceName, 'series', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "path": "series/featured", "response": {"$ref": "SeriesList"}, "id": "moderator.featured.series.list", "httpMethod": "GET"}}}', true));
+ $this->myrecent_series = new Google_MyrecentSeriesServiceResource($this, $this->serviceName, 'series', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "path": "series/@me/recent", "response": {"$ref": "SeriesList"}, "id": "moderator.myrecent.series.list", "httpMethod": "GET"}}}', true));
+ $this->my_series = new Google_MySeriesServiceResource($this, $this->serviceName, 'series', json_decode('{"methods": {"list": {"scopes": ["https://www.googleapis.com/auth/moderator"], "path": "series/@me/mine", "response": {"$ref": "SeriesList"}, "id": "moderator.my.series.list", "httpMethod": "GET"}}}', true));
+ $this->submissions = new Google_SubmissionsServiceResource($this, $this->serviceName, 'submissions', json_decode('{"methods": {"insert": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "topicId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "unauthToken": {"type": "string", "location": "query"}, "anonymous": {"type": "boolean", "location": "query"}}, "request": {"$ref": "Submission"}, "response": {"$ref": "Submission"}, "httpMethod": "POST", "path": "series/{seriesId}/topics/{topicId}/submissions", "id": "moderator.submissions.insert"}, "get": {"scopes": ["https://www.googleapis.com/auth/moderator"], "parameters": {"lang": {"type": "string", "location": "query"}, "seriesId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "submissionId": {"required": true, "type": "integer", "location": "path", "format": "uint32"}, "includeVotes": {"type": "boolean", "location": "query"}}, "id": "moderator.submissions.get", "httpMethod": "GET", "path": "series/{seriesId}/submissions/{submissionId}", "response": {"$ref": "Submission"}}}}', true));
+
+ }
+}
+
+class Google_ModeratorTopicsResourcePartial extends Google_Model {
+ protected $__idType = 'Google_ModeratorTopicsResourcePartialId';
+ protected $__idDataType = '';
+ public $id;
+ public function setId(Google_ModeratorTopicsResourcePartialId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_ModeratorTopicsResourcePartialId extends Google_Model {
+ public $seriesId;
+ public $topicId;
+ public function setSeriesId($seriesId) {
+ $this->seriesId = $seriesId;
+ }
+ public function getSeriesId() {
+ return $this->seriesId;
+ }
+ public function setTopicId($topicId) {
+ $this->topicId = $topicId;
+ }
+ public function getTopicId() {
+ return $this->topicId;
+ }
+}
+
+class Google_ModeratorVotesResourcePartial extends Google_Model {
+ public $vote;
+ public $flag;
+ public function setVote($vote) {
+ $this->vote = $vote;
+ }
+ public function getVote() {
+ return $this->vote;
+ }
+ public function setFlag($flag) {
+ $this->flag = $flag;
+ }
+ public function getFlag() {
+ return $this->flag;
+ }
+}
+
+class Google_Profile extends Google_Model {
+ public $kind;
+ protected $__attributionType = 'Google_ProfileAttribution';
+ protected $__attributionDataType = '';
+ public $attribution;
+ protected $__idType = 'Google_ProfileId';
+ protected $__idDataType = '';
+ public $id;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setAttribution(Google_ProfileAttribution $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setId(Google_ProfileId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_ProfileAttribution extends Google_Model {
+ protected $__geoType = 'Google_ProfileAttributionGeo';
+ protected $__geoDataType = '';
+ public $geo;
+ public $displayName;
+ public $location;
+ public $avatarUrl;
+ public function setGeo(Google_ProfileAttributionGeo $geo) {
+ $this->geo = $geo;
+ }
+ public function getGeo() {
+ return $this->geo;
+ }
+ public function setDisplayName($displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setLocation($location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setAvatarUrl($avatarUrl) {
+ $this->avatarUrl = $avatarUrl;
+ }
+ public function getAvatarUrl() {
+ return $this->avatarUrl;
+ }
+}
+
+class Google_ProfileAttributionGeo extends Google_Model {
+ public $latitude;
+ public $location;
+ public $longitude;
+ public function setLatitude($latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLocation($location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setLongitude($longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_ProfileId extends Google_Model {
+ public $user;
+ public function setUser($user) {
+ $this->user = $user;
+ }
+ public function getUser() {
+ return $this->user;
+ }
+}
+
+class Google_Series extends Google_Model {
+ public $kind;
+ public $description;
+ protected $__rulesType = 'Google_SeriesRules';
+ protected $__rulesDataType = '';
+ public $rules;
+ public $unauthVotingAllowed;
+ public $videoSubmissionAllowed;
+ public $name;
+ public $numTopics;
+ public $anonymousSubmissionAllowed;
+ public $unauthSubmissionAllowed;
+ protected $__idType = 'Google_SeriesId';
+ protected $__idDataType = '';
+ public $id;
+ protected $__countersType = 'Google_SeriesCounters';
+ protected $__countersDataType = '';
+ public $counters;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setDescription($description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setRules(Google_SeriesRules $rules) {
+ $this->rules = $rules;
+ }
+ public function getRules() {
+ return $this->rules;
+ }
+ public function setUnauthVotingAllowed($unauthVotingAllowed) {
+ $this->unauthVotingAllowed = $unauthVotingAllowed;
+ }
+ public function getUnauthVotingAllowed() {
+ return $this->unauthVotingAllowed;
+ }
+ public function setVideoSubmissionAllowed($videoSubmissionAllowed) {
+ $this->videoSubmissionAllowed = $videoSubmissionAllowed;
+ }
+ public function getVideoSubmissionAllowed() {
+ return $this->videoSubmissionAllowed;
+ }
+ public function setName($name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNumTopics($numTopics) {
+ $this->numTopics = $numTopics;
+ }
+ public function getNumTopics() {
+ return $this->numTopics;
+ }
+ public function setAnonymousSubmissionAllowed($anonymousSubmissionAllowed) {
+ $this->anonymousSubmissionAllowed = $anonymousSubmissionAllowed;
+ }
+ public function getAnonymousSubmissionAllowed() {
+ return $this->anonymousSubmissionAllowed;
+ }
+ public function setUnauthSubmissionAllowed($unauthSubmissionAllowed) {
+ $this->unauthSubmissionAllowed = $unauthSubmissionAllowed;
+ }
+ public function getUnauthSubmissionAllowed() {
+ return $this->unauthSubmissionAllowed;
+ }
+ public function setId(Google_SeriesId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setCounters(Google_SeriesCounters $counters) {
+ $this->counters = $counters;
+ }
+ public function getCounters() {
+ return $this->counters;
+ }
+}
+
+class Google_SeriesCounters extends Google_Model {
+ public $users;
+ public $noneVotes;
+ public $videoSubmissions;
+ public $minusVotes;
+ public $anonymousSubmissions;
+ public $submissions;
+ public $plusVotes;
+ public function setUsers($users) {
+ $this->users = $users;
+ }
+ public function getUsers() {
+ return $this->users;
+ }
+ public function setNoneVotes($noneVotes) {
+ $this->noneVotes = $noneVotes;
+ }
+ public function getNoneVotes() {
+ return $this->noneVotes;
+ }
+ public function setVideoSubmissions($videoSubmissions) {
+ $this->videoSubmissions = $videoSubmissions;
+ }
+ public function getVideoSubmissions() {
+ return $this->videoSubmissions;
+ }
+ public function setMinusVotes($minusVotes) {
+ $this->minusVotes = $minusVotes;
+ }
+ public function getMinusVotes() {
+ return $this->minusVotes;
+ }
+ public function setAnonymousSubmissions($anonymousSubmissions) {
+ $this->anonymousSubmissions = $anonymousSubmissions;
+ }
+ public function getAnonymousSubmissions() {
+ return $this->anonymousSubmissions;
+ }
+ public function setSubmissions($submissions) {
+ $this->submissions = $submissions;
+ }
+ public function getSubmissions() {
+ return $this->submissions;
+ }
+ public function setPlusVotes($plusVotes) {
+ $this->plusVotes = $plusVotes;
+ }
+ public function getPlusVotes() {
+ return $this->plusVotes;
+ }
+}
+
+class Google_SeriesId extends Google_Model {
+ public $seriesId;
+ public function setSeriesId($seriesId) {
+ $this->seriesId = $seriesId;
+ }
+ public function getSeriesId() {
+ return $this->seriesId;
+ }
+}
+
+class Google_SeriesList extends Google_Model {
+ protected $__itemsType = 'Google_Series';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Series) */ $items) {
+ $this->assertIsArray($items, 'Google_Series', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_SeriesRules extends Google_Model {
+ protected $__votesType = 'Google_SeriesRulesVotes';
+ protected $__votesDataType = '';
+ public $votes;
+ protected $__submissionsType = 'Google_SeriesRulesSubmissions';
+ protected $__submissionsDataType = '';
+ public $submissions;
+ public function setVotes(Google_SeriesRulesVotes $votes) {
+ $this->votes = $votes;
+ }
+ public function getVotes() {
+ return $this->votes;
+ }
+ public function setSubmissions(Google_SeriesRulesSubmissions $submissions) {
+ $this->submissions = $submissions;
+ }
+ public function getSubmissions() {
+ return $this->submissions;
+ }
+}
+
+class Google_SeriesRulesSubmissions extends Google_Model {
+ public $close;
+ public $open;
+ public function setClose($close) {
+ $this->close = $close;
+ }
+ public function getClose() {
+ return $this->close;
+ }
+ public function setOpen($open) {
+ $this->open = $open;
+ }
+ public function getOpen() {
+ return $this->open;
+ }
+}
+
+class Google_SeriesRulesVotes extends Google_Model {
+ public $close;
+ public $open;
+ public function setClose($close) {
+ $this->close = $close;
+ }
+ public function getClose() {
+ return $this->close;
+ }
+ public function setOpen($open) {
+ $this->open = $open;
+ }
+ public function getOpen() {
+ return $this->open;
+ }
+}
+
+class Google_Submission extends Google_Model {
+ public $kind;
+ protected $__attributionType = 'Google_SubmissionAttribution';
+ protected $__attributionDataType = '';
+ public $attribution;
+ public $created;
+ public $text;
+ protected $__topicsType = 'Google_ModeratorTopicsResourcePartial';
+ protected $__topicsDataType = 'array';
+ public $topics;
+ public $author;
+ protected $__translationsType = 'Google_SubmissionTranslations';
+ protected $__translationsDataType = 'array';
+ public $translations;
+ protected $__parentSubmissionIdType = 'Google_SubmissionParentSubmissionId';
+ protected $__parentSubmissionIdDataType = '';
+ public $parentSubmissionId;
+ protected $__voteType = 'Google_ModeratorVotesResourcePartial';
+ protected $__voteDataType = '';
+ public $vote;
+ public $attachmentUrl;
+ protected $__geoType = 'Google_SubmissionGeo';
+ protected $__geoDataType = '';
+ public $geo;
+ protected $__idType = 'Google_SubmissionId';
+ protected $__idDataType = '';
+ public $id;
+ protected $__countersType = 'Google_SubmissionCounters';
+ protected $__countersDataType = '';
+ public $counters;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setAttribution(Google_SubmissionAttribution $attribution) {
+ $this->attribution = $attribution;
+ }
+ public function getAttribution() {
+ return $this->attribution;
+ }
+ public function setCreated($created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setText($text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+ public function setTopics(/* array(Google_ModeratorTopicsResourcePartial) */ $topics) {
+ $this->assertIsArray($topics, 'Google_ModeratorTopicsResourcePartial', __METHOD__);
+ $this->topics = $topics;
+ }
+ public function getTopics() {
+ return $this->topics;
+ }
+ public function setAuthor($author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setTranslations(/* array(Google_SubmissionTranslations) */ $translations) {
+ $this->assertIsArray($translations, 'Google_SubmissionTranslations', __METHOD__);
+ $this->translations = $translations;
+ }
+ public function getTranslations() {
+ return $this->translations;
+ }
+ public function setParentSubmissionId(Google_SubmissionParentSubmissionId $parentSubmissionId) {
+ $this->parentSubmissionId = $parentSubmissionId;
+ }
+ public function getParentSubmissionId() {
+ return $this->parentSubmissionId;
+ }
+ public function setVote(Google_ModeratorVotesResourcePartial $vote) {
+ $this->vote = $vote;
+ }
+ public function getVote() {
+ return $this->vote;
+ }
+ public function setAttachmentUrl($attachmentUrl) {
+ $this->attachmentUrl = $attachmentUrl;
+ }
+ public function getAttachmentUrl() {
+ return $this->attachmentUrl;
+ }
+ public function setGeo(Google_SubmissionGeo $geo) {
+ $this->geo = $geo;
+ }
+ public function getGeo() {
+ return $this->geo;
+ }
+ public function setId(Google_SubmissionId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setCounters(Google_SubmissionCounters $counters) {
+ $this->counters = $counters;
+ }
+ public function getCounters() {
+ return $this->counters;
+ }
+}
+
+class Google_SubmissionAttribution extends Google_Model {
+ public $displayName;
+ public $location;
+ public $avatarUrl;
+ public function setDisplayName($displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setLocation($location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setAvatarUrl($avatarUrl) {
+ $this->avatarUrl = $avatarUrl;
+ }
+ public function getAvatarUrl() {
+ return $this->avatarUrl;
+ }
+}
+
+class Google_SubmissionCounters extends Google_Model {
+ public $noneVotes;
+ public $minusVotes;
+ public $plusVotes;
+ public function setNoneVotes($noneVotes) {
+ $this->noneVotes = $noneVotes;
+ }
+ public function getNoneVotes() {
+ return $this->noneVotes;
+ }
+ public function setMinusVotes($minusVotes) {
+ $this->minusVotes = $minusVotes;
+ }
+ public function getMinusVotes() {
+ return $this->minusVotes;
+ }
+ public function setPlusVotes($plusVotes) {
+ $this->plusVotes = $plusVotes;
+ }
+ public function getPlusVotes() {
+ return $this->plusVotes;
+ }
+}
+
+class Google_SubmissionGeo extends Google_Model {
+ public $latitude;
+ public $location;
+ public $longitude;
+ public function setLatitude($latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLocation($location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setLongitude($longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_SubmissionId extends Google_Model {
+ public $seriesId;
+ public $submissionId;
+ public function setSeriesId($seriesId) {
+ $this->seriesId = $seriesId;
+ }
+ public function getSeriesId() {
+ return $this->seriesId;
+ }
+ public function setSubmissionId($submissionId) {
+ $this->submissionId = $submissionId;
+ }
+ public function getSubmissionId() {
+ return $this->submissionId;
+ }
+}
+
+class Google_SubmissionList extends Google_Model {
+ protected $__itemsType = 'Google_Submission';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Submission) */ $items) {
+ $this->assertIsArray($items, 'Google_Submission', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_SubmissionParentSubmissionId extends Google_Model {
+ public $seriesId;
+ public $submissionId;
+ public function setSeriesId($seriesId) {
+ $this->seriesId = $seriesId;
+ }
+ public function getSeriesId() {
+ return $this->seriesId;
+ }
+ public function setSubmissionId($submissionId) {
+ $this->submissionId = $submissionId;
+ }
+ public function getSubmissionId() {
+ return $this->submissionId;
+ }
+}
+
+class Google_SubmissionTranslations extends Google_Model {
+ public $lang;
+ public $text;
+ public function setLang($lang) {
+ $this->lang = $lang;
+ }
+ public function getLang() {
+ return $this->lang;
+ }
+ public function setText($text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+}
+
+class Google_Tag extends Google_Model {
+ public $text;
+ public $kind;
+ protected $__idType = 'Google_TagId';
+ protected $__idDataType = '';
+ public $id;
+ public function setText($text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setId(Google_TagId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_TagId extends Google_Model {
+ public $seriesId;
+ public $tagId;
+ public $submissionId;
+ public function setSeriesId($seriesId) {
+ $this->seriesId = $seriesId;
+ }
+ public function getSeriesId() {
+ return $this->seriesId;
+ }
+ public function setTagId($tagId) {
+ $this->tagId = $tagId;
+ }
+ public function getTagId() {
+ return $this->tagId;
+ }
+ public function setSubmissionId($submissionId) {
+ $this->submissionId = $submissionId;
+ }
+ public function getSubmissionId() {
+ return $this->submissionId;
+ }
+}
+
+class Google_TagList extends Google_Model {
+ protected $__itemsType = 'Google_Tag';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Tag) */ $items) {
+ $this->assertIsArray($items, 'Google_Tag', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Topic extends Google_Model {
+ public $kind;
+ public $description;
+ protected $__rulesType = 'Google_TopicRules';
+ protected $__rulesDataType = '';
+ public $rules;
+ protected $__featuredSubmissionType = 'Google_Submission';
+ protected $__featuredSubmissionDataType = '';
+ public $featuredSubmission;
+ public $presenter;
+ protected $__countersType = 'Google_TopicCounters';
+ protected $__countersDataType = '';
+ public $counters;
+ protected $__idType = 'Google_TopicId';
+ protected $__idDataType = '';
+ public $id;
+ public $name;
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setDescription($description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setRules(Google_TopicRules $rules) {
+ $this->rules = $rules;
+ }
+ public function getRules() {
+ return $this->rules;
+ }
+ public function setFeaturedSubmission(Google_Submission $featuredSubmission) {
+ $this->featuredSubmission = $featuredSubmission;
+ }
+ public function getFeaturedSubmission() {
+ return $this->featuredSubmission;
+ }
+ public function setPresenter($presenter) {
+ $this->presenter = $presenter;
+ }
+ public function getPresenter() {
+ return $this->presenter;
+ }
+ public function setCounters(Google_TopicCounters $counters) {
+ $this->counters = $counters;
+ }
+ public function getCounters() {
+ return $this->counters;
+ }
+ public function setId(Google_TopicId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setName($name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_TopicCounters extends Google_Model {
+ public $users;
+ public $noneVotes;
+ public $videoSubmissions;
+ public $minusVotes;
+ public $submissions;
+ public $plusVotes;
+ public function setUsers($users) {
+ $this->users = $users;
+ }
+ public function getUsers() {
+ return $this->users;
+ }
+ public function setNoneVotes($noneVotes) {
+ $this->noneVotes = $noneVotes;
+ }
+ public function getNoneVotes() {
+ return $this->noneVotes;
+ }
+ public function setVideoSubmissions($videoSubmissions) {
+ $this->videoSubmissions = $videoSubmissions;
+ }
+ public function getVideoSubmissions() {
+ return $this->videoSubmissions;
+ }
+ public function setMinusVotes($minusVotes) {
+ $this->minusVotes = $minusVotes;
+ }
+ public function getMinusVotes() {
+ return $this->minusVotes;
+ }
+ public function setSubmissions($submissions) {
+ $this->submissions = $submissions;
+ }
+ public function getSubmissions() {
+ return $this->submissions;
+ }
+ public function setPlusVotes($plusVotes) {
+ $this->plusVotes = $plusVotes;
+ }
+ public function getPlusVotes() {
+ return $this->plusVotes;
+ }
+}
+
+class Google_TopicId extends Google_Model {
+ public $seriesId;
+ public $topicId;
+ public function setSeriesId($seriesId) {
+ $this->seriesId = $seriesId;
+ }
+ public function getSeriesId() {
+ return $this->seriesId;
+ }
+ public function setTopicId($topicId) {
+ $this->topicId = $topicId;
+ }
+ public function getTopicId() {
+ return $this->topicId;
+ }
+}
+
+class Google_TopicList extends Google_Model {
+ protected $__itemsType = 'Google_Topic';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Topic) */ $items) {
+ $this->assertIsArray($items, 'Google_Topic', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_TopicRules extends Google_Model {
+ protected $__votesType = 'Google_TopicRulesVotes';
+ protected $__votesDataType = '';
+ public $votes;
+ protected $__submissionsType = 'Google_TopicRulesSubmissions';
+ protected $__submissionsDataType = '';
+ public $submissions;
+ public function setVotes(Google_TopicRulesVotes $votes) {
+ $this->votes = $votes;
+ }
+ public function getVotes() {
+ return $this->votes;
+ }
+ public function setSubmissions(Google_TopicRulesSubmissions $submissions) {
+ $this->submissions = $submissions;
+ }
+ public function getSubmissions() {
+ return $this->submissions;
+ }
+}
+
+class Google_TopicRulesSubmissions extends Google_Model {
+ public $close;
+ public $open;
+ public function setClose($close) {
+ $this->close = $close;
+ }
+ public function getClose() {
+ return $this->close;
+ }
+ public function setOpen($open) {
+ $this->open = $open;
+ }
+ public function getOpen() {
+ return $this->open;
+ }
+}
+
+class Google_TopicRulesVotes extends Google_Model {
+ public $close;
+ public $open;
+ public function setClose($close) {
+ $this->close = $close;
+ }
+ public function getClose() {
+ return $this->close;
+ }
+ public function setOpen($open) {
+ $this->open = $open;
+ }
+ public function getOpen() {
+ return $this->open;
+ }
+}
+
+class Google_Vote extends Google_Model {
+ public $vote;
+ public $flag;
+ protected $__idType = 'Google_VoteId';
+ protected $__idDataType = '';
+ public $id;
+ public $kind;
+ public function setVote($vote) {
+ $this->vote = $vote;
+ }
+ public function getVote() {
+ return $this->vote;
+ }
+ public function setFlag($flag) {
+ $this->flag = $flag;
+ }
+ public function getFlag() {
+ return $this->flag;
+ }
+ public function setId(Google_VoteId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_VoteId extends Google_Model {
+ public $seriesId;
+ public $submissionId;
+ public function setSeriesId($seriesId) {
+ $this->seriesId = $seriesId;
+ }
+ public function getSeriesId() {
+ return $this->seriesId;
+ }
+ public function setSubmissionId($submissionId) {
+ $this->submissionId = $submissionId;
+ }
+ public function getSubmissionId() {
+ return $this->submissionId;
+ }
+}
+
+class Google_VoteList extends Google_Model {
+ protected $__itemsType = 'Google_Vote';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Vote) */ $items) {
+ $this->assertIsArray($items, 'Google_Vote', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_Oauth2Service.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_Oauth2Service.php
new file mode 100644
index 0000000..28fbc6d
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_Oauth2Service.php
@@ -0,0 +1,272 @@
+
+ * $oauth2Service = new Google_Oauth2Service(...);
+ * $userinfo = $oauth2Service->userinfo;
+ *
+ */
+ class Google_UserinfoServiceResource extends Google_ServiceResource {
+
+ /**
+ * (userinfo.get)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_Userinfo
+ */
+ public function get($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Userinfo($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "v2" collection of methods.
+ * Typical usage is:
+ *
+ * $oauth2Service = new Google_Oauth2Service(...);
+ * $v2 = $oauth2Service->v2;
+ *
+ */
+ class Google_UserinfoV2ServiceResource extends Google_ServiceResource {
+
+ }
+
+ /**
+ * The "me" collection of methods.
+ * Typical usage is:
+ *
+ * $oauth2Service = new Google_Oauth2Service(...);
+ * $me = $oauth2Service->me;
+ *
+ */
+ class Google_UserinfoV2MeServiceResource extends Google_ServiceResource {
+
+ /**
+ * (me.get)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_Userinfo
+ */
+ public function get($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Userinfo($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Oauth2 (v2).
+ *
+ *
+ * Lets you access OAuth2 protocol related APIs.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_Oauth2Service extends Google_Service {
+ public $userinfo;
+ public $userinfo_v2_me;
+ /**
+ * Constructs the internal representation of the Oauth2 service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = '';
+ $this->version = 'v2';
+ $this->serviceName = 'oauth2';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->userinfo = new Google_UserinfoServiceResource($this, $this->serviceName, 'userinfo', json_decode('{"methods": {"get": {"id": "oauth2.userinfo.get", "path": "oauth2/v2/userinfo", "httpMethod": "GET", "response": {"$ref": "Userinfo"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me", "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"]}}}', true));
+ $this->userinfo_v2_me = new Google_UserinfoV2MeServiceResource($this, $this->serviceName, 'me', json_decode('{"methods": {"get": {"id": "oauth2.userinfo.v2.me.get", "path": "userinfo/v2/me", "httpMethod": "GET", "response": {"$ref": "Userinfo"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me", "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Tokeninfo extends Google_Model {
+ public $access_type;
+ public $audience;
+ public $email;
+ public $expires_in;
+ public $issued_to;
+ public $scope;
+ public $user_id;
+ public $verified_email;
+ public function setAccess_type( $access_type) {
+ $this->access_type = $access_type;
+ }
+ public function getAccess_type() {
+ return $this->access_type;
+ }
+ public function setAudience( $audience) {
+ $this->audience = $audience;
+ }
+ public function getAudience() {
+ return $this->audience;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setExpires_in( $expires_in) {
+ $this->expires_in = $expires_in;
+ }
+ public function getExpires_in() {
+ return $this->expires_in;
+ }
+ public function setIssued_to( $issued_to) {
+ $this->issued_to = $issued_to;
+ }
+ public function getIssued_to() {
+ return $this->issued_to;
+ }
+ public function setScope( $scope) {
+ $this->scope = $scope;
+ }
+ public function getScope() {
+ return $this->scope;
+ }
+ public function setUser_id( $user_id) {
+ $this->user_id = $user_id;
+ }
+ public function getUser_id() {
+ return $this->user_id;
+ }
+ public function setVerified_email( $verified_email) {
+ $this->verified_email = $verified_email;
+ }
+ public function getVerified_email() {
+ return $this->verified_email;
+ }
+}
+
+class Google_Userinfo extends Google_Model {
+ public $birthday;
+ public $email;
+ public $family_name;
+ public $gender;
+ public $given_name;
+ public $hd;
+ public $id;
+ public $link;
+ public $locale;
+ public $name;
+ public $picture;
+ public $timezone;
+ public $verified_email;
+ public function setBirthday( $birthday) {
+ $this->birthday = $birthday;
+ }
+ public function getBirthday() {
+ return $this->birthday;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setFamily_name( $family_name) {
+ $this->family_name = $family_name;
+ }
+ public function getFamily_name() {
+ return $this->family_name;
+ }
+ public function setGender( $gender) {
+ $this->gender = $gender;
+ }
+ public function getGender() {
+ return $this->gender;
+ }
+ public function setGiven_name( $given_name) {
+ $this->given_name = $given_name;
+ }
+ public function getGiven_name() {
+ return $this->given_name;
+ }
+ public function setHd( $hd) {
+ $this->hd = $hd;
+ }
+ public function getHd() {
+ return $this->hd;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setLocale( $locale) {
+ $this->locale = $locale;
+ }
+ public function getLocale() {
+ return $this->locale;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPicture( $picture) {
+ $this->picture = $picture;
+ }
+ public function getPicture() {
+ return $this->picture;
+ }
+ public function setTimezone( $timezone) {
+ $this->timezone = $timezone;
+ }
+ public function getTimezone() {
+ return $this->timezone;
+ }
+ public function setVerified_email( $verified_email) {
+ $this->verified_email = $verified_email;
+ }
+ public function getVerified_email() {
+ return $this->verified_email;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_OrkutService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_OrkutService.php
new file mode 100644
index 0000000..80c6fe0
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_OrkutService.php
@@ -0,0 +1,2540 @@
+
+ * $orkutService = new Google_OrkutService(...);
+ * $acl = $orkutService->acl;
+ *
+ */
+ class Google_AclServiceResource extends Google_ServiceResource {
+
+ /**
+ * Excludes an element from the ACL of the activity. (acl.delete)
+ *
+ * @param string $activityId ID of the activity.
+ * @param string $userId ID of the user to be removed from the activity.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($activityId, $userId, $optParams = array()) {
+ $params = array('activityId' => $activityId, 'userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "activities" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $activities = $orkutService->activities;
+ *
+ */
+ class Google_ActivitiesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes an existing activity, if the access controls allow it. (activities.delete)
+ *
+ * @param string $activityId ID of the activity to remove.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($activityId, $optParams = array()) {
+ $params = array('activityId' => $activityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves a list of activities. (activities.list)
+ *
+ * @param string $userId The ID of the user whose activities will be listed. Can be me to refer to the viewer (i.e. the authenticated user).
+ * @param string $collection The collection of activities to list.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @opt_param string maxResults The maximum number of activities to include in the response.
+ * @opt_param string pageToken A continuation token that allows pagination.
+ * @return Google_ActivityList
+ */
+ public function listActivities($userId, $collection, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ActivityList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "activityVisibility" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $activityVisibility = $orkutService->activityVisibility;
+ *
+ */
+ class Google_ActivityVisibilityServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets the visibility of an existing activity. (activityVisibility.get)
+ *
+ * @param string $activityId ID of the activity to get the visibility.
+ * @param array $optParams Optional parameters.
+ * @return Google_Visibility
+ */
+ public function get($activityId, $optParams = array()) {
+ $params = array('activityId' => $activityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Visibility($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the visibility of an existing activity. This method supports patch semantics.
+ * (activityVisibility.patch)
+ *
+ * @param string $activityId ID of the activity.
+ * @param Google_Visibility $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Visibility
+ */
+ public function patch($activityId, Google_Visibility $postBody, $optParams = array()) {
+ $params = array('activityId' => $activityId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Visibility($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the visibility of an existing activity. (activityVisibility.update)
+ *
+ * @param string $activityId ID of the activity.
+ * @param Google_Visibility $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Visibility
+ */
+ public function update($activityId, Google_Visibility $postBody, $optParams = array()) {
+ $params = array('activityId' => $activityId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Visibility($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "badges" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $badges = $orkutService->badges;
+ *
+ */
+ class Google_BadgesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a badge from a user. (badges.get)
+ *
+ * @param string $userId The ID of the user whose badges will be listed. Can be me to refer to caller.
+ * @param string $badgeId The ID of the badge that will be retrieved.
+ * @param array $optParams Optional parameters.
+ * @return Google_Badge
+ */
+ public function get($userId, $badgeId, $optParams = array()) {
+ $params = array('userId' => $userId, 'badgeId' => $badgeId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Badge($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of visible badges of a user. (badges.list)
+ *
+ * @param string $userId The id of the user whose badges will be listed. Can be me to refer to caller.
+ * @param array $optParams Optional parameters.
+ * @return Google_BadgeList
+ */
+ public function listBadges($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_BadgeList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "comments" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $comments = $orkutService->comments;
+ *
+ */
+ class Google_CommentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes an existing comment. (comments.delete)
+ *
+ * @param string $commentId ID of the comment to remove.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($commentId, $optParams = array()) {
+ $params = array('commentId' => $commentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves an existing comment. (comments.get)
+ *
+ * @param string $commentId ID of the comment to get.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @return Google_Comment
+ */
+ public function get($commentId, $optParams = array()) {
+ $params = array('commentId' => $commentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Inserts a new comment to an activity. (comments.insert)
+ *
+ * @param string $activityId The ID of the activity to contain the new comment.
+ * @param Google_Comment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Comment
+ */
+ public function insert($activityId, Google_Comment $postBody, $optParams = array()) {
+ $params = array('activityId' => $activityId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of comments, possibly filtered. (comments.list)
+ *
+ * @param string $activityId The ID of the activity containing the comments.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @opt_param string maxResults The maximum number of activities to include in the response.
+ * @opt_param string orderBy Sort search results.
+ * @opt_param string pageToken A continuation token that allows pagination.
+ * @return Google_CommentList
+ */
+ public function listComments($activityId, $optParams = array()) {
+ $params = array('activityId' => $activityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communities" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communities = $orkutService->communities;
+ *
+ */
+ class Google_CommunitiesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the basic information (aka. profile) of a community. (communities.get)
+ *
+ * @param int $communityId The ID of the community to get.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @return Google_Community
+ */
+ public function get($communityId, $optParams = array()) {
+ $params = array('communityId' => $communityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Community($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the list of communities the current user is a member of. (communities.list)
+ *
+ * @param string $userId The ID of the user whose communities will be listed. Can be me to refer to caller.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @opt_param string maxResults The maximum number of communities to include in the response.
+ * @opt_param string orderBy How to order the communities by.
+ * @return Google_CommunityList
+ */
+ public function listCommunities($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communityFollow" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communityFollow = $orkutService->communityFollow;
+ *
+ */
+ class Google_CommunityFollowServiceResource extends Google_ServiceResource {
+
+ /**
+ * Removes a user from the followers of a community. (communityFollow.delete)
+ *
+ * @param int $communityId ID of the community.
+ * @param string $userId ID of the user.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($communityId, $userId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Adds a user as a follower of a community. (communityFollow.insert)
+ *
+ * @param int $communityId ID of the community.
+ * @param string $userId ID of the user.
+ * @param array $optParams Optional parameters.
+ * @return Google_CommunityMembers
+ */
+ public function insert($communityId, $userId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityMembers($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communityMembers" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communityMembers = $orkutService->communityMembers;
+ *
+ */
+ class Google_CommunityMembersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Makes the user leave a community. (communityMembers.delete)
+ *
+ * @param int $communityId ID of the community.
+ * @param string $userId ID of the user.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($communityId, $userId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves the relationship between a user and a community. (communityMembers.get)
+ *
+ * @param int $communityId ID of the community.
+ * @param string $userId ID of the user.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @return Google_CommunityMembers
+ */
+ public function get($communityId, $userId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityMembers($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Makes the user join a community. (communityMembers.insert)
+ *
+ * @param int $communityId ID of the community.
+ * @param string $userId ID of the user.
+ * @param array $optParams Optional parameters.
+ * @return Google_CommunityMembers
+ */
+ public function insert($communityId, $userId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityMembers($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists members of a community. Use the pagination tokens to retrieve the full list; do not rely on
+ * the member count available in the community profile information to know when to stop iterating,
+ * as that count may be approximate. (communityMembers.list)
+ *
+ * @param int $communityId The ID of the community whose members will be listed.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool friendsOnly Whether to list only community members who are friends of the user.
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @opt_param string maxResults The maximum number of members to include in the response.
+ * @opt_param string pageToken A continuation token that allows pagination.
+ * @return Google_CommunityMembersList
+ */
+ public function listCommunityMembers($communityId, $optParams = array()) {
+ $params = array('communityId' => $communityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityMembersList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communityMessages" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communityMessages = $orkutService->communityMessages;
+ *
+ */
+ class Google_CommunityMessagesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Moves a message of the community to the trash folder. (communityMessages.delete)
+ *
+ * @param int $communityId The ID of the community whose message will be moved to the trash folder.
+ * @param string $topicId The ID of the topic whose message will be moved to the trash folder.
+ * @param string $messageId The ID of the message to be moved to the trash folder.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($communityId, $topicId, $messageId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'topicId' => $topicId, 'messageId' => $messageId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Adds a message to a given community topic. (communityMessages.insert)
+ *
+ * @param int $communityId The ID of the community the message should be added to.
+ * @param string $topicId The ID of the topic the message should be added to.
+ * @param Google_CommunityMessage $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CommunityMessage
+ */
+ public function insert($communityId, $topicId, Google_CommunityMessage $postBody, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'topicId' => $topicId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityMessage($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the messages of a topic of a community. (communityMessages.list)
+ *
+ * @param int $communityId The ID of the community which messages will be listed.
+ * @param string $topicId The ID of the topic which messages will be listed.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @opt_param string maxResults The maximum number of messages to include in the response.
+ * @opt_param string pageToken A continuation token that allows pagination.
+ * @return Google_CommunityMessageList
+ */
+ public function listCommunityMessages($communityId, $topicId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'topicId' => $topicId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityMessageList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communityPollComments" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communityPollComments = $orkutService->communityPollComments;
+ *
+ */
+ class Google_CommunityPollCommentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Adds a comment on a community poll. (communityPollComments.insert)
+ *
+ * @param int $communityId The ID of the community whose poll is being commented.
+ * @param string $pollId The ID of the poll being commented.
+ * @param Google_CommunityPollComment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CommunityPollComment
+ */
+ public function insert($communityId, $pollId, Google_CommunityPollComment $postBody, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'pollId' => $pollId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityPollComment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the comments of a community poll. (communityPollComments.list)
+ *
+ * @param int $communityId The ID of the community whose poll is having its comments listed.
+ * @param string $pollId The ID of the community whose polls will be listed.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @opt_param string maxResults The maximum number of comments to include in the response.
+ * @opt_param string pageToken A continuation token that allows pagination.
+ * @return Google_CommunityPollCommentList
+ */
+ public function listCommunityPollComments($communityId, $pollId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'pollId' => $pollId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityPollCommentList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communityPollVotes" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communityPollVotes = $orkutService->communityPollVotes;
+ *
+ */
+ class Google_CommunityPollVotesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Votes on a community poll. (communityPollVotes.insert)
+ *
+ * @param int $communityId The ID of the community whose poll is being voted.
+ * @param string $pollId The ID of the poll being voted.
+ * @param Google_CommunityPollVote $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_CommunityPollVote
+ */
+ public function insert($communityId, $pollId, Google_CommunityPollVote $postBody, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'pollId' => $pollId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityPollVote($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communityPolls" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communityPolls = $orkutService->communityPolls;
+ *
+ */
+ class Google_CommunityPollsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves one specific poll of a community. (communityPolls.get)
+ *
+ * @param int $communityId The ID of the community for whose poll will be retrieved.
+ * @param string $pollId The ID of the poll to get.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @return Google_CommunityPoll
+ */
+ public function get($communityId, $pollId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'pollId' => $pollId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityPoll($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the polls of a community. (communityPolls.list)
+ *
+ * @param int $communityId The ID of the community which polls will be listed.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @opt_param string maxResults The maximum number of polls to include in the response.
+ * @opt_param string pageToken A continuation token that allows pagination.
+ * @return Google_CommunityPollList
+ */
+ public function listCommunityPolls($communityId, $optParams = array()) {
+ $params = array('communityId' => $communityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityPollList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communityRelated" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communityRelated = $orkutService->communityRelated;
+ *
+ */
+ class Google_CommunityRelatedServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the communities related to another one. (communityRelated.list)
+ *
+ * @param int $communityId The ID of the community whose related communities will be listed.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @return Google_CommunityList
+ */
+ public function listCommunityRelated($communityId, $optParams = array()) {
+ $params = array('communityId' => $communityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "communityTopics" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $communityTopics = $orkutService->communityTopics;
+ *
+ */
+ class Google_CommunityTopicsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Moves a topic of the community to the trash folder. (communityTopics.delete)
+ *
+ * @param int $communityId The ID of the community whose topic will be moved to the trash folder.
+ * @param string $topicId The ID of the topic to be moved to the trash folder.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($communityId, $topicId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'topicId' => $topicId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves a topic of a community. (communityTopics.get)
+ *
+ * @param int $communityId The ID of the community whose topic will be retrieved.
+ * @param string $topicId The ID of the topic to get.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @return Google_CommunityTopic
+ */
+ public function get($communityId, $topicId, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'topicId' => $topicId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityTopic($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Adds a topic to a given community. (communityTopics.insert)
+ *
+ * @param int $communityId The ID of the community the topic should be added to.
+ * @param Google_CommunityTopic $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool isShout Whether this topic is a shout.
+ * @return Google_CommunityTopic
+ */
+ public function insert($communityId, Google_CommunityTopic $postBody, $optParams = array()) {
+ $params = array('communityId' => $communityId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityTopic($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves the topics of a community. (communityTopics.list)
+ *
+ * @param int $communityId The ID of the community which topics will be listed.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string hl Specifies the interface language (host language) of your user interface.
+ * @opt_param string maxResults The maximum number of topics to include in the response.
+ * @opt_param string pageToken A continuation token that allows pagination.
+ * @return Google_CommunityTopicList
+ */
+ public function listCommunityTopics($communityId, $optParams = array()) {
+ $params = array('communityId' => $communityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommunityTopicList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "counters" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $counters = $orkutService->counters;
+ *
+ */
+ class Google_CountersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the counters of a user. (counters.list)
+ *
+ * @param string $userId The ID of the user whose counters will be listed. Can be me to refer to caller.
+ * @param array $optParams Optional parameters.
+ * @return Google_Counters
+ */
+ public function listCounters($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Counters($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "scraps" collection of methods.
+ * Typical usage is:
+ *
+ * $orkutService = new Google_OrkutService(...);
+ * $scraps = $orkutService->scraps;
+ *
+ */
+ class Google_ScrapsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Creates a new scrap. (scraps.insert)
+ *
+ * @param Google_Activity $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Activity
+ */
+ public function insert(Google_Activity $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Activity($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Orkut (v2).
+ *
+ *
+ * Lets you manage activities, comments and badges in Orkut. More stuff coming in time.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_OrkutService extends Google_Service {
+ public $acl;
+ public $activities;
+ public $activityVisibility;
+ public $badges;
+ public $comments;
+ public $communities;
+ public $communityFollow;
+ public $communityMembers;
+ public $communityMessages;
+ public $communityPollComments;
+ public $communityPollVotes;
+ public $communityPolls;
+ public $communityRelated;
+ public $communityTopics;
+ public $counters;
+ public $scraps;
+ /**
+ * Constructs the internal representation of the Orkut service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'orkut/v2/';
+ $this->version = 'v2';
+ $this->serviceName = 'orkut';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->acl = new Google_AclServiceResource($this, $this->serviceName, 'acl', json_decode('{"methods": {"delete": {"id": "orkut.acl.delete", "path": "activities/{activityId}/acl/{userId}", "httpMethod": "DELETE", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/orkut"]}}}', true));
+ $this->activities = new Google_ActivitiesServiceResource($this, $this->serviceName, 'activities', json_decode('{"methods": {"delete": {"id": "orkut.activities.delete", "path": "activities/{activityId}", "httpMethod": "DELETE", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "list": {"id": "orkut.activities.list", "path": "people/{userId}/activities/{collection}", "httpMethod": "GET", "parameters": {"collection": {"type": "string", "required": true, "enum": ["all", "scraps", "stream"], "location": "path"}, "hl": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ActivityList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->activityVisibility = new Google_ActivityVisibilityServiceResource($this, $this->serviceName, 'activityVisibility', json_decode('{"methods": {"get": {"id": "orkut.activityVisibility.get", "path": "activities/{activityId}/visibility", "httpMethod": "GET", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Visibility"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}, "patch": {"id": "orkut.activityVisibility.patch", "path": "activities/{activityId}/visibility", "httpMethod": "PATCH", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Visibility"}, "response": {"$ref": "Visibility"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "update": {"id": "orkut.activityVisibility.update", "path": "activities/{activityId}/visibility", "httpMethod": "PUT", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Visibility"}, "response": {"$ref": "Visibility"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}}}', true));
+ $this->badges = new Google_BadgesServiceResource($this, $this->serviceName, 'badges', json_decode('{"methods": {"get": {"id": "orkut.badges.get", "path": "people/{userId}/badges/{badgeId}", "httpMethod": "GET", "parameters": {"badgeId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Badge"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}, "list": {"id": "orkut.badges.list", "path": "people/{userId}/badges", "httpMethod": "GET", "parameters": {"userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "BadgeList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->comments = new Google_CommentsServiceResource($this, $this->serviceName, 'comments', json_decode('{"methods": {"delete": {"id": "orkut.comments.delete", "path": "comments/{commentId}", "httpMethod": "DELETE", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "get": {"id": "orkut.comments.get", "path": "comments/{commentId}", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}, "hl": {"type": "string", "location": "query"}}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}, "insert": {"id": "orkut.comments.insert", "path": "activities/{activityId}/comments", "httpMethod": "POST", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Comment"}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "list": {"id": "orkut.comments.list", "path": "activities/{activityId}/comments", "httpMethod": "GET", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}, "hl": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "location": "query"}, "orderBy": {"type": "string", "default": "DESCENDING_SORT", "enum": ["ascending", "descending"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CommentList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->communities = new Google_CommunitiesServiceResource($this, $this->serviceName, 'communities', json_decode('{"methods": {"get": {"id": "orkut.communities.get", "path": "communities/{communityId}", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}}, "response": {"$ref": "Community"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}, "list": {"id": "orkut.communities.list", "path": "people/{userId}/communities", "httpMethod": "GET", "parameters": {"hl": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "location": "query"}, "orderBy": {"type": "string", "enum": ["id", "ranked"], "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CommunityList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->communityFollow = new Google_CommunityFollowServiceResource($this, $this->serviceName, 'communityFollow', json_decode('{"methods": {"delete": {"id": "orkut.communityFollow.delete", "path": "communities/{communityId}/followers/{userId}", "httpMethod": "DELETE", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "insert": {"id": "orkut.communityFollow.insert", "path": "communities/{communityId}/followers/{userId}", "httpMethod": "POST", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CommunityMembers"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}}}', true));
+ $this->communityMembers = new Google_CommunityMembersServiceResource($this, $this->serviceName, 'communityMembers', json_decode('{"methods": {"delete": {"id": "orkut.communityMembers.delete", "path": "communities/{communityId}/members/{userId}", "httpMethod": "DELETE", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "get": {"id": "orkut.communityMembers.get", "path": "communities/{communityId}/members/{userId}", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CommunityMembers"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}, "insert": {"id": "orkut.communityMembers.insert", "path": "communities/{communityId}/members/{userId}", "httpMethod": "POST", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CommunityMembers"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "list": {"id": "orkut.communityMembers.list", "path": "communities/{communityId}/members", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "friendsOnly": {"type": "boolean", "location": "query"}, "hl": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CommunityMembersList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->communityMessages = new Google_CommunityMessagesServiceResource($this, $this->serviceName, 'communityMessages', json_decode('{"methods": {"delete": {"id": "orkut.communityMessages.delete", "path": "communities/{communityId}/topics/{topicId}/messages/{messageId}", "httpMethod": "DELETE", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "messageId": {"type": "string", "required": true, "format": "int64", "location": "path"}, "topicId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "insert": {"id": "orkut.communityMessages.insert", "path": "communities/{communityId}/topics/{topicId}/messages", "httpMethod": "POST", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "topicId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "request": {"$ref": "CommunityMessage"}, "response": {"$ref": "CommunityMessage"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "list": {"id": "orkut.communityMessages.list", "path": "communities/{communityId}/topics/{topicId}/messages", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "topicId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "response": {"$ref": "CommunityMessageList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->communityPollComments = new Google_CommunityPollCommentsServiceResource($this, $this->serviceName, 'communityPollComments', json_decode('{"methods": {"insert": {"id": "orkut.communityPollComments.insert", "path": "communities/{communityId}/polls/{pollId}/comments", "httpMethod": "POST", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "pollId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommunityPollComment"}, "response": {"$ref": "CommunityPollComment"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "list": {"id": "orkut.communityPollComments.list", "path": "communities/{communityId}/polls/{pollId}/comments", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "pollId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CommunityPollCommentList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->communityPollVotes = new Google_CommunityPollVotesServiceResource($this, $this->serviceName, 'communityPollVotes', json_decode('{"methods": {"insert": {"id": "orkut.communityPollVotes.insert", "path": "communities/{communityId}/polls/{pollId}/votes", "httpMethod": "POST", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "pollId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "CommunityPollVote"}, "response": {"$ref": "CommunityPollVote"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}}}', true));
+ $this->communityPolls = new Google_CommunityPollsServiceResource($this, $this->serviceName, 'communityPolls', json_decode('{"methods": {"get": {"id": "orkut.communityPolls.get", "path": "communities/{communityId}/polls/{pollId}", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}, "pollId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CommunityPoll"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}, "list": {"id": "orkut.communityPolls.list", "path": "communities/{communityId}/polls", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CommunityPollList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->communityRelated = new Google_CommunityRelatedServiceResource($this, $this->serviceName, 'communityRelated', json_decode('{"methods": {"list": {"id": "orkut.communityRelated.list", "path": "communities/{communityId}/related", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}}, "response": {"$ref": "CommunityList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->communityTopics = new Google_CommunityTopicsServiceResource($this, $this->serviceName, 'communityTopics', json_decode('{"methods": {"delete": {"id": "orkut.communityTopics.delete", "path": "communities/{communityId}/topics/{topicId}", "httpMethod": "DELETE", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "topicId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "get": {"id": "orkut.communityTopics.get", "path": "communities/{communityId}/topics/{topicId}", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}, "topicId": {"type": "string", "required": true, "format": "int64", "location": "path"}}, "response": {"$ref": "CommunityTopic"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}, "insert": {"id": "orkut.communityTopics.insert", "path": "communities/{communityId}/topics", "httpMethod": "POST", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "isShout": {"type": "boolean", "location": "query"}}, "request": {"$ref": "CommunityTopic"}, "response": {"$ref": "CommunityTopic"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}, "list": {"id": "orkut.communityTopics.list", "path": "communities/{communityId}/topics", "httpMethod": "GET", "parameters": {"communityId": {"type": "integer", "required": true, "format": "int32", "location": "path"}, "hl": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "CommunityTopicList"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->counters = new Google_CountersServiceResource($this, $this->serviceName, 'counters', json_decode('{"methods": {"list": {"id": "orkut.counters.list", "path": "people/{userId}/counters", "httpMethod": "GET", "parameters": {"userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Counters"}, "scopes": ["https://www.googleapis.com/auth/orkut", "https://www.googleapis.com/auth/orkut.readonly"]}}}', true));
+ $this->scraps = new Google_ScrapsServiceResource($this, $this->serviceName, 'scraps', json_decode('{"methods": {"insert": {"id": "orkut.scraps.insert", "path": "activities/scraps", "httpMethod": "POST", "request": {"$ref": "Activity"}, "response": {"$ref": "Activity"}, "scopes": ["https://www.googleapis.com/auth/orkut"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Acl extends Google_Model {
+ public $description;
+ protected $__itemsType = 'Google_AclItems';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $totalParticipants;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setItems(/* array(Google_AclItems) */ $items) {
+ $this->assertIsArray($items, 'Google_AclItems', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTotalParticipants( $totalParticipants) {
+ $this->totalParticipants = $totalParticipants;
+ }
+ public function getTotalParticipants() {
+ return $this->totalParticipants;
+ }
+}
+
+class Google_AclItems extends Google_Model {
+ public $id;
+ public $type;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Activity extends Google_Model {
+ protected $__accessType = 'Google_Acl';
+ protected $__accessDataType = '';
+ public $access;
+ protected $__actorType = 'Google_OrkutAuthorResource';
+ protected $__actorDataType = '';
+ public $actor;
+ public $id;
+ public $kind;
+ protected $__linksType = 'Google_OrkutLinkResource';
+ protected $__linksDataType = 'array';
+ public $links;
+ protected $__objectType = 'Google_ActivityObject';
+ protected $__objectDataType = '';
+ public $object;
+ public $published;
+ public $title;
+ public $updated;
+ public $verb;
+ public function setAccess(Google_Acl $access) {
+ $this->access = $access;
+ }
+ public function getAccess() {
+ return $this->access;
+ }
+ public function setActor(Google_OrkutAuthorResource $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLinks(/* array(Google_OrkutLinkResource) */ $links) {
+ $this->assertIsArray($links, 'Google_OrkutLinkResource', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setObject(Google_ActivityObject $object) {
+ $this->object = $object;
+ }
+ public function getObject() {
+ return $this->object;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVerb( $verb) {
+ $this->verb = $verb;
+ }
+ public function getVerb() {
+ return $this->verb;
+ }
+}
+
+class Google_ActivityList extends Google_Model {
+ protected $__itemsType = 'Google_Activity';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Activity) */ $items) {
+ $this->assertIsArray($items, 'Google_Activity', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_ActivityObject extends Google_Model {
+ public $content;
+ protected $__itemsType = 'Google_OrkutActivityobjectsResource';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $objectType;
+ protected $__repliesType = 'Google_ActivityObjectReplies';
+ protected $__repliesDataType = '';
+ public $replies;
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setItems(/* array(Google_OrkutActivityobjectsResource) */ $items) {
+ $this->assertIsArray($items, 'Google_OrkutActivityobjectsResource', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setReplies(Google_ActivityObjectReplies $replies) {
+ $this->replies = $replies;
+ }
+ public function getReplies() {
+ return $this->replies;
+ }
+}
+
+class Google_ActivityObjectReplies extends Google_Model {
+ protected $__itemsType = 'Google_Comment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $totalItems;
+ public $url;
+ public function setItems(/* array(Google_Comment) */ $items) {
+ $this->assertIsArray($items, 'Google_Comment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_Badge extends Google_Model {
+ public $badgeLargeLogo;
+ public $badgeSmallLogo;
+ public $caption;
+ public $description;
+ public $id;
+ public $kind;
+ public $sponsorLogo;
+ public $sponsorName;
+ public $sponsorUrl;
+ public function setBadgeLargeLogo( $badgeLargeLogo) {
+ $this->badgeLargeLogo = $badgeLargeLogo;
+ }
+ public function getBadgeLargeLogo() {
+ return $this->badgeLargeLogo;
+ }
+ public function setBadgeSmallLogo( $badgeSmallLogo) {
+ $this->badgeSmallLogo = $badgeSmallLogo;
+ }
+ public function getBadgeSmallLogo() {
+ return $this->badgeSmallLogo;
+ }
+ public function setCaption( $caption) {
+ $this->caption = $caption;
+ }
+ public function getCaption() {
+ return $this->caption;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSponsorLogo( $sponsorLogo) {
+ $this->sponsorLogo = $sponsorLogo;
+ }
+ public function getSponsorLogo() {
+ return $this->sponsorLogo;
+ }
+ public function setSponsorName( $sponsorName) {
+ $this->sponsorName = $sponsorName;
+ }
+ public function getSponsorName() {
+ return $this->sponsorName;
+ }
+ public function setSponsorUrl( $sponsorUrl) {
+ $this->sponsorUrl = $sponsorUrl;
+ }
+ public function getSponsorUrl() {
+ return $this->sponsorUrl;
+ }
+}
+
+class Google_BadgeList extends Google_Model {
+ protected $__itemsType = 'Google_Badge';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Badge) */ $items) {
+ $this->assertIsArray($items, 'Google_Badge', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Comment extends Google_Model {
+ protected $__actorType = 'Google_OrkutAuthorResource';
+ protected $__actorDataType = '';
+ public $actor;
+ public $content;
+ public $id;
+ protected $__inReplyToType = 'Google_CommentInReplyTo';
+ protected $__inReplyToDataType = '';
+ public $inReplyTo;
+ public $kind;
+ protected $__linksType = 'Google_OrkutLinkResource';
+ protected $__linksDataType = 'array';
+ public $links;
+ public $published;
+ public function setActor(Google_OrkutAuthorResource $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInReplyTo(Google_CommentInReplyTo $inReplyTo) {
+ $this->inReplyTo = $inReplyTo;
+ }
+ public function getInReplyTo() {
+ return $this->inReplyTo;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLinks(/* array(Google_OrkutLinkResource) */ $links) {
+ $this->assertIsArray($links, 'Google_OrkutLinkResource', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+}
+
+class Google_CommentInReplyTo extends Google_Model {
+ public $href;
+ public $ref;
+ public $rel;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setRef( $ref) {
+ $this->ref = $ref;
+ }
+ public function getRef() {
+ return $this->ref;
+ }
+ public function setRel( $rel) {
+ $this->rel = $rel;
+ }
+ public function getRel() {
+ return $this->rel;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_CommentList extends Google_Model {
+ protected $__itemsType = 'Google_Comment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $previousPageToken;
+ public function setItems(/* array(Google_Comment) */ $items) {
+ $this->assertIsArray($items, 'Google_Comment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPreviousPageToken( $previousPageToken) {
+ $this->previousPageToken = $previousPageToken;
+ }
+ public function getPreviousPageToken() {
+ return $this->previousPageToken;
+ }
+}
+
+class Google_Community extends Google_Model {
+ public $category;
+ protected $__co_ownersType = 'Google_OrkutAuthorResource';
+ protected $__co_ownersDataType = 'array';
+ public $co_owners;
+ public $creation_date;
+ public $description;
+ public $id;
+ public $kind;
+ public $language;
+ protected $__linksType = 'Google_OrkutLinkResource';
+ protected $__linksDataType = 'array';
+ public $links;
+ public $location;
+ public $member_count;
+ protected $__moderatorsType = 'Google_OrkutAuthorResource';
+ protected $__moderatorsDataType = 'array';
+ public $moderators;
+ public $name;
+ protected $__ownerType = 'Google_OrkutAuthorResource';
+ protected $__ownerDataType = '';
+ public $owner;
+ public $photo_url;
+ public function setCategory( $category) {
+ $this->category = $category;
+ }
+ public function getCategory() {
+ return $this->category;
+ }
+ public function setCo_owners(/* array(Google_OrkutAuthorResource) */ $co_owners) {
+ $this->assertIsArray($co_owners, 'Google_OrkutAuthorResource', __METHOD__);
+ $this->co_owners = $co_owners;
+ }
+ public function getCo_owners() {
+ return $this->co_owners;
+ }
+ public function setCreation_date( $creation_date) {
+ $this->creation_date = $creation_date;
+ }
+ public function getCreation_date() {
+ return $this->creation_date;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+ public function setLinks(/* array(Google_OrkutLinkResource) */ $links) {
+ $this->assertIsArray($links, 'Google_OrkutLinkResource', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setMember_count( $member_count) {
+ $this->member_count = $member_count;
+ }
+ public function getMember_count() {
+ return $this->member_count;
+ }
+ public function setModerators(/* array(Google_OrkutAuthorResource) */ $moderators) {
+ $this->assertIsArray($moderators, 'Google_OrkutAuthorResource', __METHOD__);
+ $this->moderators = $moderators;
+ }
+ public function getModerators() {
+ return $this->moderators;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOwner(Google_OrkutAuthorResource $owner) {
+ $this->owner = $owner;
+ }
+ public function getOwner() {
+ return $this->owner;
+ }
+ public function setPhoto_url( $photo_url) {
+ $this->photo_url = $photo_url;
+ }
+ public function getPhoto_url() {
+ return $this->photo_url;
+ }
+}
+
+class Google_CommunityList extends Google_Model {
+ protected $__itemsType = 'Google_Community';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Community) */ $items) {
+ $this->assertIsArray($items, 'Google_Community', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_CommunityMembers extends Google_Model {
+ protected $__communityMembershipStatusType = 'Google_CommunityMembershipStatus';
+ protected $__communityMembershipStatusDataType = '';
+ public $communityMembershipStatus;
+ public $kind;
+ protected $__personType = 'Google_OrkutActivitypersonResource';
+ protected $__personDataType = '';
+ public $person;
+ public function setCommunityMembershipStatus(Google_CommunityMembershipStatus $communityMembershipStatus) {
+ $this->communityMembershipStatus = $communityMembershipStatus;
+ }
+ public function getCommunityMembershipStatus() {
+ return $this->communityMembershipStatus;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPerson(Google_OrkutActivitypersonResource $person) {
+ $this->person = $person;
+ }
+ public function getPerson() {
+ return $this->person;
+ }
+}
+
+class Google_CommunityMembersList extends Google_Model {
+ public $firstPageToken;
+ protected $__itemsType = 'Google_CommunityMembers';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $lastPageToken;
+ public $nextPageToken;
+ public $prevPageToken;
+ public function setFirstPageToken( $firstPageToken) {
+ $this->firstPageToken = $firstPageToken;
+ }
+ public function getFirstPageToken() {
+ return $this->firstPageToken;
+ }
+ public function setItems(/* array(Google_CommunityMembers) */ $items) {
+ $this->assertIsArray($items, 'Google_CommunityMembers', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastPageToken( $lastPageToken) {
+ $this->lastPageToken = $lastPageToken;
+ }
+ public function getLastPageToken() {
+ return $this->lastPageToken;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPrevPageToken( $prevPageToken) {
+ $this->prevPageToken = $prevPageToken;
+ }
+ public function getPrevPageToken() {
+ return $this->prevPageToken;
+ }
+}
+
+class Google_CommunityMembershipStatus extends Google_Model {
+ public $canCreatePoll;
+ public $canCreateTopic;
+ public $canShout;
+ public $isCoOwner;
+ public $isFollowing;
+ public $isModerator;
+ public $isOwner;
+ public $isRestoreAvailable;
+ public $isTakebackAvailable;
+ public $kind;
+ public $status;
+ public function setCanCreatePoll( $canCreatePoll) {
+ $this->canCreatePoll = $canCreatePoll;
+ }
+ public function getCanCreatePoll() {
+ return $this->canCreatePoll;
+ }
+ public function setCanCreateTopic( $canCreateTopic) {
+ $this->canCreateTopic = $canCreateTopic;
+ }
+ public function getCanCreateTopic() {
+ return $this->canCreateTopic;
+ }
+ public function setCanShout( $canShout) {
+ $this->canShout = $canShout;
+ }
+ public function getCanShout() {
+ return $this->canShout;
+ }
+ public function setIsCoOwner( $isCoOwner) {
+ $this->isCoOwner = $isCoOwner;
+ }
+ public function getIsCoOwner() {
+ return $this->isCoOwner;
+ }
+ public function setIsFollowing( $isFollowing) {
+ $this->isFollowing = $isFollowing;
+ }
+ public function getIsFollowing() {
+ return $this->isFollowing;
+ }
+ public function setIsModerator( $isModerator) {
+ $this->isModerator = $isModerator;
+ }
+ public function getIsModerator() {
+ return $this->isModerator;
+ }
+ public function setIsOwner( $isOwner) {
+ $this->isOwner = $isOwner;
+ }
+ public function getIsOwner() {
+ return $this->isOwner;
+ }
+ public function setIsRestoreAvailable( $isRestoreAvailable) {
+ $this->isRestoreAvailable = $isRestoreAvailable;
+ }
+ public function getIsRestoreAvailable() {
+ return $this->isRestoreAvailable;
+ }
+ public function setIsTakebackAvailable( $isTakebackAvailable) {
+ $this->isTakebackAvailable = $isTakebackAvailable;
+ }
+ public function getIsTakebackAvailable() {
+ return $this->isTakebackAvailable;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_CommunityMessage extends Google_Model {
+ public $addedDate;
+ protected $__authorType = 'Google_OrkutAuthorResource';
+ protected $__authorDataType = '';
+ public $author;
+ public $body;
+ public $id;
+ public $isSpam;
+ public $kind;
+ protected $__linksType = 'Google_OrkutLinkResource';
+ protected $__linksDataType = 'array';
+ public $links;
+ public $subject;
+ public function setAddedDate( $addedDate) {
+ $this->addedDate = $addedDate;
+ }
+ public function getAddedDate() {
+ return $this->addedDate;
+ }
+ public function setAuthor(Google_OrkutAuthorResource $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setBody( $body) {
+ $this->body = $body;
+ }
+ public function getBody() {
+ return $this->body;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIsSpam( $isSpam) {
+ $this->isSpam = $isSpam;
+ }
+ public function getIsSpam() {
+ return $this->isSpam;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLinks(/* array(Google_OrkutLinkResource) */ $links) {
+ $this->assertIsArray($links, 'Google_OrkutLinkResource', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setSubject( $subject) {
+ $this->subject = $subject;
+ }
+ public function getSubject() {
+ return $this->subject;
+ }
+}
+
+class Google_CommunityMessageList extends Google_Model {
+ public $firstPageToken;
+ protected $__itemsType = 'Google_CommunityMessage';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $lastPageToken;
+ public $nextPageToken;
+ public $prevPageToken;
+ public function setFirstPageToken( $firstPageToken) {
+ $this->firstPageToken = $firstPageToken;
+ }
+ public function getFirstPageToken() {
+ return $this->firstPageToken;
+ }
+ public function setItems(/* array(Google_CommunityMessage) */ $items) {
+ $this->assertIsArray($items, 'Google_CommunityMessage', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastPageToken( $lastPageToken) {
+ $this->lastPageToken = $lastPageToken;
+ }
+ public function getLastPageToken() {
+ return $this->lastPageToken;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPrevPageToken( $prevPageToken) {
+ $this->prevPageToken = $prevPageToken;
+ }
+ public function getPrevPageToken() {
+ return $this->prevPageToken;
+ }
+}
+
+class Google_CommunityPoll extends Google_Model {
+ protected $__authorType = 'Google_OrkutAuthorResource';
+ protected $__authorDataType = '';
+ public $author;
+ public $communityId;
+ public $creationTime;
+ public $description;
+ public $endingTime;
+ public $hasVoted;
+ public $id;
+ protected $__imageType = 'Google_CommunityPollImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $isClosed;
+ public $isMultipleAnswers;
+ public $isOpenForVoting;
+ public $isRestricted;
+ public $isSpam;
+ public $isUsersVotePublic;
+ public $isVotingAllowedForNonMembers;
+ public $kind;
+ public $lastUpdate;
+ protected $__linksType = 'Google_OrkutLinkResource';
+ protected $__linksDataType = 'array';
+ public $links;
+ protected $__optionsType = 'Google_OrkutCommunitypolloptionResource';
+ protected $__optionsDataType = 'array';
+ public $options;
+ public $question;
+ public $totalNumberOfVotes;
+ public $votedOptions;
+ public function setAuthor(Google_OrkutAuthorResource $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setCommunityId( $communityId) {
+ $this->communityId = $communityId;
+ }
+ public function getCommunityId() {
+ return $this->communityId;
+ }
+ public function setCreationTime( $creationTime) {
+ $this->creationTime = $creationTime;
+ }
+ public function getCreationTime() {
+ return $this->creationTime;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEndingTime( $endingTime) {
+ $this->endingTime = $endingTime;
+ }
+ public function getEndingTime() {
+ return $this->endingTime;
+ }
+ public function setHasVoted( $hasVoted) {
+ $this->hasVoted = $hasVoted;
+ }
+ public function getHasVoted() {
+ return $this->hasVoted;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_CommunityPollImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setIsClosed( $isClosed) {
+ $this->isClosed = $isClosed;
+ }
+ public function getIsClosed() {
+ return $this->isClosed;
+ }
+ public function setIsMultipleAnswers( $isMultipleAnswers) {
+ $this->isMultipleAnswers = $isMultipleAnswers;
+ }
+ public function getIsMultipleAnswers() {
+ return $this->isMultipleAnswers;
+ }
+ public function setIsOpenForVoting( $isOpenForVoting) {
+ $this->isOpenForVoting = $isOpenForVoting;
+ }
+ public function getIsOpenForVoting() {
+ return $this->isOpenForVoting;
+ }
+ public function setIsRestricted( $isRestricted) {
+ $this->isRestricted = $isRestricted;
+ }
+ public function getIsRestricted() {
+ return $this->isRestricted;
+ }
+ public function setIsSpam( $isSpam) {
+ $this->isSpam = $isSpam;
+ }
+ public function getIsSpam() {
+ return $this->isSpam;
+ }
+ public function setIsUsersVotePublic( $isUsersVotePublic) {
+ $this->isUsersVotePublic = $isUsersVotePublic;
+ }
+ public function getIsUsersVotePublic() {
+ return $this->isUsersVotePublic;
+ }
+ public function setIsVotingAllowedForNonMembers( $isVotingAllowedForNonMembers) {
+ $this->isVotingAllowedForNonMembers = $isVotingAllowedForNonMembers;
+ }
+ public function getIsVotingAllowedForNonMembers() {
+ return $this->isVotingAllowedForNonMembers;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastUpdate( $lastUpdate) {
+ $this->lastUpdate = $lastUpdate;
+ }
+ public function getLastUpdate() {
+ return $this->lastUpdate;
+ }
+ public function setLinks(/* array(Google_OrkutLinkResource) */ $links) {
+ $this->assertIsArray($links, 'Google_OrkutLinkResource', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setOptions(/* array(Google_OrkutCommunitypolloptionResource) */ $options) {
+ $this->assertIsArray($options, 'Google_OrkutCommunitypolloptionResource', __METHOD__);
+ $this->options = $options;
+ }
+ public function getOptions() {
+ return $this->options;
+ }
+ public function setQuestion( $question) {
+ $this->question = $question;
+ }
+ public function getQuestion() {
+ return $this->question;
+ }
+ public function setTotalNumberOfVotes( $totalNumberOfVotes) {
+ $this->totalNumberOfVotes = $totalNumberOfVotes;
+ }
+ public function getTotalNumberOfVotes() {
+ return $this->totalNumberOfVotes;
+ }
+ public function setVotedOptions(/* array(Google_int) */ $votedOptions) {
+ $this->assertIsArray($votedOptions, 'Google_int', __METHOD__);
+ $this->votedOptions = $votedOptions;
+ }
+ public function getVotedOptions() {
+ return $this->votedOptions;
+ }
+}
+
+class Google_CommunityPollComment extends Google_Model {
+ public $addedDate;
+ protected $__authorType = 'Google_OrkutAuthorResource';
+ protected $__authorDataType = '';
+ public $author;
+ public $body;
+ public $id;
+ public $kind;
+ public function setAddedDate( $addedDate) {
+ $this->addedDate = $addedDate;
+ }
+ public function getAddedDate() {
+ return $this->addedDate;
+ }
+ public function setAuthor(Google_OrkutAuthorResource $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setBody( $body) {
+ $this->body = $body;
+ }
+ public function getBody() {
+ return $this->body;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_CommunityPollCommentList extends Google_Model {
+ public $firstPageToken;
+ protected $__itemsType = 'Google_CommunityPollComment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $lastPageToken;
+ public $nextPageToken;
+ public $prevPageToken;
+ public function setFirstPageToken( $firstPageToken) {
+ $this->firstPageToken = $firstPageToken;
+ }
+ public function getFirstPageToken() {
+ return $this->firstPageToken;
+ }
+ public function setItems(/* array(Google_CommunityPollComment) */ $items) {
+ $this->assertIsArray($items, 'Google_CommunityPollComment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastPageToken( $lastPageToken) {
+ $this->lastPageToken = $lastPageToken;
+ }
+ public function getLastPageToken() {
+ return $this->lastPageToken;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPrevPageToken( $prevPageToken) {
+ $this->prevPageToken = $prevPageToken;
+ }
+ public function getPrevPageToken() {
+ return $this->prevPageToken;
+ }
+}
+
+class Google_CommunityPollImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommunityPollList extends Google_Model {
+ public $firstPageToken;
+ protected $__itemsType = 'Google_CommunityPoll';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $lastPageToken;
+ public $nextPageToken;
+ public $prevPageToken;
+ public function setFirstPageToken( $firstPageToken) {
+ $this->firstPageToken = $firstPageToken;
+ }
+ public function getFirstPageToken() {
+ return $this->firstPageToken;
+ }
+ public function setItems(/* array(Google_CommunityPoll) */ $items) {
+ $this->assertIsArray($items, 'Google_CommunityPoll', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastPageToken( $lastPageToken) {
+ $this->lastPageToken = $lastPageToken;
+ }
+ public function getLastPageToken() {
+ return $this->lastPageToken;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPrevPageToken( $prevPageToken) {
+ $this->prevPageToken = $prevPageToken;
+ }
+ public function getPrevPageToken() {
+ return $this->prevPageToken;
+ }
+}
+
+class Google_CommunityPollVote extends Google_Model {
+ public $isVotevisible;
+ public $kind;
+ public $optionIds;
+ public function setIsVotevisible( $isVotevisible) {
+ $this->isVotevisible = $isVotevisible;
+ }
+ public function getIsVotevisible() {
+ return $this->isVotevisible;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOptionIds(/* array(Google_int) */ $optionIds) {
+ $this->assertIsArray($optionIds, 'Google_int', __METHOD__);
+ $this->optionIds = $optionIds;
+ }
+ public function getOptionIds() {
+ return $this->optionIds;
+ }
+}
+
+class Google_CommunityTopic extends Google_Model {
+ protected $__authorType = 'Google_OrkutAuthorResource';
+ protected $__authorDataType = '';
+ public $author;
+ public $body;
+ public $id;
+ public $isClosed;
+ public $kind;
+ public $lastUpdate;
+ public $latestMessageSnippet;
+ protected $__linksType = 'Google_OrkutLinkResource';
+ protected $__linksDataType = 'array';
+ public $links;
+ protected $__messagesType = 'Google_CommunityMessage';
+ protected $__messagesDataType = 'array';
+ public $messages;
+ public $numberOfReplies;
+ public $title;
+ public function setAuthor(Google_OrkutAuthorResource $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setBody( $body) {
+ $this->body = $body;
+ }
+ public function getBody() {
+ return $this->body;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIsClosed( $isClosed) {
+ $this->isClosed = $isClosed;
+ }
+ public function getIsClosed() {
+ return $this->isClosed;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastUpdate( $lastUpdate) {
+ $this->lastUpdate = $lastUpdate;
+ }
+ public function getLastUpdate() {
+ return $this->lastUpdate;
+ }
+ public function setLatestMessageSnippet( $latestMessageSnippet) {
+ $this->latestMessageSnippet = $latestMessageSnippet;
+ }
+ public function getLatestMessageSnippet() {
+ return $this->latestMessageSnippet;
+ }
+ public function setLinks(/* array(Google_OrkutLinkResource) */ $links) {
+ $this->assertIsArray($links, 'Google_OrkutLinkResource', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setMessages(/* array(Google_CommunityMessage) */ $messages) {
+ $this->assertIsArray($messages, 'Google_CommunityMessage', __METHOD__);
+ $this->messages = $messages;
+ }
+ public function getMessages() {
+ return $this->messages;
+ }
+ public function setNumberOfReplies( $numberOfReplies) {
+ $this->numberOfReplies = $numberOfReplies;
+ }
+ public function getNumberOfReplies() {
+ return $this->numberOfReplies;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_CommunityTopicList extends Google_Model {
+ public $firstPageToken;
+ protected $__itemsType = 'Google_CommunityTopic';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $lastPageToken;
+ public $nextPageToken;
+ public $prevPageToken;
+ public function setFirstPageToken( $firstPageToken) {
+ $this->firstPageToken = $firstPageToken;
+ }
+ public function getFirstPageToken() {
+ return $this->firstPageToken;
+ }
+ public function setItems(/* array(Google_CommunityTopic) */ $items) {
+ $this->assertIsArray($items, 'Google_CommunityTopic', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastPageToken( $lastPageToken) {
+ $this->lastPageToken = $lastPageToken;
+ }
+ public function getLastPageToken() {
+ return $this->lastPageToken;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPrevPageToken( $prevPageToken) {
+ $this->prevPageToken = $prevPageToken;
+ }
+ public function getPrevPageToken() {
+ return $this->prevPageToken;
+ }
+}
+
+class Google_Counters extends Google_Model {
+ protected $__itemsType = 'Google_OrkutCounterResource';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_OrkutCounterResource) */ $items) {
+ $this->assertIsArray($items, 'Google_OrkutCounterResource', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_OrkutActivityobjectsResource extends Google_Model {
+ protected $__communityType = 'Google_Community';
+ protected $__communityDataType = '';
+ public $community;
+ public $content;
+ public $displayName;
+ public $id;
+ protected $__linksType = 'Google_OrkutLinkResource';
+ protected $__linksDataType = 'array';
+ public $links;
+ public $objectType;
+ protected $__personType = 'Google_OrkutActivitypersonResource';
+ protected $__personDataType = '';
+ public $person;
+ public function setCommunity(Google_Community $community) {
+ $this->community = $community;
+ }
+ public function getCommunity() {
+ return $this->community;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setLinks(/* array(Google_OrkutLinkResource) */ $links) {
+ $this->assertIsArray($links, 'Google_OrkutLinkResource', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setPerson(Google_OrkutActivitypersonResource $person) {
+ $this->person = $person;
+ }
+ public function getPerson() {
+ return $this->person;
+ }
+}
+
+class Google_OrkutActivitypersonResource extends Google_Model {
+ public $birthday;
+ public $gender;
+ public $id;
+ protected $__imageType = 'Google_OrkutActivitypersonResourceImage';
+ protected $__imageDataType = '';
+ public $image;
+ protected $__nameType = 'Google_OrkutActivitypersonResourceName';
+ protected $__nameDataType = '';
+ public $name;
+ public $url;
+ public function setBirthday( $birthday) {
+ $this->birthday = $birthday;
+ }
+ public function getBirthday() {
+ return $this->birthday;
+ }
+ public function setGender( $gender) {
+ $this->gender = $gender;
+ }
+ public function getGender() {
+ return $this->gender;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_OrkutActivitypersonResourceImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setName(Google_OrkutActivitypersonResourceName $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_OrkutActivitypersonResourceImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_OrkutActivitypersonResourceName extends Google_Model {
+ public $familyName;
+ public $givenName;
+ public function setFamilyName( $familyName) {
+ $this->familyName = $familyName;
+ }
+ public function getFamilyName() {
+ return $this->familyName;
+ }
+ public function setGivenName( $givenName) {
+ $this->givenName = $givenName;
+ }
+ public function getGivenName() {
+ return $this->givenName;
+ }
+}
+
+class Google_OrkutAuthorResource extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_OrkutAuthorResourceImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_OrkutAuthorResourceImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_OrkutAuthorResourceImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_OrkutCommunitypolloptionResource extends Google_Model {
+ public $description;
+ protected $__imageType = 'Google_OrkutCommunitypolloptionResourceImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $numberOfVotes;
+ public $optionId;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setImage(Google_OrkutCommunitypolloptionResourceImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setNumberOfVotes( $numberOfVotes) {
+ $this->numberOfVotes = $numberOfVotes;
+ }
+ public function getNumberOfVotes() {
+ return $this->numberOfVotes;
+ }
+ public function setOptionId( $optionId) {
+ $this->optionId = $optionId;
+ }
+ public function getOptionId() {
+ return $this->optionId;
+ }
+}
+
+class Google_OrkutCommunitypolloptionResourceImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_OrkutCounterResource extends Google_Model {
+ protected $__linkType = 'Google_OrkutLinkResource';
+ protected $__linkDataType = '';
+ public $link;
+ public $name;
+ public $total;
+ public function setLink(Google_OrkutLinkResource $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setTotal( $total) {
+ $this->total = $total;
+ }
+ public function getTotal() {
+ return $this->total;
+ }
+}
+
+class Google_OrkutLinkResource extends Google_Model {
+ public $href;
+ public $rel;
+ public $title;
+ public $type;
+ public function setHref( $href) {
+ $this->href = $href;
+ }
+ public function getHref() {
+ return $this->href;
+ }
+ public function setRel( $rel) {
+ $this->rel = $rel;
+ }
+ public function getRel() {
+ return $this->rel;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Visibility extends Google_Model {
+ public $kind;
+ protected $__linksType = 'Google_OrkutLinkResource';
+ protected $__linksDataType = 'array';
+ public $links;
+ public $visibility;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLinks(/* array(Google_OrkutLinkResource) */ $links) {
+ $this->assertIsArray($links, 'Google_OrkutLinkResource', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setVisibility( $visibility) {
+ $this->visibility = $visibility;
+ }
+ public function getVisibility() {
+ return $this->visibility;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PagespeedonlineService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PagespeedonlineService.php
new file mode 100644
index 0000000..0390cec
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PagespeedonlineService.php
@@ -0,0 +1,516 @@
+
+ * $pagespeedonlineService = new Google_PagespeedonlineService(...);
+ * $pagespeedapi = $pagespeedonlineService->pagespeedapi;
+ *
+ */
+ class Google_PagespeedapiServiceResource extends Google_ServiceResource {
+
+ /**
+ * Runs Page Speed analysis on the page at the specified URL, and returns a Page Speed score, a list
+ * of suggestions to make that page faster, and other information. (pagespeedapi.runpagespeed)
+ *
+ * @param string $url The URL to fetch and analyze
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string locale The locale used to localize formatted results
+ * @opt_param string rule A Page Speed rule to run; if none are given, all rules are run
+ * @opt_param bool screenshot Indicates if binary data containing a screenshot should be included
+ * @opt_param string strategy The analysis strategy to use
+ * @return Google_Result
+ */
+ public function runpagespeed($url, $optParams = array()) {
+ $params = array('url' => $url);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('runpagespeed', array($params));
+ if ($this->useObjects()) {
+ return new Google_Result($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Pagespeedonline (v1).
+ *
+ *
+ * Lets you analyze the performance of a web page and get tailored suggestions to make that page faster.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_PagespeedonlineService extends Google_Service {
+ public $pagespeedapi;
+ /**
+ * Constructs the internal representation of the Pagespeedonline service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'pagespeedonline/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'pagespeedonline';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->pagespeedapi = new Google_PagespeedapiServiceResource($this, $this->serviceName, 'pagespeedapi', json_decode('{"methods": {"runpagespeed": {"id": "pagespeedonline.pagespeedapi.runpagespeed", "path": "runPagespeed", "httpMethod": "GET", "parameters": {"locale": {"type": "string", "location": "query"}, "rule": {"type": "string", "repeated": true, "location": "query"}, "screenshot": {"type": "boolean", "default": "false", "location": "query"}, "strategy": {"type": "string", "enum": ["desktop", "mobile"], "location": "query"}, "url": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "Result"}}}}', true));
+
+ }
+}
+
+
+
+class Google_Result extends Google_Model {
+ protected $__formattedResultsType = 'Google_ResultFormattedResults';
+ protected $__formattedResultsDataType = '';
+ public $formattedResults;
+ public $id;
+ public $invalidRules;
+ public $kind;
+ protected $__pageStatsType = 'Google_ResultPageStats';
+ protected $__pageStatsDataType = '';
+ public $pageStats;
+ public $responseCode;
+ public $score;
+ protected $__screenshotType = 'Google_ResultScreenshot';
+ protected $__screenshotDataType = '';
+ public $screenshot;
+ public $title;
+ protected $__versionType = 'Google_ResultVersion';
+ protected $__versionDataType = '';
+ public $version;
+ public function setFormattedResults(Google_ResultFormattedResults $formattedResults) {
+ $this->formattedResults = $formattedResults;
+ }
+ public function getFormattedResults() {
+ return $this->formattedResults;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInvalidRules(/* array(Google_string) */ $invalidRules) {
+ $this->assertIsArray($invalidRules, 'Google_string', __METHOD__);
+ $this->invalidRules = $invalidRules;
+ }
+ public function getInvalidRules() {
+ return $this->invalidRules;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPageStats(Google_ResultPageStats $pageStats) {
+ $this->pageStats = $pageStats;
+ }
+ public function getPageStats() {
+ return $this->pageStats;
+ }
+ public function setResponseCode( $responseCode) {
+ $this->responseCode = $responseCode;
+ }
+ public function getResponseCode() {
+ return $this->responseCode;
+ }
+ public function setScore( $score) {
+ $this->score = $score;
+ }
+ public function getScore() {
+ return $this->score;
+ }
+ public function setScreenshot(Google_ResultScreenshot $screenshot) {
+ $this->screenshot = $screenshot;
+ }
+ public function getScreenshot() {
+ return $this->screenshot;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setVersion(Google_ResultVersion $version) {
+ $this->version = $version;
+ }
+ public function getVersion() {
+ return $this->version;
+ }
+}
+
+class Google_ResultFormattedResults extends Google_Model {
+ public $locale;
+ protected $__ruleResultsType = 'Google_ResultFormattedResultsRuleResultsElement';
+ protected $__ruleResultsDataType = 'map';
+ public $ruleResults;
+ public function setLocale( $locale) {
+ $this->locale = $locale;
+ }
+ public function getLocale() {
+ return $this->locale;
+ }
+ public function setRuleResults(Google_ResultFormattedResultsRuleResultsElement $ruleResults) {
+ $this->ruleResults = $ruleResults;
+ }
+ public function getRuleResults() {
+ return $this->ruleResults;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElement extends Google_Model {
+ public $localizedRuleName;
+ public $ruleImpact;
+ public $ruleScore;
+ protected $__urlBlocksType = 'Google_ResultFormattedResultsRuleResultsElementUrlBlocks';
+ protected $__urlBlocksDataType = 'array';
+ public $urlBlocks;
+ public function setLocalizedRuleName( $localizedRuleName) {
+ $this->localizedRuleName = $localizedRuleName;
+ }
+ public function getLocalizedRuleName() {
+ return $this->localizedRuleName;
+ }
+ public function setRuleImpact( $ruleImpact) {
+ $this->ruleImpact = $ruleImpact;
+ }
+ public function getRuleImpact() {
+ return $this->ruleImpact;
+ }
+ public function setRuleScore( $ruleScore) {
+ $this->ruleScore = $ruleScore;
+ }
+ public function getRuleScore() {
+ return $this->ruleScore;
+ }
+ public function setUrlBlocks(/* array(Google_ResultFormattedResultsRuleResultsElementUrlBlocks) */ $urlBlocks) {
+ $this->assertIsArray($urlBlocks, 'Google_ResultFormattedResultsRuleResultsElementUrlBlocks', __METHOD__);
+ $this->urlBlocks = $urlBlocks;
+ }
+ public function getUrlBlocks() {
+ return $this->urlBlocks;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElementUrlBlocks extends Google_Model {
+ protected $__headerType = 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksHeader';
+ protected $__headerDataType = '';
+ public $header;
+ protected $__urlsType = 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrls';
+ protected $__urlsDataType = 'array';
+ public $urls;
+ public function setHeader(Google_ResultFormattedResultsRuleResultsElementUrlBlocksHeader $header) {
+ $this->header = $header;
+ }
+ public function getHeader() {
+ return $this->header;
+ }
+ public function setUrls(/* array(Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrls) */ $urls) {
+ $this->assertIsArray($urls, 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrls', __METHOD__);
+ $this->urls = $urls;
+ }
+ public function getUrls() {
+ return $this->urls;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElementUrlBlocksHeader extends Google_Model {
+ protected $__argsType = 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksHeaderArgs';
+ protected $__argsDataType = 'array';
+ public $args;
+ public $format;
+ public function setArgs(/* array(Google_ResultFormattedResultsRuleResultsElementUrlBlocksHeaderArgs) */ $args) {
+ $this->assertIsArray($args, 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksHeaderArgs', __METHOD__);
+ $this->args = $args;
+ }
+ public function getArgs() {
+ return $this->args;
+ }
+ public function setFormat( $format) {
+ $this->format = $format;
+ }
+ public function getFormat() {
+ return $this->format;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElementUrlBlocksHeaderArgs extends Google_Model {
+ public $type;
+ public $value;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrls extends Google_Model {
+ protected $__detailsType = 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetails';
+ protected $__detailsDataType = 'array';
+ public $details;
+ protected $__resultType = 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResult';
+ protected $__resultDataType = '';
+ public $result;
+ public function setDetails(/* array(Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetails) */ $details) {
+ $this->assertIsArray($details, 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetails', __METHOD__);
+ $this->details = $details;
+ }
+ public function getDetails() {
+ return $this->details;
+ }
+ public function setResult(Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResult $result) {
+ $this->result = $result;
+ }
+ public function getResult() {
+ return $this->result;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetails extends Google_Model {
+ protected $__argsType = 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetailsArgs';
+ protected $__argsDataType = 'array';
+ public $args;
+ public $format;
+ public function setArgs(/* array(Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetailsArgs) */ $args) {
+ $this->assertIsArray($args, 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetailsArgs', __METHOD__);
+ $this->args = $args;
+ }
+ public function getArgs() {
+ return $this->args;
+ }
+ public function setFormat( $format) {
+ $this->format = $format;
+ }
+ public function getFormat() {
+ return $this->format;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsDetailsArgs extends Google_Model {
+ public $type;
+ public $value;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResult extends Google_Model {
+ protected $__argsType = 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResultArgs';
+ protected $__argsDataType = 'array';
+ public $args;
+ public $format;
+ public function setArgs(/* array(Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResultArgs) */ $args) {
+ $this->assertIsArray($args, 'Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResultArgs', __METHOD__);
+ $this->args = $args;
+ }
+ public function getArgs() {
+ return $this->args;
+ }
+ public function setFormat( $format) {
+ $this->format = $format;
+ }
+ public function getFormat() {
+ return $this->format;
+ }
+}
+
+class Google_ResultFormattedResultsRuleResultsElementUrlBlocksUrlsResultArgs extends Google_Model {
+ public $type;
+ public $value;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_ResultPageStats extends Google_Model {
+ public $cssResponseBytes;
+ public $flashResponseBytes;
+ public $htmlResponseBytes;
+ public $imageResponseBytes;
+ public $javascriptResponseBytes;
+ public $numberCssResources;
+ public $numberHosts;
+ public $numberJsResources;
+ public $numberResources;
+ public $numberStaticResources;
+ public $otherResponseBytes;
+ public $textResponseBytes;
+ public $totalRequestBytes;
+ public function setCssResponseBytes( $cssResponseBytes) {
+ $this->cssResponseBytes = $cssResponseBytes;
+ }
+ public function getCssResponseBytes() {
+ return $this->cssResponseBytes;
+ }
+ public function setFlashResponseBytes( $flashResponseBytes) {
+ $this->flashResponseBytes = $flashResponseBytes;
+ }
+ public function getFlashResponseBytes() {
+ return $this->flashResponseBytes;
+ }
+ public function setHtmlResponseBytes( $htmlResponseBytes) {
+ $this->htmlResponseBytes = $htmlResponseBytes;
+ }
+ public function getHtmlResponseBytes() {
+ return $this->htmlResponseBytes;
+ }
+ public function setImageResponseBytes( $imageResponseBytes) {
+ $this->imageResponseBytes = $imageResponseBytes;
+ }
+ public function getImageResponseBytes() {
+ return $this->imageResponseBytes;
+ }
+ public function setJavascriptResponseBytes( $javascriptResponseBytes) {
+ $this->javascriptResponseBytes = $javascriptResponseBytes;
+ }
+ public function getJavascriptResponseBytes() {
+ return $this->javascriptResponseBytes;
+ }
+ public function setNumberCssResources( $numberCssResources) {
+ $this->numberCssResources = $numberCssResources;
+ }
+ public function getNumberCssResources() {
+ return $this->numberCssResources;
+ }
+ public function setNumberHosts( $numberHosts) {
+ $this->numberHosts = $numberHosts;
+ }
+ public function getNumberHosts() {
+ return $this->numberHosts;
+ }
+ public function setNumberJsResources( $numberJsResources) {
+ $this->numberJsResources = $numberJsResources;
+ }
+ public function getNumberJsResources() {
+ return $this->numberJsResources;
+ }
+ public function setNumberResources( $numberResources) {
+ $this->numberResources = $numberResources;
+ }
+ public function getNumberResources() {
+ return $this->numberResources;
+ }
+ public function setNumberStaticResources( $numberStaticResources) {
+ $this->numberStaticResources = $numberStaticResources;
+ }
+ public function getNumberStaticResources() {
+ return $this->numberStaticResources;
+ }
+ public function setOtherResponseBytes( $otherResponseBytes) {
+ $this->otherResponseBytes = $otherResponseBytes;
+ }
+ public function getOtherResponseBytes() {
+ return $this->otherResponseBytes;
+ }
+ public function setTextResponseBytes( $textResponseBytes) {
+ $this->textResponseBytes = $textResponseBytes;
+ }
+ public function getTextResponseBytes() {
+ return $this->textResponseBytes;
+ }
+ public function setTotalRequestBytes( $totalRequestBytes) {
+ $this->totalRequestBytes = $totalRequestBytes;
+ }
+ public function getTotalRequestBytes() {
+ return $this->totalRequestBytes;
+ }
+}
+
+class Google_ResultScreenshot extends Google_Model {
+ public $data;
+ public $height;
+ public $mime_type;
+ public $width;
+ public function setData( $data) {
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setMime_type( $mime_type) {
+ $this->mime_type = $mime_type;
+ }
+ public function getMime_type() {
+ return $this->mime_type;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ResultVersion extends Google_Model {
+ public $major;
+ public $minor;
+ public function setMajor( $major) {
+ $this->major = $major;
+ }
+ public function getMajor() {
+ return $this->major;
+ }
+ public function setMinor( $minor) {
+ $this->minor = $minor;
+ }
+ public function getMinor() {
+ return $this->minor;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusDomainsService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusDomainsService.php
new file mode 100644
index 0000000..ba8abe7
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusDomainsService.php
@@ -0,0 +1,2508 @@
+
+ * $plusService = new Google_PlusService(...);
+ * $activities = $plusService->activities;
+ *
+ */
+ class Google_ActivitiesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get an activity. (activities.get)
+ *
+ * @param string $activityId The ID of the activity to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_Activity
+ */
+ public function get($activityId, $optParams = array()) {
+ $params = array('activityId' => $activityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Activity($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create a new activity for the authenticated user. (activities.insert)
+ *
+ * @param string $userId The ID of the user to create the activity on behalf of. Its value should be "me", to indicate the authenticated user.
+ * @param Google_Activity $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool preview If "true", extract the potential media attachments for a url. The response will include all possible attachments for a url, including video, photos, and articles based on the content of the page.
+ * @return Google_Activity
+ */
+ public function insert($userId, Google_Activity $postBody, $optParams = array()) {
+ $params = array('userId' => $userId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Activity($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the activities in the specified collection for a particular user.
+ * (activities.list)
+ *
+ * @param string $userId The ID of the user to get activities for. The special value "me" can be used to indicate the authenticated user.
+ * @param string $collection The collection of activities to list.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_ActivityFeed
+ */
+ public function listActivities($userId, $collection, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ActivityFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "audiences" collection of methods.
+ * Typical usage is:
+ *
+ * $plusService = new Google_PlusService(...);
+ * $audiences = $plusService->audiences;
+ *
+ */
+ class Google_AudiencesServiceResource extends Google_ServiceResource {
+
+ /**
+ * List all of the audiences to which a user can share. (audiences.list)
+ *
+ * @param string $userId The ID of the user to get audiences for. The special value "me" can be used to indicate the authenticated user.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of circles to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_AudiencesFeed
+ */
+ public function listAudiences($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_AudiencesFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "circles" collection of methods.
+ * Typical usage is:
+ *
+ * $plusService = new Google_PlusService(...);
+ * $circles = $plusService->circles;
+ *
+ */
+ class Google_CirclesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Add a person to a circle. Google+ limits certain circle operations, including
+ * the number of circle adds. Learn More. (circles.addPeople)
+ *
+ * @param string $circleId The ID of the circle to add the person to.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string email Email of the people to add to the circle. Optional, can be repeated.
+ * @opt_param string userId IDs of the people to add to the circle. Optional, can be repeated.
+ * @return Google_Circle
+ */
+ public function addPeople($circleId, $optParams = array()) {
+ $params = array('circleId' => $circleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('addPeople', array($params));
+ if ($this->useObjects()) {
+ return new Google_Circle($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Get a circle. (circles.get)
+ *
+ * @param string $circleId The ID of the circle to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_Circle
+ */
+ public function get($circleId, $optParams = array()) {
+ $params = array('circleId' => $circleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Circle($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create a new circle for the authenticated user. (circles.insert)
+ *
+ * @param string $userId The ID of the user to create the circle on behalf of. The value "me" can be used to indicate the authenticated user.
+ * @param Google_Circle $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Circle
+ */
+ public function insert($userId, Google_Circle $postBody, $optParams = array()) {
+ $params = array('userId' => $userId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Circle($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the circles for a user. (circles.list)
+ *
+ * @param string $userId The ID of the user to get circles for. The special value "me" can be used to indicate the authenticated user.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of circles to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_CircleFeed
+ */
+ public function listCircles($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CircleFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update a circle. This method supports patch semantics. (circles.patch)
+ *
+ * @param string $circleId The ID of the circle to update.
+ * @param Google_Circle $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Circle
+ */
+ public function patch($circleId, Google_Circle $postBody, $optParams = array()) {
+ $params = array('circleId' => $circleId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Circle($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Delete a circle. (circles.remove)
+ *
+ * @param string $circleId The ID of the circle to delete.
+ * @param array $optParams Optional parameters.
+ */
+ public function remove($circleId, $optParams = array()) {
+ $params = array('circleId' => $circleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('remove', array($params));
+ return $data;
+ }
+ /**
+ * Remove a person from a circle. (circles.removePeople)
+ *
+ * @param string $circleId The ID of the circle to remove the person from.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string email Email of the people to add to the circle. Optional, can be repeated.
+ * @opt_param string userId IDs of the people to remove from the circle. Optional, can be repeated.
+ */
+ public function removePeople($circleId, $optParams = array()) {
+ $params = array('circleId' => $circleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('removePeople', array($params));
+ return $data;
+ }
+ /**
+ * Update a circle. (circles.update)
+ *
+ * @param string $circleId The ID of the circle to update.
+ * @param Google_Circle $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Circle
+ */
+ public function update($circleId, Google_Circle $postBody, $optParams = array()) {
+ $params = array('circleId' => $circleId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Circle($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "comments" collection of methods.
+ * Typical usage is:
+ *
+ * $plusService = new Google_PlusService(...);
+ * $comments = $plusService->comments;
+ *
+ */
+ class Google_CommentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get a comment. (comments.get)
+ *
+ * @param string $commentId The ID of the comment to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_Comment
+ */
+ public function get($commentId, $optParams = array()) {
+ $params = array('commentId' => $commentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Create a new comment in reply to an activity. (comments.insert)
+ *
+ * @param string $activityId The ID of the activity to reply to.
+ * @param Google_Comment $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Comment
+ */
+ public function insert($activityId, Google_Comment $postBody, $optParams = array()) {
+ $params = array('activityId' => $activityId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the comments for an activity. (comments.list)
+ *
+ * @param string $activityId The ID of the activity to get comments for.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of comments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @opt_param string sortOrder The order in which to sort the list of comments.
+ * @return Google_CommentFeed
+ */
+ public function listComments($activityId, $optParams = array()) {
+ $params = array('activityId' => $activityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "media" collection of methods.
+ * Typical usage is:
+ *
+ * $plusService = new Google_PlusService(...);
+ * $media = $plusService->media;
+ *
+ */
+ class Google_MediaServiceResource extends Google_ServiceResource {
+
+ /**
+ * Add a new media item to an album. The current upload size limitations are
+ * 36MB for a photo and 1GB for a video. Uploads will not count against quota if
+ * photos are less than 2048 pixels on their longest side or videos are less
+ * than 15 minutes in length. (media.insert)
+ *
+ * @param string $userId The ID of the user to create the activity on behalf of.
+ * @param string $collection
+ * @param Google_Media $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Media
+ */
+ public function insert($userId, $collection, Google_Media $postBody, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Media($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "people" collection of methods.
+ * Typical usage is:
+ *
+ * $plusService = new Google_PlusService(...);
+ * $people = $plusService->people;
+ *
+ */
+ class Google_PeopleServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get a person's profile. (people.get)
+ *
+ * @param string $userId The ID of the person to get the profile for. The special value "me" can be used to indicate the authenticated user.
+ * @param array $optParams Optional parameters.
+ * @return Google_Person
+ */
+ public function get($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Person($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the people in the specified collection. (people.list)
+ *
+ * @param string $userId Get the collection of people for the person identified. Use "me" to indicate the authenticated user.
+ * @param string $collection The collection of people to list.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string orderBy The order to return people in.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_PeopleFeed
+ */
+ public function listPeople($userId, $collection, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PeopleFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the people in the specified collection for a particular activity.
+ * (people.listByActivity)
+ *
+ * @param string $activityId The ID of the activity to get the list of people for.
+ * @param string $collection The collection of people to list.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_PeopleFeed
+ */
+ public function listByActivity($activityId, $collection, $optParams = array()) {
+ $params = array('activityId' => $activityId, 'collection' => $collection);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('listByActivity', array($params));
+ if ($this->useObjects()) {
+ return new Google_PeopleFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the people who are members of a circle. (people.listByCircle)
+ *
+ * @param string $circleId The ID of the circle to get the members of.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_PeopleFeed
+ */
+ public function listByCircle($circleId, $optParams = array()) {
+ $params = array('circleId' => $circleId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('listByCircle', array($params));
+ if ($this->useObjects()) {
+ return new Google_PeopleFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Plus (v1domains).
+ *
+ *
+ * The Google+ API enables developers to build on top of the Google+ platform.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_PlusService extends Google_Service {
+ public $activities;
+ public $audiences;
+ public $circles;
+ public $comments;
+ public $media;
+ public $people;
+ /**
+ * Constructs the internal representation of the Plus service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'plus/v1domains/';
+ $this->version = 'v1domains';
+ $this->serviceName = 'plus';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->activities = new Google_ActivitiesServiceResource($this, $this->serviceName, 'activities', json_decode('{"methods": {"get": {"id": "plus.activities.get", "path": "activities/{activityId}", "httpMethod": "GET", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Activity"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "insert": {"id": "plus.activities.insert", "path": "people/{userId}/activities", "httpMethod": "POST", "parameters": {"preview": {"type": "boolean", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Activity"}, "response": {"$ref": "Activity"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "list": {"id": "plus.activities.list", "path": "people/{userId}/activities/{collection}", "httpMethod": "GET", "parameters": {"collection": {"type": "string", "required": true, "enum": ["user"], "location": "path"}, "maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ActivityFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}}}', true));
+ $this->audiences = new Google_AudiencesServiceResource($this, $this->serviceName, 'audiences', json_decode('{"methods": {"list": {"id": "plus.audiences.list", "path": "people/{userId}/audiences", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "AudiencesFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}}}', true));
+ $this->circles = new Google_CirclesServiceResource($this, $this->serviceName, 'circles', json_decode('{"methods": {"addPeople": {"id": "plus.circles.addPeople", "path": "circles/{circleId}/people", "httpMethod": "PUT", "parameters": {"circleId": {"type": "string", "required": true, "location": "path"}, "email": {"type": "string", "repeated": true, "location": "query"}, "userId": {"type": "string", "repeated": true, "location": "query"}}, "response": {"$ref": "Circle"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "get": {"id": "plus.circles.get", "path": "circles/{circleId}", "httpMethod": "GET", "parameters": {"circleId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Circle"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "insert": {"id": "plus.circles.insert", "path": "people/{userId}/circles", "httpMethod": "POST", "parameters": {"userId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Circle"}, "response": {"$ref": "Circle"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "list": {"id": "plus.circles.list", "path": "people/{userId}/circles", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "CircleFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "patch": {"id": "plus.circles.patch", "path": "circles/{circleId}", "httpMethod": "PATCH", "parameters": {"circleId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Circle"}, "response": {"$ref": "Circle"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "remove": {"id": "plus.circles.remove", "path": "circles/{circleId}", "httpMethod": "DELETE", "parameters": {"circleId": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "removePeople": {"id": "plus.circles.removePeople", "path": "circles/{circleId}/people", "httpMethod": "DELETE", "parameters": {"circleId": {"type": "string", "required": true, "location": "path"}, "email": {"type": "string", "repeated": true, "location": "query"}, "userId": {"type": "string", "repeated": true, "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "update": {"id": "plus.circles.update", "path": "circles/{circleId}", "httpMethod": "PUT", "parameters": {"circleId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Circle"}, "response": {"$ref": "Circle"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->comments = new Google_CommentsServiceResource($this, $this->serviceName, 'comments', json_decode('{"methods": {"get": {"id": "plus.comments.get", "path": "comments/{commentId}", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "insert": {"id": "plus.comments.insert", "path": "activities/{activityId}/comments", "httpMethod": "POST", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Comment"}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "list": {"id": "plus.comments.list", "path": "activities/{activityId}/comments", "httpMethod": "GET", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "0", "maximum": "500", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "sortOrder": {"type": "string", "default": "ascending", "enum": ["ascending", "descending"], "location": "query"}}, "response": {"$ref": "CommentFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->media = new Google_MediaServiceResource($this, $this->serviceName, 'media', json_decode('{"methods": {"insert": {"id": "plus.media.insert", "path": "people/{userId}/media/{collection}", "httpMethod": "POST", "parameters": {"collection": {"type": "string", "required": true, "enum": ["cloud"], "location": "path"}, "userId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Media"}, "response": {"$ref": "Media"}, "scopes": ["https://www.googleapis.com/auth/plus.login"], "supportsMediaUpload": true, "mediaUpload": {"accept": ["image/*", "video/*"], "protocols": {"simple": {"multipart": true, "path": "/upload/plus/v1domains/people/{userId}/media/{collection}"}, "resumable": {"multipart": true, "path": "/resumable/upload/plus/v1domains/people/{userId}/media/{collection}"}}}}}}', true));
+ $this->people = new Google_PeopleServiceResource($this, $this->serviceName, 'people', json_decode('{"methods": {"get": {"id": "plus.people.get", "path": "people/{userId}", "httpMethod": "GET", "parameters": {"userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Person"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me", "https://www.googleapis.com/auth/plus.profiles.read"]}, "list": {"id": "plus.people.list", "path": "people/{userId}/people/{collection}", "httpMethod": "GET", "parameters": {"collection": {"type": "string", "required": true, "enum": ["circled"], "location": "path"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "orderBy": {"type": "string", "enum": ["alphabetical", "best"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "PeopleFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "listByActivity": {"id": "plus.people.listByActivity", "path": "activities/{activityId}/people/{collection}", "httpMethod": "GET", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}, "collection": {"type": "string", "required": true, "enum": ["plusoners", "resharers", "sharedto"], "location": "path"}, "maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "PeopleFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "listByCircle": {"id": "plus.people.listByCircle", "path": "circles/{circleId}/people", "httpMethod": "GET", "parameters": {"circleId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "PeopleFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Acl extends Google_Model {
+ public $description;
+ public $domainRestricted;
+ protected $__itemsType = 'Google_PlusAclentryResource';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDomainRestricted( $domainRestricted) {
+ $this->domainRestricted = $domainRestricted;
+ }
+ public function getDomainRestricted() {
+ return $this->domainRestricted;
+ }
+ public function setItems(/* array(Google_PlusAclentryResource) */ $items) {
+ $this->assertIsArray($items, 'Google_PlusAclentryResource', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Activity extends Google_Model {
+ protected $__accessType = 'Google_Acl';
+ protected $__accessDataType = '';
+ public $access;
+ protected $__actorType = 'Google_ActivityActor';
+ protected $__actorDataType = '';
+ public $actor;
+ public $address;
+ public $annotation;
+ public $crosspostSource;
+ public $etag;
+ public $geocode;
+ public $id;
+ public $kind;
+ protected $__locationType = 'Google_Place';
+ protected $__locationDataType = '';
+ public $location;
+ protected $__objectType = 'Google_ActivityObject';
+ protected $__objectDataType = '';
+ public $object;
+ public $placeId;
+ public $placeName;
+ protected $__providerType = 'Google_ActivityProvider';
+ protected $__providerDataType = '';
+ public $provider;
+ public $published;
+ public $radius;
+ public $title;
+ public $updated;
+ public $url;
+ public $verb;
+ public function setAccess(Google_Acl $access) {
+ $this->access = $access;
+ }
+ public function getAccess() {
+ return $this->access;
+ }
+ public function setActor(Google_ActivityActor $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setAddress( $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setAnnotation( $annotation) {
+ $this->annotation = $annotation;
+ }
+ public function getAnnotation() {
+ return $this->annotation;
+ }
+ public function setCrosspostSource( $crosspostSource) {
+ $this->crosspostSource = $crosspostSource;
+ }
+ public function getCrosspostSource() {
+ return $this->crosspostSource;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setGeocode( $geocode) {
+ $this->geocode = $geocode;
+ }
+ public function getGeocode() {
+ return $this->geocode;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocation(Google_Place $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setObject(Google_ActivityObject $object) {
+ $this->object = $object;
+ }
+ public function getObject() {
+ return $this->object;
+ }
+ public function setPlaceId( $placeId) {
+ $this->placeId = $placeId;
+ }
+ public function getPlaceId() {
+ return $this->placeId;
+ }
+ public function setPlaceName( $placeName) {
+ $this->placeName = $placeName;
+ }
+ public function getPlaceName() {
+ return $this->placeName;
+ }
+ public function setProvider(Google_ActivityProvider $provider) {
+ $this->provider = $provider;
+ }
+ public function getProvider() {
+ return $this->provider;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setRadius( $radius) {
+ $this->radius = $radius;
+ }
+ public function getRadius() {
+ return $this->radius;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setVerb( $verb) {
+ $this->verb = $verb;
+ }
+ public function getVerb() {
+ return $this->verb;
+ }
+}
+
+class Google_ActivityActor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_ActivityActorImage';
+ protected $__imageDataType = '';
+ public $image;
+ protected $__nameType = 'Google_ActivityActorName';
+ protected $__nameDataType = '';
+ public $name;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_ActivityActorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setName(Google_ActivityActorName $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityActorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityActorName extends Google_Model {
+ public $familyName;
+ public $givenName;
+ public function setFamilyName( $familyName) {
+ $this->familyName = $familyName;
+ }
+ public function getFamilyName() {
+ return $this->familyName;
+ }
+ public function setGivenName( $givenName) {
+ $this->givenName = $givenName;
+ }
+ public function getGivenName() {
+ return $this->givenName;
+ }
+}
+
+class Google_ActivityFeed extends Google_Model {
+ public $etag;
+ public $id;
+ protected $__itemsType = 'Google_Activity';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public $title;
+ public $updated;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Activity) */ $items) {
+ $this->assertIsArray($items, 'Google_Activity', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_ActivityObject extends Google_Model {
+ protected $__actorType = 'Google_ActivityObjectActor';
+ protected $__actorDataType = '';
+ public $actor;
+ protected $__attachmentsType = 'Google_ActivityObjectAttachments';
+ protected $__attachmentsDataType = 'array';
+ public $attachments;
+ public $content;
+ public $id;
+ public $objectType;
+ public $originalContent;
+ protected $__plusonersType = 'Google_ActivityObjectPlusoners';
+ protected $__plusonersDataType = '';
+ public $plusoners;
+ protected $__repliesType = 'Google_ActivityObjectReplies';
+ protected $__repliesDataType = '';
+ public $replies;
+ protected $__resharersType = 'Google_ActivityObjectResharers';
+ protected $__resharersDataType = '';
+ public $resharers;
+ protected $__statusForViewerType = 'Google_ActivityObjectStatusForViewer';
+ protected $__statusForViewerDataType = '';
+ public $statusForViewer;
+ public $url;
+ public function setActor(Google_ActivityObjectActor $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setAttachments(/* array(Google_ActivityObjectAttachments) */ $attachments) {
+ $this->assertIsArray($attachments, 'Google_ActivityObjectAttachments', __METHOD__);
+ $this->attachments = $attachments;
+ }
+ public function getAttachments() {
+ return $this->attachments;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setOriginalContent( $originalContent) {
+ $this->originalContent = $originalContent;
+ }
+ public function getOriginalContent() {
+ return $this->originalContent;
+ }
+ public function setPlusoners(Google_ActivityObjectPlusoners $plusoners) {
+ $this->plusoners = $plusoners;
+ }
+ public function getPlusoners() {
+ return $this->plusoners;
+ }
+ public function setReplies(Google_ActivityObjectReplies $replies) {
+ $this->replies = $replies;
+ }
+ public function getReplies() {
+ return $this->replies;
+ }
+ public function setResharers(Google_ActivityObjectResharers $resharers) {
+ $this->resharers = $resharers;
+ }
+ public function getResharers() {
+ return $this->resharers;
+ }
+ public function setStatusForViewer(Google_ActivityObjectStatusForViewer $statusForViewer) {
+ $this->statusForViewer = $statusForViewer;
+ }
+ public function getStatusForViewer() {
+ return $this->statusForViewer;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectActor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_ActivityObjectActorImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_ActivityObjectActorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectActorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachments extends Google_Model {
+ public $content;
+ public $displayName;
+ protected $__embedType = 'Google_ActivityObjectAttachmentsEmbed';
+ protected $__embedDataType = '';
+ public $embed;
+ protected $__fullImageType = 'Google_ActivityObjectAttachmentsFullImage';
+ protected $__fullImageDataType = '';
+ public $fullImage;
+ public $id;
+ protected $__imageType = 'Google_ActivityObjectAttachmentsImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $objectType;
+ protected $__previewThumbnailsType = 'Google_ActivityObjectAttachmentsPreviewThumbnails';
+ protected $__previewThumbnailsDataType = 'array';
+ public $previewThumbnails;
+ protected $__thumbnailsType = 'Google_ActivityObjectAttachmentsThumbnails';
+ protected $__thumbnailsDataType = 'array';
+ public $thumbnails;
+ public $url;
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEmbed(Google_ActivityObjectAttachmentsEmbed $embed) {
+ $this->embed = $embed;
+ }
+ public function getEmbed() {
+ return $this->embed;
+ }
+ public function setFullImage(Google_ActivityObjectAttachmentsFullImage $fullImage) {
+ $this->fullImage = $fullImage;
+ }
+ public function getFullImage() {
+ return $this->fullImage;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_ActivityObjectAttachmentsImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setPreviewThumbnails(/* array(Google_ActivityObjectAttachmentsPreviewThumbnails) */ $previewThumbnails) {
+ $this->assertIsArray($previewThumbnails, 'Google_ActivityObjectAttachmentsPreviewThumbnails', __METHOD__);
+ $this->previewThumbnails = $previewThumbnails;
+ }
+ public function getPreviewThumbnails() {
+ return $this->previewThumbnails;
+ }
+ public function setThumbnails(/* array(Google_ActivityObjectAttachmentsThumbnails) */ $thumbnails) {
+ $this->assertIsArray($thumbnails, 'Google_ActivityObjectAttachmentsThumbnails', __METHOD__);
+ $this->thumbnails = $thumbnails;
+ }
+ public function getThumbnails() {
+ return $this->thumbnails;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachmentsEmbed extends Google_Model {
+ public $type;
+ public $url;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachmentsFullImage extends Google_Model {
+ public $height;
+ public $type;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ActivityObjectAttachmentsImage extends Google_Model {
+ public $height;
+ public $type;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ActivityObjectAttachmentsPreviewThumbnails extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachmentsThumbnails extends Google_Model {
+ public $description;
+ protected $__imageType = 'Google_ActivityObjectAttachmentsThumbnailsImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setImage(Google_ActivityObjectAttachmentsThumbnailsImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachmentsThumbnailsImage extends Google_Model {
+ public $height;
+ public $type;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ActivityObjectPlusoners extends Google_Model {
+ public $selfLink;
+ public $totalItems;
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ActivityObjectReplies extends Google_Model {
+ public $selfLink;
+ public $totalItems;
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ActivityObjectResharers extends Google_Model {
+ public $selfLink;
+ public $totalItems;
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ActivityObjectStatusForViewer extends Google_Model {
+ public $canComment;
+ public $canPlusone;
+ public $isPlusOned;
+ public $resharingDisabled;
+ public function setCanComment( $canComment) {
+ $this->canComment = $canComment;
+ }
+ public function getCanComment() {
+ return $this->canComment;
+ }
+ public function setCanPlusone( $canPlusone) {
+ $this->canPlusone = $canPlusone;
+ }
+ public function getCanPlusone() {
+ return $this->canPlusone;
+ }
+ public function setIsPlusOned( $isPlusOned) {
+ $this->isPlusOned = $isPlusOned;
+ }
+ public function getIsPlusOned() {
+ return $this->isPlusOned;
+ }
+ public function setResharingDisabled( $resharingDisabled) {
+ $this->resharingDisabled = $resharingDisabled;
+ }
+ public function getResharingDisabled() {
+ return $this->resharingDisabled;
+ }
+}
+
+class Google_ActivityProvider extends Google_Model {
+ public $title;
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_Audience extends Google_Model {
+ public $etag;
+ protected $__itemType = 'Google_PlusAclentryResource';
+ protected $__itemDataType = '';
+ public $item;
+ public $kind;
+ public $visibility;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItem(Google_PlusAclentryResource $item) {
+ $this->item = $item;
+ }
+ public function getItem() {
+ return $this->item;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setVisibility( $visibility) {
+ $this->visibility = $visibility;
+ }
+ public function getVisibility() {
+ return $this->visibility;
+ }
+}
+
+class Google_AudiencesFeed extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Audience';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Audience) */ $items) {
+ $this->assertIsArray($items, 'Google_Audience', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Circle extends Google_Model {
+ public $description;
+ public $displayName;
+ public $etag;
+ public $id;
+ public $kind;
+ protected $__peopleType = 'Google_CirclePeople';
+ protected $__peopleDataType = '';
+ public $people;
+ public $selfLink;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPeople(Google_CirclePeople $people) {
+ $this->people = $people;
+ }
+ public function getPeople() {
+ return $this->people;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_CircleFeed extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Circle';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public $title;
+ public $totalItems;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Circle) */ $items) {
+ $this->assertIsArray($items, 'Google_Circle', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_CirclePeople extends Google_Model {
+ public $totalItems;
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Comment extends Google_Model {
+ protected $__actorType = 'Google_CommentActor';
+ protected $__actorDataType = '';
+ public $actor;
+ public $etag;
+ public $id;
+ protected $__inReplyToType = 'Google_CommentInReplyTo';
+ protected $__inReplyToDataType = 'array';
+ public $inReplyTo;
+ public $kind;
+ protected $__objectType = 'Google_CommentObject';
+ protected $__objectDataType = '';
+ public $object;
+ protected $__plusonersType = 'Google_CommentPlusoners';
+ protected $__plusonersDataType = '';
+ public $plusoners;
+ public $published;
+ public $selfLink;
+ public $updated;
+ public $verb;
+ public function setActor(Google_CommentActor $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInReplyTo(/* array(Google_CommentInReplyTo) */ $inReplyTo) {
+ $this->assertIsArray($inReplyTo, 'Google_CommentInReplyTo', __METHOD__);
+ $this->inReplyTo = $inReplyTo;
+ }
+ public function getInReplyTo() {
+ return $this->inReplyTo;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setObject(Google_CommentObject $object) {
+ $this->object = $object;
+ }
+ public function getObject() {
+ return $this->object;
+ }
+ public function setPlusoners(Google_CommentPlusoners $plusoners) {
+ $this->plusoners = $plusoners;
+ }
+ public function getPlusoners() {
+ return $this->plusoners;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVerb( $verb) {
+ $this->verb = $verb;
+ }
+ public function getVerb() {
+ return $this->verb;
+ }
+}
+
+class Google_CommentActor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_CommentActorImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_CommentActorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommentActorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommentFeed extends Google_Model {
+ public $etag;
+ public $id;
+ protected $__itemsType = 'Google_Comment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $title;
+ public $updated;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Comment) */ $items) {
+ $this->assertIsArray($items, 'Google_Comment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_CommentInReplyTo extends Google_Model {
+ public $id;
+ public $url;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommentObject extends Google_Model {
+ public $content;
+ public $objectType;
+ public $originalContent;
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setOriginalContent( $originalContent) {
+ $this->originalContent = $originalContent;
+ }
+ public function getOriginalContent() {
+ return $this->originalContent;
+ }
+}
+
+class Google_CommentPlusoners extends Google_Model {
+ public $totalItems;
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Media extends Google_Model {
+ protected $__authorType = 'Google_MediaAuthor';
+ protected $__authorDataType = '';
+ public $author;
+ public $displayName;
+ public $etag;
+ protected $__exifType = 'Google_MediaExif';
+ protected $__exifDataType = '';
+ public $exif;
+ public $height;
+ public $id;
+ public $kind;
+ public $mediaUrl;
+ public $published;
+ public $sizeBytes;
+ protected $__streamsType = 'Google_Videostream';
+ protected $__streamsDataType = 'array';
+ public $streams;
+ public $summary;
+ public $updated;
+ public $url;
+ public $videoDuration;
+ public $videoStatus;
+ public $width;
+ public function setAuthor(Google_MediaAuthor $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setExif(Google_MediaExif $exif) {
+ $this->exif = $exif;
+ }
+ public function getExif() {
+ return $this->exif;
+ }
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMediaUrl( $mediaUrl) {
+ $this->mediaUrl = $mediaUrl;
+ }
+ public function getMediaUrl() {
+ return $this->mediaUrl;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setSizeBytes( $sizeBytes) {
+ $this->sizeBytes = $sizeBytes;
+ }
+ public function getSizeBytes() {
+ return $this->sizeBytes;
+ }
+ public function setStreams(/* array(Google_Videostream) */ $streams) {
+ $this->assertIsArray($streams, 'Google_Videostream', __METHOD__);
+ $this->streams = $streams;
+ }
+ public function getStreams() {
+ return $this->streams;
+ }
+ public function setSummary( $summary) {
+ $this->summary = $summary;
+ }
+ public function getSummary() {
+ return $this->summary;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setVideoDuration( $videoDuration) {
+ $this->videoDuration = $videoDuration;
+ }
+ public function getVideoDuration() {
+ return $this->videoDuration;
+ }
+ public function setVideoStatus( $videoStatus) {
+ $this->videoStatus = $videoStatus;
+ }
+ public function getVideoStatus() {
+ return $this->videoStatus;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_MediaAuthor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_MediaAuthorImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_MediaAuthorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_MediaAuthorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_MediaExif extends Google_Model {
+ public $time;
+ public function setTime( $time) {
+ $this->time = $time;
+ }
+ public function getTime() {
+ return $this->time;
+ }
+}
+
+class Google_PeopleFeed extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Person';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public $title;
+ public $totalItems;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Person) */ $items) {
+ $this->assertIsArray($items, 'Google_Person', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Person extends Google_Model {
+ public $aboutMe;
+ public $birthday;
+ public $braggingRights;
+ public $circledByCount;
+ protected $__coverType = 'Google_PersonCover';
+ protected $__coverDataType = '';
+ public $cover;
+ public $currentLocation;
+ public $displayName;
+ public $etag;
+ public $gender;
+ public $id;
+ protected $__imageType = 'Google_PersonImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $isPlusUser;
+ public $kind;
+ protected $__nameType = 'Google_PersonName';
+ protected $__nameDataType = '';
+ public $name;
+ public $nickname;
+ public $objectType;
+ protected $__organizationsType = 'Google_PersonOrganizations';
+ protected $__organizationsDataType = 'array';
+ public $organizations;
+ protected $__placesLivedType = 'Google_PersonPlacesLived';
+ protected $__placesLivedDataType = 'array';
+ public $placesLived;
+ public $plusOneCount;
+ public $relationshipStatus;
+ public $tagline;
+ public $url;
+ protected $__urlsType = 'Google_PersonUrls';
+ protected $__urlsDataType = 'array';
+ public $urls;
+ public $verified;
+ public function setAboutMe( $aboutMe) {
+ $this->aboutMe = $aboutMe;
+ }
+ public function getAboutMe() {
+ return $this->aboutMe;
+ }
+ public function setBirthday( $birthday) {
+ $this->birthday = $birthday;
+ }
+ public function getBirthday() {
+ return $this->birthday;
+ }
+ public function setBraggingRights( $braggingRights) {
+ $this->braggingRights = $braggingRights;
+ }
+ public function getBraggingRights() {
+ return $this->braggingRights;
+ }
+ public function setCircledByCount( $circledByCount) {
+ $this->circledByCount = $circledByCount;
+ }
+ public function getCircledByCount() {
+ return $this->circledByCount;
+ }
+ public function setCover(Google_PersonCover $cover) {
+ $this->cover = $cover;
+ }
+ public function getCover() {
+ return $this->cover;
+ }
+ public function setCurrentLocation( $currentLocation) {
+ $this->currentLocation = $currentLocation;
+ }
+ public function getCurrentLocation() {
+ return $this->currentLocation;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setGender( $gender) {
+ $this->gender = $gender;
+ }
+ public function getGender() {
+ return $this->gender;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_PersonImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setIsPlusUser( $isPlusUser) {
+ $this->isPlusUser = $isPlusUser;
+ }
+ public function getIsPlusUser() {
+ return $this->isPlusUser;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setName(Google_PersonName $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNickname( $nickname) {
+ $this->nickname = $nickname;
+ }
+ public function getNickname() {
+ return $this->nickname;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setOrganizations(/* array(Google_PersonOrganizations) */ $organizations) {
+ $this->assertIsArray($organizations, 'Google_PersonOrganizations', __METHOD__);
+ $this->organizations = $organizations;
+ }
+ public function getOrganizations() {
+ return $this->organizations;
+ }
+ public function setPlacesLived(/* array(Google_PersonPlacesLived) */ $placesLived) {
+ $this->assertIsArray($placesLived, 'Google_PersonPlacesLived', __METHOD__);
+ $this->placesLived = $placesLived;
+ }
+ public function getPlacesLived() {
+ return $this->placesLived;
+ }
+ public function setPlusOneCount( $plusOneCount) {
+ $this->plusOneCount = $plusOneCount;
+ }
+ public function getPlusOneCount() {
+ return $this->plusOneCount;
+ }
+ public function setRelationshipStatus( $relationshipStatus) {
+ $this->relationshipStatus = $relationshipStatus;
+ }
+ public function getRelationshipStatus() {
+ return $this->relationshipStatus;
+ }
+ public function setTagline( $tagline) {
+ $this->tagline = $tagline;
+ }
+ public function getTagline() {
+ return $this->tagline;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setUrls(/* array(Google_PersonUrls) */ $urls) {
+ $this->assertIsArray($urls, 'Google_PersonUrls', __METHOD__);
+ $this->urls = $urls;
+ }
+ public function getUrls() {
+ return $this->urls;
+ }
+ public function setVerified( $verified) {
+ $this->verified = $verified;
+ }
+ public function getVerified() {
+ return $this->verified;
+ }
+}
+
+class Google_PersonCover extends Google_Model {
+ protected $__coverInfoType = 'Google_PersonCoverCoverInfo';
+ protected $__coverInfoDataType = '';
+ public $coverInfo;
+ protected $__coverPhotoType = 'Google_PersonCoverCoverPhoto';
+ protected $__coverPhotoDataType = '';
+ public $coverPhoto;
+ public $layout;
+ public function setCoverInfo(Google_PersonCoverCoverInfo $coverInfo) {
+ $this->coverInfo = $coverInfo;
+ }
+ public function getCoverInfo() {
+ return $this->coverInfo;
+ }
+ public function setCoverPhoto(Google_PersonCoverCoverPhoto $coverPhoto) {
+ $this->coverPhoto = $coverPhoto;
+ }
+ public function getCoverPhoto() {
+ return $this->coverPhoto;
+ }
+ public function setLayout( $layout) {
+ $this->layout = $layout;
+ }
+ public function getLayout() {
+ return $this->layout;
+ }
+}
+
+class Google_PersonCoverCoverInfo extends Google_Model {
+ public $leftImageOffset;
+ public $topImageOffset;
+ public function setLeftImageOffset( $leftImageOffset) {
+ $this->leftImageOffset = $leftImageOffset;
+ }
+ public function getLeftImageOffset() {
+ return $this->leftImageOffset;
+ }
+ public function setTopImageOffset( $topImageOffset) {
+ $this->topImageOffset = $topImageOffset;
+ }
+ public function getTopImageOffset() {
+ return $this->topImageOffset;
+ }
+}
+
+class Google_PersonCoverCoverPhoto extends Google_Model {
+ public $height;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_PersonImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PersonName extends Google_Model {
+ public $familyName;
+ public $formatted;
+ public $givenName;
+ public $honorificPrefix;
+ public $honorificSuffix;
+ public $middleName;
+ public function setFamilyName( $familyName) {
+ $this->familyName = $familyName;
+ }
+ public function getFamilyName() {
+ return $this->familyName;
+ }
+ public function setFormatted( $formatted) {
+ $this->formatted = $formatted;
+ }
+ public function getFormatted() {
+ return $this->formatted;
+ }
+ public function setGivenName( $givenName) {
+ $this->givenName = $givenName;
+ }
+ public function getGivenName() {
+ return $this->givenName;
+ }
+ public function setHonorificPrefix( $honorificPrefix) {
+ $this->honorificPrefix = $honorificPrefix;
+ }
+ public function getHonorificPrefix() {
+ return $this->honorificPrefix;
+ }
+ public function setHonorificSuffix( $honorificSuffix) {
+ $this->honorificSuffix = $honorificSuffix;
+ }
+ public function getHonorificSuffix() {
+ return $this->honorificSuffix;
+ }
+ public function setMiddleName( $middleName) {
+ $this->middleName = $middleName;
+ }
+ public function getMiddleName() {
+ return $this->middleName;
+ }
+}
+
+class Google_PersonOrganizations extends Google_Model {
+ public $department;
+ public $description;
+ public $endDate;
+ public $location;
+ public $name;
+ public $primary;
+ public $startDate;
+ public $title;
+ public $type;
+ public function setDepartment( $department) {
+ $this->department = $department;
+ }
+ public function getDepartment() {
+ return $this->department;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEndDate( $endDate) {
+ $this->endDate = $endDate;
+ }
+ public function getEndDate() {
+ return $this->endDate;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPrimary( $primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_PersonPlacesLived extends Google_Model {
+ public $primary;
+ public $value;
+ public function setPrimary( $primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_PersonUrls extends Google_Model {
+ public $label;
+ public $type;
+ public $value;
+ public function setLabel( $label) {
+ $this->label = $label;
+ }
+ public function getLabel() {
+ return $this->label;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Place extends Google_Model {
+ protected $__addressType = 'Google_PlaceAddress';
+ protected $__addressDataType = '';
+ public $address;
+ public $displayName;
+ public $kind;
+ protected $__positionType = 'Google_PlacePosition';
+ protected $__positionDataType = '';
+ public $position;
+ public function setAddress(Google_PlaceAddress $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPosition(Google_PlacePosition $position) {
+ $this->position = $position;
+ }
+ public function getPosition() {
+ return $this->position;
+ }
+}
+
+class Google_PlaceAddress extends Google_Model {
+ public $formatted;
+ public function setFormatted( $formatted) {
+ $this->formatted = $formatted;
+ }
+ public function getFormatted() {
+ return $this->formatted;
+ }
+}
+
+class Google_PlacePosition extends Google_Model {
+ public $latitude;
+ public $longitude;
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_PlusAclentryResource extends Google_Model {
+ public $displayName;
+ public $id;
+ public $type;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_Videostream extends Google_Model {
+ public $height;
+ public $type;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusMomentsService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusMomentsService.php
new file mode 100644
index 0000000..b6a5828
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusMomentsService.php
@@ -0,0 +1,567 @@
+
+ * $plusService = new Google_PlusMomentsService(...);
+ * $moments = $plusService->moments;
+ *
+ */
+ class Google_MomentsServiceResource extends Google_ServiceResource {
+
+
+ /**
+ * Record a user activity (e.g Bill watched a video on Youtube) (moments.insert)
+ *
+ * @param string $userId The ID of the user to get activities for. The special value "me" can be used to indicate the authenticated user.
+ * @param string $collection The collection to which to write moments.
+ * @param Google_Moment $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool debug Return the moment as written. Should be used only for debugging.
+ * @return Google_Moment
+ */
+ public function insert($userId, $collection, Google_Moment $postBody, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Moment($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Plus (v1moments).
+ *
+ *
+ * The Google+ API enables developers to build on top of the Google+ platform.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_PlusMomentsService extends Google_Service {
+ public $moments;
+ /**
+ * Constructs the internal representation of the Plus service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'plus/v1moments/people/';
+ $this->version = 'v1moments';
+ $this->serviceName = 'plus';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->moments = new Google_MomentsServiceResource($this, $this->serviceName, 'moments',
+ json_decode('{"methods": {"insert": {"parameters": {"debug": {"type": "boolean", "location": "query"}, "userId": {"required": true, "type": "string", "location": "path"}, "collection": {"required": true, "type": "string", "location": "path", "enum": ["vault"]}}, "request": {"$ref": "Moment"}, "response": {"$ref": "Moment"}, "httpMethod": "POST", "path": "{userId}/moments/{collection}", "id": "plus.moments.insert"}}}', true));
+
+ }
+}
+
+class Google_ItemScope extends Google_Model {
+ public $startDate;
+ public $endDate;
+ public $text;
+ public $image;
+ protected $__addressType = 'Google_ItemScope';
+ protected $__addressDataType = '';
+ public $address;
+ public $birthDate;
+ public $datePublished;
+ public $addressLocality;
+ public $duration;
+ public $additionalName;
+ public $worstRating;
+ protected $__contributorType = 'Google_ItemScope';
+ protected $__contributorDataType = 'array';
+ public $contributor;
+ public $thumbnailUrl;
+ public $id;
+ public $postOfficeBoxNumber;
+ protected $__attendeesType = 'Google_ItemScope';
+ protected $__attendeesDataType = 'array';
+ public $attendees;
+ protected $__authorType = 'Google_ItemScope';
+ protected $__authorDataType = 'array';
+ public $author;
+ protected $__associated_mediaType = 'Google_ItemScope';
+ protected $__associated_mediaDataType = 'array';
+ public $associated_media;
+ public $bestRating;
+ public $addressCountry;
+ public $width;
+ public $streetAddress;
+ protected $__locationType = 'Google_ItemScope';
+ protected $__locationDataType = '';
+ public $location;
+ public $latitude;
+ protected $__byArtistType = 'Google_ItemScope';
+ protected $__byArtistDataType = '';
+ public $byArtist;
+ public $type;
+ public $dateModified;
+ public $contentSize;
+ public $contentUrl;
+ protected $__partOfTVSeriesType = 'Google_ItemScope';
+ protected $__partOfTVSeriesDataType = '';
+ public $partOfTVSeries;
+ public $description;
+ public $familyName;
+ public $kind;
+ public $dateCreated;
+ public $postalCode;
+ public $attendeeCount;
+ protected $__inAlbumType = 'Google_ItemScope';
+ protected $__inAlbumDataType = '';
+ public $inAlbum;
+ public $addressRegion;
+ public $height;
+ protected $__geoType = 'Google_ItemScope';
+ protected $__geoDataType = '';
+ public $geo;
+ public $embedUrl;
+ public $tickerSymbol;
+ public $playerType;
+ protected $__aboutType = 'Google_ItemScope';
+ protected $__aboutDataType = '';
+ public $about;
+ public $givenName;
+ public $name;
+ protected $__performersType = 'Google_ItemScope';
+ protected $__performersDataType = 'array';
+ public $performers;
+ public $url;
+ public $gender;
+ public $longitude;
+ protected $__thumbnailType = 'Google_ItemScope';
+ protected $__thumbnailDataType = '';
+ public $thumbnail;
+ public $caption;
+ public $ratingValue;
+ protected $__reviewRatingType = 'Google_ItemScope';
+ protected $__reviewRatingDataType = '';
+ public $reviewRating;
+ protected $__audioType = 'Google_ItemScope';
+ protected $__audioDataType = '';
+ public $audio;
+ public function setStartDate($startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+ public function setEndDate($endDate) {
+ $this->endDate = $endDate;
+ }
+ public function getEndDate() {
+ return $this->endDate;
+ }
+ public function setText($text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+ public function setImage($image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setAddress(Google_ItemScope $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setBirthDate($birthDate) {
+ $this->birthDate = $birthDate;
+ }
+ public function getBirthDate() {
+ return $this->birthDate;
+ }
+ public function setDatePublished($datePublished) {
+ $this->datePublished = $datePublished;
+ }
+ public function getDatePublished() {
+ return $this->datePublished;
+ }
+ public function setAddressLocality($addressLocality) {
+ $this->addressLocality = $addressLocality;
+ }
+ public function getAddressLocality() {
+ return $this->addressLocality;
+ }
+ public function setDuration($duration) {
+ $this->duration = $duration;
+ }
+ public function getDuration() {
+ return $this->duration;
+ }
+ public function setAdditionalName(/* array(Google_string) */ $additionalName) {
+ $this->assertIsArray($additionalName, 'Google_string', __METHOD__);
+ $this->additionalName = $additionalName;
+ }
+ public function getAdditionalName() {
+ return $this->additionalName;
+ }
+ public function setWorstRating($worstRating) {
+ $this->worstRating = $worstRating;
+ }
+ public function getWorstRating() {
+ return $this->worstRating;
+ }
+ public function setContributor(/* array(Google_ItemScope) */ $contributor) {
+ $this->assertIsArray($contributor, 'Google_ItemScope', __METHOD__);
+ $this->contributor = $contributor;
+ }
+ public function getContributor() {
+ return $this->contributor;
+ }
+ public function setThumbnailUrl($thumbnailUrl) {
+ $this->thumbnailUrl = $thumbnailUrl;
+ }
+ public function getThumbnailUrl() {
+ return $this->thumbnailUrl;
+ }
+ public function setId($id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setPostOfficeBoxNumber($postOfficeBoxNumber) {
+ $this->postOfficeBoxNumber = $postOfficeBoxNumber;
+ }
+ public function getPostOfficeBoxNumber() {
+ return $this->postOfficeBoxNumber;
+ }
+ public function setAttendees(/* array(Google_ItemScope) */ $attendees) {
+ $this->assertIsArray($attendees, 'Google_ItemScope', __METHOD__);
+ $this->attendees = $attendees;
+ }
+ public function getAttendees() {
+ return $this->attendees;
+ }
+ public function setAuthor(/* array(Google_ItemScope) */ $author) {
+ $this->assertIsArray($author, 'Google_ItemScope', __METHOD__);
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setAssociated_media(/* array(Google_ItemScope) */ $associated_media) {
+ $this->assertIsArray($associated_media, 'Google_ItemScope', __METHOD__);
+ $this->associated_media = $associated_media;
+ }
+ public function getAssociated_media() {
+ return $this->associated_media;
+ }
+ public function setBestRating($bestRating) {
+ $this->bestRating = $bestRating;
+ }
+ public function getBestRating() {
+ return $this->bestRating;
+ }
+ public function setAddressCountry($addressCountry) {
+ $this->addressCountry = $addressCountry;
+ }
+ public function getAddressCountry() {
+ return $this->addressCountry;
+ }
+ public function setWidth($width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+ public function setStreetAddress($streetAddress) {
+ $this->streetAddress = $streetAddress;
+ }
+ public function getStreetAddress() {
+ return $this->streetAddress;
+ }
+ public function setLocation(Google_ItemScope $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setLatitude($latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setByArtist(Google_ItemScope $byArtist) {
+ $this->byArtist = $byArtist;
+ }
+ public function getByArtist() {
+ return $this->byArtist;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setDateModified($dateModified) {
+ $this->dateModified = $dateModified;
+ }
+ public function getDateModified() {
+ return $this->dateModified;
+ }
+ public function setContentSize($contentSize) {
+ $this->contentSize = $contentSize;
+ }
+ public function getContentSize() {
+ return $this->contentSize;
+ }
+ public function setContentUrl($contentUrl) {
+ $this->contentUrl = $contentUrl;
+ }
+ public function getContentUrl() {
+ return $this->contentUrl;
+ }
+ public function setPartOfTVSeries(Google_ItemScope $partOfTVSeries) {
+ $this->partOfTVSeries = $partOfTVSeries;
+ }
+ public function getPartOfTVSeries() {
+ return $this->partOfTVSeries;
+ }
+ public function setDescription($description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setFamilyName($familyName) {
+ $this->familyName = $familyName;
+ }
+ public function getFamilyName() {
+ return $this->familyName;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setDateCreated($dateCreated) {
+ $this->dateCreated = $dateCreated;
+ }
+ public function getDateCreated() {
+ return $this->dateCreated;
+ }
+ public function setPostalCode($postalCode) {
+ $this->postalCode = $postalCode;
+ }
+ public function getPostalCode() {
+ return $this->postalCode;
+ }
+ public function setAttendeeCount($attendeeCount) {
+ $this->attendeeCount = $attendeeCount;
+ }
+ public function getAttendeeCount() {
+ return $this->attendeeCount;
+ }
+ public function setInAlbum(Google_ItemScope $inAlbum) {
+ $this->inAlbum = $inAlbum;
+ }
+ public function getInAlbum() {
+ return $this->inAlbum;
+ }
+ public function setAddressRegion($addressRegion) {
+ $this->addressRegion = $addressRegion;
+ }
+ public function getAddressRegion() {
+ return $this->addressRegion;
+ }
+ public function setHeight($height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setGeo(Google_ItemScope $geo) {
+ $this->geo = $geo;
+ }
+ public function getGeo() {
+ return $this->geo;
+ }
+ public function setEmbedUrl($embedUrl) {
+ $this->embedUrl = $embedUrl;
+ }
+ public function getEmbedUrl() {
+ return $this->embedUrl;
+ }
+ public function setTickerSymbol($tickerSymbol) {
+ $this->tickerSymbol = $tickerSymbol;
+ }
+ public function getTickerSymbol() {
+ return $this->tickerSymbol;
+ }
+ public function setPlayerType($playerType) {
+ $this->playerType = $playerType;
+ }
+ public function getPlayerType() {
+ return $this->playerType;
+ }
+ public function setAbout(Google_ItemScope $about) {
+ $this->about = $about;
+ }
+ public function getAbout() {
+ return $this->about;
+ }
+ public function setGivenName($givenName) {
+ $this->givenName = $givenName;
+ }
+ public function getGivenName() {
+ return $this->givenName;
+ }
+ public function setName($name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPerformers(/* array(Google_ItemScope) */ $performers) {
+ $this->assertIsArray($performers, 'Google_ItemScope', __METHOD__);
+ $this->performers = $performers;
+ }
+ public function getPerformers() {
+ return $this->performers;
+ }
+ public function setUrl($url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setGender($gender) {
+ $this->gender = $gender;
+ }
+ public function getGender() {
+ return $this->gender;
+ }
+ public function setLongitude($longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+ public function setThumbnail(Google_ItemScope $thumbnail) {
+ $this->thumbnail = $thumbnail;
+ }
+ public function getThumbnail() {
+ return $this->thumbnail;
+ }
+ public function setCaption($caption) {
+ $this->caption = $caption;
+ }
+ public function getCaption() {
+ return $this->caption;
+ }
+ public function setRatingValue($ratingValue) {
+ $this->ratingValue = $ratingValue;
+ }
+ public function getRatingValue() {
+ return $this->ratingValue;
+ }
+ public function setReviewRating(Google_ItemScope $reviewRating) {
+ $this->reviewRating = $reviewRating;
+ }
+ public function getReviewRating() {
+ return $this->reviewRating;
+ }
+ public function setAudio(Google_ItemScope $audio) {
+ $this->audio = $audio;
+ }
+ public function getAudio() {
+ return $this->audio;
+ }
+}
+
+class Google_Moment extends Google_Model {
+ public $startDate;
+ public $kind;
+ protected $__targetType = 'Google_ItemScope';
+ protected $__targetDataType = '';
+ public $target;
+ protected $__verbType = 'Google_MomentVerb';
+ protected $__verbDataType = '';
+ public $verb;
+ protected $__resultType = 'Google_ItemScope';
+ protected $__resultDataType = '';
+ public $result;
+ public $type;
+ public function setStartDate($startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+ public function setKind($kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTarget(Google_ItemScope $target) {
+ $this->target = $target;
+ }
+ public function getTarget() {
+ return $this->target;
+ }
+ public function setVerb(Google_MomentVerb $verb) {
+ $this->verb = $verb;
+ }
+ public function getVerb() {
+ return $this->verb;
+ }
+ public function setResult(Google_ItemScope $result) {
+ $this->result = $result;
+ }
+ public function getResult() {
+ return $this->result;
+ }
+ public function setType($type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_MomentVerb extends Google_Model {
+ public $url;
+ public function setUrl($url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusService.php
new file mode 100644
index 0000000..d4176df
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PlusService.php
@@ -0,0 +1,2429 @@
+
+ * $plusService = new Google_PlusService(...);
+ * $activities = $plusService->activities;
+ *
+ */
+ class Google_ActivitiesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get an activity. (activities.get)
+ *
+ * @param string $activityId The ID of the activity to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_Activity
+ */
+ public function get($activityId, $optParams = array()) {
+ $params = array('activityId' => $activityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Activity($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the activities in the specified collection for a particular user. (activities.list)
+ *
+ * @param string $userId The ID of the user to get activities for. The special value "me" can be used to indicate the authenticated user.
+ * @param string $collection The collection of activities to list.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_ActivityFeed
+ */
+ public function listActivities($userId, $collection, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ActivityFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Search public activities. (activities.search)
+ *
+ * @param string $query Full-text search query string.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language Specify the preferred language to search with. See search language codes for available values.
+ * @opt_param string maxResults The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string orderBy Specifies how to order search results.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token can be of any length.
+ * @return Google_ActivityFeed
+ */
+ public function search($query, $optParams = array()) {
+ $params = array('query' => $query);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('search', array($params));
+ if ($this->useObjects()) {
+ return new Google_ActivityFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "comments" collection of methods.
+ * Typical usage is:
+ *
+ * $plusService = new Google_PlusService(...);
+ * $comments = $plusService->comments;
+ *
+ */
+ class Google_CommentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get a comment. (comments.get)
+ *
+ * @param string $commentId The ID of the comment to get.
+ * @param array $optParams Optional parameters.
+ * @return Google_Comment
+ */
+ public function get($commentId, $optParams = array()) {
+ $params = array('commentId' => $commentId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Comment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the comments for an activity. (comments.list)
+ *
+ * @param string $activityId The ID of the activity to get comments for.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of comments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @opt_param string sortOrder The order in which to sort the list of comments.
+ * @return Google_CommentFeed
+ */
+ public function listComments($activityId, $optParams = array()) {
+ $params = array('activityId' => $activityId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_CommentFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "moments" collection of methods.
+ * Typical usage is:
+ *
+ * $plusService = new Google_PlusService(...);
+ * $moments = $plusService->moments;
+ *
+ */
+ class Google_MomentsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Record a moment representing a user's activity such as making a purchase or commenting on a blog.
+ * (moments.insert)
+ *
+ * @param string $userId The ID of the user to record activities for. The only valid values are "me" and the ID of the authenticated user.
+ * @param string $collection The collection to which to write moments.
+ * @param Google_Moment $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool debug Return the moment as written. Should be used only for debugging.
+ * @return Google_Moment
+ */
+ public function insert($userId, $collection, Google_Moment $postBody, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Moment($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the moments for a particular user. (moments.list)
+ *
+ * @param string $userId The ID of the user to get moments for. The special value "me" can be used to indicate the authenticated user.
+ * @param string $collection The collection of moments to list.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of moments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @opt_param string targetUrl Only moments containing this targetUrl will be returned.
+ * @opt_param string type Only moments of this type will be returned.
+ * @return Google_MomentsFeed
+ */
+ public function listMoments($userId, $collection, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_MomentsFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Delete a moment. (moments.remove)
+ *
+ * @param string $id The ID of the moment to delete.
+ * @param array $optParams Optional parameters.
+ */
+ public function remove($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('remove', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "people" collection of methods.
+ * Typical usage is:
+ *
+ * $plusService = new Google_PlusService(...);
+ * $people = $plusService->people;
+ *
+ */
+ class Google_PeopleServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get a person's profile. If your app uses scope https://www.googleapis.com/auth/plus.login, this
+ * method is guaranteed to return ageRange and language. (people.get)
+ *
+ * @param string $userId The ID of the person to get the profile for. The special value "me" can be used to indicate the authenticated user.
+ * @param array $optParams Optional parameters.
+ * @return Google_Person
+ */
+ public function get($userId, $optParams = array()) {
+ $params = array('userId' => $userId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Person($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the people in the specified collection. (people.list)
+ *
+ * @param string $userId Get the collection of people for the person identified. Use "me" to indicate the authenticated user.
+ * @param string $collection The collection of people to list.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string orderBy The order to return people in.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_PeopleFeed
+ */
+ public function listPeople($userId, $collection, $optParams = array()) {
+ $params = array('userId' => $userId, 'collection' => $collection);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PeopleFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List all of the people in the specified collection for a particular activity.
+ * (people.listByActivity)
+ *
+ * @param string $activityId The ID of the activity to get the list of people for.
+ * @param string $collection The collection of people to list.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+ * @return Google_PeopleFeed
+ */
+ public function listByActivity($activityId, $collection, $optParams = array()) {
+ $params = array('activityId' => $activityId, 'collection' => $collection);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('listByActivity', array($params));
+ if ($this->useObjects()) {
+ return new Google_PeopleFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Search all public profiles. (people.search)
+ *
+ * @param string $query Specify a query string for full text search of public text in all profiles.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string language Specify the preferred language to search with. See search language codes for available values.
+ * @opt_param string maxResults The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+ * @opt_param string pageToken The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token can be of any length.
+ * @return Google_PeopleFeed
+ */
+ public function search($query, $optParams = array()) {
+ $params = array('query' => $query);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('search', array($params));
+ if ($this->useObjects()) {
+ return new Google_PeopleFeed($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Plus (v1).
+ *
+ *
+ * The Google+ API enables developers to build on top of the Google+ platform.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_PlusService extends Google_Service {
+ public $activities;
+ public $comments;
+ public $moments;
+ public $people;
+ /**
+ * Constructs the internal representation of the Plus service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'plus/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'plus';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->activities = new Google_ActivitiesServiceResource($this, $this->serviceName, 'activities', json_decode('{"methods": {"get": {"id": "plus.activities.get", "path": "activities/{activityId}", "httpMethod": "GET", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Activity"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "list": {"id": "plus.activities.list", "path": "people/{userId}/activities/{collection}", "httpMethod": "GET", "parameters": {"collection": {"type": "string", "required": true, "enum": ["public"], "location": "path"}, "maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ActivityFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "search": {"id": "plus.activities.search", "path": "activities", "httpMethod": "GET", "parameters": {"language": {"type": "string", "default": "en-US", "location": "query"}, "maxResults": {"type": "integer", "default": "10", "format": "uint32", "minimum": "1", "maximum": "20", "location": "query"}, "orderBy": {"type": "string", "default": "recent", "enum": ["best", "recent"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "query": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "ActivityFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}}}', true));
+ $this->comments = new Google_CommentsServiceResource($this, $this->serviceName, 'comments', json_decode('{"methods": {"get": {"id": "plus.comments.get", "path": "comments/{commentId}", "httpMethod": "GET", "parameters": {"commentId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Comment"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "list": {"id": "plus.comments.list", "path": "activities/{activityId}/comments", "httpMethod": "GET", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "0", "maximum": "500", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "sortOrder": {"type": "string", "default": "ascending", "enum": ["ascending", "descending"], "location": "query"}}, "response": {"$ref": "CommentFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}}}', true));
+ $this->moments = new Google_MomentsServiceResource($this, $this->serviceName, 'moments', json_decode('{"methods": {"insert": {"id": "plus.moments.insert", "path": "people/{userId}/moments/{collection}", "httpMethod": "POST", "parameters": {"collection": {"type": "string", "required": true, "enum": ["vault"], "location": "path"}, "debug": {"type": "boolean", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Moment"}, "response": {"$ref": "Moment"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "list": {"id": "plus.moments.list", "path": "people/{userId}/moments/{collection}", "httpMethod": "GET", "parameters": {"collection": {"type": "string", "required": true, "enum": ["vault"], "location": "path"}, "maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "targetUrl": {"type": "string", "location": "query"}, "type": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "MomentsFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "remove": {"id": "plus.moments.remove", "path": "moments/{id}", "httpMethod": "DELETE", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}}}', true));
+ $this->people = new Google_PeopleServiceResource($this, $this->serviceName, 'people', json_decode('{"methods": {"get": {"id": "plus.people.get", "path": "people/{userId}", "httpMethod": "GET", "parameters": {"userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Person"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "list": {"id": "plus.people.list", "path": "people/{userId}/people/{collection}", "httpMethod": "GET", "parameters": {"collection": {"type": "string", "required": true, "enum": ["visible"], "location": "path"}, "maxResults": {"type": "integer", "default": "100", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "orderBy": {"type": "string", "enum": ["alphabetical", "best"], "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "userId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "PeopleFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login"]}, "listByActivity": {"id": "plus.people.listByActivity", "path": "activities/{activityId}/people/{collection}", "httpMethod": "GET", "parameters": {"activityId": {"type": "string", "required": true, "location": "path"}, "collection": {"type": "string", "required": true, "enum": ["plusoners", "resharers"], "location": "path"}, "maxResults": {"type": "integer", "default": "20", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "PeopleFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}, "search": {"id": "plus.people.search", "path": "people", "httpMethod": "GET", "parameters": {"language": {"type": "string", "default": "en-US", "location": "query"}, "maxResults": {"type": "integer", "default": "25", "format": "uint32", "minimum": "1", "maximum": "50", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "query": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "PeopleFeed"}, "scopes": ["https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/plus.me"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Acl extends Google_Model {
+ public $description;
+ protected $__itemsType = 'Google_PlusAclentryResource';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setItems(/* array(Google_PlusAclentryResource) */ $items) {
+ $this->assertIsArray($items, 'Google_PlusAclentryResource', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Activity extends Google_Model {
+ protected $__accessType = 'Google_Acl';
+ protected $__accessDataType = '';
+ public $access;
+ protected $__actorType = 'Google_ActivityActor';
+ protected $__actorDataType = '';
+ public $actor;
+ public $address;
+ public $annotation;
+ public $crosspostSource;
+ public $etag;
+ public $geocode;
+ public $id;
+ public $kind;
+ protected $__locationType = 'Google_Place';
+ protected $__locationDataType = '';
+ public $location;
+ protected $__objectType = 'Google_ActivityObject';
+ protected $__objectDataType = '';
+ public $object;
+ public $placeId;
+ public $placeName;
+ protected $__providerType = 'Google_ActivityProvider';
+ protected $__providerDataType = '';
+ public $provider;
+ public $published;
+ public $radius;
+ public $title;
+ public $updated;
+ public $url;
+ public $verb;
+ public function setAccess(Google_Acl $access) {
+ $this->access = $access;
+ }
+ public function getAccess() {
+ return $this->access;
+ }
+ public function setActor(Google_ActivityActor $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setAddress( $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setAnnotation( $annotation) {
+ $this->annotation = $annotation;
+ }
+ public function getAnnotation() {
+ return $this->annotation;
+ }
+ public function setCrosspostSource( $crosspostSource) {
+ $this->crosspostSource = $crosspostSource;
+ }
+ public function getCrosspostSource() {
+ return $this->crosspostSource;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setGeocode( $geocode) {
+ $this->geocode = $geocode;
+ }
+ public function getGeocode() {
+ return $this->geocode;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocation(Google_Place $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setObject(Google_ActivityObject $object) {
+ $this->object = $object;
+ }
+ public function getObject() {
+ return $this->object;
+ }
+ public function setPlaceId( $placeId) {
+ $this->placeId = $placeId;
+ }
+ public function getPlaceId() {
+ return $this->placeId;
+ }
+ public function setPlaceName( $placeName) {
+ $this->placeName = $placeName;
+ }
+ public function getPlaceName() {
+ return $this->placeName;
+ }
+ public function setProvider(Google_ActivityProvider $provider) {
+ $this->provider = $provider;
+ }
+ public function getProvider() {
+ return $this->provider;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setRadius( $radius) {
+ $this->radius = $radius;
+ }
+ public function getRadius() {
+ return $this->radius;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setVerb( $verb) {
+ $this->verb = $verb;
+ }
+ public function getVerb() {
+ return $this->verb;
+ }
+}
+
+class Google_ActivityActor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_ActivityActorImage';
+ protected $__imageDataType = '';
+ public $image;
+ protected $__nameType = 'Google_ActivityActorName';
+ protected $__nameDataType = '';
+ public $name;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_ActivityActorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setName(Google_ActivityActorName $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityActorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityActorName extends Google_Model {
+ public $familyName;
+ public $givenName;
+ public function setFamilyName( $familyName) {
+ $this->familyName = $familyName;
+ }
+ public function getFamilyName() {
+ return $this->familyName;
+ }
+ public function setGivenName( $givenName) {
+ $this->givenName = $givenName;
+ }
+ public function getGivenName() {
+ return $this->givenName;
+ }
+}
+
+class Google_ActivityFeed extends Google_Model {
+ public $etag;
+ public $id;
+ protected $__itemsType = 'Google_Activity';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public $title;
+ public $updated;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Activity) */ $items) {
+ $this->assertIsArray($items, 'Google_Activity', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_ActivityObject extends Google_Model {
+ protected $__actorType = 'Google_ActivityObjectActor';
+ protected $__actorDataType = '';
+ public $actor;
+ protected $__attachmentsType = 'Google_ActivityObjectAttachments';
+ protected $__attachmentsDataType = 'array';
+ public $attachments;
+ public $content;
+ public $id;
+ public $objectType;
+ public $originalContent;
+ protected $__plusonersType = 'Google_ActivityObjectPlusoners';
+ protected $__plusonersDataType = '';
+ public $plusoners;
+ protected $__repliesType = 'Google_ActivityObjectReplies';
+ protected $__repliesDataType = '';
+ public $replies;
+ protected $__resharersType = 'Google_ActivityObjectResharers';
+ protected $__resharersDataType = '';
+ public $resharers;
+ public $url;
+ public function setActor(Google_ActivityObjectActor $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setAttachments(/* array(Google_ActivityObjectAttachments) */ $attachments) {
+ $this->assertIsArray($attachments, 'Google_ActivityObjectAttachments', __METHOD__);
+ $this->attachments = $attachments;
+ }
+ public function getAttachments() {
+ return $this->attachments;
+ }
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setOriginalContent( $originalContent) {
+ $this->originalContent = $originalContent;
+ }
+ public function getOriginalContent() {
+ return $this->originalContent;
+ }
+ public function setPlusoners(Google_ActivityObjectPlusoners $plusoners) {
+ $this->plusoners = $plusoners;
+ }
+ public function getPlusoners() {
+ return $this->plusoners;
+ }
+ public function setReplies(Google_ActivityObjectReplies $replies) {
+ $this->replies = $replies;
+ }
+ public function getReplies() {
+ return $this->replies;
+ }
+ public function setResharers(Google_ActivityObjectResharers $resharers) {
+ $this->resharers = $resharers;
+ }
+ public function getResharers() {
+ return $this->resharers;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectActor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_ActivityObjectActorImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_ActivityObjectActorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectActorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachments extends Google_Model {
+ public $content;
+ public $displayName;
+ protected $__embedType = 'Google_ActivityObjectAttachmentsEmbed';
+ protected $__embedDataType = '';
+ public $embed;
+ protected $__fullImageType = 'Google_ActivityObjectAttachmentsFullImage';
+ protected $__fullImageDataType = '';
+ public $fullImage;
+ public $id;
+ protected $__imageType = 'Google_ActivityObjectAttachmentsImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $objectType;
+ protected $__thumbnailsType = 'Google_ActivityObjectAttachmentsThumbnails';
+ protected $__thumbnailsDataType = 'array';
+ public $thumbnails;
+ public $url;
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEmbed(Google_ActivityObjectAttachmentsEmbed $embed) {
+ $this->embed = $embed;
+ }
+ public function getEmbed() {
+ return $this->embed;
+ }
+ public function setFullImage(Google_ActivityObjectAttachmentsFullImage $fullImage) {
+ $this->fullImage = $fullImage;
+ }
+ public function getFullImage() {
+ return $this->fullImage;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_ActivityObjectAttachmentsImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setThumbnails(/* array(Google_ActivityObjectAttachmentsThumbnails) */ $thumbnails) {
+ $this->assertIsArray($thumbnails, 'Google_ActivityObjectAttachmentsThumbnails', __METHOD__);
+ $this->thumbnails = $thumbnails;
+ }
+ public function getThumbnails() {
+ return $this->thumbnails;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachmentsEmbed extends Google_Model {
+ public $type;
+ public $url;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachmentsFullImage extends Google_Model {
+ public $height;
+ public $type;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ActivityObjectAttachmentsImage extends Google_Model {
+ public $height;
+ public $type;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ActivityObjectAttachmentsThumbnails extends Google_Model {
+ public $description;
+ protected $__imageType = 'Google_ActivityObjectAttachmentsThumbnailsImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setImage(Google_ActivityObjectAttachmentsThumbnailsImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ActivityObjectAttachmentsThumbnailsImage extends Google_Model {
+ public $height;
+ public $type;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ActivityObjectPlusoners extends Google_Model {
+ public $selfLink;
+ public $totalItems;
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ActivityObjectReplies extends Google_Model {
+ public $selfLink;
+ public $totalItems;
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ActivityObjectResharers extends Google_Model {
+ public $selfLink;
+ public $totalItems;
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ActivityProvider extends Google_Model {
+ public $title;
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+}
+
+class Google_Comment extends Google_Model {
+ protected $__actorType = 'Google_CommentActor';
+ protected $__actorDataType = '';
+ public $actor;
+ public $etag;
+ public $id;
+ protected $__inReplyToType = 'Google_CommentInReplyTo';
+ protected $__inReplyToDataType = 'array';
+ public $inReplyTo;
+ public $kind;
+ protected $__objectType = 'Google_CommentObject';
+ protected $__objectDataType = '';
+ public $object;
+ protected $__plusonersType = 'Google_CommentPlusoners';
+ protected $__plusonersDataType = '';
+ public $plusoners;
+ public $published;
+ public $selfLink;
+ public $updated;
+ public $verb;
+ public function setActor(Google_CommentActor $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setInReplyTo(/* array(Google_CommentInReplyTo) */ $inReplyTo) {
+ $this->assertIsArray($inReplyTo, 'Google_CommentInReplyTo', __METHOD__);
+ $this->inReplyTo = $inReplyTo;
+ }
+ public function getInReplyTo() {
+ return $this->inReplyTo;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setObject(Google_CommentObject $object) {
+ $this->object = $object;
+ }
+ public function getObject() {
+ return $this->object;
+ }
+ public function setPlusoners(Google_CommentPlusoners $plusoners) {
+ $this->plusoners = $plusoners;
+ }
+ public function getPlusoners() {
+ return $this->plusoners;
+ }
+ public function setPublished( $published) {
+ $this->published = $published;
+ }
+ public function getPublished() {
+ return $this->published;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+ public function setVerb( $verb) {
+ $this->verb = $verb;
+ }
+ public function getVerb() {
+ return $this->verb;
+ }
+}
+
+class Google_CommentActor extends Google_Model {
+ public $displayName;
+ public $id;
+ protected $__imageType = 'Google_CommentActorImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $url;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_CommentActorImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommentActorImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommentFeed extends Google_Model {
+ public $etag;
+ public $id;
+ protected $__itemsType = 'Google_Comment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $title;
+ public $updated;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Comment) */ $items) {
+ $this->assertIsArray($items, 'Google_Comment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_CommentInReplyTo extends Google_Model {
+ public $id;
+ public $url;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_CommentObject extends Google_Model {
+ public $content;
+ public $objectType;
+ public $originalContent;
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setOriginalContent( $originalContent) {
+ $this->originalContent = $originalContent;
+ }
+ public function getOriginalContent() {
+ return $this->originalContent;
+ }
+}
+
+class Google_CommentPlusoners extends Google_Model {
+ public $totalItems;
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ItemScope extends Google_Model {
+ protected $__aboutType = 'Google_ItemScope';
+ protected $__aboutDataType = '';
+ public $about;
+ public $additionalName;
+ protected $__addressType = 'Google_ItemScope';
+ protected $__addressDataType = '';
+ public $address;
+ public $addressCountry;
+ public $addressLocality;
+ public $addressRegion;
+ protected $__associated_mediaType = 'Google_ItemScope';
+ protected $__associated_mediaDataType = 'array';
+ public $associated_media;
+ public $attendeeCount;
+ protected $__attendeesType = 'Google_ItemScope';
+ protected $__attendeesDataType = 'array';
+ public $attendees;
+ protected $__audioType = 'Google_ItemScope';
+ protected $__audioDataType = '';
+ public $audio;
+ protected $__authorType = 'Google_ItemScope';
+ protected $__authorDataType = 'array';
+ public $author;
+ public $bestRating;
+ public $birthDate;
+ protected $__byArtistType = 'Google_ItemScope';
+ protected $__byArtistDataType = '';
+ public $byArtist;
+ public $caption;
+ public $contentSize;
+ public $contentUrl;
+ protected $__contributorType = 'Google_ItemScope';
+ protected $__contributorDataType = 'array';
+ public $contributor;
+ public $dateCreated;
+ public $dateModified;
+ public $datePublished;
+ public $description;
+ public $duration;
+ public $embedUrl;
+ public $endDate;
+ public $familyName;
+ public $gender;
+ protected $__geoType = 'Google_ItemScope';
+ protected $__geoDataType = '';
+ public $geo;
+ public $givenName;
+ public $height;
+ public $id;
+ public $image;
+ protected $__inAlbumType = 'Google_ItemScope';
+ protected $__inAlbumDataType = '';
+ public $inAlbum;
+ public $kind;
+ public $latitude;
+ protected $__locationType = 'Google_ItemScope';
+ protected $__locationDataType = '';
+ public $location;
+ public $longitude;
+ public $name;
+ protected $__partOfTVSeriesType = 'Google_ItemScope';
+ protected $__partOfTVSeriesDataType = '';
+ public $partOfTVSeries;
+ protected $__performersType = 'Google_ItemScope';
+ protected $__performersDataType = 'array';
+ public $performers;
+ public $playerType;
+ public $postOfficeBoxNumber;
+ public $postalCode;
+ public $ratingValue;
+ protected $__reviewRatingType = 'Google_ItemScope';
+ protected $__reviewRatingDataType = '';
+ public $reviewRating;
+ public $startDate;
+ public $streetAddress;
+ public $text;
+ protected $__thumbnailType = 'Google_ItemScope';
+ protected $__thumbnailDataType = '';
+ public $thumbnail;
+ public $thumbnailUrl;
+ public $tickerSymbol;
+ public $type;
+ public $url;
+ public $width;
+ public $worstRating;
+ public function setAbout(Google_ItemScope $about) {
+ $this->about = $about;
+ }
+ public function getAbout() {
+ return $this->about;
+ }
+ public function setAdditionalName(/* array(Google_string) */ $additionalName) {
+ $this->assertIsArray($additionalName, 'Google_string', __METHOD__);
+ $this->additionalName = $additionalName;
+ }
+ public function getAdditionalName() {
+ return $this->additionalName;
+ }
+ public function setAddress(Google_ItemScope $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setAddressCountry( $addressCountry) {
+ $this->addressCountry = $addressCountry;
+ }
+ public function getAddressCountry() {
+ return $this->addressCountry;
+ }
+ public function setAddressLocality( $addressLocality) {
+ $this->addressLocality = $addressLocality;
+ }
+ public function getAddressLocality() {
+ return $this->addressLocality;
+ }
+ public function setAddressRegion( $addressRegion) {
+ $this->addressRegion = $addressRegion;
+ }
+ public function getAddressRegion() {
+ return $this->addressRegion;
+ }
+ public function setAssociated_media(/* array(Google_ItemScope) */ $associated_media) {
+ $this->assertIsArray($associated_media, 'Google_ItemScope', __METHOD__);
+ $this->associated_media = $associated_media;
+ }
+ public function getAssociated_media() {
+ return $this->associated_media;
+ }
+ public function setAttendeeCount( $attendeeCount) {
+ $this->attendeeCount = $attendeeCount;
+ }
+ public function getAttendeeCount() {
+ return $this->attendeeCount;
+ }
+ public function setAttendees(/* array(Google_ItemScope) */ $attendees) {
+ $this->assertIsArray($attendees, 'Google_ItemScope', __METHOD__);
+ $this->attendees = $attendees;
+ }
+ public function getAttendees() {
+ return $this->attendees;
+ }
+ public function setAudio(Google_ItemScope $audio) {
+ $this->audio = $audio;
+ }
+ public function getAudio() {
+ return $this->audio;
+ }
+ public function setAuthor(/* array(Google_ItemScope) */ $author) {
+ $this->assertIsArray($author, 'Google_ItemScope', __METHOD__);
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setBestRating( $bestRating) {
+ $this->bestRating = $bestRating;
+ }
+ public function getBestRating() {
+ return $this->bestRating;
+ }
+ public function setBirthDate( $birthDate) {
+ $this->birthDate = $birthDate;
+ }
+ public function getBirthDate() {
+ return $this->birthDate;
+ }
+ public function setByArtist(Google_ItemScope $byArtist) {
+ $this->byArtist = $byArtist;
+ }
+ public function getByArtist() {
+ return $this->byArtist;
+ }
+ public function setCaption( $caption) {
+ $this->caption = $caption;
+ }
+ public function getCaption() {
+ return $this->caption;
+ }
+ public function setContentSize( $contentSize) {
+ $this->contentSize = $contentSize;
+ }
+ public function getContentSize() {
+ return $this->contentSize;
+ }
+ public function setContentUrl( $contentUrl) {
+ $this->contentUrl = $contentUrl;
+ }
+ public function getContentUrl() {
+ return $this->contentUrl;
+ }
+ public function setContributor(/* array(Google_ItemScope) */ $contributor) {
+ $this->assertIsArray($contributor, 'Google_ItemScope', __METHOD__);
+ $this->contributor = $contributor;
+ }
+ public function getContributor() {
+ return $this->contributor;
+ }
+ public function setDateCreated( $dateCreated) {
+ $this->dateCreated = $dateCreated;
+ }
+ public function getDateCreated() {
+ return $this->dateCreated;
+ }
+ public function setDateModified( $dateModified) {
+ $this->dateModified = $dateModified;
+ }
+ public function getDateModified() {
+ return $this->dateModified;
+ }
+ public function setDatePublished( $datePublished) {
+ $this->datePublished = $datePublished;
+ }
+ public function getDatePublished() {
+ return $this->datePublished;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDuration( $duration) {
+ $this->duration = $duration;
+ }
+ public function getDuration() {
+ return $this->duration;
+ }
+ public function setEmbedUrl( $embedUrl) {
+ $this->embedUrl = $embedUrl;
+ }
+ public function getEmbedUrl() {
+ return $this->embedUrl;
+ }
+ public function setEndDate( $endDate) {
+ $this->endDate = $endDate;
+ }
+ public function getEndDate() {
+ return $this->endDate;
+ }
+ public function setFamilyName( $familyName) {
+ $this->familyName = $familyName;
+ }
+ public function getFamilyName() {
+ return $this->familyName;
+ }
+ public function setGender( $gender) {
+ $this->gender = $gender;
+ }
+ public function getGender() {
+ return $this->gender;
+ }
+ public function setGeo(Google_ItemScope $geo) {
+ $this->geo = $geo;
+ }
+ public function getGeo() {
+ return $this->geo;
+ }
+ public function setGivenName( $givenName) {
+ $this->givenName = $givenName;
+ }
+ public function getGivenName() {
+ return $this->givenName;
+ }
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage( $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setInAlbum(Google_ItemScope $inAlbum) {
+ $this->inAlbum = $inAlbum;
+ }
+ public function getInAlbum() {
+ return $this->inAlbum;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLocation(Google_ItemScope $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPartOfTVSeries(Google_ItemScope $partOfTVSeries) {
+ $this->partOfTVSeries = $partOfTVSeries;
+ }
+ public function getPartOfTVSeries() {
+ return $this->partOfTVSeries;
+ }
+ public function setPerformers(/* array(Google_ItemScope) */ $performers) {
+ $this->assertIsArray($performers, 'Google_ItemScope', __METHOD__);
+ $this->performers = $performers;
+ }
+ public function getPerformers() {
+ return $this->performers;
+ }
+ public function setPlayerType( $playerType) {
+ $this->playerType = $playerType;
+ }
+ public function getPlayerType() {
+ return $this->playerType;
+ }
+ public function setPostOfficeBoxNumber( $postOfficeBoxNumber) {
+ $this->postOfficeBoxNumber = $postOfficeBoxNumber;
+ }
+ public function getPostOfficeBoxNumber() {
+ return $this->postOfficeBoxNumber;
+ }
+ public function setPostalCode( $postalCode) {
+ $this->postalCode = $postalCode;
+ }
+ public function getPostalCode() {
+ return $this->postalCode;
+ }
+ public function setRatingValue( $ratingValue) {
+ $this->ratingValue = $ratingValue;
+ }
+ public function getRatingValue() {
+ return $this->ratingValue;
+ }
+ public function setReviewRating(Google_ItemScope $reviewRating) {
+ $this->reviewRating = $reviewRating;
+ }
+ public function getReviewRating() {
+ return $this->reviewRating;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+ public function setStreetAddress( $streetAddress) {
+ $this->streetAddress = $streetAddress;
+ }
+ public function getStreetAddress() {
+ return $this->streetAddress;
+ }
+ public function setText( $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+ public function setThumbnail(Google_ItemScope $thumbnail) {
+ $this->thumbnail = $thumbnail;
+ }
+ public function getThumbnail() {
+ return $this->thumbnail;
+ }
+ public function setThumbnailUrl( $thumbnailUrl) {
+ $this->thumbnailUrl = $thumbnailUrl;
+ }
+ public function getThumbnailUrl() {
+ return $this->thumbnailUrl;
+ }
+ public function setTickerSymbol( $tickerSymbol) {
+ $this->tickerSymbol = $tickerSymbol;
+ }
+ public function getTickerSymbol() {
+ return $this->tickerSymbol;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+ public function setWorstRating( $worstRating) {
+ $this->worstRating = $worstRating;
+ }
+ public function getWorstRating() {
+ return $this->worstRating;
+ }
+}
+
+class Google_Moment extends Google_Model {
+ public $id;
+ public $kind;
+ protected $__resultType = 'Google_ItemScope';
+ protected $__resultDataType = '';
+ public $result;
+ public $startDate;
+ protected $__targetType = 'Google_ItemScope';
+ protected $__targetDataType = '';
+ public $target;
+ public $type;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setResult(Google_ItemScope $result) {
+ $this->result = $result;
+ }
+ public function getResult() {
+ return $this->result;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+ public function setTarget(Google_ItemScope $target) {
+ $this->target = $target;
+ }
+ public function getTarget() {
+ return $this->target;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_MomentsFeed extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Moment';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextLink;
+ public $nextPageToken;
+ public $selfLink;
+ public $title;
+ public $updated;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Moment) */ $items) {
+ $this->assertIsArray($items, 'Google_Moment', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_PeopleFeed extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Person';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public $title;
+ public $totalItems;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Person) */ $items) {
+ $this->assertIsArray($items, 'Google_Person', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_Person extends Google_Model {
+ public $aboutMe;
+ protected $__ageRangeType = 'Google_PersonAgeRange';
+ protected $__ageRangeDataType = '';
+ public $ageRange;
+ public $birthday;
+ public $braggingRights;
+ public $circledByCount;
+ protected $__coverType = 'Google_PersonCover';
+ protected $__coverDataType = '';
+ public $cover;
+ public $currentLocation;
+ public $displayName;
+ public $etag;
+ public $gender;
+ public $id;
+ protected $__imageType = 'Google_PersonImage';
+ protected $__imageDataType = '';
+ public $image;
+ public $isPlusUser;
+ public $kind;
+ public $language;
+ protected $__nameType = 'Google_PersonName';
+ protected $__nameDataType = '';
+ public $name;
+ public $nickname;
+ public $objectType;
+ protected $__organizationsType = 'Google_PersonOrganizations';
+ protected $__organizationsDataType = 'array';
+ public $organizations;
+ protected $__placesLivedType = 'Google_PersonPlacesLived';
+ protected $__placesLivedDataType = 'array';
+ public $placesLived;
+ public $plusOneCount;
+ public $relationshipStatus;
+ public $tagline;
+ public $url;
+ protected $__urlsType = 'Google_PersonUrls';
+ protected $__urlsDataType = 'array';
+ public $urls;
+ public $verified;
+ public function setAboutMe( $aboutMe) {
+ $this->aboutMe = $aboutMe;
+ }
+ public function getAboutMe() {
+ return $this->aboutMe;
+ }
+ public function setAgeRange(Google_PersonAgeRange $ageRange) {
+ $this->ageRange = $ageRange;
+ }
+ public function getAgeRange() {
+ return $this->ageRange;
+ }
+ public function setBirthday( $birthday) {
+ $this->birthday = $birthday;
+ }
+ public function getBirthday() {
+ return $this->birthday;
+ }
+ public function setBraggingRights( $braggingRights) {
+ $this->braggingRights = $braggingRights;
+ }
+ public function getBraggingRights() {
+ return $this->braggingRights;
+ }
+ public function setCircledByCount( $circledByCount) {
+ $this->circledByCount = $circledByCount;
+ }
+ public function getCircledByCount() {
+ return $this->circledByCount;
+ }
+ public function setCover(Google_PersonCover $cover) {
+ $this->cover = $cover;
+ }
+ public function getCover() {
+ return $this->cover;
+ }
+ public function setCurrentLocation( $currentLocation) {
+ $this->currentLocation = $currentLocation;
+ }
+ public function getCurrentLocation() {
+ return $this->currentLocation;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setGender( $gender) {
+ $this->gender = $gender;
+ }
+ public function getGender() {
+ return $this->gender;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setImage(Google_PersonImage $image) {
+ $this->image = $image;
+ }
+ public function getImage() {
+ return $this->image;
+ }
+ public function setIsPlusUser( $isPlusUser) {
+ $this->isPlusUser = $isPlusUser;
+ }
+ public function getIsPlusUser() {
+ return $this->isPlusUser;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+ public function setName(Google_PersonName $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setNickname( $nickname) {
+ $this->nickname = $nickname;
+ }
+ public function getNickname() {
+ return $this->nickname;
+ }
+ public function setObjectType( $objectType) {
+ $this->objectType = $objectType;
+ }
+ public function getObjectType() {
+ return $this->objectType;
+ }
+ public function setOrganizations(/* array(Google_PersonOrganizations) */ $organizations) {
+ $this->assertIsArray($organizations, 'Google_PersonOrganizations', __METHOD__);
+ $this->organizations = $organizations;
+ }
+ public function getOrganizations() {
+ return $this->organizations;
+ }
+ public function setPlacesLived(/* array(Google_PersonPlacesLived) */ $placesLived) {
+ $this->assertIsArray($placesLived, 'Google_PersonPlacesLived', __METHOD__);
+ $this->placesLived = $placesLived;
+ }
+ public function getPlacesLived() {
+ return $this->placesLived;
+ }
+ public function setPlusOneCount( $plusOneCount) {
+ $this->plusOneCount = $plusOneCount;
+ }
+ public function getPlusOneCount() {
+ return $this->plusOneCount;
+ }
+ public function setRelationshipStatus( $relationshipStatus) {
+ $this->relationshipStatus = $relationshipStatus;
+ }
+ public function getRelationshipStatus() {
+ return $this->relationshipStatus;
+ }
+ public function setTagline( $tagline) {
+ $this->tagline = $tagline;
+ }
+ public function getTagline() {
+ return $this->tagline;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setUrls(/* array(Google_PersonUrls) */ $urls) {
+ $this->assertIsArray($urls, 'Google_PersonUrls', __METHOD__);
+ $this->urls = $urls;
+ }
+ public function getUrls() {
+ return $this->urls;
+ }
+ public function setVerified( $verified) {
+ $this->verified = $verified;
+ }
+ public function getVerified() {
+ return $this->verified;
+ }
+}
+
+class Google_PersonAgeRange extends Google_Model {
+ public $max;
+ public $min;
+ public function setMax( $max) {
+ $this->max = $max;
+ }
+ public function getMax() {
+ return $this->max;
+ }
+ public function setMin( $min) {
+ $this->min = $min;
+ }
+ public function getMin() {
+ return $this->min;
+ }
+}
+
+class Google_PersonCover extends Google_Model {
+ protected $__coverInfoType = 'Google_PersonCoverCoverInfo';
+ protected $__coverInfoDataType = '';
+ public $coverInfo;
+ protected $__coverPhotoType = 'Google_PersonCoverCoverPhoto';
+ protected $__coverPhotoDataType = '';
+ public $coverPhoto;
+ public $layout;
+ public function setCoverInfo(Google_PersonCoverCoverInfo $coverInfo) {
+ $this->coverInfo = $coverInfo;
+ }
+ public function getCoverInfo() {
+ return $this->coverInfo;
+ }
+ public function setCoverPhoto(Google_PersonCoverCoverPhoto $coverPhoto) {
+ $this->coverPhoto = $coverPhoto;
+ }
+ public function getCoverPhoto() {
+ return $this->coverPhoto;
+ }
+ public function setLayout( $layout) {
+ $this->layout = $layout;
+ }
+ public function getLayout() {
+ return $this->layout;
+ }
+}
+
+class Google_PersonCoverCoverInfo extends Google_Model {
+ public $leftImageOffset;
+ public $topImageOffset;
+ public function setLeftImageOffset( $leftImageOffset) {
+ $this->leftImageOffset = $leftImageOffset;
+ }
+ public function getLeftImageOffset() {
+ return $this->leftImageOffset;
+ }
+ public function setTopImageOffset( $topImageOffset) {
+ $this->topImageOffset = $topImageOffset;
+ }
+ public function getTopImageOffset() {
+ return $this->topImageOffset;
+ }
+}
+
+class Google_PersonCoverCoverPhoto extends Google_Model {
+ public $height;
+ public $url;
+ public $width;
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_PersonImage extends Google_Model {
+ public $url;
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_PersonName extends Google_Model {
+ public $familyName;
+ public $formatted;
+ public $givenName;
+ public $honorificPrefix;
+ public $honorificSuffix;
+ public $middleName;
+ public function setFamilyName( $familyName) {
+ $this->familyName = $familyName;
+ }
+ public function getFamilyName() {
+ return $this->familyName;
+ }
+ public function setFormatted( $formatted) {
+ $this->formatted = $formatted;
+ }
+ public function getFormatted() {
+ return $this->formatted;
+ }
+ public function setGivenName( $givenName) {
+ $this->givenName = $givenName;
+ }
+ public function getGivenName() {
+ return $this->givenName;
+ }
+ public function setHonorificPrefix( $honorificPrefix) {
+ $this->honorificPrefix = $honorificPrefix;
+ }
+ public function getHonorificPrefix() {
+ return $this->honorificPrefix;
+ }
+ public function setHonorificSuffix( $honorificSuffix) {
+ $this->honorificSuffix = $honorificSuffix;
+ }
+ public function getHonorificSuffix() {
+ return $this->honorificSuffix;
+ }
+ public function setMiddleName( $middleName) {
+ $this->middleName = $middleName;
+ }
+ public function getMiddleName() {
+ return $this->middleName;
+ }
+}
+
+class Google_PersonOrganizations extends Google_Model {
+ public $department;
+ public $description;
+ public $endDate;
+ public $location;
+ public $name;
+ public $primary;
+ public $startDate;
+ public $title;
+ public $type;
+ public function setDepartment( $department) {
+ $this->department = $department;
+ }
+ public function getDepartment() {
+ return $this->department;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setEndDate( $endDate) {
+ $this->endDate = $endDate;
+ }
+ public function getEndDate() {
+ return $this->endDate;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setPrimary( $primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setStartDate( $startDate) {
+ $this->startDate = $startDate;
+ }
+ public function getStartDate() {
+ return $this->startDate;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_PersonPlacesLived extends Google_Model {
+ public $primary;
+ public $value;
+ public function setPrimary( $primary) {
+ $this->primary = $primary;
+ }
+ public function getPrimary() {
+ return $this->primary;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_PersonUrls extends Google_Model {
+ public $label;
+ public $type;
+ public $value;
+ public function setLabel( $label) {
+ $this->label = $label;
+ }
+ public function getLabel() {
+ return $this->label;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_Place extends Google_Model {
+ protected $__addressType = 'Google_PlaceAddress';
+ protected $__addressDataType = '';
+ public $address;
+ public $displayName;
+ public $kind;
+ protected $__positionType = 'Google_PlacePosition';
+ protected $__positionDataType = '';
+ public $position;
+ public function setAddress(Google_PlaceAddress $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPosition(Google_PlacePosition $position) {
+ $this->position = $position;
+ }
+ public function getPosition() {
+ return $this->position;
+ }
+}
+
+class Google_PlaceAddress extends Google_Model {
+ public $formatted;
+ public function setFormatted( $formatted) {
+ $this->formatted = $formatted;
+ }
+ public function getFormatted() {
+ return $this->formatted;
+ }
+}
+
+class Google_PlacePosition extends Google_Model {
+ public $latitude;
+ public $longitude;
+ public function setLatitude( $latitude) {
+ $this->latitude = $latitude;
+ }
+ public function getLatitude() {
+ return $this->latitude;
+ }
+ public function setLongitude( $longitude) {
+ $this->longitude = $longitude;
+ }
+ public function getLongitude() {
+ return $this->longitude;
+ }
+}
+
+class Google_PlusAclentryResource extends Google_Model {
+ public $displayName;
+ public $id;
+ public $type;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PredictionService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PredictionService.php
new file mode 100644
index 0000000..869b490
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_PredictionService.php
@@ -0,0 +1,836 @@
+
+ * $predictionService = new Google_PredictionService(...);
+ * $hostedmodels = $predictionService->hostedmodels;
+ *
+ */
+ class Google_HostedmodelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Submit input and request an output against a hosted model. (hostedmodels.predict)
+ *
+ * @param string $project The project associated with the model.
+ * @param string $hostedModelName The name of a hosted model.
+ * @param Google_Input $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Output
+ */
+ public function predict($project, $hostedModelName, Google_Input $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'hostedModelName' => $hostedModelName, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('predict', array($params));
+ if ($this->useObjects()) {
+ return new Google_Output($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "trainedmodels" collection of methods.
+ * Typical usage is:
+ *
+ * $predictionService = new Google_PredictionService(...);
+ * $trainedmodels = $predictionService->trainedmodels;
+ *
+ */
+ class Google_TrainedmodelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get analysis of the model and the data the model was trained on. (trainedmodels.analyze)
+ *
+ * @param string $project The project associated with the model.
+ * @param string $id The unique name for the predictive model.
+ * @param array $optParams Optional parameters.
+ * @return Google_Analyze
+ */
+ public function analyze($project, $id, $optParams = array()) {
+ $params = array('project' => $project, 'id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('analyze', array($params));
+ if ($this->useObjects()) {
+ return new Google_Analyze($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Delete a trained model. (trainedmodels.delete)
+ *
+ * @param string $project The project associated with the model.
+ * @param string $id The unique name for the predictive model.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($project, $id, $optParams = array()) {
+ $params = array('project' => $project, 'id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Check training status of your model. (trainedmodels.get)
+ *
+ * @param string $project The project associated with the model.
+ * @param string $id The unique name for the predictive model.
+ * @param array $optParams Optional parameters.
+ * @return Google_Insert2
+ */
+ public function get($project, $id, $optParams = array()) {
+ $params = array('project' => $project, 'id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Insert2($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Train a Prediction API model. (trainedmodels.insert)
+ *
+ * @param string $project The project associated with the model.
+ * @param Google_Insert $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Insert2
+ */
+ public function insert($project, Google_Insert $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Insert2($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List available models. (trainedmodels.list)
+ *
+ * @param string $project The project associated with the model.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of results to return.
+ * @opt_param string pageToken Pagination token.
+ * @return Google_PredictionList
+ */
+ public function listTrainedmodels($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_PredictionList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Submit model id and request a prediction. (trainedmodels.predict)
+ *
+ * @param string $project The project associated with the model.
+ * @param string $id The unique name for the predictive model.
+ * @param Google_Input $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Output
+ */
+ public function predict($project, $id, Google_Input $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('predict', array($params));
+ if ($this->useObjects()) {
+ return new Google_Output($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Add new data to a trained model. (trainedmodels.update)
+ *
+ * @param string $project The project associated with the model.
+ * @param string $id The unique name for the predictive model.
+ * @param Google_Update $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Insert2
+ */
+ public function update($project, $id, Google_Update $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Insert2($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Prediction (v1.6).
+ *
+ *
+ * Lets you access a cloud hosted machine learning service that makes it easy to build smart apps
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_PredictionService extends Google_Service {
+ public $hostedmodels;
+ public $trainedmodels;
+ /**
+ * Constructs the internal representation of the Prediction service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'prediction/v1.6/projects/';
+ $this->version = 'v1.6';
+ $this->serviceName = 'prediction';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->hostedmodels = new Google_HostedmodelsServiceResource($this, $this->serviceName, 'hostedmodels', json_decode('{"methods": {"predict": {"id": "prediction.hostedmodels.predict", "path": "{project}/hostedmodels/{hostedModelName}/predict", "httpMethod": "POST", "parameters": {"hostedModelName": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Input"}, "response": {"$ref": "Output"}, "scopes": ["https://www.googleapis.com/auth/prediction"]}}}', true));
+ $this->trainedmodels = new Google_TrainedmodelsServiceResource($this, $this->serviceName, 'trainedmodels', json_decode('{"methods": {"analyze": {"id": "prediction.trainedmodels.analyze", "path": "{project}/trainedmodels/{id}/analyze", "httpMethod": "GET", "parameters": {"id": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Analyze"}, "scopes": ["https://www.googleapis.com/auth/prediction"]}, "delete": {"id": "prediction.trainedmodels.delete", "path": "{project}/trainedmodels/{id}", "httpMethod": "DELETE", "parameters": {"id": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/prediction"]}, "get": {"id": "prediction.trainedmodels.get", "path": "{project}/trainedmodels/{id}", "httpMethod": "GET", "parameters": {"id": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Insert2"}, "scopes": ["https://www.googleapis.com/auth/prediction"]}, "insert": {"id": "prediction.trainedmodels.insert", "path": "{project}/trainedmodels", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Insert"}, "response": {"$ref": "Insert2"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/devstorage.read_write", "https://www.googleapis.com/auth/prediction"]}, "list": {"id": "prediction.trainedmodels.list", "path": "{project}/trainedmodels/list", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "List"}, "scopes": ["https://www.googleapis.com/auth/prediction"]}, "predict": {"id": "prediction.trainedmodels.predict", "path": "{project}/trainedmodels/{id}/predict", "httpMethod": "POST", "parameters": {"id": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Input"}, "response": {"$ref": "Output"}, "scopes": ["https://www.googleapis.com/auth/prediction"]}, "update": {"id": "prediction.trainedmodels.update", "path": "{project}/trainedmodels/{id}", "httpMethod": "PUT", "parameters": {"id": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Update"}, "response": {"$ref": "Insert2"}, "scopes": ["https://www.googleapis.com/auth/prediction"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Analyze extends Google_Model {
+ protected $__dataDescriptionType = 'Google_AnalyzeDataDescription';
+ protected $__dataDescriptionDataType = '';
+ public $dataDescription;
+ public $errors;
+ public $id;
+ public $kind;
+ protected $__modelDescriptionType = 'Google_AnalyzeModelDescription';
+ protected $__modelDescriptionDataType = '';
+ public $modelDescription;
+ public $selfLink;
+ public function setDataDescription(Google_AnalyzeDataDescription $dataDescription) {
+ $this->dataDescription = $dataDescription;
+ }
+ public function getDataDescription() {
+ return $this->dataDescription;
+ }
+ public function setErrors(/* array(Google_string) */ $errors) {
+ $this->assertIsArray($errors, 'Google_string', __METHOD__);
+ $this->errors = $errors;
+ }
+ public function getErrors() {
+ return $this->errors;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setModelDescription(Google_AnalyzeModelDescription $modelDescription) {
+ $this->modelDescription = $modelDescription;
+ }
+ public function getModelDescription() {
+ return $this->modelDescription;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_AnalyzeDataDescription extends Google_Model {
+ protected $__featuresType = 'Google_AnalyzeDataDescriptionFeatures';
+ protected $__featuresDataType = 'array';
+ public $features;
+ protected $__outputFeatureType = 'Google_AnalyzeDataDescriptionOutputFeature';
+ protected $__outputFeatureDataType = '';
+ public $outputFeature;
+ public function setFeatures(/* array(Google_AnalyzeDataDescriptionFeatures) */ $features) {
+ $this->assertIsArray($features, 'Google_AnalyzeDataDescriptionFeatures', __METHOD__);
+ $this->features = $features;
+ }
+ public function getFeatures() {
+ return $this->features;
+ }
+ public function setOutputFeature(Google_AnalyzeDataDescriptionOutputFeature $outputFeature) {
+ $this->outputFeature = $outputFeature;
+ }
+ public function getOutputFeature() {
+ return $this->outputFeature;
+ }
+}
+
+class Google_AnalyzeDataDescriptionFeatures extends Google_Model {
+ protected $__categoricalType = 'Google_AnalyzeDataDescriptionFeaturesCategorical';
+ protected $__categoricalDataType = '';
+ public $categorical;
+ public $index;
+ protected $__numericType = 'Google_AnalyzeDataDescriptionFeaturesNumeric';
+ protected $__numericDataType = '';
+ public $numeric;
+ protected $__textType = 'Google_AnalyzeDataDescriptionFeaturesText';
+ protected $__textDataType = '';
+ public $text;
+ public function setCategorical(Google_AnalyzeDataDescriptionFeaturesCategorical $categorical) {
+ $this->categorical = $categorical;
+ }
+ public function getCategorical() {
+ return $this->categorical;
+ }
+ public function setIndex( $index) {
+ $this->index = $index;
+ }
+ public function getIndex() {
+ return $this->index;
+ }
+ public function setNumeric(Google_AnalyzeDataDescriptionFeaturesNumeric $numeric) {
+ $this->numeric = $numeric;
+ }
+ public function getNumeric() {
+ return $this->numeric;
+ }
+ public function setText(Google_AnalyzeDataDescriptionFeaturesText $text) {
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+}
+
+class Google_AnalyzeDataDescriptionFeaturesCategorical extends Google_Model {
+ public $count;
+ protected $__valuesType = 'Google_AnalyzeDataDescriptionFeaturesCategoricalValues';
+ protected $__valuesDataType = 'array';
+ public $values;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setValues(/* array(Google_AnalyzeDataDescriptionFeaturesCategoricalValues) */ $values) {
+ $this->assertIsArray($values, 'Google_AnalyzeDataDescriptionFeaturesCategoricalValues', __METHOD__);
+ $this->values = $values;
+ }
+ public function getValues() {
+ return $this->values;
+ }
+}
+
+class Google_AnalyzeDataDescriptionFeaturesCategoricalValues extends Google_Model {
+ public $count;
+ public $value;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_AnalyzeDataDescriptionFeaturesNumeric extends Google_Model {
+ public $count;
+ public $mean;
+ public $variance;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setMean( $mean) {
+ $this->mean = $mean;
+ }
+ public function getMean() {
+ return $this->mean;
+ }
+ public function setVariance( $variance) {
+ $this->variance = $variance;
+ }
+ public function getVariance() {
+ return $this->variance;
+ }
+}
+
+class Google_AnalyzeDataDescriptionFeaturesText extends Google_Model {
+ public $count;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+}
+
+class Google_AnalyzeDataDescriptionOutputFeature extends Google_Model {
+ protected $__numericType = 'Google_AnalyzeDataDescriptionOutputFeatureNumeric';
+ protected $__numericDataType = '';
+ public $numeric;
+ protected $__textType = 'Google_AnalyzeDataDescriptionOutputFeatureText';
+ protected $__textDataType = 'array';
+ public $text;
+ public function setNumeric(Google_AnalyzeDataDescriptionOutputFeatureNumeric $numeric) {
+ $this->numeric = $numeric;
+ }
+ public function getNumeric() {
+ return $this->numeric;
+ }
+ public function setText(/* array(Google_AnalyzeDataDescriptionOutputFeatureText) */ $text) {
+ $this->assertIsArray($text, 'Google_AnalyzeDataDescriptionOutputFeatureText', __METHOD__);
+ $this->text = $text;
+ }
+ public function getText() {
+ return $this->text;
+ }
+}
+
+class Google_AnalyzeDataDescriptionOutputFeatureNumeric extends Google_Model {
+ public $count;
+ public $mean;
+ public $variance;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setMean( $mean) {
+ $this->mean = $mean;
+ }
+ public function getMean() {
+ return $this->mean;
+ }
+ public function setVariance( $variance) {
+ $this->variance = $variance;
+ }
+ public function getVariance() {
+ return $this->variance;
+ }
+}
+
+class Google_AnalyzeDataDescriptionOutputFeatureText extends Google_Model {
+ public $count;
+ public $value;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_AnalyzeModelDescription extends Google_Model {
+ public $confusionMatrix;
+ public $confusionMatrixRowTotals;
+ protected $__modelinfoType = 'Google_Insert2';
+ protected $__modelinfoDataType = '';
+ public $modelinfo;
+ public function setConfusionMatrix( $confusionMatrix) {
+ $this->confusionMatrix = $confusionMatrix;
+ }
+ public function getConfusionMatrix() {
+ return $this->confusionMatrix;
+ }
+ public function setConfusionMatrixRowTotals( $confusionMatrixRowTotals) {
+ $this->confusionMatrixRowTotals = $confusionMatrixRowTotals;
+ }
+ public function getConfusionMatrixRowTotals() {
+ return $this->confusionMatrixRowTotals;
+ }
+ public function setModelinfo(Google_Insert2 $modelinfo) {
+ $this->modelinfo = $modelinfo;
+ }
+ public function getModelinfo() {
+ return $this->modelinfo;
+ }
+}
+
+class Google_Input extends Google_Model {
+ protected $__inputType = 'Google_InputInput';
+ protected $__inputDataType = '';
+ public $input;
+ public function setInput(Google_InputInput $input) {
+ $this->input = $input;
+ }
+ public function getInput() {
+ return $this->input;
+ }
+}
+
+class Google_InputInput extends Google_Model {
+ public $csvInstance;
+ public function setCsvInstance(/* array(Google_object) */ $csvInstance) {
+ $this->assertIsArray($csvInstance, 'Google_object', __METHOD__);
+ $this->csvInstance = $csvInstance;
+ }
+ public function getCsvInstance() {
+ return $this->csvInstance;
+ }
+}
+
+class Google_Insert extends Google_Model {
+ public $id;
+ public $modelType;
+ public $sourceModel;
+ public $storageDataLocation;
+ public $storagePMMLLocation;
+ public $storagePMMLModelLocation;
+ protected $__trainingInstancesType = 'Google_InsertTrainingInstances';
+ protected $__trainingInstancesDataType = 'array';
+ public $trainingInstances;
+ public $utility;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setModelType( $modelType) {
+ $this->modelType = $modelType;
+ }
+ public function getModelType() {
+ return $this->modelType;
+ }
+ public function setSourceModel( $sourceModel) {
+ $this->sourceModel = $sourceModel;
+ }
+ public function getSourceModel() {
+ return $this->sourceModel;
+ }
+ public function setStorageDataLocation( $storageDataLocation) {
+ $this->storageDataLocation = $storageDataLocation;
+ }
+ public function getStorageDataLocation() {
+ return $this->storageDataLocation;
+ }
+ public function setStoragePMMLLocation( $storagePMMLLocation) {
+ $this->storagePMMLLocation = $storagePMMLLocation;
+ }
+ public function getStoragePMMLLocation() {
+ return $this->storagePMMLLocation;
+ }
+ public function setStoragePMMLModelLocation( $storagePMMLModelLocation) {
+ $this->storagePMMLModelLocation = $storagePMMLModelLocation;
+ }
+ public function getStoragePMMLModelLocation() {
+ return $this->storagePMMLModelLocation;
+ }
+ public function setTrainingInstances(/* array(Google_InsertTrainingInstances) */ $trainingInstances) {
+ $this->assertIsArray($trainingInstances, 'Google_InsertTrainingInstances', __METHOD__);
+ $this->trainingInstances = $trainingInstances;
+ }
+ public function getTrainingInstances() {
+ return $this->trainingInstances;
+ }
+ public function setUtility(/* array(Google_double) */ $utility) {
+ $this->assertIsArray($utility, 'Google_double', __METHOD__);
+ $this->utility = $utility;
+ }
+ public function getUtility() {
+ return $this->utility;
+ }
+}
+
+class Google_Insert2 extends Google_Model {
+ public $created;
+ public $id;
+ public $kind;
+ protected $__modelInfoType = 'Google_Insert2ModelInfo';
+ protected $__modelInfoDataType = '';
+ public $modelInfo;
+ public $modelType;
+ public $selfLink;
+ public $storageDataLocation;
+ public $storagePMMLLocation;
+ public $storagePMMLModelLocation;
+ public $trainingComplete;
+ public $trainingStatus;
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setModelInfo(Google_Insert2ModelInfo $modelInfo) {
+ $this->modelInfo = $modelInfo;
+ }
+ public function getModelInfo() {
+ return $this->modelInfo;
+ }
+ public function setModelType( $modelType) {
+ $this->modelType = $modelType;
+ }
+ public function getModelType() {
+ return $this->modelType;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStorageDataLocation( $storageDataLocation) {
+ $this->storageDataLocation = $storageDataLocation;
+ }
+ public function getStorageDataLocation() {
+ return $this->storageDataLocation;
+ }
+ public function setStoragePMMLLocation( $storagePMMLLocation) {
+ $this->storagePMMLLocation = $storagePMMLLocation;
+ }
+ public function getStoragePMMLLocation() {
+ return $this->storagePMMLLocation;
+ }
+ public function setStoragePMMLModelLocation( $storagePMMLModelLocation) {
+ $this->storagePMMLModelLocation = $storagePMMLModelLocation;
+ }
+ public function getStoragePMMLModelLocation() {
+ return $this->storagePMMLModelLocation;
+ }
+ public function setTrainingComplete( $trainingComplete) {
+ $this->trainingComplete = $trainingComplete;
+ }
+ public function getTrainingComplete() {
+ return $this->trainingComplete;
+ }
+ public function setTrainingStatus( $trainingStatus) {
+ $this->trainingStatus = $trainingStatus;
+ }
+ public function getTrainingStatus() {
+ return $this->trainingStatus;
+ }
+}
+
+class Google_Insert2ModelInfo extends Google_Model {
+ public $classWeightedAccuracy;
+ public $classificationAccuracy;
+ public $meanSquaredError;
+ public $modelType;
+ public $numberInstances;
+ public $numberLabels;
+ public function setClassWeightedAccuracy( $classWeightedAccuracy) {
+ $this->classWeightedAccuracy = $classWeightedAccuracy;
+ }
+ public function getClassWeightedAccuracy() {
+ return $this->classWeightedAccuracy;
+ }
+ public function setClassificationAccuracy( $classificationAccuracy) {
+ $this->classificationAccuracy = $classificationAccuracy;
+ }
+ public function getClassificationAccuracy() {
+ return $this->classificationAccuracy;
+ }
+ public function setMeanSquaredError( $meanSquaredError) {
+ $this->meanSquaredError = $meanSquaredError;
+ }
+ public function getMeanSquaredError() {
+ return $this->meanSquaredError;
+ }
+ public function setModelType( $modelType) {
+ $this->modelType = $modelType;
+ }
+ public function getModelType() {
+ return $this->modelType;
+ }
+ public function setNumberInstances( $numberInstances) {
+ $this->numberInstances = $numberInstances;
+ }
+ public function getNumberInstances() {
+ return $this->numberInstances;
+ }
+ public function setNumberLabels( $numberLabels) {
+ $this->numberLabels = $numberLabels;
+ }
+ public function getNumberLabels() {
+ return $this->numberLabels;
+ }
+}
+
+class Google_InsertTrainingInstances extends Google_Model {
+ public $csvInstance;
+ public $output;
+ public function setCsvInstance(/* array(Google_object) */ $csvInstance) {
+ $this->assertIsArray($csvInstance, 'Google_object', __METHOD__);
+ $this->csvInstance = $csvInstance;
+ }
+ public function getCsvInstance() {
+ return $this->csvInstance;
+ }
+ public function setOutput( $output) {
+ $this->output = $output;
+ }
+ public function getOutput() {
+ return $this->output;
+ }
+}
+
+class Google_Output extends Google_Model {
+ public $id;
+ public $kind;
+ public $outputLabel;
+ protected $__outputMultiType = 'Google_OutputOutputMulti';
+ protected $__outputMultiDataType = 'array';
+ public $outputMulti;
+ public $outputValue;
+ public $selfLink;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOutputLabel( $outputLabel) {
+ $this->outputLabel = $outputLabel;
+ }
+ public function getOutputLabel() {
+ return $this->outputLabel;
+ }
+ public function setOutputMulti(/* array(Google_OutputOutputMulti) */ $outputMulti) {
+ $this->assertIsArray($outputMulti, 'Google_OutputOutputMulti', __METHOD__);
+ $this->outputMulti = $outputMulti;
+ }
+ public function getOutputMulti() {
+ return $this->outputMulti;
+ }
+ public function setOutputValue( $outputValue) {
+ $this->outputValue = $outputValue;
+ }
+ public function getOutputValue() {
+ return $this->outputValue;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_OutputOutputMulti extends Google_Model {
+ public $label;
+ public $score;
+ public function setLabel( $label) {
+ $this->label = $label;
+ }
+ public function getLabel() {
+ return $this->label;
+ }
+ public function setScore( $score) {
+ $this->score = $score;
+ }
+ public function getScore() {
+ return $this->score;
+ }
+}
+
+class Google_PredictionList extends Google_Model {
+ protected $__itemsType = 'Google_Insert2';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $selfLink;
+ public function setItems(/* array(Google_Insert2) */ $items) {
+ $this->assertIsArray($items, 'Google_Insert2', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Update extends Google_Model {
+ public $csvInstance;
+ public $output;
+ public function setCsvInstance(/* array(Google_object) */ $csvInstance) {
+ $this->assertIsArray($csvInstance, 'Google_object', __METHOD__);
+ $this->csvInstance = $csvInstance;
+ }
+ public function getCsvInstance() {
+ return $this->csvInstance;
+ }
+ public function setOutput( $output) {
+ $this->output = $output;
+ }
+ public function getOutput() {
+ return $this->output;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ReportsService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ReportsService.php
new file mode 100644
index 0000000..7049f63
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ReportsService.php
@@ -0,0 +1,545 @@
+
+ * $adminService = new Google_ReportsService(...);
+ * $activities = $adminService->activities;
+ *
+ */
+ class Google_ActivitiesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a list of activities for a specific customer and application. (activities.list)
+ *
+ * @param string $userKey Represents the profile id or the user email for which the data should be filtered. When 'all' is specified as the userKey, it returns usageReports for all users.
+ * @param string $applicationName Application name for which the events are to be retrieved.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string actorIpAddress IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.
+ * @opt_param string endTime Return events which occured at or before this time.
+ * @opt_param string eventName Name of the event being queried.
+ * @opt_param string filters Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 name][operator][parameter2 value],...
+ * @opt_param int maxResults Number of activity records to be shown in each page.
+ * @opt_param string pageToken Token to specify next page.
+ * @opt_param string startTime Return events which occured at or after this time.
+ * @return Google_Activities
+ */
+ public function listActivities($userKey, $applicationName, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'applicationName' => $applicationName);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Activities($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "customerUsageReports" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_ReportsService(...);
+ * $customerUsageReports = $adminService->customerUsageReports;
+ *
+ */
+ class Google_CustomerUsageReportsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a report which is a collection of properties / statistics for a specific customer.
+ * (customerUsageReports.get)
+ *
+ * @param string $date Represents the date in yyyy-mm-dd format for which the data is to be fetched.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string pageToken Token to specify next page.
+ * @opt_param string parameters Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.
+ * @return Google_UsageReports
+ */
+ public function get($date, $optParams = array()) {
+ $params = array('date' => $date);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_UsageReports($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "userUsageReport" collection of methods.
+ * Typical usage is:
+ *
+ * $adminService = new Google_ReportsService(...);
+ * $userUsageReport = $adminService->userUsageReport;
+ *
+ */
+ class Google_UserUsageReportServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a report which is a collection of properties / statistics for a set of users.
+ * (userUsageReport.get)
+ *
+ * @param string $userKey Represents the profile id or the user email for which the data should be filtered.
+ * @param string $date Represents the date in yyyy-mm-dd format for which the data is to be fetched.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string filters Represents the set of filters including parameter operator value.
+ * @opt_param string maxResults Maximum number of results to return. Maximum allowed is 1000
+ * @opt_param string pageToken Token to specify next page.
+ * @opt_param string parameters Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.
+ * @return Google_UsageReports
+ */
+ public function get($userKey, $date, $optParams = array()) {
+ $params = array('userKey' => $userKey, 'date' => $date);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_UsageReports($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Reports (reports_v1).
+ *
+ *
+ * Allows the administrators of Google Apps customers to fetch reports about the usage, collaboration, security and risk for their users.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_ReportsService extends Google_Service {
+ public $activities;
+ public $customerUsageReports;
+ public $userUsageReport;
+ /**
+ * Constructs the internal representation of the Reports service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'admin/reports/v1/';
+ $this->version = 'reports_v1';
+ $this->serviceName = 'admin';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->activities = new Google_ActivitiesServiceResource($this, $this->serviceName, 'activities', json_decode('{"methods": {"list": {"id": "reports.activities.list", "path": "activity/users/{userKey}/applications/{applicationName}", "httpMethod": "GET", "parameters": {"actorIpAddress": {"type": "string", "location": "query"}, "applicationName": {"type": "string", "required": true, "location": "path"}, "endTime": {"type": "string", "location": "query"}, "eventName": {"type": "string", "location": "query"}, "filters": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "int32", "minimum": "1", "maximum": "1000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "startTime": {"type": "string", "location": "query"}, "userKey": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Activities"}, "scopes": ["https://www.googleapis.com/auth/admin.reports.audit.readonly"]}}}', true));
+ $this->customerUsageReports = new Google_CustomerUsageReportsServiceResource($this, $this->serviceName, 'customerUsageReports', json_decode('{"methods": {"get": {"id": "reports.customerUsageReports.get", "path": "usage/dates/{date}", "httpMethod": "GET", "parameters": {"date": {"type": "string", "required": true, "location": "path"}, "pageToken": {"type": "string", "location": "query"}, "parameters": {"type": "string", "location": "query"}}, "response": {"$ref": "UsageReports"}, "scopes": ["https://www.googleapis.com/auth/admin.reports.usage.readonly"]}}}', true));
+ $this->userUsageReport = new Google_UserUsageReportServiceResource($this, $this->serviceName, 'userUsageReport', json_decode('{"methods": {"get": {"id": "reports.userUsageReport.get", "path": "usage/users/{userKey}/dates/{date}", "httpMethod": "GET", "parameters": {"date": {"type": "string", "required": true, "location": "path"}, "filters": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "maximum": "1000", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "parameters": {"type": "string", "location": "query"}, "userKey": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "UsageReports"}, "scopes": ["https://www.googleapis.com/auth/admin.reports.usage.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Activities extends Google_Model {
+ protected $__itemsType = 'Google_Activity';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Activity) */ $items) {
+ $this->assertIsArray($items, 'Google_Activity', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Activity extends Google_Model {
+ protected $__actorType = 'Google_ActivityActor';
+ protected $__actorDataType = '';
+ public $actor;
+ protected $__eventsType = 'Google_ActivityEvents';
+ protected $__eventsDataType = 'array';
+ public $events;
+ protected $__idType = 'Google_ActivityId';
+ protected $__idDataType = '';
+ public $id;
+ public $ipAddress;
+ public $kind;
+ public $ownerDomain;
+ public function setActor(Google_ActivityActor $actor) {
+ $this->actor = $actor;
+ }
+ public function getActor() {
+ return $this->actor;
+ }
+ public function setEvents(/* array(Google_ActivityEvents) */ $events) {
+ $this->assertIsArray($events, 'Google_ActivityEvents', __METHOD__);
+ $this->events = $events;
+ }
+ public function getEvents() {
+ return $this->events;
+ }
+ public function setId(Google_ActivityId $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setIpAddress( $ipAddress) {
+ $this->ipAddress = $ipAddress;
+ }
+ public function getIpAddress() {
+ return $this->ipAddress;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOwnerDomain( $ownerDomain) {
+ $this->ownerDomain = $ownerDomain;
+ }
+ public function getOwnerDomain() {
+ return $this->ownerDomain;
+ }
+}
+
+class Google_ActivityActor extends Google_Model {
+ public $callerType;
+ public $email;
+ public $key;
+ public $profileId;
+ public function setCallerType( $callerType) {
+ $this->callerType = $callerType;
+ }
+ public function getCallerType() {
+ return $this->callerType;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setProfileId( $profileId) {
+ $this->profileId = $profileId;
+ }
+ public function getProfileId() {
+ return $this->profileId;
+ }
+}
+
+class Google_ActivityEvents extends Google_Model {
+ public $name;
+ protected $__parametersType = 'Google_ActivityEventsParameters';
+ protected $__parametersDataType = 'array';
+ public $parameters;
+ public $type;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setParameters(/* array(Google_ActivityEventsParameters) */ $parameters) {
+ $this->assertIsArray($parameters, 'Google_ActivityEventsParameters', __METHOD__);
+ $this->parameters = $parameters;
+ }
+ public function getParameters() {
+ return $this->parameters;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ActivityEventsParameters extends Google_Model {
+ public $boolValue;
+ public $intValue;
+ public $name;
+ public $value;
+ public function setBoolValue( $boolValue) {
+ $this->boolValue = $boolValue;
+ }
+ public function getBoolValue() {
+ return $this->boolValue;
+ }
+ public function setIntValue( $intValue) {
+ $this->intValue = $intValue;
+ }
+ public function getIntValue() {
+ return $this->intValue;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_ActivityId extends Google_Model {
+ public $applicationName;
+ public $customerId;
+ public $time;
+ public $uniqueQualifier;
+ public function setApplicationName( $applicationName) {
+ $this->applicationName = $applicationName;
+ }
+ public function getApplicationName() {
+ return $this->applicationName;
+ }
+ public function setCustomerId( $customerId) {
+ $this->customerId = $customerId;
+ }
+ public function getCustomerId() {
+ return $this->customerId;
+ }
+ public function setTime( $time) {
+ $this->time = $time;
+ }
+ public function getTime() {
+ return $this->time;
+ }
+ public function setUniqueQualifier( $uniqueQualifier) {
+ $this->uniqueQualifier = $uniqueQualifier;
+ }
+ public function getUniqueQualifier() {
+ return $this->uniqueQualifier;
+ }
+}
+
+class Google_UsageReport extends Google_Model {
+ public $date;
+ protected $__entityType = 'Google_UsageReportEntity';
+ protected $__entityDataType = '';
+ public $entity;
+ public $kind;
+ protected $__parametersType = 'Google_UsageReportParameters';
+ protected $__parametersDataType = 'array';
+ public $parameters;
+ public function setDate( $date) {
+ $this->date = $date;
+ }
+ public function getDate() {
+ return $this->date;
+ }
+ public function setEntity(Google_UsageReportEntity $entity) {
+ $this->entity = $entity;
+ }
+ public function getEntity() {
+ return $this->entity;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setParameters(/* array(Google_UsageReportParameters) */ $parameters) {
+ $this->assertIsArray($parameters, 'Google_UsageReportParameters', __METHOD__);
+ $this->parameters = $parameters;
+ }
+ public function getParameters() {
+ return $this->parameters;
+ }
+}
+
+class Google_UsageReportEntity extends Google_Model {
+ public $customerId;
+ public $profileId;
+ public $type;
+ public $userEmail;
+ public function setCustomerId( $customerId) {
+ $this->customerId = $customerId;
+ }
+ public function getCustomerId() {
+ return $this->customerId;
+ }
+ public function setProfileId( $profileId) {
+ $this->profileId = $profileId;
+ }
+ public function getProfileId() {
+ return $this->profileId;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUserEmail( $userEmail) {
+ $this->userEmail = $userEmail;
+ }
+ public function getUserEmail() {
+ return $this->userEmail;
+ }
+}
+
+class Google_UsageReportParameters extends Google_Model {
+ public $boolValue;
+ public $datetimeValue;
+ public $intValue;
+ public $name;
+ public $stringValue;
+ public function setBoolValue( $boolValue) {
+ $this->boolValue = $boolValue;
+ }
+ public function getBoolValue() {
+ return $this->boolValue;
+ }
+ public function setDatetimeValue( $datetimeValue) {
+ $this->datetimeValue = $datetimeValue;
+ }
+ public function getDatetimeValue() {
+ return $this->datetimeValue;
+ }
+ public function setIntValue( $intValue) {
+ $this->intValue = $intValue;
+ }
+ public function getIntValue() {
+ return $this->intValue;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setStringValue( $stringValue) {
+ $this->stringValue = $stringValue;
+ }
+ public function getStringValue() {
+ return $this->stringValue;
+ }
+}
+
+class Google_UsageReports extends Google_Model {
+ public $kind;
+ public $nextPageToken;
+ protected $__usageReportsType = 'Google_UsageReport';
+ protected $__usageReportsDataType = 'array';
+ public $usageReports;
+ protected $__warningsType = 'Google_UsageReportsWarnings';
+ protected $__warningsDataType = 'array';
+ public $warnings;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setUsageReports(/* array(Google_UsageReport) */ $usageReports) {
+ $this->assertIsArray($usageReports, 'Google_UsageReport', __METHOD__);
+ $this->usageReports = $usageReports;
+ }
+ public function getUsageReports() {
+ return $this->usageReports;
+ }
+ public function setWarnings(/* array(Google_UsageReportsWarnings) */ $warnings) {
+ $this->assertIsArray($warnings, 'Google_UsageReportsWarnings', __METHOD__);
+ $this->warnings = $warnings;
+ }
+ public function getWarnings() {
+ return $this->warnings;
+ }
+}
+
+class Google_UsageReportsWarnings extends Google_Model {
+ public $code;
+ protected $__dataType = 'Google_UsageReportsWarningsData';
+ protected $__dataDataType = 'array';
+ public $data;
+ public $message;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setData(/* array(Google_UsageReportsWarningsData) */ $data) {
+ $this->assertIsArray($data, 'Google_UsageReportsWarningsData', __METHOD__);
+ $this->data = $data;
+ }
+ public function getData() {
+ return $this->data;
+ }
+ public function setMessage( $message) {
+ $this->message = $message;
+ }
+ public function getMessage() {
+ return $this->message;
+ }
+}
+
+class Google_UsageReportsWarningsData extends Google_Model {
+ public $key;
+ public $value;
+ public function setKey( $key) {
+ $this->key = $key;
+ }
+ public function getKey() {
+ return $this->key;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ResellerService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ResellerService.php
new file mode 100644
index 0000000..63100dc
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ResellerService.php
@@ -0,0 +1,700 @@
+
+ * $resellerService = new Google_ResellerService(...);
+ * $customers = $resellerService->customers;
+ *
+ */
+ class Google_CustomersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Gets a customer resource if one exists and is owned by the reseller. (customers.get)
+ *
+ * @param string $customerId Id of the Customer
+ * @param array $optParams Optional parameters.
+ * @return Google_Customer
+ */
+ public function get($customerId, $optParams = array()) {
+ $params = array('customerId' => $customerId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Customer($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a customer resource if one does not already exist. (customers.insert)
+ *
+ * @param Google_Customer $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string customerAuthToken An auth token needed for inserting a customer for which domain already exists. Can be generated at https://www.google.com/a/cpanel//TransferToken. Optional.
+ * @return Google_Customer
+ */
+ public function insert(Google_Customer $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Customer($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update a customer resource if one it exists and is owned by the reseller. This method supports
+ * patch semantics. (customers.patch)
+ *
+ * @param string $customerId Id of the Customer
+ * @param Google_Customer $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Customer
+ */
+ public function patch($customerId, Google_Customer $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Customer($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update a customer resource if one it exists and is owned by the reseller. (customers.update)
+ *
+ * @param string $customerId Id of the Customer
+ * @param Google_Customer $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Customer
+ */
+ public function update($customerId, Google_Customer $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Customer($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "subscriptions" collection of methods.
+ * Typical usage is:
+ *
+ * $resellerService = new Google_ResellerService(...);
+ * $subscriptions = $resellerService->subscriptions;
+ *
+ */
+ class Google_SubscriptionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Changes the plan of a subscription (subscriptions.changePlan)
+ *
+ * @param string $customerId Id of the Customer
+ * @param string $subscriptionId Id of the subscription, which is unique for a customer
+ * @param Google_ChangePlanRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Subscription
+ */
+ public function changePlan($customerId, $subscriptionId, Google_ChangePlanRequest $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('changePlan', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscription($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Changes the renewal settings of a subscription (subscriptions.changeRenewalSettings)
+ *
+ * @param string $customerId Id of the Customer
+ * @param string $subscriptionId Id of the subscription, which is unique for a customer
+ * @param Google_RenewalSettings $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Subscription
+ */
+ public function changeRenewalSettings($customerId, $subscriptionId, Google_RenewalSettings $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('changeRenewalSettings', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscription($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Changes the seats configuration of a subscription (subscriptions.changeSeats)
+ *
+ * @param string $customerId Id of the Customer
+ * @param string $subscriptionId Id of the subscription, which is unique for a customer
+ * @param Google_Seats $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Subscription
+ */
+ public function changeSeats($customerId, $subscriptionId, Google_Seats $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('changeSeats', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscription($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Cancels/Downgrades a subscription. (subscriptions.delete)
+ *
+ * @param string $customerId Id of the Customer
+ * @param string $subscriptionId Id of the subscription, which is unique for a customer
+ * @param string $deletionType Whether the subscription is to be fully cancelled or downgraded
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($customerId, $subscriptionId, $deletionType, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId, 'deletionType' => $deletionType);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Gets a subscription of the customer. (subscriptions.get)
+ *
+ * @param string $customerId Id of the Customer
+ * @param string $subscriptionId Id of the subscription, which is unique for a customer
+ * @param array $optParams Optional parameters.
+ * @return Google_Subscription
+ */
+ public function get($customerId, $subscriptionId, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscription($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates/Transfers a subscription for the customer. (subscriptions.insert)
+ *
+ * @param string $customerId Id of the Customer
+ * @param Google_Subscription $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string customerAuthToken An auth token needed for transferring a subscription. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken. Optional.
+ * @return Google_Subscription
+ */
+ public function insert($customerId, Google_Subscription $postBody, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscription($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists subscriptions of a reseller, optionally filtered by a customer name prefix.
+ * (subscriptions.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string customerAuthToken An auth token needed if the customer is not a resold customer of this reseller. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken.Optional.
+ * @opt_param string customerId Id of the Customer
+ * @opt_param string customerNamePrefix Prefix of the customer's domain name by which the subscriptions should be filtered. Optional
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param string pageToken Token to specify next page in the list
+ * @return Google_Subscriptions
+ */
+ public function listSubscriptions($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscriptions($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Starts paid service of a trial subscription (subscriptions.startPaidService)
+ *
+ * @param string $customerId Id of the Customer
+ * @param string $subscriptionId Id of the subscription, which is unique for a customer
+ * @param array $optParams Optional parameters.
+ * @return Google_Subscription
+ */
+ public function startPaidService($customerId, $subscriptionId, $optParams = array()) {
+ $params = array('customerId' => $customerId, 'subscriptionId' => $subscriptionId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('startPaidService', array($params));
+ if ($this->useObjects()) {
+ return new Google_Subscription($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Reseller (v1).
+ *
+ *
+ * Lets you create and manage your customers and their subscriptions.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_ResellerService extends Google_Service {
+ public $customers;
+ public $subscriptions;
+ /**
+ * Constructs the internal representation of the Reseller service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'apps/reseller/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'reseller';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->customers = new Google_CustomersServiceResource($this, $this->serviceName, 'customers', json_decode('{"methods": {"get": {"id": "reseller.customers.get", "path": "customers/{customerId}", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Customer"}}, "insert": {"id": "reseller.customers.insert", "path": "customers", "httpMethod": "POST", "parameters": {"customerAuthToken": {"type": "string", "location": "query"}}, "request": {"$ref": "Customer"}, "response": {"$ref": "Customer"}}, "patch": {"id": "reseller.customers.patch", "path": "customers/{customerId}", "httpMethod": "PATCH", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Customer"}, "response": {"$ref": "Customer"}}, "update": {"id": "reseller.customers.update", "path": "customers/{customerId}", "httpMethod": "PUT", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Customer"}, "response": {"$ref": "Customer"}}}}', true));
+ $this->subscriptions = new Google_SubscriptionsServiceResource($this, $this->serviceName, 'subscriptions', json_decode('{"methods": {"changePlan": {"id": "reseller.subscriptions.changePlan", "path": "customers/{customerId}/subscriptions/{subscriptionId}/changePlan", "httpMethod": "POST", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "subscriptionId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ChangePlanRequest"}, "response": {"$ref": "Subscription"}}, "changeRenewalSettings": {"id": "reseller.subscriptions.changeRenewalSettings", "path": "customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings", "httpMethod": "POST", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "subscriptionId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "RenewalSettings"}, "response": {"$ref": "Subscription"}}, "changeSeats": {"id": "reseller.subscriptions.changeSeats", "path": "customers/{customerId}/subscriptions/{subscriptionId}/changeSeats", "httpMethod": "POST", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "subscriptionId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Seats"}, "response": {"$ref": "Subscription"}}, "delete": {"id": "reseller.subscriptions.delete", "path": "customers/{customerId}/subscriptions/{subscriptionId}", "httpMethod": "DELETE", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "deletionType": {"type": "string", "required": true, "enum": ["cancel", "downgrade", "suspend"], "location": "query"}, "subscriptionId": {"type": "string", "required": true, "location": "path"}}}, "get": {"id": "reseller.subscriptions.get", "path": "customers/{customerId}/subscriptions/{subscriptionId}", "httpMethod": "GET", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "subscriptionId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Subscription"}}, "insert": {"id": "reseller.subscriptions.insert", "path": "customers/{customerId}/subscriptions", "httpMethod": "POST", "parameters": {"customerAuthToken": {"type": "string", "location": "query"}, "customerId": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Subscription"}, "response": {"$ref": "Subscription"}}, "list": {"id": "reseller.subscriptions.list", "path": "subscriptions", "httpMethod": "GET", "parameters": {"customerAuthToken": {"type": "string", "location": "query"}, "customerId": {"type": "string", "location": "query"}, "customerNamePrefix": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "1", "maximum": "100", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "Subscriptions"}}, "startPaidService": {"id": "reseller.subscriptions.startPaidService", "path": "customers/{customerId}/subscriptions/{subscriptionId}/startPaidService", "httpMethod": "POST", "parameters": {"customerId": {"type": "string", "required": true, "location": "path"}, "subscriptionId": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Subscription"}}}}', true));
+
+ }
+}
+
+
+
+class Google_Address extends Google_Model {
+ public $addressLine1;
+ public $addressLine2;
+ public $addressLine3;
+ public $contactName;
+ public $countryCode;
+ public $kind;
+ public $locality;
+ public $organizationName;
+ public $postalCode;
+ public $region;
+ public function setAddressLine1( $addressLine1) {
+ $this->addressLine1 = $addressLine1;
+ }
+ public function getAddressLine1() {
+ return $this->addressLine1;
+ }
+ public function setAddressLine2( $addressLine2) {
+ $this->addressLine2 = $addressLine2;
+ }
+ public function getAddressLine2() {
+ return $this->addressLine2;
+ }
+ public function setAddressLine3( $addressLine3) {
+ $this->addressLine3 = $addressLine3;
+ }
+ public function getAddressLine3() {
+ return $this->addressLine3;
+ }
+ public function setContactName( $contactName) {
+ $this->contactName = $contactName;
+ }
+ public function getContactName() {
+ return $this->contactName;
+ }
+ public function setCountryCode( $countryCode) {
+ $this->countryCode = $countryCode;
+ }
+ public function getCountryCode() {
+ return $this->countryCode;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLocality( $locality) {
+ $this->locality = $locality;
+ }
+ public function getLocality() {
+ return $this->locality;
+ }
+ public function setOrganizationName( $organizationName) {
+ $this->organizationName = $organizationName;
+ }
+ public function getOrganizationName() {
+ return $this->organizationName;
+ }
+ public function setPostalCode( $postalCode) {
+ $this->postalCode = $postalCode;
+ }
+ public function getPostalCode() {
+ return $this->postalCode;
+ }
+ public function setRegion( $region) {
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+}
+
+class Google_ChangePlanRequest extends Google_Model {
+ public $kind;
+ public $planName;
+ public $purchaseOrderId;
+ protected $__seatsType = 'Google_Seats';
+ protected $__seatsDataType = '';
+ public $seats;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPlanName( $planName) {
+ $this->planName = $planName;
+ }
+ public function getPlanName() {
+ return $this->planName;
+ }
+ public function setPurchaseOrderId( $purchaseOrderId) {
+ $this->purchaseOrderId = $purchaseOrderId;
+ }
+ public function getPurchaseOrderId() {
+ return $this->purchaseOrderId;
+ }
+ public function setSeats(Google_Seats $seats) {
+ $this->seats = $seats;
+ }
+ public function getSeats() {
+ return $this->seats;
+ }
+}
+
+class Google_Customer extends Google_Model {
+ public $alternateEmail;
+ public $customerDomain;
+ public $customerId;
+ public $kind;
+ public $phoneNumber;
+ protected $__postalAddressType = 'Google_Address';
+ protected $__postalAddressDataType = '';
+ public $postalAddress;
+ public $resourceUiUrl;
+ public function setAlternateEmail( $alternateEmail) {
+ $this->alternateEmail = $alternateEmail;
+ }
+ public function getAlternateEmail() {
+ return $this->alternateEmail;
+ }
+ public function setCustomerDomain( $customerDomain) {
+ $this->customerDomain = $customerDomain;
+ }
+ public function getCustomerDomain() {
+ return $this->customerDomain;
+ }
+ public function setCustomerId( $customerId) {
+ $this->customerId = $customerId;
+ }
+ public function getCustomerId() {
+ return $this->customerId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPhoneNumber( $phoneNumber) {
+ $this->phoneNumber = $phoneNumber;
+ }
+ public function getPhoneNumber() {
+ return $this->phoneNumber;
+ }
+ public function setPostalAddress(Google_Address $postalAddress) {
+ $this->postalAddress = $postalAddress;
+ }
+ public function getPostalAddress() {
+ return $this->postalAddress;
+ }
+ public function setResourceUiUrl( $resourceUiUrl) {
+ $this->resourceUiUrl = $resourceUiUrl;
+ }
+ public function getResourceUiUrl() {
+ return $this->resourceUiUrl;
+ }
+}
+
+class Google_RenewalSettings extends Google_Model {
+ public $kind;
+ public $renewalType;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRenewalType( $renewalType) {
+ $this->renewalType = $renewalType;
+ }
+ public function getRenewalType() {
+ return $this->renewalType;
+ }
+}
+
+class Google_Seats extends Google_Model {
+ public $kind;
+ public $maximumNumberOfSeats;
+ public $numberOfSeats;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaximumNumberOfSeats( $maximumNumberOfSeats) {
+ $this->maximumNumberOfSeats = $maximumNumberOfSeats;
+ }
+ public function getMaximumNumberOfSeats() {
+ return $this->maximumNumberOfSeats;
+ }
+ public function setNumberOfSeats( $numberOfSeats) {
+ $this->numberOfSeats = $numberOfSeats;
+ }
+ public function getNumberOfSeats() {
+ return $this->numberOfSeats;
+ }
+}
+
+class Google_Subscription extends Google_Model {
+ public $creationTime;
+ public $customerId;
+ public $kind;
+ protected $__planType = 'Google_SubscriptionPlan';
+ protected $__planDataType = '';
+ public $plan;
+ public $purchaseOrderId;
+ protected $__renewalSettingsType = 'Google_RenewalSettings';
+ protected $__renewalSettingsDataType = '';
+ public $renewalSettings;
+ public $resourceUiUrl;
+ protected $__seatsType = 'Google_Seats';
+ protected $__seatsDataType = '';
+ public $seats;
+ public $skuId;
+ public $status;
+ public $subscriptionId;
+ protected $__transferInfoType = 'Google_SubscriptionTransferInfo';
+ protected $__transferInfoDataType = '';
+ public $transferInfo;
+ protected $__trialSettingsType = 'Google_SubscriptionTrialSettings';
+ protected $__trialSettingsDataType = '';
+ public $trialSettings;
+ public function setCreationTime( $creationTime) {
+ $this->creationTime = $creationTime;
+ }
+ public function getCreationTime() {
+ return $this->creationTime;
+ }
+ public function setCustomerId( $customerId) {
+ $this->customerId = $customerId;
+ }
+ public function getCustomerId() {
+ return $this->customerId;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPlan(Google_SubscriptionPlan $plan) {
+ $this->plan = $plan;
+ }
+ public function getPlan() {
+ return $this->plan;
+ }
+ public function setPurchaseOrderId( $purchaseOrderId) {
+ $this->purchaseOrderId = $purchaseOrderId;
+ }
+ public function getPurchaseOrderId() {
+ return $this->purchaseOrderId;
+ }
+ public function setRenewalSettings(Google_RenewalSettings $renewalSettings) {
+ $this->renewalSettings = $renewalSettings;
+ }
+ public function getRenewalSettings() {
+ return $this->renewalSettings;
+ }
+ public function setResourceUiUrl( $resourceUiUrl) {
+ $this->resourceUiUrl = $resourceUiUrl;
+ }
+ public function getResourceUiUrl() {
+ return $this->resourceUiUrl;
+ }
+ public function setSeats(Google_Seats $seats) {
+ $this->seats = $seats;
+ }
+ public function getSeats() {
+ return $this->seats;
+ }
+ public function setSkuId( $skuId) {
+ $this->skuId = $skuId;
+ }
+ public function getSkuId() {
+ return $this->skuId;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setSubscriptionId( $subscriptionId) {
+ $this->subscriptionId = $subscriptionId;
+ }
+ public function getSubscriptionId() {
+ return $this->subscriptionId;
+ }
+ public function setTransferInfo(Google_SubscriptionTransferInfo $transferInfo) {
+ $this->transferInfo = $transferInfo;
+ }
+ public function getTransferInfo() {
+ return $this->transferInfo;
+ }
+ public function setTrialSettings(Google_SubscriptionTrialSettings $trialSettings) {
+ $this->trialSettings = $trialSettings;
+ }
+ public function getTrialSettings() {
+ return $this->trialSettings;
+ }
+}
+
+class Google_SubscriptionPlan extends Google_Model {
+ protected $__commitmentIntervalType = 'Google_SubscriptionPlanCommitmentInterval';
+ protected $__commitmentIntervalDataType = '';
+ public $commitmentInterval;
+ public $isCommitmentPlan;
+ public $planName;
+ public function setCommitmentInterval(Google_SubscriptionPlanCommitmentInterval $commitmentInterval) {
+ $this->commitmentInterval = $commitmentInterval;
+ }
+ public function getCommitmentInterval() {
+ return $this->commitmentInterval;
+ }
+ public function setIsCommitmentPlan( $isCommitmentPlan) {
+ $this->isCommitmentPlan = $isCommitmentPlan;
+ }
+ public function getIsCommitmentPlan() {
+ return $this->isCommitmentPlan;
+ }
+ public function setPlanName( $planName) {
+ $this->planName = $planName;
+ }
+ public function getPlanName() {
+ return $this->planName;
+ }
+}
+
+class Google_SubscriptionPlanCommitmentInterval extends Google_Model {
+ public $endTime;
+ public $startTime;
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+}
+
+class Google_SubscriptionTransferInfo extends Google_Model {
+ public $transferabilityExpirationTime;
+ public function setTransferabilityExpirationTime( $transferabilityExpirationTime) {
+ $this->transferabilityExpirationTime = $transferabilityExpirationTime;
+ }
+ public function getTransferabilityExpirationTime() {
+ return $this->transferabilityExpirationTime;
+ }
+}
+
+class Google_SubscriptionTrialSettings extends Google_Model {
+ public $isInTrial;
+ public $trialEndTime;
+ public function setIsInTrial( $isInTrial) {
+ $this->isInTrial = $isInTrial;
+ }
+ public function getIsInTrial() {
+ return $this->isInTrial;
+ }
+ public function setTrialEndTime( $trialEndTime) {
+ $this->trialEndTime = $trialEndTime;
+ }
+ public function getTrialEndTime() {
+ return $this->trialEndTime;
+ }
+}
+
+class Google_Subscriptions extends Google_Model {
+ public $kind;
+ public $nextPageToken;
+ protected $__subscriptionsType = 'Google_Subscription';
+ protected $__subscriptionsDataType = 'array';
+ public $subscriptions;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setSubscriptions(/* array(Google_Subscription) */ $subscriptions) {
+ $this->assertIsArray($subscriptions, 'Google_Subscription', __METHOD__);
+ $this->subscriptions = $subscriptions;
+ }
+ public function getSubscriptions() {
+ return $this->subscriptions;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_SQLAdminService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_SQLAdminService.php
new file mode 100644
index 0000000..9d5932f
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_SQLAdminService.php
@@ -0,0 +1,1081 @@
+
+ * $sqladminService = new Google_SQLAdminService(...);
+ * $backupRuns = $sqladminService->backupRuns;
+ *
+ */
+ class Google_BackupRunsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves a resource containing information about a backup run. (backupRuns.get)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param string $backupConfiguration Identifier for the backup configuration. This gets generated automatically when a backup configuration is created.
+ * @param string $dueTime The time when this run is due to start in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+ * @param array $optParams Optional parameters.
+ * @return Google_BackupRun
+ */
+ public function get($project, $instance, $backupConfiguration, $dueTime, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance, 'backupConfiguration' => $backupConfiguration, 'dueTime' => $dueTime);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_BackupRun($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all backup runs associated with a given instance and configuration in the reverse
+ * chronological order of the enqueued time. (backupRuns.list)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param string $backupConfiguration Identifier for the backup configuration. This gets generated automatically when a backup configuration is created.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param int maxResults Maximum number of backup runs per response.
+ * @opt_param string pageToken A previously-returned page token representing part of the larger set of results to view.
+ * @return Google_BackupRunsListResponse
+ */
+ public function listBackupRuns($project, $instance, $backupConfiguration, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance, 'backupConfiguration' => $backupConfiguration);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_BackupRunsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "instances" collection of methods.
+ * Typical usage is:
+ *
+ * $sqladminService = new Google_SQLAdminService(...);
+ * $instances = $sqladminService->instances;
+ *
+ */
+ class Google_InstancesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes a database instance. (instances.delete)
+ *
+ * @param string $project Project ID of the project that contains the instance to be deleted. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param array $optParams Optional parameters.
+ * @return Google_InstancesDeleteResponse
+ */
+ public function delete($project, $instance, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesDeleteResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Exports data from a database instance to a Google Cloud Storage bucket as a MySQL dump file.
+ * (instances.export)
+ *
+ * @param string $project Project ID of the project that contains the instance to be exported. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param Google_InstancesExportRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_InstancesExportResponse
+ */
+ public function export($project, $instance, Google_InstancesExportRequest $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('export', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesExportResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a resource containing information about a database instance. (instances.get)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param array $optParams Optional parameters.
+ * @return Google_DatabaseInstance
+ */
+ public function get($project, $instance, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_DatabaseInstance($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Imports data into a database instance from a MySQL dump file in Google Cloud Storage.
+ * (instances.import)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param Google_InstancesImportRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_InstancesImportResponse
+ */
+ public function import($project, $instance, Google_InstancesImportRequest $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('import', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesImportResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new database instance. (instances.insert)
+ *
+ * @param string $project Project ID of the project to which the newly created database instances should belong. You can find this on the project summary page of the Google APIs Console.
+ * @param Google_DatabaseInstance $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_InstancesInsertResponse
+ */
+ public function insert($project, Google_DatabaseInstance $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesInsertResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists instances under a given project in the alphabetical order of the instance name.
+ * (instances.list)
+ *
+ * @param string $project Project ID of the project for which to list database instances. You can find this on the project summary page of the Google APIs Console.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults The maximum number of results to return per response.
+ * @opt_param string pageToken A previously-returned page token representing part of the larger set of results to view.
+ * @return Google_InstancesListResponse
+ */
+ public function listInstances($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates settings of a database instance. Caution: This is not a partial update, so you must
+ * include values for all the settings that you want to retain. For partial updates, use patch..
+ * This method supports patch semantics. (instances.patch)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param Google_DatabaseInstance $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_InstancesUpdateResponse
+ */
+ public function patch($project, $instance, Google_DatabaseInstance $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesUpdateResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Restarts a database instance. (instances.restart)
+ *
+ * @param string $project Project ID of the project that contains the instance to be restarted. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param array $optParams Optional parameters.
+ * @return Google_InstancesRestartResponse
+ */
+ public function restart($project, $instance, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('restart', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesRestartResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Restores a backup of a database instance. (instances.restoreBackup)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param string $backupConfiguration The identifier of the backup configuration. This gets generated automatically when a backup configuration is created.
+ * @param string $dueTime The time when this run is due to start in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+ * @param array $optParams Optional parameters.
+ * @return Google_InstancesRestoreBackupResponse
+ */
+ public function restoreBackup($project, $instance, $backupConfiguration, $dueTime, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance, 'backupConfiguration' => $backupConfiguration, 'dueTime' => $dueTime);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('restoreBackup', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesRestoreBackupResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates settings of a database instance. Caution: This is not a partial update, so you must
+ * include values for all the settings that you want to retain. For partial updates, use patch.
+ * (instances.update)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param Google_DatabaseInstance $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_InstancesUpdateResponse
+ */
+ public function update($project, $instance, Google_DatabaseInstance $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstancesUpdateResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "operations" collection of methods.
+ * Typical usage is:
+ *
+ * $sqladminService = new Google_SQLAdminService(...);
+ * $operations = $sqladminService->operations;
+ *
+ */
+ class Google_OperationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves an instance operation that has been performed on an instance. (operations.get)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param string $operation Instance operation ID.
+ * @param array $optParams Optional parameters.
+ * @return Google_InstanceOperation
+ */
+ public function get($project, $instance, $operation, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance, 'operation' => $operation);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_InstanceOperation($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lists all instance operations that have been performed on the given database instance in the
+ * reverse chronological order of the start time. (operations.list)
+ *
+ * @param string $project Project ID of the project that contains the instance. You can find this on the project summary page of the Google APIs Console.
+ * @param string $instance Database instance ID. This does not include the project ID.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of operations per response.
+ * @opt_param string pageToken A previously-returned page token representing part of the larger set of results to view.
+ * @return Google_OperationsListResponse
+ */
+ public function listOperations($project, $instance, $optParams = array()) {
+ $params = array('project' => $project, 'instance' => $instance);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_OperationsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "tiers" collection of methods.
+ * Typical usage is:
+ *
+ * $sqladminService = new Google_SQLAdminService(...);
+ * $tiers = $sqladminService->tiers;
+ *
+ */
+ class Google_TiersServiceResource extends Google_ServiceResource {
+
+ /**
+ * Lists all available service tiers for Google Cloud SQL, for example D1, D2. For related
+ * information, see Pricing. (tiers.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_TiersListResponse
+ */
+ public function listTiers($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TiersListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_SQLAdmin (v1beta1).
+ *
+ *
+ * API for Cloud SQL database instance management.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_SQLAdminService extends Google_Service {
+ public $backupRuns;
+ public $instances;
+ public $operations;
+ public $tiers;
+ /**
+ * Constructs the internal representation of the SQLAdmin service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'sql/v1beta1/';
+ $this->version = 'v1beta1';
+ $this->serviceName = 'sqladmin';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->backupRuns = new Google_BackupRunsServiceResource($this, $this->serviceName, 'backupRuns', json_decode('{"methods": {"get": {"id": "sql.backupRuns.get", "path": "projects/{project}/instances/{instance}/backupRuns/{backupConfiguration}", "httpMethod": "GET", "parameters": {"backupConfiguration": {"type": "string", "required": true, "location": "path"}, "dueTime": {"type": "string", "required": true, "location": "query"}, "instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "BackupRun"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "list": {"id": "sql.backupRuns.list", "path": "projects/{project}/instances/{instance}/backupRuns", "httpMethod": "GET", "parameters": {"backupConfiguration": {"type": "string", "required": true, "location": "query"}, "instance": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "int32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "BackupRunsListResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}}}', true));
+ $this->instances = new Google_InstancesServiceResource($this, $this->serviceName, 'instances', json_decode('{"methods": {"delete": {"id": "sql.instances.delete", "path": "projects/{project}/instances/{instance}", "httpMethod": "DELETE", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "InstancesDeleteResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "export": {"id": "sql.instances.export", "path": "projects/{project}/instances/{instance}/export", "httpMethod": "POST", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "InstancesExportRequest"}, "response": {"$ref": "InstancesExportResponse"}, "scopes": ["https://www.googleapis.com/auth/cloud-platform"]}, "get": {"id": "sql.instances.get", "path": "projects/{project}/instances/{instance}", "httpMethod": "GET", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "DatabaseInstance"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "import": {"id": "sql.instances.import", "path": "projects/{project}/instances/{instance}/import", "httpMethod": "POST", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "InstancesImportRequest"}, "response": {"$ref": "InstancesImportResponse"}, "scopes": ["https://www.googleapis.com/auth/cloud-platform"]}, "insert": {"id": "sql.instances.insert", "path": "projects/{project}/instances", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "DatabaseInstance"}, "response": {"$ref": "InstancesInsertResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "list": {"id": "sql.instances.list", "path": "projects/{project}/instances", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "InstancesListResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "patch": {"id": "sql.instances.patch", "path": "projects/{project}/instances/{instance}", "httpMethod": "PATCH", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "DatabaseInstance"}, "response": {"$ref": "InstancesUpdateResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "restart": {"id": "sql.instances.restart", "path": "projects/{project}/instances/{instance}/restart", "httpMethod": "POST", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "InstancesRestartResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "restoreBackup": {"id": "sql.instances.restoreBackup", "path": "projects/{project}/instances/{instance}/restoreBackup", "httpMethod": "POST", "parameters": {"backupConfiguration": {"type": "string", "required": true, "location": "query"}, "dueTime": {"type": "string", "required": true, "location": "query"}, "instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "InstancesRestoreBackupResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "update": {"id": "sql.instances.update", "path": "projects/{project}/instances/{instance}", "httpMethod": "PUT", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "etagRequired": true, "request": {"$ref": "DatabaseInstance"}, "response": {"$ref": "InstancesUpdateResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}}}', true));
+ $this->operations = new Google_OperationsServiceResource($this, $this->serviceName, 'operations', json_decode('{"methods": {"get": {"id": "sql.operations.get", "path": "projects/{project}/instances/{instance}/operations/{operation}", "httpMethod": "GET", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "operation": {"type": "string", "required": true, "location": "path"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "InstanceOperation"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}, "list": {"id": "sql.operations.list", "path": "projects/{project}/instances/{instance}/operations", "httpMethod": "GET", "parameters": {"instance": {"type": "string", "required": true, "location": "path"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "OperationsListResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}}}', true));
+ $this->tiers = new Google_TiersServiceResource($this, $this->serviceName, 'tiers', json_decode('{"methods": {"list": {"id": "sql.tiers.list", "path": "tiers", "httpMethod": "GET", "response": {"$ref": "TiersListResponse"}, "scopes": ["https://www.googleapis.com/auth/sqlservice.admin"]}}}', true));
+
+ }
+}
+
+
+
+class Google_BackupConfiguration extends Google_Model {
+ public $enabled;
+ public $id;
+ public $kind;
+ public $startTime;
+ public function setEnabled( $enabled) {
+ $this->enabled = $enabled;
+ }
+ public function getEnabled() {
+ return $this->enabled;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+}
+
+class Google_BackupRun extends Google_Model {
+ public $backupConfiguration;
+ public $dueTime;
+ public $endTime;
+ public $enqueuedTime;
+ protected $__errorType = 'Google_OperationError';
+ protected $__errorDataType = '';
+ public $error;
+ public $instance;
+ public $kind;
+ public $startTime;
+ public $status;
+ public function setBackupConfiguration( $backupConfiguration) {
+ $this->backupConfiguration = $backupConfiguration;
+ }
+ public function getBackupConfiguration() {
+ return $this->backupConfiguration;
+ }
+ public function setDueTime( $dueTime) {
+ $this->dueTime = $dueTime;
+ }
+ public function getDueTime() {
+ return $this->dueTime;
+ }
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setEnqueuedTime( $enqueuedTime) {
+ $this->enqueuedTime = $enqueuedTime;
+ }
+ public function getEnqueuedTime() {
+ return $this->enqueuedTime;
+ }
+ public function setError(Google_OperationError $error) {
+ $this->error = $error;
+ }
+ public function getError() {
+ return $this->error;
+ }
+ public function setInstance( $instance) {
+ $this->instance = $instance;
+ }
+ public function getInstance() {
+ return $this->instance;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_BackupRunsListResponse extends Google_Model {
+ protected $__itemsType = 'Google_BackupRun';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_BackupRun) */ $items) {
+ $this->assertIsArray($items, 'Google_BackupRun', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_DatabaseInstance extends Google_Model {
+ public $currentDiskSize;
+ public $databaseVersion;
+ public $etag;
+ public $instance;
+ public $kind;
+ public $maxDiskSize;
+ public $project;
+ public $region;
+ protected $__settingsType = 'Google_Settings';
+ protected $__settingsDataType = '';
+ public $settings;
+ public $state;
+ public function setCurrentDiskSize( $currentDiskSize) {
+ $this->currentDiskSize = $currentDiskSize;
+ }
+ public function getCurrentDiskSize() {
+ return $this->currentDiskSize;
+ }
+ public function setDatabaseVersion( $databaseVersion) {
+ $this->databaseVersion = $databaseVersion;
+ }
+ public function getDatabaseVersion() {
+ return $this->databaseVersion;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setInstance( $instance) {
+ $this->instance = $instance;
+ }
+ public function getInstance() {
+ return $this->instance;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaxDiskSize( $maxDiskSize) {
+ $this->maxDiskSize = $maxDiskSize;
+ }
+ public function getMaxDiskSize() {
+ return $this->maxDiskSize;
+ }
+ public function setProject( $project) {
+ $this->project = $project;
+ }
+ public function getProject() {
+ return $this->project;
+ }
+ public function setRegion( $region) {
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+ public function setSettings(Google_Settings $settings) {
+ $this->settings = $settings;
+ }
+ public function getSettings() {
+ return $this->settings;
+ }
+ public function setState( $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+}
+
+class Google_ExportContext extends Google_Model {
+ public $database;
+ public $kind;
+ public $table;
+ public $uri;
+ public function setDatabase(/* array(Google_string) */ $database) {
+ $this->assertIsArray($database, 'Google_string', __METHOD__);
+ $this->database = $database;
+ }
+ public function getDatabase() {
+ return $this->database;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setTable(/* array(Google_string) */ $table) {
+ $this->assertIsArray($table, 'Google_string', __METHOD__);
+ $this->table = $table;
+ }
+ public function getTable() {
+ return $this->table;
+ }
+ public function setUri( $uri) {
+ $this->uri = $uri;
+ }
+ public function getUri() {
+ return $this->uri;
+ }
+}
+
+class Google_ImportContext extends Google_Model {
+ public $database;
+ public $kind;
+ public $uri;
+ public function setDatabase( $database) {
+ $this->database = $database;
+ }
+ public function getDatabase() {
+ return $this->database;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setUri(/* array(Google_string) */ $uri) {
+ $this->assertIsArray($uri, 'Google_string', __METHOD__);
+ $this->uri = $uri;
+ }
+ public function getUri() {
+ return $this->uri;
+ }
+}
+
+class Google_InstanceOperation extends Google_Model {
+ public $endTime;
+ public $enqueuedTime;
+ protected $__errorType = 'Google_OperationError';
+ protected $__errorDataType = 'array';
+ public $error;
+ protected $__exportContextType = 'Google_ExportContext';
+ protected $__exportContextDataType = '';
+ public $exportContext;
+ protected $__importContextType = 'Google_ImportContext';
+ protected $__importContextDataType = '';
+ public $importContext;
+ public $instance;
+ public $kind;
+ public $operation;
+ public $operationType;
+ public $startTime;
+ public $state;
+ public $userEmailAddress;
+ public function setEndTime( $endTime) {
+ $this->endTime = $endTime;
+ }
+ public function getEndTime() {
+ return $this->endTime;
+ }
+ public function setEnqueuedTime( $enqueuedTime) {
+ $this->enqueuedTime = $enqueuedTime;
+ }
+ public function getEnqueuedTime() {
+ return $this->enqueuedTime;
+ }
+ public function setError(/* array(Google_OperationError) */ $error) {
+ $this->assertIsArray($error, 'Google_OperationError', __METHOD__);
+ $this->error = $error;
+ }
+ public function getError() {
+ return $this->error;
+ }
+ public function setExportContext(Google_ExportContext $exportContext) {
+ $this->exportContext = $exportContext;
+ }
+ public function getExportContext() {
+ return $this->exportContext;
+ }
+ public function setImportContext(Google_ImportContext $importContext) {
+ $this->importContext = $importContext;
+ }
+ public function getImportContext() {
+ return $this->importContext;
+ }
+ public function setInstance( $instance) {
+ $this->instance = $instance;
+ }
+ public function getInstance() {
+ return $this->instance;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+ public function setOperationType( $operationType) {
+ $this->operationType = $operationType;
+ }
+ public function getOperationType() {
+ return $this->operationType;
+ }
+ public function setStartTime( $startTime) {
+ $this->startTime = $startTime;
+ }
+ public function getStartTime() {
+ return $this->startTime;
+ }
+ public function setState( $state) {
+ $this->state = $state;
+ }
+ public function getState() {
+ return $this->state;
+ }
+ public function setUserEmailAddress( $userEmailAddress) {
+ $this->userEmailAddress = $userEmailAddress;
+ }
+ public function getUserEmailAddress() {
+ return $this->userEmailAddress;
+ }
+}
+
+class Google_InstancesDeleteResponse extends Google_Model {
+ public $kind;
+ public $operation;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+}
+
+class Google_InstancesExportRequest extends Google_Model {
+ protected $__exportContextType = 'Google_ExportContext';
+ protected $__exportContextDataType = '';
+ public $exportContext;
+ public function setExportContext(Google_ExportContext $exportContext) {
+ $this->exportContext = $exportContext;
+ }
+ public function getExportContext() {
+ return $this->exportContext;
+ }
+}
+
+class Google_InstancesExportResponse extends Google_Model {
+ public $kind;
+ public $operation;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+}
+
+class Google_InstancesImportRequest extends Google_Model {
+ protected $__importContextType = 'Google_ImportContext';
+ protected $__importContextDataType = '';
+ public $importContext;
+ public function setImportContext(Google_ImportContext $importContext) {
+ $this->importContext = $importContext;
+ }
+ public function getImportContext() {
+ return $this->importContext;
+ }
+}
+
+class Google_InstancesImportResponse extends Google_Model {
+ public $kind;
+ public $operation;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+}
+
+class Google_InstancesInsertResponse extends Google_Model {
+ public $kind;
+ public $operation;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+}
+
+class Google_InstancesListResponse extends Google_Model {
+ protected $__itemsType = 'Google_DatabaseInstance';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_DatabaseInstance) */ $items) {
+ $this->assertIsArray($items, 'Google_DatabaseInstance', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_InstancesRestartResponse extends Google_Model {
+ public $kind;
+ public $operation;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+}
+
+class Google_InstancesRestoreBackupResponse extends Google_Model {
+ public $kind;
+ public $operation;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+}
+
+class Google_InstancesUpdateResponse extends Google_Model {
+ public $kind;
+ public $operation;
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setOperation( $operation) {
+ $this->operation = $operation;
+ }
+ public function getOperation() {
+ return $this->operation;
+ }
+}
+
+class Google_OperationError extends Google_Model {
+ public $code;
+ public $kind;
+ public function setCode( $code) {
+ $this->code = $code;
+ }
+ public function getCode() {
+ return $this->code;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_OperationsListResponse extends Google_Model {
+ protected $__itemsType = 'Google_InstanceOperation';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_InstanceOperation) */ $items) {
+ $this->assertIsArray($items, 'Google_InstanceOperation', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Settings extends Google_Model {
+ public $activationPolicy;
+ public $authorizedGaeApplications;
+ protected $__backupConfigurationType = 'Google_BackupConfiguration';
+ protected $__backupConfigurationDataType = 'array';
+ public $backupConfiguration;
+ public $kind;
+ public $pricingPlan;
+ public $replicationType;
+ public $tier;
+ public function setActivationPolicy( $activationPolicy) {
+ $this->activationPolicy = $activationPolicy;
+ }
+ public function getActivationPolicy() {
+ return $this->activationPolicy;
+ }
+ public function setAuthorizedGaeApplications(/* array(Google_string) */ $authorizedGaeApplications) {
+ $this->assertIsArray($authorizedGaeApplications, 'Google_string', __METHOD__);
+ $this->authorizedGaeApplications = $authorizedGaeApplications;
+ }
+ public function getAuthorizedGaeApplications() {
+ return $this->authorizedGaeApplications;
+ }
+ public function setBackupConfiguration(/* array(Google_BackupConfiguration) */ $backupConfiguration) {
+ $this->assertIsArray($backupConfiguration, 'Google_BackupConfiguration', __METHOD__);
+ $this->backupConfiguration = $backupConfiguration;
+ }
+ public function getBackupConfiguration() {
+ return $this->backupConfiguration;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setPricingPlan( $pricingPlan) {
+ $this->pricingPlan = $pricingPlan;
+ }
+ public function getPricingPlan() {
+ return $this->pricingPlan;
+ }
+ public function setReplicationType( $replicationType) {
+ $this->replicationType = $replicationType;
+ }
+ public function getReplicationType() {
+ return $this->replicationType;
+ }
+ public function setTier( $tier) {
+ $this->tier = $tier;
+ }
+ public function getTier() {
+ return $this->tier;
+ }
+}
+
+class Google_Tier extends Google_Model {
+ public $DiskQuota;
+ public $RAM;
+ public $kind;
+ public $region;
+ public $tier;
+ public function setDiskQuota( $DiskQuota) {
+ $this->DiskQuota = $DiskQuota;
+ }
+ public function getDiskQuota() {
+ return $this->DiskQuota;
+ }
+ public function setRAM( $RAM) {
+ $this->RAM = $RAM;
+ }
+ public function getRAM() {
+ return $this->RAM;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRegion(/* array(Google_string) */ $region) {
+ $this->assertIsArray($region, 'Google_string', __METHOD__);
+ $this->region = $region;
+ }
+ public function getRegion() {
+ return $this->region;
+ }
+ public function setTier( $tier) {
+ $this->tier = $tier;
+ }
+ public function getTier() {
+ return $this->tier;
+ }
+}
+
+class Google_TiersListResponse extends Google_Model {
+ protected $__itemsType = 'Google_Tier';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Tier) */ $items) {
+ $this->assertIsArray($items, 'Google_Tier', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ShoppingService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ShoppingService.php
new file mode 100644
index 0000000..8ce399c
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_ShoppingService.php
@@ -0,0 +1,1408 @@
+
+ * $shoppingService = new Google_ShoppingService(...);
+ * $products = $shoppingService->products;
+ *
+ */
+ class Google_ProductsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns a single product (products.get)
+ *
+ * @param string $source Query source
+ * @param string $accountId Merchant center account id
+ * @param string $productIdType Type of productId
+ * @param string $productId Id of product
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string attributeFilter Comma separated list of attributes to return
+ * @opt_param bool categories.enabled Whether to return category information
+ * @opt_param string categories.include Category specification
+ * @opt_param bool categories.useGcsConfig This parameter is currently ignored
+ * @opt_param string location Location used to determine tax and shipping
+ * @opt_param bool recommendations.enabled Whether to return recommendation information
+ * @opt_param string recommendations.include Recommendation specification
+ * @opt_param bool recommendations.useGcsConfig This parameter is currently ignored
+ * @opt_param string taxonomy Merchant taxonomy
+ * @opt_param string thumbnails Thumbnail specification
+ * @return Google_Product
+ */
+ public function get($source, $accountId, $productIdType, $productId, $optParams = array()) {
+ $params = array('source' => $source, 'accountId' => $accountId, 'productIdType' => $productIdType, 'productId' => $productId);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Product($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns a list of products and content modules (products.list)
+ *
+ * @param string $source Query source
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string attributeFilter Comma separated list of attributes to return
+ * @opt_param string availability Comma separated list of availabilities (outOfStock, limited, inStock, backOrder, preOrder, onDisplayToOrder) to return
+ * @opt_param string boostBy Boosting specification
+ * @opt_param bool categories.enabled Whether to return category information
+ * @opt_param string categories.include Category specification
+ * @opt_param bool categories.useGcsConfig This parameter is currently ignored
+ * @opt_param string categoryRecommendations.category Category for which to retrieve recommendations
+ * @opt_param bool categoryRecommendations.enabled Whether to return category recommendation information
+ * @opt_param string categoryRecommendations.include Category recommendation specification
+ * @opt_param bool categoryRecommendations.useGcsConfig This parameter is currently ignored
+ * @opt_param string channels Channels specification
+ * @opt_param bool clickTracking Whether to add a click tracking parameter to offer URLs
+ * @opt_param string country Country restriction (ISO 3166)
+ * @opt_param string crowdBy Crowding specification
+ * @opt_param string currency Currency restriction (ISO 4217)
+ * @opt_param bool extras.enabled Whether to return extra information.
+ * @opt_param string extras.info What extra information to return.
+ * @opt_param string facets.discover Facets to discover
+ * @opt_param bool facets.enabled Whether to return facet information
+ * @opt_param string facets.include Facets to include (applies when useGcsConfig == false)
+ * @opt_param bool facets.includeEmptyBuckets Return empty facet buckets.
+ * @opt_param bool facets.useGcsConfig Whether to return facet information as configured in the GCS account
+ * @opt_param string language Language restriction (BCP 47)
+ * @opt_param string location Location used to determine tax and shipping
+ * @opt_param string maxResults Maximum number of results to return
+ * @opt_param int maxVariants Maximum number of variant results to return per result
+ * @opt_param bool promotions.enabled Whether to return promotion information
+ * @opt_param bool promotions.useGcsConfig Whether to return promotion information as configured in the GCS account
+ * @opt_param string q Search query
+ * @opt_param string rankBy Ranking specification
+ * @opt_param bool redirects.enabled Whether to return redirect information
+ * @opt_param bool redirects.useGcsConfig Whether to return redirect information as configured in the GCS account
+ * @opt_param bool relatedQueries.enabled Whether to return related queries
+ * @opt_param bool relatedQueries.useGcsConfig This parameter is currently ignored
+ * @opt_param string restrictBy Restriction specification
+ * @opt_param bool safe Whether safe search is enabled. Default: true
+ * @opt_param bool spelling.enabled Whether to return spelling suggestions
+ * @opt_param bool spelling.useGcsConfig This parameter is currently ignored
+ * @opt_param string startIndex Index (1-based) of first product to return
+ * @opt_param string taxonomy Taxonomy name
+ * @opt_param string thumbnails Image thumbnails specification
+ * @opt_param string useCase One of CommerceSearchUseCase, ShoppingApiUseCase
+ * @return Google_Products
+ */
+ public function listProducts($source, $optParams = array()) {
+ $params = array('source' => $source);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Products($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Shopping (v1).
+ *
+ *
+ * Lets you search over product data.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_ShoppingService extends Google_Service {
+ public $products;
+ /**
+ * Constructs the internal representation of the Shopping service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'shopping/search/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'shopping';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->products = new Google_ProductsServiceResource($this, $this->serviceName, 'products', json_decode('{"methods": {"get": {"id": "shopping.products.get", "path": "{source}/products/{accountId}/{productIdType}/{productId}", "httpMethod": "GET", "parameters": {"accountId": {"type": "integer", "required": true, "format": "uint32", "location": "path"}, "attributeFilter": {"type": "string", "location": "query"}, "categories.enabled": {"type": "boolean", "location": "query"}, "categories.include": {"type": "string", "location": "query"}, "categories.useGcsConfig": {"type": "boolean", "location": "query"}, "location": {"type": "string", "location": "query"}, "productId": {"type": "string", "required": true, "location": "path"}, "productIdType": {"type": "string", "required": true, "location": "path"}, "recommendations.enabled": {"type": "boolean", "location": "query"}, "recommendations.include": {"type": "string", "location": "query"}, "recommendations.useGcsConfig": {"type": "boolean", "location": "query"}, "source": {"type": "string", "required": true, "location": "path"}, "taxonomy": {"type": "string", "location": "query"}, "thumbnails": {"type": "string", "location": "query"}}, "response": {"$ref": "Product"}, "scopes": ["https://www.googleapis.com/auth/shoppingapi"]}, "list": {"id": "shopping.products.list", "path": "{source}/products", "httpMethod": "GET", "parameters": {"attributeFilter": {"type": "string", "location": "query"}, "availability": {"type": "string", "location": "query"}, "boostBy": {"type": "string", "location": "query"}, "categories.enabled": {"type": "boolean", "location": "query"}, "categories.include": {"type": "string", "location": "query"}, "categories.useGcsConfig": {"type": "boolean", "location": "query"}, "categoryRecommendations.category": {"type": "string", "location": "query"}, "categoryRecommendations.enabled": {"type": "boolean", "location": "query"}, "categoryRecommendations.include": {"type": "string", "location": "query"}, "categoryRecommendations.useGcsConfig": {"type": "boolean", "location": "query"}, "channels": {"type": "string", "location": "query"}, "clickTracking": {"type": "boolean", "location": "query"}, "country": {"type": "string", "location": "query"}, "crowdBy": {"type": "string", "location": "query"}, "currency": {"type": "string", "location": "query"}, "extras.enabled": {"type": "boolean", "location": "query"}, "extras.info": {"type": "string", "location": "query"}, "facets.discover": {"type": "string", "location": "query"}, "facets.enabled": {"type": "boolean", "location": "query"}, "facets.include": {"type": "string", "location": "query"}, "facets.includeEmptyBuckets": {"type": "boolean", "location": "query"}, "facets.useGcsConfig": {"type": "boolean", "location": "query"}, "language": {"type": "string", "location": "query"}, "location": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "location": "query"}, "maxVariants": {"type": "integer", "format": "int32", "location": "query"}, "promotions.enabled": {"type": "boolean", "location": "query"}, "promotions.useGcsConfig": {"type": "boolean", "location": "query"}, "q": {"type": "string", "location": "query"}, "rankBy": {"type": "string", "location": "query"}, "redirects.enabled": {"type": "boolean", "location": "query"}, "redirects.useGcsConfig": {"type": "boolean", "location": "query"}, "relatedQueries.enabled": {"type": "boolean", "location": "query"}, "relatedQueries.useGcsConfig": {"type": "boolean", "location": "query"}, "restrictBy": {"type": "string", "location": "query"}, "safe": {"type": "boolean", "location": "query"}, "source": {"type": "string", "required": true, "location": "path"}, "spelling.enabled": {"type": "boolean", "location": "query"}, "spelling.useGcsConfig": {"type": "boolean", "location": "query"}, "startIndex": {"type": "integer", "format": "uint32", "location": "query"}, "taxonomy": {"type": "string", "location": "query"}, "thumbnails": {"type": "string", "location": "query"}, "useCase": {"type": "string", "location": "query"}}, "response": {"$ref": "Products"}, "scopes": ["https://www.googleapis.com/auth/shoppingapi"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Product extends Google_Model {
+ protected $__categoriesType = 'Google_ShoppingModelCategoryJsonV1';
+ protected $__categoriesDataType = 'array';
+ public $categories;
+ protected $__debugType = 'Google_ShoppingModelDebugJsonV1';
+ protected $__debugDataType = '';
+ public $debug;
+ public $id;
+ public $kind;
+ protected $__productType = 'Google_ShoppingModelProductJsonV1';
+ protected $__productDataType = '';
+ public $product;
+ protected $__recommendationsType = 'Google_ShoppingModelRecommendationsJsonV1';
+ protected $__recommendationsDataType = 'array';
+ public $recommendations;
+ public $requestId;
+ public $selfLink;
+ public function setCategories(/* array(Google_ShoppingModelCategoryJsonV1) */ $categories) {
+ $this->assertIsArray($categories, 'Google_ShoppingModelCategoryJsonV1', __METHOD__);
+ $this->categories = $categories;
+ }
+ public function getCategories() {
+ return $this->categories;
+ }
+ public function setDebug(Google_ShoppingModelDebugJsonV1 $debug) {
+ $this->debug = $debug;
+ }
+ public function getDebug() {
+ return $this->debug;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setProduct(Google_ShoppingModelProductJsonV1 $product) {
+ $this->product = $product;
+ }
+ public function getProduct() {
+ return $this->product;
+ }
+ public function setRecommendations(/* array(Google_ShoppingModelRecommendationsJsonV1) */ $recommendations) {
+ $this->assertIsArray($recommendations, 'Google_ShoppingModelRecommendationsJsonV1', __METHOD__);
+ $this->recommendations = $recommendations;
+ }
+ public function getRecommendations() {
+ return $this->recommendations;
+ }
+ public function setRequestId( $requestId) {
+ $this->requestId = $requestId;
+ }
+ public function getRequestId() {
+ return $this->requestId;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_Products extends Google_Model {
+ protected $__categoriesType = 'Google_ShoppingModelCategoryJsonV1';
+ protected $__categoriesDataType = 'array';
+ public $categories;
+ protected $__categoryRecommendationsType = 'Google_ShoppingModelRecommendationsJsonV1';
+ protected $__categoryRecommendationsDataType = 'array';
+ public $categoryRecommendations;
+ public $currentItemCount;
+ protected $__debugType = 'Google_ShoppingModelDebugJsonV1';
+ protected $__debugDataType = '';
+ public $debug;
+ public $etag;
+ protected $__extrasType = 'Google_ShoppingModelExtrasJsonV1';
+ protected $__extrasDataType = '';
+ public $extras;
+ protected $__facetsType = 'Google_ProductsFacets';
+ protected $__facetsDataType = 'array';
+ public $facets;
+ public $id;
+ protected $__itemsType = 'Google_Product';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextLink;
+ public $previousLink;
+ protected $__promotionsType = 'Google_ProductsPromotions';
+ protected $__promotionsDataType = 'array';
+ public $promotions;
+ public $redirects;
+ public $relatedQueries;
+ public $requestId;
+ public $selfLink;
+ protected $__spellingType = 'Google_ProductsSpelling';
+ protected $__spellingDataType = '';
+ public $spelling;
+ public $startIndex;
+ protected $__storesType = 'Google_ProductsStores';
+ protected $__storesDataType = 'array';
+ public $stores;
+ public $totalItems;
+ public function setCategories(/* array(Google_ShoppingModelCategoryJsonV1) */ $categories) {
+ $this->assertIsArray($categories, 'Google_ShoppingModelCategoryJsonV1', __METHOD__);
+ $this->categories = $categories;
+ }
+ public function getCategories() {
+ return $this->categories;
+ }
+ public function setCategoryRecommendations(/* array(Google_ShoppingModelRecommendationsJsonV1) */ $categoryRecommendations) {
+ $this->assertIsArray($categoryRecommendations, 'Google_ShoppingModelRecommendationsJsonV1', __METHOD__);
+ $this->categoryRecommendations = $categoryRecommendations;
+ }
+ public function getCategoryRecommendations() {
+ return $this->categoryRecommendations;
+ }
+ public function setCurrentItemCount( $currentItemCount) {
+ $this->currentItemCount = $currentItemCount;
+ }
+ public function getCurrentItemCount() {
+ return $this->currentItemCount;
+ }
+ public function setDebug(Google_ShoppingModelDebugJsonV1 $debug) {
+ $this->debug = $debug;
+ }
+ public function getDebug() {
+ return $this->debug;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setExtras(Google_ShoppingModelExtrasJsonV1 $extras) {
+ $this->extras = $extras;
+ }
+ public function getExtras() {
+ return $this->extras;
+ }
+ public function setFacets(/* array(Google_ProductsFacets) */ $facets) {
+ $this->assertIsArray($facets, 'Google_ProductsFacets', __METHOD__);
+ $this->facets = $facets;
+ }
+ public function getFacets() {
+ return $this->facets;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setItems(/* array(Google_Product) */ $items) {
+ $this->assertIsArray($items, 'Google_Product', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextLink( $nextLink) {
+ $this->nextLink = $nextLink;
+ }
+ public function getNextLink() {
+ return $this->nextLink;
+ }
+ public function setPreviousLink( $previousLink) {
+ $this->previousLink = $previousLink;
+ }
+ public function getPreviousLink() {
+ return $this->previousLink;
+ }
+ public function setPromotions(/* array(Google_ProductsPromotions) */ $promotions) {
+ $this->assertIsArray($promotions, 'Google_ProductsPromotions', __METHOD__);
+ $this->promotions = $promotions;
+ }
+ public function getPromotions() {
+ return $this->promotions;
+ }
+ public function setRedirects(/* array(Google_string) */ $redirects) {
+ $this->assertIsArray($redirects, 'Google_string', __METHOD__);
+ $this->redirects = $redirects;
+ }
+ public function getRedirects() {
+ return $this->redirects;
+ }
+ public function setRelatedQueries(/* array(Google_string) */ $relatedQueries) {
+ $this->assertIsArray($relatedQueries, 'Google_string', __METHOD__);
+ $this->relatedQueries = $relatedQueries;
+ }
+ public function getRelatedQueries() {
+ return $this->relatedQueries;
+ }
+ public function setRequestId( $requestId) {
+ $this->requestId = $requestId;
+ }
+ public function getRequestId() {
+ return $this->requestId;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSpelling(Google_ProductsSpelling $spelling) {
+ $this->spelling = $spelling;
+ }
+ public function getSpelling() {
+ return $this->spelling;
+ }
+ public function setStartIndex( $startIndex) {
+ $this->startIndex = $startIndex;
+ }
+ public function getStartIndex() {
+ return $this->startIndex;
+ }
+ public function setStores(/* array(Google_ProductsStores) */ $stores) {
+ $this->assertIsArray($stores, 'Google_ProductsStores', __METHOD__);
+ $this->stores = $stores;
+ }
+ public function getStores() {
+ return $this->stores;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
+
+class Google_ProductsFacets extends Google_Model {
+ protected $__bucketsType = 'Google_ProductsFacetsBuckets';
+ protected $__bucketsDataType = 'array';
+ public $buckets;
+ public $count;
+ public $displayName;
+ public $name;
+ public $property;
+ public $type;
+ public $unit;
+ public function setBuckets(/* array(Google_ProductsFacetsBuckets) */ $buckets) {
+ $this->assertIsArray($buckets, 'Google_ProductsFacetsBuckets', __METHOD__);
+ $this->buckets = $buckets;
+ }
+ public function getBuckets() {
+ return $this->buckets;
+ }
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setProperty( $property) {
+ $this->property = $property;
+ }
+ public function getProperty() {
+ return $this->property;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUnit( $unit) {
+ $this->unit = $unit;
+ }
+ public function getUnit() {
+ return $this->unit;
+ }
+}
+
+class Google_ProductsFacetsBuckets extends Google_Model {
+ public $count;
+ public $max;
+ public $maxExclusive;
+ public $min;
+ public $minExclusive;
+ public $value;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setMax( $max) {
+ $this->max = $max;
+ }
+ public function getMax() {
+ return $this->max;
+ }
+ public function setMaxExclusive( $maxExclusive) {
+ $this->maxExclusive = $maxExclusive;
+ }
+ public function getMaxExclusive() {
+ return $this->maxExclusive;
+ }
+ public function setMin( $min) {
+ $this->min = $min;
+ }
+ public function getMin() {
+ return $this->min;
+ }
+ public function setMinExclusive( $minExclusive) {
+ $this->minExclusive = $minExclusive;
+ }
+ public function getMinExclusive() {
+ return $this->minExclusive;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_ProductsPromotions extends Google_Model {
+ protected $__customFieldsType = 'Google_ProductsPromotionsCustomFields';
+ protected $__customFieldsDataType = 'array';
+ public $customFields;
+ public $customHtml;
+ public $description;
+ public $destLink;
+ public $imageLink;
+ public $name;
+ protected $__productType = 'Google_ShoppingModelProductJsonV1';
+ protected $__productDataType = '';
+ public $product;
+ public $type;
+ public function setCustomFields(/* array(Google_ProductsPromotionsCustomFields) */ $customFields) {
+ $this->assertIsArray($customFields, 'Google_ProductsPromotionsCustomFields', __METHOD__);
+ $this->customFields = $customFields;
+ }
+ public function getCustomFields() {
+ return $this->customFields;
+ }
+ public function setCustomHtml( $customHtml) {
+ $this->customHtml = $customHtml;
+ }
+ public function getCustomHtml() {
+ return $this->customHtml;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setDestLink( $destLink) {
+ $this->destLink = $destLink;
+ }
+ public function getDestLink() {
+ return $this->destLink;
+ }
+ public function setImageLink( $imageLink) {
+ $this->imageLink = $imageLink;
+ }
+ public function getImageLink() {
+ return $this->imageLink;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setProduct(Google_ShoppingModelProductJsonV1 $product) {
+ $this->product = $product;
+ }
+ public function getProduct() {
+ return $this->product;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ProductsPromotionsCustomFields extends Google_Model {
+ public $name;
+ public $value;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_ProductsSpelling extends Google_Model {
+ public $suggestion;
+ public function setSuggestion( $suggestion) {
+ $this->suggestion = $suggestion;
+ }
+ public function getSuggestion() {
+ return $this->suggestion;
+ }
+}
+
+class Google_ProductsStores extends Google_Model {
+ public $address;
+ public $location;
+ public $name;
+ public $storeCode;
+ public $storeId;
+ public $storeName;
+ public $telephone;
+ public function setAddress( $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setStoreCode( $storeCode) {
+ $this->storeCode = $storeCode;
+ }
+ public function getStoreCode() {
+ return $this->storeCode;
+ }
+ public function setStoreId( $storeId) {
+ $this->storeId = $storeId;
+ }
+ public function getStoreId() {
+ return $this->storeId;
+ }
+ public function setStoreName( $storeName) {
+ $this->storeName = $storeName;
+ }
+ public function getStoreName() {
+ return $this->storeName;
+ }
+ public function setTelephone( $telephone) {
+ $this->telephone = $telephone;
+ }
+ public function getTelephone() {
+ return $this->telephone;
+ }
+}
+
+class Google_ShoppingModelCategoryJsonV1 extends Google_Model {
+ public $id;
+ public $parents;
+ public $shortName;
+ public $url;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setParents(/* array(Google_string) */ $parents) {
+ $this->assertIsArray($parents, 'Google_string', __METHOD__);
+ $this->parents = $parents;
+ }
+ public function getParents() {
+ return $this->parents;
+ }
+ public function setShortName( $shortName) {
+ $this->shortName = $shortName;
+ }
+ public function getShortName() {
+ return $this->shortName;
+ }
+ public function setUrl( $url) {
+ $this->url = $url;
+ }
+ public function getUrl() {
+ return $this->url;
+ }
+}
+
+class Google_ShoppingModelDebugJsonV1 extends Google_Model {
+ protected $__backendTimesType = 'Google_ShoppingModelDebugJsonV1BackendTimes';
+ protected $__backendTimesDataType = 'array';
+ public $backendTimes;
+ public $elapsedMillis;
+ public $facetsRequest;
+ public $facetsResponse;
+ public $rdcResponse;
+ public $recommendedItemsRequest;
+ public $recommendedItemsResponse;
+ public $searchRequest;
+ public $searchResponse;
+ public function setBackendTimes(/* array(Google_ShoppingModelDebugJsonV1BackendTimes) */ $backendTimes) {
+ $this->assertIsArray($backendTimes, 'Google_ShoppingModelDebugJsonV1BackendTimes', __METHOD__);
+ $this->backendTimes = $backendTimes;
+ }
+ public function getBackendTimes() {
+ return $this->backendTimes;
+ }
+ public function setElapsedMillis( $elapsedMillis) {
+ $this->elapsedMillis = $elapsedMillis;
+ }
+ public function getElapsedMillis() {
+ return $this->elapsedMillis;
+ }
+ public function setFacetsRequest( $facetsRequest) {
+ $this->facetsRequest = $facetsRequest;
+ }
+ public function getFacetsRequest() {
+ return $this->facetsRequest;
+ }
+ public function setFacetsResponse( $facetsResponse) {
+ $this->facetsResponse = $facetsResponse;
+ }
+ public function getFacetsResponse() {
+ return $this->facetsResponse;
+ }
+ public function setRdcResponse( $rdcResponse) {
+ $this->rdcResponse = $rdcResponse;
+ }
+ public function getRdcResponse() {
+ return $this->rdcResponse;
+ }
+ public function setRecommendedItemsRequest( $recommendedItemsRequest) {
+ $this->recommendedItemsRequest = $recommendedItemsRequest;
+ }
+ public function getRecommendedItemsRequest() {
+ return $this->recommendedItemsRequest;
+ }
+ public function setRecommendedItemsResponse( $recommendedItemsResponse) {
+ $this->recommendedItemsResponse = $recommendedItemsResponse;
+ }
+ public function getRecommendedItemsResponse() {
+ return $this->recommendedItemsResponse;
+ }
+ public function setSearchRequest( $searchRequest) {
+ $this->searchRequest = $searchRequest;
+ }
+ public function getSearchRequest() {
+ return $this->searchRequest;
+ }
+ public function setSearchResponse( $searchResponse) {
+ $this->searchResponse = $searchResponse;
+ }
+ public function getSearchResponse() {
+ return $this->searchResponse;
+ }
+}
+
+class Google_ShoppingModelDebugJsonV1BackendTimes extends Google_Model {
+ public $elapsedMillis;
+ public $hostName;
+ public $name;
+ public $serverMillis;
+ public function setElapsedMillis( $elapsedMillis) {
+ $this->elapsedMillis = $elapsedMillis;
+ }
+ public function getElapsedMillis() {
+ return $this->elapsedMillis;
+ }
+ public function setHostName( $hostName) {
+ $this->hostName = $hostName;
+ }
+ public function getHostName() {
+ return $this->hostName;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setServerMillis( $serverMillis) {
+ $this->serverMillis = $serverMillis;
+ }
+ public function getServerMillis() {
+ return $this->serverMillis;
+ }
+}
+
+class Google_ShoppingModelExtrasJsonV1 extends Google_Model {
+ protected $__facetRulesType = 'Google_ShoppingModelExtrasJsonV1FacetRules';
+ protected $__facetRulesDataType = 'array';
+ public $facetRules;
+ protected $__rankingRulesType = 'Google_ShoppingModelExtrasJsonV1RankingRules';
+ protected $__rankingRulesDataType = 'array';
+ public $rankingRules;
+ public function setFacetRules(/* array(Google_ShoppingModelExtrasJsonV1FacetRules) */ $facetRules) {
+ $this->assertIsArray($facetRules, 'Google_ShoppingModelExtrasJsonV1FacetRules', __METHOD__);
+ $this->facetRules = $facetRules;
+ }
+ public function getFacetRules() {
+ return $this->facetRules;
+ }
+ public function setRankingRules(/* array(Google_ShoppingModelExtrasJsonV1RankingRules) */ $rankingRules) {
+ $this->assertIsArray($rankingRules, 'Google_ShoppingModelExtrasJsonV1RankingRules', __METHOD__);
+ $this->rankingRules = $rankingRules;
+ }
+ public function getRankingRules() {
+ return $this->rankingRules;
+ }
+}
+
+class Google_ShoppingModelExtrasJsonV1FacetRules extends Google_Model {
+ public $name;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_ShoppingModelExtrasJsonV1RankingRules extends Google_Model {
+ public $name;
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1 extends Google_Model {
+ protected $__attributesType = 'Google_ShoppingModelProductJsonV1Attributes';
+ protected $__attributesDataType = 'array';
+ public $attributes;
+ protected $__authorType = 'Google_ShoppingModelProductJsonV1Author';
+ protected $__authorDataType = '';
+ public $author;
+ public $brand;
+ public $categories;
+ public $condition;
+ public $country;
+ public $creationTime;
+ public $description;
+ public $googleId;
+ public $gtin;
+ public $gtins;
+ protected $__imagesType = 'Google_ShoppingModelProductJsonV1Images';
+ protected $__imagesDataType = 'array';
+ public $images;
+ public $internal1;
+ public $internal10;
+ public $internal12;
+ public $internal13;
+ public $internal14;
+ public $internal15;
+ protected $__internal16Type = 'Google_ShoppingModelProductJsonV1Internal16';
+ protected $__internal16DataType = '';
+ public $internal16;
+ public $internal3;
+ protected $__internal4Type = 'Google_ShoppingModelProductJsonV1Internal4';
+ protected $__internal4DataType = 'array';
+ public $internal4;
+ public $internal6;
+ public $internal7;
+ public $internal8;
+ protected $__inventoriesType = 'Google_ShoppingModelProductJsonV1Inventories';
+ protected $__inventoriesDataType = 'array';
+ public $inventories;
+ public $language;
+ public $link;
+ public $modificationTime;
+ public $mpns;
+ public $plusOne;
+ public $providedId;
+ public $queryMatched;
+ public $score;
+ public $title;
+ public $totalMatchingVariants;
+ protected $__variantsType = 'Google_ShoppingModelProductJsonV1Variants';
+ protected $__variantsDataType = 'array';
+ public $variants;
+ public function setAttributes(/* array(Google_ShoppingModelProductJsonV1Attributes) */ $attributes) {
+ $this->assertIsArray($attributes, 'Google_ShoppingModelProductJsonV1Attributes', __METHOD__);
+ $this->attributes = $attributes;
+ }
+ public function getAttributes() {
+ return $this->attributes;
+ }
+ public function setAuthor(Google_ShoppingModelProductJsonV1Author $author) {
+ $this->author = $author;
+ }
+ public function getAuthor() {
+ return $this->author;
+ }
+ public function setBrand( $brand) {
+ $this->brand = $brand;
+ }
+ public function getBrand() {
+ return $this->brand;
+ }
+ public function setCategories(/* array(Google_string) */ $categories) {
+ $this->assertIsArray($categories, 'Google_string', __METHOD__);
+ $this->categories = $categories;
+ }
+ public function getCategories() {
+ return $this->categories;
+ }
+ public function setCondition( $condition) {
+ $this->condition = $condition;
+ }
+ public function getCondition() {
+ return $this->condition;
+ }
+ public function setCountry( $country) {
+ $this->country = $country;
+ }
+ public function getCountry() {
+ return $this->country;
+ }
+ public function setCreationTime( $creationTime) {
+ $this->creationTime = $creationTime;
+ }
+ public function getCreationTime() {
+ return $this->creationTime;
+ }
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setGoogleId( $googleId) {
+ $this->googleId = $googleId;
+ }
+ public function getGoogleId() {
+ return $this->googleId;
+ }
+ public function setGtin( $gtin) {
+ $this->gtin = $gtin;
+ }
+ public function getGtin() {
+ return $this->gtin;
+ }
+ public function setGtins(/* array(Google_string) */ $gtins) {
+ $this->assertIsArray($gtins, 'Google_string', __METHOD__);
+ $this->gtins = $gtins;
+ }
+ public function getGtins() {
+ return $this->gtins;
+ }
+ public function setImages(/* array(Google_ShoppingModelProductJsonV1Images) */ $images) {
+ $this->assertIsArray($images, 'Google_ShoppingModelProductJsonV1Images', __METHOD__);
+ $this->images = $images;
+ }
+ public function getImages() {
+ return $this->images;
+ }
+ public function setInternal1(/* array(Google_string) */ $internal1) {
+ $this->assertIsArray($internal1, 'Google_string', __METHOD__);
+ $this->internal1 = $internal1;
+ }
+ public function getInternal1() {
+ return $this->internal1;
+ }
+ public function setInternal10(/* array(Google_string) */ $internal10) {
+ $this->assertIsArray($internal10, 'Google_string', __METHOD__);
+ $this->internal10 = $internal10;
+ }
+ public function getInternal10() {
+ return $this->internal10;
+ }
+ public function setInternal12( $internal12) {
+ $this->internal12 = $internal12;
+ }
+ public function getInternal12() {
+ return $this->internal12;
+ }
+ public function setInternal13( $internal13) {
+ $this->internal13 = $internal13;
+ }
+ public function getInternal13() {
+ return $this->internal13;
+ }
+ public function setInternal14( $internal14) {
+ $this->internal14 = $internal14;
+ }
+ public function getInternal14() {
+ return $this->internal14;
+ }
+ public function setInternal15( $internal15) {
+ $this->internal15 = $internal15;
+ }
+ public function getInternal15() {
+ return $this->internal15;
+ }
+ public function setInternal16(Google_ShoppingModelProductJsonV1Internal16 $internal16) {
+ $this->internal16 = $internal16;
+ }
+ public function getInternal16() {
+ return $this->internal16;
+ }
+ public function setInternal3( $internal3) {
+ $this->internal3 = $internal3;
+ }
+ public function getInternal3() {
+ return $this->internal3;
+ }
+ public function setInternal4(/* array(Google_ShoppingModelProductJsonV1Internal4) */ $internal4) {
+ $this->assertIsArray($internal4, 'Google_ShoppingModelProductJsonV1Internal4', __METHOD__);
+ $this->internal4 = $internal4;
+ }
+ public function getInternal4() {
+ return $this->internal4;
+ }
+ public function setInternal6( $internal6) {
+ $this->internal6 = $internal6;
+ }
+ public function getInternal6() {
+ return $this->internal6;
+ }
+ public function setInternal7( $internal7) {
+ $this->internal7 = $internal7;
+ }
+ public function getInternal7() {
+ return $this->internal7;
+ }
+ public function setInternal8(/* array(Google_string) */ $internal8) {
+ $this->assertIsArray($internal8, 'Google_string', __METHOD__);
+ $this->internal8 = $internal8;
+ }
+ public function getInternal8() {
+ return $this->internal8;
+ }
+ public function setInventories(/* array(Google_ShoppingModelProductJsonV1Inventories) */ $inventories) {
+ $this->assertIsArray($inventories, 'Google_ShoppingModelProductJsonV1Inventories', __METHOD__);
+ $this->inventories = $inventories;
+ }
+ public function getInventories() {
+ return $this->inventories;
+ }
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setModificationTime( $modificationTime) {
+ $this->modificationTime = $modificationTime;
+ }
+ public function getModificationTime() {
+ return $this->modificationTime;
+ }
+ public function setMpns(/* array(Google_string) */ $mpns) {
+ $this->assertIsArray($mpns, 'Google_string', __METHOD__);
+ $this->mpns = $mpns;
+ }
+ public function getMpns() {
+ return $this->mpns;
+ }
+ public function setPlusOne( $plusOne) {
+ $this->plusOne = $plusOne;
+ }
+ public function getPlusOne() {
+ return $this->plusOne;
+ }
+ public function setProvidedId( $providedId) {
+ $this->providedId = $providedId;
+ }
+ public function getProvidedId() {
+ return $this->providedId;
+ }
+ public function setQueryMatched( $queryMatched) {
+ $this->queryMatched = $queryMatched;
+ }
+ public function getQueryMatched() {
+ return $this->queryMatched;
+ }
+ public function setScore( $score) {
+ $this->score = $score;
+ }
+ public function getScore() {
+ return $this->score;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setTotalMatchingVariants( $totalMatchingVariants) {
+ $this->totalMatchingVariants = $totalMatchingVariants;
+ }
+ public function getTotalMatchingVariants() {
+ return $this->totalMatchingVariants;
+ }
+ public function setVariants(/* array(Google_ShoppingModelProductJsonV1Variants) */ $variants) {
+ $this->assertIsArray($variants, 'Google_ShoppingModelProductJsonV1Variants', __METHOD__);
+ $this->variants = $variants;
+ }
+ public function getVariants() {
+ return $this->variants;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1Attributes extends Google_Model {
+ public $displayName;
+ public $name;
+ public $type;
+ public $unit;
+ public $value;
+ public function setDisplayName( $displayName) {
+ $this->displayName = $displayName;
+ }
+ public function getDisplayName() {
+ return $this->displayName;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+ public function setUnit( $unit) {
+ $this->unit = $unit;
+ }
+ public function getUnit() {
+ return $this->unit;
+ }
+ public function setValue( $value) {
+ $this->value = $value;
+ }
+ public function getValue() {
+ return $this->value;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1Author extends Google_Model {
+ public $accountId;
+ public $name;
+ public function setAccountId( $accountId) {
+ $this->accountId = $accountId;
+ }
+ public function getAccountId() {
+ return $this->accountId;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1Images extends Google_Model {
+ public $link;
+ public $status;
+ protected $__thumbnailsType = 'Google_ShoppingModelProductJsonV1ImagesThumbnails';
+ protected $__thumbnailsDataType = 'array';
+ public $thumbnails;
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setThumbnails(/* array(Google_ShoppingModelProductJsonV1ImagesThumbnails) */ $thumbnails) {
+ $this->assertIsArray($thumbnails, 'Google_ShoppingModelProductJsonV1ImagesThumbnails', __METHOD__);
+ $this->thumbnails = $thumbnails;
+ }
+ public function getThumbnails() {
+ return $this->thumbnails;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1ImagesThumbnails extends Google_Model {
+ public $content;
+ public $height;
+ public $link;
+ public $width;
+ public function setContent( $content) {
+ $this->content = $content;
+ }
+ public function getContent() {
+ return $this->content;
+ }
+ public function setHeight( $height) {
+ $this->height = $height;
+ }
+ public function getHeight() {
+ return $this->height;
+ }
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setWidth( $width) {
+ $this->width = $width;
+ }
+ public function getWidth() {
+ return $this->width;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1Internal16 extends Google_Model {
+ public $length;
+ public $number;
+ public $size;
+ public function setLength( $length) {
+ $this->length = $length;
+ }
+ public function getLength() {
+ return $this->length;
+ }
+ public function setNumber( $number) {
+ $this->number = $number;
+ }
+ public function getNumber() {
+ return $this->number;
+ }
+ public function setSize( $size) {
+ $this->size = $size;
+ }
+ public function getSize() {
+ return $this->size;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1Internal4 extends Google_Model {
+ public $confidence;
+ public $node;
+ public function setConfidence( $confidence) {
+ $this->confidence = $confidence;
+ }
+ public function getConfidence() {
+ return $this->confidence;
+ }
+ public function setNode( $node) {
+ $this->node = $node;
+ }
+ public function getNode() {
+ return $this->node;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1Inventories extends Google_Model {
+ public $availability;
+ public $channel;
+ public $currency;
+ public $distance;
+ public $distanceUnit;
+ public $installmentMonths;
+ public $installmentPrice;
+ public $originalPrice;
+ public $price;
+ public $saleEndDate;
+ public $salePrice;
+ public $saleStartDate;
+ public $shipping;
+ public $storeId;
+ public $tax;
+ public function setAvailability( $availability) {
+ $this->availability = $availability;
+ }
+ public function getAvailability() {
+ return $this->availability;
+ }
+ public function setChannel( $channel) {
+ $this->channel = $channel;
+ }
+ public function getChannel() {
+ return $this->channel;
+ }
+ public function setCurrency( $currency) {
+ $this->currency = $currency;
+ }
+ public function getCurrency() {
+ return $this->currency;
+ }
+ public function setDistance( $distance) {
+ $this->distance = $distance;
+ }
+ public function getDistance() {
+ return $this->distance;
+ }
+ public function setDistanceUnit( $distanceUnit) {
+ $this->distanceUnit = $distanceUnit;
+ }
+ public function getDistanceUnit() {
+ return $this->distanceUnit;
+ }
+ public function setInstallmentMonths( $installmentMonths) {
+ $this->installmentMonths = $installmentMonths;
+ }
+ public function getInstallmentMonths() {
+ return $this->installmentMonths;
+ }
+ public function setInstallmentPrice( $installmentPrice) {
+ $this->installmentPrice = $installmentPrice;
+ }
+ public function getInstallmentPrice() {
+ return $this->installmentPrice;
+ }
+ public function setOriginalPrice( $originalPrice) {
+ $this->originalPrice = $originalPrice;
+ }
+ public function getOriginalPrice() {
+ return $this->originalPrice;
+ }
+ public function setPrice( $price) {
+ $this->price = $price;
+ }
+ public function getPrice() {
+ return $this->price;
+ }
+ public function setSaleEndDate( $saleEndDate) {
+ $this->saleEndDate = $saleEndDate;
+ }
+ public function getSaleEndDate() {
+ return $this->saleEndDate;
+ }
+ public function setSalePrice( $salePrice) {
+ $this->salePrice = $salePrice;
+ }
+ public function getSalePrice() {
+ return $this->salePrice;
+ }
+ public function setSaleStartDate( $saleStartDate) {
+ $this->saleStartDate = $saleStartDate;
+ }
+ public function getSaleStartDate() {
+ return $this->saleStartDate;
+ }
+ public function setShipping( $shipping) {
+ $this->shipping = $shipping;
+ }
+ public function getShipping() {
+ return $this->shipping;
+ }
+ public function setStoreId( $storeId) {
+ $this->storeId = $storeId;
+ }
+ public function getStoreId() {
+ return $this->storeId;
+ }
+ public function setTax( $tax) {
+ $this->tax = $tax;
+ }
+ public function getTax() {
+ return $this->tax;
+ }
+}
+
+class Google_ShoppingModelProductJsonV1Variants extends Google_Model {
+ protected $__variantType = 'Google_ShoppingModelProductJsonV1';
+ protected $__variantDataType = '';
+ public $variant;
+ public function setVariant(Google_ShoppingModelProductJsonV1 $variant) {
+ $this->variant = $variant;
+ }
+ public function getVariant() {
+ return $this->variant;
+ }
+}
+
+class Google_ShoppingModelRecommendationsJsonV1 extends Google_Model {
+ protected $__recommendationListType = 'Google_ShoppingModelRecommendationsJsonV1RecommendationList';
+ protected $__recommendationListDataType = 'array';
+ public $recommendationList;
+ public $type;
+ public function setRecommendationList(/* array(Google_ShoppingModelRecommendationsJsonV1RecommendationList) */ $recommendationList) {
+ $this->assertIsArray($recommendationList, 'Google_ShoppingModelRecommendationsJsonV1RecommendationList', __METHOD__);
+ $this->recommendationList = $recommendationList;
+ }
+ public function getRecommendationList() {
+ return $this->recommendationList;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ShoppingModelRecommendationsJsonV1RecommendationList extends Google_Model {
+ protected $__productType = 'Google_ShoppingModelProductJsonV1';
+ protected $__productDataType = '';
+ public $product;
+ public function setProduct(Google_ShoppingModelProductJsonV1 $product) {
+ $this->product = $product;
+ }
+ public function getProduct() {
+ return $this->product;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_SiteVerificationService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_SiteVerificationService.php
new file mode 100644
index 0000000..6ccc50a
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_SiteVerificationService.php
@@ -0,0 +1,288 @@
+
+ * $siteVerificationService = new Google_SiteVerificationService(...);
+ * $webResource = $siteVerificationService->webResource;
+ *
+ */
+ class Google_WebResourceServiceResource extends Google_ServiceResource {
+
+ /**
+ * Relinquish ownership of a website or domain. (webResource.delete)
+ *
+ * @param string $id The id of a verified site or domain.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Get the most current data for a website or domain. (webResource.get)
+ *
+ * @param string $id The id of a verified site or domain.
+ * @param array $optParams Optional parameters.
+ * @return Google_SiteVerificationWebResourceResource
+ */
+ public function get($id, $optParams = array()) {
+ $params = array('id' => $id);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_SiteVerificationWebResourceResource($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Get a verification token for placing on a website or domain. (webResource.getToken)
+ *
+ * @param Google_SiteVerificationWebResourceGettokenRequest $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_SiteVerificationWebResourceGettokenResponse
+ */
+ public function getToken(Google_SiteVerificationWebResourceGettokenRequest $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('getToken', array($params));
+ if ($this->useObjects()) {
+ return new Google_SiteVerificationWebResourceGettokenResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Attempt verification of a website or domain. (webResource.insert)
+ *
+ * @param string $verificationMethod The method to use for verifying a site or domain.
+ * @param Google_SiteVerificationWebResourceResource $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_SiteVerificationWebResourceResource
+ */
+ public function insert($verificationMethod, Google_SiteVerificationWebResourceResource $postBody, $optParams = array()) {
+ $params = array('verificationMethod' => $verificationMethod, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_SiteVerificationWebResourceResource($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Get the list of your verified websites and domains. (webResource.list)
+ *
+ * @param array $optParams Optional parameters.
+ * @return Google_SiteVerificationWebResourceListResponse
+ */
+ public function listWebResource($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_SiteVerificationWebResourceListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Modify the list of owners for your website or domain. This method supports patch semantics.
+ * (webResource.patch)
+ *
+ * @param string $id The id of a verified site or domain.
+ * @param Google_SiteVerificationWebResourceResource $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_SiteVerificationWebResourceResource
+ */
+ public function patch($id, Google_SiteVerificationWebResourceResource $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_SiteVerificationWebResourceResource($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Modify the list of owners for your website or domain. (webResource.update)
+ *
+ * @param string $id The id of a verified site or domain.
+ * @param Google_SiteVerificationWebResourceResource $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_SiteVerificationWebResourceResource
+ */
+ public function update($id, Google_SiteVerificationWebResourceResource $postBody, $optParams = array()) {
+ $params = array('id' => $id, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_SiteVerificationWebResourceResource($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_SiteVerification (v1).
+ *
+ *
+ * Lets you programatically verify ownership of websites or domains with Google.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_SiteVerificationService extends Google_Service {
+ public $webResource;
+ /**
+ * Constructs the internal representation of the SiteVerification service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'siteVerification/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'siteVerification';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->webResource = new Google_WebResourceServiceResource($this, $this->serviceName, 'webResource', json_decode('{"methods": {"delete": {"id": "siteVerification.webResource.delete", "path": "webResource/{id}", "httpMethod": "DELETE", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/siteverification"]}, "get": {"id": "siteVerification.webResource.get", "path": "webResource/{id}", "httpMethod": "GET", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "SiteVerificationWebResourceResource"}, "scopes": ["https://www.googleapis.com/auth/siteverification"]}, "getToken": {"id": "siteVerification.webResource.getToken", "path": "token", "httpMethod": "POST", "request": {"$ref": "SiteVerificationWebResourceGettokenRequest"}, "response": {"$ref": "SiteVerificationWebResourceGettokenResponse"}, "scopes": ["https://www.googleapis.com/auth/siteverification", "https://www.googleapis.com/auth/siteverification.verify_only"]}, "insert": {"id": "siteVerification.webResource.insert", "path": "webResource", "httpMethod": "POST", "parameters": {"verificationMethod": {"type": "string", "required": true, "location": "query"}}, "request": {"$ref": "SiteVerificationWebResourceResource"}, "response": {"$ref": "SiteVerificationWebResourceResource"}, "scopes": ["https://www.googleapis.com/auth/siteverification", "https://www.googleapis.com/auth/siteverification.verify_only"]}, "list": {"id": "siteVerification.webResource.list", "path": "webResource", "httpMethod": "GET", "response": {"$ref": "SiteVerificationWebResourceListResponse"}, "scopes": ["https://www.googleapis.com/auth/siteverification"]}, "patch": {"id": "siteVerification.webResource.patch", "path": "webResource/{id}", "httpMethod": "PATCH", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "SiteVerificationWebResourceResource"}, "response": {"$ref": "SiteVerificationWebResourceResource"}, "scopes": ["https://www.googleapis.com/auth/siteverification"]}, "update": {"id": "siteVerification.webResource.update", "path": "webResource/{id}", "httpMethod": "PUT", "parameters": {"id": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "SiteVerificationWebResourceResource"}, "response": {"$ref": "SiteVerificationWebResourceResource"}, "scopes": ["https://www.googleapis.com/auth/siteverification"]}}}', true));
+
+ }
+}
+
+
+
+class Google_SiteVerificationWebResourceGettokenRequest extends Google_Model {
+ protected $__siteType = 'Google_SiteVerificationWebResourceGettokenRequestSite';
+ protected $__siteDataType = '';
+ public $site;
+ public $verificationMethod;
+ public function setSite(Google_SiteVerificationWebResourceGettokenRequestSite $site) {
+ $this->site = $site;
+ }
+ public function getSite() {
+ return $this->site;
+ }
+ public function setVerificationMethod( $verificationMethod) {
+ $this->verificationMethod = $verificationMethod;
+ }
+ public function getVerificationMethod() {
+ return $this->verificationMethod;
+ }
+}
+
+class Google_SiteVerificationWebResourceGettokenRequestSite extends Google_Model {
+ public $identifier;
+ public $type;
+ public function setIdentifier( $identifier) {
+ $this->identifier = $identifier;
+ }
+ public function getIdentifier() {
+ return $this->identifier;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_SiteVerificationWebResourceGettokenResponse extends Google_Model {
+ public $method;
+ public $token;
+ public function setMethod( $method) {
+ $this->method = $method;
+ }
+ public function getMethod() {
+ return $this->method;
+ }
+ public function setToken( $token) {
+ $this->token = $token;
+ }
+ public function getToken() {
+ return $this->token;
+ }
+}
+
+class Google_SiteVerificationWebResourceListResponse extends Google_Model {
+ protected $__itemsType = 'Google_SiteVerificationWebResourceResource';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public function setItems(/* array(Google_SiteVerificationWebResourceResource) */ $items) {
+ $this->assertIsArray($items, 'Google_SiteVerificationWebResourceResource', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+}
+
+class Google_SiteVerificationWebResourceResource extends Google_Model {
+ public $id;
+ public $owners;
+ protected $__siteType = 'Google_SiteVerificationWebResourceResourceSite';
+ protected $__siteDataType = '';
+ public $site;
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setOwners(/* array(Google_string) */ $owners) {
+ $this->assertIsArray($owners, 'Google_string', __METHOD__);
+ $this->owners = $owners;
+ }
+ public function getOwners() {
+ return $this->owners;
+ }
+ public function setSite(Google_SiteVerificationWebResourceResourceSite $site) {
+ $this->site = $site;
+ }
+ public function getSite() {
+ return $this->site;
+ }
+}
+
+class Google_SiteVerificationWebResourceResourceSite extends Google_Model {
+ public $identifier;
+ public $type;
+ public function setIdentifier( $identifier) {
+ $this->identifier = $identifier;
+ }
+ public function getIdentifier() {
+ return $this->identifier;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_StorageService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_StorageService.php
new file mode 100644
index 0000000..ac04d6e
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_StorageService.php
@@ -0,0 +1,1718 @@
+
+ * $storageService = new Google_StorageService(...);
+ * $bucketAccessControls = $storageService->bucketAccessControls;
+ *
+ */
+ class Google_BucketAccessControlsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Permanently deletes the ACL entry for the specified entity on the specified bucket.
+ * (bucketAccessControls.delete)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($bucket, $entity, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'entity' => $entity);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns the ACL entry for the specified entity on the specified bucket.
+ * (bucketAccessControls.get)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param array $optParams Optional parameters.
+ * @return Google_BucketAccessControl
+ */
+ public function get($bucket, $entity, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'entity' => $entity);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_BucketAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new ACL entry on the specified bucket. (bucketAccessControls.insert)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param Google_BucketAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_BucketAccessControl
+ */
+ public function insert($bucket, Google_BucketAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_BucketAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves ACL entries on the specified bucket. (bucketAccessControls.list)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param array $optParams Optional parameters.
+ * @return Google_BucketAccessControls
+ */
+ public function listBucketAccessControls($bucket, $optParams = array()) {
+ $params = array('bucket' => $bucket);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_BucketAccessControls($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an ACL entry on the specified bucket. This method supports patch semantics.
+ * (bucketAccessControls.patch)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param Google_BucketAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_BucketAccessControl
+ */
+ public function patch($bucket, $entity, Google_BucketAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'entity' => $entity, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_BucketAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an ACL entry on the specified bucket. (bucketAccessControls.update)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param Google_BucketAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_BucketAccessControl
+ */
+ public function update($bucket, $entity, Google_BucketAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'entity' => $entity, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_BucketAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "buckets" collection of methods.
+ * Typical usage is:
+ *
+ * $storageService = new Google_StorageService(...);
+ * $buckets = $storageService->buckets;
+ *
+ */
+ class Google_BucketsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Permanently deletes an empty bucket. (buckets.delete)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string ifMetagenerationMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
+ */
+ public function delete($bucket, $optParams = array()) {
+ $params = array('bucket' => $bucket);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns metadata for the specified bucket. (buckets.get)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string ifMetagenerationMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
+ * @opt_param string projection Set of properties to return. Defaults to noAcl.
+ * @return Google_Bucket
+ */
+ public function get($bucket, $optParams = array()) {
+ $params = array('bucket' => $bucket);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Bucket($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new bucket. (buckets.insert)
+ *
+ * @param string $project A valid API project identifier.
+ * @param Google_Bucket $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection Set of properties to return. Defaults to noAcl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.
+ * @return Google_Bucket
+ */
+ public function insert($project, Google_Bucket $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Bucket($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of buckets for a given project. (buckets.list)
+ *
+ * @param string $project A valid API project identifier.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of buckets to return.
+ * @opt_param string pageToken A previously-returned page token representing part of the larger set of results to view.
+ * @opt_param string projection Set of properties to return. Defaults to noAcl.
+ * @return Google_Buckets
+ */
+ public function listBuckets($project, $optParams = array()) {
+ $params = array('project' => $project);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Buckets($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a bucket. This method supports patch semantics. (buckets.patch)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param Google_Bucket $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string ifMetagenerationMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
+ * @opt_param string projection Set of properties to return. Defaults to full.
+ * @return Google_Bucket
+ */
+ public function patch($bucket, Google_Bucket $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Bucket($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a bucket. (buckets.update)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param Google_Bucket $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string ifMetagenerationMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
+ * @opt_param string projection Set of properties to return. Defaults to full.
+ * @return Google_Bucket
+ */
+ public function update($bucket, Google_Bucket $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Bucket($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "channels" collection of methods.
+ * Typical usage is:
+ *
+ * $storageService = new Google_StorageService(...);
+ * $channels = $storageService->channels;
+ *
+ */
+ class Google_ChannelsServiceResource extends Google_ServiceResource {
+
+ /**
+ * (channels.stop)
+ *
+ * @param Google_Channel $postBody
+ * @param array $optParams Optional parameters.
+ */
+ public function stop(Google_Channel $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('stop', array($params));
+ return $data;
+ }
+ }
+
+ /**
+ * The "defaultObjectAccessControls" collection of methods.
+ * Typical usage is:
+ *
+ * $storageService = new Google_StorageService(...);
+ * $defaultObjectAccessControls = $storageService->defaultObjectAccessControls;
+ *
+ */
+ class Google_DefaultObjectAccessControlsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Permanently deletes the default object ACL entry for the specified entity on the specified
+ * bucket. (defaultObjectAccessControls.delete)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($bucket, $entity, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'entity' => $entity);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns the default object ACL entry for the specified entity on the specified bucket.
+ * (defaultObjectAccessControls.get)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param array $optParams Optional parameters.
+ * @return Google_ObjectAccessControl
+ */
+ public function get($bucket, $entity, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'entity' => $entity);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new default object ACL entry on the specified bucket.
+ * (defaultObjectAccessControls.insert)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param Google_ObjectAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_ObjectAccessControl
+ */
+ public function insert($bucket, Google_ObjectAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves default object ACL entries on the specified bucket. (defaultObjectAccessControls.list)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param array $optParams Optional parameters.
+ * @return Google_ObjectAccessControls
+ */
+ public function listDefaultObjectAccessControls($bucket, $optParams = array()) {
+ $params = array('bucket' => $bucket);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControls($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a default object ACL entry on the specified bucket. This method supports patch semantics.
+ * (defaultObjectAccessControls.patch)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param Google_ObjectAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_ObjectAccessControl
+ */
+ public function patch($bucket, $entity, Google_ObjectAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'entity' => $entity, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a default object ACL entry on the specified bucket. (defaultObjectAccessControls.update)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param Google_ObjectAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_ObjectAccessControl
+ */
+ public function update($bucket, $entity, Google_ObjectAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'entity' => $entity, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "objectAccessControls" collection of methods.
+ * Typical usage is:
+ *
+ * $storageService = new Google_StorageService(...);
+ * $objectAccessControls = $storageService->objectAccessControls;
+ *
+ */
+ class Google_ObjectAccessControlsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Permanently deletes the ACL entry for the specified entity on the specified object.
+ * (objectAccessControls.delete)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $object Name of the object.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ */
+ public function delete($bucket, $object, $entity, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object, 'entity' => $entity);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns the ACL entry for the specified entity on the specified object.
+ * (objectAccessControls.get)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $object Name of the object.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ * @return Google_ObjectAccessControl
+ */
+ public function get($bucket, $object, $entity, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object, 'entity' => $entity);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new ACL entry on the specified object. (objectAccessControls.insert)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $object Name of the object.
+ * @param Google_ObjectAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ * @return Google_ObjectAccessControl
+ */
+ public function insert($bucket, $object, Google_ObjectAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves ACL entries on the specified object. (objectAccessControls.list)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $object Name of the object.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ * @return Google_ObjectAccessControls
+ */
+ public function listObjectAccessControls($bucket, $object, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControls($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an ACL entry on the specified object. This method supports patch semantics.
+ * (objectAccessControls.patch)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $object Name of the object.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param Google_ObjectAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ * @return Google_ObjectAccessControl
+ */
+ public function patch($bucket, $object, $entity, Google_ObjectAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object, 'entity' => $entity, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates an ACL entry on the specified object. (objectAccessControls.update)
+ *
+ * @param string $bucket Name of a bucket.
+ * @param string $object Name of the object.
+ * @param string $entity The entity holding the permission. Can be user-userId, group-groupId, allUsers, or allAuthenticatedUsers.
+ * @param Google_ObjectAccessControl $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ * @return Google_ObjectAccessControl
+ */
+ public function update($bucket, $object, $entity, Google_ObjectAccessControl $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object, 'entity' => $entity, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_ObjectAccessControl($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "objects" collection of methods.
+ * Typical usage is:
+ *
+ * $storageService = new Google_StorageService(...);
+ * $objects = $storageService->objects;
+ *
+ */
+ class Google_ObjectsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Concatenates a list of existing objects into a new object in the same bucket. (objects.compose)
+ *
+ * @param string $destinationBucket Name of the bucket in which to store the new object.
+ * @param string $destinationObject Name of the new object.
+ * @param Google_ComposeRequest $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string ifGenerationMatch Makes the operation conditional on whether the object's current generation matches the given value.
+ * @opt_param string ifMetagenerationMatch Makes the operation conditional on whether the object's current metageneration matches the given value.
+ * @return Google_StorageObject
+ */
+ public function compose($destinationBucket, $destinationObject, Google_ComposeRequest $postBody, $optParams = array()) {
+ $params = array('destinationBucket' => $destinationBucket, 'destinationObject' => $destinationObject, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('compose', array($params));
+ if ($this->useObjects()) {
+ return new Google_StorageObject($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Copies an object to a destination in the same location. Optionally overrides metadata.
+ * (objects.copy)
+ *
+ * @param string $sourceBucket Name of the bucket in which to find the source object.
+ * @param string $sourceObject Name of the source object.
+ * @param string $destinationBucket Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.
+ * @param string $destinationObject Name of the new object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.
+ * @param Google_StorageObject $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string ifGenerationMatch Makes the operation conditional on whether the destination object's current generation matches the given value.
+ * @opt_param string ifGenerationNotMatch Makes the operation conditional on whether the destination object's current generation does not match the given value.
+ * @opt_param string ifMetagenerationMatch Makes the operation conditional on whether the destination object's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the operation conditional on whether the destination object's current metageneration does not match the given value.
+ * @opt_param string ifSourceGenerationMatch Makes the operation conditional on whether the source object's generation matches the given value.
+ * @opt_param string ifSourceGenerationNotMatch Makes the operation conditional on whether the source object's generation does not match the given value.
+ * @opt_param string ifSourceMetagenerationMatch Makes the operation conditional on whether the source object's current metageneration matches the given value.
+ * @opt_param string ifSourceMetagenerationNotMatch Makes the operation conditional on whether the source object's current metageneration does not match the given value.
+ * @opt_param string projection Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.
+ * @opt_param string sourceGeneration If present, selects a specific revision of the source object (as opposed to the latest version, the default).
+ * @return Google_StorageObject
+ */
+ public function copy($sourceBucket, $sourceObject, $destinationBucket, $destinationObject, Google_StorageObject $postBody, $optParams = array()) {
+ $params = array('sourceBucket' => $sourceBucket, 'sourceObject' => $sourceObject, 'destinationBucket' => $destinationBucket, 'destinationObject' => $destinationObject, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('copy', array($params));
+ if ($this->useObjects()) {
+ return new Google_StorageObject($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Deletes data blobs and associated metadata. Deletions are permanent if versioning is not enabled
+ * for the bucket, or if the generation parameter is used. (objects.delete)
+ *
+ * @param string $bucket Name of the bucket in which the object resides.
+ * @param string $object Name of the object.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, permanently deletes a specific revision of this object (as opposed to the latest version, the default).
+ * @opt_param string ifGenerationMatch Makes the operation conditional on whether the object's current generation matches the given value.
+ * @opt_param string ifGenerationNotMatch Makes the operation conditional on whether the object's current generation does not match the given value.
+ * @opt_param string ifMetagenerationMatch Makes the operation conditional on whether the object's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the operation conditional on whether the object's current metageneration does not match the given value.
+ */
+ public function delete($bucket, $object, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Retrieves objects or their associated metadata. (objects.get)
+ *
+ * @param string $bucket Name of the bucket in which the object resides.
+ * @param string $object Name of the object.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ * @opt_param string ifGenerationMatch Makes the operation conditional on whether the object's generation matches the given value.
+ * @opt_param string ifGenerationNotMatch Makes the operation conditional on whether the object's generation does not match the given value.
+ * @opt_param string ifMetagenerationMatch Makes the operation conditional on whether the object's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the operation conditional on whether the object's current metageneration does not match the given value.
+ * @opt_param string projection Set of properties to return. Defaults to noAcl.
+ * @return Google_StorageObject
+ */
+ public function get($bucket, $object, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_StorageObject($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Stores new data blobs and associated metadata. (objects.insert)
+ *
+ * @param string $bucket Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.
+ * @param Google_StorageObject $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string ifGenerationMatch Makes the operation conditional on whether the object's current generation matches the given value.
+ * @opt_param string ifGenerationNotMatch Makes the operation conditional on whether the object's current generation does not match the given value.
+ * @opt_param string ifMetagenerationMatch Makes the operation conditional on whether the object's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the operation conditional on whether the object's current metageneration does not match the given value.
+ * @opt_param string name Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.
+ * @opt_param string projection Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.
+ * @return Google_StorageObject
+ */
+ public function insert($bucket, Google_StorageObject $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_StorageObject($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of objects matching the criteria. (objects.list)
+ *
+ * @param string $bucket Name of the bucket in which to look for objects.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string delimiter Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.
+ * @opt_param string maxResults Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.
+ * @opt_param string pageToken A previously-returned page token representing part of the larger set of results to view.
+ * @opt_param string prefix Filter results to objects whose names begin with this prefix.
+ * @opt_param string projection Set of properties to return. Defaults to noAcl.
+ * @opt_param bool versions If true, lists all versions of a file as distinct results.
+ * @return Google_Objects
+ */
+ public function listObjects($bucket, $optParams = array()) {
+ $params = array('bucket' => $bucket);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Objects($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a data blob's associated metadata. This method supports patch semantics. (objects.patch)
+ *
+ * @param string $bucket Name of the bucket in which the object resides.
+ * @param string $object Name of the object.
+ * @param Google_StorageObject $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ * @opt_param string ifGenerationMatch Makes the operation conditional on whether the object's current generation matches the given value.
+ * @opt_param string ifGenerationNotMatch Makes the operation conditional on whether the object's current generation does not match the given value.
+ * @opt_param string ifMetagenerationMatch Makes the operation conditional on whether the object's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the operation conditional on whether the object's current metageneration does not match the given value.
+ * @opt_param string projection Set of properties to return. Defaults to full.
+ * @return Google_StorageObject
+ */
+ public function patch($bucket, $object, Google_StorageObject $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_StorageObject($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates a data blob's associated metadata. (objects.update)
+ *
+ * @param string $bucket Name of the bucket in which the object resides.
+ * @param string $object Name of the object.
+ * @param Google_StorageObject $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string generation If present, selects a specific revision of this object (as opposed to the latest version, the default).
+ * @opt_param string ifGenerationMatch Makes the operation conditional on whether the object's current generation matches the given value.
+ * @opt_param string ifGenerationNotMatch Makes the operation conditional on whether the object's current generation does not match the given value.
+ * @opt_param string ifMetagenerationMatch Makes the operation conditional on whether the object's current metageneration matches the given value.
+ * @opt_param string ifMetagenerationNotMatch Makes the operation conditional on whether the object's current metageneration does not match the given value.
+ * @opt_param string projection Set of properties to return. Defaults to full.
+ * @return Google_StorageObject
+ */
+ public function update($bucket, $object, Google_StorageObject $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'object' => $object, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_StorageObject($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Watch for changes on all objects in a bucket. (objects.watchAll)
+ *
+ * @param string $bucket Name of the bucket in which to look for objects.
+ * @param Google_Channel $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string delimiter Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.
+ * @opt_param string maxResults Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.
+ * @opt_param string pageToken A previously-returned page token representing part of the larger set of results to view.
+ * @opt_param string prefix Filter results to objects whose names begin with this prefix.
+ * @opt_param string projection Set of properties to return. Defaults to noAcl.
+ * @opt_param bool versions If true, lists all versions of a file as distinct results.
+ * @return Google_Channel
+ */
+ public function watchAll($bucket, Google_Channel $postBody, $optParams = array()) {
+ $params = array('bucket' => $bucket, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('watchAll', array($params));
+ if ($this->useObjects()) {
+ return new Google_Channel($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Storage (v1beta2).
+ *
+ *
+ * Lets you store and retrieve potentially-large, immutable data objects.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_StorageService extends Google_Service {
+ public $bucketAccessControls;
+ public $buckets;
+ public $channels;
+ public $defaultObjectAccessControls;
+ public $objectAccessControls;
+ public $objects;
+ /**
+ * Constructs the internal representation of the Storage service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'storage/v1beta2/';
+ $this->version = 'v1beta2';
+ $this->serviceName = 'storage';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->bucketAccessControls = new Google_BucketAccessControlsServiceResource($this, $this->serviceName, 'bucketAccessControls', json_decode('{"methods": {"delete": {"id": "storage.bucketAccessControls.delete", "path": "b/{bucket}/acl/{entity}", "httpMethod": "DELETE", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "get": {"id": "storage.bucketAccessControls.get", "path": "b/{bucket}/acl/{entity}", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "BucketAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "insert": {"id": "storage.bucketAccessControls.insert", "path": "b/{bucket}/acl", "httpMethod": "POST", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "BucketAccessControl"}, "response": {"$ref": "BucketAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "list": {"id": "storage.bucketAccessControls.list", "path": "b/{bucket}/acl", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "BucketAccessControls"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "patch": {"id": "storage.bucketAccessControls.patch", "path": "b/{bucket}/acl/{entity}", "httpMethod": "PATCH", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "BucketAccessControl"}, "response": {"$ref": "BucketAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "update": {"id": "storage.bucketAccessControls.update", "path": "b/{bucket}/acl/{entity}", "httpMethod": "PUT", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "BucketAccessControl"}, "response": {"$ref": "BucketAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}}}', true));
+ $this->buckets = new Google_BucketsServiceResource($this, $this->serviceName, 'buckets', json_decode('{"methods": {"delete": {"id": "storage.buckets.delete", "path": "b/{bucket}", "httpMethod": "DELETE", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"]}, "get": {"id": "storage.buckets.get", "path": "b/{bucket}", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "response": {"$ref": "Bucket"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/devstorage.read_write"]}, "insert": {"id": "storage.buckets.insert", "path": "b", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "request": {"$ref": "Bucket"}, "response": {"$ref": "Bucket"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"]}, "list": {"id": "storage.buckets.list", "path": "b", "httpMethod": "GET", "parameters": {"maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "project": {"type": "string", "required": true, "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "response": {"$ref": "Buckets"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/devstorage.read_write"]}, "patch": {"id": "storage.buckets.patch", "path": "b/{bucket}", "httpMethod": "PATCH", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "request": {"$ref": "Bucket"}, "response": {"$ref": "Bucket"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"]}, "update": {"id": "storage.buckets.update", "path": "b/{bucket}", "httpMethod": "PUT", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "request": {"$ref": "Bucket"}, "response": {"$ref": "Bucket"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"]}}}', true));
+ $this->channels = new Google_ChannelsServiceResource($this, $this->serviceName, 'channels', json_decode('{"methods": {"stop": {"id": "storage.channels.stop", "path": "channels/stop", "httpMethod": "POST", "request": {"$ref": "Channel"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/devstorage.read_write"]}}}', true));
+ $this->defaultObjectAccessControls = new Google_DefaultObjectAccessControlsServiceResource($this, $this->serviceName, 'defaultObjectAccessControls', json_decode('{"methods": {"delete": {"id": "storage.defaultObjectAccessControls.delete", "path": "b/{bucket}/defaultObjectAcl/{entity}", "httpMethod": "DELETE", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "get": {"id": "storage.defaultObjectAccessControls.get", "path": "b/{bucket}/defaultObjectAcl/{entity}", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ObjectAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "insert": {"id": "storage.defaultObjectAccessControls.insert", "path": "b/{bucket}/defaultObjectAcl", "httpMethod": "POST", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ObjectAccessControl"}, "response": {"$ref": "ObjectAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "list": {"id": "storage.defaultObjectAccessControls.list", "path": "b/{bucket}/defaultObjectAcl", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ObjectAccessControls"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "patch": {"id": "storage.defaultObjectAccessControls.patch", "path": "b/{bucket}/defaultObjectAcl/{entity}", "httpMethod": "PATCH", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ObjectAccessControl"}, "response": {"$ref": "ObjectAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "update": {"id": "storage.defaultObjectAccessControls.update", "path": "b/{bucket}/defaultObjectAcl/{entity}", "httpMethod": "PUT", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ObjectAccessControl"}, "response": {"$ref": "ObjectAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}}}', true));
+ $this->objectAccessControls = new Google_ObjectAccessControlsServiceResource($this, $this->serviceName, 'objectAccessControls', json_decode('{"methods": {"delete": {"id": "storage.objectAccessControls.delete", "path": "b/{bucket}/o/{object}/acl/{entity}", "httpMethod": "DELETE", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "get": {"id": "storage.objectAccessControls.get", "path": "b/{bucket}/o/{object}/acl/{entity}", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ObjectAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "insert": {"id": "storage.objectAccessControls.insert", "path": "b/{bucket}/o/{object}/acl", "httpMethod": "POST", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ObjectAccessControl"}, "response": {"$ref": "ObjectAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "list": {"id": "storage.objectAccessControls.list", "path": "b/{bucket}/o/{object}/acl", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "ObjectAccessControls"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "patch": {"id": "storage.objectAccessControls.patch", "path": "b/{bucket}/o/{object}/acl/{entity}", "httpMethod": "PATCH", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ObjectAccessControl"}, "response": {"$ref": "ObjectAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}, "update": {"id": "storage.objectAccessControls.update", "path": "b/{bucket}/o/{object}/acl/{entity}", "httpMethod": "PUT", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "entity": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "ObjectAccessControl"}, "response": {"$ref": "ObjectAccessControl"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control"]}}}', true));
+ $this->objects = new Google_ObjectsServiceResource($this, $this->serviceName, 'objects', json_decode('{"methods": {"compose": {"id": "storage.objects.compose", "path": "b/{destinationBucket}/o/{destinationObject}/compose", "httpMethod": "POST", "parameters": {"destinationBucket": {"type": "string", "required": true, "location": "path"}, "destinationObject": {"type": "string", "required": true, "location": "path"}, "ifGenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}}, "request": {"$ref": "ComposeRequest"}, "response": {"$ref": "Object"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"], "supportsMediaDownload": true}, "copy": {"id": "storage.objects.copy", "path": "b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destinationBucket}/o/{destinationObject}", "httpMethod": "POST", "parameters": {"destinationBucket": {"type": "string", "required": true, "location": "path"}, "destinationObject": {"type": "string", "required": true, "location": "path"}, "ifGenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifSourceGenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifSourceGenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifSourceMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifSourceMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}, "sourceBucket": {"type": "string", "required": true, "location": "path"}, "sourceGeneration": {"type": "string", "format": "uint64", "location": "query"}, "sourceObject": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Object"}, "response": {"$ref": "Object"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"], "supportsMediaDownload": true}, "delete": {"id": "storage.objects.delete", "path": "b/{bucket}/o/{object}", "httpMethod": "DELETE", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"]}, "get": {"id": "storage.objects.get", "path": "b/{bucket}/o/{object}", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "response": {"$ref": "Object"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/devstorage.read_write"], "supportsMediaDownload": true}, "insert": {"id": "storage.objects.insert", "path": "b/{bucket}/o", "httpMethod": "POST", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "ifGenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "name": {"type": "string", "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "request": {"$ref": "Object"}, "response": {"$ref": "Object"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"], "supportsMediaDownload": true, "supportsMediaUpload": true, "mediaUpload": {"accept": ["*/*"], "protocols": {"simple": {"multipart": true, "path": "/upload/storage/v1beta2/b/{bucket}/o"}, "resumable": {"multipart": true, "path": "/resumable/upload/storage/v1beta2/b/{bucket}/o"}}}}, "list": {"id": "storage.objects.list", "path": "b/{bucket}/o", "httpMethod": "GET", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "delimiter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "prefix": {"type": "string", "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}, "versions": {"type": "boolean", "location": "query"}}, "response": {"$ref": "Objects"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/devstorage.read_write"], "supportsSubscription": true}, "patch": {"id": "storage.objects.patch", "path": "b/{bucket}/o/{object}", "httpMethod": "PATCH", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "request": {"$ref": "Object"}, "response": {"$ref": "Object"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"]}, "update": {"id": "storage.objects.update", "path": "b/{bucket}/o/{object}", "httpMethod": "PUT", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "generation": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifGenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationMatch": {"type": "string", "format": "uint64", "location": "query"}, "ifMetagenerationNotMatch": {"type": "string", "format": "uint64", "location": "query"}, "object": {"type": "string", "required": true, "location": "path"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}}, "request": {"$ref": "Object"}, "response": {"$ref": "Object"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_write"], "supportsMediaDownload": true}, "watchAll": {"id": "storage.objects.watchAll", "path": "b/{bucket}/o/watch", "httpMethod": "POST", "parameters": {"bucket": {"type": "string", "required": true, "location": "path"}, "delimiter": {"type": "string", "location": "query"}, "maxResults": {"type": "integer", "format": "uint32", "minimum": "0", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "prefix": {"type": "string", "location": "query"}, "projection": {"type": "string", "enum": ["full", "noAcl"], "location": "query"}, "versions": {"type": "boolean", "location": "query"}}, "request": {"$ref": "Channel"}, "response": {"$ref": "Channel"}, "scopes": ["https://www.googleapis.com/auth/devstorage.full_control", "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/devstorage.read_write"], "supportsSubscription": true}}}', true));
+
+ }
+}
+
+
+
+class Google_Bucket extends Google_Model {
+ protected $__aclType = 'Google_BucketAccessControl';
+ protected $__aclDataType = 'array';
+ public $acl;
+ protected $__corsType = 'Google_BucketCors';
+ protected $__corsDataType = 'array';
+ public $cors;
+ protected $__defaultObjectAclType = 'Google_ObjectAccessControl';
+ protected $__defaultObjectAclDataType = 'array';
+ public $defaultObjectAcl;
+ public $etag;
+ public $id;
+ public $kind;
+ protected $__lifecycleType = 'Google_BucketLifecycle';
+ protected $__lifecycleDataType = '';
+ public $lifecycle;
+ public $location;
+ protected $__loggingType = 'Google_BucketLogging';
+ protected $__loggingDataType = '';
+ public $logging;
+ public $metageneration;
+ public $name;
+ protected $__ownerType = 'Google_BucketOwner';
+ protected $__ownerDataType = '';
+ public $owner;
+ public $selfLink;
+ public $storageClass;
+ public $timeCreated;
+ protected $__versioningType = 'Google_BucketVersioning';
+ protected $__versioningDataType = '';
+ public $versioning;
+ protected $__websiteType = 'Google_BucketWebsite';
+ protected $__websiteDataType = '';
+ public $website;
+ public function setAcl(/* array(Google_BucketAccessControl) */ $acl) {
+ $this->assertIsArray($acl, 'Google_BucketAccessControl', __METHOD__);
+ $this->acl = $acl;
+ }
+ public function getAcl() {
+ return $this->acl;
+ }
+ public function setCors(/* array(Google_BucketCors) */ $cors) {
+ $this->assertIsArray($cors, 'Google_BucketCors', __METHOD__);
+ $this->cors = $cors;
+ }
+ public function getCors() {
+ return $this->cors;
+ }
+ public function setDefaultObjectAcl(/* array(Google_ObjectAccessControl) */ $defaultObjectAcl) {
+ $this->assertIsArray($defaultObjectAcl, 'Google_ObjectAccessControl', __METHOD__);
+ $this->defaultObjectAcl = $defaultObjectAcl;
+ }
+ public function getDefaultObjectAcl() {
+ return $this->defaultObjectAcl;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLifecycle(Google_BucketLifecycle $lifecycle) {
+ $this->lifecycle = $lifecycle;
+ }
+ public function getLifecycle() {
+ return $this->lifecycle;
+ }
+ public function setLocation( $location) {
+ $this->location = $location;
+ }
+ public function getLocation() {
+ return $this->location;
+ }
+ public function setLogging(Google_BucketLogging $logging) {
+ $this->logging = $logging;
+ }
+ public function getLogging() {
+ return $this->logging;
+ }
+ public function setMetageneration( $metageneration) {
+ $this->metageneration = $metageneration;
+ }
+ public function getMetageneration() {
+ return $this->metageneration;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOwner(Google_BucketOwner $owner) {
+ $this->owner = $owner;
+ }
+ public function getOwner() {
+ return $this->owner;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStorageClass( $storageClass) {
+ $this->storageClass = $storageClass;
+ }
+ public function getStorageClass() {
+ return $this->storageClass;
+ }
+ public function setTimeCreated( $timeCreated) {
+ $this->timeCreated = $timeCreated;
+ }
+ public function getTimeCreated() {
+ return $this->timeCreated;
+ }
+ public function setVersioning(Google_BucketVersioning $versioning) {
+ $this->versioning = $versioning;
+ }
+ public function getVersioning() {
+ return $this->versioning;
+ }
+ public function setWebsite(Google_BucketWebsite $website) {
+ $this->website = $website;
+ }
+ public function getWebsite() {
+ return $this->website;
+ }
+}
+
+class Google_BucketAccessControl extends Google_Model {
+ public $bucket;
+ public $domain;
+ public $email;
+ public $entity;
+ public $entityId;
+ public $etag;
+ public $id;
+ public $kind;
+ public $role;
+ public $selfLink;
+ public function setBucket( $bucket) {
+ $this->bucket = $bucket;
+ }
+ public function getBucket() {
+ return $this->bucket;
+ }
+ public function setDomain( $domain) {
+ $this->domain = $domain;
+ }
+ public function getDomain() {
+ return $this->domain;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setEntity( $entity) {
+ $this->entity = $entity;
+ }
+ public function getEntity() {
+ return $this->entity;
+ }
+ public function setEntityId( $entityId) {
+ $this->entityId = $entityId;
+ }
+ public function getEntityId() {
+ return $this->entityId;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRole( $role) {
+ $this->role = $role;
+ }
+ public function getRole() {
+ return $this->role;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_BucketAccessControls extends Google_Model {
+ protected $__itemsType = 'Google_BucketAccessControl';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_BucketAccessControl) */ $items) {
+ $this->assertIsArray($items, 'Google_BucketAccessControl', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_BucketCors extends Google_Model {
+ public $maxAgeSeconds;
+ public $method;
+ public $origin;
+ public $responseHeader;
+ public function setMaxAgeSeconds( $maxAgeSeconds) {
+ $this->maxAgeSeconds = $maxAgeSeconds;
+ }
+ public function getMaxAgeSeconds() {
+ return $this->maxAgeSeconds;
+ }
+ public function setMethod(/* array(Google_string) */ $method) {
+ $this->assertIsArray($method, 'Google_string', __METHOD__);
+ $this->method = $method;
+ }
+ public function getMethod() {
+ return $this->method;
+ }
+ public function setOrigin(/* array(Google_string) */ $origin) {
+ $this->assertIsArray($origin, 'Google_string', __METHOD__);
+ $this->origin = $origin;
+ }
+ public function getOrigin() {
+ return $this->origin;
+ }
+ public function setResponseHeader(/* array(Google_string) */ $responseHeader) {
+ $this->assertIsArray($responseHeader, 'Google_string', __METHOD__);
+ $this->responseHeader = $responseHeader;
+ }
+ public function getResponseHeader() {
+ return $this->responseHeader;
+ }
+}
+
+class Google_BucketLifecycle extends Google_Model {
+ protected $__ruleType = 'Google_BucketLifecycleRule';
+ protected $__ruleDataType = 'array';
+ public $rule;
+ public function setRule(/* array(Google_BucketLifecycleRule) */ $rule) {
+ $this->assertIsArray($rule, 'Google_BucketLifecycleRule', __METHOD__);
+ $this->rule = $rule;
+ }
+ public function getRule() {
+ return $this->rule;
+ }
+}
+
+class Google_BucketLifecycleRule extends Google_Model {
+ protected $__actionType = 'Google_BucketLifecycleRuleAction';
+ protected $__actionDataType = '';
+ public $action;
+ protected $__conditionType = 'Google_BucketLifecycleRuleCondition';
+ protected $__conditionDataType = '';
+ public $condition;
+ public function setAction(Google_BucketLifecycleRuleAction $action) {
+ $this->action = $action;
+ }
+ public function getAction() {
+ return $this->action;
+ }
+ public function setCondition(Google_BucketLifecycleRuleCondition $condition) {
+ $this->condition = $condition;
+ }
+ public function getCondition() {
+ return $this->condition;
+ }
+}
+
+class Google_BucketLifecycleRuleAction extends Google_Model {
+ public $type;
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_BucketLifecycleRuleCondition extends Google_Model {
+ public $age;
+ public $createdBefore;
+ public $isLive;
+ public $numNewerVersions;
+ public function setAge( $age) {
+ $this->age = $age;
+ }
+ public function getAge() {
+ return $this->age;
+ }
+ public function setCreatedBefore( $createdBefore) {
+ $this->createdBefore = $createdBefore;
+ }
+ public function getCreatedBefore() {
+ return $this->createdBefore;
+ }
+ public function setIsLive( $isLive) {
+ $this->isLive = $isLive;
+ }
+ public function getIsLive() {
+ return $this->isLive;
+ }
+ public function setNumNewerVersions( $numNewerVersions) {
+ $this->numNewerVersions = $numNewerVersions;
+ }
+ public function getNumNewerVersions() {
+ return $this->numNewerVersions;
+ }
+}
+
+class Google_BucketLogging extends Google_Model {
+ public $logBucket;
+ public $logObjectPrefix;
+ public function setLogBucket( $logBucket) {
+ $this->logBucket = $logBucket;
+ }
+ public function getLogBucket() {
+ return $this->logBucket;
+ }
+ public function setLogObjectPrefix( $logObjectPrefix) {
+ $this->logObjectPrefix = $logObjectPrefix;
+ }
+ public function getLogObjectPrefix() {
+ return $this->logObjectPrefix;
+ }
+}
+
+class Google_BucketOwner extends Google_Model {
+ public $entity;
+ public $entityId;
+ public function setEntity( $entity) {
+ $this->entity = $entity;
+ }
+ public function getEntity() {
+ return $this->entity;
+ }
+ public function setEntityId( $entityId) {
+ $this->entityId = $entityId;
+ }
+ public function getEntityId() {
+ return $this->entityId;
+ }
+}
+
+class Google_BucketVersioning extends Google_Model {
+ public $enabled;
+ public function setEnabled( $enabled) {
+ $this->enabled = $enabled;
+ }
+ public function getEnabled() {
+ return $this->enabled;
+ }
+}
+
+class Google_BucketWebsite extends Google_Model {
+ public $mainPageSuffix;
+ public $notFoundPage;
+ public function setMainPageSuffix( $mainPageSuffix) {
+ $this->mainPageSuffix = $mainPageSuffix;
+ }
+ public function getMainPageSuffix() {
+ return $this->mainPageSuffix;
+ }
+ public function setNotFoundPage( $notFoundPage) {
+ $this->notFoundPage = $notFoundPage;
+ }
+ public function getNotFoundPage() {
+ return $this->notFoundPage;
+ }
+}
+
+class Google_Buckets extends Google_Model {
+ protected $__itemsType = 'Google_Bucket';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setItems(/* array(Google_Bucket) */ $items) {
+ $this->assertIsArray($items, 'Google_Bucket', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Channel extends Google_Model {
+ public $address;
+ public $expiration;
+ public $id;
+ public $kind;
+ public $params;
+ public $resourceId;
+ public $resourceUri;
+ public $token;
+ public $type;
+ public function setAddress( $address) {
+ $this->address = $address;
+ }
+ public function getAddress() {
+ return $this->address;
+ }
+ public function setExpiration( $expiration) {
+ $this->expiration = $expiration;
+ }
+ public function getExpiration() {
+ return $this->expiration;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setParams( $params) {
+ $this->params = $params;
+ }
+ public function getParams() {
+ return $this->params;
+ }
+ public function setResourceId( $resourceId) {
+ $this->resourceId = $resourceId;
+ }
+ public function getResourceId() {
+ return $this->resourceId;
+ }
+ public function setResourceUri( $resourceUri) {
+ $this->resourceUri = $resourceUri;
+ }
+ public function getResourceUri() {
+ return $this->resourceUri;
+ }
+ public function setToken( $token) {
+ $this->token = $token;
+ }
+ public function getToken() {
+ return $this->token;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_ComposeRequest extends Google_Model {
+ protected $__destinationType = 'Google_StorageObject';
+ protected $__destinationDataType = '';
+ public $destination;
+ public $kind;
+ protected $__sourceObjectsType = 'Google_ComposeRequestSourceObjects';
+ protected $__sourceObjectsDataType = 'array';
+ public $sourceObjects;
+ public function setDestination(Google_StorageObject $destination) {
+ $this->destination = $destination;
+ }
+ public function getDestination() {
+ return $this->destination;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSourceObjects(/* array(Google_ComposeRequestSourceObjects) */ $sourceObjects) {
+ $this->assertIsArray($sourceObjects, 'Google_ComposeRequestSourceObjects', __METHOD__);
+ $this->sourceObjects = $sourceObjects;
+ }
+ public function getSourceObjects() {
+ return $this->sourceObjects;
+ }
+}
+
+class Google_ComposeRequestSourceObjects extends Google_Model {
+ public $generation;
+ public $name;
+ protected $__objectPreconditionsType = 'Google_ComposeRequestSourceObjectsObjectPreconditions';
+ protected $__objectPreconditionsDataType = '';
+ public $objectPreconditions;
+ public function setGeneration( $generation) {
+ $this->generation = $generation;
+ }
+ public function getGeneration() {
+ return $this->generation;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setObjectPreconditions(Google_ComposeRequestSourceObjectsObjectPreconditions $objectPreconditions) {
+ $this->objectPreconditions = $objectPreconditions;
+ }
+ public function getObjectPreconditions() {
+ return $this->objectPreconditions;
+ }
+}
+
+class Google_ComposeRequestSourceObjectsObjectPreconditions extends Google_Model {
+ public $ifGenerationMatch;
+ public function setIfGenerationMatch( $ifGenerationMatch) {
+ $this->ifGenerationMatch = $ifGenerationMatch;
+ }
+ public function getIfGenerationMatch() {
+ return $this->ifGenerationMatch;
+ }
+}
+
+class Google_ObjectAccessControl extends Google_Model {
+ public $bucket;
+ public $domain;
+ public $email;
+ public $entity;
+ public $entityId;
+ public $etag;
+ public $generation;
+ public $id;
+ public $kind;
+ public $object;
+ public $role;
+ public $selfLink;
+ public function setBucket( $bucket) {
+ $this->bucket = $bucket;
+ }
+ public function getBucket() {
+ return $this->bucket;
+ }
+ public function setDomain( $domain) {
+ $this->domain = $domain;
+ }
+ public function getDomain() {
+ return $this->domain;
+ }
+ public function setEmail( $email) {
+ $this->email = $email;
+ }
+ public function getEmail() {
+ return $this->email;
+ }
+ public function setEntity( $entity) {
+ $this->entity = $entity;
+ }
+ public function getEntity() {
+ return $this->entity;
+ }
+ public function setEntityId( $entityId) {
+ $this->entityId = $entityId;
+ }
+ public function getEntityId() {
+ return $this->entityId;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setGeneration( $generation) {
+ $this->generation = $generation;
+ }
+ public function getGeneration() {
+ return $this->generation;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setObject( $object) {
+ $this->object = $object;
+ }
+ public function getObject() {
+ return $this->object;
+ }
+ public function setRole( $role) {
+ $this->role = $role;
+ }
+ public function getRole() {
+ return $this->role;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+}
+
+class Google_ObjectAccessControls extends Google_Model {
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_object) */ $items) {
+ $this->assertIsArray($items, 'Google_object', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Objects extends Google_Model {
+ protected $__itemsType = 'Google_StorageObject';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public $prefixes;
+ public function setItems(/* array(Google_StorageObject) */ $items) {
+ $this->assertIsArray($items, 'Google_StorageObject', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setPrefixes(/* array(Google_string) */ $prefixes) {
+ $this->assertIsArray($prefixes, 'Google_string', __METHOD__);
+ $this->prefixes = $prefixes;
+ }
+ public function getPrefixes() {
+ return $this->prefixes;
+ }
+}
+
+class Google_StorageObject extends Google_Model {
+ protected $__aclType = 'Google_ObjectAccessControl';
+ protected $__aclDataType = 'array';
+ public $acl;
+ public $bucket;
+ public $cacheControl;
+ public $componentCount;
+ public $contentDisposition;
+ public $contentEncoding;
+ public $contentLanguage;
+ public $contentType;
+ public $crc32c;
+ public $etag;
+ public $generation;
+ public $id;
+ public $kind;
+ public $md5Hash;
+ public $mediaLink;
+ public $metadata;
+ public $metageneration;
+ public $name;
+ protected $__ownerType = 'Google_StorageObjectOwner';
+ protected $__ownerDataType = '';
+ public $owner;
+ public $selfLink;
+ public $size;
+ public $timeDeleted;
+ public $updated;
+ public function setAcl(/* array(Google_ObjectAccessControl) */ $acl) {
+ $this->assertIsArray($acl, 'Google_ObjectAccessControl', __METHOD__);
+ $this->acl = $acl;
+ }
+ public function getAcl() {
+ return $this->acl;
+ }
+ public function setBucket( $bucket) {
+ $this->bucket = $bucket;
+ }
+ public function getBucket() {
+ return $this->bucket;
+ }
+ public function setCacheControl( $cacheControl) {
+ $this->cacheControl = $cacheControl;
+ }
+ public function getCacheControl() {
+ return $this->cacheControl;
+ }
+ public function setComponentCount( $componentCount) {
+ $this->componentCount = $componentCount;
+ }
+ public function getComponentCount() {
+ return $this->componentCount;
+ }
+ public function setContentDisposition( $contentDisposition) {
+ $this->contentDisposition = $contentDisposition;
+ }
+ public function getContentDisposition() {
+ return $this->contentDisposition;
+ }
+ public function setContentEncoding( $contentEncoding) {
+ $this->contentEncoding = $contentEncoding;
+ }
+ public function getContentEncoding() {
+ return $this->contentEncoding;
+ }
+ public function setContentLanguage( $contentLanguage) {
+ $this->contentLanguage = $contentLanguage;
+ }
+ public function getContentLanguage() {
+ return $this->contentLanguage;
+ }
+ public function setContentType( $contentType) {
+ $this->contentType = $contentType;
+ }
+ public function getContentType() {
+ return $this->contentType;
+ }
+ public function setCrc32c( $crc32c) {
+ $this->crc32c = $crc32c;
+ }
+ public function getCrc32c() {
+ return $this->crc32c;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setGeneration( $generation) {
+ $this->generation = $generation;
+ }
+ public function getGeneration() {
+ return $this->generation;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMd5Hash( $md5Hash) {
+ $this->md5Hash = $md5Hash;
+ }
+ public function getMd5Hash() {
+ return $this->md5Hash;
+ }
+ public function setMediaLink( $mediaLink) {
+ $this->mediaLink = $mediaLink;
+ }
+ public function getMediaLink() {
+ return $this->mediaLink;
+ }
+ public function setMetadata( $metadata) {
+ $this->metadata = $metadata;
+ }
+ public function getMetadata() {
+ return $this->metadata;
+ }
+ public function setMetageneration( $metageneration) {
+ $this->metageneration = $metageneration;
+ }
+ public function getMetageneration() {
+ return $this->metageneration;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+ public function setOwner(Google_StorageObjectOwner $owner) {
+ $this->owner = $owner;
+ }
+ public function getOwner() {
+ return $this->owner;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setSize( $size) {
+ $this->size = $size;
+ }
+ public function getSize() {
+ return $this->size;
+ }
+ public function setTimeDeleted( $timeDeleted) {
+ $this->timeDeleted = $timeDeleted;
+ }
+ public function getTimeDeleted() {
+ return $this->timeDeleted;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_StorageObjectOwner extends Google_Model {
+ public $entity;
+ public $entityId;
+ public function setEntity( $entity) {
+ $this->entity = $entity;
+ }
+ public function getEntity() {
+ return $this->entity;
+ }
+ public function setEntityId( $entityId) {
+ $this->entityId = $entityId;
+ }
+ public function getEntityId() {
+ return $this->entityId;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TaskqueueService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TaskqueueService.php
new file mode 100644
index 0000000..1b576d0
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TaskqueueService.php
@@ -0,0 +1,430 @@
+
+ * $taskqueueService = new Google_TaskqueueService(...);
+ * $taskqueues = $taskqueueService->taskqueues;
+ *
+ */
+ class Google_TaskqueuesServiceResource extends Google_ServiceResource {
+
+ /**
+ * Get detailed information about a TaskQueue. (taskqueues.get)
+ *
+ * @param string $project The project under which the queue lies.
+ * @param string $taskqueue The id of the taskqueue to get the properties of.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool getStats Whether to get stats. Optional.
+ * @return Google_TaskQueue
+ */
+ public function get($project, $taskqueue, $optParams = array()) {
+ $params = array('project' => $project, 'taskqueue' => $taskqueue);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_TaskQueue($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "tasks" collection of methods.
+ * Typical usage is:
+ *
+ * $taskqueueService = new Google_TaskqueueService(...);
+ * $tasks = $taskqueueService->tasks;
+ *
+ */
+ class Google_TasksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Delete a task from a TaskQueue. (tasks.delete)
+ *
+ * @param string $project The project under which the queue lies.
+ * @param string $taskqueue The taskqueue to delete a task from.
+ * @param string $task The id of the task to delete.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($project, $taskqueue, $task, $optParams = array()) {
+ $params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Get a particular task from a TaskQueue. (tasks.get)
+ *
+ * @param string $project The project under which the queue lies.
+ * @param string $taskqueue The taskqueue in which the task belongs.
+ * @param string $task The task to get properties of.
+ * @param array $optParams Optional parameters.
+ * @return Google_Task
+ */
+ public function get($project, $taskqueue, $task, $optParams = array()) {
+ $params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Insert a new task in a TaskQueue (tasks.insert)
+ *
+ * @param string $project The project under which the queue lies
+ * @param string $taskqueue The taskqueue to insert the task into
+ * @param Google_Task $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Task
+ */
+ public function insert($project, $taskqueue, Google_Task $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'taskqueue' => $taskqueue, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Lease 1 or more tasks from a TaskQueue. (tasks.lease)
+ *
+ * @param string $project The project under which the queue lies.
+ * @param string $taskqueue The taskqueue to lease a task from.
+ * @param int $numTasks The number of tasks to lease.
+ * @param int $leaseSecs The lease in seconds.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param bool groupByTag When true, all returned tasks will have the same tag
+ * @opt_param string tag The tag allowed for tasks in the response. Must only be specified if group_by_tag is true. If group_by_tag is true and tag is not specified the tag will be that of the oldest task by eta, i.e. the first available tag
+ * @return Google_Tasks
+ */
+ public function lease($project, $taskqueue, $numTasks, $leaseSecs, $optParams = array()) {
+ $params = array('project' => $project, 'taskqueue' => $taskqueue, 'numTasks' => $numTasks, 'leaseSecs' => $leaseSecs);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('lease', array($params));
+ if ($this->useObjects()) {
+ return new Google_Tasks($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * List Tasks in a TaskQueue (tasks.list)
+ *
+ * @param string $project The project under which the queue lies.
+ * @param string $taskqueue The id of the taskqueue to list tasks from.
+ * @param array $optParams Optional parameters.
+ * @return Google_Tasks2
+ */
+ public function listTasks($project, $taskqueue, $optParams = array()) {
+ $params = array('project' => $project, 'taskqueue' => $taskqueue);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Tasks2($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update tasks that are leased out of a TaskQueue. This method supports patch semantics.
+ * (tasks.patch)
+ *
+ * @param string $project The project under which the queue lies.
+ * @param string $taskqueue
+ * @param string $task
+ * @param int $newLeaseSeconds The new lease in seconds.
+ * @param Google_Task $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Task
+ */
+ public function patch($project, $taskqueue, $task, $newLeaseSeconds, Google_Task $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task, 'newLeaseSeconds' => $newLeaseSeconds, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Update tasks that are leased out of a TaskQueue. (tasks.update)
+ *
+ * @param string $project The project under which the queue lies.
+ * @param string $taskqueue
+ * @param string $task
+ * @param int $newLeaseSeconds The new lease in seconds.
+ * @param Google_Task $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Task
+ */
+ public function update($project, $taskqueue, $task, $newLeaseSeconds, Google_Task $postBody, $optParams = array()) {
+ $params = array('project' => $project, 'taskqueue' => $taskqueue, 'task' => $task, 'newLeaseSeconds' => $newLeaseSeconds, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Taskqueue (v1beta2).
+ *
+ *
+ * Lets you access a Google App Engine Pull Task Queue over REST.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_TaskqueueService extends Google_Service {
+ public $taskqueues;
+ public $tasks;
+ /**
+ * Constructs the internal representation of the Taskqueue service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'taskqueue/v1beta2/projects/';
+ $this->version = 'v1beta2';
+ $this->serviceName = 'taskqueue';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->taskqueues = new Google_TaskqueuesServiceResource($this, $this->serviceName, 'taskqueues', json_decode('{"methods": {"get": {"id": "taskqueue.taskqueues.get", "path": "{project}/taskqueues/{taskqueue}", "httpMethod": "GET", "parameters": {"getStats": {"type": "boolean", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "taskqueue": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "TaskQueue"}, "scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"]}}}', true));
+ $this->tasks = new Google_TasksServiceResource($this, $this->serviceName, 'tasks', json_decode('{"methods": {"delete": {"id": "taskqueue.tasks.delete", "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", "httpMethod": "DELETE", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "task": {"type": "string", "required": true, "location": "path"}, "taskqueue": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"]}, "get": {"id": "taskqueue.tasks.get", "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", "httpMethod": "GET", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "task": {"type": "string", "required": true, "location": "path"}, "taskqueue": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"]}, "insert": {"id": "taskqueue.tasks.insert", "path": "{project}/taskqueues/{taskqueue}/tasks", "httpMethod": "POST", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "taskqueue": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"]}, "lease": {"id": "taskqueue.tasks.lease", "path": "{project}/taskqueues/{taskqueue}/tasks/lease", "httpMethod": "POST", "parameters": {"groupByTag": {"type": "boolean", "location": "query"}, "leaseSecs": {"type": "integer", "required": true, "format": "int32", "location": "query"}, "numTasks": {"type": "integer", "required": true, "format": "int32", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "tag": {"type": "string", "location": "query"}, "taskqueue": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Tasks"}, "scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"]}, "list": {"id": "taskqueue.tasks.list", "path": "{project}/taskqueues/{taskqueue}/tasks", "httpMethod": "GET", "parameters": {"project": {"type": "string", "required": true, "location": "path"}, "taskqueue": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Tasks2"}, "scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"]}, "patch": {"id": "taskqueue.tasks.patch", "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", "httpMethod": "PATCH", "parameters": {"newLeaseSeconds": {"type": "integer", "required": true, "format": "int32", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "task": {"type": "string", "required": true, "location": "path"}, "taskqueue": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"]}, "update": {"id": "taskqueue.tasks.update", "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", "httpMethod": "POST", "parameters": {"newLeaseSeconds": {"type": "integer", "required": true, "format": "int32", "location": "query"}, "project": {"type": "string", "required": true, "location": "path"}, "task": {"type": "string", "required": true, "location": "path"}, "taskqueue": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/taskqueue", "https://www.googleapis.com/auth/taskqueue.consumer"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Task extends Google_Model {
+ public $enqueueTimestamp;
+ public $id;
+ public $kind;
+ public $leaseTimestamp;
+ public $payloadBase64;
+ public $queueName;
+ public $retry_count;
+ public $tag;
+ public function setEnqueueTimestamp( $enqueueTimestamp) {
+ $this->enqueueTimestamp = $enqueueTimestamp;
+ }
+ public function getEnqueueTimestamp() {
+ return $this->enqueueTimestamp;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLeaseTimestamp( $leaseTimestamp) {
+ $this->leaseTimestamp = $leaseTimestamp;
+ }
+ public function getLeaseTimestamp() {
+ return $this->leaseTimestamp;
+ }
+ public function setPayloadBase64( $payloadBase64) {
+ $this->payloadBase64 = $payloadBase64;
+ }
+ public function getPayloadBase64() {
+ return $this->payloadBase64;
+ }
+ public function setQueueName( $queueName) {
+ $this->queueName = $queueName;
+ }
+ public function getQueueName() {
+ return $this->queueName;
+ }
+ public function setRetry_count( $retry_count) {
+ $this->retry_count = $retry_count;
+ }
+ public function getRetry_count() {
+ return $this->retry_count;
+ }
+ public function setTag( $tag) {
+ $this->tag = $tag;
+ }
+ public function getTag() {
+ return $this->tag;
+ }
+}
+
+class Google_TaskQueue extends Google_Model {
+ protected $__aclType = 'Google_TaskQueueAcl';
+ protected $__aclDataType = '';
+ public $acl;
+ public $id;
+ public $kind;
+ public $maxLeases;
+ protected $__statsType = 'Google_TaskQueueStats';
+ protected $__statsDataType = '';
+ public $stats;
+ public function setAcl(Google_TaskQueueAcl $acl) {
+ $this->acl = $acl;
+ }
+ public function getAcl() {
+ return $this->acl;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setMaxLeases( $maxLeases) {
+ $this->maxLeases = $maxLeases;
+ }
+ public function getMaxLeases() {
+ return $this->maxLeases;
+ }
+ public function setStats(Google_TaskQueueStats $stats) {
+ $this->stats = $stats;
+ }
+ public function getStats() {
+ return $this->stats;
+ }
+}
+
+class Google_TaskQueueAcl extends Google_Model {
+ public $adminEmails;
+ public $consumerEmails;
+ public $producerEmails;
+ public function setAdminEmails(/* array(Google_string) */ $adminEmails) {
+ $this->assertIsArray($adminEmails, 'Google_string', __METHOD__);
+ $this->adminEmails = $adminEmails;
+ }
+ public function getAdminEmails() {
+ return $this->adminEmails;
+ }
+ public function setConsumerEmails(/* array(Google_string) */ $consumerEmails) {
+ $this->assertIsArray($consumerEmails, 'Google_string', __METHOD__);
+ $this->consumerEmails = $consumerEmails;
+ }
+ public function getConsumerEmails() {
+ return $this->consumerEmails;
+ }
+ public function setProducerEmails(/* array(Google_string) */ $producerEmails) {
+ $this->assertIsArray($producerEmails, 'Google_string', __METHOD__);
+ $this->producerEmails = $producerEmails;
+ }
+ public function getProducerEmails() {
+ return $this->producerEmails;
+ }
+}
+
+class Google_TaskQueueStats extends Google_Model {
+ public $leasedLastHour;
+ public $leasedLastMinute;
+ public $oldestTask;
+ public $totalTasks;
+ public function setLeasedLastHour( $leasedLastHour) {
+ $this->leasedLastHour = $leasedLastHour;
+ }
+ public function getLeasedLastHour() {
+ return $this->leasedLastHour;
+ }
+ public function setLeasedLastMinute( $leasedLastMinute) {
+ $this->leasedLastMinute = $leasedLastMinute;
+ }
+ public function getLeasedLastMinute() {
+ return $this->leasedLastMinute;
+ }
+ public function setOldestTask( $oldestTask) {
+ $this->oldestTask = $oldestTask;
+ }
+ public function getOldestTask() {
+ return $this->oldestTask;
+ }
+ public function setTotalTasks( $totalTasks) {
+ $this->totalTasks = $totalTasks;
+ }
+ public function getTotalTasks() {
+ return $this->totalTasks;
+ }
+}
+
+class Google_Tasks extends Google_Model {
+ protected $__itemsType = 'Google_Task';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Task) */ $items) {
+ $this->assertIsArray($items, 'Google_Task', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
+
+class Google_Tasks2 extends Google_Model {
+ protected $__itemsType = 'Google_Task';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Task) */ $items) {
+ $this->assertIsArray($items, 'Google_Task', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TasksService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TasksService.php
new file mode 100644
index 0000000..fab7b9b
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TasksService.php
@@ -0,0 +1,580 @@
+
+ * $tasksService = new Google_TasksService(...);
+ * $tasklists = $tasksService->tasklists;
+ *
+ */
+ class Google_TasklistsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Deletes the authenticated user's specified task list. (tasklists.delete)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($tasklist, $optParams = array()) {
+ $params = array('tasklist' => $tasklist);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns the authenticated user's specified task list. (tasklists.get)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param array $optParams Optional parameters.
+ * @return Google_TaskList
+ */
+ public function get($tasklist, $optParams = array()) {
+ $params = array('tasklist' => $tasklist);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_TaskList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new task list and adds it to the authenticated user's task lists. (tasklists.insert)
+ *
+ * @param Google_TaskList $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_TaskList
+ */
+ public function insert(Google_TaskList $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_TaskList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns all the authenticated user's task lists. (tasklists.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string maxResults Maximum number of task lists returned on one page. Optional. The default is 100.
+ * @opt_param string pageToken Token specifying the result page to return. Optional.
+ * @return Google_TaskLists
+ */
+ public function listTasklists($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TaskLists($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the authenticated user's specified task list. This method supports patch semantics.
+ * (tasklists.patch)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param Google_TaskList $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_TaskList
+ */
+ public function patch($tasklist, Google_TaskList $postBody, $optParams = array()) {
+ $params = array('tasklist' => $tasklist, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_TaskList($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the authenticated user's specified task list. (tasklists.update)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param Google_TaskList $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_TaskList
+ */
+ public function update($tasklist, Google_TaskList $postBody, $optParams = array()) {
+ $params = array('tasklist' => $tasklist, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_TaskList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "tasks" collection of methods.
+ * Typical usage is:
+ *
+ * $tasksService = new Google_TasksService(...);
+ * $tasks = $tasksService->tasks;
+ *
+ */
+ class Google_TasksServiceResource extends Google_ServiceResource {
+
+ /**
+ * Clears all completed tasks from the specified task list. The affected tasks will be marked as
+ * 'hidden' and no longer be returned by default when retrieving all tasks for a task list.
+ * (tasks.clear)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param array $optParams Optional parameters.
+ */
+ public function clear($tasklist, $optParams = array()) {
+ $params = array('tasklist' => $tasklist);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('clear', array($params));
+ return $data;
+ }
+ /**
+ * Deletes the specified task from the task list. (tasks.delete)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param string $task Task identifier.
+ * @param array $optParams Optional parameters.
+ */
+ public function delete($tasklist, $task, $optParams = array()) {
+ $params = array('tasklist' => $tasklist, 'task' => $task);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('delete', array($params));
+ return $data;
+ }
+ /**
+ * Returns the specified task. (tasks.get)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param string $task Task identifier.
+ * @param array $optParams Optional parameters.
+ * @return Google_Task
+ */
+ public function get($tasklist, $task, $optParams = array()) {
+ $params = array('tasklist' => $tasklist, 'task' => $task);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new task on the specified task list. (tasks.insert)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param Google_Task $postBody
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string parent Parent task identifier. If the task is created at the top level, this parameter is omitted. Optional.
+ * @opt_param string previous Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional.
+ * @return Google_Task
+ */
+ public function insert($tasklist, Google_Task $postBody, $optParams = array()) {
+ $params = array('tasklist' => $tasklist, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Returns all tasks in the specified task list. (tasks.list)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string completedMax Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
+ * @opt_param string completedMin Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
+ * @opt_param string dueMax Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
+ * @opt_param string dueMin Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
+ * @opt_param string maxResults Maximum number of task lists returned on one page. Optional. The default is 100.
+ * @opt_param string pageToken Token specifying the result page to return. Optional.
+ * @opt_param bool showCompleted Flag indicating whether completed tasks are returned in the result. Optional. The default is True.
+ * @opt_param bool showDeleted Flag indicating whether deleted tasks are returned in the result. Optional. The default is False.
+ * @opt_param bool showHidden Flag indicating whether hidden tasks are returned in the result. Optional. The default is False.
+ * @opt_param string updatedMin Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.
+ * @return Google_Tasks
+ */
+ public function listTasks($tasklist, $optParams = array()) {
+ $params = array('tasklist' => $tasklist);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_Tasks($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Moves the specified task to another position in the task list. This can include putting it as a
+ * child task under a new parent and/or move it to a different position among its sibling tasks.
+ * (tasks.move)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param string $task Task identifier.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string parent New parent task identifier. If the task is moved to the top level, this parameter is omitted. Optional.
+ * @opt_param string previous New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. Optional.
+ * @return Google_Task
+ */
+ public function move($tasklist, $task, $optParams = array()) {
+ $params = array('tasklist' => $tasklist, 'task' => $task);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('move', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the specified task. This method supports patch semantics. (tasks.patch)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param string $task Task identifier.
+ * @param Google_Task $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Task
+ */
+ public function patch($tasklist, $task, Google_Task $postBody, $optParams = array()) {
+ $params = array('tasklist' => $tasklist, 'task' => $task, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('patch', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Updates the specified task. (tasks.update)
+ *
+ * @param string $tasklist Task list identifier.
+ * @param string $task Task identifier.
+ * @param Google_Task $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Task
+ */
+ public function update($tasklist, $task, Google_Task $postBody, $optParams = array()) {
+ $params = array('tasklist' => $tasklist, 'task' => $task, 'postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('update', array($params));
+ if ($this->useObjects()) {
+ return new Google_Task($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Tasks (v1).
+ *
+ *
+ * Lets you manage your tasks and task lists.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_TasksService extends Google_Service {
+ public $tasklists;
+ public $tasks;
+ /**
+ * Constructs the internal representation of the Tasks service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'tasks/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'tasks';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->tasklists = new Google_TasklistsServiceResource($this, $this->serviceName, 'tasklists', json_decode('{"methods": {"delete": {"id": "tasks.tasklists.delete", "path": "users/@me/lists/{tasklist}", "httpMethod": "DELETE", "parameters": {"tasklist": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/tasks"]}, "get": {"id": "tasks.tasklists.get", "path": "users/@me/lists/{tasklist}", "httpMethod": "GET", "parameters": {"tasklist": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "TaskList"}, "scopes": ["https://www.googleapis.com/auth/tasks", "https://www.googleapis.com/auth/tasks.readonly"]}, "insert": {"id": "tasks.tasklists.insert", "path": "users/@me/lists", "httpMethod": "POST", "request": {"$ref": "TaskList"}, "response": {"$ref": "TaskList"}, "scopes": ["https://www.googleapis.com/auth/tasks"]}, "list": {"id": "tasks.tasklists.list", "path": "users/@me/lists", "httpMethod": "GET", "parameters": {"maxResults": {"type": "string", "format": "int64", "location": "query"}, "pageToken": {"type": "string", "location": "query"}}, "response": {"$ref": "TaskLists"}, "scopes": ["https://www.googleapis.com/auth/tasks", "https://www.googleapis.com/auth/tasks.readonly"]}, "patch": {"id": "tasks.tasklists.patch", "path": "users/@me/lists/{tasklist}", "httpMethod": "PATCH", "parameters": {"tasklist": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "TaskList"}, "response": {"$ref": "TaskList"}, "scopes": ["https://www.googleapis.com/auth/tasks"]}, "update": {"id": "tasks.tasklists.update", "path": "users/@me/lists/{tasklist}", "httpMethod": "PUT", "parameters": {"tasklist": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "TaskList"}, "response": {"$ref": "TaskList"}, "scopes": ["https://www.googleapis.com/auth/tasks"]}}}', true));
+ $this->tasks = new Google_TasksServiceResource($this, $this->serviceName, 'tasks', json_decode('{"methods": {"clear": {"id": "tasks.tasks.clear", "path": "lists/{tasklist}/clear", "httpMethod": "POST", "parameters": {"tasklist": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/tasks"]}, "delete": {"id": "tasks.tasks.delete", "path": "lists/{tasklist}/tasks/{task}", "httpMethod": "DELETE", "parameters": {"task": {"type": "string", "required": true, "location": "path"}, "tasklist": {"type": "string", "required": true, "location": "path"}}, "scopes": ["https://www.googleapis.com/auth/tasks"]}, "get": {"id": "tasks.tasks.get", "path": "lists/{tasklist}/tasks/{task}", "httpMethod": "GET", "parameters": {"task": {"type": "string", "required": true, "location": "path"}, "tasklist": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/tasks", "https://www.googleapis.com/auth/tasks.readonly"]}, "insert": {"id": "tasks.tasks.insert", "path": "lists/{tasklist}/tasks", "httpMethod": "POST", "parameters": {"parent": {"type": "string", "location": "query"}, "previous": {"type": "string", "location": "query"}, "tasklist": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/tasks"]}, "list": {"id": "tasks.tasks.list", "path": "lists/{tasklist}/tasks", "httpMethod": "GET", "parameters": {"completedMax": {"type": "string", "location": "query"}, "completedMin": {"type": "string", "location": "query"}, "dueMax": {"type": "string", "location": "query"}, "dueMin": {"type": "string", "location": "query"}, "maxResults": {"type": "string", "format": "int64", "location": "query"}, "pageToken": {"type": "string", "location": "query"}, "showCompleted": {"type": "boolean", "location": "query"}, "showDeleted": {"type": "boolean", "location": "query"}, "showHidden": {"type": "boolean", "location": "query"}, "tasklist": {"type": "string", "required": true, "location": "path"}, "updatedMin": {"type": "string", "location": "query"}}, "response": {"$ref": "Tasks"}, "scopes": ["https://www.googleapis.com/auth/tasks", "https://www.googleapis.com/auth/tasks.readonly"]}, "move": {"id": "tasks.tasks.move", "path": "lists/{tasklist}/tasks/{task}/move", "httpMethod": "POST", "parameters": {"parent": {"type": "string", "location": "query"}, "previous": {"type": "string", "location": "query"}, "task": {"type": "string", "required": true, "location": "path"}, "tasklist": {"type": "string", "required": true, "location": "path"}}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/tasks"]}, "patch": {"id": "tasks.tasks.patch", "path": "lists/{tasklist}/tasks/{task}", "httpMethod": "PATCH", "parameters": {"task": {"type": "string", "required": true, "location": "path"}, "tasklist": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/tasks"]}, "update": {"id": "tasks.tasks.update", "path": "lists/{tasklist}/tasks/{task}", "httpMethod": "PUT", "parameters": {"task": {"type": "string", "required": true, "location": "path"}, "tasklist": {"type": "string", "required": true, "location": "path"}}, "request": {"$ref": "Task"}, "response": {"$ref": "Task"}, "scopes": ["https://www.googleapis.com/auth/tasks"]}}}', true));
+
+ }
+}
+
+
+
+class Google_Task extends Google_Model {
+ public $completed;
+ public $deleted;
+ public $due;
+ public $etag;
+ public $hidden;
+ public $id;
+ public $kind;
+ protected $__linksType = 'Google_TaskLinks';
+ protected $__linksDataType = 'array';
+ public $links;
+ public $notes;
+ public $parent;
+ public $position;
+ public $selfLink;
+ public $status;
+ public $title;
+ public $updated;
+ public function setCompleted( $completed) {
+ $this->completed = $completed;
+ }
+ public function getCompleted() {
+ return $this->completed;
+ }
+ public function setDeleted( $deleted) {
+ $this->deleted = $deleted;
+ }
+ public function getDeleted() {
+ return $this->deleted;
+ }
+ public function setDue( $due) {
+ $this->due = $due;
+ }
+ public function getDue() {
+ return $this->due;
+ }
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setHidden( $hidden) {
+ $this->hidden = $hidden;
+ }
+ public function getHidden() {
+ return $this->hidden;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLinks(/* array(Google_TaskLinks) */ $links) {
+ $this->assertIsArray($links, 'Google_TaskLinks', __METHOD__);
+ $this->links = $links;
+ }
+ public function getLinks() {
+ return $this->links;
+ }
+ public function setNotes( $notes) {
+ $this->notes = $notes;
+ }
+ public function getNotes() {
+ return $this->notes;
+ }
+ public function setParent( $parent) {
+ $this->parent = $parent;
+ }
+ public function getParent() {
+ return $this->parent;
+ }
+ public function setPosition( $position) {
+ $this->position = $position;
+ }
+ public function getPosition() {
+ return $this->position;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_TaskLinks extends Google_Model {
+ public $description;
+ public $link;
+ public $type;
+ public function setDescription( $description) {
+ $this->description = $description;
+ }
+ public function getDescription() {
+ return $this->description;
+ }
+ public function setLink( $link) {
+ $this->link = $link;
+ }
+ public function getLink() {
+ return $this->link;
+ }
+ public function setType( $type) {
+ $this->type = $type;
+ }
+ public function getType() {
+ return $this->type;
+ }
+}
+
+class Google_TaskList extends Google_Model {
+ public $etag;
+ public $id;
+ public $kind;
+ public $selfLink;
+ public $title;
+ public $updated;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setSelfLink( $selfLink) {
+ $this->selfLink = $selfLink;
+ }
+ public function getSelfLink() {
+ return $this->selfLink;
+ }
+ public function setTitle( $title) {
+ $this->title = $title;
+ }
+ public function getTitle() {
+ return $this->title;
+ }
+ public function setUpdated( $updated) {
+ $this->updated = $updated;
+ }
+ public function getUpdated() {
+ return $this->updated;
+ }
+}
+
+class Google_TaskLists extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_TaskList';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_TaskList) */ $items) {
+ $this->assertIsArray($items, 'Google_TaskList', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
+
+class Google_Tasks extends Google_Model {
+ public $etag;
+ protected $__itemsType = 'Google_Task';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public $nextPageToken;
+ public function setEtag( $etag) {
+ $this->etag = $etag;
+ }
+ public function getEtag() {
+ return $this->etag;
+ }
+ public function setItems(/* array(Google_Task) */ $items) {
+ $this->assertIsArray($items, 'Google_Task', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TranslateService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TranslateService.php
new file mode 100644
index 0000000..e08a3a5
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_TranslateService.php
@@ -0,0 +1,243 @@
+
+ * $translateService = new Google_TranslateService(...);
+ * $detections = $translateService->detections;
+ *
+ */
+ class Google_DetectionsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Detect the language of text. (detections.list)
+ *
+ * @param string $q The text to detect
+ * @param array $optParams Optional parameters.
+ * @return Google_DetectionsListResponse
+ */
+ public function listDetections($q, $optParams = array()) {
+ $params = array('q' => $q);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_DetectionsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "languages" collection of methods.
+ * Typical usage is:
+ *
+ * $translateService = new Google_TranslateService(...);
+ * $languages = $translateService->languages;
+ *
+ */
+ class Google_LanguagesServiceResource extends Google_ServiceResource {
+
+ /**
+ * List the source/target languages supported by the API (languages.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string target the language and collation in which the localized results should be returned
+ * @return Google_LanguagesListResponse
+ */
+ public function listLanguages($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_LanguagesListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+ /**
+ * The "translations" collection of methods.
+ * Typical usage is:
+ *
+ * $translateService = new Google_TranslateService(...);
+ * $translations = $translateService->translations;
+ *
+ */
+ class Google_TranslationsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Returns text translations from one language to another. (translations.list)
+ *
+ * @param string $q The text to translate
+ * @param string $target The target language into which the text should be translated
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string cid The customization id for translate
+ * @opt_param string format The format of the text
+ * @opt_param string source The source language of the text
+ * @return Google_TranslationsListResponse
+ */
+ public function listTranslations($q, $target, $optParams = array()) {
+ $params = array('q' => $q, 'target' => $target);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_TranslationsListResponse($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Translate (v2).
+ *
+ *
+ * Lets you translate text from one language to another
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_TranslateService extends Google_Service {
+ public $detections;
+ public $languages;
+ public $translations;
+ /**
+ * Constructs the internal representation of the Translate service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'language/translate/';
+ $this->version = 'v2';
+ $this->serviceName = 'translate';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->detections = new Google_DetectionsServiceResource($this, $this->serviceName, 'detections', json_decode('{"methods": {"list": {"id": "language.detections.list", "path": "v2/detect", "httpMethod": "GET", "parameters": {"q": {"type": "string", "required": true, "repeated": true, "location": "query"}}, "response": {"$ref": "DetectionsListResponse"}}}}', true));
+ $this->languages = new Google_LanguagesServiceResource($this, $this->serviceName, 'languages', json_decode('{"methods": {"list": {"id": "language.languages.list", "path": "v2/languages", "httpMethod": "GET", "parameters": {"target": {"type": "string", "location": "query"}}, "response": {"$ref": "LanguagesListResponse"}}}}', true));
+ $this->translations = new Google_TranslationsServiceResource($this, $this->serviceName, 'translations', json_decode('{"methods": {"list": {"id": "language.translations.list", "path": "v2", "httpMethod": "GET", "parameters": {"cid": {"type": "string", "repeated": true, "location": "query"}, "format": {"type": "string", "enum": ["html", "text"], "location": "query"}, "q": {"type": "string", "required": true, "repeated": true, "location": "query"}, "source": {"type": "string", "location": "query"}, "target": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "TranslationsListResponse"}}}}', true));
+
+ }
+}
+
+
+
+class Google_DetectionsListResponse extends Google_Model {
+ protected $__detectionsType = 'Google_DetectionsResourceItems';
+ protected $__detectionsDataType = 'array';
+ public $detections;
+ public function setDetections(/* array(Google_DetectionsResourceItems) */ $detections) {
+ $this->assertIsArray($detections, 'Google_DetectionsResourceItems', __METHOD__);
+ $this->detections = $detections;
+ }
+ public function getDetections() {
+ return $this->detections;
+ }
+}
+
+class Google_DetectionsResourceItems extends Google_Model {
+ public $confidence;
+ public $isReliable;
+ public $language;
+ public function setConfidence( $confidence) {
+ $this->confidence = $confidence;
+ }
+ public function getConfidence() {
+ return $this->confidence;
+ }
+ public function setIsReliable( $isReliable) {
+ $this->isReliable = $isReliable;
+ }
+ public function getIsReliable() {
+ return $this->isReliable;
+ }
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+}
+
+class Google_LanguagesListResponse extends Google_Model {
+ protected $__languagesType = 'Google_LanguagesResource';
+ protected $__languagesDataType = 'array';
+ public $languages;
+ public function setLanguages(/* array(Google_LanguagesResource) */ $languages) {
+ $this->assertIsArray($languages, 'Google_LanguagesResource', __METHOD__);
+ $this->languages = $languages;
+ }
+ public function getLanguages() {
+ return $this->languages;
+ }
+}
+
+class Google_LanguagesResource extends Google_Model {
+ public $language;
+ public $name;
+ public function setLanguage( $language) {
+ $this->language = $language;
+ }
+ public function getLanguage() {
+ return $this->language;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
+
+class Google_TranslationsListResponse extends Google_Model {
+ protected $__translationsType = 'Google_TranslationsResource';
+ protected $__translationsDataType = 'array';
+ public $translations;
+ public function setTranslations(/* array(Google_TranslationsResource) */ $translations) {
+ $this->assertIsArray($translations, 'Google_TranslationsResource', __METHOD__);
+ $this->translations = $translations;
+ }
+ public function getTranslations() {
+ return $this->translations;
+ }
+}
+
+class Google_TranslationsResource extends Google_Model {
+ public $detectedSourceLanguage;
+ public $translatedText;
+ public function setDetectedSourceLanguage( $detectedSourceLanguage) {
+ $this->detectedSourceLanguage = $detectedSourceLanguage;
+ }
+ public function getDetectedSourceLanguage() {
+ return $this->detectedSourceLanguage;
+ }
+ public function setTranslatedText( $translatedText) {
+ $this->translatedText = $translatedText;
+ }
+ public function getTranslatedText() {
+ return $this->translatedText;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_UrlshortenerService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_UrlshortenerService.php
new file mode 100644
index 0000000..5348ca9
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_UrlshortenerService.php
@@ -0,0 +1,326 @@
+
+ * $urlshortenerService = new Google_UrlshortenerService(...);
+ * $url = $urlshortenerService->url;
+ *
+ */
+ class Google_UrlServiceResource extends Google_ServiceResource {
+
+ /**
+ * Expands a short URL or gets creation time and analytics. (url.get)
+ *
+ * @param string $shortUrl The short URL, including the protocol.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection Additional information to return.
+ * @return Google_Url
+ */
+ public function get($shortUrl, $optParams = array()) {
+ $params = array('shortUrl' => $shortUrl);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('get', array($params));
+ if ($this->useObjects()) {
+ return new Google_Url($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Creates a new short URL. (url.insert)
+ *
+ * @param Google_Url $postBody
+ * @param array $optParams Optional parameters.
+ * @return Google_Url
+ */
+ public function insert(Google_Url $postBody, $optParams = array()) {
+ $params = array('postBody' => $postBody);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('insert', array($params));
+ if ($this->useObjects()) {
+ return new Google_Url($data);
+ } else {
+ return $data;
+ }
+ }
+ /**
+ * Retrieves a list of URLs shortened by a user. (url.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string projection Additional information to return.
+ * @opt_param string start-token Token for requesting successive pages of results.
+ * @return Google_UrlHistory
+ */
+ public function listUrl($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_UrlHistory($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Urlshortener (v1).
+ *
+ *
+ * Lets you create, inspect, and manage goo.gl short URLs
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_UrlshortenerService extends Google_Service {
+ public $url;
+ /**
+ * Constructs the internal representation of the Urlshortener service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'urlshortener/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'urlshortener';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->url = new Google_UrlServiceResource($this, $this->serviceName, 'url', json_decode('{"methods": {"get": {"id": "urlshortener.url.get", "path": "url", "httpMethod": "GET", "parameters": {"projection": {"type": "string", "enum": ["ANALYTICS_CLICKS", "ANALYTICS_TOP_STRINGS", "FULL"], "location": "query"}, "shortUrl": {"type": "string", "required": true, "location": "query"}}, "response": {"$ref": "Url"}}, "insert": {"id": "urlshortener.url.insert", "path": "url", "httpMethod": "POST", "request": {"$ref": "Url"}, "response": {"$ref": "Url"}, "scopes": ["https://www.googleapis.com/auth/urlshortener"]}, "list": {"id": "urlshortener.url.list", "path": "url/history", "httpMethod": "GET", "parameters": {"projection": {"type": "string", "enum": ["ANALYTICS_CLICKS", "FULL"], "location": "query"}, "start-token": {"type": "string", "location": "query"}}, "response": {"$ref": "UrlHistory"}, "scopes": ["https://www.googleapis.com/auth/urlshortener"]}}}', true));
+
+ }
+}
+
+
+
+class Google_AnalyticsSnapshot extends Google_Model {
+ protected $__browsersType = 'Google_StringCount';
+ protected $__browsersDataType = 'array';
+ public $browsers;
+ protected $__countriesType = 'Google_StringCount';
+ protected $__countriesDataType = 'array';
+ public $countries;
+ public $longUrlClicks;
+ protected $__platformsType = 'Google_StringCount';
+ protected $__platformsDataType = 'array';
+ public $platforms;
+ protected $__referrersType = 'Google_StringCount';
+ protected $__referrersDataType = 'array';
+ public $referrers;
+ public $shortUrlClicks;
+ public function setBrowsers(/* array(Google_StringCount) */ $browsers) {
+ $this->assertIsArray($browsers, 'Google_StringCount', __METHOD__);
+ $this->browsers = $browsers;
+ }
+ public function getBrowsers() {
+ return $this->browsers;
+ }
+ public function setCountries(/* array(Google_StringCount) */ $countries) {
+ $this->assertIsArray($countries, 'Google_StringCount', __METHOD__);
+ $this->countries = $countries;
+ }
+ public function getCountries() {
+ return $this->countries;
+ }
+ public function setLongUrlClicks( $longUrlClicks) {
+ $this->longUrlClicks = $longUrlClicks;
+ }
+ public function getLongUrlClicks() {
+ return $this->longUrlClicks;
+ }
+ public function setPlatforms(/* array(Google_StringCount) */ $platforms) {
+ $this->assertIsArray($platforms, 'Google_StringCount', __METHOD__);
+ $this->platforms = $platforms;
+ }
+ public function getPlatforms() {
+ return $this->platforms;
+ }
+ public function setReferrers(/* array(Google_StringCount) */ $referrers) {
+ $this->assertIsArray($referrers, 'Google_StringCount', __METHOD__);
+ $this->referrers = $referrers;
+ }
+ public function getReferrers() {
+ return $this->referrers;
+ }
+ public function setShortUrlClicks( $shortUrlClicks) {
+ $this->shortUrlClicks = $shortUrlClicks;
+ }
+ public function getShortUrlClicks() {
+ return $this->shortUrlClicks;
+ }
+}
+
+class Google_AnalyticsSummary extends Google_Model {
+ protected $__allTimeType = 'Google_AnalyticsSnapshot';
+ protected $__allTimeDataType = '';
+ public $allTime;
+ protected $__dayType = 'Google_AnalyticsSnapshot';
+ protected $__dayDataType = '';
+ public $day;
+ protected $__monthType = 'Google_AnalyticsSnapshot';
+ protected $__monthDataType = '';
+ public $month;
+ protected $__twoHoursType = 'Google_AnalyticsSnapshot';
+ protected $__twoHoursDataType = '';
+ public $twoHours;
+ protected $__weekType = 'Google_AnalyticsSnapshot';
+ protected $__weekDataType = '';
+ public $week;
+ public function setAllTime(Google_AnalyticsSnapshot $allTime) {
+ $this->allTime = $allTime;
+ }
+ public function getAllTime() {
+ return $this->allTime;
+ }
+ public function setDay(Google_AnalyticsSnapshot $day) {
+ $this->day = $day;
+ }
+ public function getDay() {
+ return $this->day;
+ }
+ public function setMonth(Google_AnalyticsSnapshot $month) {
+ $this->month = $month;
+ }
+ public function getMonth() {
+ return $this->month;
+ }
+ public function setTwoHours(Google_AnalyticsSnapshot $twoHours) {
+ $this->twoHours = $twoHours;
+ }
+ public function getTwoHours() {
+ return $this->twoHours;
+ }
+ public function setWeek(Google_AnalyticsSnapshot $week) {
+ $this->week = $week;
+ }
+ public function getWeek() {
+ return $this->week;
+ }
+}
+
+class Google_StringCount extends Google_Model {
+ public $count;
+ public $id;
+ public function setCount( $count) {
+ $this->count = $count;
+ }
+ public function getCount() {
+ return $this->count;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+}
+
+class Google_Url extends Google_Model {
+ protected $__analyticsType = 'Google_AnalyticsSummary';
+ protected $__analyticsDataType = '';
+ public $analytics;
+ public $created;
+ public $id;
+ public $kind;
+ public $longUrl;
+ public $status;
+ public function setAnalytics(Google_AnalyticsSummary $analytics) {
+ $this->analytics = $analytics;
+ }
+ public function getAnalytics() {
+ return $this->analytics;
+ }
+ public function setCreated( $created) {
+ $this->created = $created;
+ }
+ public function getCreated() {
+ return $this->created;
+ }
+ public function setId( $id) {
+ $this->id = $id;
+ }
+ public function getId() {
+ return $this->id;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLongUrl( $longUrl) {
+ $this->longUrl = $longUrl;
+ }
+ public function getLongUrl() {
+ return $this->longUrl;
+ }
+ public function setStatus( $status) {
+ $this->status = $status;
+ }
+ public function getStatus() {
+ return $this->status;
+ }
+}
+
+class Google_UrlHistory extends Google_Model {
+ protected $__itemsType = 'Google_Url';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $itemsPerPage;
+ public $kind;
+ public $nextPageToken;
+ public $totalItems;
+ public function setItems(/* array(Google_Url) */ $items) {
+ $this->assertIsArray($items, 'Google_Url', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setItemsPerPage( $itemsPerPage) {
+ $this->itemsPerPage = $itemsPerPage;
+ }
+ public function getItemsPerPage() {
+ return $this->itemsPerPage;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setNextPageToken( $nextPageToken) {
+ $this->nextPageToken = $nextPageToken;
+ }
+ public function getNextPageToken() {
+ return $this->nextPageToken;
+ }
+ public function setTotalItems( $totalItems) {
+ $this->totalItems = $totalItems;
+ }
+ public function getTotalItems() {
+ return $this->totalItems;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_WebfontsService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_WebfontsService.php
new file mode 100644
index 0000000..f5f76fb
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_WebfontsService.php
@@ -0,0 +1,153 @@
+
+ * $webfontsService = new Google_WebfontsService(...);
+ * $webfonts = $webfontsService->webfonts;
+ *
+ */
+ class Google_WebfontsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieves the list of fonts currently served by the Google Fonts Developer API (webfonts.list)
+ *
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string sort Enables sorting of the list
+ * @return Google_WebfontList
+ */
+ public function listWebfonts($optParams = array()) {
+ $params = array();
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('list', array($params));
+ if ($this->useObjects()) {
+ return new Google_WebfontList($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_Webfonts (v1).
+ *
+ *
+ * The Google Fonts Developer API.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_WebfontsService extends Google_Service {
+ public $webfonts;
+ /**
+ * Constructs the internal representation of the Webfonts service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'webfonts/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'webfonts';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->webfonts = new Google_WebfontsServiceResource($this, $this->serviceName, 'webfonts', json_decode('{"methods": {"list": {"id": "webfonts.webfonts.list", "path": "webfonts", "httpMethod": "GET", "parameters": {"sort": {"type": "string", "enum": ["alpha", "date", "popularity", "style", "trending"], "location": "query"}}, "response": {"$ref": "WebfontList"}}}}', true));
+
+ }
+}
+
+
+
+class Google_Webfont extends Google_Model {
+ public $family;
+ public $files;
+ public $kind;
+ public $lastModified;
+ public $subsets;
+ public $variants;
+ public $version;
+ public function setFamily( $family) {
+ $this->family = $family;
+ }
+ public function getFamily() {
+ return $this->family;
+ }
+ public function setFiles( $files) {
+ $this->files = $files;
+ }
+ public function getFiles() {
+ return $this->files;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setLastModified( $lastModified) {
+ $this->lastModified = $lastModified;
+ }
+ public function getLastModified() {
+ return $this->lastModified;
+ }
+ public function setSubsets(/* array(Google_string) */ $subsets) {
+ $this->assertIsArray($subsets, 'Google_string', __METHOD__);
+ $this->subsets = $subsets;
+ }
+ public function getSubsets() {
+ return $this->subsets;
+ }
+ public function setVariants(/* array(Google_string) */ $variants) {
+ $this->assertIsArray($variants, 'Google_string', __METHOD__);
+ $this->variants = $variants;
+ }
+ public function getVariants() {
+ return $this->variants;
+ }
+ public function setVersion( $version) {
+ $this->version = $version;
+ }
+ public function getVersion() {
+ return $this->version;
+ }
+}
+
+class Google_WebfontList extends Google_Model {
+ protected $__itemsType = 'Google_Webfont';
+ protected $__itemsDataType = 'array';
+ public $items;
+ public $kind;
+ public function setItems(/* array(Google_Webfont) */ $items) {
+ $this->assertIsArray($items, 'Google_Webfont', __METHOD__);
+ $this->items = $items;
+ }
+ public function getItems() {
+ return $this->items;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_YouTubeAnalyticsService.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_YouTubeAnalyticsService.php
new file mode 100644
index 0000000..a673969
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_YouTubeAnalyticsService.php
@@ -0,0 +1,141 @@
+
+ * $youtubeAnalyticsService = new Google_YouTubeAnalyticsService(...);
+ * $reports = $youtubeAnalyticsService->reports;
+ *
+ */
+ class Google_ReportsServiceResource extends Google_ServiceResource {
+
+ /**
+ * Retrieve your YouTube Analytics reports. (reports.query)
+ *
+ * @param string $ids Identifies the YouTube channel or content owner for which you are retrieving YouTube Analytics data.
+ - To request data for a YouTube user, set the ids parameter value to channel==CHANNEL_ID, where CHANNEL_ID specifies the unique YouTube channel ID.
+ - To request data for a YouTube CMS content owner, set the ids parameter value to contentOwner==OWNER_NAME, where OWNER_NAME is the CMS name of the content owner.
+ * @param string $start_date The start date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format.
+ * @param string $end_date The end date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format.
+ * @param string $metrics A comma-separated list of YouTube Analytics metrics, such as views or likes,dislikes. See the Available Reports document for a list of the reports that you can retrieve and the metrics available in each report, and see the Metrics document for definitions of those metrics.
+ * @param array $optParams Optional parameters.
+ *
+ * @opt_param string dimensions A comma-separated list of YouTube Analytics dimensions, such as views or ageGroup,gender. See the Available Reports document for a list of the reports that you can retrieve and the dimensions used for those reports. Also see the Dimensions document for definitions of those dimensions.
+ * @opt_param string filters A list of filters that should be applied when retrieving YouTube Analytics data. The Available Reports document identifies the dimensions that can be used to filter each report, and the Dimensions document defines those dimensions. If a request uses multiple filters, join them together with a semicolon (;), and the returned result table will satisfy both filters. For example, a filters parameter value of video==dMH0bHeiRNg;country==IT restricts the result set to include data for the given video in Italy.
+ * @opt_param int max-results The maximum number of rows to include in the response.
+ * @opt_param string sort A comma-separated list of dimensions or metrics that determine the sort order for YouTube Analytics data. By default the sort order is ascending. The '-' prefix causes descending sort order.
+ * @opt_param int start-index An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter (one-based, inclusive).
+ * @return Google_ResultTable
+ */
+ public function query($ids, $start_date, $end_date, $metrics, $optParams = array()) {
+ $params = array('ids' => $ids, 'start-date' => $start_date, 'end-date' => $end_date, 'metrics' => $metrics);
+ $params = array_merge($params, $optParams);
+ $data = $this->__call('query', array($params));
+ if ($this->useObjects()) {
+ return new Google_ResultTable($data);
+ } else {
+ return $data;
+ }
+ }
+ }
+
+/**
+ * Service definition for Google_YouTubeAnalytics (v1).
+ *
+ *
+ * Retrieve your YouTube Analytics reports.
+ *
+ *
+ *
+ * For more information about this service, see the
+ * API Documentation
+ *
+ *
+ * @author Google, Inc.
+ */
+class Google_YouTubeAnalyticsService extends Google_Service {
+ public $reports;
+ /**
+ * Constructs the internal representation of the YouTubeAnalytics service.
+ *
+ * @param Google_Client $client
+ */
+ public function __construct(Google_Client $client) {
+ $this->servicePath = 'youtube/analytics/v1/';
+ $this->version = 'v1';
+ $this->serviceName = 'youtubeAnalytics';
+
+ $client->addService($this->serviceName, $this->version);
+ $this->reports = new Google_ReportsServiceResource($this, $this->serviceName, 'reports', json_decode('{"methods": {"query": {"id": "youtubeAnalytics.reports.query", "path": "reports", "httpMethod": "GET", "parameters": {"dimensions": {"type": "string", "location": "query"}, "end-date": {"type": "string", "required": true, "location": "query"}, "filters": {"type": "string", "location": "query"}, "ids": {"type": "string", "required": true, "location": "query"}, "max-results": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}, "metrics": {"type": "string", "required": true, "location": "query"}, "sort": {"type": "string", "location": "query"}, "start-date": {"type": "string", "required": true, "location": "query"}, "start-index": {"type": "integer", "format": "int32", "minimum": "1", "location": "query"}}, "response": {"$ref": "ResultTable"}, "scopes": ["https://www.googleapis.com/auth/yt-analytics-monetary.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly"]}}}', true));
+
+ }
+}
+
+
+
+class Google_ResultTable extends Google_Model {
+ protected $__columnHeadersType = 'Google_ResultTableColumnHeaders';
+ protected $__columnHeadersDataType = 'array';
+ public $columnHeaders;
+ public $kind;
+ public $rows;
+ public function setColumnHeaders(/* array(Google_ResultTableColumnHeaders) */ $columnHeaders) {
+ $this->assertIsArray($columnHeaders, 'Google_ResultTableColumnHeaders', __METHOD__);
+ $this->columnHeaders = $columnHeaders;
+ }
+ public function getColumnHeaders() {
+ return $this->columnHeaders;
+ }
+ public function setKind( $kind) {
+ $this->kind = $kind;
+ }
+ public function getKind() {
+ return $this->kind;
+ }
+ public function setRows(/* array(Google_object) */ $rows) {
+ $this->assertIsArray($rows, 'Google_object', __METHOD__);
+ $this->rows = $rows;
+ }
+ public function getRows() {
+ return $this->rows;
+ }
+}
+
+class Google_ResultTableColumnHeaders extends Google_Model {
+ public $columnType;
+ public $dataType;
+ public $name;
+ public function setColumnType( $columnType) {
+ $this->columnType = $columnType;
+ }
+ public function getColumnType() {
+ return $this->columnType;
+ }
+ public function setDataType( $dataType) {
+ $this->dataType = $dataType;
+ }
+ public function getDataType() {
+ return $this->dataType;
+ }
+ public function setName( $name) {
+ $this->name = $name;
+ }
+ public function getName() {
+ return $this->name;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/external/URITemplateParser.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/external/URITemplateParser.php
new file mode 100644
index 0000000..4e3425a
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/external/URITemplateParser.php
@@ -0,0 +1,212 @@
+template = $template;
+ }
+
+ public function expand($data) {
+ // Modification to make this a bit more performant (since gettype is very slow)
+ if (! is_array($data)) {
+ $data = (array)$data;
+ }
+ /*
+ // Original code, which uses a slow gettype() statement, kept in place for if the assumption that is_array always works here is incorrect
+ switch (gettype($data)) {
+ case "boolean":
+ case "integer":
+ case "double":
+ case "string":
+ case "object":
+ $data = (array)$data;
+ break;
+ }
+ */
+
+ // Resolve template vars
+ preg_match_all('/\{([^\}]*)\}/', $this->template, $em);
+
+ foreach ($em[1] as $i => $bare_expression) {
+ preg_match('/^([\+\;\?\/\.]{1})?(.*)$/', $bare_expression, $lm);
+ $exp = new StdClass();
+ $exp->expression = $em[0][$i];
+ $exp->operator = $lm[1];
+ $exp->variable_list = $lm[2];
+ $exp->varspecs = explode(',', $exp->variable_list);
+ $exp->vars = array();
+ foreach ($exp->varspecs as $varspec) {
+ preg_match('/^([a-zA-Z0-9_]+)([\*\+]{1})?([\:\^][0-9-]+)?(\=[^,]+)?$/', $varspec, $vm);
+ $var = new StdClass();
+ $var->name = $vm[1];
+ $var->modifier = isset($vm[2]) && $vm[2] ? $vm[2] : null;
+ $var->modifier = isset($vm[3]) && $vm[3] ? $vm[3] : $var->modifier;
+ $var->default = isset($vm[4]) ? substr($vm[4], 1) : null;
+ $exp->vars[] = $var;
+ }
+
+ // Add processing flags
+ $exp->reserved = false;
+ $exp->prefix = '';
+ $exp->delimiter = ',';
+ switch ($exp->operator) {
+ case '+':
+ $exp->reserved = 'true';
+ break;
+ case ';':
+ $exp->prefix = ';';
+ $exp->delimiter = ';';
+ break;
+ case '?':
+ $exp->prefix = '?';
+ $exp->delimiter = '&';
+ break;
+ case '/':
+ $exp->prefix = '/';
+ $exp->delimiter = '/';
+ break;
+ case '.':
+ $exp->prefix = '.';
+ $exp->delimiter = '.';
+ break;
+ }
+ $expressions[] = $exp;
+ }
+
+ // Expansion
+ $this->expansion = $this->template;
+
+ foreach ($expressions as $exp) {
+ $part = $exp->prefix;
+ $exp->one_var_defined = false;
+ foreach ($exp->vars as $var) {
+ $val = '';
+ if ($exp->one_var_defined && isset($data[$var->name])) {
+ $part .= $exp->delimiter;
+ }
+ // Variable present
+ if (isset($data[$var->name])) {
+ $exp->one_var_defined = true;
+ $var->data = $data[$var->name];
+
+ $val = self::val_from_var($var, $exp);
+
+ // Variable missing
+ } else {
+ if ($var->default) {
+ $exp->one_var_defined = true;
+ $val = $var->default;
+ }
+ }
+ $part .= $val;
+ }
+ if (! $exp->one_var_defined) $part = '';
+ $this->expansion = str_replace($exp->expression, $part, $this->expansion);
+ }
+
+ return $this->expansion;
+ }
+
+ private function val_from_var($var, $exp) {
+ $val = '';
+ if (is_array($var->data)) {
+ $i = 0;
+ if ($exp->operator == '?' && ! $var->modifier) {
+ $val .= $var->name . '=';
+ }
+ foreach ($var->data as $k => $v) {
+ $del = $var->modifier ? $exp->delimiter : ',';
+ $ek = rawurlencode($k);
+ $ev = rawurlencode($v);
+
+ // Array
+ if ($k !== $i) {
+ if ($var->modifier == '+') {
+ $val .= $var->name . '.';
+ }
+ if ($exp->operator == '?' && $var->modifier || $exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+') {
+ $val .= $ek . '=';
+ } else {
+ $val .= $ek . $del;
+ }
+
+ // List
+ } else {
+ if ($var->modifier == '+') {
+ if ($exp->operator == ';' && $var->modifier == '*' || $exp->operator == ';' && $var->modifier == '+' || $exp->operator == '?' && $var->modifier == '+') {
+ $val .= $var->name . '=';
+ } else {
+ $val .= $var->name . '.';
+ }
+ }
+ }
+ $val .= $ev . $del;
+ $i ++;
+ }
+ $val = trim($val, $del);
+
+ // Strings, numbers, etc.
+ } else {
+ if ($exp->operator == '?') {
+ $val = $var->name . (isset($var->data) ? '=' : '');
+ } else if ($exp->operator == ';') {
+ $val = $var->name . ($var->data ? '=' : '');
+ }
+ $val .= rawurlencode($var->data);
+ if ($exp->operator == '+') {
+ $val = str_replace(self::$reserved_pct, self::$reserved, $val);
+ }
+ }
+ return $val;
+ }
+
+ public function match($uri) {}
+
+ public function __toString() {
+ return $this->template;
+ }
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_CacheParser.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_CacheParser.php
new file mode 100644
index 0000000..7f5accf
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_CacheParser.php
@@ -0,0 +1,173 @@
+
+ */
+class Google_CacheParser {
+ public static $CACHEABLE_HTTP_METHODS = array('GET', 'HEAD');
+ public static $CACHEABLE_STATUS_CODES = array('200', '203', '300', '301');
+
+ private function __construct() {}
+
+ /**
+ * Check if an HTTP request can be cached by a private local cache.
+ *
+ * @static
+ * @param Google_HttpRequest $resp
+ * @return bool True if the request is cacheable.
+ * False if the request is uncacheable.
+ */
+ public static function isRequestCacheable (Google_HttpRequest $resp) {
+ $method = $resp->getRequestMethod();
+ if (! in_array($method, self::$CACHEABLE_HTTP_METHODS)) {
+ return false;
+ }
+
+ // Don't cache authorized requests/responses.
+ // [rfc2616-14.8] When a shared cache receives a request containing an
+ // Authorization field, it MUST NOT return the corresponding response
+ // as a reply to any other request...
+ if ($resp->getRequestHeader("authorization")) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Check if an HTTP response can be cached by a private local cache.
+ *
+ * @static
+ * @param Google_HttpRequest $resp
+ * @return bool True if the response is cacheable.
+ * False if the response is un-cacheable.
+ */
+ public static function isResponseCacheable (Google_HttpRequest $resp) {
+ // First, check if the HTTP request was cacheable before inspecting the
+ // HTTP response.
+ if (false == self::isRequestCacheable($resp)) {
+ return false;
+ }
+
+ $code = $resp->getResponseHttpCode();
+ if (! in_array($code, self::$CACHEABLE_STATUS_CODES)) {
+ return false;
+ }
+
+ // The resource is uncacheable if the resource is already expired and
+ // the resource doesn't have an ETag for revalidation.
+ $etag = $resp->getResponseHeader("etag");
+ if (self::isExpired($resp) && $etag == false) {
+ return false;
+ }
+
+ // [rfc2616-14.9.2] If [no-store is] sent in a response, a cache MUST NOT
+ // store any part of either this response or the request that elicited it.
+ $cacheControl = $resp->getParsedCacheControl();
+ if (isset($cacheControl['no-store'])) {
+ return false;
+ }
+
+ // Pragma: no-cache is an http request directive, but is occasionally
+ // used as a response header incorrectly.
+ $pragma = $resp->getResponseHeader('pragma');
+ if ($pragma == 'no-cache' || strpos($pragma, 'no-cache') !== false) {
+ return false;
+ }
+
+ // [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that
+ // a cache cannot determine from the request headers of a subsequent request
+ // whether this response is the appropriate representation."
+ // Given this, we deem responses with the Vary header as uncacheable.
+ $vary = $resp->getResponseHeader('vary');
+ if ($vary) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * @static
+ * @param Google_HttpRequest $resp
+ * @return bool True if the HTTP response is considered to be expired.
+ * False if it is considered to be fresh.
+ */
+ public static function isExpired(Google_HttpRequest $resp) {
+ // HTTP/1.1 clients and caches MUST treat other invalid date formats,
+ // especially including the value “0â€, as in the past.
+ $parsedExpires = false;
+ $responseHeaders = $resp->getResponseHeaders();
+ if (isset($responseHeaders['expires'])) {
+ $rawExpires = $responseHeaders['expires'];
+ // Check for a malformed expires header first.
+ if (empty($rawExpires) || (is_numeric($rawExpires) && $rawExpires <= 0)) {
+ return true;
+ }
+
+ // See if we can parse the expires header.
+ $parsedExpires = strtotime($rawExpires);
+ if (false == $parsedExpires || $parsedExpires <= 0) {
+ return true;
+ }
+ }
+
+ // Calculate the freshness of an http response.
+ $freshnessLifetime = false;
+ $cacheControl = $resp->getParsedCacheControl();
+ if (isset($cacheControl['max-age'])) {
+ $freshnessLifetime = $cacheControl['max-age'];
+ }
+
+ $rawDate = $resp->getResponseHeader('date');
+ $parsedDate = strtotime($rawDate);
+
+ if (empty($rawDate) || false == $parsedDate) {
+ $parsedDate = time();
+ }
+ if (false == $freshnessLifetime && isset($responseHeaders['expires'])) {
+ $freshnessLifetime = $parsedExpires - $parsedDate;
+ }
+
+ if (false == $freshnessLifetime) {
+ return true;
+ }
+
+ // Calculate the age of an http response.
+ $age = max(0, time() - $parsedDate);
+ if (isset($responseHeaders['age'])) {
+ $age = max($age, strtotime($responseHeaders['age']));
+ }
+
+ return $freshnessLifetime <= $age;
+ }
+
+ /**
+ * Determine if a cache entry should be revalidated with by the origin.
+ *
+ * @param Google_HttpRequest $response
+ * @return bool True if the entry is expired, else return false.
+ */
+ public static function mustRevalidate(Google_HttpRequest $response) {
+ // [13.3] When a cache has a stale entry that it would like to use as a
+ // response to a client's request, it first has to check with the origin
+ // server to see if its cached entry is still usable.
+ return self::isExpired($response);
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_CurlIO.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_CurlIO.php
new file mode 100644
index 0000000..daea7b9
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_CurlIO.php
@@ -0,0 +1,198 @@
+
+ * @author Chirag Shah
+ */
+
+require_once 'Google_CacheParser.php';
+
+class Google_CurlIO extends Google_IO {
+ private static $ENTITY_HTTP_METHODS = array("POST" => null, "PUT" => null);
+ private static $HOP_BY_HOP = array(
+ 'connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization',
+ 'te', 'trailers', 'transfer-encoding', 'upgrade');
+
+ private $curlParams = array (
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_FOLLOWLOCATION => 0,
+ CURLOPT_FAILONERROR => false,
+ CURLOPT_SSL_VERIFYPEER => true,
+ CURLOPT_HEADER => true,
+ CURLOPT_VERBOSE => false,
+ );
+
+ /**
+ * Check for cURL availability.
+ */
+ public function __construct() {
+ if (! function_exists('curl_init')) {
+ throw new Exception(
+ 'Google CurlIO client requires the CURL PHP extension');
+ }
+ }
+
+ /**
+ * Perform an authenticated / signed apiHttpRequest.
+ * This function takes the apiHttpRequest, calls apiAuth->sign on it
+ * (which can modify the request in what ever way fits the auth mechanism)
+ * and then calls apiCurlIO::makeRequest on the signed request
+ *
+ * @param Google_HttpRequest $request
+ * @return Google_HttpRequest The resulting HTTP response including the
+ * responseHttpCode, responseHeaders and responseBody.
+ */
+ public function authenticatedRequest(Google_HttpRequest $request) {
+ $request = Google_Client::$auth->sign($request);
+ return $this->makeRequest($request);
+ }
+
+ /**
+ * Execute a apiHttpRequest
+ *
+ * @param Google_HttpRequest $request the http request to be executed
+ * @return Google_HttpRequest http request with the response http code, response
+ * headers and response body filled in
+ * @throws Google_IOException on curl or IO error
+ */
+ public function makeRequest(Google_HttpRequest $request) {
+ // First, check to see if we have a valid cached version.
+ $cached = $this->getCachedRequest($request);
+ if ($cached !== false) {
+ if (!$this->checkMustRevaliadateCachedRequest($cached, $request)) {
+ return $cached;
+ }
+ }
+
+ if (array_key_exists($request->getRequestMethod(),
+ self::$ENTITY_HTTP_METHODS)) {
+ $request = $this->processEntityRequest($request);
+ }
+
+ $ch = curl_init();
+ curl_setopt_array($ch, $this->curlParams);
+ curl_setopt($ch, CURLOPT_URL, $request->getUrl());
+ if ($request->getPostBody()) {
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getPostBody());
+ }
+
+ $requestHeaders = $request->getRequestHeaders();
+ if ($requestHeaders && is_array($requestHeaders)) {
+ $parsed = array();
+ foreach ($requestHeaders as $k => $v) {
+ $parsed[] = "$k: $v";
+ }
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $parsed);
+ }
+
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod());
+ curl_setopt($ch, CURLOPT_USERAGENT, $request->getUserAgent());
+ $respData = curl_exec($ch);
+
+ // Retry if certificates are missing.
+ if (curl_errno($ch) == CURLE_SSL_CACERT) {
+ error_log('SSL certificate problem, verify that the CA cert is OK.'
+ . ' Retrying with the CA cert bundle from google-api-php-client.');
+ curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacerts.pem');
+ $respData = curl_exec($ch);
+ }
+
+ $respHeaderSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
+ $respHttpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ $curlErrorNum = curl_errno($ch);
+ $curlError = curl_error($ch);
+ curl_close($ch);
+ if ($curlErrorNum != CURLE_OK) {
+ throw new Google_IOException("HTTP Error: ($respHttpCode) $curlError");
+ }
+
+ // Parse out the raw response into usable bits
+ list($responseHeaders, $responseBody) =
+ self::parseHttpResponse($respData, $respHeaderSize);
+
+ if ($respHttpCode == 304 && $cached) {
+ // If the server responded NOT_MODIFIED, return the cached request.
+ $this->updateCachedRequest($cached, $responseHeaders);
+ return $cached;
+ }
+
+ // Fill in the apiHttpRequest with the response values
+ $request->setResponseHttpCode($respHttpCode);
+ $request->setResponseHeaders($responseHeaders);
+ $request->setResponseBody($responseBody);
+ // Store the request in cache (the function checks to see if the request
+ // can actually be cached)
+ $this->setCachedRequest($request);
+ // And finally return it
+ return $request;
+ }
+
+ /**
+ * Set options that update cURL's default behavior.
+ * The list of accepted options are:
+ * {@link http://php.net/manual/en/function.curl-setopt.php]
+ *
+ * @param array $optCurlParams Multiple options used by a cURL session.
+ */
+ public function setOptions($optCurlParams) {
+ foreach ($optCurlParams as $key => $val) {
+ $this->curlParams[$key] = $val;
+ }
+ }
+
+ /**
+ * @param $respData
+ * @param $headerSize
+ * @return array
+ */
+ private static function parseHttpResponse($respData, $headerSize) {
+ if (stripos($respData, parent::CONNECTION_ESTABLISHED) !== false) {
+ $respData = str_ireplace(parent::CONNECTION_ESTABLISHED, '', $respData);
+ }
+
+ if ($headerSize) {
+ $responseBody = substr($respData, $headerSize);
+ $responseHeaders = substr($respData, 0, $headerSize);
+ } else {
+ list($responseHeaders, $responseBody) = explode("\r\n\r\n", $respData, 2);
+ }
+
+ $responseHeaders = self::parseResponseHeaders($responseHeaders);
+ return array($responseHeaders, $responseBody);
+ }
+
+ private static function parseResponseHeaders($rawHeaders) {
+ $responseHeaders = array();
+
+ $responseHeaderLines = explode("\r\n", $rawHeaders);
+ foreach ($responseHeaderLines as $headerLine) {
+ if ($headerLine && strpos($headerLine, ':') !== false) {
+ list($header, $value) = explode(': ', $headerLine, 2);
+ $header = strtolower($header);
+ if (isset($responseHeaders[$header])) {
+ $responseHeaders[$header] .= "\n" . $value;
+ } else {
+ $responseHeaders[$header] = $value;
+ }
+ }
+ }
+ return $responseHeaders;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_HttpRequest.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_HttpRequest.php
new file mode 100644
index 0000000..efa277a
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_HttpRequest.php
@@ -0,0 +1,304 @@
+
+ * @author Chirag Shah
+ *
+ */
+class Google_HttpRequest {
+ const USER_AGENT_SUFFIX = "google-api-php-client/0.6.5";
+ private $batchHeaders = array(
+ 'Content-Type' => 'application/http',
+ 'Content-Transfer-Encoding' => 'binary',
+ 'MIME-Version' => '1.0',
+ 'Content-Length' => ''
+ );
+
+ protected $url;
+ protected $requestMethod;
+ protected $requestHeaders;
+ protected $postBody;
+ protected $userAgent;
+
+ protected $responseHttpCode;
+ protected $responseHeaders;
+ protected $responseBody;
+
+ public $accessKey;
+
+ public function __construct($url, $method = 'GET', $headers = array(), $postBody = null) {
+ $this->setUrl($url);
+ $this->setRequestMethod($method);
+ $this->setRequestHeaders($headers);
+ $this->setPostBody($postBody);
+
+ global $apiConfig;
+ if (empty($apiConfig['application_name'])) {
+ $this->userAgent = self::USER_AGENT_SUFFIX;
+ } else {
+ $this->userAgent = $apiConfig['application_name'] . " " . self::USER_AGENT_SUFFIX;
+ }
+ }
+
+ /**
+ * Misc function that returns the base url component of the $url
+ * used by the OAuth signing class to calculate the base string
+ * @return string The base url component of the $url.
+ * @see http://oauth.net/core/1.0a/#anchor13
+ */
+ public function getBaseUrl() {
+ if ($pos = strpos($this->url, '?')) {
+ return substr($this->url, 0, $pos);
+ }
+ return $this->url;
+ }
+
+ /**
+ * Misc function that returns an array of the query parameters of the current
+ * url used by the OAuth signing class to calculate the signature
+ * @return array Query parameters in the query string.
+ */
+ public function getQueryParams() {
+ if ($pos = strpos($this->url, '?')) {
+ $queryStr = substr($this->url, $pos + 1);
+ $params = array();
+ parse_str($queryStr, $params);
+ return $params;
+ }
+ return array();
+ }
+
+ /**
+ * @return string HTTP Response Code.
+ */
+ public function getResponseHttpCode() {
+ return (int) $this->responseHttpCode;
+ }
+
+ /**
+ * @param int $responseHttpCode HTTP Response Code.
+ */
+ public function setResponseHttpCode($responseHttpCode) {
+ $this->responseHttpCode = $responseHttpCode;
+ }
+
+ /**
+ * @return $responseHeaders (array) HTTP Response Headers.
+ */
+ public function getResponseHeaders() {
+ return $this->responseHeaders;
+ }
+
+ /**
+ * @return string HTTP Response Body
+ */
+ public function getResponseBody() {
+ return $this->responseBody;
+ }
+
+ /**
+ * @param array $headers The HTTP response headers
+ * to be normalized.
+ */
+ public function setResponseHeaders($headers) {
+ $headers = Google_Utils::normalize($headers);
+ if ($this->responseHeaders) {
+ $headers = array_merge($this->responseHeaders, $headers);
+ }
+
+ $this->responseHeaders = $headers;
+ }
+
+ /**
+ * @param string $key
+ * @return array|boolean Returns the requested HTTP header or
+ * false if unavailable.
+ */
+ public function getResponseHeader($key) {
+ return isset($this->responseHeaders[$key])
+ ? $this->responseHeaders[$key]
+ : false;
+ }
+
+ /**
+ * @param string $responseBody The HTTP response body.
+ */
+ public function setResponseBody($responseBody) {
+ $this->responseBody = $responseBody;
+ }
+
+ /**
+ * @return string $url The request URL.
+ */
+
+ public function getUrl() {
+ return $this->url;
+ }
+
+ /**
+ * @return string $method HTTP Request Method.
+ */
+ public function getRequestMethod() {
+ return $this->requestMethod;
+ }
+
+ /**
+ * @return array $headers HTTP Request Headers.
+ */
+ public function getRequestHeaders() {
+ return $this->requestHeaders;
+ }
+
+ /**
+ * @param string $key
+ * @return array|boolean Returns the requested HTTP header or
+ * false if unavailable.
+ */
+ public function getRequestHeader($key) {
+ return isset($this->requestHeaders[$key])
+ ? $this->requestHeaders[$key]
+ : false;
+ }
+
+ /**
+ * @return string $postBody HTTP Request Body.
+ */
+ public function getPostBody() {
+ return $this->postBody;
+ }
+
+ /**
+ * @param string $url the url to set
+ */
+ public function setUrl($url) {
+ if (substr($url, 0, 4) == 'http') {
+ $this->url = $url;
+ } else {
+ // Force the path become relative.
+ if (substr($url, 0, 1) !== '/') {
+ $url = '/' . $url;
+ }
+ global $apiConfig;
+ $this->url = $apiConfig['basePath'] . $url;
+ }
+ }
+
+ /**
+ * @param string $method Set he HTTP Method and normalize
+ * it to upper-case, as required by HTTP.
+ *
+ */
+ public function setRequestMethod($method) {
+ $this->requestMethod = strtoupper($method);
+ }
+
+ /**
+ * @param array $headers The HTTP request headers
+ * to be set and normalized.
+ */
+ public function setRequestHeaders($headers) {
+ $headers = Google_Utils::normalize($headers);
+ if ($this->requestHeaders) {
+ $headers = array_merge($this->requestHeaders, $headers);
+ }
+ $this->requestHeaders = $headers;
+ }
+
+ /**
+ * @param string $postBody the postBody to set
+ */
+ public function setPostBody($postBody) {
+ $this->postBody = $postBody;
+ }
+
+ /**
+ * Set the User-Agent Header.
+ * @param string $userAgent The User-Agent.
+ */
+ public function setUserAgent($userAgent) {
+ $this->userAgent = $userAgent;
+ }
+
+ /**
+ * @return string The User-Agent.
+ */
+ public function getUserAgent() {
+ return $this->userAgent;
+ }
+
+ /**
+ * Returns a cache key depending on if this was an OAuth signed request
+ * in which case it will use the non-signed url and access key to make this
+ * cache key unique per authenticated user, else use the plain request url
+ * @return string The md5 hash of the request cache key.
+ */
+ public function getCacheKey() {
+ $key = $this->getUrl();
+
+ if (isset($this->accessKey)) {
+ $key .= $this->accessKey;
+ }
+
+ if (isset($this->requestHeaders['authorization'])) {
+ $key .= $this->requestHeaders['authorization'];
+ }
+
+ return md5($key);
+ }
+
+ public function getParsedCacheControl() {
+ $parsed = array();
+ $rawCacheControl = $this->getResponseHeader('cache-control');
+ if ($rawCacheControl) {
+ $rawCacheControl = str_replace(', ', '&', $rawCacheControl);
+ parse_str($rawCacheControl, $parsed);
+ }
+
+ return $parsed;
+ }
+
+ /**
+ * @param string $id
+ * @return string A string representation of the HTTP Request.
+ */
+ public function toBatchString($id) {
+ $str = '';
+ foreach($this->batchHeaders as $key => $val) {
+ $str .= $key . ': ' . $val . "\n";
+ }
+
+ $str .= "Content-ID: $id\n";
+ $str .= "\n";
+
+ $path = parse_url($this->getUrl(), PHP_URL_PATH);
+ $str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n";
+ foreach($this->getRequestHeaders() as $key => $val) {
+ $str .= $key . ': ' . $val . "\n";
+ }
+
+ if ($this->getPostBody()) {
+ $str .= "\n";
+ $str .= $this->getPostBody();
+ }
+
+ return $str;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_HttpStreamIO.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_HttpStreamIO.php
new file mode 100644
index 0000000..09e5d4a
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_HttpStreamIO.php
@@ -0,0 +1,170 @@
+
+ */
+
+require_once 'Google_CacheParser.php';
+
+class Google_HttpStreamIO extends Google_IO {
+
+ private static $ENTITY_HTTP_METHODS = array("POST" => null, "PUT" => null);
+
+ private static $DEFAULT_HTTP_CONTEXT = array(
+ "follow_location" => 0,
+ "ignore_errors" => 1,
+ );
+
+ private static $DEFAULT_SSL_CONTEXT = array(
+ "verify_peer" => true,
+ );
+
+ /**
+ * Perform an authenticated / signed apiHttpRequest.
+ * This function takes the apiHttpRequest, calls apiAuth->sign on it
+ * (which can modify the request in what ever way fits the auth mechanism)
+ * and then calls Google_HttpStreamIO::makeRequest on the signed request
+ *
+ * @param Google_HttpRequest $request
+ * @return Google_HttpRequest The resulting HTTP response including the
+ * responseHttpCode, responseHeaders and responseBody.
+ */
+ public function authenticatedRequest(Google_HttpRequest $request) {
+ $request = Google_Client::$auth->sign($request);
+ return $this->makeRequest($request);
+ }
+
+ /**
+ * Execute a apiHttpRequest
+ *
+ * @param Google_HttpRequest $request the http request to be executed
+ * @return Google_HttpRequest http request with the response http code,
+ * response headers and response body filled in
+ * @throws Google_IOException on curl or IO error
+ */
+ public function makeRequest(Google_HttpRequest $request) {
+ // First, check to see if we have a valid cached version.
+ $cached = $this->getCachedRequest($request);
+ if ($cached !== false) {
+ if (!$this->checkMustRevaliadateCachedRequest($cached, $request)) {
+ return $cached;
+ }
+ }
+
+ $default_options = stream_context_get_options(stream_context_get_default());
+
+ $requestHttpContext = array_key_exists('http', $default_options) ?
+ $default_options['http'] : array();
+ if (array_key_exists($request->getRequestMethod(),
+ self::$ENTITY_HTTP_METHODS)) {
+ $request = $this->processEntityRequest($request);
+ }
+
+ if ($request->getPostBody()) {
+ $requestHttpContext["content"] = $request->getPostBody();
+ }
+
+ $requestHeaders = $request->getRequestHeaders();
+ if ($requestHeaders && is_array($requestHeaders)) {
+ $headers = "";
+ foreach($requestHeaders as $k => $v) {
+ $headers .= "$k: $v\n";
+ }
+ $requestHttpContext["header"] = $headers;
+ }
+
+ $requestHttpContext["method"] = $request->getRequestMethod();
+ $requestHttpContext["user_agent"] = $request->getUserAgent();
+
+ $requestSslContext = array_key_exists('ssl', $default_options) ?
+ $default_options['ssl'] : array();
+
+ if (!array_key_exists("cafile", $requestSslContext)) {
+ $requestSslContext["cafile"] = dirname(__FILE__) . '/cacerts.pem';
+ }
+
+ $options = array("http" => array_merge(self::$DEFAULT_HTTP_CONTEXT,
+ $requestHttpContext),
+ "ssl" => array_merge(self::$DEFAULT_SSL_CONTEXT,
+ $requestSslContext));
+
+ $context = stream_context_create($options);
+
+ $response_data = file_get_contents($request->getUrl(),
+ false,
+ $context);
+
+ if (false === $response_data) {
+ throw new Google_IOException("HTTP Error: Unable to connect");
+ }
+
+ $respHttpCode = $this->getHttpResponseCode($http_response_header);
+ $responseHeaders = $this->getHttpResponseHeaders($http_response_header);
+
+ if ($respHttpCode == 304 && $cached) {
+ // If the server responded NOT_MODIFIED, return the cached request.
+ $this->updateCachedRequest($cached, $responseHeaders);
+ return $cached;
+ }
+
+ $request->setResponseHttpCode($respHttpCode);
+ $request->setResponseHeaders($responseHeaders);
+ $request->setResponseBody($response_data);
+ // Store the request in cache (the function checks to see if the request
+ // can actually be cached)
+ $this->setCachedRequest($request);
+ return $request;
+ }
+
+ /**
+ * Set options that update the transport implementation's behavior.
+ * @param $options
+ */
+ public function setOptions($options) {
+ }
+
+ private function getHttpResponseCode($response_headers) {
+ $header_count = count($response_headers);
+
+ for ($i = 0; $i < $header_count; $i++) {
+ $header = $response_headers[$i];
+ if (strncasecmp("HTTP", $header, strlen("HTTP")) == 0) {
+ $response = explode(' ', $header);
+ return $response[1];
+ }
+ }
+ return 'UNKNOWN';
+ }
+
+ private function getHttpResponseHeaders($response_headers) {
+ $header_count = count($response_headers);
+ $headers = array();
+
+ for ($i = 0; $i < $header_count; $i++) {
+ $header = $response_headers[$i];
+ $header_parts = explode(':', $header);
+ if (count($header_parts) == 2) {
+ $headers[$header_parts[0]] = $header_parts[1];
+ }
+ }
+
+ return $headers;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_IO.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_IO.php
new file mode 100644
index 0000000..1b0eeff
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_IO.php
@@ -0,0 +1,161 @@
+
+ */
+abstract class Google_IO {
+ const CONNECTION_ESTABLISHED = "HTTP/1.0 200 Connection established\r\n\r\n";
+ const FORM_URLENCODED = 'application/x-www-form-urlencoded';
+ /**
+ * An utility function that first calls $this->auth->sign($request) and then executes makeRequest()
+ * on that signed request. Used for when a request should be authenticated
+ * @param Google_HttpRequest $request
+ * @return Google_HttpRequest $request
+ */
+ abstract function authenticatedRequest(Google_HttpRequest $request);
+
+ /**
+ * Executes a apIHttpRequest and returns the resulting populated httpRequest
+ * @param Google_HttpRequest $request
+ * @return Google_HttpRequest $request
+ */
+ abstract function makeRequest(Google_HttpRequest $request);
+
+ /**
+ * Set options that update the transport implementation's behavior.
+ * @param $options
+ */
+ abstract function setOptions($options);
+
+ /**
+ * @visible for testing.
+ * Cache the response to an HTTP request if it is cacheable.
+ * @param Google_HttpRequest $request
+ * @return bool Returns true if the insertion was successful.
+ * Otherwise, return false.
+ */
+ protected function setCachedRequest(Google_HttpRequest $request) {
+ // Determine if the request is cacheable.
+ if (Google_CacheParser::isResponseCacheable($request)) {
+ Google_Client::$cache->set($request->getCacheKey(), $request);
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @visible for testing.
+ * @param Google_HttpRequest $request
+ * @return Google_HttpRequest|bool Returns the cached object or
+ * false if the operation was unsuccessful.
+ */
+ protected function getCachedRequest(Google_HttpRequest $request) {
+ if (false == Google_CacheParser::isRequestCacheable($request)) {
+ false;
+ }
+
+ return Google_Client::$cache->get($request->getCacheKey());
+ }
+
+ /**
+ * @visible for testing
+ * Process an http request that contains an enclosed entity.
+ * @param Google_HttpRequest $request
+ * @return Google_HttpRequest Processed request with the enclosed entity.
+ */
+ protected function processEntityRequest(Google_HttpRequest $request) {
+ $postBody = $request->getPostBody();
+ $contentType = $request->getRequestHeader("content-type");
+
+ // Set the default content-type as application/x-www-form-urlencoded.
+ if (false == $contentType) {
+ $contentType = self::FORM_URLENCODED;
+ $request->setRequestHeaders(array('content-type' => $contentType));
+ }
+
+ // Force the payload to match the content-type asserted in the header.
+ if ($contentType == self::FORM_URLENCODED && is_array($postBody)) {
+ $postBody = http_build_query($postBody, '', '&');
+ $request->setPostBody($postBody);
+ }
+
+ // Make sure the content-length header is set.
+ if (!$postBody || is_string($postBody)) {
+ $postsLength = strlen($postBody);
+ $request->setRequestHeaders(array('content-length' => $postsLength));
+ }
+
+ return $request;
+ }
+
+ /**
+ * Check if an already cached request must be revalidated, and if so update
+ * the request with the correct ETag headers.
+ * @param Google_HttpRequest $cached A previously cached response.
+ * @param Google_HttpRequest $request The outbound request.
+ * return bool If the cached object needs to be revalidated, false if it is
+ * still current and can be re-used.
+ */
+ protected function checkMustRevaliadateCachedRequest($cached, $request) {
+ if (Google_CacheParser::mustRevalidate($cached)) {
+ $addHeaders = array();
+ if ($cached->getResponseHeader('etag')) {
+ // [13.3.4] If an entity tag has been provided by the origin server,
+ // we must use that entity tag in any cache-conditional request.
+ $addHeaders['If-None-Match'] = $cached->getResponseHeader('etag');
+ } elseif ($cached->getResponseHeader('date')) {
+ $addHeaders['If-Modified-Since'] = $cached->getResponseHeader('date');
+ }
+
+ $request->setRequestHeaders($addHeaders);
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Update a cached request, using the headers from the last response.
+ * @param Google_HttpRequest $cached A previously cached response.
+ * @param mixed Associative array of response headers from the last request.
+ */
+ protected function updateCachedRequest($cached, $responseHeaders) {
+ if (isset($responseHeaders['connection'])) {
+ $hopByHop = array_merge(
+ self::$HOP_BY_HOP,
+ explode(',', $responseHeaders['connection'])
+ );
+
+ $endToEnd = array();
+ foreach($hopByHop as $key) {
+ if (isset($responseHeaders[$key])) {
+ $endToEnd[$key] = $responseHeaders[$key];
+ }
+ }
+ $cached->setResponseHeaders($endToEnd);
+ }
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_REST.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_REST.php
new file mode 100644
index 0000000..d0f3b3d
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/Google_REST.php
@@ -0,0 +1,128 @@
+
+ * @author Chirag Shah
+ */
+class Google_REST {
+ /**
+ * Executes a apiServiceRequest using a RESTful call by transforming it into
+ * an apiHttpRequest, and executed via apiIO::authenticatedRequest().
+ *
+ * @param Google_HttpRequest $req
+ * @return array decoded result
+ * @throws Google_ServiceException on server side error (ie: not authenticated,
+ * invalid or malformed post body, invalid url)
+ */
+ static public function execute(Google_HttpRequest $req) {
+ $httpRequest = Google_Client::$io->makeRequest($req);
+ $decodedResponse = self::decodeHttpResponse($httpRequest);
+ $ret = isset($decodedResponse['data'])
+ ? $decodedResponse['data'] : $decodedResponse;
+ return $ret;
+ }
+
+
+ /**
+ * Decode an HTTP Response.
+ * @static
+ * @throws Google_ServiceException
+ * @param Google_HttpRequest $response The http response to be decoded.
+ * @return mixed|null
+ */
+ public static function decodeHttpResponse($response) {
+ $code = $response->getResponseHttpCode();
+ $body = $response->getResponseBody();
+ $decoded = null;
+
+ if ((intVal($code)) >= 300) {
+ $decoded = json_decode($body, true);
+ $err = 'Error calling ' . $response->getRequestMethod() . ' ' . $response->getUrl();
+ if ($decoded != null && isset($decoded['error']['message']) && isset($decoded['error']['code'])) {
+ // if we're getting a json encoded error definition, use that instead of the raw response
+ // body for improved readability
+ $err .= ": ({$decoded['error']['code']}) {$decoded['error']['message']}";
+ } else {
+ $err .= ": ($code) $body";
+ }
+
+ throw new Google_ServiceException($err, $code, null, $decoded['error']['errors']);
+ }
+
+ // Only attempt to decode the response, if the response code wasn't (204) 'no content'
+ if ($code != '204') {
+ $decoded = json_decode($body, true);
+ if ($decoded === null || $decoded === "") {
+ throw new Google_ServiceException("Invalid json in service response: $body");
+ }
+ }
+ return $decoded;
+ }
+
+ /**
+ * Parse/expand request parameters and create a fully qualified
+ * request uri.
+ * @static
+ * @param string $servicePath
+ * @param string $restPath
+ * @param array $params
+ * @return string $requestUrl
+ */
+ static function createRequestUri($servicePath, $restPath, $params) {
+ $requestUrl = $servicePath . $restPath;
+ $uriTemplateVars = array();
+ $queryVars = array();
+ foreach ($params as $paramName => $paramSpec) {
+ // Discovery v1.0 puts the canonical location under the 'location' field.
+ if (! isset($paramSpec['location'])) {
+ $paramSpec['location'] = $paramSpec['restParameterType'];
+ }
+
+ if ($paramSpec['type'] == 'boolean') {
+ $paramSpec['value'] = ($paramSpec['value']) ? 'true' : 'false';
+ }
+ if ($paramSpec['location'] == 'path') {
+ $uriTemplateVars[$paramName] = $paramSpec['value'];
+ } else {
+ if (isset($paramSpec['repeated']) && is_array($paramSpec['value'])) {
+ foreach ($paramSpec['value'] as $value) {
+ $queryVars[] = $paramName . '=' . rawurlencode($value);
+ }
+ } else {
+ $queryVars[] = $paramName . '=' . rawurlencode($paramSpec['value']);
+ }
+ }
+ }
+
+ if (count($uriTemplateVars)) {
+ $uriTemplateParser = new URI_Template_Parser($requestUrl);
+ $requestUrl = $uriTemplateParser->expand($uriTemplateVars);
+ }
+ //FIXME work around for the the uri template lib which url encodes
+ // the @'s & confuses our servers.
+ $requestUrl = str_replace('%40', '@', $requestUrl);
+
+ if (count($queryVars)) {
+ $requestUrl .= '?' . implode($queryVars, '&');
+ }
+
+ return $requestUrl;
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/io/cacerts.pem b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/cacerts.pem
new file mode 100644
index 0000000..79a4928
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/io/cacerts.pem
@@ -0,0 +1,738 @@
+# Certifcate Authority certificates for validating SSL connections.
+#
+# This file contains PEM format certificates generated from
+# http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt
+#
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is the Netscape security libraries.
+#
+# The Initial Developer of the Original Code is
+# Netscape Communications Corporation.
+# Portions created by the Initial Developer are Copyright (C) 1994-2000
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+Verisign/RSA Secure Server CA
+=============================
+
+-----BEGIN CERTIFICATE-----
+MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
+A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
+VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
+MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
+BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
+dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
+ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
+0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
+uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
+hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
+YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
+1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
+-----END CERTIFICATE-----
+
+Thawte Personal Basic CA
+========================
+
+-----BEGIN CERTIFICATE-----
+MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
+VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
+ZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBlcnNvbmFsIEJhc2lj
+IENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0aGF3dGUuY29tMB4X
+DTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpBMRUw
+EwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE
+ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
+dmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBD
+QTEoMCYGCSqGSIb3DQEJARYZcGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53
+dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdK
+wPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7
+G1sY0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF
+AAOBgQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7
+c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P
+9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ==
+-----END CERTIFICATE-----
+
+Thawte Personal Premium CA
+==========================
+
+-----BEGIN CERTIFICATE-----
+MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
+VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
+ZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBlcnNvbmFsIFByZW1p
+dW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1pdW1AdGhhd3RlLmNv
+bTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJa
+QTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY
+BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9u
+IFNlcnZpY2VzIERpdmlzaW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJl
+bWl1bSBDQTEqMCgGCSqGSIb3DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUu
+Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0Vs
+Bd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWI
+Et12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYD
+ZicRFTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
+SIb3DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH
+b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBh
+KXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1KzGJ
+-----END CERTIFICATE-----
+
+Thawte Personal Freemail CA
+===========================
+
+-----BEGIN CERTIFICATE-----
+MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
+VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
+ZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVt
+YWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUu
+Y29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNVBAYT
+AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEa
+MBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRp
+b24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG
+cmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhh
+d3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfY
+DFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5E
+rHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVq
+uzgkCGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zAN
+BgkqhkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP
+MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa
+/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr5PjRznei
+gQ==
+-----END CERTIFICATE-----
+
+Thawte Server CA
+================
+
+-----BEGIN CERTIFICATE-----
+MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
+VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
+MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
+MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
+DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
+dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
+cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
+DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
+gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
+yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
+L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
+EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
+7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
+QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
+qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
+-----END CERTIFICATE-----
+
+Thawte Premium Server CA
+========================
+
+-----BEGIN CERTIFICATE-----
+MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
+VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
+dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
+MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
+A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
+b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
+cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
+VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
+ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
+uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
+9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
+hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
+pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
+-----END CERTIFICATE-----
+
+Equifax Secure CA
+=================
+
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
+UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
+dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
+MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
+dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
+BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
+cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
+AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
+MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
+ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
+IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
+MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
+A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
+7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
+1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
+-----END CERTIFICATE-----
+
+Verisign Class 1 Public Primary Certification Authority
+=======================================================
+
+-----BEGIN CERTIFICATE-----
+MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
+BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
+c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
+NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
+VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJp
+bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
+jQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0N
+H8xlbgyw0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR
+4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATAN
+BgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZo
+EWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnxgiJduLHdgSOjeyUVRjB5
+FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0ANACY89Fx
+lA==
+-----END CERTIFICATE-----
+
+Verisign Class 2 Public Primary Certification Authority
+=======================================================
+
+-----BEGIN CERTIFICATE-----
+MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkG
+A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
+cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
+MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
+BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmlt
+YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
+ADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyh
+YGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7
+FYCTXOvnzAhsPz6zSvz/S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0G
+CSqGSIb3DQEBAgUAA4GBAIobK/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxg
+J8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Nc
+r6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority
+=======================================================
+
+-----BEGIN CERTIFICATE-----
+MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
+A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
+cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
+MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
+BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
+YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
+ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
+BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
+I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
+CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
+lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
+AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
+-----END CERTIFICATE-----
+
+Verisign Class 1 Public Primary Certification Authority - G2
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
+BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
+c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
+MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
+emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
+DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
+FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg
+UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
+YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
+MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK
+VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm
+Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID
+AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J
+h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul
+uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68
+DzFc6PLZ
+-----END CERTIFICATE-----
+
+Verisign Class 2 Public Primary Certification Authority - G2
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns
+YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
+MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
+aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe
+Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX
+MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj
+IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx
+KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM
+HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw
+DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC
+AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji
+nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
+rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn
+jBJ7xUS0rg==
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority - G2
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
+BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
+c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
+MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
+emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
+DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
+FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
+UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
+YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
+MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
+pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
+13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
+AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
+U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
+F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
+oJ2daZH9
+-----END CERTIFICATE-----
+
+Verisign Class 4 Public Primary Certification Authority - G2
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
+BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
+c3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
+MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
+emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
+DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
+FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMg
+UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
+YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
+MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDM
+HO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtK
+qsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwID
+AQABMA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwj
+cSGIL4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y
+cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRP
+T8qAkbYp
+-----END CERTIFICATE-----
+
+Verisign Class 1 Public Primary Certification Authority - G3
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
+cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
+LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
+aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
+VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
+aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
+bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
+IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4
+nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO
+8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV
+ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb
+PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2
+6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr
+n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a
+qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4
+wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
+ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs
+pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4
+E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
+-----END CERTIFICATE-----
+
+Verisign Class 2 Public Primary Certification Authority - G3
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ
+BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy
+aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s
+IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp
+Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV
+BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
+Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu
+Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g
+Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
+IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU
+J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO
+JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY
+wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o
+koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
+qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E
+Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe
+xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u
+7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
+sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI
+sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP
+cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority - G3
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
+cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
+LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
+aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
+VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
+aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
+bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
+IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
+N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
+KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
+kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
+CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
+Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
+imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
+2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
+DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
+/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
+F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
+TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
+-----END CERTIFICATE-----
+
+Verisign Class 4 Public Primary Certification Authority - G3
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
+cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
+LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
+aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
+VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
+aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
+bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
+IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
+GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
++mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
+U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
+NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
+ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
+ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
+CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
+g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
+fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
+2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
+bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
+-----END CERTIFICATE-----
+
+Equifax Secure Global eBusiness CA
+==================================
+
+-----BEGIN CERTIFICATE-----
+MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
+MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
+ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
+MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
+dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
+c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
+UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
+58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
+o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
+MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
+aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
+A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
+Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
+8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
+-----END CERTIFICATE-----
+
+Equifax Secure eBusiness CA 1
+=============================
+
+-----BEGIN CERTIFICATE-----
+MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
+MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
+ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
+MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
+LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
+RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
+WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
+Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
+AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
+eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
+zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
+/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
+-----END CERTIFICATE-----
+
+Equifax Secure eBusiness CA 2
+=============================
+
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj
+dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0
+NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD
+VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G
+vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/
+BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C
+AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX
+MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl
+IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw
+NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq
+y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF
+MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
+A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
+0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1
+E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
+-----END CERTIFICATE-----
+
+Thawte Time Stamping CA
+=======================
+
+-----BEGIN CERTIFICATE-----
+MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
+BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAd
+BgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcwMTAxMDAwMDAwWhcN
+MjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g
+Q2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG
+A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1l
+c3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT
+6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQa
+Wt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL
+8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMB
+Af8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC
+9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQ
+pgCed/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZ
+CayJSdM=
+-----END CERTIFICATE-----
+
+thawte Primary Root CA
+======================
+
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
+NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
+LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
+A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
+W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
+3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
+6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
+Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
+NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
+r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
+DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
+YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
+xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
+/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
+LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
+jVaMaA==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G5
+============================================================
+
+-----BEGIN CERTIFICATE-----
+MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
+U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
+nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
+t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
+SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
+BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
+rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
+NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
+BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
+BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
+MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
+p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
+5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
+WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
+4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
+hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
+-----END CERTIFICATE-----
+
+Entrust.net Secure Server Certification Authority
+=================================================
+
+-----BEGIN CERTIFICATE-----
+MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
+VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
+ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
+KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
+ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
+MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
+ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
+b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
+bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
+U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
+A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
+I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
+wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
+AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
+oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
+BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
+dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
+MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
+b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
+dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
+MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
+E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
+MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
+hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
+95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
+2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
+-----END CERTIFICATE-----
+
+Go Daddy Certification Authority Root Certificate Bundle
+========================================================
+
+-----BEGIN CERTIFICATE-----
+MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx
+ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
+RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYw
+MTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMH
+QXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5j
+b20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j
+b20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3H
+KrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQm
+VZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpR
+SgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRT
+cDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ
+6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEu
+MB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDS
+kdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEB
+BCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0f
+BD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBv
+c2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUH
+AgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAO
+BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IG
+OgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMU
+A2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o
+0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTX
+RE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuH
+qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV
+U+4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh
+bGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
+Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g
+QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAe
+BgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoX
+DTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBE
+YWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgC
+ggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
+2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+q
+N1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiO
+r18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN
+f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEH
+U1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHU
+TBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMb
+VmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwg
+SW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlv
+biBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEg
+MB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUw
+AwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdv
+ZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMu
+Z29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUd
+IAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv
+bS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1
+QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4O
+WBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0Vmsf
+SxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
+IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
+BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
+aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
+9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
+NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
+azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
+YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
+Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
+cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
+dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
+WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
+v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
+UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
+IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
+W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
+-----END CERTIFICATE-----
+
+GeoTrust Global CA
+==================
+
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
+WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
+AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
+OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
+T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
+JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
+Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
+PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
+aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
+TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
+LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
+BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
+dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
+AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
+NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
+b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
+-----END CERTIFICATE-----
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/local_config.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/local_config.php
new file mode 100644
index 0000000..3eb0aaf
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/local_config.php
@@ -0,0 +1,81 @@
+ false,
+
+ // The application_name is included in the User-Agent HTTP header.
+ 'application_name' => '',
+
+ // OAuth2 Settings, you can get these keys at https://code.google.com/apis/console
+ //'oauth2_client_id' => '',
+ //'oauth2_client_secret' => '',
+ //'oauth2_redirect_uri' => '',
+
+ // The developer key, you get this at https://code.google.com/apis/console
+ 'developer_key' => '',
+
+ // Site name to show in the Google's OAuth 1 authentication screen.
+ 'site_name' => 'www.example.org',
+
+ // Which Authentication, Storage and HTTP IO classes to use.
+ 'authClass' => 'Google_OAuth2',
+ 'ioClass' => 'Google_CurlIO',
+ 'cacheClass' => 'Google_FileCache',
+
+ // Don't change these unless you're working against a special development or testing environment.
+ 'basePath' => 'https://www.googleapis.com',
+
+ // IO Class dependent configuration, you only have to configure the values
+ // for the class that was configured as the ioClass above
+ 'ioFileCache_directory' =>
+ (function_exists('get_temp_dir') ?
+ get_temp_dir() . '/Google_Client' :
+ '/tmp/Google_Client'),
+
+ // Definition of service specific values like scopes, oauth token URLs, etc
+ 'services' => array(
+ 'analytics' => array('scope' => 'https://www.googleapis.com/auth/analytics.readonly'),
+ 'calendar' => array(
+ 'scope' => array(
+ "https://www.googleapis.com/auth/calendar",
+ "https://www.googleapis.com/auth/calendar.readonly",
+ )
+ ),
+ 'books' => array('scope' => 'https://www.googleapis.com/auth/books'),
+ 'latitude' => array(
+ 'scope' => array(
+ 'https://www.googleapis.com/auth/latitude.all.best',
+ 'https://www.googleapis.com/auth/latitude.all.city',
+ )
+ ),
+ 'moderator' => array('scope' => 'https://www.googleapis.com/auth/moderator'),
+ 'oauth2' => array(
+ 'scope' => array(
+ 'https://www.googleapis.com/auth/userinfo.profile',
+ 'https://www.googleapis.com/auth/userinfo.email',
+ )
+ ),
+ 'plus' => array('scope' => 'https://www.googleapis.com/auth/plus.me'),
+ 'siteVerification' => array('scope' => 'https://www.googleapis.com/auth/siteverification'),
+ 'tasks' => array('scope' => 'https://www.googleapis.com/auth/tasks'),
+ 'urlshortener' => array('scope' => 'https://www.googleapis.com/auth/urlshortener')
+ )
+);
\ No newline at end of file
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_BatchRequest.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_BatchRequest.php
new file mode 100644
index 0000000..3916b22
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_BatchRequest.php
@@ -0,0 +1,110 @@
+
+ */
+class Google_BatchRequest {
+ /** @var string Multipart Boundary. */
+ private $boundary;
+
+ /** @var array service requests to be executed. */
+ private $requests = array();
+
+ public function __construct($boundary = false) {
+ $boundary = (false == $boundary) ? mt_rand() : $boundary;
+ $this->boundary = str_replace('"', '', $boundary);
+ }
+
+ public function add(Google_HttpRequest $request, $key = false) {
+ if (false == $key) {
+ $key = mt_rand();
+ }
+
+ $this->requests[$key] = $request;
+ }
+
+ public function execute() {
+ $body = '';
+
+ /** @var Google_HttpRequest $req */
+ foreach($this->requests as $key => $req) {
+ $body .= "--{$this->boundary}\n";
+ $body .= $req->toBatchString($key) . "\n";
+ }
+
+ $body = rtrim($body);
+ $body .= "\n--{$this->boundary}--";
+
+ global $apiConfig;
+ $url = $apiConfig['basePath'] . '/batch';
+ $httpRequest = new Google_HttpRequest($url, 'POST');
+ $httpRequest->setRequestHeaders(array(
+ 'Content-Type' => 'multipart/mixed; boundary=' . $this->boundary));
+
+ $httpRequest->setPostBody($body);
+ $response = Google_Client::$io->makeRequest($httpRequest);
+
+ $response = $this->parseResponse($response);
+ return $response;
+ }
+
+ public function parseResponse(Google_HttpRequest $response) {
+ $contentType = $response->getResponseHeader('content-type');
+ $contentType = explode(';', $contentType);
+ $boundary = false;
+ foreach($contentType as $part) {
+ $part = (explode('=', $part, 2));
+ if (isset($part[0]) && 'boundary' == trim($part[0])) {
+ $boundary = $part[1];
+ }
+ }
+
+ $body = $response->getResponseBody();
+ if ($body) {
+ $body = str_replace("--$boundary--", "--$boundary", $body);
+ $parts = explode("--$boundary", $body);
+ $responses = array();
+
+ foreach($parts as $part) {
+ $part = trim($part);
+ if (!empty($part)) {
+ list($metaHeaders, $part) = explode("\r\n\r\n", $part, 2);
+ $metaHeaders = Google_CurlIO::parseResponseHeaders($metaHeaders);
+
+ $status = substr($part, 0, strpos($part, "\n"));
+ $status = explode(" ", $status);
+ $status = $status[1];
+
+ list($partHeaders, $partBody) = Google_CurlIO::parseHttpResponse($part, false);
+ $response = new Google_HttpRequest("");
+ $response->setResponseHttpCode($status);
+ $response->setResponseHeaders($partHeaders);
+ $response->setResponseBody($partBody);
+ $response = Google_REST::decodeHttpResponse($response);
+
+ // Need content id.
+ $responses[$metaHeaders['content-id']] = $response;
+ }
+ }
+
+ return $responses;
+ }
+
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_MediaFileUpload.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_MediaFileUpload.php
new file mode 100644
index 0000000..c64e188
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_MediaFileUpload.php
@@ -0,0 +1,262 @@
+
+ *
+ */
+class Google_MediaFileUpload {
+ const UPLOAD_MEDIA_TYPE = 'media';
+ const UPLOAD_MULTIPART_TYPE = 'multipart';
+ const UPLOAD_RESUMABLE_TYPE = 'resumable';
+
+ /** @var string $mimeType */
+ public $mimeType;
+
+ /** @var string $data */
+ public $data;
+
+ /** @var bool $resumable */
+ public $resumable;
+
+ /** @var int $chunkSize */
+ public $chunkSize;
+
+ /** @var int $size */
+ public $size;
+
+ /** @var string $resumeUri */
+ public $resumeUri;
+
+ /** @var int $progress */
+ public $progress;
+
+ /**
+ * @param $mimeType string
+ * @param $data string The bytes you want to upload.
+ * @param $resumable bool
+ * @param bool $chunkSize File will be uploaded in chunks of this many bytes.
+ * only used if resumable=True
+ */
+ public function __construct($mimeType, $data, $resumable=false, $chunkSize=false) {
+ $this->mimeType = $mimeType;
+ $this->data = $data;
+ $this->size = strlen($this->data);
+ $this->resumable = $resumable;
+ if(!$chunkSize) {
+ $chunkSize = 256 * 1024;
+ }
+ $this->chunkSize = $chunkSize;
+ $this->progress = 0;
+ }
+
+ public function setFileSize($size) {
+ $this->size = $size;
+ }
+
+ /**
+ * @static
+ * @param $meta
+ * @param $params
+ * @return array|bool
+ */
+ public static function process($meta, &$params) {
+ $payload = array();
+ $meta = is_string($meta) ? json_decode($meta, true) : $meta;
+ $uploadType = self::getUploadType($meta, $payload, $params);
+ if (!$uploadType) {
+ // Process as a normal API request.
+ return false;
+ }
+
+ // Process as a media upload request.
+ $params['uploadType'] = array(
+ 'type' => 'string',
+ 'location' => 'query',
+ 'value' => $uploadType,
+ );
+
+ $mimeType = isset($params['mimeType'])
+ ? $params['mimeType']['value']
+ : false;
+ unset($params['mimeType']);
+
+ if (!$mimeType) {
+ $mimeType = $payload['content-type'];
+ }
+
+ if (isset($params['file'])) {
+ // This is a standard file upload with curl.
+ $file = $params['file']['value'];
+ unset($params['file']);
+ return self::processFileUpload($file, $mimeType);
+ }
+
+ $data = isset($params['data'])
+ ? $params['data']['value']
+ : false;
+ unset($params['data']);
+
+ if (self::UPLOAD_RESUMABLE_TYPE == $uploadType) {
+ $payload['content-type'] = $mimeType;
+ $payload['postBody'] = is_string($meta) ? $meta : json_encode($meta);
+
+ } elseif (self::UPLOAD_MEDIA_TYPE == $uploadType) {
+ // This is a simple media upload.
+ $payload['content-type'] = $mimeType;
+ $payload['postBody'] = $data;
+ }
+
+ elseif (self::UPLOAD_MULTIPART_TYPE == $uploadType) {
+ // This is a multipart/related upload.
+ $boundary = isset($params['boundary']['value']) ? $params['boundary']['value'] : mt_rand();
+ $boundary = str_replace('"', '', $boundary);
+ $payload['content-type'] = 'multipart/related; boundary=' . $boundary;
+ $related = "--$boundary\r\n";
+ $related .= "Content-Type: application/json; charset=UTF-8\r\n";
+ $related .= "\r\n" . json_encode($meta) . "\r\n";
+ $related .= "--$boundary\r\n";
+ $related .= "Content-Type: $mimeType\r\n";
+ $related .= "Content-Transfer-Encoding: base64\r\n";
+ $related .= "\r\n" . base64_encode($data) . "\r\n";
+ $related .= "--$boundary--";
+ $payload['postBody'] = $related;
+ }
+
+ return $payload;
+ }
+
+ /**
+ * Prepares a standard file upload via cURL.
+ * @param $file
+ * @param $mime
+ * @return array Includes the processed file name.
+ * @visible For testing.
+ */
+ public static function processFileUpload($file, $mime) {
+ if (!$file) return array();
+ if (substr($file, 0, 1) != '@') {
+ $file = '@' . $file;
+ }
+
+ // This is a standard file upload with curl.
+ $params = array('postBody' => array('file' => $file));
+ if ($mime) {
+ $params['content-type'] = $mime;
+ }
+
+ return $params;
+ }
+
+ /**
+ * Valid upload types:
+ * - resumable (UPLOAD_RESUMABLE_TYPE)
+ * - media (UPLOAD_MEDIA_TYPE)
+ * - multipart (UPLOAD_MULTIPART_TYPE)
+ * - none (false)
+ * @param $meta
+ * @param $payload
+ * @param $params
+ * @return bool|string
+ */
+ public static function getUploadType($meta, &$payload, &$params) {
+ if (isset($params['mediaUpload'])
+ && get_class($params['mediaUpload']['value']) == 'Google_MediaFileUpload') {
+ $upload = $params['mediaUpload']['value'];
+ unset($params['mediaUpload']);
+ $payload['content-type'] = $upload->mimeType;
+ if (isset($upload->resumable) && $upload->resumable) {
+ return self::UPLOAD_RESUMABLE_TYPE;
+ }
+ }
+
+ // Allow the developer to override the upload type.
+ if (isset($params['uploadType'])) {
+ return $params['uploadType']['value'];
+ }
+
+ $data = isset($params['data']['value'])
+ ? $params['data']['value'] : false;
+
+ if (false == $data && false == isset($params['file'])) {
+ // No upload data available.
+ return false;
+ }
+
+ if (isset($params['file'])) {
+ return self::UPLOAD_MEDIA_TYPE;
+ }
+
+ if (false == $meta) {
+ return self::UPLOAD_MEDIA_TYPE;
+ }
+
+ return self::UPLOAD_MULTIPART_TYPE;
+ }
+
+
+ public function nextChunk(Google_HttpRequest $req, $chunk=false) {
+ if (false == $this->resumeUri) {
+ $this->resumeUri = $this->getResumeUri($req);
+ }
+
+ if (false == $chunk) {
+ $chunk = substr($this->data, $this->progress, $this->chunkSize);
+ }
+
+ $lastBytePos = $this->progress + strlen($chunk) - 1;
+ $headers = array(
+ 'content-range' => "bytes $this->progress-$lastBytePos/$this->size",
+ 'content-type' => $req->getRequestHeader('content-type'),
+ 'content-length' => $this->chunkSize,
+ 'expect' => '',
+ );
+
+ $httpRequest = new Google_HttpRequest($this->resumeUri, 'PUT', $headers, $chunk);
+ $response = Google_Client::$io->authenticatedRequest($httpRequest);
+ $code = $response->getResponseHttpCode();
+ if (308 == $code) {
+ $range = explode('-', $response->getResponseHeader('range'));
+ $this->progress = $range[1] + 1;
+ return false;
+ } else {
+ return Google_REST::decodeHttpResponse($response);
+ }
+ }
+
+ private function getResumeUri(Google_HttpRequest $httpRequest) {
+ $result = null;
+ $body = $httpRequest->getPostBody();
+ if ($body) {
+ $httpRequest->setRequestHeaders(array(
+ 'content-type' => 'application/json; charset=UTF-8',
+ 'content-length' => Google_Utils::getStrLen($body),
+ 'x-upload-content-type' => $this->mimeType,
+ 'x-upload-content-length' => $this->size,
+ 'expect' => '',
+ ));
+ }
+
+ $response = Google_Client::$io->makeRequest($httpRequest);
+ $location = $response->getResponseHeader('location');
+ $code = $response->getResponseHttpCode();
+ if (200 == $code && true == $location) {
+ return $location;
+ }
+ throw new Google_Exception("Failed to start the resumable upload");
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Model.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Model.php
new file mode 100644
index 0000000..cb44cb2
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Model.php
@@ -0,0 +1,115 @@
+
+ *
+ */
+class Google_Model {
+ public function __construct( /* polymorphic */ ) {
+ if (func_num_args() == 1 && is_array(func_get_arg(0))) {
+ // Initialize the model with the array's contents.
+ $array = func_get_arg(0);
+ $this->mapTypes($array);
+ }
+ }
+
+ /**
+ * Initialize this object's properties from an array.
+ *
+ * @param array $array Used to seed this object's properties.
+ * @return void
+ */
+ protected function mapTypes($array) {
+ foreach ($array as $key => $val) {
+ $this->$key = $val;
+
+ $keyTypeName = "__$key" . 'Type';
+ $keyDataType = "__$key" . 'DataType';
+ if ($this->useObjects() && property_exists($this, $keyTypeName)) {
+ if ($this->isAssociativeArray($val)) {
+ if (isset($this->$keyDataType) && 'map' == $this->$keyDataType) {
+ foreach($val as $arrayKey => $arrayItem) {
+ $val[$arrayKey] = $this->createObjectFromName($keyTypeName, $arrayItem);
+ }
+ $this->$key = $val;
+ } else {
+ $this->$key = $this->createObjectFromName($keyTypeName, $val);
+ }
+ } else if (is_array($val)) {
+ $arrayObject = array();
+ foreach ($val as $arrayIndex => $arrayItem) {
+ $arrayObject[$arrayIndex] = $this->createObjectFromName($keyTypeName, $arrayItem);
+ }
+ $this->$key = $arrayObject;
+ }
+ }
+ }
+ }
+
+ /**
+ * Returns true only if the array is associative.
+ * @param array $array
+ * @return bool True if the array is associative.
+ */
+ protected function isAssociativeArray($array) {
+ if (!is_array($array)) {
+ return false;
+ }
+ $keys = array_keys($array);
+ foreach($keys as $key) {
+ if (is_string($key)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Given a variable name, discover its type.
+ *
+ * @param $name
+ * @param $item
+ * @return object The object from the item.
+ */
+ private function createObjectFromName($name, $item) {
+ $type = $this->$name;
+ return new $type($item);
+ }
+
+ protected function useObjects() {
+ global $apiConfig;
+ return (isset($apiConfig['use_objects']) && $apiConfig['use_objects']);
+ }
+
+ /**
+ * Verify if $obj is an array.
+ * @throws Google_Exception Thrown if $obj isn't an array.
+ * @param array $obj Items that should be validated.
+ * @param string $type Array items should be of this type.
+ * @param string $method Method expecting an array as an argument.
+ */
+ public function assertIsArray($obj, $type, $method) {
+ if ($obj && !is_array($obj)) {
+ throw new Google_Exception("Incorrect parameter type passed to $method(), expected an"
+ . " array containing items of type $type.");
+ }
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Service.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Service.php
new file mode 100644
index 0000000..1f4731f
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Service.php
@@ -0,0 +1,22 @@
+
+ * @author Chirag Shah
+ *
+ */
+class Google_ServiceResource {
+ // Valid query parameters that work, but don't appear in discovery.
+ private $stackParameters = array(
+ 'alt' => array('type' => 'string', 'location' => 'query'),
+ 'boundary' => array('type' => 'string', 'location' => 'query'),
+ 'fields' => array('type' => 'string', 'location' => 'query'),
+ 'trace' => array('type' => 'string', 'location' => 'query'),
+ 'userIp' => array('type' => 'string', 'location' => 'query'),
+ 'userip' => array('type' => 'string', 'location' => 'query'),
+ 'quotaUser' => array('type' => 'string', 'location' => 'query'),
+ 'file' => array('type' => 'complex', 'location' => 'body'),
+ 'data' => array('type' => 'string', 'location' => 'body'),
+ 'mimeType' => array('type' => 'string', 'location' => 'header'),
+ 'uploadType' => array('type' => 'string', 'location' => 'query'),
+ 'mediaUpload' => array('type' => 'complex', 'location' => 'query'),
+ );
+
+ /** @var Google_Service $service */
+ private $service;
+
+ /** @var string $serviceName */
+ private $serviceName;
+
+ /** @var string $resourceName */
+ private $resourceName;
+
+ /** @var array $methods */
+ private $methods;
+
+ public function __construct($service, $serviceName, $resourceName, $resource) {
+ $this->service = $service;
+ $this->serviceName = $serviceName;
+ $this->resourceName = $resourceName;
+ $this->methods = isset($resource['methods']) ? $resource['methods'] : array($resourceName => $resource);
+ }
+
+ /**
+ * @param $name
+ * @param $arguments
+ * @return Google_HttpRequest|array
+ * @throws Google_Exception
+ */
+ public function __call($name, $arguments) {
+ if (! isset($this->methods[$name])) {
+ throw new Google_Exception("Unknown function: {$this->serviceName}->{$this->resourceName}->{$name}()");
+ }
+ $method = $this->methods[$name];
+ $parameters = $arguments[0];
+
+ // postBody is a special case since it's not defined in the discovery document as parameter, but we abuse the param entry for storing it
+ $postBody = null;
+ if (isset($parameters['postBody'])) {
+ if (is_object($parameters['postBody'])) {
+ $this->stripNull($parameters['postBody']);
+ }
+
+ // Some APIs require the postBody to be set under the data key.
+ if (is_array($parameters['postBody']) && 'latitude' == $this->serviceName) {
+ if (!isset($parameters['postBody']['data'])) {
+ $rawBody = $parameters['postBody'];
+ unset($parameters['postBody']);
+ $parameters['postBody']['data'] = $rawBody;
+ }
+ }
+
+ $postBody = is_array($parameters['postBody']) || is_object($parameters['postBody'])
+ ? json_encode($parameters['postBody'])
+ : $parameters['postBody'];
+ unset($parameters['postBody']);
+
+ if (isset($parameters['optParams'])) {
+ $optParams = $parameters['optParams'];
+ unset($parameters['optParams']);
+ $parameters = array_merge($parameters, $optParams);
+ }
+ }
+
+ if (!isset($method['parameters'])) {
+ $method['parameters'] = array();
+ }
+
+ $method['parameters'] = array_merge($method['parameters'], $this->stackParameters);
+ foreach ($parameters as $key => $val) {
+ if ($key != 'postBody' && ! isset($method['parameters'][$key])) {
+ throw new Google_Exception("($name) unknown parameter: '$key'");
+ }
+ }
+ if (isset($method['parameters'])) {
+ foreach ($method['parameters'] as $paramName => $paramSpec) {
+ if (isset($paramSpec['required']) && $paramSpec['required'] && ! isset($parameters[$paramName])) {
+ throw new Google_Exception("($name) missing required param: '$paramName'");
+ }
+ if (isset($parameters[$paramName])) {
+ $value = $parameters[$paramName];
+ $parameters[$paramName] = $paramSpec;
+ $parameters[$paramName]['value'] = $value;
+ unset($parameters[$paramName]['required']);
+ } else {
+ unset($parameters[$paramName]);
+ }
+ }
+ }
+
+ // Discovery v1.0 puts the canonical method id under the 'id' field.
+ if (! isset($method['id'])) {
+ $method['id'] = $method['rpcMethod'];
+ }
+
+ // Discovery v1.0 puts the canonical path under the 'path' field.
+ if (! isset($method['path'])) {
+ $method['path'] = $method['restPath'];
+ }
+
+ $servicePath = $this->service->servicePath;
+
+ // Process Media Request
+ $contentType = false;
+ if (isset($method['mediaUpload'])) {
+ $media = Google_MediaFileUpload::process($postBody, $parameters);
+ if ($media) {
+ $contentType = isset($media['content-type']) ? $media['content-type']: null;
+ $postBody = isset($media['postBody']) ? $media['postBody'] : null;
+ $servicePath = $method['mediaUpload']['protocols']['simple']['path'];
+ $method['path'] = '';
+ }
+ }
+
+ $url = Google_REST::createRequestUri($servicePath, $method['path'], $parameters);
+ $httpRequest = new Google_HttpRequest($url, $method['httpMethod'], null, $postBody);
+ if ($postBody) {
+ $contentTypeHeader = array();
+ if (isset($contentType) && $contentType) {
+ $contentTypeHeader['content-type'] = $contentType;
+ } else {
+ $contentTypeHeader['content-type'] = 'application/json; charset=UTF-8';
+ $contentTypeHeader['content-length'] = Google_Utils::getStrLen($postBody);
+ }
+ $httpRequest->setRequestHeaders($contentTypeHeader);
+ }
+
+ $httpRequest = Google_Client::$auth->sign($httpRequest);
+ if (Google_Client::$useBatch) {
+ return $httpRequest;
+ }
+
+ // Terminate immediately if this is a resumable request.
+ if (isset($parameters['uploadType']['value'])
+ && Google_MediaFileUpload::UPLOAD_RESUMABLE_TYPE == $parameters['uploadType']['value']) {
+ $contentTypeHeader = array();
+ if (isset($contentType) && $contentType) {
+ $contentTypeHeader['content-type'] = $contentType;
+ }
+ $httpRequest->setRequestHeaders($contentTypeHeader);
+ if ($postBody) {
+ $httpRequest->setPostBody($postBody);
+ }
+ return $httpRequest;
+ }
+
+ return Google_REST::execute($httpRequest);
+ }
+
+ public function useObjects() {
+ global $apiConfig;
+ return (isset($apiConfig['use_objects']) && $apiConfig['use_objects']);
+ }
+
+ protected function stripNull(&$o) {
+ $o = (array) $o;
+ foreach ($o as $k => $v) {
+ if ($v === null || strstr($k, "\0*\0__")) {
+ unset($o[$k]);
+ }
+ elseif (is_object($v) || is_array($v)) {
+ $this->stripNull($o[$k]);
+ }
+ }
+ }
+}
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Utils.php b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Utils.php
new file mode 100644
index 0000000..be94902
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_Utils.php
@@ -0,0 +1,117 @@
+
+ */
+class Google_Utils {
+ public static function urlSafeB64Encode($data) {
+ $b64 = base64_encode($data);
+ $b64 = str_replace(array('+', '/', '\r', '\n', '='),
+ array('-', '_'),
+ $b64);
+ return $b64;
+ }
+
+ public static function urlSafeB64Decode($b64) {
+ $b64 = str_replace(array('-', '_'),
+ array('+', '/'),
+ $b64);
+ return base64_decode($b64);
+ }
+
+ /**
+ * Misc function used to count the number of bytes in a post body, in the world of multi-byte chars
+ * and the unpredictability of strlen/mb_strlen/sizeof, this is the only way to do that in a sane
+ * manner at the moment.
+ *
+ * This algorithm was originally developed for the
+ * Solar Framework by Paul M. Jones
+ *
+ * @link http://solarphp.com/
+ * @link http://svn.solarphp.com/core/trunk/Solar/Json.php
+ * @link http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php
+ * @param string $str
+ * @return int The number of bytes in a string.
+ */
+ static public function getStrLen($str) {
+ $strlenVar = strlen($str);
+ $d = $ret = 0;
+ for ($count = 0; $count < $strlenVar; ++ $count) {
+ $ordinalValue = ord($str{$ret});
+ switch (true) {
+ case (($ordinalValue >= 0x20) && ($ordinalValue <= 0x7F)):
+ // characters U-00000000 - U-0000007F (same as ASCII)
+ $ret ++;
+ break;
+
+ case (($ordinalValue & 0xE0) == 0xC0):
+ // characters U-00000080 - U-000007FF, mask 110XXXXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $ret += 2;
+ break;
+
+ case (($ordinalValue & 0xF0) == 0xE0):
+ // characters U-00000800 - U-0000FFFF, mask 1110XXXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $ret += 3;
+ break;
+
+ case (($ordinalValue & 0xF8) == 0xF0):
+ // characters U-00010000 - U-001FFFFF, mask 11110XXX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $ret += 4;
+ break;
+
+ case (($ordinalValue & 0xFC) == 0xF8):
+ // characters U-00200000 - U-03FFFFFF, mask 111110XX
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $ret += 5;
+ break;
+
+ case (($ordinalValue & 0xFE) == 0xFC):
+ // characters U-04000000 - U-7FFFFFFF, mask 1111110X
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+ $ret += 6;
+ break;
+ default:
+ $ret ++;
+ }
+ }
+ return $ret;
+ }
+
+ /**
+ * Normalize all keys in an array to lower-case.
+ * @param array $arr
+ * @return array Normalized array.
+ */
+ public static function normalize($arr) {
+ if (!is_array($arr)) {
+ return array();
+ }
+
+ $normalized = array();
+ foreach ($arr as $key => $val) {
+ $normalized[strtolower($key)] = $val;
+ }
+ return $normalized;
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/google-analyticator/google-api-php-client/static/Credentials.png b/wp-content/plugins/google-analyticator/google-api-php-client/static/Credentials.png
new file mode 100644
index 0000000..3eb40fe
Binary files /dev/null and b/wp-content/plugins/google-analyticator/google-api-php-client/static/Credentials.png differ
diff --git a/wp-content/plugins/google-analyticator/jquery.flot.min.js b/wp-content/plugins/google-analyticator/jquery.flot.min.js
new file mode 100644
index 0000000..4467fc5
--- /dev/null
+++ b/wp-content/plugins/google-analyticator/jquery.flot.min.js
@@ -0,0 +1,6 @@
+/* Javascript plotting library for jQuery, v. 0.7.
+ *
+ * Released under the MIT license by IOLA, December 2007.
+ *
+ */
+(function(b){b.color={};b.color.make=function(d,e,g,f){var c={};c.r=d||0;c.g=e||0;c.b=g||0;c.a=f!=null?f:1;c.add=function(h,j){for(var k=0;k=1){return"rgb("+[c.r,c.g,c.b].join(",")+")"}else{return"rgba("+[c.r,c.g,c.b,c.a].join(",")+")"}};c.normalize=function(){function h(k,j,l){return jl?l:j)}c.r=h(0,parseInt(c.r),255);c.g=h(0,parseInt(c.g),255);c.b=h(0,parseInt(c.b),255);c.a=h(0,c.a,1);return c};c.clone=function(){return b.color.make(c.r,c.b,c.g,c.a)};return c.normalize()};b.color.extract=function(d,e){var c;do{c=d.css(e).toLowerCase();if(c!=""&&c!="transparent"){break}d=d.parent()}while(!b.nodeName(d.get(0),"body"));if(c=="rgba(0, 0, 0, 0)"){c="transparent"}return b.color.parse(c)};b.color.parse=function(c){var d,f=b.color.make;if(d=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10))}if(d=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10),parseFloat(d[4]))}if(d=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55)}if(d=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55,parseFloat(d[4]))}if(d=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)){return f(parseInt(d[1],16),parseInt(d[2],16),parseInt(d[3],16))}if(d=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)){return f(parseInt(d[1]+d[1],16),parseInt(d[2]+d[2],16),parseInt(d[3]+d[3],16))}var e=b.trim(c).toLowerCase();if(e=="transparent"){return f(255,255,255,0)}else{d=a[e]||[0,0,0];return f(d[0],d[1],d[2])}};var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function(c){function b(av,ai,J,af){var Q=[],O={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{show:null,position:"bottom",mode:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:false},yaxis:{autoscaleMargin:0.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false},shadowSize:3},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},hooks:{}},az=null,ad=null,y=null,H=null,A=null,p=[],aw=[],q={left:0,right:0,top:0,bottom:0},G=0,I=0,h=0,w=0,ak={processOptions:[],processRawData:[],processDatapoints:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},aq=this;aq.setData=aj;aq.setupGrid=t;aq.draw=W;aq.getPlaceholder=function(){return av};aq.getCanvas=function(){return az};aq.getPlotOffset=function(){return q};aq.width=function(){return h};aq.height=function(){return w};aq.offset=function(){var aB=y.offset();aB.left+=q.left;aB.top+=q.top;return aB};aq.getData=function(){return Q};aq.getAxes=function(){var aC={},aB;c.each(p.concat(aw),function(aD,aE){if(aE){aC[aE.direction+(aE.n!=1?aE.n:"")+"axis"]=aE}});return aC};aq.getXAxes=function(){return p};aq.getYAxes=function(){return aw};aq.c2p=C;aq.p2c=ar;aq.getOptions=function(){return O};aq.highlight=x;aq.unhighlight=T;aq.triggerRedrawOverlay=f;aq.pointOffset=function(aB){return{left:parseInt(p[aA(aB,"x")-1].p2c(+aB.x)+q.left),top:parseInt(aw[aA(aB,"y")-1].p2c(+aB.y)+q.top)}};aq.shutdown=ag;aq.resize=function(){B();g(az);g(ad)};aq.hooks=ak;F(aq);Z(J);X();aj(ai);t();W();ah();function an(aD,aB){aB=[aq].concat(aB);for(var aC=0;aC=O.colors.length){aG=0;++aF}}var aH=0,aN;for(aG=0;aGa3.datamax&&a1!=aB){a3.datamax=a1}}c.each(m(),function(a1,a2){a2.datamin=aO;a2.datamax=aI;a2.used=false});for(aU=0;aU0&&aT[aR-aP]!=null&&aT[aR-aP]!=aT[aR]&&aT[aR-aP+1]!=aT[aR+1]){for(aN=0;aNaM){aM=a0}}if(aX.y){if(a0aV){aV=a0}}}}if(aJ.bars.show){var aY=aJ.bars.align=="left"?0:-aJ.bars.barWidth/2;if(aJ.bars.horizontal){aQ+=aY;aV+=aY+aJ.bars.barWidth}else{aK+=aY;aM+=aY+aJ.bars.barWidth}}aF(aJ.xaxis,aK,aM);aF(aJ.yaxis,aQ,aV)}c.each(m(),function(a1,a2){if(a2.datamin==aO){a2.datamin=null}if(a2.datamax==aI){a2.datamax=null}})}function j(aB,aC){var aD=document.createElement("canvas");aD.className=aC;aD.width=G;aD.height=I;if(!aB){c(aD).css({position:"absolute",left:0,top:0})}c(aD).appendTo(av);if(!aD.getContext){aD=window.G_vmlCanvasManager.initElement(aD)}aD.getContext("2d").save();return aD}function B(){G=av.width();I=av.height();if(G<=0||I<=0){throw"Invalid dimensions for plot, width = "+G+", height = "+I}}function g(aC){if(aC.width!=G){aC.width=G}if(aC.height!=I){aC.height=I}var aB=aC.getContext("2d");aB.restore();aB.save()}function X(){var aC,aB=av.children("canvas.base"),aD=av.children("canvas.overlay");if(aB.length==0||aD==0){av.html("");av.css({padding:0});if(av.css("position")=="static"){av.css("position","relative")}B();az=j(true,"base");ad=j(false,"overlay");aC=false}else{az=aB.get(0);ad=aD.get(0);aC=true}H=az.getContext("2d");A=ad.getContext("2d");y=c([ad,az]);if(aC){av.data("plot").shutdown();aq.resize();A.clearRect(0,0,G,I);y.unbind();av.children().not([az,ad]).remove()}av.data("plot",aq)}function ah(){if(O.grid.hoverable){y.mousemove(aa);y.mouseleave(l)}if(O.grid.clickable){y.click(R)}an(ak.bindEvents,[y])}function ag(){if(M){clearTimeout(M)}y.unbind("mousemove",aa);y.unbind("mouseleave",l);y.unbind("click",R);an(ak.shutdown,[y])}function r(aG){function aC(aH){return aH}var aF,aB,aD=aG.options.transform||aC,aE=aG.options.inverseTransform;if(aG.direction=="x"){aF=aG.scale=h/Math.abs(aD(aG.max)-aD(aG.min));aB=Math.min(aD(aG.max),aD(aG.min))}else{aF=aG.scale=w/Math.abs(aD(aG.max)-aD(aG.min));aF=-aF;aB=Math.max(aD(aG.max),aD(aG.min))}if(aD==aC){aG.p2c=function(aH){return(aH-aB)*aF}}else{aG.p2c=function(aH){return(aD(aH)-aB)*aF}}if(!aE){aG.c2p=function(aH){return aB+aH/aF}}else{aG.c2p=function(aH){return aE(aB+aH/aF)}}}function L(aD){var aB=aD.options,aF,aJ=aD.ticks||[],aI=[],aE,aK=aB.labelWidth,aG=aB.labelHeight,aC;function aH(aM,aL){return c('
'];var aJ=m();for(var aD=0;aD');for(var aE=0;aEaC.max){continue}var aK={},aI;if(aC.direction=="x"){aI="center";aK.left=Math.round(q.left+aC.p2c(aH.v)-aC.labelWidth/2);if(aC.position=="bottom"){aK.top=aF.top+aF.padding}else{aK.bottom=I-(aF.top+aF.height-aF.padding)}}else{aK.top=Math.round(q.top+aC.p2c(aH.v)-aC.labelHeight/2);if(aC.position=="left"){aK.right=G-(aF.left+aF.width-aF.padding);aI="right"}else{aK.left=aF.left+aF.padding;aI="left"}}aK.width=aC.labelWidth;var aB=["position:absolute","text-align:"+aI];for(var aL in aK){aB.push(aL+":"+aK[aL]+"px")}aG.push('
Trying to ping: ' . $url . '. The sections below should give you an idea whats going on.
';
+
+ //Try to get as much as debug / error output as possible
+ $errLevel = error_reporting(E_ALL);
+ $errDisplay = ini_set("display_errors", 1);
+ if(!defined('WP_DEBUG')) define('WP_DEBUG', true);
+
+ echo '
Errors, Warnings, Notices:
';
+
+ if(WP_DEBUG == false) echo "WP_DEBUG was set to false somewhere before. You might not see all debug information until you remove this declaration! ";
+ if(ini_get("display_errors") != 1) echo "Your display_errors setting currently prevents the plugin from showing errors here. Please check your webserver logfile instead. ";
+
+ $res = $this->RemoteOpen($url);
+
+ echo '
';
+
+ echo htmlspecialchars($res);
+
+ //Revert back old values
+ error_reporting($errLevel);
+ ini_set("display_errors", $errDisplay);
+ echo '';
+ exit;
+ }
+
+ /**
+ * Opens a remote file using the WordPress API
+ * @since 3.0
+ * @param $url The URL to open
+ * @param $method string get or post
+ * @param $postData An array with key=>value paris
+ * @param $timeout int Timeout for the request, by default 10
+ * @return mixed False on error, the body of the response on success
+ */
+ public static function RemoteOpen($url, $method = 'get', $postData = null, $timeout = 10) {
+ global $wp_version;
+
+ $options = array();
+ $options['timeout'] = $timeout;
+
+ if($method == 'get') {
+ $response = wp_remote_get($url, $options);
+ } else {
+ $response = wp_remote_post($url, array_merge($options, array('body' => $postData)));
+ }
+
+ if(is_wp_error($response)) {
+ $errs = $response->get_error_messages();
+ $errs = htmlspecialchars(implode('; ', $errs));
+ trigger_error('WP HTTP API Web Request failed: ' . $errs, E_USER_NOTICE);
+ return false;
+ }
+
+ return $response['body'];
+ }
+
+ /**
+ * Sends anonymous statistics
+ */
+ private function SendStats() {
+ global $wp_version;
+ $postData = array(
+ "v" => 1,
+ "tid" => "UA-65990-26",
+ "cid" => $this->GetOption('i_hash'),
+ "aip" => 1, //Anonymize
+ "t" => "event",
+ "ec" => "ping",
+ "ea" => "auto",
+ "ev" => 1,
+ "cd1" => $wp_version,
+ "cd2" => $this->GetVersion(),
+ "cd3" => PHP_VERSION,
+ "ul" => get_bloginfo('language'),
+ );
+
+ $this->RemoteOpen('http://www.google-analytics.com/collect', 'post', $postData);
+ }
+
+ /**
+ * Handles daily ping
+ */
+ public function SendPingDaily() {
+
+ $this->LoadOptions();
+
+ $blogUpdate = strtotime(get_lastpostdate('blog'));
+ $lastPing = $this->GetOption('i_lastping');
+ $yesterday = time() - (60 * 60 * 24);
+
+ if($blogUpdate >= $yesterday && ($lastPing==0 || $lastPing <= $yesterday)) {
+ $this->SendPing();
+ }
+
+ if($this->GetOption('b_stats')) {
+ $this->SendStats();
+ }
+ }
+
+
+ /*************************************** USER INTERFACE ***************************************/
+
+ /**
+ * Includes the user interface class and initializes it
+ *
+ * @since 3.1.1
+ * @see GoogleSitemapGeneratorUI
+ * @return GoogleSitemapGeneratorUI
+ */
+ private function GetUI() {
+
+ global $wp_version;
+
+ if($this->ui === null) {
+
+ $className = 'GoogleSitemapGeneratorUI';
+ $fileName = 'sitemap-ui.php';
+
+ if(!class_exists($className)) {
+
+ $path = trailingslashit(dirname(__FILE__));
+
+ if(!file_exists($path . $fileName)) return false;
+ require_once($path . $fileName);
+ }
+
+ $this->ui = new $className($this);
+
+ }
+
+ return $this->ui;
+ }
+
+ /**
+ * Shows the option page of the plugin. Before 3.1.1, this function was basically the UI, afterwards the UI was outsourced to another class
+ *
+ * @see GoogleSitemapGeneratorUI
+ * @since 3.0
+ * @return bool
+ */
+ public function HtmlShowOptionsPage() {
+
+ $ui = $this->GetUI();
+ if($ui) {
+ $ui->HtmlShowOptionsPage();
+ return true;
+ }
+
+ return false;
+ }
+
+ /*************************************** HELPERS ***************************************/
+
+ /**
+ * Returns if the given value is greater than zero
+ *
+ * @param $value int The value to check
+ * @since 4.0b10
+ * @return bool True if greater than zero
+ */
+ public function IsGreaterZero($value) {
+ return ($value > 0);
+ }
+}
diff --git a/wp-content/plugins/google-sitemap-generator/sitemap-loader.php b/wp-content/plugins/google-sitemap-generator/sitemap-loader.php
new file mode 100644
index 0000000..e0ced52
--- /dev/null
+++ b/wp-content/plugins/google-sitemap-generator/sitemap-loader.php
@@ -0,0 +1,474 @@
+ 'index.php?xml_sitemap=params=$matches[2]',
+ 'sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$' => 'index.php?xml_sitemap=params=$matches[2];zip=true',
+ 'sitemap(-+([a-zA-Z0-9_-]+))?\.html$' => 'index.php?xml_sitemap=params=$matches[2];html=true',
+ 'sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$' => 'index.php?xml_sitemap=params=$matches[2];html=true;zip=true'
+ );
+ return array_merge($smRules,$wpRules);
+ }
+
+ /**
+ * Returns the rules required for Nginx permalinks
+ *
+ * @return string[]
+ */
+ public static function GetNginXRules() {
+ return array(
+ 'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;',
+ 'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;',
+ 'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;',
+ 'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;'
+ );
+
+ }
+
+ /**
+ * Adds the filters for wp rewrite rule adding
+ *
+ * @since 4.0
+ * @uses add_filter()
+ */
+ public static function SetupRewriteHooks() {
+ add_filter('rewrite_rules_array', array(__CLASS__, 'AddRewriteRules'), 1, 1);
+ }
+
+ /**
+ * Flushes the rewrite rules
+ *
+ * @since 4.0
+ * @global $wp_rewrite WP_Rewrite
+ * @uses WP_Rewrite::flush_rules()
+ */
+ public static function ActivateRewrite() {
+ global $wp_rewrite;
+ $wp_rewrite->flush_rules(false);
+ update_option("sm_rewrite_done", self::$svnVersion);
+ }
+
+ /**
+ * Handled the plugin activation on installation
+ *
+ * @uses GoogleSitemapGeneratorLoader::ActivateRewrite
+ * @since 4.0
+ */
+ public static function ActivatePlugin() {
+ self::SetupRewriteHooks();
+ self::ActivateRewrite();
+
+ if(self::LoadPlugin()) {
+ $gsg = GoogleSitemapGenerator::GetInstance();
+ if($gsg->OldFileExists()) {
+ $gsg->DeleteOldFiles();
+ }
+ }
+
+ }
+
+ /**
+ * Handled the plugin deactivation
+ *
+ * @uses GoogleSitemapGeneratorLoader::ActivateRewrite
+ * @since 4.0
+ */
+ public static function DeactivatePlugin() {
+ delete_option("sm_rewrite_done");
+ wp_clear_scheduled_hook('sm_ping_daily');
+ }
+
+
+ /**
+ * Handles the plugin output on template redirection if the xml_sitemap query var is present.
+ *
+ * @since 4.0
+ * @global $wp_query The WordPress query object
+ */
+ public static function DoTemplateRedirect() {
+ global $wp_query;
+ if(!empty($wp_query->query_vars["xml_sitemap"])) {
+ $wp_query->is_404 = false;
+ $wp_query->is_feed = false;
+ self::CallShowSitemap($wp_query->query_vars["xml_sitemap"]);
+ }
+ }
+
+ public static function KillFrontpageQuery() {
+ //add_filter('posts_request', array('GoogleSitemapGeneratorLoader', 'KillFrontpagePosts'), 1000, 2);
+ }
+
+ public static function KillFrontpagePosts($sql, &$query) {
+ // The main query is running on the front page
+ // And the currently running query is that main query
+ if(!empty($query->query_vars["xml_sitemap"])) {
+ // We only want to do this once: remove the filter
+ remove_filter('posts_request', array('GoogleSitemapGeneratorLoader', 'KillFrontpagePosts'), 1000, 2);
+ // Kill the FOUND_ROWS() query too
+ $query->query_vars['no_found_rows'] = true;
+ //Workaround for preventing to fetch sticky posts
+ $query->is_home = false;
+ //Prevent sending of 404 (it would happen because we didn't find any posts). Setting is_404 to true skips that check.
+ $query->is_404 = true;
+
+ return "SELECT ID FROM {$GLOBALS['wpdb']->posts} WHERE 1=2"; // Kill the query doesnt work anymore. Now try to select no matching posts :(
+ }
+ return $sql;
+ }
+
+
+ /**
+ * Registers the plugin in the admin menu system
+ *
+ * @uses add_options_page()
+ */
+ public static function RegisterAdminPage() {
+
+ $p = add_options_page(__('XML-Sitemap Generator', 'sitemap'), __('XML-Sitemap', 'sitemap'), 'administrator', self::GetBaseName(), array(__CLASS__, 'CallHtmlShowOptionsPage'));
+ //add_action("load-$p", array(__CLASS__, 'CallHtmlShowHelpList'));
+
+ }
+
+ /**
+ * Returns a nice icon for the Ozh Admin Menu if the {@param $hook} equals to the sitemap plugin
+ *
+ * @param string $hook The hook to compare
+ * @return string The path to the icon
+ */
+ public static function RegisterAdminIcon($hook) {
+ if($hook == self::GetBaseName() && function_exists('plugins_url')) {
+ return plugins_url('img/icon-arne.gif', self::GetBaseName());
+ }
+ return $hook;
+ }
+
+ /**
+ * Registers additional links for the sitemap plugin on the WP plugin configuration page
+ *
+ * Registers the links if the $file param equals to the sitemap plugin
+ * @param $links Array An array with the existing links
+ * @param $file string The file to compare to
+ */
+ public static function RegisterPluginLinks($links, $file) {
+ $base = self::GetBaseName();
+ if($file == $base) {
+ $links[] = '' . __('Settings', 'sitemap') . '';
+ $links[] = '' . __('FAQ', 'sitemap') . '';
+ $links[] = '' . __('Support', 'sitemap') . '';
+ $links[] = '' . __('Donate', 'sitemap') . '';
+ }
+ return $links;
+ }
+
+ /**
+ * Schedules pinging the search engines
+ *
+ * @static
+ * @return void
+ */
+ public static function SchedulePing() {
+ wp_schedule_single_event(time(),'sm_ping');
+ }
+
+ /**
+ * Invokes the HtmlShowOptionsPage method of the generator
+ * @uses GoogleSitemapGeneratorLoader::LoadPlugin()
+ * @uses GoogleSitemapGenerator::HtmlShowOptionsPage()
+ */
+ public static function CallHtmlShowOptionsPage() {
+ if(self::LoadPlugin()) {
+ GoogleSitemapGenerator::GetInstance()->HtmlShowOptionsPage();
+ }
+ }
+
+ /**
+ * Invokes the ShowPingResult method of the generator
+ * @uses GoogleSitemapGeneratorLoader::LoadPlugin()
+ * @uses GoogleSitemapGenerator::ShowPingResult()
+ */
+ public static function CallShowPingResult() {
+ if(self::LoadPlugin()) {
+ GoogleSitemapGenerator::GetInstance()->ShowPingResult();
+ }
+ }
+
+ /**
+ * Invokes the SendPing method of the generator
+ * @uses GoogleSitemapGeneratorLoader::LoadPlugin()
+ * @uses GoogleSitemapGenerator::SendPing()
+ */
+ public static function CallSendPing() {
+ if(self::LoadPlugin()) {
+ GoogleSitemapGenerator::GetInstance()->SendPing();
+ }
+ }
+
+ /**
+ * Invokes the SendPingDaily method of the generator
+ * @uses GoogleSitemapGeneratorLoader::LoadPlugin()
+ * @uses GoogleSitemapGenerator::SendPingDaily()
+ */
+ public static function CallSendPingDaily()
+ {
+ if (self::LoadPlugin()) {
+ GoogleSitemapGenerator::GetInstance()->SendPingDaily();
+ }
+ }
+
+ /**
+ * Invokes the ShowSitemap method of the generator
+ * @uses GoogleSitemapGeneratorLoader::LoadPlugin()
+ * @uses GoogleSitemapGenerator::ShowSitemap()
+ */
+ public static function CallShowSitemap($options) {
+ if(self::LoadPlugin()) {
+ GoogleSitemapGenerator::GetInstance()->ShowSitemap($options);
+ }
+ }
+
+ /**
+ * Invokes the DoRobots method of the generator
+ * @uses GoogleSitemapGeneratorLoader::LoadPlugin()
+ * @uses GoogleSitemapGenerator::DoRobots()
+ */
+ public static function CallDoRobots() {
+ if(self::LoadPlugin()) {
+ GoogleSitemapGenerator::GetInstance()->DoRobots();
+ }
+ }
+
+ /**
+ * Displays the help links in the upper Help Section of WordPress
+ *
+ * @param $filterVal Array The existing links
+ * @param $screen Object The current screen object
+ * @return Array The new links
+ */
+ public static function CallHtmlShowHelpList() {
+
+ $screen = get_current_screen();
+ $id = get_plugin_page_hookname(self::GetBaseName(), 'options-general.php');
+
+ if(is_object($screen) && $screen->id == $id) {
+
+ /*
+ load_plugin_textdomain('sitemap',false,dirname( plugin_basename( __FILE__ ) ) . '/lang');
+
+ $links = array(
+ __('Plugin Homepage', 'sitemap') => 'http://www.arnebrachhold.de/redir/sitemap-help-home/',
+ __('My Sitemaps FAQ', 'sitemap') => 'http://www.arnebrachhold.de/redir/sitemap-help-faq/'
+ );
+
+ $filterVal[$id] = '';
+
+ $i = 0;
+ foreach($links AS $text => $url) {
+ $filterVal[$id] .= '' . $text . '' . ($i < (count($links) - 1) ? ' | ' : '');
+ $i++;
+ }
+
+ $screen->add_help_tab( array(
+ 'id' => 'sitemap-links',
+ 'title' => __('My Sitemaps FAQ', 'sitemap'),
+ 'content' => '
' . __('dsf dsf sd f', 'sitemap') . '
',
+
+ ));
+ */
+
+ }
+ //return $filterVal;
+ }
+
+
+ /**
+ * Loads the actual generator class and tries to raise the memory and time limits if not already done by WP
+ *
+ * @uses GoogleSitemapGenerator::Enable()
+ * @return boolean true if run successfully
+ */
+ public static function LoadPlugin() {
+
+ if(!class_exists("GoogleSitemapGenerator")) {
+
+ $mem = abs(intval(@ini_get('memory_limit')));
+ if($mem && $mem < 128) {
+ @ini_set('memory_limit', '128M');
+ }
+
+ $time = abs(intval(@ini_get("max_execution_time")));
+ if($time != 0 && $time < 120) {
+ @set_time_limit(120);
+ }
+
+ $path = trailingslashit(dirname(__FILE__));
+
+ if(!file_exists($path . 'sitemap-core.php')) return false;
+ require_once($path . 'sitemap-core.php');
+ }
+
+ GoogleSitemapGenerator::Enable();
+ return true;
+ }
+
+ /**
+ * Returns the plugin basename of the plugin (using __FILE__)
+ *
+ * @return string The plugin basename, "sitemap" for example
+ */
+ public static function GetBaseName() {
+ return plugin_basename(sm_GetInitFile());
+ }
+
+ /**
+ * Returns the name of this loader script, using sm_GetInitFile
+ *
+ * @return string The sm_GetInitFile value
+ */
+ public static function GetPluginFile() {
+ return sm_GetInitFile();
+ }
+
+ /**
+ * Returns the plugin version
+ *
+ * Uses the WP API to get the meta data from the top of this file (comment)
+ *
+ * @return string The version like 3.1.1
+ */
+ public static function GetVersion() {
+ if(!isset($GLOBALS["sm_version"])) {
+ if(!function_exists('get_plugin_data')) {
+ if(file_exists(ABSPATH . 'wp-admin/includes/plugin.php')) {
+ require_once(ABSPATH . 'wp-admin/includes/plugin.php');
+ }
+ else return "0.ERROR";
+ }
+ $data = get_plugin_data(self::GetPluginFile(), false, false);
+ $GLOBALS["sm_version"] = $data['Version'];
+ }
+ return $GLOBALS["sm_version"];
+ }
+
+ public static function GetSvnVersion() {
+ return self::$svnVersion;
+ }
+}
+
+//Enable the plugin for the init hook, but only if WP is loaded. Calling this php file directly will do nothing.
+if(defined('ABSPATH') && defined('WPINC')) {
+ add_action("init", array("GoogleSitemapGeneratorLoader", "Enable"), 15, 0);
+ register_activation_hook(sm_GetInitFile(), array('GoogleSitemapGeneratorLoader', 'ActivatePlugin'));
+ register_deactivation_hook(sm_GetInitFile(), array('GoogleSitemapGeneratorLoader', 'DeactivatePlugin'));
+
+ //Set up hooks for adding permalinks, query vars.
+ //Don't wait until unit with this, since other plugins might flush the rewrite rules in init already...
+ GoogleSitemapGeneratorLoader::SetupQueryVars();
+ GoogleSitemapGeneratorLoader::SetupRewriteHooks();
+}
+
diff --git a/wp-content/plugins/google-sitemap-generator/sitemap-ui.php b/wp-content/plugins/google-sitemap-generator/sitemap-ui.php
new file mode 100644
index 0000000..2a1c800
--- /dev/null
+++ b/wp-content/plugins/google-sitemap-generator/sitemap-ui.php
@@ -0,0 +1,1203 @@
+sg = $sitemapBuilder;
+ }
+
+ private function HtmlPrintBoxHeader($id, $title) {
+ ?>
+
+
+
+
+
+
+ sg->GetFreqNames() AS $k=>$v) {
+ echo "";
+ }
+ }
+
+ /**
+ * Echos option fields for an select field containing the valid priorities (0- 1.0)
+ *
+ * @since 4.0
+ * @param $currentVal string The value which should be selected
+ * @return 0.0 - 1.0 as html option fields
+ */
+ public static function HtmlGetPriorityValues($currentVal) {
+ $currentVal=(float) $currentVal;
+ for($i=0.0; $i<=1.0; $i+=0.1) {
+ $v = number_format($i,1,".","");
+ echo "";
+ }
+ }
+
+ /**
+ * Returns the checked attribute if the given values match
+ *
+ * @since 4.0
+ * @param $val string The current value
+ * @param $equals string The value to match
+ * @return The checked attribute if the given values match, an empty string if not
+ */
+ public static function HtmlGetChecked($val,$equals) {
+ if($val==$equals) return self::HtmlGetAttribute("checked");
+ else return "";
+ }
+
+ /**
+ * Returns the selected attribute if the given values match
+ *
+ * @since 4.0
+ * @param $val string The current value
+ * @param $equals string The value to match
+ * @return The selected attribute if the given values match, an empty string if not
+ */
+ public static function HtmlGetSelected($val,$equals) {
+ if($val==$equals) return self::HtmlGetAttribute("selected");
+ else return "";
+ }
+
+ /**
+ * Returns an formatted attribute. If the value is NULL, the name will be used.
+ *
+ * @since 4.0
+ * @param $attr string The attribute name
+ * @param $value string The attribute value
+ * @return The formatted attribute
+ */
+ public static function HtmlGetAttribute($attr,$value=NULL) {
+ if($value==NULL) $value=$attr;
+ return " " . $attr . "=\"" . esc_attr($value) . "\" ";
+ }
+
+ /**
+ * Returns an array with GoogleSitemapGeneratorPage objects which is generated from POST values
+ *
+ * @since 4.0
+ * @see GoogleSitemapGeneratorPage
+ * @return array An array with GoogleSitemapGeneratorPage objects
+ */
+ public function HtmlApplyPages() {
+ // Array with all page URLs
+ $pages_ur=(!isset($_POST["sm_pages_ur"]) || !is_array($_POST["sm_pages_ur"])?array():$_POST["sm_pages_ur"]);
+
+ //Array with all priorities
+ $pages_pr=(!isset($_POST["sm_pages_pr"]) || !is_array($_POST["sm_pages_pr"])?array():$_POST["sm_pages_pr"]);
+
+ //Array with all change frequencies
+ $pages_cf=(!isset($_POST["sm_pages_cf"]) || !is_array($_POST["sm_pages_cf"])?array():$_POST["sm_pages_cf"]);
+
+ //Array with all lastmods
+ $pages_lm=(!isset($_POST["sm_pages_lm"]) || !is_array($_POST["sm_pages_lm"])?array():$_POST["sm_pages_lm"]);
+
+ //Array where the new pages are stored
+ $pages=array();
+ //Loop through all defined pages and set their properties into an object
+ if(isset($_POST["sm_pages_mark"]) && is_array($_POST["sm_pages_mark"])) {
+ for($i=0; $iSetUrl($pages_ur[$i]);
+ $p->SetProprity($pages_pr[$i]);
+ $p->SetChangeFreq($pages_cf[$i]);
+ //Try to parse last modified, if -1 (note ===) automatic will be used (0)
+ $lm=(!empty($pages_lm[$i])?strtotime($pages_lm[$i],time()):-1);
+ if($lm===-1) $p->setLastMod(0);
+ else $p->setLastMod($lm);
+ //Add it to the array
+ array_push($pages,$p);
+ }
+ }
+
+ return $pages;
+ }
+
+ /**
+ * Displays the option page
+ *
+ * @since 3.0
+ * @access public
+ * @author Arne Brachhold
+ */
+ public function HtmlShowOptionsPage() {
+ global $wp_version;
+
+ //Hopefully this fixes the caching issues after upgrade. Redirect incl. the versions, but only if no POST data.
+ if(count($_POST) == 0 && count($_GET) == 1 && isset($_GET["page"])) {
+ $redirURL = $this->sg->GetBackLink() . '&sm_fromidx=true';
+
+ //Redirect so the sm_rebuild GET parameter no longer exists.
+ @header("location: " . $redirURL);
+ //If there was already any other output, the header redirect will fail
+ echo '';
+ echo '';
+ exit;
+ }
+
+ $snl = false; //SNL
+
+ $this->sg->Initate();
+
+ $message="";
+
+ $is_ms = $this->sg->IsMultiSite();
+
+
+ if(!empty($_REQUEST["sm_rebuild"])) { //Pressed Button: Rebuild Sitemap
+ check_admin_referer('sitemap');
+
+
+ if(isset($_GET["sm_do_debug"]) && $_GET["sm_do_debug"]=="true") {
+
+ //Check again, just for the case that something went wrong before
+ if(!current_user_can("administrator") || !is_super_admin()) {
+ echo '
This is the debug mode of the XML Sitemap Generator. It will show all PHP notices and warnings as well as the internal logs, messages and configuration.
';
+ echo '
DO NOT POST THIS INFORMATION ON PUBLIC PAGES LIKE SUPPORT FORUMS AS IT MAY CONTAIN PASSWORDS OR SECRET SERVER INFORMATION!
';
+ echo "
WordPress and PHP Information
";
+ echo '
WordPress ' . $GLOBALS['wp_version'] . ' with ' . ' DB ' . $GLOBALS['wp_db_version'] . ' on PHP ' . phpversion() . '
DO NOT POST THIS INFORMATION ON PUBLIC PAGES LIKE SUPPORT FORUMS AS IT MAY CONTAIN PASSWORDS OR SECRET SERVER INFORMATION!
';
+ echo '
';
+ @error_reporting($oldErr);
+ @ini_set("display_errors",$oldIni);
+ return;
+ } else {
+
+ $redirURL = $this->sg->GetBackLink() . '&sm_fromrb=true';
+
+ //Redirect so the sm_rebuild GET parameter no longer exists.
+ @header("location: " . $redirURL);
+ //If there was already any other output, the header redirect will fail
+ echo '';
+ echo '';
+ exit;
+ }
+ } else if (!empty($_POST['sm_update'])) { //Pressed Button: Update Config
+ check_admin_referer('sitemap');
+
+ if(isset($_POST['sm_b_style']) && $_POST['sm_b_style'] == $this->sg->getDefaultStyle()) {
+ $_POST['sm_b_style_default'] = true;
+ $_POST['sm_b_style'] = '';
+ }
+
+ foreach($this->sg->GetOptions() as $k=>$v) {
+
+ //Skip some options if the user is not super admin...
+ if(!is_super_admin() && in_array($k,array("sm_b_time","sm_b_memory","sm_b_style","sm_b_style_default"))) {
+ continue;
+ }
+
+ //Check vor values and convert them into their types, based on the category they are in
+ if(!isset($_POST[$k])) $_POST[$k]=""; // Empty string will get false on 2bool and 0 on 2float
+
+ //Options of the category "Basic Settings" are boolean, except the filename and the autoprio provider
+ if(substr($k,0,5)=="sm_b_") {
+ if($k=="sm_b_prio_provider" || $k == "sm_b_style" || $k == "sm_b_memory") {
+ if($k=="sm_b_filename_manual" && strpos($_POST[$k],"\\")!==false){
+ $_POST[$k]=stripslashes($_POST[$k]);
+ }
+ $this->sg->SetOption($k,(string) $_POST[$k]);
+ } else if($k == "sm_b_time") {
+ if($_POST[$k]=='') $_POST[$k] = -1;
+ $this->sg->SetOption($k,intval($_POST[$k]));
+ } else if($k== "sm_i_install_date") {
+ if($this->sg->GetOption('i_install_date')<=0) $this->sg->SetOption($k,time());
+ } else if($k=="sm_b_exclude") {
+ $IDss = array();
+ $IDs = explode(",",$_POST[$k]);
+ for($x = 0; $x0) $IDss[] = $ID;
+ }
+ $this->sg->SetOption($k,$IDss);
+ } else if($k == "sm_b_exclude_cats") {
+ $exCats = array();
+ if(isset($_POST["post_category"])) {
+ foreach((array) $_POST["post_category"] AS $vv) if(!empty($vv) && is_numeric($vv)) $exCats[] = intval($vv);
+ }
+ $this->sg->SetOption($k,$exCats);
+ } else {
+ $this->sg->SetOption($k,(bool) $_POST[$k]);
+
+ }
+ //Options of the category "Includes" are boolean
+ } else if(substr($k,0,6)=="sm_in_") {
+ if($k=='sm_in_tax') {
+
+ $enabledTaxonomies = array();
+
+ foreach(array_keys((array) $_POST[$k]) AS $taxName) {
+ if(empty($taxName) || !(function_exists('taxonomy_exists')?taxonomy_exists($taxName):is_taxonomy($taxName))) continue;
+
+ $enabledTaxonomies[] = $taxName;
+ }
+
+ $this->sg->SetOption($k,$enabledTaxonomies);
+
+ } else if($k=='sm_in_customtypes') {
+
+ $enabledPostTypes = array();
+
+ foreach(array_keys((array) $_POST[$k]) AS $postTypeName) {
+ if(empty($postTypeName) || !post_type_exists($postTypeName)) continue;
+
+ $enabledPostTypes[] = $postTypeName;
+ }
+
+ $this->sg->SetOption($k, $enabledPostTypes);
+
+ } else $this->sg->SetOption($k,(bool) $_POST[$k]);
+ //Options of the category "Change frequencies" are string
+ } else if(substr($k,0,6)=="sm_cf_") {
+ $this->sg->SetOption($k,(string) $_POST[$k]);
+ //Options of the category "Priorities" are float
+ } else if(substr($k,0,6)=="sm_pr_") {
+ $this->sg->SetOption($k,(float) $_POST[$k]);
+ }
+ }
+
+ //Apply page changes from POST
+ if(is_super_admin()) $this->sg->SetPages($this->HtmlApplyPages());
+
+ if($this->sg->SaveOptions()) $message.=__('Configuration updated', 'sitemap') . " ";
+ else $message.=__('Error while saving options', 'sitemap') . " ";
+
+ if(is_super_admin()) {
+ if($this->sg->SavePages()) $message.=__("Pages saved",'sitemap') . " ";
+ else $message.=__('Error while saving pages', 'sitemap'). " ";
+ }
+
+ } else if(!empty($_POST["sm_reset_config"])) { //Pressed Button: Reset Config
+ check_admin_referer('sitemap');
+ $this->sg->InitOptions();
+ $this->sg->SaveOptions();
+
+ $message.=__('The default configuration was restored.','sitemap');
+ } else if(!empty($_GET["sm_delete_old"])) { //Delete old sitemap files
+ check_admin_referer('sitemap');
+
+ //Check again, just for the case that something went wrong before
+ if(!current_user_can("administrator")) {
+ echo '
Please log in as admin
';
+ return;
+ }
+ if(!$this->sg->DeleteOldFiles()) {
+ $message = __("The old files could NOT be deleted. Please use an FTP program and delete them by yourself.","sitemap");
+ } else {
+ $message = __("The old files were successfully deleted.","sitemap");
+ }
+ }
+
+ //Print out the message to the user, if any
+ if($message!="") {
+ ?>
+
";
+}
+
+/**
+ * Adds a notice to the admin interface that the WordPress version is too old for the plugin
+ *
+ * @package sitemap
+ * @since 4.0
+ */
+function sm_AddPhpVersionError() {
+ echo "
" . __('Your PHP version is too old for XML Sitemaps.', 'sitemap') . " " . sprintf(__('Unfortunately this release of Google XML Sitemaps requires at least PHP %4$s. You are using PHP %2$s, which is out-dated and insecure. Please ask your web host to update your PHP installation or go to active plugins and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the plugin website.', 'sitemap'), "plugins.php?plugin_status=active", PHP_VERSION, "http://www.arnebrachhold.de/redir/sitemap-home/","5.1") . "
";
+}
+
+/**
+ * Returns the file used to load the sitemap plugin
+ *
+ * @package sitemap
+ * @since 4.0
+ * @return string The path and file of the sitemap plugin entry point
+ */
+function sm_GetInitFile() {
+ return __FILE__;
+}
+
+//Don't do anything if this file was called directly
+if (defined('ABSPATH') && defined('WPINC') && !class_exists("GoogleSitemapGeneratorLoader", false)) {
+ sm_Setup();
+}
+
diff --git a/wp-content/plugins/google-sitemap-generator/sitemap.xsl b/wp-content/plugins/google-sitemap-generator/sitemap.xsl
new file mode 100644
index 0000000..a5230cf
--- /dev/null
+++ b/wp-content/plugins/google-sitemap-generator/sitemap.xsl
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+ XML Sitemap
+
+
+
+
+
+
XML Sitemap
+
+
+ This is a XML Sitemap which is supposed to be processed by search engines which follow the XML Sitemap standard like Ask.com, Bing, Google and Yahoo.
+ It was generated using the Blogging-Software WordPress and the Google Sitemap Generator Plugin by Arne Brachhold.
+ You can find more information about XML sitemaps on sitemaps.org and Google's list of sitemap programs.
+
+
+
\ No newline at end of file
diff --git a/wp-content/plugins/hello.php b/wp-content/plugins/hello.php
new file mode 100644
index 0000000..2b1e07b
--- /dev/null
+++ b/wp-content/plugins/hello.php
@@ -0,0 +1,82 @@
+Hello, Dolly in the upper right of your admin screen on every page.
+Author: Matt Mullenweg
+Version: 1.6
+Author URI: http://ma.tt/
+*/
+
+function hello_dolly_get_lyric() {
+ /** These are the lyrics to Hello Dolly */
+ $lyrics = "Hello, Dolly
+Well, hello, Dolly
+It's so nice to have you back where you belong
+You're lookin' swell, Dolly
+I can tell, Dolly
+You're still glowin', you're still crowin'
+You're still goin' strong
+We feel the room swayin'
+While the band's playin'
+One of your old favourite songs from way back when
+So, take her wrap, fellas
+Find her an empty lap, fellas
+Dolly'll never go away again
+Hello, Dolly
+Well, hello, Dolly
+It's so nice to have you back where you belong
+You're lookin' swell, Dolly
+I can tell, Dolly
+You're still glowin', you're still crowin'
+You're still goin' strong
+We feel the room swayin'
+While the band's playin'
+One of your old favourite songs from way back when
+Golly, gee, fellas
+Find her a vacant knee, fellas
+Dolly'll never go away
+Dolly'll never go away
+Dolly'll never go away again";
+
+ // Here we split it into lines
+ $lyrics = explode( "\n", $lyrics );
+
+ // And then randomly choose a line
+ return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] );
+}
+
+// This just echoes the chosen line, we'll position it later
+function hello_dolly() {
+ $chosen = hello_dolly_get_lyric();
+ echo "
$chosen
";
+}
+
+// Now we set that function up to execute when the admin_notices action is called
+add_action( 'admin_notices', 'hello_dolly' );
+
+// We need some CSS to position the paragraph
+function dolly_css() {
+ // This makes sure that the positioning is also good for right-to-left languages
+ $x = is_rtl() ? 'left' : 'right';
+
+ echo "
+
+ ";
+}
+
+add_action( 'admin_head', 'dolly_css' );
+
+?>
diff --git a/wp-content/plugins/image-widget/image-widget.php b/wp-content/plugins/image-widget/image-widget.php
new file mode 100644
index 0000000..8555a02
--- /dev/null
+++ b/wp-content/plugins/image-widget/image-widget.php
@@ -0,0 +1,410 @@
+ 'widget_sp_image', 'description' => __( 'Showcase a single image with a Title, URL, and a Description', 'image_widget' ) );
+ $control_ops = array( 'id_base' => 'widget_sp_image' );
+ $this->WP_Widget('widget_sp_image', __('Image Widget', 'image_widget'), $widget_ops, $control_ops);
+ if ( $this->use_old_uploader() ) {
+ require_once( 'lib/ImageWidgetDeprecated.php' );
+ new ImageWidgetDeprecated( $this );
+ } else {
+ add_action( 'sidebar_admin_setup', array( $this, 'admin_setup' ) );
+ }
+ add_action( 'admin_head-widgets.php', array( $this, 'admin_head' ) );
+
+ add_action( 'plugin_row_meta', array( $this, 'plugin_row_meta' ),10 ,2 );
+
+ if ( !defined('I_HAVE_SUPPORTED_THE_IMAGE_WIDGET') )
+ add_action( 'admin_notices', array( $this, 'post_upgrade_nag') );
+
+ add_action( 'network_admin_notices', array( $this, 'post_upgrade_nag') );
+ }
+
+ /**
+ * Test to see if this version of WordPress supports the new image manager.
+ * @return bool true if the current version of WordPress does NOT support the current image management tech.
+ */
+ private function use_old_uploader() {
+ if ( defined( 'IMAGE_WIDGET_COMPATIBILITY_TEST' ) ) return true;
+ return !function_exists('wp_enqueue_media');
+ }
+
+ /**
+ * Enqueue all the javascript.
+ */
+ function admin_setup() {
+ wp_enqueue_media();
+ wp_enqueue_script( 'tribe-image-widget', plugins_url('resources/js/image-widget.js', __FILE__), array( 'jquery', 'media-upload', 'media-views' ), self::VERSION );
+
+ wp_localize_script( 'tribe-image-widget', 'TribeImageWidget', array(
+ 'frame_title' => __( 'Select an Image', 'image_widget' ),
+ 'button_title' => __( 'Insert Into Widget', 'image_widget' ),
+ ) );
+ }
+
+ /**
+ * Widget frontend output
+ *
+ * @param array $args
+ * @param array $instance
+ * @author Modern Tribe, Inc.
+ */
+ function widget( $args, $instance ) {
+ extract( $args );
+ $instance = wp_parse_args( (array) $instance, self::get_defaults() );
+ if ( !empty( $instance['imageurl'] ) || !empty( $instance['attachment_id'] ) ) {
+
+ $instance['title'] = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'] );
+ $instance['description'] = apply_filters( 'widget_text', $instance['description'], $args, $instance );
+ $instance['link'] = apply_filters( 'image_widget_image_link', esc_url( $instance['link'] ), $args, $instance );
+ $instance['linktarget'] = apply_filters( 'image_widget_image_link_target', esc_attr( $instance['linktarget'] ), $args, $instance );
+ $instance['width'] = apply_filters( 'image_widget_image_width', abs( $instance['width'] ), $args, $instance );
+ $instance['height'] = apply_filters( 'image_widget_image_height', abs( $instance['height'] ), $args, $instance );
+ $instance['maxwidth'] = apply_filters( 'image_widget_image_maxwidth', esc_attr( $instance['maxwidth'] ), $args, $instance );
+ $instance['maxheight'] = apply_filters( 'image_widget_image_maxheight', esc_attr( $instance['maxheight'] ), $args, $instance );
+ $instance['align'] = apply_filters( 'image_widget_image_align', esc_attr( $instance['align'] ), $args, $instance );
+ $instance['alt'] = apply_filters( 'image_widget_image_alt', esc_attr( $instance['alt'] ), $args, $instance );
+
+ if ( !defined( 'IMAGE_WIDGET_COMPATIBILITY_TEST' ) ) {
+ $instance['attachment_id'] = ( $instance['attachment_id'] > 0 ) ? $instance['attachment_id'] : $instance['image'];
+ $instance['attachment_id'] = apply_filters( 'image_widget_image_attachment_id', abs( $instance['attachment_id'] ), $args, $instance );
+ $instance['size'] = apply_filters( 'image_widget_image_size', esc_attr( $instance['size'] ), $args, $instance );
+ }
+ $instance['imageurl'] = apply_filters( 'image_widget_image_url', esc_url( $instance['imageurl'] ), $args, $instance );
+
+ // No longer using extracted vars. This is here for backwards compatibility.
+ extract( $instance );
+
+ include( $this->getTemplateHierarchy( 'widget' ) );
+ }
+ }
+
+ /**
+ * Update widget options
+ *
+ * @param object $new_instance Widget Instance
+ * @param object $old_instance Widget Instance
+ * @return object
+ * @author Modern Tribe, Inc.
+ */
+ function update( $new_instance, $old_instance ) {
+ $instance = $old_instance;
+ $new_instance = wp_parse_args( (array) $new_instance, self::get_defaults() );
+ $instance['title'] = strip_tags($new_instance['title']);
+ if ( current_user_can('unfiltered_html') ) {
+ $instance['description'] = $new_instance['description'];
+ } else {
+ $instance['description'] = wp_filter_post_kses($new_instance['description']);
+ }
+ $instance['link'] = $new_instance['link'];
+ $instance['linktarget'] = $new_instance['linktarget'];
+ $instance['width'] = abs( $new_instance['width'] );
+ $instance['height'] =abs( $new_instance['height'] );
+ if ( !defined( 'IMAGE_WIDGET_COMPATIBILITY_TEST' ) ) {
+ $instance['size'] = $new_instance['size'];
+ }
+ $instance['align'] = $new_instance['align'];
+ $instance['alt'] = $new_instance['alt'];
+
+ // Reverse compatibility with $image, now called $attachement_id
+ if ( !defined( 'IMAGE_WIDGET_COMPATIBILITY_TEST' ) && $new_instance['attachment_id'] > 0 ) {
+ $instance['attachment_id'] = abs( $new_instance['attachment_id'] );
+ } elseif ( $new_instance['image'] > 0 ) {
+ $instance['attachment_id'] = $instance['image'] = abs( $new_instance['image'] );
+ if ( class_exists('ImageWidgetDeprecated') ) {
+ $instance['imageurl'] = ImageWidgetDeprecated::get_image_url( $instance['image'], $instance['width'], $instance['height'] ); // image resizing not working right now
+ }
+ }
+ $instance['imageurl'] = $new_instance['imageurl']; // deprecated
+
+ $instance['aspect_ratio'] = $this->get_image_aspect_ratio( $instance );
+
+ return $instance;
+ }
+
+ /**
+ * Form UI
+ *
+ * @param object $instance Widget Instance
+ * @author Modern Tribe, Inc.
+ */
+ function form( $instance ) {
+ $instance = wp_parse_args( (array) $instance, self::get_defaults() );
+ if ( $this->use_old_uploader() ) {
+ include( $this->getTemplateHierarchy( 'widget-admin.deprecated' ) );
+ } else {
+ include( $this->getTemplateHierarchy( 'widget-admin' ) );
+ }
+ }
+
+ /**
+ * Admin header css
+ *
+ * @author Modern Tribe, Inc.
+ */
+ function admin_head() {
+ ?>
+
+ '',
+ 'description' => '',
+ 'link' => '',
+ 'linktarget' => '',
+ 'width' => 0,
+ 'height' => 0,
+ 'maxwidth' => '100%',
+ 'maxheight' => '',
+ 'image' => 0, // reverse compatible - now attachement_id
+ 'imageurl' => '', // reverse compatible.
+ 'align' => 'none',
+ 'alt' => '',
+ );
+
+ if ( !defined( 'IMAGE_WIDGET_COMPATIBILITY_TEST' ) ) {
+ $defaults['size'] = self::CUSTOM_IMAGE_SIZE_SLUG;
+ $defaults['attachment_id'] = 0;
+ }
+
+ return $defaults;
+ }
+
+ /**
+ * Render the image html output.
+ *
+ * @param array $instance
+ * @param bool $include_link will only render the link if this is set to true. Otherwise link is ignored.
+ * @return string image html
+ */
+ private function get_image_html( $instance, $include_link = true ) {
+
+ // Backwards compatible image display.
+ if ( $instance['attachment_id'] == 0 && $instance['image'] > 0 ) {
+ $instance['attachment_id'] = $instance['image'];
+ }
+
+ $output = '';
+
+ if ( $include_link && !empty( $instance['link'] ) ) {
+ $attr = array(
+ 'href' => $instance['link'],
+ 'target' => $instance['linktarget'],
+ 'class' => $this->widget_options['classname'].'-image-link',
+ 'title' => ( !empty( $instance['alt'] ) ) ? $instance['alt'] : $instance['title'],
+ );
+ $attr = apply_filters('image_widget_link_attributes', $attr, $instance );
+ $attr = array_map( 'esc_attr', $attr );
+ $output = ' $value ) {
+ $output .= sprintf( ' %s="%s"', $name, $value );
+ }
+ $output .= '>';
+ }
+
+ $size = $this->get_image_size( $instance );
+ if ( is_array( $size ) ) {
+ $instance['width'] = $size[0];
+ $instance['height'] = $size[1];
+ } elseif ( !empty( $instance['attachment_id'] ) ) {
+ //$instance['width'] = $instance['height'] = 0;
+ $image_details = wp_get_attachment_image_src( $instance['attachment_id'], $size );
+ if ($image_details) {
+ $instance['imageurl'] = $image_details[0];
+ $instance['width'] = $image_details[1];
+ $instance['height'] = $image_details[2];
+ }
+ }
+ $instance['width'] = abs( $instance['width'] );
+ $instance['height'] = abs( $instance['height'] );
+
+ $attr = array();
+ $attr['alt'] = $instance['title'];
+ if (is_array($size)) {
+ $attr['class'] = 'attachment-'.join('x',$size);
+ } else {
+ $attr['class'] = 'attachment-'.$size;
+ }
+ $attr['style'] = '';
+ if (!empty($instance['maxwidth'])) {
+ $attr['style'] .= "max-width: {$instance['maxwidth']};";
+ }
+ if (!empty($instance['maxheight'])) {
+ $attr['style'] .= "max-height: {$instance['maxheight']};";
+ }
+ if (!empty($instance['align']) && $instance['align'] != 'none') {
+ $attr['class'] .= " align{$instance['align']}";
+ }
+ $attr = apply_filters( 'image_widget_image_attributes', $attr, $instance );
+
+ // If there is an imageurl, use it to render the image. Eventually we should kill this and simply rely on attachment_ids.
+ if ( !empty( $instance['imageurl'] ) ) {
+ // If all we have is an image src url we can still render an image.
+ $attr['src'] = $instance['imageurl'];
+ $attr = array_map( 'esc_attr', $attr );
+ $hwstring = image_hwstring( $instance['width'], $instance['height'] );
+ $output .= rtrim(" $value ) {
+ $output .= sprintf( ' %s="%s"', $name, $value );
+ }
+ $output .= ' />';
+ } elseif( abs( $instance['attachment_id'] ) > 0 ) {
+ $output .= wp_get_attachment_image($instance['attachment_id'], $size, false, $attr);
+ }
+
+ if ( $include_link && !empty( $instance['link'] ) ) {
+ $output .= '';
+ }
+
+ return $output;
+ }
+
+ /**
+ * Assesses the image size in case it has not been set or in case there is a mismatch.
+ *
+ * @param $instance
+ * @return array|string
+ */
+ private function get_image_size( $instance ) {
+ if ( !empty( $instance['size'] ) && $instance['size'] != self::CUSTOM_IMAGE_SIZE_SLUG ) {
+ $size = $instance['size'];
+ } elseif ( isset( $instance['width'] ) && is_numeric($instance['width']) && isset( $instance['height'] ) && is_numeric($instance['height']) ) {
+ $size = array(abs($instance['width']),abs($instance['height']));
+ } else {
+ $size = 'full';
+ }
+ return $size;
+ }
+
+ /**
+ * Establish the aspect ratio of the image.
+ *
+ * @param $instance
+ * @return float|number
+ */
+ private function get_image_aspect_ratio( $instance ) {
+ if ( !empty( $instance['aspect_ratio'] ) ) {
+ return abs( $instance['aspect_ratio'] );
+ } else {
+ $attachment_id = ( !empty($instance['attachment_id']) ) ? $instance['attachment_id'] : $instance['image'];
+ if ( !empty($attachment_id) ) {
+ $image_details = wp_get_attachment_image_src( $attachment_id, 'full' );
+ if ($image_details) {
+ return ( $image_details[1]/$image_details[2] );
+ }
+ }
+ }
+ }
+
+ /**
+ * Loads theme files in appropriate hierarchy: 1) child theme,
+ * 2) parent template, 3) plugin resources. will look in the image-widget/
+ * directory in a theme and the views/ directory in the plugin
+ *
+ * @param string $template template file to search for
+ * @return template path
+ * @author Modern Tribe, Inc. (Matt Wiebe)
+ **/
+
+ function getTemplateHierarchy($template) {
+ // whether or not .php was added
+ $template_slug = rtrim($template, '.php');
+ $template = $template_slug . '.php';
+
+ if ( $theme_file = locate_template(array('image-widget/'.$template)) ) {
+ $file = $theme_file;
+ } else {
+ $file = 'views/' . $template;
+ }
+ return apply_filters( 'sp_template_image-widget_'.$template, $file);
+ }
+
+
+ /**
+ * Display a thank you nag when the plugin has been upgraded.
+ */
+ public function post_upgrade_nag() {
+ if ( !current_user_can('install_plugins') ) return;
+
+ $version_key = '_image_widget_version';
+ if ( get_site_option( $version_key ) == self::VERSION ) return;
+
+ $msg = sprintf(__('Thanks for upgrading the Image Widget! If you like this plugin, please consider rating it and maybe even check out our premium plugins including our Events Calendar Pro!', 'image-widget'),'http://wordpress.org/extend/plugins/image-widget/?source=image-widget&pos=nag','http://tri.be/wordpress-events-calendar-pro/?source=image-widget&pos=nag');
+ echo "
` in description to also improve XHTML compliance.
+
+= 3.1.1 =
+
+* Fix bug: php4 reported error: PHP Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' (thanks @natashaelaine and @massimopaolini)
+
+= 3.0.10 =
+
+* Fix bug: improve tab filters.
+
+= 3.0.9 =
+
+* Fix bug: update tabs filter to not kill tabs if upload window is for non widget uses.
+
+= 3.0.8 =
+
+* Remove the "From URL" tab since it isn't supported.
+* Replace "Insert into Post" with "Insert into Widget" in thickbox.
+
+= 3.0.7 =
+
+* Fix Dean's Fcuk editor conflict. (Thanks for the report Laurie @L_T_G)
+* Fix IE8 bug (Remove extra comma from line 66 of js - thanks for the report @reface)
+* Update functions and enqueued scripts to only trigger on widget page.
+
+= 3.0.6 =
+
+* Fix crash on insert into post.
+
+= 3.0.5 =
+
+Thank you @smurkas, @squigie and @laurie!!! Special thanks to Cameron Clark from http://prolifique.com a.k.a @capnhairdo for contributing invaluable javascript debugging skills and throwing together some great code.
+
+* PHP4 compatibility
+* Tighter integration with the thickbok uploader attributes including caption, description, alignment, and link
+* Tighter image resize preview
+* Add Image link becomes "Change Image" once image has been added
+
+= 3.0.4 =
+
+* Minor description changes
+
+= 3.0.3 =
+
+* Fixed the broken "Add Image" link (THANK YOU @SMURKAS!!!)
+
+= 3.0.2 =
+
+* Added PHPDoc comments
+* Temporarily fixed install bug where no image is saved if resize is not working. (thank you Paul Kaiser from Champaign, Il for your helpful QA support)
+
+= 3.0.1 =
+
+* Added 'sp_image_widget' domain for language support.
+
+= 3.0 =
+
+* Completely remodeled the plugin to use the native WordPress uploader and be compatible with Wordpress 2.8 plugin architecture.
+* Removed externalized widget admin.
+
+= 2.2.2 =
+
+* Update
to be $before_widget and $after_widget (Thanks again to Lois Turley)
+
+= 2.2.1 =
+
+* Update `
` to be `
` (Thanks to Lois Turley)
+
+= 2.2 =
+
+* Fixed missing DIV close tag (Thank you Jesper Goos)
+* Updated all short tags to proper php tags (Thank you Jonathan Volks from Mannix Marketing)
+
+= 2.1 =
+
+* Link Target
+
+= 2.0 =
+
+* Multi widget support
+* WP 2.7.1 Compatibility
+* Class encapsulation
+
+== Upgrade Notice ==
+
+= 4.0 =
+
+Please be advised that this is a significant upgrade. You should definitely back up your database before updating in case your existing image widgets have any problems.
+
+Also, several languages will no longer be supported until new translations are submitted. Currently, we have support for Italian, Dutch, and Swedish. If you would like to contribute your own language files, please post links here:
+
+http://wordpress.org/support/topic/image-widget-40-translations-needed-2
+
+== Screenshots ==
+
+1. Image Widget admin screen.
+1. Media manager integration.
+1. Image Widget on the front of a plain Wordpress install.
+
+== Frequently Asked Questions ==
+
+= Where do I go to file a bug or ask a question? =
+
+Please visit the forum for questions or comments: http://wordpress.org/tags/image-widget/
\ No newline at end of file
diff --git a/wp-content/plugins/image-widget/resources/js/image-widget.deprecated.js b/wp-content/plugins/image-widget/resources/js/image-widget.deprecated.js
new file mode 100644
index 0000000..38f6bfe
--- /dev/null
+++ b/wp-content/plugins/image-widget/resources/js/image-widget.deprecated.js
@@ -0,0 +1,123 @@
+var imageWidget;
+
+(function($){
+
+ imageWidget = {
+
+ sendToEditor : function(h) {
+ // ignore content returned from media uploader and use variables passed to window instead
+
+ // store attachment id in hidden field
+ $( '#widget-'+self.IW_instance+'-image' ).val( self.IW_img_id );
+
+ // display attachment preview
+ $( '#display-widget-'+self.IW_instance+'-image' ).html( self.IW_html );
+
+ // change width & height fields in widget to match image
+ $( '#widget-'+self.IW_instance+'-width' ).val($( '#display-widget-'+self.IW_instance+'-image img').attr('width'));
+ $( '#widget-'+self.IW_instance+'-height' ).val($( '#display-widget-'+self.IW_instance+'-image img').attr('height'));
+
+ // set alignment in widget
+ $( '#widget-'+self.IW_instance+'-align' ).val(self.IW_align);
+
+ // set title in widget
+ $( '#widget-'+self.IW_instance+'-title' ).val(self.IW_title);
+
+ // set caption in widget
+ $( '#widget-'+self.IW_instance+'-description' ).val(self.IW_caption);
+
+ // set alt text in widget
+ $( '#widget-'+self.IW_instance+'-alt' ).val(self.IW_alt);
+
+ // set link in widget
+ $( '#widget-'+self.IW_instance+'-link' ).val(self.IW_url);
+
+ // close thickbox
+ tb_remove();
+
+ // change button text
+ $('#add_image-widget-'+self.IW_instance+'-image').html($('#add_image-widget-'+self.IW_instance+'-image').html().replace(/Add Image/g, 'Change Image'));
+ },
+
+ changeImgWidth : function(instance) {
+ var width = $( '#widget-'+instance+'-width' ).val();
+ var height = Math.round(width / imageWidget.imgRatio(instance));
+ imageWidget.changeImgSize(instance,width,height);
+ },
+
+ changeImgHeight : function(instance) {
+ var height = $( '#widget-'+instance+'-height' ).val();
+ var width = Math.round(height * imageWidget.imgRatio(instance));
+ imageWidget.changeImgSize(instance,width,height);
+ },
+
+ imgRatio : function(instance) {
+ var width_old = $( '#display-widget-'+instance+'-image img').attr('width');
+ var height_old = $( '#display-widget-'+instance+'-image img').attr('height');
+ var ratio = width_old / height_old;
+ return ratio;
+ },
+
+ changeImgSize : function(instance,width,height) {
+ if (isNaN(width) || width < 1) {
+ $( '#widget-'+instance+'-width' ).val('');
+ width = 'none';
+ } else {
+ $( '#widget-'+instance+'-width' ).val(width);
+ width = width + 'px';
+ }
+ $( '#display-widget-'+instance+'-image img' ).css({
+ 'width':width
+ });
+
+ if (isNaN(height) || height < 1) {
+ $( '#widget-'+instance+'-height' ).val('');
+ height = 'none';
+ } else {
+ $( '#widget-'+instance+'-height' ).val(height);
+ height = height + 'px';
+ }
+ $( '#display-widget-'+instance+'-image img' ).css({
+ 'height':height
+ });
+ },
+
+ changeImgAlign : function(instance) {
+ var align = $( '#widget-'+instance+'-align' ).val();
+ $( '#display-widget-'+instance+'-image img' ).attr(
+ 'class', (align == 'none' ? '' : 'align'+align)
+ );
+ },
+
+ imgHandler : function(event) {
+ event.preventDefault();
+ window.send_to_editor = imageWidget.sendToEditor;
+ tb_show("Add an Image", event.target.href, false);
+ },
+
+ setActiveWidget : function(instance_id) {
+ self.IW_instance = instance_id;
+ }
+
+ };
+
+ $(document).ready(function() {
+ // Use new style event handling since $.fn.live() will be deprecated
+ if ( typeof $.fn.on !== 'undefined' ) {
+ $("#wpbody").on("click", ".thickbox-image-widget", imageWidget.imgHandler);
+ }
+ else {
+ $("a.thickbox-image-widget").live('click', imageWidget.imgHandler);
+ }
+
+ // Modify thickbox link to fit window. Adapted from wp-admin\js\media-upload.dev.js.
+ $('a.thickbox-image-widget').each( function() {
+ var href = $(this).attr('href'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width;
+ if ( ! href ) return;
+ href = href.replace(/&width=[0-9]+/g, '');
+ href = href.replace(/&height=[0-9]+/g, '');
+ $(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 ) );
+ });
+ });
+
+})(jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/image-widget/resources/js/image-widget.deprecated.upload-fixer.js b/wp-content/plugins/image-widget/resources/js/image-widget.deprecated.upload-fixer.js
new file mode 100644
index 0000000..7bf1b64
--- /dev/null
+++ b/wp-content/plugins/image-widget/resources/js/image-widget.deprecated.upload-fixer.js
@@ -0,0 +1,108 @@
+jQuery(document).ready(function() {
+
+ jQuery('form#image-form').submit(function(){
+ var wp_ref = jQuery("input[name='_wp_http_referer']").val();
+ // _wp_http_referer only contains the widget_sp_image if the
+ // previous action was pressing the add image link in an Image Widget
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String/indexOf
+ if( wp_ref.indexOf('widget_sp_image') != -1 ) {
+ var parsed_url = parse_url(wp_ref);
+ var nw_action_url = jQuery('form#image-form').attr('action');
+
+ // make sure the widget_sp_image is not part of the form action url
+ // so we will add it to fix the context
+ if( nw_action_url.indexOf('widget_sp_image') == -1 ) {
+ nw_action_url = nw_action_url + '&' + parsed_url.query;
+ jQuery('form#image-form').attr('action', nw_action_url);
+ }
+ }
+ return true;
+ });
+
+ //also update the filter form with a new hidden field
+ //is the filter form present on the page?
+ if (jQuery("form#filter").length>0) {
+
+ //code for retrieving GET vars (we want the value of widget_id)
+ var widget_id = '';
+ document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
+ function decode(s) {
+ return decodeURIComponent(s.split("+").join(" "));
+ }
+
+ var key = decode(arguments[1]);
+ if (key == 'widget_id') {
+ widget_id = decode(arguments[2]);
+ }
+ });
+
+ if (widget_id.length > 0) {//do we have a value?
+
+ //insert hidden field into form
+ jQuery('form#filter').append(
+ jQuery('')
+ .attr('type', 'hidden')
+ .attr('name', 'widget_id')
+ .val(widget_id)
+ );
+ }
+ }
+});
+
+
+/*
+ * Thanks to http://github.com/kvz/phpjs/raw/master/functions/url/parse_url.js
+ */
+function parse_url (str, component) {
+ // http://kevin.vanzonneveld.net
+ // + original by: Steven Levithan (http://blog.stevenlevithan.com)
+ // + reimplemented by: Brett Zamir (http://brett-zamir.me)
+ // + input by: Lorenzo Pisani
+ // + input by: Tony
+ // + improved by: Brett Zamir (http://brett-zamir.me)
+ // % note: Based on http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
+ // % note: blog post at http://blog.stevenlevithan.com/archives/parseuri
+ // % note: demo at http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
+ // % note: Does not replace invalid characters with '_' as in PHP, nor does it return false with
+ // % note: a seriously malformed URL.
+ // % note: Besides function name, is essentially the same as parseUri as well as our allowing
+ // % note: an extra slash after the scheme/protocol (to allow file:/// as in PHP)
+ // * example 1: parse_url('http://username:password@hostname/path?arg=value#anchor');
+ // * returns 1: {scheme: 'http', host: 'hostname', user: 'username', pass: 'password', path: '/path', query: 'arg=value', fragment: 'anchor'}
+ var key = ['source', 'scheme', 'authority', 'userInfo', 'user', 'pass', 'host', 'port',
+ 'relative', 'path', 'directory', 'file', 'query', 'fragment'],
+ ini = (this.php_js && this.php_js.ini) || {},
+ mode = (ini['phpjs.parse_url.mode'] &&
+ ini['phpjs.parse_url.mode'].local_value) || 'php',
+ parser = {
+ php: /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
+ strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
+ loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-scheme to catch file:/// (should restrict this)
+ };
+
+ var m = parser[mode].exec(str),
+ uri = {},
+ i = 14;
+ while (i--) {
+ if (m[i]) {
+ uri[key[i]] = m[i];
+ }
+ }
+
+ if (component) {
+ return uri[component.replace('PHP_URL_', '').toLowerCase()];
+ }
+ if (mode !== 'php') {
+ var name = (ini['phpjs.parse_url.queryKey'] &&
+ ini['phpjs.parse_url.queryKey'].local_value) || 'queryKey';
+ parser = /(?:^|&)([^&=]*)=?([^&]*)/g;
+ uri[name] = {};
+ uri[key[12]].replace(parser, function ($0, $1, $2) {
+ if ($1) {uri[name][$1] = $2;}
+ });
+ }
+ delete uri.source;
+ return uri;
+}
+
+/* /wp-admin/media-upload.php?type=image&widget_id=widget_sp_image-11& */
\ No newline at end of file
diff --git a/wp-content/plugins/image-widget/resources/js/image-widget.js b/wp-content/plugins/image-widget/resources/js/image-widget.js
new file mode 100644
index 0000000..eccc293
--- /dev/null
+++ b/wp-content/plugins/image-widget/resources/js/image-widget.js
@@ -0,0 +1,107 @@
+/**
+ * Tribe Image Widget Javascript
+ * @author Modern Tribe, Inc.
+ * Copyright 2013.
+ */
+jQuery(document).ready(function($){
+
+ imageWidget = {
+
+ // Call this from the upload button to initiate the upload frame.
+ uploader : function( widget_id, widget_id_string ) {
+
+ var frame = wp.media({
+ title : TribeImageWidget.frame_title,
+ multiple : false,
+ library : { type : 'image' },
+ button : { text : TribeImageWidget.button_title }
+ });
+
+ // Handle results from media manager.
+ frame.on('close',function( ) {
+ var attachments = frame.state().get('selection').toJSON();
+ imageWidget.render( widget_id, widget_id_string, attachments[0] );
+ });
+
+ frame.open();
+ return false;
+ },
+
+ // Output Image preview and populate widget form.
+ render : function( widget_id, widget_id_string, attachment ) {
+
+ $("#" + widget_id_string + 'preview').html(imageWidget.imgHTML( attachment ));
+
+ $("#" + widget_id_string + 'fields').slideDown();
+
+ $("#" + widget_id_string + 'attachment_id').val(attachment.id);
+ $("#" + widget_id_string + 'imageurl').val(attachment.url);
+ $("#" + widget_id_string + 'aspect_ratio').val(attachment.width/attachment.height);
+ $("#" + widget_id_string + 'width').val(attachment.width);
+ $("#" + widget_id_string + 'height').val(attachment.height);
+
+ $("#" + widget_id_string + 'size').val('full');
+ $("#" + widget_id_string + 'custom_size_selector').slideDown();
+ imageWidget.toggleSizes( widget_id, widget_id_string );
+
+ imageWidget.updateInputIfEmpty( widget_id_string, 'title', attachment.title );
+ imageWidget.updateInputIfEmpty( widget_id_string, 'alt', attachment.alt );
+ imageWidget.updateInputIfEmpty( widget_id_string, 'description', attachment.description );
+ // attempt to populate 'description' with caption if description is blank.
+ imageWidget.updateInputIfEmpty( widget_id_string, 'description', attachment.caption );
+ },
+
+ // Update input fields if it is empty
+ updateInputIfEmpty : function( widget_id_string, name, value ) {
+ var field = $("#" + widget_id_string + name);
+ if ( field.val() == '' ) {
+ field.val(value);
+ }
+ },
+
+ // Render html for the image.
+ imgHTML : function( attachment ) {
+ var img_html = '';
+ return img_html;
+ },
+
+ // Hide or display the WordPress image size fields depending on if 'Custom' is selected.
+ toggleSizes : function( widget_id, widget_id_string ) {
+ if ( $( '#' + widget_id_string + 'size' ).val() == 'tribe_image_widget_custom' ) {
+ $( '#' + widget_id_string + 'custom_size_fields').slideDown();
+ } else {
+ $( '#' + widget_id_string + 'custom_size_fields').slideUp();
+ }
+ },
+
+ // Update the image height based on the image width.
+ changeImgWidth : function( widget_id, widget_id_string ) {
+ var aspectRatio = $("#" + widget_id_string + 'aspect_ratio').val();
+ if ( aspectRatio ) {
+ var width = $( '#' + widget_id_string + 'width' ).val();
+ var height = Math.round( width / aspectRatio );
+ $( '#' + widget_id_string + 'height' ).val(height);
+ //imageWidget.changeImgSize( widget_id, widget_id_string, width, height );
+ }
+ },
+
+ // Update the image width based on the image height.
+ changeImgHeight : function( widget_id, widget_id_string ) {
+ var aspectRatio = $("#" + widget_id_string + 'aspect_ratio').val();
+ if ( aspectRatio ) {
+ var height = $( '#' + widget_id_string + 'height' ).val();
+ var width = Math.round( height * aspectRatio );
+ $( '#' + widget_id_string + 'width' ).val(width);
+ //imageWidget.changeImgSize( widget_id, widget_id_string, width, height );
+ }
+ }
+
+ };
+
+});
\ No newline at end of file
diff --git a/wp-content/plugins/image-widget/screenshot-1.png b/wp-content/plugins/image-widget/screenshot-1.png
new file mode 100644
index 0000000..802bfdd
Binary files /dev/null and b/wp-content/plugins/image-widget/screenshot-1.png differ
diff --git a/wp-content/plugins/image-widget/screenshot-2.png b/wp-content/plugins/image-widget/screenshot-2.png
new file mode 100644
index 0000000..207a6b7
Binary files /dev/null and b/wp-content/plugins/image-widget/screenshot-2.png differ
diff --git a/wp-content/plugins/image-widget/screenshot-3.png b/wp-content/plugins/image-widget/screenshot-3.png
new file mode 100644
index 0000000..86230ac
Binary files /dev/null and b/wp-content/plugins/image-widget/screenshot-3.png differ
diff --git a/wp-content/plugins/image-widget/views/widget-admin.deprecated.php b/wp-content/plugins/image-widget/views/widget-admin.deprecated.php
new file mode 100644
index 0000000..743fe3c
--- /dev/null
+++ b/wp-content/plugins/image-widget/views/widget-admin.deprecated.php
@@ -0,0 +1,50 @@
+
+
+
+
+
+ id; //NOTE #1: the widget id is added here to allow uploader to only return array if this is used with image widget so that all other uploads are not harmed.
+ $image_upload_iframe_src = apply_filters('image_upload_iframe_src', "$media_upload_iframe_src");
+ $image_title = (!empty($instance['image'])) ? __('Change Image', 'image_widget') : __('Add Image', 'image_widget');
+ ?>
+
+
get_image_html($instance); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wp-content/plugins/image-widget/views/widget-admin.php b/wp-content/plugins/image-widget/views/widget-admin.php
new file mode 100644
index 0000000..e9eea8f
--- /dev/null
+++ b/wp-content/plugins/image-widget/views/widget-admin.php
@@ -0,0 +1,81 @@
+get_field_id('');
+?>
+
+
+
+ get_image_html($instance, false); ?>
+
+
+
+
+
+
+
style="display:none;">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
style="display:none;">
+
+
+
+
+
style="display:none;">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wp-content/plugins/image-widget/views/widget.php b/wp-content/plugins/image-widget/views/widget.php
new file mode 100644
index 0000000..4b1dd1a
--- /dev/null
+++ b/wp-content/plugins/image-widget/views/widget.php
@@ -0,0 +1,23 @@
+get_image_html( $instance, true );
+
+if ( !empty( $description ) ) {
+ echo '
';
+ echo wpautop( $description );
+ echo "
";
+}
+echo $after_widget;
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/index.php b/wp-content/plugins/index.php
new file mode 100644
index 0000000..4e6c07c
--- /dev/null
+++ b/wp-content/plugins/index.php
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/wp-content/plugins/loginradius-for-wordpress/LoginRadius-admin.php b/wp-content/plugins/loginradius-for-wordpress/LoginRadius-admin.php
new file mode 100644
index 0000000..7b8a6e8
--- /dev/null
+++ b/wp-content/plugins/loginradius-for-wordpress/LoginRadius-admin.php
@@ -0,0 +1,1184 @@
+
+
+
+
+
+
+
+
+
+
LoginRadius
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Login, insert LoginRadius API Key and Secret in the API Settings section below. Social Sharing does not require API Key and Secret.', 'LoginRadius' ); ?>
+
' . __( 'Your LoginRadius API key or secret is not valid, please correct it or contact LoginRadius support at www.LoginRadius.com', 'LoginRadius' ) . '
+# wpml-name: ae8c1bb099886cd76af4bec96e369c1f
+msgid ""
+"Enter a number ( For example - 200 ) . It will set the 'top' CSS attribute "
+"of the interface to the value specified. Increase in the number pushes "
+"interface towards bottom."
+msgstr ""
+"Bitte eine Zahl eingeben (z.B. - 200). Es wird das CSS-Attribut 'top' für "
+"das Interface auf den angegebenen Wert setzen. Erhöhung (Inkrement) der "
+"Zahlen wird das Interface Richtung unten verschieben."
+
+#
+#
+# "> (?)
+# wpml-name: fb3d392b7861951e9b6c2b2cbab28033
+msgid ""
+"Specify distance of vertical sharing interface from top ( Leave emptyfor "
+"default behaviour ) "
+msgstr ""
+"Abstand des Vertikal Sharing Interfaces von oben. (frei lassen für das "
+"Standardverhalten)"
+
+#
+#
+#
+# wpml-name: 6eb49c2e53ad7499375a91b92414a58d
+msgid "What area ( s ) do you want to show the social sharing widget?"
+msgstr "Wo soll das Social Sharing Widget angezeigt werden?"
+
+#
+#
+#
+# wpml-name: ea1cea52bf2d7f2aac7b3a45e6e8192f
+msgid ""
+"What Sharing Networks do you want to show in the sharing widget? ( All other "
+"sharing networks will be shown as part of LoginRadius sharing icon ) "
+msgstr ""
+"Welche Sharing Networks willst du im Sharing Widget anzeigen? ( Alle anderen "
+"Sharing Networks werden als Teil des LoginRadius Sharing-Icons angezeigt)"
+
+#
+#
+#
+# wpml-name: 231c198910edf96fe2c1ef7e2a22107a
+msgid ""
+"What Social Sharing widget theme would you like to use across your website? "
+"( Horizontal and Vertical themes can be enabled simultaneously ) "
+msgstr ""
+"Welches Social Sharing Widget-Theme soll auf der gesamten Webseite angezeigt "
+"werden? (Horizontal und Vertikal Themes können gleichzeitig aktiviert sein)"
+
+#
+#
+#
+# wpml-name: 1ca5d2f58d39c4cf3c733529464c14e0
+msgid ""
+"Do you want to completely remove the plugin settings and options on plugin "
+"deletion ( If you choose yes, then you will not be able to recover settings "
+"again ) ?"
+msgstr ""
+"Sollen die gesamten Plugin -einstellungen und -optionen beim löschen des "
+"Plugins entfernt werden (Bei Auswahl dieser Option können keine "
+"Einstellungen wieder hergestellt werden)?"
+
+#
+# (?)
+#
+# wpml-name: 0756ddd7a75e1506d8105391e4e2c4b8
+msgid ""
+"If you disable this option, user profile data will be saved only once when "
+"user logs in first time at your website, user profile details will not be "
+"updated in your Wordpress database, even if user changes his/her social "
+"accountdetails."
+msgstr ""
+"Bei Deaktivierung dieser Option werden Benutzerprofil-Daten nur gespeichert "
+"wenn der Benutzer sich zum ersten Mal an der Webseite anmeldet. "
+"Benutzerprofil-Details werden nicht in der Wordpress Datenbank aktualisiert, "
+"auch wenn der Benutzer seine Social Account-Details ändert."
+
+#
+# (?)
+#
+# wpml-name: 1e6a5496ce2efbd6b54abd00c85fb919
+msgid ""
+"During accountcreation, it automatically adds a separator between first name "
+"and last name of the user"
+msgstr ""
+"Während der Konten-Erstellung wird automatisch ein Trennzeichen zwischen "
+"Vor- und Nachnamen des Benutzers gesetzt."
+
+# value="socialavatar"/>
+# value="largeavatar"/>
+# value="defaultavatar" />
+# wpml-name: ac3d916840a8341160942e57ff9c8693
+msgid "YES, let users use large avatars from Social ID provider if available"
+msgstr ""
+"Ja, Benutzer können große Avatare, wenn diese beim Social ID-Provider "
+"verfügbar sind, verwenden."
+
+#
+# value="socialavatar"/>
+# value="largeavatar"/>
+# wpml-name: 5a5808955d41a31f8b418344e9dadf4f
+msgid "YES, let users use small avatars from Social ID provider if available"
+msgstr ""
+"Ja, Benutzer können kleine Avatare, wenn diese beim Social ID-Provider "
+"verfügbar sind, verwenden."
+
+#
+#
+#
+# wpml-name: c636ff23465b9fa90e2ffcd3ae819abf
+msgid ""
+"Do you want to automatically link your existing users' accounts to their "
+"social accounts if their WP accountemail address matches the email address "
+"associated with their social account?"
+msgstr ""
+"Sollen bestehende Benutzerkonten den korrespondierenden Social Accounts "
+"automatisch zugeordnet werden, wenn deren WP-Konto E-Mail-Adresse mit deren "
+"Social Account E-Mail-Adresse übereinstimmen?"
+
+# ?>
+# /> ()
+# />
+# wpml-name: 8b62990d22afcc1eaf3110032c69d8a3
+msgid "Redirect to the same page where the user registered"
+msgstr "Umleitung zur gleichen Seite an der sich der Benutzer registriert hat."
+
+#
+#
+#
+# wpml-name: 937902da27ee902602b83b9d7701198a
+msgid ""
+"Where do you want to redirect your users after registration ( first Social "
+"Login ) ?"
+msgstr ""
+"Wohin sollen die Benutzer nach der Registrierung umgeleitet werden (Social "
+"Login zuerst)?"
+
+#
+# />
+#
+# wpml-name: 65dd6cc04c0a737ba7222f1e4df45b12
+msgid "Redirect to accountdashboard"
+msgstr "Umleitung zum Dashboard des Accounts"
+
+#
+#
+#
+# wpml-name: 4aa4fa594a7725f18aaebdacec1e6981
+msgid ""
+"A few ID Providers do not supply user e-mail ID as part of the user profile "
+"data they provide. Do you want to prompt users to provide their email IDs "
+"before completing registration process if it is not provided by the ID "
+"Provider?"
+msgstr ""
+"Einige ID Provider stellen die Benutzer E-mail ID als Teil der "
+"Benutzerprofildaten nicht zur Verfügung. Sollen die Benutzer vor Abschluss "
+"des Registrierungsprozesses die Möglichkeit haben, ihre E-Mail als ID`s "
+"einzugeben, wenn dies der Provider nicht anbietet?"
+
+#
+# (?)
+# http://www.colorpicker.com/
+# wpml-name: e15ee3391b63ec853cebf105c803aaa5
+msgid ""
+"Leave emptyfor transparent. You can enter hexa-decimal code of the color as "
+"well as name of the color."
+msgstr ""
+"Für transparent leer lassen. Es kann der hexadezimal-Code oder auch der Name "
+"der Farbe angegeben werden."
+
+#
+# (?)
+#
+# wpml-name: 83941ac3e7b87ec88ed29e643068eb0b
+msgid ""
+"It may break the functionality of the plugin if wp_footer and login_footer "
+"hooks do not exist in your theme"
+msgstr ""
+"Die Funktionalität des Plugins kann brechen, wenn wp_footer und login_footer-"
+"HOOKS in diesem Theme nicht existieren."
+
+#
+#
+# (?)
+# wpml-name: e27c8955511aa10ee01107b6b9b1c279
+msgid ""
+"Do you want the plugin Javascript code to be included in the footer for "
+"faster loading of website content?"
+msgstr ""
+"Soll der Javascript-Code des Plugins in den Footer eingebettet werden um "
+"Webseiteninhalt schneller zu laden?"
+
+#
+# (?)
+#
+# wpml-name: c3bd48bc4c71643b002671defce2a76e
+msgid "This is used for better user experience"
+msgstr "Für eine bessere Benutzerfreundlichkeit"
+
+#
+#
+# (?)
+# wpml-name: b3aa793ad177c014cfbc853a7d0a2f6b
+msgid "Release authentication response in ID provider pop-up?"
+msgstr "Authentifizierungs-Antwort in ID-Provider Pop-up?"
+
+#
+#
+#
+# wpml-name: b0b55f46c61b4e07d458a1575ec4877f
+msgid ""
+"To receive updates on new features, future releases, etc, please connect "
+"with us via Facebook"
+msgstr ""
+"Für Aktualisierungen von neuen Features und zukünftigen Versionen verknüpfe "
+"deinen Facebook-Account."
+
+#
+#
+#
+# wpml-name: dcff66d2c053da830b43b36f25a29e3e
+msgid ""
+"To activate the plugin, you will need to first configure it ( manage your "
+"desired social networks, etc. ) from your LoginRadius account. If you do not "
+"have an account, click"
+msgstr ""
+"Um das Plugin zu aktivieren, muss es zuerst in deinem LoginRadius-Account "
+"(Verwaltung der gewünschten Social Networks usw.) auf unser Webseite "
+"konfiguriert werden. Wenn du keinen Account hast, klicke bitte "
+
+# }else if ( data == 'same' ) {
+# jQuery ( '#login_radius_api_response' ) .html ( '' );
+# }else if ( data == 'working' ) {
+# wpml-name: 068a8185e10016bf5172dbba453fade3
+msgid ""
+"API Key and Secret cannot be same. Please paste correct API Key and Secret "
+"from your LoginRadius accountin the corresponding fields above."
+msgstr ""
+"API Key und Secret können nicht gleich sein. Bitte füge den korrekten API "
+"Key und Secret aus deinem LoginRadius-Account in die dazugehörigen Feldern "
+"ein."
+
+# function LoginRadiusSocialLinkingWidget(){
+# parent::WP_Widget( 'LoginRadiusSocialLinking' /*unique id*/, 'LoginRadius - Social Linking' /*title displayed at admin panel*/, array( 'description' => __( 'Link your Social Accounts', 'LoginRadius' ) ) /*Additional parameters*/ );
+# }
+# wpml-name: 6e00cf818d878941ac6f1a74f1c73ebf
+msgid "Link your Social Accounts"
+msgstr "Verknüpfung der Social Accounts"
+
+# function LoginRadiusSocialLinkingWidget(){
+# parent::WP_Widget( 'LoginRadiusSocialLinking' /*unique id*/, 'LoginRadius - Social Linking' /*title displayed at admin panel*/, array( 'description' => __( 'Link your Social Accounts', 'LoginRadius' ) ) /*Additional parameters*/ );
+# }
+# wpml-name: ebb6461995810885a90d1b0277865e06
+msgid "Inactive (Click to Enable)"
+msgstr "Inaktiv (Klicken Sie auf aktivieren)"
+
+# function LoginRadiusSocialLinkingWidget(){
+# parent::WP_Widget( 'LoginRadiusSocialLinking' /*unique id*/, 'LoginRadius - Social Linking' /*title displayed at admin panel*/, array( 'description' => __( 'Link your Social Accounts', 'LoginRadius' ) ) /*Additional parameters*/ );
+# }
+# wpml-name: bb0404046efcd0861a571598201ed47a
+msgid "Active (Click to Disable)"
+msgstr "Aktiv (Klicken Sie auf deaktivieren)"
+
+# function loginRadiusChangeStatus ( userId, currentStatus ) {
+# jQuery ( '#loginRadiusStatus'+userId ) .html ( '' );
+# jQuery.ajax ( {
+# wpml-name: c360639f51cb2625a9439974e865a683
+msgid "Please wait"
+msgstr "Bitte warten"
+
+# if ( count( $totalAccounts ) != 1 ) {
+# $html .= '';
+# }
+# wpml-name: 1063e38cb53d94d386f21227fcd84717
+msgid "Remove"
+msgstr "Entfernen"
+
+# $html .= '
+# wpml-name: 2f00f7d89c781050aa2116f3dbdfa619
+msgid "By adding another account, you can log in with the new account as well!"
+msgstr ""
+"Nach dem Hinzufügen eines neuen Kontos kannst du dich auch mit diesem "
+"anmelden."
+
+#
+#
+#
+# wpml-name: 0303c2cf3fef70a33478885e59dd877a
+msgid "Link your account"
+msgstr "Verknüpfe dein Konto"
+
+# $html .= '
+# />
+# wpml-name: ae0c445ffd90c59817a861c4aed55b6c
+msgid "Hide for logged in users:"
+msgstr "Für eingeloggte Benutzer verbergen:"
+
+#
+#
+#
+# wpml-name: 02c8f6b8cad10a56f20f88c211138236
+msgid "After widget content:"
+msgstr "Inhalt nach dem Widget:"
+
+#
+#
+#
+# wpml-name: a40aa545e56a61acce9951bc94659ddb
+msgid "Before widget content:"
+msgstr "Inhalt vor dem Widget:"
+
+#
+#
+#
+# wpml-name: 51ec9bf4aaeab1b25bb57f9f8d4de557
+msgid "Title:"
+msgstr "Titel:"
+
+# function LoginRadiusHorizontalShareWidget(){
+# parent::WP_Widget( 'LoginRadiusHorizontalShare' /*unique id*/, 'LoginRadius - Horizontal Sharing' /*title displayed at admin panel*/, array( 'description' => __( 'Share post/page with Facebook, Twitter, Yahoo, Google and many more', 'LoginRadius' ) ) /*Additional parameters*/ );
+# }
+# wpml-name: 3f55e2f720ce2b4754df7d2597c71bad
+msgid "Share post/page with Facebook, Twitter, Yahoo, Google and many more"
+msgstr ""
+"Teile Seiten/Postings mit Facebook, Twitter, Yahoo, Google und vielen "
+"anderen."
+
+# function LoginRadiusWidget(){
+# parent::WP_Widget( 'LoginRadius' /*unique id*/, 'LoginRadius - Social Login' /*title displayed at admin panel*/, array( 'description' => __( 'Login or register with Facebook, Twitter, Yahoo, Google and many more', 'LoginRadius' ) ) /*Additional parameters*/ );
+# }
+# wpml-name: cd3d9016079bac236696700d70c3515a
+msgid "Login or register with Facebook, Twitter, Yahoo, Google and many more"
+msgstr ""
+"Einloggen oder Registrieren mit Facebook, Twitter, Yahoo, Google und vielen "
+"anderen"
+
+#
+#
+#
+# wpml-name: 31fde7b05ac8952dacf4af8a704074ec
+msgid "Preview"
+msgstr "Vorschau"
+
+# ?>
+#
+#
+# wpml-name: f5d6040ed78ca86ddc73296a49b18510
+msgid "Save Changes"
+msgstr "Änderungen speichern"
+
+# ?>
+#
+#
+# wpml-name: 112ec40ca9c53ed4f2b76bb50e83481a
+msgid ""
+"Enter a number (For example - 200). It will set the 'top' CSS attribute of "
+"the interface to the value specified. Increase in the number pushes "
+"interface towards bottom."
+msgstr ""
+"Geben Sie eine Zahl (zum Beispiel - 200). Es wird das 'top' CSS-Attribut der "
+"Schnittstelle auf den angegebenen Wert gesetzt. Erhöhung der Zahl verschiebt "
+"die Schnittstelle Richung unten."
+
+# ?>
+#
+#
+# wpml-name: 93c5a34a2ba371d5c013088045e5c4d0
+msgid ""
+"Specify distance of vertical sharing interface from top (Leave empty for "
+"default behaviour)"
+msgstr ""
+"Gib den Abstand von der vertikalen Sharing-Schnittstelle von oben ein "
+"(Lasse ihn für das Standard-Verhalten leer)"
+
+#
+#
+#
+# wpml-name: 2c34cd388cc367df47f856195a67ba6c
+msgid "Select the position of the Social Sharing widget"
+msgstr "Wähle die Position des Social Sharing Widgets"
+
+#
+#
+#
+# wpml-name: 46f2f9ed693bf5688de3f6996727b8aa
+msgid "Choose a sharing theme"
+msgstr "Wähle ein Theme"
+
+#
+#
+#
+# wpml-name: 1a24b9ec2a26d21b1d69590510bff5ec
+msgid "Do you want to enable Vertical Social Sharing at your website?"
+msgstr "Soll Vertical Social Sharing auf der Webseite angewendet werden?"
+
+# />
+# />
+#
+# wpml-name: c6377da6d7f7a9073f35f9d07422da59
+msgid "Show on post excerpts "
+msgstr "In Ausschnitten der Beiträge anzeigen"
+
+#
+# />
+# />
+# wpml-name: 66c44d32f6486d018f483d6a6f309c82
+msgid "Show on pages"
+msgstr "In Seiten azeigen"
+
+# />
+# />
+#
+# wpml-name: 8a9e53ec970f408a406686a275684265
+msgid "Show on posts"
+msgstr "In den Beiträgen anzeigen"
+
+#
+# />
+# />
+# wpml-name: 1b8e1f211c6790b27a8e41c3eb649f49
+msgid "Show on homepage"
+msgstr "Auf der Homepage anzeigen"
+
+#
+# />
+# />
+# wpml-name: 85283e063bf0c10bdca11bd1cb9f7394
+msgid "What area(s) do you want to show the social sharing widget?"
+msgstr "Wo soll der Social Sharing Widget angezeigt werden?"
+
+# />
+# />
+#
+# wpml-name: 5b8f8501c8150bd45ea3c995c8d5f33c
+msgid "Show at the bottom of content"
+msgstr "Inhalt im unteren Bereich anzeigen"
+
+#
+# />
+# />
+# wpml-name: c7fca6183c520a8297e434a4463d1ce7
+msgid "Show at the top of content"
+msgstr "Inhalt im oberen Bereich anzeigen"
+
+#
+#
+#
+# wpml-name: 30396b541edabdb7d94874a34713194c
+msgid "Select the position of the Social sharing interface"
+msgstr "Wähle die Position des Social Sharing Interfaces."
+
+#
+#
+#
+# wpml-name: 9be51c544ec4a9e30b96404acdeaec02
+msgid "In what order do you want your sharing networks listed?"
+msgstr "In welcher Reichenfolge sollen deine Sharing Networks gelistet werden?"
+
+#
+#
.
+#
+# wpml-name: ddfaacf7fd2e305cc37873fb98379378
+msgid "You can select only nine providers"
+msgstr "Du kannst nur 9 Anbieter auswählen"
+
+#
+#
.
+#
+# wpml-name: ba1988723d8abf292859f4ba57dc5095
+msgid ""
+"What Sharing Networks do you want to show in the sharing widget? (All other "
+"sharing networks will be shown as part of LoginRadius sharing icon)"
+msgstr ""
+"Welche Sharing Networks willst du im Sharing Widget anzeigen? (Alle anderen "
+"Sharing Networks werden als Teil des LoginRadius Sharing-Symbols angezeigt)"
+
+#
+#
+#
+# wpml-name: 53560309e0888e9dfce912daae1595fc
+msgid "Share it now!"
+msgstr "Teile es jetzt!"
+
+#
+#
+#
+# wpml-name: 40b9bf0f4912d00d8a0b166a9fd34347
+msgid ""
+"Enter the text that you wish to be displayed above the Social Sharing "
+"Interface. Leave the field blank if you don't want any text to be displayed."
+msgstr ""
+"Gib den Text ein der über dem Social Sharing Interface angezeigt werden "
+"soll. Das Feld leer lassen, wenn kein Text angezeigt werden soll."
+
+#
+#
+#
+# wpml-name: e0a7f1602d8f4ff65dc2f5f64029771e
+msgid "Choose a Sharing theme"
+msgstr "Wähle ein Theme"
+
+#
+#
+#
+# wpml-name: 9974f3cfe499f69959a1ab5bc67e6c88
+msgid "Do you want to enable Horizontal Social Sharing at your website?"
+msgstr "Soll Horizontal Social Sharing auf deiner Webseite aktiviert werden?"
+
+#
+#
+#
+# wpml-name: 0cec3e1ef782ac1dee4613f221d16d90
+msgid ""
+"What Social Sharing widget theme would you like to use across your website? "
+"(Horizontal and Vertical themes can be enabled simultaneously)"
+msgstr ""
+"Welches Social Sharing Widget Theme soll über deine gesamte Webseite benutzt "
+"werden? (Horizontal und Vertikal Themes können gleichzeitig aktiviert "
+"werden)."
+
+#
+#
+#
+# wpml-name: 2b18a3d3965ba22dff316ecad492156a
+msgid "Social Sharing Theme Selection"
+msgstr "Auswahl des Social Sharing Theme "
+
+#
+# />
+#
+# wpml-name: ea23c7d208eb199428d078900275c967
+msgid "Individual page associated with that Social sharing interface"
+msgstr "Eigene Seite, verknüpft mit diesem Social Sharing Interface."
+
+#
+# />
+#
+# wpml-name: 7b84173263a6668b5e1ef0eaed4f6927
+msgid "Page where all the social sharing interfaces are shown"
+msgstr "Seite, wo die Social Sharing Interfaces angezeigt werden sollen."
+
+#
+#
+#
+# wpml-name: c3b9fbf81b32a2468fb42812632b2806
+msgid ""
+"Which page do you want to get shared when multiple social sharing interfaces "
+"are shown on a page/home page?"
+msgstr ""
+"Welche Seite soll geteilt werden, wenn mehrere Social Sharing Interfaces auf "
+"der Webseite/Homepage angezeigt werden?"
+
+#
+# ?
+#
+# wpml-name: d86c6928e40b22fb260f7ae637b5520a
+msgid "Do you want to enable Social Sharing for your website"
+msgstr "Möchtest du Social Sharing für deine Webseite aktivieren?"
+
+#
+#
+#
+# wpml-name: a26e64749b10304b42d5f4d82a4f3a2f
+msgid "Basic Social Sharing Settings"
+msgstr "Basiseinstellungen für Social Sharing"
+
+# />
+# />
+#
+# wpml-name: 20434a755d9f030f51909313fdcc8a6b
+msgid "NO, I want to approve the comments per my discretion"
+msgstr "Nein, ich wil die Kommentare für meine Diskretion genehmigen."
+
+#
+#
+#
+# wpml-name: 6ea416e515b3eb445f66dc6d0c9158ac
+msgid "Do you want to automatically approve comments posted via Social Login?"
+msgstr ""
+"Sollen Kommentare die per Social Login erfolgen,automatisch genehmigt werden?"
+
+#
+#
+#
+# wpml-name: 3a894797a1b4f2c892a6684dea766a0f
+msgid "Before the comment box"
+msgstr "Vor der Kommentarbox"
+
+#
+#
+#
+# wpml-name: a66e7f1202e148eabec476659b37a963
+msgid "Before the comment form input fields"
+msgstr "Vor den Kommentar-Formular-Eingabefeldern"
+
+#
+#
+#
+# wpml-name: 830189f6121fc53a4ac5b4c48e4120ff
+msgid "After the 'Leave a Reply' caption"
+msgstr "Nach dem Titel \"Hinterlassen Sie eine Antwort ' "
+
+#