<?php
class NHP_Options_google_webfonts extends NHP_Options{
/**
* Field Constructor.
*
* Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function
*
* @since NHP_Options 1.0
*/
function __construct($field = array(), $value ='', $parent){
parent::__construct($parent->sections, $parent->args, $parent->extra_tabs);
$this->field = $field;
$this->value = $value;
$this->field['fonts'] = array();
$fonts = get_transient('nhp-opts-google-webfonts');
if(!is_array(json_decode($fonts))){
$fonts = wp_remote_retrieve_body(wp_remote_get('https://www.googleapis.com/webfonts/v1/webfonts?key='.$this->args['google_api_key']));
set_transient('nhp-opts-google-webfonts', $fonts, 60 * 60 * 24);
}
$this->field['fonts'] = json_decode($fonts);
}//function
/**
* Field Render Function.
*
* Takes the vars and outputs the HTML for the field in the settings
*
* @since NHP_Options 1.0
*/
function render(){
$class = (isset($this->field['class']))?'class="'.$this->field['class'].'" ':'';
echo '<p class="description" style="color:red;">'.__('The fonts provided below are free to use custom fonts from the <a href="http://www.google.com/webfonts" target="_blank">Google Web Fonts directory</a>.<br/>Please <a href="http://www.google.com/webfonts" target="_blank">browse the directory</a> to preview a font, then select your choice below.', 'nhp-opts').'</p>';
echo '<select id="'.$this->field['id'].'" name="'.$this->args['opt_name'].'['.$this->field['id'].']" '.$class.'rows="6" >';
foreach($this->field['fonts']->items as $cut){
foreach($cut->variants as $variant){
echo '<option value="'.$cut->family.':'.$variant.'" '.selected($this->value, $cut->family.':'.$variant, false).'>'.$cut->family.' - '.$variant.'</option>';
}
}
echo '</select>';
echo (isset($this->field['desc']) && !empty($this->field['desc']))?' <span class="description">'.$this->field['desc'].'</span>':'';
}//function
}//class
?>