wp_blog/wp-content/themes/worldwide-v1-01/include/plugin/fontloader.php

288 lines
7.5 KiB
PHP
Raw Normal View History

2020-01-02 23:15:16 +07:00
<?php
/*
* Goodlayers Fontloader File
* ---------------------------------------------------------------------
* @version 1.0
* @author Goodlayers
* @link http://goodlayers.com
* @copyright Copyright (c) Goodlayers
* ---------------------------------------------------------------------
* This file manage all fonts in this framework including Cufon and
* Google font ( in google-font.php file )
* ---------------------------------------------------------------------
*/
// all fonts array in this framework ( at first will be only cufon in the array )
$all_font = array();
// get custom upload font from the goodlayers panel
get_uploaded_font();
function get_uploaded_font(){
global $all_font;
global $goodlayers_element;
$upload_font_xml = get_option(THEME_SHORT_NAME.'_upload_font');
$all_font['Custom Font'] = array('status'=>'disabled','type'=>'Cufon','is-used'=>false);
if(!empty($upload_font_xml)){
$xml = new DOMDocument();
$xml->loadXML($upload_font_xml);
foreach( $xml->documentElement->childNodes as $each_font ){
$all_font[find_xml_value($each_font, 'name')] = array('status'=>'enabled','type'=>'Cufon','is-used'=>false,
'path'=>wp_get_attachment_url(find_xml_value($each_font, 'file')) );
}
}
}
$all_font = array_merge($all_font, array(
'Cufon' => array(
'status'=>'disabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon.js'),
'Aller' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Aller_400.font.js'),
'Bebas' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Bebas_400.font.js'),
'Cabin Cufon' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Cabin_400.font.js'),
'Cantarell Cufon' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/cantarell.js'),
'Cicle Gordita' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Cicle_Gordita_700.font.js'),
'Colaborate Light' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/ColaborateLight_400.font.js'),
'Gnuolane Free' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Gnuolane_Free_400.font.js'),
'Josefin Sans Cufon' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Josefin_Sans_Std_300.font.js'),
'Luxi Serif' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Luxi_Serif_400.font.js'),
'Museo Sans' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Museo_Sans_500.font.js'),
'Nobile Cufon' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Nobile_400.font.js'),
'Oswald Cufon' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Oswald_400.font.js'),
'Quicksand Book' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Quicksand_Book_400.font.js'),
'Samba' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Samba_400.font.js'),
'Sansation' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Sansation_400.font.js'),
'Yanone Kaffeesatz Cufon' => array(
'status'=>'enabled',
'type'=>'Cufon',
'is-used'=>false,
'path'=>GOODLAYERS_PATH.'/javascript/cufon/Yanone_Kaffeesatz_400.font.js'),
));
// get google font from file and added to all_font array
get_google_font();
function get_google_font(){
include_once('google-font.php');
global $all_font;
$all_font['Google Font'] = array('status'=>'disabled','type'=>'Cufon','is-used'=>false);
$google_fonts = get_google_font_array();
foreach($google_fonts as $google_font){
$all_font[$google_font['family']] = array('status'=>'enabled','type'=>'Google Font','is-used'=>false);
}
}
// this is a function that return all_font arrays to use with <select> element
function get_font_array( $type = '' ){
global $all_font;
$fonts = array('- default -' => '');
foreach($all_font as $font_name => $font_value){
if( empty($type) || $type == $font_value['type'] ){
$fonts[$font_name] = $font_value['status'];
}
}
return $fonts;
}
// check and marked if font is being used
add_action('init', 'is_font_used');
function is_font_used(){
global $all_font, $goodlayers_element;
foreach($goodlayers_element['gdl_panel_font'] as $field){
$used_font = get_option($field['name']);
if(!empty($used_font)){
$used_font = substr($used_font, 2);
if($used_font != "default -"){
$all_font[$used_font]['is-used'] = true;
if($all_font[$used_font]['type'] == 'Cufon'){
$all_font['Cufon']['is-used'] = true;
}else if($field['type'] == 'Google Font'){
$all_font['Google Font'] = true;
}
}
}
}
$all_font['Droid Serif']['is-used'] = true;
}
// include all used font into the website
add_action('init', 'include_used_font');
function include_used_font(){
if(is_admin()) return;
global $all_font;
$google_font_family = '';
$font_weight = get_option(THEME_SHORT_NAME.'_google_font_weight', 'n,i,b,bi');
$font_subset = get_option(THEME_SHORT_NAME.'_google_font_subset', 'latin');
foreach($all_font as $font_name => $font){
if($font['is-used']){
if($font['type'] == 'Cufon'){
wp_deregister_script($font_name);
if( $font_name == 'Cufon'){
wp_register_script($font_name, $font['path'], false, '1.0', false);
}else{
wp_register_script($font_name, $font['path'], false, '1.0', true);
}
wp_enqueue_script($font_name);
}else if($font['type'] == 'Google Font'){
$temp_font_name = str_replace(' ', '+' , $font_name);
$google_font_family = $temp_font_name . ':' . $font_weight . '&subset=' . $font_subset;
wp_enqueue_style('Google-Font-' . $temp_font_name,'http://fonts.googleapis.com/css?family=' . $google_font_family);
}
}
}
}
// Ajax to include font infomation
add_action('wp_ajax_get_gdl_font_url','get_gdl_font_url');
function get_gdl_font_url(){
global $all_font;
$recieve_font = $_POST['font'];
if($all_font[$recieve_font]['type'] == 'Cufon'){
$font_url = array('type'=>$all_font[$recieve_font]['type'], 'url'=>$all_font[$recieve_font]['path']);
}else if($all_font[$recieve_font]['type'] == "Google Font"){
$font_url = array('type'=>$all_font[$recieve_font]['type'], 'url'=>'http://fonts.googleapis.com/css?family=' . str_replace(' ', '+' , $recieve_font));
}else{
die(-1);
}
die(json_encode($font_url));
}
// Ajax to get cufon information
add_action('wp_ajax_get_cufon_position','get_cufon_position');
function get_cufon_position(){
}
?>