$record ) { $valid_record = true; $valid = $valid && ( isset( $record['type'] ) ); $valid_record = $valid_record && ( isset( $record['type'] ) ); $valid = $valid && ( isset( $record['slug'] ) ); $valid_record = $valid_record && ( isset( $record['slug'] ) ); $valid = $valid && ( isset( $record['version'] ) ); $valid_record = $valid_record && ( isset( $record['version'] ) ); $valid = $valid && ( isset( $record['locale'] ) ); $valid_record = $valid_record && ( isset( $record['locale'] ) ); if ( ! $valid_record ) { array_push( $to_unset, $key ); } } if ( ! $valid ) { foreach ( $to_unset as $key ) { unset( $array[$key] ); } } return $valid; } /** * Function which prepares output result * * @package lp-update * * @param string $method HTTP method * @param string $type plugin, theme or core * @param string $slug slug of plugin or theme * @param string $version plugin, theme or core version * @param int $revision revision of translation * @param string $locale locale of this translation * @return object or string result for one entry */ function output_result( $method, $type, $slug, $version, $revision, $locale ) { global $revisions_cache; if ( NULL == $revision ) { $revision = 0; } if ( $type == 'core' || $type == 'plugin' || $type == 'theme' ) { $new_revision = $revisions_cache->get_revision( $type, $slug, $version, $locale ); } if ( $new_revision['revision'] > $revision && 'GET' == $method ) { $result = "Type: $type\n"; $result .= "Name: {$new_revision['name']}\n"; $result .= "Slug: $slug\n"; $result .= "Textdomain: {$new_revision['textdomain']}\n"; $result .= "Version: $version\n"; $result .= "New Revision: {$new_revision['revision']}\n"; $result .= "Locale: $locale\n"; $result .= "Translated Percent: {$new_revision['percent']}\n"; if ( $new_revision != NULL ) { $result .= 'URL: http://translate.wordpress.org/projects/wp-' . $type . 's/' . $new_revision['textdomain'] . '/dev/' . $locale . '/default' . "\n"; $result .= PATH_TO_TRANSLATIONS . '/' . $type . 's/wp-' . $type . 's-' . $new_revision['textdomain'] . '-dev-' . $locale . '-' . $version . '-' . $new_revision['revision'] . '.zip' . "\n"; $result .= $new_revision['percent']; } else { $result .= "The translation for this plugin/theme does not exist.\n"; } echo "\n\n"; return $result; } else if ( $new_revision['revision'] > $revision && 'POST' == $method ) { $result['type'] = $type; $result['name'] = $new_revision['name']; $result['slug'] = $slug; $result['textdomain'] = $new_revision['textdomain']; $result['version'] = $version; $result['new_revision'] = $new_revision['revision']; $result['locale'] = $locale; $result['percent'] = $new_revision['percent']; if ( $new_revision != NULL ) { $result['url'] = 'http://translate.wordpress.org/projects/wp-' . $type . 's/' . $result['textdomain'] . '/dev/' . $locale . '/default'; $result['package'] = PATH_TO_TRANSLATIONS . '/' . $type . 's/wp-' . $type . 's-' . $new_revision['textdomain'] . '-dev-' . $locale . '-' . $version . '-' . $new_revision['revision'] . '.zip'; } else { $result['url'] = NULL; $result['package'] = NULL; } return (object) $result; } else { return NULL; } } require_once ( dirname( __FILE__ ) . '/config.php' ); require_once ( dirname( __FILE__ ) . '/revisions-cache.php' ); $batch = isset( $_REQUEST['batch'] ) ? $_REQUEST['batch'] : NULL; if ( isset( $batch ) ) { if ( 1 == $batch ) { $array = isset( $_POST['array'] ) ? $_POST['array'] : NULL; $array = unserialize( $array ); $array = (array) $array; $valid = validate_array( $array ); if ( $valid ) { $output = array(); foreach ( $array as $record ) { if ( ! isset( $record['revision'] ) ) $record['revision'] = NULL; $result = output_result( 'POST', $record['type'], $record['slug'], $record['version'], $record['revision'], $record['locale'] ); if ( NULL !== $result ) { $output[$record['slug']] = $result; } } } else { $output = 'fail'; } echo serialize( $output ); } else { if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) { $array = isset( $_POST['array'] ) ? $_POST['array'] : NULL; $array = unserialize( $array ); $array = (array) $array; $type = isset( $array[0]['type'] ) ? $array[0]['type'] : NULL; $slug = isset( $array[0]['slug'] ) ? $array[0]['slug'] : NULL; $version = isset( $array[0]['version'] ) ? $array[0]['version'] : NULL; $revision = isset( $array[0]['revision'] ) ? $array[0]['revision'] : NULL; $locale = isset( $array[0]['locale'] ) ? $array[0]['locale'] : NULL; $result = output_result( 'POST', $type, $slug, $version, $revision, $locale ); if ( NULL !== $result ) { echo serialize( $result ); } else { echo serialize ( 'fail' ); } } elseif ( 'GET' == $_SERVER['REQUEST_METHOD'] ) { $type = isset( $_REQUEST['type'] ) ? $_REQUEST['type'] : NULL; $slug = isset( $_REQUEST['slug'] ) ? $_REQUEST['slug'] : NULL; $version = isset( $_REQUEST['version'] ) ? $_REQUEST['version'] : NULL; $revision = isset( $_REQUEST['revision'] ) ? $_REQUEST['revision'] : NULL; $locale = isset( $_REQUEST['locale'] ) ? $_REQUEST['locale'] : NULL; echo output_result( 'GET', $type, $slug, $version, $revision, $locale ); } } } else { $type = isset( $_REQUEST['type'] ) ? $_REQUEST['type'] : NULL; $slug = isset( $_REQUEST['slug'] ) ? $_REQUEST['slug'] : NULL; $version = isset( $_REQUEST['version'] ) ? $_REQUEST['version'] : NULL; $revision = isset( $_REQUEST['revision'] ) ? $_REQUEST['revision'] : NULL; $locale = isset( $_REQUEST['locale'] ) ? $_REQUEST['locale'] : NULL; echo output_result( 'GET', $type, $slug, $version, $revision, $locale ); } ?>