/** * Verify the provided Flickr API key by calling Flickr's API * * @author Niall Kennedy * @since 0.1 * @param string $api_key Flickr API key input into the settings field * @return string $api_key Flickr API key, or blank if validation failed */ function flickr_settings_api_key_field_sanitize($api_key) { $api_key = trim($api_key); if (empty($api_key) || !ctype_alnum($api_key)) { return ''; } if (!class_exists('FlickrRequest')) { require_once dirname(__FILE__) . '/class.flickr.php'; } if (FlickrRequest::validate_api_key($api_key) === true) { return $api_key; } else { add_settings_error('flickr_api_key', 'flickr-api-key-invalid', __('Invalid Flickr API key: Flickr rejected the key.')); return ''; } }
/** * Store multiple sizes available for the given photo identifier on Flickr * * @param FlickrRequest $request existing Flickr request if you would like to reuse * @return FlickrRequest Flickr request object for reuse */ private function load_sizes($request = null) { if (is_null($request)) { $request = new FlickrRequest(); } $sizes = $request->get_photo_sizes($this->id); if (is_wp_error($sizes) || empty($sizes)) { return $sizes; } if (isset($sizes->size)) { $sizes = $sizes->size; } else { return ''; } $this->sizes = array(); foreach ($sizes as $size) { if (isset($size->media) && $size->media === 'photo') { $this->sizes[absint($size->width)] = array('height' => absint($size->height), 'url' => esc_url_raw($size->source, array('http', 'https'))); } } unset($sizes); return $request; }