Font Organizer - Version 1.2.0

Version Description

  • Added fonts in your website and font sizes selection in the editor (tinyMCE & tinyMCE Advanced).
  • Added option to delete of fonts in your website in section 5.
  • Added validation in required fields.
  • Added link to FAQs in Google API key field.
  • Added support Wordpress 4.7 version.
  • Fixed PHP 7 requirment.
  • Added more FAQs.
  • Fixed a few minor bugs.
  • Better usability and general guiding.
Download this release

Release Info

Developer hivewebstudios
Plugin Icon 128x128 Font Organizer
Version 1.2.0
Comparing to
See all releases

Code changes from version 1.1.0 to 1.2.0

assets/css/settings.css CHANGED
@@ -6,11 +6,10 @@
6
 
7
  /* Back to top styles */
8
  .go-top, .go-top:focus {
9
- position: fixed;
10
  bottom: 2em;
11
  text-decoration: none;
12
  font-size: 12px;
13
- padding: 1em;
14
  display: none;
15
  z-index: 999999;
16
  opacity: 0.4;
@@ -18,9 +17,9 @@
18
  -moz-transition: opacity .25s ease-in-out;
19
  -webkit-transition: opacity .25s ease-in-out;
20
  box-shadow: none;
21
- width: 32px;
22
- height: 32px;
23
- background-image: url(../images/back-top.png);
24
  background-repeat: no-repeat;
25
  background-size: contain;
26
  background-position: right top;
@@ -49,4 +48,11 @@
49
  color: green;
50
  text-decoration: none;
51
  box-shadow: none;
 
 
 
 
 
 
 
52
  }
6
 
7
  /* Back to top styles */
8
  .go-top, .go-top:focus {
9
+ position: fixed;
10
  bottom: 2em;
11
  text-decoration: none;
12
  font-size: 12px;
 
13
  display: none;
14
  z-index: 999999;
15
  opacity: 0.4;
17
  -moz-transition: opacity .25s ease-in-out;
18
  -webkit-transition: opacity .25s ease-in-out;
19
  box-shadow: none;
20
+ width: 48px;
21
+ height: 48px;
22
+ background-image: url(../images/back-top.png);
23
  background-repeat: no-repeat;
24
  background-size: contain;
25
  background-position: right top;
48
  color: green;
49
  text-decoration: none;
50
  box-shadow: none;
51
+ }
52
+
53
+ label.required:after {
54
+ color: #d00;
55
+ content: "*";
56
+ margin: 0 5px;
57
+ font-size: 17px;
58
  }
classes/class-FontsDatabaseHelper.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined( 'ABSPATH' ) or die( 'Jog on!' );
3
+
4
+ /**
5
+ * This class is designed to get information from the database using simple methods in order
6
+ * to save the data for same requests for cache purposes.
7
+ */
8
+ class FontsDatabaseHelper {
9
+ private static $usable_fonts;
10
+ private static $custom_elements;
11
+
12
+ public static function get_usable_fonts(){
13
+
14
+ // If usable fonts is not yet set, get it from the database.
15
+ if(!self::$usable_fonts){
16
+ global $wpdb;
17
+
18
+ self::$usable_fonts = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . FO_USABLE_FONTS_DATABASE . ' ORDER BY id DESC');
19
+ }
20
+
21
+ return self::$usable_fonts;
22
+ }
23
+
24
+ public static function get_custom_elements(){
25
+
26
+ // If usable fonts is not yet set, get it from the database.
27
+ if(!self::$custom_elements){
28
+ global $wpdb;
29
+
30
+ self::$custom_elements = $wpdb->get_results('SELECT e.id, u.name, e.font_id, e.custom_elements, e.important FROM ' . $wpdb->prefix . FO_ELEMENTS_DATABASE . ' as e LEFT OUTER JOIN ' . $wpdb->prefix . FO_USABLE_FONTS_DATABASE . ' as u ON ' . ' e.font_id = u.id ORDER BY e.font_id DESC');
31
+ }
32
+
33
+ return self::$custom_elements;
34
+ }
35
+ }
36
+ ?>
font-organizer.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
  /**
3
  * @package Font_Organizer
4
- * @version 1.1.0
5
  */
6
  /*
7
  Plugin Name: Font Organizer
8
  Plugin URI: https://wordpress.org/plugins/font-organizer/
9
  Description: Font Organizer is the complete solution for font implementation in WordPress websites.
10
  Author: Hive
11
- Version: 1.1.0
12
  Author URI: https://hivewebstudios.com
13
  Text Domain: font-organizer
14
  */
@@ -19,18 +19,41 @@ define( 'FO_ELEMENTS_DATABASE', 'fo_elements' );
19
  define( 'FO_DEFAULT_ROLE', 'administrator' );
20
 
21
  global $fo_db_version;
22
- $fo_db_version = '1.1.0';
23
- global $css_full_file_path;
24
- global $css_full_url_path;
25
- global $css_directory_path;
26
- $css_full_file_path = wp_upload_dir()['basedir'] . '/font-organizer' . '/fo-fonts.css';
27
- $css_full_url_path = wp_upload_dir()['baseurl'] . '/font-organizer' . '/fo-fonts.css';
28
- $css_directory_path = wp_upload_dir()['basedir'] . '/font-organizer';
 
 
 
 
 
 
29
 
30
  function fo_update_db_check() {
31
  global $fo_db_version;
32
  if ( get_site_option( 'fo_db_version' ) != $fo_db_version ) {
33
  fo_install();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  }
35
  }
36
 
@@ -45,27 +68,59 @@ function fo_load_textdomain() {
45
  }
46
 
47
  function fo_init(){
48
- global $css_full_file_path;
49
 
50
  if( is_admin() ){
51
- add_filter('upload_mimes', 'fo_allow_upload_types');
52
- add_filter( 'plugin_action_links', 'fo_add_action_plugin', 10, 5 );
53
-
54
- include FO_ABSPATH . 'helpers.php';
55
 
56
- include FO_ABSPATH . 'settings.php';
 
 
 
 
 
 
 
 
57
 
58
  $settings_page = new FoSettingsPage();
59
  }else{
60
- if(file_exists($css_full_file_path)){
61
- add_action( 'wp_enqueue_scripts', 'fo_enqueue_fonts_css' );
62
- }
63
  }
64
  }
65
 
66
- function fo_enqueue_fonts_css(){
67
- global $css_full_url_path;
68
- wp_enqueue_style('fo-fonts', $css_full_url_path);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  }
70
 
71
  function fo_allow_upload_types($existing_mimes = array()){
@@ -120,7 +175,7 @@ function fo_install() {
120
  dbDelta( $sql );
121
 
122
  // Set the db version to current.
123
- add_option( 'fo_db_version', $fo_db_version );
124
 
125
  // Set roles
126
  $role = get_role( 'administrator' );
1
  <?php
2
  /**
3
  * @package Font_Organizer
4
+ * @version 1.2.0
5
  */
6
  /*
7
  Plugin Name: Font Organizer
8
  Plugin URI: https://wordpress.org/plugins/font-organizer/
9
  Description: Font Organizer is the complete solution for font implementation in WordPress websites.
10
  Author: Hive
11
+ Version: 1.2.0
12
  Author URI: https://hivewebstudios.com
13
  Text Domain: font-organizer
14
  */
19
  define( 'FO_DEFAULT_ROLE', 'administrator' );
20
 
21
  global $fo_db_version;
22
+ $fo_db_version = '1.2.0';
23
+
24
+ global $fo_css_directory_path;
25
+ $fo_css_directory_path = wp_upload_dir()['basedir'] . '/font-organizer';
26
+
27
+ global $fo_css_base_url_path;
28
+ $fo_css_base_url_path = wp_upload_dir()['baseurl'] . '/font-organizer';
29
+
30
+ global $fo_declarations_css_file_name;
31
+ $fo_declarations_css_file_name = 'fo-declarations.css';
32
+
33
+ global $fo_elements_css_file_name;
34
+ $fo_elements_css_file_name = 'fo-elements.css';
35
 
36
  function fo_update_db_check() {
37
  global $fo_db_version;
38
  if ( get_site_option( 'fo_db_version' ) != $fo_db_version ) {
39
  fo_install();
40
+
41
+ // As of 1.2 we split the css file to declartions and elements.
42
+ // Create the files and delete the old fo-fonts.css.
43
+ global $fo_css_directory_path;
44
+
45
+ require_once FO_ABSPATH . 'helpers.php';
46
+
47
+ require_once FO_ABSPATH . 'settings.php';
48
+
49
+ $settings_page = new FoSettingsPage();
50
+ $settings_page->init();
51
+ $settings_page->create_css_file(true);
52
+
53
+ // Delete the old file.
54
+ if(file_exists($fo_css_directory_path . '/fo-fonts.css'))
55
+ unlink($fo_css_directory_path . '/fo-fonts.css');
56
+
57
  }
58
  }
59
 
68
  }
69
 
70
  function fo_init(){
71
+ require_once FO_ABSPATH . 'helpers.php';
72
 
73
  if( is_admin() ){
74
+ require_once FO_ABSPATH . 'settings.php';
 
 
 
75
 
76
+ // Add the declarations to the editor, so in preview you can see
77
+ // the selected font family.
78
+ add_editor_style( '../../uploads/font-organizer/fo-declarations.css' );
79
+
80
+ add_filter( 'upload_mimes', 'fo_allow_upload_types' );
81
+ add_filter( 'plugin_action_links', 'fo_add_action_plugin', 10, 5 );
82
+ add_filter( 'tiny_mce_before_init', 'fo_add_tinymce_fonts' );
83
+ add_filter( 'mce_buttons_2', 'fo_mce_buttons' );
84
+ add_action( 'admin_enqueue_scripts', 'fo_enqueue_declarations_fonts_css' );
85
 
86
  $settings_page = new FoSettingsPage();
87
  }else{
88
+ add_action( 'wp_enqueue_scripts', 'fo_enqueue_all_fonts_css' );
 
 
89
  }
90
  }
91
 
92
+ function fo_enqueue_all_fonts_css(){
93
+ fo_enqueue_fonts_css();
94
+ }
95
+
96
+ function fo_enqueue_declarations_fonts_css(){
97
+ fo_enqueue_fonts_css(true);
98
+ }
99
+
100
+ // Enable font size & font family selects in the editor
101
+ function fo_mce_buttons( $buttons ) {
102
+ array_unshift( $buttons, 'fontselect' ); // Add Font Select
103
+ array_unshift( $buttons, 'fontsizeselect' ); // Add Font Size Select
104
+ return $buttons;
105
+ }
106
+
107
+ function fo_add_tinymce_fonts($initArray){
108
+ $usable_fonts = FontsDatabaseHelper::get_usable_fonts();
109
+ $font_formats = array();
110
+ foreach ($usable_fonts as $font) {
111
+ $font_formats[] = $font->name . '=' . $font->name;
112
+ }
113
+
114
+ // Set the font families from the usable fonts list.
115
+ $initArray['font_formats'] = implode(';', $font_formats);
116
+
117
+ // Apply the filter to allow quick change in the font sizes list in tinymce editors.
118
+ // The input is a string of the default standart font sizes spereated by spaces (' ').
119
+ $sizes = apply_filters('fo_tinyme_font_sizes', "8px 10px 12px 14px 16px 20px 24px 28px 32px 36px 48px 60px");
120
+
121
+ // Set font sizes.
122
+ $initArray['fontsize_formats'] = $sizes;
123
+ return $initArray;
124
  }
125
 
126
  function fo_allow_upload_types($existing_mimes = array()){
175
  dbDelta( $sql );
176
 
177
  // Set the db version to current.
178
+ update_option( 'fo_db_version', $fo_db_version );
179
 
180
  // Set roles
181
  $role = get_role( 'administrator' );
helpers.php CHANGED
@@ -92,6 +92,51 @@
92
  }
93
  }
94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  function fo_rearray_files($file){
96
  $file_ary = array();
97
  $file_count = count($file['name']);
@@ -119,4 +164,317 @@
119
  function fo_array_sort(&$array){
120
  return usort($array, 'cmp_font');
121
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  ?>
92
  }
93
  }
94
 
95
+ function fo_enqueue_fonts_css($only_declarations = false){
96
+ global $fo_css_base_url_path;
97
+ global $fo_css_directory_path;
98
+ global $fo_declarations_css_file_name;
99
+ global $fo_elements_css_file_name;
100
+
101
+ $declartions_full_file_url = $fo_css_base_url_path . '/' . $fo_declarations_css_file_name;
102
+ if(file_exists($fo_css_directory_path . '/' . $fo_declarations_css_file_name)){
103
+ wp_enqueue_style('fo-fonts', $declartions_full_file_url);
104
+ }
105
+
106
+ if($only_declarations)
107
+ return;
108
+
109
+ $elements_full_file_url = $fo_css_base_url_path . '/' . $fo_elements_css_file_name;
110
+ if(file_exists($fo_css_directory_path . '/' . $fo_elements_css_file_name)){
111
+ wp_enqueue_style('fo-fonts', $elements_full_file_url);
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Create or override the file given with the content.
117
+ * Create the directory if needed and create or override the file.
118
+ */
119
+ function fo_try_write_file($content, $base_dir, $file_name, $failed_callback){
120
+ if($content){
121
+
122
+ // Make sure directory exists.
123
+ if(!is_dir($base_dir))
124
+ mkdir($base_dir, 0755, true);
125
+
126
+ $fhandler = fopen($base_dir . '/' . $file_name, "w");
127
+ if(!$fhandler){
128
+ add_action( 'admin_notices', $failed_callback );
129
+ return false;
130
+ }
131
+
132
+ fwrite($fhandler, $content);
133
+ fclose($fhandler);
134
+ return true;
135
+ }
136
+
137
+ return false;
138
+ }
139
+
140
  function fo_rearray_files($file){
141
  $file_ary = array();
142
  $file_count = count($file['name']);
164
  function fo_array_sort(&$array){
165
  return usort($array, 'cmp_font');
166
  }
167
+
168
+ function fo_get_known_fonts_array()
169
+ {
170
+ return array(
171
+ (object) array( 'family' => 'Calibri', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
172
+ (object) array( 'family' => 'Abadi MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
173
+ (object) array( 'family' => 'Adobe Minion Web', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
174
+ (object) array( 'family' => 'Agency FB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
175
+ (object) array( 'family' => 'Aharoni', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
176
+ (object) array( 'family' => 'Aldhabi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
177
+ (object) array( 'family' => 'Algerian', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
178
+ (object) array( 'family' => 'Almanac MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
179
+ (object) array( 'family' => 'American Uncial', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
180
+ (object) array( 'family' => 'Andale Mono', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
181
+ (object) array( 'family' => 'Andalus', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
182
+ (object) array( 'family' => 'Andy', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
183
+ (object) array( 'family' => 'Angsana New', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
184
+ (object) array( 'family' => 'AngsanaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
185
+ (object) array( 'family' => 'Aparajita', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
186
+ (object) array( 'family' => 'Arabic Transparent', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
187
+ (object) array( 'family' => 'Arabic Typesetting', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
188
+ (object) array( 'family' => 'Arial', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
189
+ (object) array( 'family' => 'Arial Black', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
190
+ (object) array( 'family' => 'Arial Narrow', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
191
+ (object) array( 'family' => 'Arial Narrow Special', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
192
+ (object) array( 'family' => 'Arial Rounded MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
193
+ (object) array( 'family' => 'Arial Special', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
194
+ (object) array( 'family' => 'Arial Unicode MS', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
195
+ (object) array( 'family' => 'Augsburger Initials', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
196
+ (object) array( 'family' => 'Baskerville Old Face', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
197
+ (object) array( 'family' => 'Batang', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
198
+ (object) array( 'family' => 'BatangChe', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
199
+ (object) array( 'family' => 'Bauhaus 93', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
200
+ (object) array( 'family' => 'Beesknees ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
201
+ (object) array( 'family' => 'Bell MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
202
+ (object) array( 'family' => 'Berlin Sans FB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
203
+ (object) array( 'family' => 'Bernard MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
204
+ (object) array( 'family' => 'Bickley Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
205
+ (object) array( 'family' => 'Blackadder ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
206
+ (object) array( 'family' => 'Bodoni MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
207
+ (object) array( 'family' => 'Bodoni MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
208
+ (object) array( 'family' => 'Bon Apetit MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
209
+ (object) array( 'family' => 'Book Antiqua', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
210
+ (object) array( 'family' => 'Bookman Old Style', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
211
+ (object) array( 'family' => 'Bookshelf Symbol', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
212
+ (object) array( 'family' => 'Bradley Hand ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
213
+ (object) array( 'family' => 'Braggadocio', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
214
+ (object) array( 'family' => 'BriemScript', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
215
+ (object) array( 'family' => 'Britannic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
216
+ (object) array( 'family' => 'Britannic Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
217
+ (object) array( 'family' => 'Broadway', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
218
+ (object) array( 'family' => 'Browallia New', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
219
+ (object) array( 'family' => 'BrowalliaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
220
+ (object) array( 'family' => 'Brush Script MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
221
+ (object) array( 'family' => 'Calibri', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
222
+ (object) array( 'family' => 'Californian FB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
223
+ (object) array( 'family' => 'Calisto MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
224
+ (object) array( 'family' => 'Cambria', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
225
+ (object) array( 'family' => 'Cambria Math', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
226
+ (object) array( 'family' => 'Candara', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
227
+ (object) array( 'family' => 'Cariadings', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
228
+ (object) array( 'family' => 'Castellar', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
229
+ (object) array( 'family' => 'Centaur', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
230
+ (object) array( 'family' => 'Century', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
231
+ (object) array( 'family' => 'Century Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
232
+ (object) array( 'family' => 'Century Schoolbook', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
233
+ (object) array( 'family' => 'Chiller', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
234
+ (object) array( 'family' => 'Colonna MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
235
+ (object) array( 'family' => 'Comic Sans MS', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
236
+ (object) array( 'family' => 'Consolas', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
237
+ (object) array( 'family' => 'Constantia', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
238
+ (object) array( 'family' => 'Contemporary Brush', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
239
+ (object) array( 'family' => 'Cooper Black', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
240
+ (object) array( 'family' => 'Copperplate Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
241
+ (object) array( 'family' => 'Corbel', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
242
+ (object) array( 'family' => 'Cordia New', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
243
+ (object) array( 'family' => 'CordiaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
244
+ (object) array( 'family' => 'Courier New', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
245
+ (object) array( 'family' => 'Curlz MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
246
+ (object) array( 'family' => 'DaunPenh', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
247
+ (object) array( 'family' => 'David', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
248
+ (object) array( 'family' => 'Desdemona', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
249
+ (object) array( 'family' => 'DFKai-SB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
250
+ (object) array( 'family' => 'DilleniaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
251
+ (object) array( 'family' => 'Directions MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
252
+ (object) array( 'family' => 'DokChampa', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
253
+ (object) array( 'family' => 'Dotum', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
254
+ (object) array( 'family' => 'DotumChe', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
255
+ (object) array( 'family' => 'Ebrima', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
256
+ (object) array( 'family' => 'Eckmann', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
257
+ (object) array( 'family' => 'Edda', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
258
+ (object) array( 'family' => 'Edwardian Script ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
259
+ (object) array( 'family' => 'Elephant', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
260
+ (object) array( 'family' => 'Engravers MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
261
+ (object) array( 'family' => 'Enviro', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
262
+ (object) array( 'family' => 'Eras ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
263
+ (object) array( 'family' => 'Estrangelo Edessa', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
264
+ (object) array( 'family' => 'EucrosiaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
265
+ (object) array( 'family' => 'Euphemia', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
266
+ (object) array( 'family' => 'Eurostile', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
267
+ (object) array( 'family' => 'FangSong', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
268
+ (object) array( 'family' => 'Felix Titling', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
269
+ (object) array( 'family' => 'Fine Hand', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
270
+ (object) array( 'family' => 'Fixed Miriam Transparent', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
271
+ (object) array( 'family' => 'Flexure', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
272
+ (object) array( 'family' => 'Footlight MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
273
+ (object) array( 'family' => 'Forte', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
274
+ (object) array( 'family' => 'Franklin Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
275
+ (object) array( 'family' => 'Franklin Gothic Medium', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
276
+ (object) array( 'family' => 'FrankRuehl', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
277
+ (object) array( 'family' => 'FreesiaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
278
+ (object) array( 'family' => 'Freestyle Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
279
+ (object) array( 'family' => 'French Script MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
280
+ (object) array( 'family' => 'Futura', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
281
+ (object) array( 'family' => 'Gabriola', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
282
+ (object) array( 'family' => 'Gadugi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
283
+ (object) array( 'family' => 'Garamond', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
284
+ (object) array( 'family' => 'Garamond MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
285
+ (object) array( 'family' => 'Gautami', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
286
+ (object) array( 'family' => 'Georgia', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
287
+ (object) array( 'family' => 'Georgia Ref', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
288
+ (object) array( 'family' => 'Gigi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
289
+ (object) array( 'family' => 'Gill Sans MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
290
+ (object) array( 'family' => 'Gill Sans MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
291
+ (object) array( 'family' => 'Gisha', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
292
+ (object) array( 'family' => 'Gloucester', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
293
+ (object) array( 'family' => 'Goudy Old Style', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
294
+ (object) array( 'family' => 'Goudy Stout', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
295
+ (object) array( 'family' => 'Gradl', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
296
+ (object) array( 'family' => 'Gulim', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
297
+ (object) array( 'family' => 'GulimChe', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
298
+ (object) array( 'family' => 'Gungsuh', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
299
+ (object) array( 'family' => 'GungsuhChe', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
300
+ (object) array( 'family' => 'Haettenschweiler', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
301
+ (object) array( 'family' => 'Harlow Solid Italic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
302
+ (object) array( 'family' => 'Harrington', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
303
+ (object) array( 'family' => 'High Tower Text', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
304
+ (object) array( 'family' => 'Holidays MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
305
+ (object) array( 'family' => 'Impact', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
306
+ (object) array( 'family' => 'Imprint MT Shadow', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
307
+ (object) array( 'family' => 'Informal Roman', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
308
+ (object) array( 'family' => 'IrisUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
309
+ (object) array( 'family' => 'Iskoola Pota', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
310
+ (object) array( 'family' => 'JasmineUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
311
+ (object) array( 'family' => 'Jokerman', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
312
+ (object) array( 'family' => 'Juice ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
313
+ (object) array( 'family' => 'KaiTi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
314
+ (object) array( 'family' => 'Kalinga', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
315
+ (object) array( 'family' => 'Kartika', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
316
+ (object) array( 'family' => 'Keystrokes MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
317
+ (object) array( 'family' => 'Khmer UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
318
+ (object) array( 'family' => 'Kino MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
319
+ (object) array( 'family' => 'KodchiangUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
320
+ (object) array( 'family' => 'Kokila', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
321
+ (object) array( 'family' => 'Kristen ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
322
+ (object) array( 'family' => 'Kunstler Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
323
+ (object) array( 'family' => 'Lao UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
324
+ (object) array( 'family' => 'Latha', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
325
+ (object) array( 'family' => 'LCD', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
326
+ (object) array( 'family' => 'Leelawadee', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
327
+ (object) array( 'family' => 'Levenim MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
328
+ (object) array( 'family' => 'LilyUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
329
+ (object) array( 'family' => 'Lucida Blackletter', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
330
+ (object) array( 'family' => 'Lucida Bright', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
331
+ (object) array( 'family' => 'Lucida Bright Math', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
332
+ (object) array( 'family' => 'Lucida Calligraphy', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
333
+ (object) array( 'family' => 'Lucida Console', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
334
+ (object) array( 'family' => 'Lucida Fax', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
335
+ (object) array( 'family' => 'Lucida Handwriting', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
336
+ (object) array( 'family' => 'Lucida Sans', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
337
+ (object) array( 'family' => 'Lucida Sans Typewriter', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
338
+ (object) array( 'family' => 'Lucida Sans Unicode', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
339
+ (object) array( 'family' => 'Magneto', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
340
+ (object) array( 'family' => 'Maiandra GD', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
341
+ (object) array( 'family' => 'Malgun Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
342
+ (object) array( 'family' => 'Mangal', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
343
+ (object) array( 'family' => 'Map Symbols', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
344
+ (object) array( 'family' => 'Marlett', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
345
+ (object) array( 'family' => 'Matisse ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
346
+ (object) array( 'family' => 'Matura MT Script Capitals', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
347
+ (object) array( 'family' => 'McZee', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
348
+ (object) array( 'family' => 'Mead Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
349
+ (object) array( 'family' => 'Meiryo', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
350
+ (object) array( 'family' => 'Meiryo UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
351
+ (object) array( 'family' => 'Mercurius Script MT Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
352
+ (object) array( 'family' => 'Microsoft Himalaya', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
353
+ (object) array( 'family' => 'Microsoft JhengHei', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
354
+ (object) array( 'family' => 'Microsoft JhengHei UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
355
+ (object) array( 'family' => 'Microsoft New Tai Lue', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
356
+ (object) array( 'family' => 'Microsoft PhagsPa', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
357
+ (object) array( 'family' => 'Microsoft Sans Serif', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
358
+ (object) array( 'family' => 'Microsoft Tai Le', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
359
+ (object) array( 'family' => 'Microsoft Uighur', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
360
+ (object) array( 'family' => 'Microsoft YaHei', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
361
+ (object) array( 'family' => 'Microsoft YaHei UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
362
+ (object) array( 'family' => 'Microsoft Yi Baiti', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
363
+ (object) array( 'family' => 'MingLiU', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
364
+ (object) array( 'family' => 'MingLiU_HKSCS', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
365
+ (object) array( 'family' => 'MingLiU_HKSCS-ExtB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
366
+ (object) array( 'family' => 'MingLiU-ExtB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
367
+ (object) array( 'family' => 'Minion Web', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
368
+ (object) array( 'family' => 'Miriam', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
369
+ (object) array( 'family' => 'Miriam Fixed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
370
+ (object) array( 'family' => 'Mistral', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
371
+ (object) array( 'family' => 'Modern No. 20', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
372
+ (object) array( 'family' => 'Mongolian Baiti', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
373
+ (object) array( 'family' => 'Monotype Corsiva', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
374
+ (object) array( 'family' => 'Monotype Sorts', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
375
+ (object) array( 'family' => 'Monotype.com', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
376
+ (object) array( 'family' => 'MoolBoran', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
377
+ (object) array( 'family' => 'MS Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
378
+ (object) array( 'family' => 'MS LineDraw', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
379
+ (object) array( 'family' => 'MS Mincho', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
380
+ (object) array( 'family' => 'MS Outlook', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
381
+ (object) array( 'family' => 'MS PGothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
382
+ (object) array( 'family' => 'MS PMincho', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
383
+ (object) array( 'family' => 'MS Reference', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
384
+ (object) array( 'family' => 'MS UI Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
385
+ (object) array( 'family' => 'MT Extra', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
386
+ (object) array( 'family' => 'MV Boli', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
387
+ (object) array( 'family' => 'Myanmar Text', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
388
+ (object) array( 'family' => 'Narkisim', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
389
+ (object) array( 'family' => 'New Caledonia', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
390
+ (object) array( 'family' => 'News Gothic MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
391
+ (object) array( 'family' => 'Niagara', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
392
+ (object) array( 'family' => 'Nirmala UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
393
+ (object) array( 'family' => 'NSimSun', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
394
+ (object) array( 'family' => 'Nyala', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
395
+ (object) array( 'family' => 'OCR A Extended', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
396
+ (object) array( 'family' => 'OCRB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
397
+ (object) array( 'family' => 'OCR-B-Digits', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
398
+ (object) array( 'family' => 'Old English Text MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
399
+ (object) array( 'family' => 'Onyx', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
400
+ (object) array( 'family' => 'Palace Script MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
401
+ (object) array( 'family' => 'Palatino Linotype', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
402
+ (object) array( 'family' => 'Papyrus', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
403
+ (object) array( 'family' => 'Parade', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
404
+ (object) array( 'family' => 'Parchment', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
405
+ (object) array( 'family' => 'Parties MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
406
+ (object) array( 'family' => 'Peignot Medium', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
407
+ (object) array( 'family' => 'Pepita MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
408
+ (object) array( 'family' => 'Perpetua', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
409
+ (object) array( 'family' => 'Perpetua Titling MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
410
+ (object) array( 'family' => 'Placard Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
411
+ (object) array( 'family' => 'Plantagenet Cherokee', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
412
+ (object) array( 'family' => 'Playbill', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
413
+ (object) array( 'family' => 'PMingLiU', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
414
+ (object) array( 'family' => 'PMingLiU-ExtB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
415
+ (object) array( 'family' => 'Poor Richard', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
416
+ (object) array( 'family' => 'Pristina', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
417
+ (object) array( 'family' => 'Raavi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
418
+ (object) array( 'family' => 'Rage Italic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
419
+ (object) array( 'family' => 'Ransom', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
420
+ (object) array( 'family' => 'Ravie', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
421
+ (object) array( 'family' => 'RefSpecialty', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
422
+ (object) array( 'family' => 'Rockwell', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
423
+ (object) array( 'family' => 'Rockwell Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
424
+ (object) array( 'family' => 'Rockwell Extra Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
425
+ (object) array( 'family' => 'Rod', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
426
+ (object) array( 'family' => 'Runic MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
427
+ (object) array( 'family' => 'Sakkal Majalla', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
428
+ (object) array( 'family' => 'Script MT Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
429
+ (object) array( 'family' => 'Segoe Chess', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
430
+ (object) array( 'family' => 'Segoe Print', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
431
+ (object) array( 'family' => 'Segoe Pseudo', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
432
+ (object) array( 'family' => 'Segoe Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
433
+ (object) array( 'family' => 'Segoe UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
434
+ (object) array( 'family' => 'Segoe UI Symbol', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
435
+ (object) array( 'family' => 'Shonar Bangla', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
436
+ (object) array( 'family' => 'Showcard Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
437
+ (object) array( 'family' => 'Shruti', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
438
+ (object) array( 'family' => 'Signs MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
439
+ (object) array( 'family' => 'SimHei', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
440
+ (object) array( 'family' => 'Simplified Arabic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
441
+ (object) array( 'family' => 'Simplified Arabic Fixed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
442
+ (object) array( 'family' => 'SimSun', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
443
+ (object) array( 'family' => 'SimSun-ExtB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
444
+ (object) array( 'family' => 'Snap ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
445
+ (object) array( 'family' => 'Sports MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
446
+ (object) array( 'family' => 'Stencil', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
447
+ (object) array( 'family' => 'Stop', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
448
+ (object) array( 'family' => 'Sylfaen', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
449
+ (object) array( 'family' => 'Symbol', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
450
+ (object) array( 'family' => 'Tahoma', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
451
+ (object) array( 'family' => 'Temp Installer Font', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
452
+ (object) array( 'family' => 'Tempo Grunge', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
453
+ (object) array( 'family' => 'Tempus Sans ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
454
+ (object) array( 'family' => 'Times New Roman', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
455
+ (object) array( 'family' => 'Times New Roman Special', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
456
+ (object) array( 'family' => 'Traditional Arabic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
457
+ (object) array( 'family' => 'Transport MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
458
+ (object) array( 'family' => 'Trebuchet MS', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
459
+ (object) array( 'family' => 'Tunga', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
460
+ (object) array( 'family' => 'Tw Cen MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
461
+ (object) array( 'family' => 'Tw Cen MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
462
+ (object) array( 'family' => 'Urdu Typesetting', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
463
+ (object) array( 'family' => 'Utsaah', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
464
+ (object) array( 'family' => 'Vacation MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
465
+ (object) array( 'family' => 'Vani', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
466
+ (object) array( 'family' => 'Verdana', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
467
+ (object) array( 'family' => 'Verdana Ref', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
468
+ (object) array( 'family' => 'Vijaya', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
469
+ (object) array( 'family' => 'Viner Hand ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
470
+ (object) array( 'family' => 'Vivaldi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
471
+ (object) array( 'family' => 'Vixar ASCI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
472
+ (object) array( 'family' => 'Vladimir Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
473
+ (object) array( 'family' => 'Vrinda', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
474
+ (object) array( 'family' => 'Webdings', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
475
+ (object) array( 'family' => 'Westminster', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
476
+ (object) array( 'family' => 'Wide Latin', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
477
+ (object) array( 'family' => 'Wingdings', 'kind' => 'standard', 'variants' => array(), 'files' => (object) array('regular' => '')),
478
+ );
479
+ }
480
  ?>
languages/font-organizer-he_IL.mo CHANGED
Binary file
languages/font-organizer-he_IL.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Font Organizer\n"
4
- "POT-Creation-Date: 2016-11-30 18:18+0200\n"
5
- "PO-Revision-Date: 2016-11-30 18:30+0200\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: he_IL\n"
@@ -28,7 +28,7 @@ msgstr "מזהה"
28
  msgid "Custom Elements"
29
  msgstr "אלמנט מותאם אישית"
30
 
31
- #: classes/class-ElementsTable.php:73 settings.php:1056 settings.php:1073
32
  msgid "Important"
33
  msgstr "חשוב"
34
 
@@ -48,7 +48,7 @@ msgstr "מחק"
48
  msgid "No custom elements found."
49
  msgstr "לא נמצאו אלמנטים מותאמים אישית."
50
 
51
- #: font-organizer.php:139 settings.php:196 settings.php:368
52
  msgid "Font Settings"
53
  msgstr "הגדרות גופנים"
54
 
@@ -112,51 +112,51 @@ msgstr "גופן לתגית <li>"
112
  msgid "<a> Font"
113
  msgstr "גופן לתגית <a>"
114
 
115
- #: settings.php:322
116
  msgid "Google API key is not valid: "
117
  msgstr "המפתח של גוגל אינה חוקי:"
118
 
119
- #: settings.php:325
120
  msgid "Google API key is not set! Cannot display google fonts."
121
  msgstr "המפתח של גוגל אינו מוגדר! אין אפשרות להציג גופנים של גוגל."
122
 
123
- #: settings.php:379
124
  msgid "General Settings"
125
  msgstr "הגדרות כלליות"
126
 
127
- #: settings.php:395
128
  msgid "1. Add Fonts"
129
  msgstr "1. הוספת גופנים"
130
 
131
- #: settings.php:397
132
  msgid ""
133
  "Step 1: Select and add fonts to be used in your website. Select as many as "
134
  "you wish."
135
  msgstr "שלב 1: בחר והוסף גופנים לאתר האינטרנט שלך. ניתן לבחר כמה שתרצה."
136
 
137
- #: settings.php:399
138
  msgid "You can select google or regular fonts."
139
  msgstr "באפשרותך לבחור בגופנים של גוגל או גופנים מוכרים."
140
 
141
- #: settings.php:403
142
  msgid "Available Fonts"
143
  msgstr "גופנים זמינים"
144
 
145
- #: settings.php:410
146
  msgid "Use This Font"
147
  msgstr "השתמש בגופן זה"
148
 
149
- #: settings.php:421
150
  msgid "2. Custom Fonts"
151
  msgstr "2. גופנים מיובאים"
152
 
153
- #: settings.php:423
154
  msgid ""
155
  "Step 2: Upload custom fonts to be used in your website. Here too, you can "
156
  "upload as many as you wish."
157
  msgstr "שלב 2: כאן ניתן לעלות גופנים לאתר שלך. גם כאן, ניתן להעלות כמה שתרצה."
158
 
159
- #: settings.php:425
160
  msgid ""
161
  "Name the font you want to upload and upload all the files formats for this "
162
  "font. In order to support more browsers you can click the green plus to "
@@ -166,66 +166,86 @@ msgstr ""
166
  "ביותר דפדפנים ביכולתך ללחוץ על הפלוס הירוק להעלות עוד סוגי פורמטים. אנו "
167
  "מציעים woff. ו- woff2.."
168
 
169
- #: settings.php:429
170
- msgid "Font Name"
171
- msgstr "שם גופן"
172
 
173
- #: settings.php:434
174
- msgid "Font File"
175
- msgstr "קובץ הגופן"
176
 
177
- #: settings.php:438
 
 
 
 
178
  msgid "Accepted Font Format : "
179
  msgstr "פורמט גופן נתמך:"
180
 
181
- #: settings.php:441
182
- msgid "Add Another Font File"
183
- msgstr "הוסף עוד קובץ גופן"
184
 
185
- #: settings.php:448
186
  msgid "Upload"
187
  msgstr "העלה"
188
 
189
- #: settings.php:459
190
  msgid "3. Known Elements Settings"
191
  msgstr "3. הגדרות אלמנטים הידועים"
192
 
193
- #: settings.php:462
194
  msgid ""
195
  "Step 3: For each element you can assign a font you have added in step 1 & 2."
196
  msgstr "שלב 3: עבור כל אלמנט ניתן להקצות גופן שהוספת בשלב 1 & 2."
197
 
198
- #: settings.php:463
199
  msgid "Note: "
200
  msgstr "הערה:"
201
 
202
- #: settings.php:463
203
  msgid "Custom fonts you uploaded are automatically used in your website."
204
  msgstr "גופנים מיובאים אוטומטית נוספים לאתר שלך."
205
 
206
- #: settings.php:479
 
 
 
 
 
 
 
 
207
  msgid "4. Custom Elements Settings"
208
  msgstr "4. הגדרות אלמנטים מותאמים אישית"
209
 
210
- #: settings.php:482
211
  msgid ""
212
  "Step 4: Assign font that you have added to your website to custom elements."
213
  msgstr ""
214
  "שלב 4: כאן ניתן לשייך גופן שהוספת לאתר האינטרנט שלך לאלמנטים מותאמים אישית."
215
 
216
- #: settings.php:486 settings.php:520
217
  msgid "Font"
218
  msgstr "גופן"
219
 
220
- #: settings.php:487 settings.php:521
221
  msgid "-- Select Font --"
222
  msgstr "-- בחירת גופן --"
223
 
224
- #: settings.php:490
 
 
 
 
225
  msgid "Custom Element"
226
  msgstr "רכיב מותאם אישית"
227
 
228
- #: settings.php:493
 
 
 
 
229
  msgid ""
230
  "Custom elements can be seperated by commas to allow multiple elements. "
231
  "Example: #myelementid, .myelementclass, .myelementclass .foo, etc."
@@ -233,27 +253,35 @@ msgstr ""
233
  "רכיבים מותאמים אישית ניתן להפריד בפסיקים כדי לאפשר מספר אלמנטים. דוגמה: ."
234
  "myelementclass, #myelementid, .myelementclass .foo, וכו '."
235
 
236
- #: settings.php:504
237
  msgid "Apply Custom Elements"
238
  msgstr "החל על אלמנטים אלה"
239
 
240
- #: settings.php:515
241
  msgid "5. Manage Fonts"
242
  msgstr "5. ניהול גופנים"
243
 
244
- #: settings.php:530
 
 
 
 
 
 
 
 
245
  msgid "Source"
246
  msgstr "מקור"
247
 
248
- #: settings.php:534
249
  msgid "Urls"
250
  msgstr "כתובת"
251
 
252
- #: settings.php:565
253
  msgid "Thank you"
254
  msgstr "תודה לך!"
255
 
256
- #: settings.php:570
257
  msgid ""
258
  "Thank you for using an <a href=\"http://hivewebstudios.com\" target=\"_blank"
259
  "\">Hive</a> plugin! We 5 star you already, so why don't you <a href="
@@ -265,103 +293,107 @@ msgstr ""
265
  "\"https://wordpress.org/support/plugin/font-organizer/reviews/?rate=5#new-"
266
  "post\" target=\"_blank\">תדרג אותנו 5 כוכבים גם</a>?"
267
 
268
- #: settings.php:572
269
  msgid "Anyway, if you need anything, this may help:"
270
  msgstr "בכל מקרה, אם את/ה צריכ/ה משהו, אולי זה יעזור:"
271
 
272
- #: settings.php:574
273
  msgid "FAQ"
274
  msgstr "שאלות נפוצות"
275
 
276
- #: settings.php:575
277
  msgid "Support forums"
278
  msgstr "פורום תמיכה"
279
 
280
- #: settings.php:576
281
  msgid "Contact us"
282
  msgstr "צרו קשר"
283
 
284
- #: settings.php:577
285
  msgid "Hive Facebook page"
286
  msgstr "עמוד הפייסבוק של Hive"
287
 
288
- #: settings.php:590 settings.php:619 settings.php:634 settings.php:653
289
  msgid "Session ended, please try again."
290
  msgstr "הסתיים הטיפול, אנא נסה שנית."
291
 
292
- #: settings.php:596
293
  msgid "Font name is empty or invalid."
294
  msgstr "שם גופן הוא ריק או לא חוקי."
295
 
296
- #: settings.php:601
297
  msgid "Font file is not selected."
298
  msgstr "לא נבחר קובץ הגופן."
299
 
300
- #: settings.php:609
301
- msgid "Font file is not valid."
302
- msgstr "קובץ הגופן אינו חוקי."
303
 
304
- #: settings.php:625
305
  msgid "Usable font is empty or invalid."
306
  msgstr "גופן לשימוש הוא ריק או לא חוקי."
307
 
308
- #: settings.php:640
309
  msgid "Custom elements is empty or invalid."
310
  msgstr "אלמנטים מותאמים אישית ריק או לא חוקי."
311
 
312
- #: settings.php:659
313
  msgid "Something went horribly wrong. Ask the support!"
314
  msgstr "משהו השתבש בצורה נוראית. תשאל את התמיכה!"
315
 
316
- #: settings.php:735
 
 
 
 
317
  msgid "Custom elements added to your website!"
318
  msgstr "אלמנטים מותאמים אישית התווספו לאתר שלך!"
319
 
320
- #: settings.php:743
321
  msgid "Font can now be used in your website!"
322
  msgstr "כעת ניתן להשתמש בגופן באתר האינטרנט שלך!"
323
 
324
- #: settings.php:751
325
  msgid "Font deleted from your website!"
326
  msgstr "גופן נמחק מהאתר שלך!"
327
 
328
- #: settings.php:759
329
  msgid "The file has been uploaded!"
330
  msgstr "הקובץ הועלה בהצלחה."
331
 
332
- #: settings.php:767
333
  msgid "Error uploading the file: "
334
  msgstr "שגיאה בהעלאת הקובץ:"
335
 
336
- #: settings.php:775
337
  msgid "Error adding font to website fonts: "
338
  msgstr "שגיאה בעת הוספת גופן לאתר:"
339
 
340
- #: settings.php:783
341
  msgid "Error deleting font: "
342
  msgstr "שגיאה במחיקת גופן:"
343
 
344
- #: settings.php:791
345
  msgid "Failed to open or create the css file. Check for permissions."
346
  msgstr "לא ניתן לפתוח או ליצור את קובץ ה-css. בדוק אם יש הרשאות."
347
 
348
- #: settings.php:833
349
  msgid "Google API Key"
350
  msgstr "מפתח API של גוגל"
351
 
352
- #: settings.php:840
353
  msgid "Show Font Family Preview"
354
  msgstr "טען תצוגה מקדימה לגופנים"
355
 
356
- #: settings.php:850
357
  msgid "Access Settings Role"
358
  msgstr "רמת הרשאה להגדרות"
359
 
360
- #: settings.php:962
361
  msgid "This is the general settings for the site."
362
  msgstr "אלה הם הגדרות כלליות עבור התוסף."
363
 
364
- #: settings.php:981
365
  #, php-format
366
  msgid ""
367
  "To get all the fonts, Google requires the mandatory use of an API key, get "
@@ -370,19 +402,24 @@ msgstr ""
370
  "כדי לקבל את כל הגופנים, גוגל מחייב שימוש ב-API, ניתן לקבל אחד מ<a href=\"%s"
371
  "\" target=\"_blank\">כאן</a> בחינם ובמהירות."
372
 
373
- #: settings.php:1005
 
 
 
 
 
374
  msgid "Include Font Family Preview"
375
  msgstr "הוסף גופן לדף זה לצפיה בתוצגה מוקדמת"
376
 
377
- #: settings.php:1007
378
  msgid "Show font preview when listing the fonts (might be slow)"
379
  msgstr "הצג תצוגה מקדימה של הגופן ברשימה של גופנים (עשוי להיות איטי)."
380
 
381
- #: settings.php:1059 settings.php:1076
382
  msgid "Include !important to this element to always apply."
383
  msgstr "הוסף תגית important! על מנת שגופן זה תמיד יופיע."
384
 
385
- #: settings.php:1088
386
  msgid "Default"
387
  msgstr "ברירת מחדל"
388
 
@@ -408,6 +445,18 @@ msgstr "Hive"
408
  msgid "https://hivewebstudios.com"
409
  msgstr "https://hivewebstudios.com"
410
 
 
 
 
 
 
 
 
 
 
 
 
 
411
  #~ msgid ""
412
  #~ "Name the font you want to upload and upload all the files types for this "
413
  #~ "font. In order to support more browsers you can click the green plus to "
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Font Organizer\n"
4
+ "POT-Creation-Date: 2016-12-14 19:54+0200\n"
5
+ "PO-Revision-Date: 2016-12-14 19:54+0200\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: he_IL\n"
28
  msgid "Custom Elements"
29
  msgstr "אלמנט מותאם אישית"
30
 
31
+ #: classes/class-ElementsTable.php:73 settings.php:1140 settings.php:1157
32
  msgid "Important"
33
  msgstr "חשוב"
34
 
48
  msgid "No custom elements found."
49
  msgstr "לא נמצאו אלמנטים מותאמים אישית."
50
 
51
+ #: font-organizer.php:194 settings.php:204 settings.php:378
52
  msgid "Font Settings"
53
  msgstr "הגדרות גופנים"
54
 
112
  msgid "<a> Font"
113
  msgstr "גופן לתגית <a>"
114
 
115
+ #: settings.php:332
116
  msgid "Google API key is not valid: "
117
  msgstr "המפתח של גוגל אינה חוקי:"
118
 
119
+ #: settings.php:335
120
  msgid "Google API key is not set! Cannot display google fonts."
121
  msgstr "המפתח של גוגל אינו מוגדר! אין אפשרות להציג גופנים של גוגל."
122
 
123
+ #: settings.php:389
124
  msgid "General Settings"
125
  msgstr "הגדרות כלליות"
126
 
127
+ #: settings.php:405
128
  msgid "1. Add Fonts"
129
  msgstr "1. הוספת גופנים"
130
 
131
+ #: settings.php:407
132
  msgid ""
133
  "Step 1: Select and add fonts to be used in your website. Select as many as "
134
  "you wish."
135
  msgstr "שלב 1: בחר והוסף גופנים לאתר האינטרנט שלך. ניתן לבחר כמה שתרצה."
136
 
137
+ #: settings.php:409
138
  msgid "You can select google or regular fonts."
139
  msgstr "באפשרותך לבחור בגופנים של גוגל או גופנים מוכרים."
140
 
141
+ #: settings.php:413
142
  msgid "Available Fonts"
143
  msgstr "גופנים זמינים"
144
 
145
+ #: settings.php:420
146
  msgid "Use This Font"
147
  msgstr "השתמש בגופן זה"
148
 
149
+ #: settings.php:431
150
  msgid "2. Custom Fonts"
151
  msgstr "2. גופנים מיובאים"
152
 
153
+ #: settings.php:433
154
  msgid ""
155
  "Step 2: Upload custom fonts to be used in your website. Here too, you can "
156
  "upload as many as you wish."
157
  msgstr "שלב 2: כאן ניתן לעלות גופנים לאתר שלך. גם כאן, ניתן להעלות כמה שתרצה."
158
 
159
+ #: settings.php:435
160
  msgid ""
161
  "Name the font you want to upload and upload all the files formats for this "
162
  "font. In order to support more browsers you can click the green plus to "
166
  "ביותר דפדפנים ביכולתך ללחוץ על הפלוס הירוק להעלות עוד סוגי פורמטים. אנו "
167
  "מציעים woff. ו- woff2.."
168
 
169
+ #: settings.php:439
170
+ msgid "Font Weight Name"
171
+ msgstr "שם משקל גופן"
172
 
173
+ #: settings.php:440
174
+ msgid "Font weight name cannot be empty."
175
+ msgstr "שם משקל הגופן אינו יכול להיות ריק."
176
 
177
+ #: settings.php:444
178
+ msgid "Font Weight File"
179
+ msgstr "קובץ משקל גופן"
180
+
181
+ #: settings.php:448
182
  msgid "Accepted Font Format : "
183
  msgstr "פורמט גופן נתמך:"
184
 
185
+ #: settings.php:451 settings.php:452
186
+ msgid "Add Another Font Format File"
187
+ msgstr "הוסף עוד קובץ פורמט גופן"
188
 
189
+ #: settings.php:459
190
  msgid "Upload"
191
  msgstr "העלה"
192
 
193
+ #: settings.php:470
194
  msgid "3. Known Elements Settings"
195
  msgstr "3. הגדרות אלמנטים הידועים"
196
 
197
+ #: settings.php:473
198
  msgid ""
199
  "Step 3: For each element you can assign a font you have added in step 1 & 2."
200
  msgstr "שלב 3: עבור כל אלמנט ניתן להקצות גופן שהוספת בשלב 1 & 2."
201
 
202
+ #: settings.php:474
203
  msgid "Note: "
204
  msgstr "הערה:"
205
 
206
+ #: settings.php:474
207
  msgid "Custom fonts you uploaded are automatically used in your website."
208
  msgstr "גופנים מיובאים אוטומטית נוספים לאתר שלך."
209
 
210
+ #: settings.php:475
211
+ msgid ""
212
+ "In case of font not displaying in your website after saving, try clear the "
213
+ "cache using Shift+F5 or Ctrl+Shift+Delete to clear all."
214
+ msgstr ""
215
+ "במקרה שגופן אינו מוצג באתר האינטרנט שלך לאחר שמירה, נסה לנקות את המטמון "
216
+ "באמצעות Shift + F5 או Ctrl+Shift+Delete כדי לנקות הכל."
217
+
218
+ #: settings.php:490
219
  msgid "4. Custom Elements Settings"
220
  msgstr "4. הגדרות אלמנטים מותאמים אישית"
221
 
222
+ #: settings.php:493
223
  msgid ""
224
  "Step 4: Assign font that you have added to your website to custom elements."
225
  msgstr ""
226
  "שלב 4: כאן ניתן לשייך גופן שהוספת לאתר האינטרנט שלך לאלמנטים מותאמים אישית."
227
 
228
+ #: settings.php:497 settings.php:534
229
  msgid "Font"
230
  msgstr "גופן"
231
 
232
+ #: settings.php:498 settings.php:537
233
  msgid "-- Select Font --"
234
  msgstr "-- בחירת גופן --"
235
 
236
+ #: settings.php:498
237
+ msgid "You must select a font for the elements."
238
+ msgstr "עליך לבחור גופן עבור הרכיבים."
239
+
240
+ #: settings.php:503
241
  msgid "Custom Element"
242
  msgstr "רכיב מותאם אישית"
243
 
244
+ #: settings.php:507
245
+ msgid "Font custom elements cannot be empty."
246
+ msgstr "רכיב מותאם אישית אינו יכול להיות ריק."
247
+
248
+ #: settings.php:508
249
  msgid ""
250
  "Custom elements can be seperated by commas to allow multiple elements. "
251
  "Example: #myelementid, .myelementclass, .myelementclass .foo, etc."
253
  "רכיבים מותאמים אישית ניתן להפריד בפסיקים כדי לאפשר מספר אלמנטים. דוגמה: ."
254
  "myelementclass, #myelementid, .myelementclass .foo, וכו '."
255
 
256
+ #: settings.php:519
257
  msgid "Apply Custom Elements"
258
  msgstr "החל על אלמנטים אלה"
259
 
260
+ #: settings.php:530
261
  msgid "5. Manage Fonts"
262
  msgstr "5. ניהול גופנים"
263
 
264
+ #: settings.php:549
265
+ msgid "Delete Font"
266
+ msgstr "מחק גופן"
267
+
268
+ #: settings.php:549
269
+ msgid "Are you sure you want to delete this font from your website?"
270
+ msgstr "האם אתה בטוח שברצונך למחוק גופן זה מהאתר שלך?"
271
+
272
+ #: settings.php:560
273
  msgid "Source"
274
  msgstr "מקור"
275
 
276
+ #: settings.php:564
277
  msgid "Urls"
278
  msgstr "כתובת"
279
 
280
+ #: settings.php:599
281
  msgid "Thank you"
282
  msgstr "תודה לך!"
283
 
284
+ #: settings.php:604
285
  msgid ""
286
  "Thank you for using an <a href=\"http://hivewebstudios.com\" target=\"_blank"
287
  "\">Hive</a> plugin! We 5 star you already, so why don't you <a href="
293
  "\"https://wordpress.org/support/plugin/font-organizer/reviews/?rate=5#new-"
294
  "post\" target=\"_blank\">תדרג אותנו 5 כוכבים גם</a>?"
295
 
296
+ #: settings.php:606
297
  msgid "Anyway, if you need anything, this may help:"
298
  msgstr "בכל מקרה, אם את/ה צריכ/ה משהו, אולי זה יעזור:"
299
 
300
+ #: settings.php:608
301
  msgid "FAQ"
302
  msgstr "שאלות נפוצות"
303
 
304
+ #: settings.php:609
305
  msgid "Support forums"
306
  msgstr "פורום תמיכה"
307
 
308
+ #: settings.php:610
309
  msgid "Contact us"
310
  msgstr "צרו קשר"
311
 
312
+ #: settings.php:611
313
  msgid "Hive Facebook page"
314
  msgstr "עמוד הפייסבוק של Hive"
315
 
316
+ #: settings.php:624 settings.php:660 settings.php:675 settings.php:694
317
  msgid "Session ended, please try again."
318
  msgstr "הסתיים הטיפול, אנא נסה שנית."
319
 
320
+ #: settings.php:630
321
  msgid "Font name is empty or invalid."
322
  msgstr "שם גופן הוא ריק או לא חוקי."
323
 
324
+ #: settings.php:635
325
  msgid "Font file is not selected."
326
  msgstr "לא נבחר קובץ הגופן."
327
 
328
+ #: settings.php:651
329
+ msgid "Font file(s) not selected."
330
+ msgstr "לא נבחרו קבצים לגופן."
331
 
332
+ #: settings.php:666
333
  msgid "Usable font is empty or invalid."
334
  msgstr "גופן לשימוש הוא ריק או לא חוקי."
335
 
336
+ #: settings.php:681
337
  msgid "Custom elements is empty or invalid."
338
  msgstr "אלמנטים מותאמים אישית ריק או לא חוקי."
339
 
340
+ #: settings.php:701
341
  msgid "Something went horribly wrong. Ask the support!"
342
  msgstr "משהו השתבש בצורה נוראית. תשאל את התמיכה!"
343
 
344
+ #: settings.php:812
345
+ msgid "Error adding custom elements: "
346
+ msgstr "שגיאה בעת הוספת אלמנטים מותאמים אישית:"
347
+
348
+ #: settings.php:819
349
  msgid "Custom elements added to your website!"
350
  msgstr "אלמנטים מותאמים אישית התווספו לאתר שלך!"
351
 
352
+ #: settings.php:827
353
  msgid "Font can now be used in your website!"
354
  msgstr "כעת ניתן להשתמש בגופן באתר האינטרנט שלך!"
355
 
356
+ #: settings.php:835
357
  msgid "Font deleted from your website!"
358
  msgstr "גופן נמחק מהאתר שלך!"
359
 
360
+ #: settings.php:843
361
  msgid "The file has been uploaded!"
362
  msgstr "הקובץ הועלה בהצלחה."
363
 
364
+ #: settings.php:851
365
  msgid "Error uploading the file: "
366
  msgstr "שגיאה בהעלאת הקובץ:"
367
 
368
+ #: settings.php:859
369
  msgid "Error adding font to website fonts: "
370
  msgstr "שגיאה בעת הוספת גופן לאתר:"
371
 
372
+ #: settings.php:867
373
  msgid "Error deleting font: "
374
  msgstr "שגיאה במחיקת גופן:"
375
 
376
+ #: settings.php:875
377
  msgid "Failed to open or create the css file. Check for permissions."
378
  msgstr "לא ניתן לפתוח או ליצור את קובץ ה-css. בדוק אם יש הרשאות."
379
 
380
+ #: settings.php:917
381
  msgid "Google API Key"
382
  msgstr "מפתח API של גוגל"
383
 
384
+ #: settings.php:924
385
  msgid "Show Font Family Preview"
386
  msgstr "טען תצוגה מקדימה לגופנים"
387
 
388
+ #: settings.php:934
389
  msgid "Access Settings Role"
390
  msgstr "רמת הרשאה להגדרות"
391
 
392
+ #: settings.php:1046
393
  msgid "This is the general settings for the site."
394
  msgstr "אלה הם הגדרות כלליות עבור התוסף."
395
 
396
+ #: settings.php:1065
397
  #, php-format
398
  msgid ""
399
  "To get all the fonts, Google requires the mandatory use of an API key, get "
402
  "כדי לקבל את כל הגופנים, גוגל מחייב שימוש ב-API, ניתן לקבל אחד מ<a href=\"%s"
403
  "\" target=\"_blank\">כאן</a> בחינם ובמהירות."
404
 
405
+ #: settings.php:1066
406
+ #, php-format
407
+ msgid " Need help? Click <a href=\"%s\" target=\"_blank\">here</a>"
408
+ msgstr "צריך עזרה? לחץ <a href=\"%s\" target=\"_blank\">כאן</a>"
409
+
410
+ #: settings.php:1089
411
  msgid "Include Font Family Preview"
412
  msgstr "הוסף גופן לדף זה לצפיה בתוצגה מוקדמת"
413
 
414
+ #: settings.php:1091
415
  msgid "Show font preview when listing the fonts (might be slow)"
416
  msgstr "הצג תצוגה מקדימה של הגופן ברשימה של גופנים (עשוי להיות איטי)."
417
 
418
+ #: settings.php:1143 settings.php:1160
419
  msgid "Include !important to this element to always apply."
420
  msgstr "הוסף תגית important! על מנת שגופן זה תמיד יופיע."
421
 
422
+ #: settings.php:1172
423
  msgid "Default"
424
  msgstr "ברירת מחדל"
425
 
445
  msgid "https://hivewebstudios.com"
446
  msgstr "https://hivewebstudios.com"
447
 
448
+ #~ msgid "Font file is not valid."
449
+ #~ msgstr "קובץ הגופן אינו חוקי."
450
+
451
+ #~ msgid "Font Name"
452
+ #~ msgstr "שם גופן"
453
+
454
+ #~ msgid "Font File"
455
+ #~ msgstr "קובץ הגופן"
456
+
457
+ #~ msgid "Add Another Font File"
458
+ #~ msgstr "הוסף עוד קובץ גופן"
459
+
460
  #~ msgid ""
461
  #~ "Name the font you want to upload and upload all the files types for this "
462
  #~ "font. In order to support more browsers you can click the green plus to "
languages/font-organizer.pot CHANGED
@@ -2,7 +2,7 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Font Organizer\n"
5
- "POT-Creation-Date: 2016-12-01 22:45+0200\n"
6
  "PO-Revision-Date: 2016-11-09 15:53+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
@@ -27,7 +27,7 @@ msgstr ""
27
  msgid "Custom Elements"
28
  msgstr ""
29
 
30
- #: classes/class-ElementsTable.php:73 settings.php:1065 settings.php:1082
31
  msgid "Important"
32
  msgstr ""
33
 
@@ -47,7 +47,7 @@ msgstr ""
47
  msgid "No custom elements found."
48
  msgstr ""
49
 
50
- #: font-organizer.php:139 settings.php:196 settings.php:373
51
  msgid "Font Settings"
52
  msgstr ""
53
 
@@ -111,142 +111,168 @@ msgstr ""
111
  msgid "<a> Font"
112
  msgstr ""
113
 
114
- #: settings.php:327
115
  msgid "Google API key is not valid: "
116
  msgstr ""
117
 
118
- #: settings.php:330
119
  msgid "Google API key is not set! Cannot display google fonts."
120
  msgstr ""
121
 
122
- #: settings.php:384
123
  msgid "General Settings"
124
  msgstr ""
125
 
126
- #: settings.php:400
127
  msgid "1. Add Fonts"
128
  msgstr ""
129
 
130
- #: settings.php:402
131
  msgid ""
132
  "Step 1: Select and add fonts to be used in your website. Select as many as "
133
  "you wish."
134
  msgstr ""
135
 
136
- #: settings.php:404
137
  msgid "You can select google or regular fonts."
138
  msgstr ""
139
 
140
- #: settings.php:408
141
  msgid "Available Fonts"
142
  msgstr ""
143
 
144
- #: settings.php:415
145
  msgid "Use This Font"
146
  msgstr ""
147
 
148
- #: settings.php:426
149
  msgid "2. Custom Fonts"
150
  msgstr ""
151
 
152
- #: settings.php:428
153
  msgid ""
154
  "Step 2: Upload custom fonts to be used in your website. Here too, you can "
155
  "upload as many as you wish."
156
  msgstr ""
157
 
158
- #: settings.php:430
159
  msgid ""
160
  "Name the font you want to upload and upload all the files formats for this "
161
  "font. In order to support more browsers you can click the green plus to "
162
  "upload more font formats. We suggest .woff and .woff2."
163
  msgstr ""
164
 
165
- #: settings.php:434
166
- msgid "Font Name"
167
  msgstr ""
168
 
169
- #: settings.php:439
170
- msgid "Font File"
 
 
 
 
171
  msgstr ""
172
 
173
- #: settings.php:443
174
  msgid "Accepted Font Format : "
175
  msgstr ""
176
 
177
- #: settings.php:446
178
- msgid "Add Another Font File"
179
  msgstr ""
180
 
181
- #: settings.php:453
182
  msgid "Upload"
183
  msgstr ""
184
 
185
- #: settings.php:464
186
  msgid "3. Known Elements Settings"
187
  msgstr ""
188
 
189
- #: settings.php:467
190
  msgid ""
191
  "Step 3: For each element you can assign a font you have added in step 1 & 2."
192
  msgstr ""
193
 
194
- #: settings.php:468
195
  msgid "Note: "
196
  msgstr ""
197
 
198
- #: settings.php:468
199
  msgid "Custom fonts you uploaded are automatically used in your website."
200
  msgstr ""
201
 
202
- #: settings.php:484
 
 
 
 
 
 
203
  msgid "4. Custom Elements Settings"
204
  msgstr ""
205
 
206
- #: settings.php:487
207
  msgid ""
208
  "Step 4: Assign font that you have added to your website to custom elements."
209
  msgstr ""
210
 
211
- #: settings.php:491 settings.php:525
212
  msgid "Font"
213
  msgstr ""
214
 
215
- #: settings.php:492 settings.php:526
216
  msgid "-- Select Font --"
217
  msgstr ""
218
 
219
- #: settings.php:495
 
 
 
 
220
  msgid "Custom Element"
221
  msgstr ""
222
 
223
- #: settings.php:498
 
 
 
 
224
  msgid ""
225
  "Custom elements can be seperated by commas to allow multiple elements. "
226
  "Example: #myelementid, .myelementclass, .myelementclass .foo, etc."
227
  msgstr ""
228
 
229
- #: settings.php:509
230
  msgid "Apply Custom Elements"
231
  msgstr ""
232
 
233
- #: settings.php:520
234
  msgid "5. Manage Fonts"
235
  msgstr ""
236
 
237
- #: settings.php:535
 
 
 
 
 
 
 
 
238
  msgid "Source"
239
  msgstr ""
240
 
241
- #: settings.php:539
242
  msgid "Urls"
243
  msgstr ""
244
 
245
- #: settings.php:574
246
  msgid "Thank you"
247
  msgstr ""
248
 
249
- #: settings.php:579
250
  msgid ""
251
  "Thank you for using an <a href=\"http://hivewebstudios.com\" target=\"_blank"
252
  "\">Hive</a> plugin! We 5 star you already, so why don't you <a href="
@@ -254,122 +280,131 @@ msgid ""
254
  "post\" target=\"_blank\">5 star us too</a>?"
255
  msgstr ""
256
 
257
- #: settings.php:581
258
  msgid "Anyway, if you need anything, this may help:"
259
  msgstr ""
260
 
261
- #: settings.php:583
262
  msgid "FAQ"
263
  msgstr ""
264
 
265
- #: settings.php:584
266
  msgid "Support forums"
267
  msgstr ""
268
 
269
- #: settings.php:585
270
  msgid "Contact us"
271
  msgstr ""
272
 
273
- #: settings.php:586
274
  msgid "Hive Facebook page"
275
  msgstr ""
276
 
277
- #: settings.php:599 settings.php:628 settings.php:643 settings.php:662
278
  msgid "Session ended, please try again."
279
  msgstr ""
280
 
281
- #: settings.php:605
282
  msgid "Font name is empty or invalid."
283
  msgstr ""
284
 
285
- #: settings.php:610
286
  msgid "Font file is not selected."
287
  msgstr ""
288
 
289
- #: settings.php:618
290
- msgid "Font file is not valid."
291
  msgstr ""
292
 
293
- #: settings.php:634
294
  msgid "Usable font is empty or invalid."
295
  msgstr ""
296
 
297
- #: settings.php:649
298
  msgid "Custom elements is empty or invalid."
299
  msgstr ""
300
 
301
- #: settings.php:668
302
  msgid "Something went horribly wrong. Ask the support!"
303
  msgstr ""
304
 
305
- #: settings.php:744
 
 
 
 
306
  msgid "Custom elements added to your website!"
307
  msgstr ""
308
 
309
- #: settings.php:752
310
  msgid "Font can now be used in your website!"
311
  msgstr ""
312
 
313
- #: settings.php:760
314
  msgid "Font deleted from your website!"
315
  msgstr ""
316
 
317
- #: settings.php:768
318
  msgid "The file has been uploaded!"
319
  msgstr ""
320
 
321
- #: settings.php:776
322
  msgid "Error uploading the file: "
323
  msgstr ""
324
 
325
- #: settings.php:784
326
  msgid "Error adding font to website fonts: "
327
  msgstr ""
328
 
329
- #: settings.php:792
330
  msgid "Error deleting font: "
331
  msgstr ""
332
 
333
- #: settings.php:800
334
  msgid "Failed to open or create the css file. Check for permissions."
335
  msgstr ""
336
 
337
- #: settings.php:842
338
  msgid "Google API Key"
339
  msgstr ""
340
 
341
- #: settings.php:849
342
  msgid "Show Font Family Preview"
343
  msgstr ""
344
 
345
- #: settings.php:859
346
  msgid "Access Settings Role"
347
  msgstr ""
348
 
349
- #: settings.php:971
350
  msgid "This is the general settings for the site."
351
  msgstr ""
352
 
353
- #: settings.php:990
354
  #, php-format
355
  msgid ""
356
  "To get all the fonts, Google requires the mandatory use of an API key, get "
357
  "one from <a href=\"%s\" target=\"_blank\">HERE</a>"
358
  msgstr ""
359
 
360
- #: settings.php:1014
 
 
 
 
 
361
  msgid "Include Font Family Preview"
362
  msgstr ""
363
 
364
- #: settings.php:1016
365
  msgid "Show font preview when listing the fonts (might be slow)"
366
  msgstr ""
367
 
368
- #: settings.php:1068 settings.php:1085
369
  msgid "Include !important to this element to always apply."
370
  msgstr ""
371
 
372
- #: settings.php:1097
373
  msgid "Default"
374
  msgstr ""
375
 
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Font Organizer\n"
5
+ "POT-Creation-Date: 2016-12-14 19:54+0200\n"
6
  "PO-Revision-Date: 2016-11-09 15:53+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
27
  msgid "Custom Elements"
28
  msgstr ""
29
 
30
+ #: classes/class-ElementsTable.php:73 settings.php:1140 settings.php:1157
31
  msgid "Important"
32
  msgstr ""
33
 
47
  msgid "No custom elements found."
48
  msgstr ""
49
 
50
+ #: font-organizer.php:194 settings.php:204 settings.php:378
51
  msgid "Font Settings"
52
  msgstr ""
53
 
111
  msgid "<a> Font"
112
  msgstr ""
113
 
114
+ #: settings.php:332
115
  msgid "Google API key is not valid: "
116
  msgstr ""
117
 
118
+ #: settings.php:335
119
  msgid "Google API key is not set! Cannot display google fonts."
120
  msgstr ""
121
 
122
+ #: settings.php:389
123
  msgid "General Settings"
124
  msgstr ""
125
 
126
+ #: settings.php:405
127
  msgid "1. Add Fonts"
128
  msgstr ""
129
 
130
+ #: settings.php:407
131
  msgid ""
132
  "Step 1: Select and add fonts to be used in your website. Select as many as "
133
  "you wish."
134
  msgstr ""
135
 
136
+ #: settings.php:409
137
  msgid "You can select google or regular fonts."
138
  msgstr ""
139
 
140
+ #: settings.php:413
141
  msgid "Available Fonts"
142
  msgstr ""
143
 
144
+ #: settings.php:420
145
  msgid "Use This Font"
146
  msgstr ""
147
 
148
+ #: settings.php:431
149
  msgid "2. Custom Fonts"
150
  msgstr ""
151
 
152
+ #: settings.php:433
153
  msgid ""
154
  "Step 2: Upload custom fonts to be used in your website. Here too, you can "
155
  "upload as many as you wish."
156
  msgstr ""
157
 
158
+ #: settings.php:435
159
  msgid ""
160
  "Name the font you want to upload and upload all the files formats for this "
161
  "font. In order to support more browsers you can click the green plus to "
162
  "upload more font formats. We suggest .woff and .woff2."
163
  msgstr ""
164
 
165
+ #: settings.php:439
166
+ msgid "Font Weight Name"
167
  msgstr ""
168
 
169
+ #: settings.php:440
170
+ msgid "Font weight name cannot be empty."
171
+ msgstr ""
172
+
173
+ #: settings.php:444
174
+ msgid "Font Weight File"
175
  msgstr ""
176
 
177
+ #: settings.php:448
178
  msgid "Accepted Font Format : "
179
  msgstr ""
180
 
181
+ #: settings.php:451 settings.php:452
182
+ msgid "Add Another Font Format File"
183
  msgstr ""
184
 
185
+ #: settings.php:459
186
  msgid "Upload"
187
  msgstr ""
188
 
189
+ #: settings.php:470
190
  msgid "3. Known Elements Settings"
191
  msgstr ""
192
 
193
+ #: settings.php:473
194
  msgid ""
195
  "Step 3: For each element you can assign a font you have added in step 1 & 2."
196
  msgstr ""
197
 
198
+ #: settings.php:474
199
  msgid "Note: "
200
  msgstr ""
201
 
202
+ #: settings.php:474
203
  msgid "Custom fonts you uploaded are automatically used in your website."
204
  msgstr ""
205
 
206
+ #: settings.php:475
207
+ msgid ""
208
+ "In case of font not displaying in your website after saving, try clear the "
209
+ "cache using Shift+F5 or Ctrl+Shift+Delete to clear all."
210
+ msgstr ""
211
+
212
+ #: settings.php:490
213
  msgid "4. Custom Elements Settings"
214
  msgstr ""
215
 
216
+ #: settings.php:493
217
  msgid ""
218
  "Step 4: Assign font that you have added to your website to custom elements."
219
  msgstr ""
220
 
221
+ #: settings.php:497 settings.php:534
222
  msgid "Font"
223
  msgstr ""
224
 
225
+ #: settings.php:498 settings.php:537
226
  msgid "-- Select Font --"
227
  msgstr ""
228
 
229
+ #: settings.php:498
230
+ msgid "You must select a font for the elements."
231
+ msgstr ""
232
+
233
+ #: settings.php:503
234
  msgid "Custom Element"
235
  msgstr ""
236
 
237
+ #: settings.php:507
238
+ msgid "Font custom elements cannot be empty."
239
+ msgstr ""
240
+
241
+ #: settings.php:508
242
  msgid ""
243
  "Custom elements can be seperated by commas to allow multiple elements. "
244
  "Example: #myelementid, .myelementclass, .myelementclass .foo, etc."
245
  msgstr ""
246
 
247
+ #: settings.php:519
248
  msgid "Apply Custom Elements"
249
  msgstr ""
250
 
251
+ #: settings.php:530
252
  msgid "5. Manage Fonts"
253
  msgstr ""
254
 
255
+ #: settings.php:549
256
+ msgid "Delete Font"
257
+ msgstr ""
258
+
259
+ #: settings.php:549
260
+ msgid "Are you sure you want to delete this font from your website?"
261
+ msgstr ""
262
+
263
+ #: settings.php:560
264
  msgid "Source"
265
  msgstr ""
266
 
267
+ #: settings.php:564
268
  msgid "Urls"
269
  msgstr ""
270
 
271
+ #: settings.php:599
272
  msgid "Thank you"
273
  msgstr ""
274
 
275
+ #: settings.php:604
276
  msgid ""
277
  "Thank you for using an <a href=\"http://hivewebstudios.com\" target=\"_blank"
278
  "\">Hive</a> plugin! We 5 star you already, so why don't you <a href="
280
  "post\" target=\"_blank\">5 star us too</a>?"
281
  msgstr ""
282
 
283
+ #: settings.php:606
284
  msgid "Anyway, if you need anything, this may help:"
285
  msgstr ""
286
 
287
+ #: settings.php:608
288
  msgid "FAQ"
289
  msgstr ""
290
 
291
+ #: settings.php:609
292
  msgid "Support forums"
293
  msgstr ""
294
 
295
+ #: settings.php:610
296
  msgid "Contact us"
297
  msgstr ""
298
 
299
+ #: settings.php:611
300
  msgid "Hive Facebook page"
301
  msgstr ""
302
 
303
+ #: settings.php:624 settings.php:660 settings.php:675 settings.php:694
304
  msgid "Session ended, please try again."
305
  msgstr ""
306
 
307
+ #: settings.php:630
308
  msgid "Font name is empty or invalid."
309
  msgstr ""
310
 
311
+ #: settings.php:635
312
  msgid "Font file is not selected."
313
  msgstr ""
314
 
315
+ #: settings.php:651
316
+ msgid "Font file(s) not selected."
317
  msgstr ""
318
 
319
+ #: settings.php:666
320
  msgid "Usable font is empty or invalid."
321
  msgstr ""
322
 
323
+ #: settings.php:681
324
  msgid "Custom elements is empty or invalid."
325
  msgstr ""
326
 
327
+ #: settings.php:701
328
  msgid "Something went horribly wrong. Ask the support!"
329
  msgstr ""
330
 
331
+ #: settings.php:812
332
+ msgid "Error adding custom elements: "
333
+ msgstr ""
334
+
335
+ #: settings.php:819
336
  msgid "Custom elements added to your website!"
337
  msgstr ""
338
 
339
+ #: settings.php:827
340
  msgid "Font can now be used in your website!"
341
  msgstr ""
342
 
343
+ #: settings.php:835
344
  msgid "Font deleted from your website!"
345
  msgstr ""
346
 
347
+ #: settings.php:843
348
  msgid "The file has been uploaded!"
349
  msgstr ""
350
 
351
+ #: settings.php:851
352
  msgid "Error uploading the file: "
353
  msgstr ""
354
 
355
+ #: settings.php:859
356
  msgid "Error adding font to website fonts: "
357
  msgstr ""
358
 
359
+ #: settings.php:867
360
  msgid "Error deleting font: "
361
  msgstr ""
362
 
363
+ #: settings.php:875
364
  msgid "Failed to open or create the css file. Check for permissions."
365
  msgstr ""
366
 
367
+ #: settings.php:917
368
  msgid "Google API Key"
369
  msgstr ""
370
 
371
+ #: settings.php:924
372
  msgid "Show Font Family Preview"
373
  msgstr ""
374
 
375
+ #: settings.php:934
376
  msgid "Access Settings Role"
377
  msgstr ""
378
 
379
+ #: settings.php:1046
380
  msgid "This is the general settings for the site."
381
  msgstr ""
382
 
383
+ #: settings.php:1065
384
  #, php-format
385
  msgid ""
386
  "To get all the fonts, Google requires the mandatory use of an API key, get "
387
  "one from <a href=\"%s\" target=\"_blank\">HERE</a>"
388
  msgstr ""
389
 
390
+ #: settings.php:1066
391
+ #, php-format
392
+ msgid " Need help? Click <a href=\"%s\" target=\"_blank\">here</a>"
393
+ msgstr ""
394
+
395
+ #: settings.php:1089
396
  msgid "Include Font Family Preview"
397
  msgstr ""
398
 
399
+ #: settings.php:1091
400
  msgid "Show font preview when listing the fonts (might be slow)"
401
  msgstr ""
402
 
403
+ #: settings.php:1143 settings.php:1160
404
  msgid "Include !important to this element to always apply."
405
  msgstr ""
406
 
407
+ #: settings.php:1172
408
  msgid "Default"
409
  msgstr ""
410
 
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Font Organizer ===
2
  Contributors: hivewebstudios,basaar,yardensade
3
  Tags: fonts,google fonts,upload font,font,google
4
- Requires at least: 3.0.1
5
- Tested up to: 4.6.1
6
- Stable tag: 1.1.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -18,7 +18,7 @@ them to different elements in your website effortlessly.
18
 
19
  Want to find out more? go to [our website](https://hivewebstudios.com/ "HiveWebStudios website") and find out more from us.
20
 
21
- Want to try us? Use [Addendio's](https://Addendio.com/ "Addendio's website") [Font Organizer live demo](https://addendio.com/try-plugin/?slug=font-organizer "live demo")!
22
 
23
  Key Features:
24
 
@@ -26,6 +26,10 @@ Key Features:
26
  * Multi upload allow you to upload more font formats to support more browsers.
27
  * Add any google fonts in one click and apply them on any element.
28
  * Apply fonts for known elements or custom elements of your choosing easily.
 
 
 
 
29
  * It's awesome like its users.
30
 
31
  == Installation ==
@@ -56,9 +60,10 @@ Click on "Create credentials" > "API key".
56
  There you go, google generated a brand new API key for you.
57
  Copy the entire key and paste it on the designated place in the plugin settings.
58
 
59
- In order to enable the API key go to API Manager dashboard or use the link: "https://console.developers.google.com/apis/dashboard"
60
- Press "ENABLE API", Then Choose "Web Fonts Developer API" under "Other popular APIs" section.
61
 
 
62
 
63
  Q: What the option "Show Font Family Preview" means?
64
 
@@ -70,6 +75,23 @@ Q: What the option "Access Settings Role" means?
70
 
71
  A: We wanted to give you the option to decide which roles in your wordpress website are allowed to use the plugin, so you may or may not allow other users with access to the website the ability to use the plugin.
72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  == Screenshots ==
74
 
75
  1. Choosing Google & uploading fonts in just 1 step.
@@ -79,6 +101,17 @@ A: We wanted to give you the option to decide which roles in your wordpress webs
79
 
80
  == Changelog ==
81
 
 
 
 
 
 
 
 
 
 
 
 
82
  = 1.1.0 =
83
  * Added Multi-upload to upload more formats per font to support more browsers.
84
  * Added back to top button.
1
  === Font Organizer ===
2
  Contributors: hivewebstudios,basaar,yardensade
3
  Tags: fonts,google fonts,upload font,font,google
4
+ Requires at least: 3.8
5
+ Tested up to: 4.7
6
+ Stable tag: 1.2.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
18
 
19
  Want to find out more? go to [our website](https://hivewebstudios.com/ "HiveWebStudios website") and find out more from us.
20
 
21
+ Want to try us? Use Addendio's [Font Organizer live demo](https://addendio.com/try-plugin/?slug=font-organizer "live demo")!
22
 
23
  Key Features:
24
 
26
  * Multi upload allow you to upload more font formats to support more browsers.
27
  * Add any google fonts in one click and apply them on any element.
28
  * Apply fonts for known elements or custom elements of your choosing easily.
29
+ * Delete and remove fonts from your website in one click.
30
+ * Choose your fonts & font sizes in the editor (tinyMCE & tinyMCE Advanced).
31
+ * Our code is extremely clean, well written, and optimized for maximum performance for your website.
32
+ * Full support for language translation, including RTL languages.
33
  * It's awesome like its users.
34
 
35
  == Installation ==
60
  There you go, google generated a brand new API key for you.
61
  Copy the entire key and paste it on the designated place in the plugin settings.
62
 
63
+ In order to enable the API key go to API Manager dashboard or use the link: "https://console.developers.google.com/apis/dashboard"
64
+ Press "ENABLE API", Then Choose "Web Fonts Developer API" under "Other popular APIs" section. - This step is a must.
65
 
66
+ Congrats, your API key is now enabled.
67
 
68
  Q: What the option "Show Font Family Preview" means?
69
 
75
 
76
  A: We wanted to give you the option to decide which roles in your wordpress website are allowed to use the plugin, so you may or may not allow other users with access to the website the ability to use the plugin.
77
 
78
+ Q: Why can't I see assigned fonts even after I have done everything correctly?
79
+
80
+ A: Sometimes some browsers save a cached version of the page when browsing it to display it faster.
81
+ If you can't see a new font you have assigned, make sure to clean the cache using Shift+F5 to clean the current page, or Ctrl+Shift+Delete to clean all. (Some websites might use cache plugin that must be refreshed before)
82
+
83
+ Q: I have some element in the website - and the font would not change for it, what do I do?
84
+
85
+ A: In some cases some elements are assigned with fonts in a very specific ways via other plugins or themes, and thus you will need to target those elements using CSS id or class, in section 4 of the plugin "Custom Elements Settings".
86
+ If you have absolutley no knowledge of what is CSS, you might need help of a webmaster.
87
+
88
+ Q: I have bought a font and it came with many font weights, what is the best way to upload all of them using the plugin?
89
+
90
+ A: Each upload process at the moment is used for 1 font weight only.
91
+ Uploading more then 1 font weight is done by doing the upload process several times, once for each font weight.
92
+ When uploading the font weight you should write its weight in the font name.
93
+ Example: "Arial Bold" or "Arial Italic", so you could easily use them later in the plugin.
94
+
95
  == Screenshots ==
96
 
97
  1. Choosing Google & uploading fonts in just 1 step.
101
 
102
  == Changelog ==
103
 
104
+ = 1.2.0 =
105
+ * Added fonts in your website and font sizes selection in the editor (tinyMCE & tinyMCE Advanced).
106
+ * Added option to delete of fonts in your website in section 5.
107
+ * Added validation in required fields.
108
+ * Added link to FAQs in Google API key field.
109
+ * Added support Wordpress 4.7 version.
110
+ * Fixed PHP 7 requirment.
111
+ * Added more FAQs.
112
+ * Fixed a few minor bugs.
113
+ * Better usability and general guiding.
114
+
115
  = 1.1.0 =
116
  * Added Multi-upload to upload more formats per font to support more browsers.
117
  * Added back to top button.
settings.php CHANGED
@@ -8,6 +8,8 @@ class FoSettingsPage
8
  */
9
  const CUSTOM_FONT_URL_SPERATOR = ';';
10
 
 
 
11
  /**
12
  * Holds the option values for the general section.
13
  */
@@ -112,9 +114,7 @@ class FoSettingsPage
112
  public function __construct()
113
  {
114
  require_once FO_ABSPATH . 'classes/class-ElementsTable.php';
115
-
116
- add_action( 'admin_menu', array( $this, 'add_plugin_page' ) );
117
- add_action( 'admin_init', array( $this, 'page_init' ) );
118
 
119
  $this->fonts_per_link = 150;
120
  $this->supported_font_files = array('.woff', '.woff2', '.ttf','.otf');
@@ -158,6 +158,8 @@ class FoSettingsPage
158
  if($args = $this->validate_delete_usable()){
159
  $this->delete_font($args);
160
  $this->should_create_css = true;
 
 
161
  }else{
162
  add_action( 'admin_notices', array($this, 'delete_font_failed_admin_notice') );
163
  }
@@ -171,6 +173,13 @@ class FoSettingsPage
171
  add_action( 'admin_notices', array($this, 'add_custom_elements_failed_admin_notice') );
172
  }
173
  }
 
 
 
 
 
 
 
174
  }
175
 
176
  /**
@@ -182,7 +191,6 @@ class FoSettingsPage
182
  wp_enqueue_script( 'fo-settings-script', plugins_url( 'assets/js/settings.js', __FILE__ ) , array( 'jquery' ) );
183
  wp_enqueue_style( 'fo-settings-css', plugins_url( 'assets/css/settings.css', __FILE__ ) );
184
  wp_enqueue_style( 'fontawesome', plugins_url( 'assets/css/font-awesome.min.css', __FILE__ ) );
185
-
186
  }
187
 
188
  /**
@@ -216,15 +224,18 @@ class FoSettingsPage
216
  $this->init();
217
  }
218
 
219
- public function create_css_file(){
220
- global $css_full_file_path;
221
- global $css_directory_path;
 
222
 
223
- if((!isset($_GET['settings-updated']) || !$_GET['settings-updated']) && !$this->should_create_css){
224
  return;
225
  }
226
 
227
- $content = "/* This Awesome CSS file was created by Font Orgranizer from Hive :) */\n\n";
 
 
228
  $custom_fonts_content = '';
229
  $google_fonts = array();
230
  foreach ($this->usable_fonts as $key => $usable_font) {
@@ -273,6 +284,14 @@ class FoSettingsPage
273
  // Add the custom fonts css that was created before.
274
  $content .= $custom_fonts_content;
275
 
 
 
 
 
 
 
 
 
276
  // Add the known elements css.
277
  foreach ($this->elements_options as $key => $value) {
278
  if(strpos($key, 'important') || !$value)
@@ -289,21 +308,7 @@ class FoSettingsPage
289
  }
290
 
291
  // If there is any css to write. Create the directory if needed and create the file.
292
- if($content){
293
-
294
- // Make sure directory exists.
295
- if(!is_dir($css_directory_path))
296
- mkdir($css_directory_path, 0755, true);
297
-
298
- $fhandler = fopen($css_full_file_path, "w");
299
- if(!$fhandler){
300
- add_action( 'admin_notices', array($this, 'generate_css_failed_admin_notice') );
301
- return;
302
- }
303
-
304
- fwrite($fhandler, $content);
305
- fclose($fhandler);
306
- }
307
  }
308
 
309
  /**
@@ -331,7 +336,7 @@ class FoSettingsPage
331
  }
332
 
333
  // Add known fonts.
334
- $this->known_fonts = $this->get_known_fonts_array();
335
 
336
  // Add early access google fonts. (this list is static, no api to get full list)
337
  $this->earlyaccess_fonts = $this->get_early_access_fonts_array();
@@ -340,7 +345,7 @@ class FoSettingsPage
340
  $this->google_fonts = array_merge($this->google_fonts, $this->earlyaccess_fonts);
341
  fo_array_sort($this->google_fonts);
342
 
343
- $this->available_fonts = array_merge($this->available_fonts, $this->google_fonts, $this->known_fonts );
344
 
345
  // Get all usable fonts and add them to a list.
346
  $this->load_usable_fonts();
@@ -428,22 +433,23 @@ class FoSettingsPage
428
  <span><?php _e('Step 2: Upload custom fonts to be used in your website. Here too, you can upload as many as you wish.', 'font-organizer'); ?></span>
429
  <br />
430
  <span><?php _e('Name the font you want to upload and upload all the files formats for this font. In order to support more browsers you can click the green plus to upload more font formats. We suggest .woff and .woff2.', 'font-organizer'); ?></span>
431
- <form action="" id="add_font_form" name="add_font_form" method="post" enctype="multipart/form-data">
432
  <table class="form-table">
433
  <tr>
434
- <th scope="row"><?php _e('Font Name', 'font-organizer'); ?></th>
435
- <td><input type="text" id="font_name" name="font_name" value="" maxlength="20" class="required" /></td>
436
  </tr>
437
  <tr class="font_file_wrapper">
438
  <th scope="row">
439
- <?php _e('Font File', 'font-organizer'); ?>
440
  </th>
441
  <td id="font_file_parent" style="width:33%;">
442
- <input type="file" class="required" name="font_file[]" value="" accept="<?php echo join(',',$this->supported_font_files); ?>" /><br/>
443
  <em><?php echo __('Accepted Font Format : ', 'font-organizer') . '<span style="direction: ltr">' . join(', ',$this->supported_font_files) . '</span>'; ?></em><br/>
444
  </td>
445
  <td>
446
- <a href="javascript:void(0);" class="add_button" title="<?php _e('Add Another Font File', 'font-organizer'); ?>"><i class="fa fa-plus fa-2x" aria-hidden="true"></i></a>
 
447
  </td>
448
  </tr>
449
  <tr>
@@ -465,8 +471,8 @@ class FoSettingsPage
465
  <div class="inside">
466
 
467
  <span><?php _e('Step 3: For each element you can assign a font you have added in step 1 & 2.', 'font-organizer'); ?></span>
468
- <p><strong><?php _e('Note: ', 'font-organizer'); ?></strong><?php _e('Custom fonts you uploaded are automatically used in your website.', 'font-organizer'); ?></p>
469
-
470
  <form method="post" action="options.php">
471
  <?php
472
  // This prints out all hidden setting fields
@@ -485,16 +491,20 @@ class FoSettingsPage
485
  <div class="inside">
486
 
487
  <span><?php _e('Step 4: Assign font that you have added to your website to custom elements.', 'font-organizer'); ?></span>
488
- <form action="" id="add_custom_elements_form" name="add_custom_elements_form" method="post">
489
  <table class="form-table">
490
  <tr>
491
- <th scope="row"><?php _e('Font', 'font-organizer'); ?></th>
492
- <td><?php $this->print_custom_elements_usable_fonts_list('font_id', __('-- Select Font --', 'font-organizer')); ?></td>
493
  </tr>
494
  <tr>
495
- <th scope="row"><?php _e('Custom Element', 'font-organizer'); ?></th>
 
 
 
 
496
  <td>
497
- <textarea id="custom_elements" name="custom_elements" style="width: 100%" rows="2"></textarea>
498
  <em><?php _e('Custom elements can be seperated by commas to allow multiple elements. Example: #myelementid, .myelementclass, .myelementclass .foo, etc.', 'font-organizer'); ?></em>
499
  </td>
500
  </tr>
@@ -519,15 +529,30 @@ class FoSettingsPage
519
  <a name="step6"></a>
520
  <h2 class="hndle ui-sortable-handle" style="cursor:default;"><span><?php _e('5. Manage Fonts', 'font-organizer'); ?></span></h2>
521
  <div class="inside">
522
- <form action="#step6" id="select_font_form" name="select_font_form" method="get">
523
  <table class="form-table">
524
  <tr>
525
  <th scope="row"><?php _e('Font', 'font-organizer'); ?></th>
526
- <td><?php $this->print_custom_elements_usable_fonts_list('manage_font_id', __('-- Select Font --', 'font-organizer')); ?></td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  </tr>
528
  </table>
529
- <input type="hidden" name="page" value="<?php echo wp_unslash( $_REQUEST['page'] ); ?>">
530
- </form>
531
  <?php if($this->selected_manage_font): ?>
532
  <hr/>
533
  <table class="form-table">
@@ -580,7 +605,7 @@ class FoSettingsPage
580
  <br />
581
  <p><?php _e('Anyway, if you need anything, this may help:', 'font-organizer'); ?></p>
582
  <ul style="list-style-type:disc;margin: 0 20px;">
583
- <li><a href="http://hivewebstudios.com/font-organizer#faqs" target="_blank"><?php _e('FAQ', 'font-organizer'); ?></a></li>
584
  <li><a href="https://wordpress.org/support/plugin/font-organizer" target="_blank"><?php _e('Support forums', 'font-organizer'); ?></a></li>
585
  <li><a href="http://hivewebstudios.com/font-organizer" target="_blank"><?php _e('Contact us', 'font-organizer'); ?></a></li>
586
  <li><a href="https://www.facebook.com/hivewp" target="_blank"><?php _e('Hive Facebook page', 'font-organizer'); ?></a></li>
@@ -612,12 +637,19 @@ class FoSettingsPage
612
  }
613
 
614
  $args['font_file'] = fo_rearray_files($_FILES['font_file']);
 
 
615
  foreach ($args['font_file'] as $file) {
616
- $args['font_file_name'][] = sanitize_file_name( $file['name'] );
617
- if(!$args['font_file_name']){
618
- $this->recent_error = __('Font file is not valid.', 'font-organizer');
619
- return false;
620
  }
 
 
 
 
 
 
 
621
  }
622
 
623
  return $args;
@@ -654,7 +686,7 @@ class FoSettingsPage
654
 
655
  $args['font_id'] = $_POST['font_id'];
656
 
657
- return $args;
658
  }
659
 
660
  private function validate_delete_usable(){
@@ -663,8 +695,9 @@ class FoSettingsPage
663
  return false;
664
  }
665
 
 
666
  $args['font_name'] = sanitize_text_field( $_POST['font_name'] );
667
- if(!$args['font_name']){
668
  $this->recent_error = __('Something went horribly wrong. Ask the support!', 'font-organizer');
669
  return false;
670
  }
@@ -700,15 +733,50 @@ class FoSettingsPage
700
  }
701
 
702
  private function delete_font($args = array()){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
703
  add_action( 'admin_notices', array($this, 'delete_font_successfull_admin_notice') );
704
- $this->delete_from_database($args['font_name']);
705
  }
706
 
707
- private function delete_from_database($name){
708
  global $wpdb;
709
- $table_name = $wpdb->prefix . FO_USABLE_FONTS_DATABASE;
710
-
711
- $wpdb->delete( $table_name, array( 'name' => $name ) );
712
  }
713
 
714
  private function save_custom_elements_to_database($id, $custom_elements, $important){
@@ -738,6 +806,13 @@ class FoSettingsPage
738
  }
739
 
740
 
 
 
 
 
 
 
 
741
  public function add_custom_elements_successfull_admin_notice() {
742
  ?>
743
  <div class="updated notice">
@@ -986,9 +1061,9 @@ class FoSettingsPage
986
  echo '<span class="highlight info">';
987
 
988
  $url = 'https://developers.google.com/fonts/docs/developer_api#acquiring_and_using_an_api_key';
989
-
990
  echo sprintf( __( 'To get all the fonts, Google requires the mandatory use of an API key, get one from <a href="%s" target="_blank">HERE</a>', 'font-organizer' ), esc_url( $url ) );
991
-
992
  echo '</span> <br />';
993
 
994
  printf(
@@ -1110,9 +1185,9 @@ class FoSettingsPage
1110
  /**
1111
  * Get the settings option array and print one of its values
1112
  */
1113
- private function print_custom_elements_usable_fonts_list($name, $default = '')
1114
  {
1115
- echo '<select id="'.$name.'" name="'.$name.'">';
1116
 
1117
  if($default){
1118
  echo '<option value="">'.$default.'</option>\n';
@@ -1140,7 +1215,6 @@ class FoSettingsPage
1140
  foreach($this->available_fonts as $font)
1141
  {
1142
  $font_name = $font->family;
1143
- $is_selected = $font_name === $selected ? ' selected' : '';
1144
  echo '<option value="'.$font_name.'" style="font-family: '.$font_name.';">'.$font_name.'</option>\n';
1145
  }
1146
 
@@ -1148,14 +1222,12 @@ class FoSettingsPage
1148
  }
1149
 
1150
  private function load_usable_fonts(){
1151
- global $wpdb;
1152
-
1153
- $this->usable_fonts_db = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . FO_USABLE_FONTS_DATABASE . ' ORDER BY id DESC');
1154
  foreach ( $this->usable_fonts_db as $usable_font) {
1155
 
1156
  // Find the font from the lists.
1157
  if($usable_font->custom){
1158
- $font_obj = (object) [ 'family' => $usable_font->name, 'files' => (object) ['regular' => explode(self::CUSTOM_FONT_URL_SPERATOR, $usable_font->url)], 'kind' => 'custom', 'variants' => array('regular')];
1159
  $this->usable_fonts[$font_obj->family] = $font_obj;
1160
  $this->custom_fonts[$font_obj->family] = $font_obj;
1161
  }else{
@@ -1178,329 +1250,14 @@ class FoSettingsPage
1178
  }
1179
 
1180
  private function load_custom_elements(){
1181
- global $wpdb;
1182
-
1183
- $this->custom_elements = $wpdb->get_results('SELECT e.id, u.name, e.font_id, e.custom_elements, e.important FROM ' . $wpdb->prefix . FO_ELEMENTS_DATABASE . ' as e LEFT OUTER JOIN ' . $wpdb->prefix . FO_USABLE_FONTS_DATABASE . ' as u ON ' . ' e.font_id = u.id ORDER BY e.font_id DESC');
1184
  }
1185
 
1186
  private function get_early_access_fonts_array(){
1187
  return array(
1188
- (object) [ 'family' => 'Open Sans Hebrew', 'kind' => 'earlyaccess', 'variants' => array(), 'files' => (object) ['regular' => array('http://fonts.googleapis.com/earlyaccess/opensanshebrew.css')]],
1189
- (object) [ 'family' => 'Open Sans Hebrew Condensed', 'kind' => 'earlyaccess', 'variants' => array(), 'files' => (object) ['regular' => array('http://fonts.googleapis.com/earlyaccess/opensanshebrewcondensed.css')]],
1190
- (object) [ 'family' => 'Noto Sans Hebrew', 'kind' => 'earlyaccess', 'variants' => array(), 'files' => (object) ['regular' => array('http://fonts.googleapis.com/earlyaccess/notosanshebrew.css')]],
1191
  );
1192
  }
1193
-
1194
- private function get_known_fonts_array()
1195
- {
1196
- return array(
1197
- (object) [ 'family' => 'Calibri', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1198
- (object) [ 'family' => 'Abadi MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1199
- (object) [ 'family' => 'Adobe Minion Web', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1200
- (object) [ 'family' => 'Agency FB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1201
- (object) [ 'family' => 'Aharoni', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1202
- (object) [ 'family' => 'Aldhabi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1203
- (object) [ 'family' => 'Algerian', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1204
- (object) [ 'family' => 'Almanac MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1205
- (object) [ 'family' => 'American Uncial', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1206
- (object) [ 'family' => 'Andale Mono', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1207
- (object) [ 'family' => 'Andalus', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1208
- (object) [ 'family' => 'Andy', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1209
- (object) [ 'family' => 'Angsana New', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1210
- (object) [ 'family' => 'AngsanaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1211
- (object) [ 'family' => 'Aparajita', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1212
- (object) [ 'family' => 'Arabic Transparent', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1213
- (object) [ 'family' => 'Arabic Typesetting', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1214
- (object) [ 'family' => 'Arial', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1215
- (object) [ 'family' => 'Arial Black', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1216
- (object) [ 'family' => 'Arial Narrow', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1217
- (object) [ 'family' => 'Arial Narrow Special', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1218
- (object) [ 'family' => 'Arial Rounded MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1219
- (object) [ 'family' => 'Arial Special', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1220
- (object) [ 'family' => 'Arial Unicode MS', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1221
- (object) [ 'family' => 'Augsburger Initials', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1222
- (object) [ 'family' => 'Baskerville Old Face', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1223
- (object) [ 'family' => 'Batang', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1224
- (object) [ 'family' => 'BatangChe', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1225
- (object) [ 'family' => 'Bauhaus 93', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1226
- (object) [ 'family' => 'Beesknees ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1227
- (object) [ 'family' => 'Bell MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1228
- (object) [ 'family' => 'Berlin Sans FB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1229
- (object) [ 'family' => 'Bernard MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1230
- (object) [ 'family' => 'Bickley Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1231
- (object) [ 'family' => 'Blackadder ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1232
- (object) [ 'family' => 'Bodoni MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1233
- (object) [ 'family' => 'Bodoni MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1234
- (object) [ 'family' => 'Bon Apetit MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1235
- (object) [ 'family' => 'Book Antiqua', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1236
- (object) [ 'family' => 'Bookman Old Style', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1237
- (object) [ 'family' => 'Bookshelf Symbol', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1238
- (object) [ 'family' => 'Bradley Hand ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1239
- (object) [ 'family' => 'Braggadocio', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1240
- (object) [ 'family' => 'BriemScript', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1241
- (object) [ 'family' => 'Britannic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1242
- (object) [ 'family' => 'Britannic Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1243
- (object) [ 'family' => 'Broadway', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1244
- (object) [ 'family' => 'Browallia New', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1245
- (object) [ 'family' => 'BrowalliaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1246
- (object) [ 'family' => 'Brush Script MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1247
- (object) [ 'family' => 'Calibri', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1248
- (object) [ 'family' => 'Californian FB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1249
- (object) [ 'family' => 'Calisto MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1250
- (object) [ 'family' => 'Cambria', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1251
- (object) [ 'family' => 'Cambria Math', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1252
- (object) [ 'family' => 'Candara', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1253
- (object) [ 'family' => 'Cariadings', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1254
- (object) [ 'family' => 'Castellar', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1255
- (object) [ 'family' => 'Centaur', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1256
- (object) [ 'family' => 'Century', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1257
- (object) [ 'family' => 'Century Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1258
- (object) [ 'family' => 'Century Schoolbook', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1259
- (object) [ 'family' => 'Chiller', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1260
- (object) [ 'family' => 'Colonna MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1261
- (object) [ 'family' => 'Comic Sans MS', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1262
- (object) [ 'family' => 'Consolas', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1263
- (object) [ 'family' => 'Constantia', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1264
- (object) [ 'family' => 'Contemporary Brush', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1265
- (object) [ 'family' => 'Cooper Black', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1266
- (object) [ 'family' => 'Copperplate Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1267
- (object) [ 'family' => 'Corbel', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1268
- (object) [ 'family' => 'Cordia New', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1269
- (object) [ 'family' => 'CordiaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1270
- (object) [ 'family' => 'Courier New', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1271
- (object) [ 'family' => 'Curlz MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1272
- (object) [ 'family' => 'DaunPenh', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1273
- (object) [ 'family' => 'David', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1274
- (object) [ 'family' => 'Desdemona', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1275
- (object) [ 'family' => 'DFKai-SB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1276
- (object) [ 'family' => 'DilleniaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1277
- (object) [ 'family' => 'Directions MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1278
- (object) [ 'family' => 'DokChampa', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1279
- (object) [ 'family' => 'Dotum', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1280
- (object) [ 'family' => 'DotumChe', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1281
- (object) [ 'family' => 'Ebrima', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1282
- (object) [ 'family' => 'Eckmann', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1283
- (object) [ 'family' => 'Edda', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1284
- (object) [ 'family' => 'Edwardian Script ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1285
- (object) [ 'family' => 'Elephant', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1286
- (object) [ 'family' => 'Engravers MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1287
- (object) [ 'family' => 'Enviro', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1288
- (object) [ 'family' => 'Eras ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1289
- (object) [ 'family' => 'Estrangelo Edessa', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1290
- (object) [ 'family' => 'EucrosiaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1291
- (object) [ 'family' => 'Euphemia', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1292
- (object) [ 'family' => 'Eurostile', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1293
- (object) [ 'family' => 'FangSong', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1294
- (object) [ 'family' => 'Felix Titling', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1295
- (object) [ 'family' => 'Fine Hand', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1296
- (object) [ 'family' => 'Fixed Miriam Transparent', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1297
- (object) [ 'family' => 'Flexure', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1298
- (object) [ 'family' => 'Footlight MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1299
- (object) [ 'family' => 'Forte', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1300
- (object) [ 'family' => 'Franklin Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1301
- (object) [ 'family' => 'Franklin Gothic Medium', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1302
- (object) [ 'family' => 'FrankRuehl', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1303
- (object) [ 'family' => 'FreesiaUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1304
- (object) [ 'family' => 'Freestyle Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1305
- (object) [ 'family' => 'French Script MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1306
- (object) [ 'family' => 'Futura', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1307
- (object) [ 'family' => 'Gabriola', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1308
- (object) [ 'family' => 'Gadugi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1309
- (object) [ 'family' => 'Garamond', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1310
- (object) [ 'family' => 'Garamond MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1311
- (object) [ 'family' => 'Gautami', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1312
- (object) [ 'family' => 'Georgia', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1313
- (object) [ 'family' => 'Georgia Ref', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1314
- (object) [ 'family' => 'Gigi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1315
- (object) [ 'family' => 'Gill Sans MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1316
- (object) [ 'family' => 'Gill Sans MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1317
- (object) [ 'family' => 'Gisha', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1318
- (object) [ 'family' => 'Gloucester', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1319
- (object) [ 'family' => 'Goudy Old Style', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1320
- (object) [ 'family' => 'Goudy Stout', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1321
- (object) [ 'family' => 'Gradl', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1322
- (object) [ 'family' => 'Gulim', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1323
- (object) [ 'family' => 'GulimChe', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1324
- (object) [ 'family' => 'Gungsuh', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1325
- (object) [ 'family' => 'GungsuhChe', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1326
- (object) [ 'family' => 'Haettenschweiler', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1327
- (object) [ 'family' => 'Harlow Solid Italic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1328
- (object) [ 'family' => 'Harrington', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1329
- (object) [ 'family' => 'High Tower Text', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1330
- (object) [ 'family' => 'Holidays MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1331
- (object) [ 'family' => 'Impact', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1332
- (object) [ 'family' => 'Imprint MT Shadow', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1333
- (object) [ 'family' => 'Informal Roman', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1334
- (object) [ 'family' => 'IrisUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1335
- (object) [ 'family' => 'Iskoola Pota', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1336
- (object) [ 'family' => 'JasmineUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1337
- (object) [ 'family' => 'Jokerman', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1338
- (object) [ 'family' => 'Juice ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1339
- (object) [ 'family' => 'KaiTi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1340
- (object) [ 'family' => 'Kalinga', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1341
- (object) [ 'family' => 'Kartika', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1342
- (object) [ 'family' => 'Keystrokes MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1343
- (object) [ 'family' => 'Khmer UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1344
- (object) [ 'family' => 'Kino MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1345
- (object) [ 'family' => 'KodchiangUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1346
- (object) [ 'family' => 'Kokila', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1347
- (object) [ 'family' => 'Kristen ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1348
- (object) [ 'family' => 'Kunstler Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1349
- (object) [ 'family' => 'Lao UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1350
- (object) [ 'family' => 'Latha', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1351
- (object) [ 'family' => 'LCD', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1352
- (object) [ 'family' => 'Leelawadee', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1353
- (object) [ 'family' => 'Levenim MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1354
- (object) [ 'family' => 'LilyUPC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1355
- (object) [ 'family' => 'Lucida Blackletter', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1356
- (object) [ 'family' => 'Lucida Bright', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1357
- (object) [ 'family' => 'Lucida Bright Math', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1358
- (object) [ 'family' => 'Lucida Calligraphy', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1359
- (object) [ 'family' => 'Lucida Console', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1360
- (object) [ 'family' => 'Lucida Fax', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1361
- (object) [ 'family' => 'Lucida Handwriting', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1362
- (object) [ 'family' => 'Lucida Sans', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1363
- (object) [ 'family' => 'Lucida Sans Typewriter', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1364
- (object) [ 'family' => 'Lucida Sans Unicode', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1365
- (object) [ 'family' => 'Magneto', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1366
- (object) [ 'family' => 'Maiandra GD', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1367
- (object) [ 'family' => 'Malgun Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1368
- (object) [ 'family' => 'Mangal', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1369
- (object) [ 'family' => 'Map Symbols', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1370
- (object) [ 'family' => 'Marlett', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1371
- (object) [ 'family' => 'Matisse ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1372
- (object) [ 'family' => 'Matura MT Script Capitals', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1373
- (object) [ 'family' => 'McZee', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1374
- (object) [ 'family' => 'Mead Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1375
- (object) [ 'family' => 'Meiryo', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1376
- (object) [ 'family' => 'Meiryo UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1377
- (object) [ 'family' => 'Mercurius Script MT Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1378
- (object) [ 'family' => 'Microsoft Himalaya', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1379
- (object) [ 'family' => 'Microsoft JhengHei', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1380
- (object) [ 'family' => 'Microsoft JhengHei UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1381
- (object) [ 'family' => 'Microsoft New Tai Lue', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1382
- (object) [ 'family' => 'Microsoft PhagsPa', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1383
- (object) [ 'family' => 'Microsoft Sans Serif', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1384
- (object) [ 'family' => 'Microsoft Tai Le', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1385
- (object) [ 'family' => 'Microsoft Uighur', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1386
- (object) [ 'family' => 'Microsoft YaHei', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1387
- (object) [ 'family' => 'Microsoft YaHei UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1388
- (object) [ 'family' => 'Microsoft Yi Baiti', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1389
- (object) [ 'family' => 'MingLiU', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1390
- (object) [ 'family' => 'MingLiU_HKSCS', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1391
- (object) [ 'family' => 'MingLiU_HKSCS-ExtB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1392
- (object) [ 'family' => 'MingLiU-ExtB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1393
- (object) [ 'family' => 'Minion Web', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1394
- (object) [ 'family' => 'Miriam', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1395
- (object) [ 'family' => 'Miriam Fixed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1396
- (object) [ 'family' => 'Mistral', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1397
- (object) [ 'family' => 'Modern No. 20', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1398
- (object) [ 'family' => 'Mongolian Baiti', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1399
- (object) [ 'family' => 'Monotype Corsiva', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1400
- (object) [ 'family' => 'Monotype Sorts', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1401
- (object) [ 'family' => 'Monotype.com', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1402
- (object) [ 'family' => 'MoolBoran', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1403
- (object) [ 'family' => 'MS Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1404
- (object) [ 'family' => 'MS LineDraw', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1405
- (object) [ 'family' => 'MS Mincho', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1406
- (object) [ 'family' => 'MS Outlook', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1407
- (object) [ 'family' => 'MS PGothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1408
- (object) [ 'family' => 'MS PMincho', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1409
- (object) [ 'family' => 'MS Reference', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1410
- (object) [ 'family' => 'MS UI Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1411
- (object) [ 'family' => 'MT Extra', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1412
- (object) [ 'family' => 'MV Boli', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1413
- (object) [ 'family' => 'Myanmar Text', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1414
- (object) [ 'family' => 'Narkisim', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1415
- (object) [ 'family' => 'New Caledonia', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1416
- (object) [ 'family' => 'News Gothic MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1417
- (object) [ 'family' => 'Niagara', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1418
- (object) [ 'family' => 'Nirmala UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1419
- (object) [ 'family' => 'NSimSun', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1420
- (object) [ 'family' => 'Nyala', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1421
- (object) [ 'family' => 'OCR A Extended', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1422
- (object) [ 'family' => 'OCRB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1423
- (object) [ 'family' => 'OCR-B-Digits', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1424
- (object) [ 'family' => 'Old English Text MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1425
- (object) [ 'family' => 'Onyx', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1426
- (object) [ 'family' => 'Palace Script MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1427
- (object) [ 'family' => 'Palatino Linotype', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1428
- (object) [ 'family' => 'Papyrus', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1429
- (object) [ 'family' => 'Parade', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1430
- (object) [ 'family' => 'Parchment', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1431
- (object) [ 'family' => 'Parties MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1432
- (object) [ 'family' => 'Peignot Medium', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1433
- (object) [ 'family' => 'Pepita MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1434
- (object) [ 'family' => 'Perpetua', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1435
- (object) [ 'family' => 'Perpetua Titling MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1436
- (object) [ 'family' => 'Placard Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1437
- (object) [ 'family' => 'Plantagenet Cherokee', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1438
- (object) [ 'family' => 'Playbill', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1439
- (object) [ 'family' => 'PMingLiU', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1440
- (object) [ 'family' => 'PMingLiU-ExtB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1441
- (object) [ 'family' => 'Poor Richard', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1442
- (object) [ 'family' => 'Pristina', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1443
- (object) [ 'family' => 'Raavi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1444
- (object) [ 'family' => 'Rage Italic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1445
- (object) [ 'family' => 'Ransom', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1446
- (object) [ 'family' => 'Ravie', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1447
- (object) [ 'family' => 'RefSpecialty', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1448
- (object) [ 'family' => 'Rockwell', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1449
- (object) [ 'family' => 'Rockwell Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1450
- (object) [ 'family' => 'Rockwell Extra Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1451
- (object) [ 'family' => 'Rod', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1452
- (object) [ 'family' => 'Runic MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1453
- (object) [ 'family' => 'Sakkal Majalla', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1454
- (object) [ 'family' => 'Script MT Bold', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1455
- (object) [ 'family' => 'Segoe Chess', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1456
- (object) [ 'family' => 'Segoe Print', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1457
- (object) [ 'family' => 'Segoe Pseudo', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1458
- (object) [ 'family' => 'Segoe Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1459
- (object) [ 'family' => 'Segoe UI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1460
- (object) [ 'family' => 'Segoe UI Symbol', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1461
- (object) [ 'family' => 'Shonar Bangla', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1462
- (object) [ 'family' => 'Showcard Gothic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1463
- (object) [ 'family' => 'Shruti', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1464
- (object) [ 'family' => 'Signs MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1465
- (object) [ 'family' => 'SimHei', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1466
- (object) [ 'family' => 'Simplified Arabic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1467
- (object) [ 'family' => 'Simplified Arabic Fixed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1468
- (object) [ 'family' => 'SimSun', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1469
- (object) [ 'family' => 'SimSun-ExtB', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1470
- (object) [ 'family' => 'Snap ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1471
- (object) [ 'family' => 'Sports MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1472
- (object) [ 'family' => 'Stencil', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1473
- (object) [ 'family' => 'Stop', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1474
- (object) [ 'family' => 'Sylfaen', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1475
- (object) [ 'family' => 'Symbol', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1476
- (object) [ 'family' => 'Tahoma', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1477
- (object) [ 'family' => 'Temp Installer Font', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1478
- (object) [ 'family' => 'Tempo Grunge', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1479
- (object) [ 'family' => 'Tempus Sans ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1480
- (object) [ 'family' => 'Times New Roman', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1481
- (object) [ 'family' => 'Times New Roman Special', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1482
- (object) [ 'family' => 'Traditional Arabic', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1483
- (object) [ 'family' => 'Transport MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1484
- (object) [ 'family' => 'Trebuchet MS', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1485
- (object) [ 'family' => 'Tunga', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1486
- (object) [ 'family' => 'Tw Cen MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1487
- (object) [ 'family' => 'Tw Cen MT Condensed', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1488
- (object) [ 'family' => 'Urdu Typesetting', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1489
- (object) [ 'family' => 'Utsaah', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1490
- (object) [ 'family' => 'Vacation MT', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1491
- (object) [ 'family' => 'Vani', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1492
- (object) [ 'family' => 'Verdana', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1493
- (object) [ 'family' => 'Verdana Ref', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1494
- (object) [ 'family' => 'Vijaya', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1495
- (object) [ 'family' => 'Viner Hand ITC', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1496
- (object) [ 'family' => 'Vivaldi', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1497
- (object) [ 'family' => 'Vixar ASCI', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1498
- (object) [ 'family' => 'Vladimir Script', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1499
- (object) [ 'family' => 'Vrinda', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1500
- (object) [ 'family' => 'Webdings', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1501
- (object) [ 'family' => 'Westminster', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1502
- (object) [ 'family' => 'Wide Latin', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1503
- (object) [ 'family' => 'Wingdings', 'kind' => 'standard', 'variants' => array(), 'files' => (object) ['regular' => '']],
1504
- );
1505
- }
1506
  }
8
  */
9
  const CUSTOM_FONT_URL_SPERATOR = ';';
10
 
11
+ const DEFAULT_CSS_TITLE = "/* This Awesome CSS file was created by Font Orgranizer from Hive :) */\n\n";
12
+
13
  /**
14
  * Holds the option values for the general section.
15
  */
114
  public function __construct()
115
  {
116
  require_once FO_ABSPATH . 'classes/class-ElementsTable.php';
117
+ require_once FO_ABSPATH . 'classes/class-FontsDatabaseHelper.php';
 
 
118
 
119
  $this->fonts_per_link = 150;
120
  $this->supported_font_files = array('.woff', '.woff2', '.ttf','.otf');
158
  if($args = $this->validate_delete_usable()){
159
  $this->delete_font($args);
160
  $this->should_create_css = true;
161
+ wp_cache_delete ( 'alloptions', 'options' );
162
+
163
  }else{
164
  add_action( 'admin_notices', array($this, 'delete_font_failed_admin_notice') );
165
  }
173
  add_action( 'admin_notices', array($this, 'add_custom_elements_failed_admin_notice') );
174
  }
175
  }
176
+
177
+ if(isset($_GET['action']) && $_GET['action'] == 'delete' && isset($_GET['custom_element'])){
178
+ $this->should_create_css = true;
179
+ }
180
+
181
+ add_action( 'admin_menu', array( $this, 'add_plugin_page' ) );
182
+ add_action( 'admin_init', array( $this, 'page_init' ) );
183
  }
184
 
185
  /**
191
  wp_enqueue_script( 'fo-settings-script', plugins_url( 'assets/js/settings.js', __FILE__ ) , array( 'jquery' ) );
192
  wp_enqueue_style( 'fo-settings-css', plugins_url( 'assets/css/settings.css', __FILE__ ) );
193
  wp_enqueue_style( 'fontawesome', plugins_url( 'assets/css/font-awesome.min.css', __FILE__ ) );
 
194
  }
195
 
196
  /**
224
  $this->init();
225
  }
226
 
227
+ public function create_css_file($force = false){
228
+ global $fo_css_directory_path;
229
+ global $fo_declarations_css_file_name;
230
+ global $fo_elements_css_file_name;
231
 
232
+ if(((!isset($_GET['settings-updated']) || !$_GET['settings-updated']) && !$this->should_create_css) && !$force){
233
  return;
234
  }
235
 
236
+ /* ========= Start the declartions file ========= */
237
+
238
+ $content = self::DEFAULT_CSS_TITLE;
239
  $custom_fonts_content = '';
240
  $google_fonts = array();
241
  foreach ($this->usable_fonts as $key => $usable_font) {
284
  // Add the custom fonts css that was created before.
285
  $content .= $custom_fonts_content;
286
 
287
+ // If there is any declartions css to write.
288
+ fo_try_write_file($content, $fo_css_directory_path, $fo_declarations_css_file_name, array($this, 'generate_css_failed_admin_notice'));
289
+
290
+ /* ========= Start the elements file ========= */
291
+
292
+ // Reset the content for the elements file.
293
+ $content = self::DEFAULT_CSS_TITLE;
294
+
295
  // Add the known elements css.
296
  foreach ($this->elements_options as $key => $value) {
297
  if(strpos($key, 'important') || !$value)
308
  }
309
 
310
  // If there is any css to write. Create the directory if needed and create the file.
311
+ fo_try_write_file($content, $fo_css_directory_path, $fo_elements_css_file_name, array($this, 'generate_css_failed_admin_notice'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  }
313
 
314
  /**
336
  }
337
 
338
  // Add known fonts.
339
+ $this->known_fonts = fo_get_known_fonts_array();
340
 
341
  // Add early access google fonts. (this list is static, no api to get full list)
342
  $this->earlyaccess_fonts = $this->get_early_access_fonts_array();
345
  $this->google_fonts = array_merge($this->google_fonts, $this->earlyaccess_fonts);
346
  fo_array_sort($this->google_fonts);
347
 
348
+ $this->available_fonts = array_merge($this->available_fonts, $this->google_fonts, $this->known_fonts);
349
 
350
  // Get all usable fonts and add them to a list.
351
  $this->load_usable_fonts();
433
  <span><?php _e('Step 2: Upload custom fonts to be used in your website. Here too, you can upload as many as you wish.', 'font-organizer'); ?></span>
434
  <br />
435
  <span><?php _e('Name the font you want to upload and upload all the files formats for this font. In order to support more browsers you can click the green plus to upload more font formats. We suggest .woff and .woff2.', 'font-organizer'); ?></span>
436
+ <form action="#" id="add_font_form" name="add_font_form" method="post" enctype="multipart/form-data">
437
  <table class="form-table">
438
  <tr>
439
+ <th scope="row"><label for="font_name" class="required"><?php _e('Font Weight Name', 'font-organizer'); ?></label></th>
440
+ <td><input type="text" id="font_name" required oninvalid="this.setCustomValidity('<?php _e('Font weight name cannot be empty.', 'font-organizer'); ?>')" oninput="setCustomValidity('')" name="font_name" value="" class="required" maxlength="20" /></td>
441
  </tr>
442
  <tr class="font_file_wrapper">
443
  <th scope="row">
444
+ <label for="font_file" class="required"><?php _e('Font Weight File', 'font-organizer'); ?></label>
445
  </th>
446
  <td id="font_file_parent" style="width:33%;">
447
+ <input type="file" name="font_file[]" value="" class="required" accept="<?php echo join(',',$this->supported_font_files); ?>" /><br/>
448
  <em><?php echo __('Accepted Font Format : ', 'font-organizer') . '<span style="direction: ltr">' . join(', ',$this->supported_font_files) . '</span>'; ?></em><br/>
449
  </td>
450
  <td>
451
+ <a href="javascript:void(0);" class="add_button" title="<?php _e('Add Another Font Format File', 'font-organizer'); ?>"><i class="fa fa-plus fa-2x" aria-hidden="true"></i></a>
452
+ <span style="font-size: 11px;font-style: italic;position: absolute;padding: 6px;"><?php _e('Add Another Font Format File', 'font-organizer'); ?></span>
453
  </td>
454
  </tr>
455
  <tr>
471
  <div class="inside">
472
 
473
  <span><?php _e('Step 3: For each element you can assign a font you have added in step 1 & 2.', 'font-organizer'); ?></span>
474
+ <p><strong><?php _e('Note: ', 'font-organizer'); ?></strong> <?php _e('Custom fonts you uploaded are automatically used in your website.', 'font-organizer'); ?></p>
475
+ <p><strong><?php _e('In case of font not displaying in your website after saving, try clear the cache using Shift+F5 or Ctrl+Shift+Delete to clear all.', 'font-organizer'); ?></strong>
476
  <form method="post" action="options.php">
477
  <?php
478
  // This prints out all hidden setting fields
491
  <div class="inside">
492
 
493
  <span><?php _e('Step 4: Assign font that you have added to your website to custom elements.', 'font-organizer'); ?></span>
494
+ <form action="#" id="add_custom_elements_form" name="add_custom_elements_form" method="post">
495
  <table class="form-table">
496
  <tr>
497
+ <th scope="row"><label for="custom_elements" class="required"><?php _e('Font', 'font-organizer'); ?></label></th>
498
+ <td><?php $this->print_custom_elements_usable_fonts_list('font_id', __('-- Select Font --', 'font-organizer'), __("You must select a font for the elements.", "font-organizer")); ?></td>
499
  </tr>
500
  <tr>
501
+ <th scope="row">
502
+ <label for="custom_elements" class="required">
503
+ <?php _e('Custom Element', 'font-organizer'); ?>
504
+ </label>
505
+ </th>
506
  <td>
507
+ <textarea id="custom_elements" name="custom_elements" required oninvalid="this.setCustomValidity('<?php _e('Font custom elements cannot be empty.', 'font-organizer'); ?>')" oninput="setCustomValidity('')" style="width: 100%" rows="2"></textarea>
508
  <em><?php _e('Custom elements can be seperated by commas to allow multiple elements. Example: #myelementid, .myelementclass, .myelementclass .foo, etc.', 'font-organizer'); ?></em>
509
  </td>
510
  </tr>
529
  <a name="step6"></a>
530
  <h2 class="hndle ui-sortable-handle" style="cursor:default;"><span><?php _e('5. Manage Fonts', 'font-organizer'); ?></span></h2>
531
  <div class="inside">
 
532
  <table class="form-table">
533
  <tr>
534
  <th scope="row"><?php _e('Font', 'font-organizer'); ?></th>
535
+ <td>
536
+ <form action="#step6" id="select_font_form" name="select_font_form" method="get">
537
+ <?php $this->print_custom_elements_usable_fonts_list('manage_font_id', __('-- Select Font --', 'font-organizer')); ?>
538
+ <input type="hidden" name="page" value="<?php echo wp_unslash( $_REQUEST['page'] ); ?>">
539
+ </form>
540
+ </td>
541
+ <?php if($this->selected_manage_font): ?>
542
+
543
+ <td style="text-align:left;">
544
+ <form action="#step6" id="delete_usable_font_form" name="delete_usable_font_form" method="post">
545
+ <?php wp_nonce_field( 'delete_usable_font', 'delete_usable_font_nonce' ); ?>
546
+ <input type="hidden" name="page" value="<?php echo wp_unslash( $_REQUEST['page'] ); ?>">
547
+ <input type="hidden" name="font_id" value="<?php echo $_GET['manage_font_id']; ?>">
548
+ <input type="hidden" name="font_name" value="<?php echo $this->selected_manage_font->family; ?>">
549
+ <input type="submit" name="delete_usable_font" id="delete_usable_font" class="button-secondary" value="<?php _e('Delete Font', 'font-organizer'); ?>" onclick="return confirm('<?php _e("Are you sure you want to delete this font from your website?", "font-organizer"); ?>')" />
550
+ </form>
551
+ </td>
552
+
553
+ <?php endif; ?>
554
  </tr>
555
  </table>
 
 
556
  <?php if($this->selected_manage_font): ?>
557
  <hr/>
558
  <table class="form-table">
605
  <br />
606
  <p><?php _e('Anyway, if you need anything, this may help:', 'font-organizer'); ?></p>
607
  <ul style="list-style-type:disc;margin: 0 20px;">
608
+ <li><a href="https://wordpress.org/plugins/font-organizer/faq/" target="_blank"><?php _e('FAQ', 'font-organizer'); ?></a></li>
609
  <li><a href="https://wordpress.org/support/plugin/font-organizer" target="_blank"><?php _e('Support forums', 'font-organizer'); ?></a></li>
610
  <li><a href="http://hivewebstudios.com/font-organizer" target="_blank"><?php _e('Contact us', 'font-organizer'); ?></a></li>
611
  <li><a href="https://www.facebook.com/hivewp" target="_blank"><?php _e('Hive Facebook page', 'font-organizer'); ?></a></li>
637
  }
638
 
639
  $args['font_file'] = fo_rearray_files($_FILES['font_file']);
640
+
641
+ $i = 0;
642
  foreach ($args['font_file'] as $file) {
643
+ if(!$file['name']){
644
+ unset($args['font_file'][$i]);
 
 
645
  }
646
+
647
+ $i++;
648
+ }
649
+
650
+ if(empty($args['font_file'])){
651
+ $this->recent_error = __('Font file(s) not selected.', 'font-organizer');
652
+ return false;
653
  }
654
 
655
  return $args;
686
 
687
  $args['font_id'] = $_POST['font_id'];
688
 
689
+ return $args;
690
  }
691
 
692
  private function validate_delete_usable(){
695
  return false;
696
  }
697
 
698
+ $args['font_id'] = intval( $_POST['font_id'] );
699
  $args['font_name'] = sanitize_text_field( $_POST['font_name'] );
700
+ if(!$args['font_id'] || !$args['font_name']){
701
  $this->recent_error = __('Something went horribly wrong. Ask the support!', 'font-organizer');
702
  return false;
703
  }
733
  }
734
 
735
  private function delete_font($args = array()){
736
+ global $fo_css_directory_path;
737
+
738
+ // Delete all the known elements for this font and reset them back to default.
739
+ $elements_options = get_option('fo_elements_options', array());
740
+ foreach ($this->elements as $element_id => $element_display_name) {
741
+ if(array_key_exists($element_id, $elements_options) && $elements_options[$element_id] == $args['font_name']){
742
+ $elements_options[$element_id] = '';
743
+ }
744
+ }
745
+
746
+ update_option('fo_elements_options', $elements_options);
747
+
748
+ // Delete all custom elements for this font.
749
+ $table_name = FO_ELEMENTS_DATABASE;
750
+ $this->delete_from_database($table_name, 'font_id', $args['font_id']);
751
+
752
+ global $wpdb;
753
+
754
+ $usable_fonts = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . FO_USABLE_FONTS_DATABASE . ' ORDER BY id DESC');
755
+ foreach ($usable_fonts as $usable_font) {
756
+ if($usable_font->name == $args['font_name']){
757
+ if(!$usable_font->custom)
758
+ break;
759
+
760
+ $urls = explode(self::CUSTOM_FONT_URL_SPERATOR, $usable_font->url);
761
+ foreach ($urls as $url) {
762
+ // Delete the old file.
763
+ $file_name = basename($url);
764
+ if(file_exists($fo_css_directory_path . '/' . $file_name))
765
+ unlink($fo_css_directory_path . '/' . $file_name);
766
+ }
767
+ }
768
+ }
769
+
770
+ // Delete this font from the website.
771
+ $table_name = FO_USABLE_FONTS_DATABASE;
772
+ $this->delete_from_database($table_name, 'id', $args['font_id']);
773
+
774
  add_action( 'admin_notices', array($this, 'delete_font_successfull_admin_notice') );
 
775
  }
776
 
777
+ private function delete_from_database($table_name, $field_name, $field_value){
778
  global $wpdb;
779
+ $wpdb->delete( $wpdb->prefix . $table_name, array( $field_name => $field_value ) );
 
 
780
  }
781
 
782
  private function save_custom_elements_to_database($id, $custom_elements, $important){
806
  }
807
 
808
 
809
+ public function add_custom_elements_failed_admin_notice() {
810
+ ?>
811
+ <div class="error notice">
812
+ <p><?php echo __( 'Error adding custom elements: ', 'font-organizer' ) . $this->recent_error; ?></p>
813
+ </div>
814
+ <?php
815
+ }
816
  public function add_custom_elements_successfull_admin_notice() {
817
  ?>
818
  <div class="updated notice">
1061
  echo '<span class="highlight info">';
1062
 
1063
  $url = 'https://developers.google.com/fonts/docs/developer_api#acquiring_and_using_an_api_key';
1064
+ $faq_url = 'https://wordpress.org/plugins/font-organizer/faq/';
1065
  echo sprintf( __( 'To get all the fonts, Google requires the mandatory use of an API key, get one from <a href="%s" target="_blank">HERE</a>', 'font-organizer' ), esc_url( $url ) );
1066
+ echo sprintf( __( ' Need help? Click <a href="%s" target="_blank">here</a>', 'font-organizer' ), esc_url( $faq_url ) );
1067
  echo '</span> <br />';
1068
 
1069
  printf(
1185
  /**
1186
  * Get the settings option array and print one of its values
1187
  */
1188
+ private function print_custom_elements_usable_fonts_list($name, $default = '', $validity = '')
1189
  {
1190
+ echo '<select id="'.$name.'" name="'.$name.'" required oninvalid="this.setCustomValidity(\'' . $validity . '\')" oninput="setCustomValidity(\'\')">';
1191
 
1192
  if($default){
1193
  echo '<option value="">'.$default.'</option>\n';
1215
  foreach($this->available_fonts as $font)
1216
  {
1217
  $font_name = $font->family;
 
1218
  echo '<option value="'.$font_name.'" style="font-family: '.$font_name.';">'.$font_name.'</option>\n';
1219
  }
1220
 
1222
  }
1223
 
1224
  private function load_usable_fonts(){
1225
+ $this->usable_fonts_db = FontsDatabaseHelper::get_usable_fonts();
 
 
1226
  foreach ( $this->usable_fonts_db as $usable_font) {
1227
 
1228
  // Find the font from the lists.
1229
  if($usable_font->custom){
1230
+ $font_obj = (object) array( 'family' => $usable_font->name, 'files' => (object) array('regular' => explode(self::CUSTOM_FONT_URL_SPERATOR, $usable_font->url)), 'kind' => 'custom', 'variants' => array('regular'));
1231
  $this->usable_fonts[$font_obj->family] = $font_obj;
1232
  $this->custom_fonts[$font_obj->family] = $font_obj;
1233
  }else{
1250
  }
1251
 
1252
  private function load_custom_elements(){
1253
+ $this->custom_elements = FontsDatabaseHelper::get_custom_elements();
 
 
1254
  }
1255
 
1256
  private function get_early_access_fonts_array(){
1257
  return array(
1258
+ (object) array( 'family' => 'Open Sans Hebrew', 'kind' => 'earlyaccess', 'variants' => array(), 'files' => (object) array('regular' => array('http://fonts.googleapis.com/earlyaccess/opensanshebrew.css'))),
1259
+ (object) array( 'family' => 'Open Sans Hebrew Condensed', 'kind' => 'earlyaccess', 'variants' => array(), 'files' => (object) array('regular' => array('http://fonts.googleapis.com/earlyaccess/opensanshebrewcondensed.css'))),
1260
+ (object) array( 'family' => 'Noto Sans Hebrew', 'kind' => 'earlyaccess', 'variants' => array(), 'files' => (object) array('regular' => array('http://fonts.googleapis.com/earlyaccess/notosanshebrew.css'))),
1261
  );
1262
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1263
  }