コード例 #1
0
ファイル: class-kirki-output.php プロジェクト: wpmu/maera
 /**
  * The class constructor.
  *
  * @var 	string		the setting ID.
  * @var 	string		theme_mod / option
  * @var 	array 		an array of arrays of the output arguments.
  * @var 	mixed		a callable function.
  */
 public static function css($setting = '', $type = 'theme_mod', $output = array(), $callback = '', $return_array = false)
 {
     // No need to proceed any further if we don't have the required arguments.
     if ('' == $setting || empty($output)) {
         return;
     }
     self::$settings = $setting;
     self::$type = $type;
     self::$output = Kirki_Field::sanitize_output(array('output' => $output));
     self::$value = self::get_value();
     self::$callback = $callback;
     return true === $return_array ? self::styles() : self::styles_parse(self::add_prefixes(self::styles()));
 }
コード例 #2
0
 /**
  * loop through all fields and create an array of style definitions
  */
 public function loop_controls()
 {
     $fields = Kirki::$fields;
     $css = array();
     // Early exit if no fields are found.
     if (empty($fields)) {
         return;
     }
     foreach ($fields as $field) {
         // Only continue if $field['output'] is set
         if (isset($field['output']) && 'background' != $field['type']) {
             $css = array_merge_recursive($css, Kirki_Output::css(Kirki_Field::sanitize_settings_raw($field), Kirki_Field::sanitize_type($field), Kirki_Field::sanitize_output($field), isset($field['output']['callback']) ? $field['output']['callback'] : '', true));
         }
     }
     return Kirki_Output::styles_parse(Kirki_Output::add_prefixes($css));
 }
コード例 #3
0
ファイル: test-kirki-field.php プロジェクト: vulinhpc/kirki
 public function test_sanitize_output()
 {
     $this->assertEquals('foo', Kirki_Field::sanitize_output(array('output' => 'foo')));
     $this->assertEquals(array(array('element' => 'body > #main', 'property' => 'font-family', 'units' => '', 'media_query' => 'global', 'sanitize_callback' => null)), Kirki_Field::sanitize_output(array('output' => array('element' => 'body > #main', 'property' => 'font-family'))));
     $this->assertEquals(array(array('element' => 'body > #main', 'property' => 'font-size', 'units' => 'px !important', 'media_query' => '@media (min-width: 700px) and (orientation: landscape)', 'sanitize_callback' => null)), Kirki_Field::sanitize_output(array('output' => array(array('element' => 'body > #main', 'property' => 'font-size', 'units' => 'px !important', 'prefix' => '@media (min-width: 700px) and (orientation: landscape) {', 'suffix' => '}')))));
 }
コード例 #4
0
 public function google_link()
 {
     // Get the array of fields
     $fields = Kirki::$fields;
     // Early exit if no fields are found.
     if (empty($fields)) {
         return;
     }
     $fonts = array();
     foreach ($fields as $field) {
         // Sanitize the field's output & settings_raw items.
         $field['output'] = Kirki_Field::sanitize_output($field);
         $field['settings_raw'] = Kirki_Field::sanitize_settings_raw($field);
         // Make sure output is properly formatted
         if (isset($field['output']) && is_array($field['output'])) {
             foreach ($field['output'] as $output) {
                 if (in_array($output['property'], array('font-family', 'font-weight', 'font-subset'))) {
                     // The value of this control
                     $value = Kirki::get_option($field['settings_raw']);
                     if ('font-family' == $output['property']) {
                         // Add the font-family to the array
                         $fonts[]['font-family'] = $value;
                     } else {
                         if ('font-weight' == $output['property']) {
                             // Add font-weight to the array
                             $fonts[]['font-weight'] = $value;
                         } else {
                             if ('font-subset' == $output['property']) {
                                 // add font subsets to the array
                                 $fonts[]['subsets'] = $value;
                             }
                         }
                     }
                 }
             }
         }
     }
     foreach ($fonts as $font) {
         // Do we have font-families?
         if (isset($font['font-family'])) {
             $font_families = !isset($font_families) ? array() : $font_families;
             $font_families[] = $font['font-family'];
             if (Kirki_Toolkit::fonts()->is_google_font($font['font-family'])) {
                 $has_google_font = true;
             }
         }
         // Do we have font-weights?
         if (isset($font['font-weight'])) {
             $font_weights = !isset($font_weights) ? array() : $font_weights;
             $font_weights[] = $font['font-weight'];
         }
         // Do we have font-subsets?
         if (isset($font['subsets'])) {
             $font_subsets = !isset($font_subsets) ? array() : $font_subsets;
             $font_subsets[] = $font['subsets'];
         }
     }
     // Make sure there are no empty values and define defaults.
     $font_families = !isset($font_families) || empty($font_families) ? false : $font_families;
     $font_weights = !isset($font_weights) || empty($font_weights) ? '400' : $font_weights;
     $font_subsets = !isset($font_subsets) || empty($font_subsets) ? 'all' : $font_subsets;
     if (!isset($has_google_font) || !$has_google_font) {
         $font_families = false;
     }
     // Return the font URL.
     return $font_families ? Kirki_Toolkit::fonts()->get_google_font_uri($font_families, $font_weights, $font_subsets) : false;
 }