<?php
require_once dirname( __FILE__ ) . '/class.json-api-site-jetpack-base.php';
require_once dirname( __FILE__ ) . '/class.json-api-post-jetpack.php';
// this code runs on Jetpack (.org) sites
class Jetpack_Site extends Abstract_Jetpack_Site {
protected function get_mock_option( $name ) {
return get_option( 'jetpack_'.$name );
}
protected function get_constant( $name ) {
if ( defined( $name) ) {
return constant( $name );
}
return null;
}
protected function main_network_site() {
return network_site_url();
}
protected function wp_version() {
global $wp_version;
return $wp_version;
}
protected function max_upload_size() {
return wp_max_upload_size();
}
protected function wp_memory_limit() {
return wp_convert_hr_to_bytes( WP_MEMORY_LIMIT );
}
protected function wp_max_memory_limit() {
return wp_convert_hr_to_bytes( WP_MAX_MEMORY_LIMIT );
}
protected function is_main_network() {
return Jetpack::is_multi_network();
}
public function is_multisite() {
return (bool) is_multisite();
}
public function is_single_user_site() {
return (bool) Jetpack::is_single_user_site();
}
protected function is_version_controlled() {
return Jetpack_Sync_Functions::is_version_controlled();
}
protected function file_system_write_access() {
return Jetpack_Sync_Functions::file_system_write_access();
}
protected function current_theme_supports( $feature_name ) {
return current_theme_supports( $feature_name );
}
protected function get_theme_support( $feature_name ) {
return get_theme_support( $feature_name );
}
public function get_updates() {
return (array) Jetpack::get_updates();
}
function get_id() {
return $this->platform->token->blog_id;
}
function has_videopress() {
// TODO - this only works on wporg site - need to detect videopress option for remote Jetpack site on WPCOM
$videopress = Jetpack_Options::get_option( 'videopress', array() );
if ( isset( $videopress['blog_id'] ) && $videopress['blog_id'] > 0 ) {
return true;
}
return false;
}
function upgraded_filetypes_enabled() {
return true;
}
function is_mapped_domain() {
return true;
}
function is_redirect() {
return false;
}
function is_following() {
return false;
}
function has_wordads() {
// TODO: any way to detect wordads on the site, or does it need to be modified on the way through?
return false;
}
function get_frame_nonce() {
return false;
}
function is_headstart_fresh() {
return false;
}
function allowed_file_types() {
$allowed_file_types = array();
// http://codex.wordpress.org/Uploading_Files
$mime_types = get_allowed_mime_types();
foreach ( $mime_types as $type => $mime_type ) {
$extras = explode( '|', $type );
foreach ( $extras as $extra ) {
$allowed_file_types[] = $extra;
}
}
return $allowed_file_types;
}
function is_private() {
return false;
}
function get_plan() {
return false;
}
function get_subscribers_count() {
return 0; // special magic fills this in on the WPCOM side
}
function get_capabilities() {
return false;
}
function get_locale() {
return get_bloginfo( 'language' );
}
function is_jetpack() {
return true;
}
public function get_jetpack_version() {
return JETPACK__VERSION;
}
function get_ak_vp_bundle_enabled() {}
function get_jetpack_seo_front_page_description() {
return Jetpack_SEO_Utils::get_front_page_meta_description();
}
function get_jetpack_seo_title_formats() {
return Jetpack_SEO_Titles::get_custom_title_formats();
}
function get_verification_services_codes() {
return get_option( 'verification_services_codes', null );
}
function get_podcasting_archive() {
return null;
}
/**
* Post functions
*/
function wrap_post( $post, $context ) {
return new Jetpack_Post( $this, $post, $context );
}
}