src/Core/Hook/HookBackend.php
<?php
namespace crewstyle\OlympusZeus\Core\Hook;
use crewstyle\OlympusZeus\OlympusZeus;
/**
* Gets its own hooks.
*
* @package Olympus Zeus
* @subpackage Core\Hook\HookBackend
* @author Achraf Chouk <achrafchouk@gmail.com>
* @since 4.0.0
*
*/
class HookBackend
{
/**
* Constructor.
*
* @since 4.0.0
*/
public function __construct()
{
//Admin panel
if (!OLZ_ISADMIN) {
return;
}
}
/**
* Build admin hooks.
*
* @since 4.0.0
*/
public function makeHooks()
{
//Admin panel
if (!OLZ_ISADMIN) {
return;
}
//i18n
$locale = apply_filters('theme_locale', get_locale(), OLZ_I18N);
load_textdomain(OLZ_I18N, OLZ_PATH.'/languages/'.$locale.'.mo');
//Add custom CSS colors ~ Earth
wp_admin_css_color(
'olzcss-earth',
OlympusZeus::translate('Olympus ~ Earth'),
OLZ_URI.'/assets/css/olz.admin.earth.css?ver=v'.OLZ_VERSION_NUM,
array('#222', '#303231', '#55bb3a', '#91d04d')
);
//Add custom CSS colors ~ Ocean
wp_admin_css_color(
'olzcss-ocean',
OlympusZeus::translate('Olympus ~ Ocean'),
OLZ_URI.'/assets/css/olz.admin.ocean.css?ver=v'.OLZ_VERSION_NUM,
array('#222', '#303231', '#3a80bb', '#4d9dd0')
);
//Add custom CSS colors ~ Vulcan
wp_admin_css_color(
'olzcss-vulcan',
OlympusZeus::translate('Olympus ~ Vulcan'),
OLZ_URI.'/assets/css/olz.admin.vulcan.css?ver=v'.OLZ_VERSION_NUM,
array('#222', '#303231', '#bb3a3a', '#d04d4d')
);
//Add custom CSS colors ~ Wind
wp_admin_css_color(
'olzcss-wind',
OlympusZeus::translate('Olympus ~ Wind'),
OLZ_URI.'/assets/css/olz.admin.wind.css?ver=v'.OLZ_VERSION_NUM,
array('#222', '#303231', '#69d2e7', '#a7dbd8')
);
//Hooks
add_action('admin_menu', array(&$this, 'hookAssets'), 999);
//Get configs
$hooks = OlympusZeus::getConfigs('backendhooks');
$modules = OlympusZeus::getConfigs('modules');
if (isset($hooks['emojicons']) && $hooks['emojicons']) {
add_action('init', array(&$this, 'hookDisableWPEmojicons'));
}
if (isset($hooks['versioncheck']) && $hooks['versioncheck']) {
add_action('after_setup_theme', array(&$this, 'hookRemoveAdminWPVersionCheck'));
}
if (isset($hooks['baricons']) && $hooks['baricons']) {
add_action('wp_before_admin_bar_render',array(&$this, 'hookRemoveBarIcons'));
}
if (isset($hooks['menus']) && $hooks['menus']) {
add_action('admin_menu', array(&$this, 'hookRemoveMenus'));
}
if (isset($modules['sanitizedfilename']) && $modules['sanitizedfilename']) {
add_filter('sanitize_file_name', array(&$this, 'hookSanitizeFilename'), 10);
}
}
/**
* Hook building assets.
*
* @since 3.3.0
*/
public function hookAssets()
{
add_action('admin_print_scripts', array(&$this, 'hookAssetsScripts'));
add_action('admin_print_styles', array(&$this, 'hookAssetsStyles'));
}
/**
* Hook building scripts.
*
* @uses wp_enqueue_media_olz()
* @uses wp_enqueue_script()
*
* @since 4.0.0
*/
public function hookAssetsScripts()
{
//Admin panel
if (!OLZ_ISADMIN) {
return;
}
//Get jQuery
$jq = array('jquery');
//Enqueue media and colorpicker scripts
self::wp_enqueue_media_olz();
wp_enqueue_script('wp-color-picker');
wp_enqueue_script('accordion');
//Enqueue all minified scripts
wp_enqueue_script('tea-to', OLZ_URI.'/assets/js/olz.min.js', $jq, 'v'.OLZ_VERSION_NUM);
}
/**
* Hook building styles.
*
* @uses wp_enqueue_style()
*
* @since 4.0.0
*/
public function hookAssetsStyles()
{
//Admin panel
if (!OLZ_ISADMIN) {
return;
}
//Enqueue usefull styles
wp_enqueue_style('media-views');
wp_enqueue_style('farbtastic');
wp_enqueue_style('wp-color-picker');
//Enqueue all minified styles
wp_enqueue_style('olz-css', OLZ_URI.'/assets/css/olz.min.css', array(), 'v'.OLZ_VERSION_NUM);
}
/**
* Disable emojicons introduced with WP 4.2 in backend panel.
*
* @uses remove_action()
* @uses add_filter()
*
* @since 3.3.0
*/
public function hookDisableWPEmojicons()
{
//All actions related to emojis
remove_action('admin_print_styles', 'print_emoji_styles');
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
//Filter function used to remove the tinymce emoji plugin
add_filter('tiny_mce_plugins', array(&$this, 'hookDisableWPEmojiconsTinymce'));
}
public function hookDisableWPEmojiconsTinymce($plugins)
{
if (is_array($plugins)) {
return array_diff($plugins, array('wpemoji'));
}
return array();
}
/**
* Sets up WP version check for admin panel.
*
* @uses current_user_can() To know if current user has permissions.
* @uses add_action() To add a hook action.
* @uses add_filter() To add a hook filter.
*
* @since 3.3.0
*/
public function hookRemoveAdminWPVersionCheck()
{
//Remove WORDPRESS update in the administration to all users, except the admin
if (!current_user_can('edit_users')) {
add_action('init', create_function('$a', "remove_action('init', 'wp_version_check');"), 2);
add_filter('pre_option_update_core', create_function('$a', "return null;"));
}
}
/**
* Remove menu items from WordPress admin bar.
*
* @uses remove_menu() To remove specific menu.
*
* @since 3.3.0
*/
public function hookRemoveBarIcons()
{
global $wp_admin_bar;
//Remove all useless WP bar menus
$wp_admin_bar->remove_menu('wp-logo');
$wp_admin_bar->remove_menu('about');
$wp_admin_bar->remove_menu('comments');
$wp_admin_bar->remove_menu('new-content');
$wp_admin_bar->remove_menu('wporg');
$wp_admin_bar->remove_menu('documentation');
$wp_admin_bar->remove_menu('support-forums');
$wp_admin_bar->remove_menu('feedback');
$wp_admin_bar->remove_menu('view-site');
}
/**
* Remove dashboard menus to editor.
*
* @uses current_user_can() To know if current user has permissions.
* @uses remove_menu_page() To remove a menu page.
* @uses remove_submenu_page() To remove a submenu page.
*
* @since 3.3.0
*/
public function hookRemoveMenus()
{
//Remove WORDPRESS pages in the administration to all users, except the admin
if (!current_user_can('edit_users')) {
remove_submenu_page('themes.php', 'themes.php');
remove_menu_page('plugins.php');
remove_submenu_page('index.php', 'update-core.php');
remove_submenu_page('options-general.php', 'options-media.php');
remove_menu_page('link-manager.php');
remove_menu_page('tools.php');
}
}
/**
* Sanitize filenames.
*
* @param string $filename Name of the file to sanitize
* @uses remove_accents() Converts all accent characters to ASCII characters
*
* @since 3.3.0
*/
public function hookSanitizeFilename($filename)
{
//Invalid characters
$invalid = array(
'À'=>'A', 'Ã'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä€'=>'A', 'Ä‚'=>'A', 'Ȧ'=>'A', 'Ä'=>'A', 'Ả'=>'A', 'Ã…'=>'A', 'Ç'=>'A', 'È€'=>'A', 'È‚'=>'A', 'Ä„'=>'A', 'Ạ'=>'A', 'Ḁ'=>'A', 'Ầ'=>'A', 'Ấ'=>'A', 'Ẫ'=>'A', 'Ẩ'=>'A', 'Ằ'=>'A', 'Ắ'=>'A', 'Ẵ'=>'A', 'Ẳ'=>'A', 'Ç '=>'A', 'Çž'=>'A', 'Ǻ'=>'A', 'Ậ'=>'A', 'Ặ'=>'A',
'Æ'=>'AE', 'Ǽ'=>'AE', 'Ǣ'=>'AE',
'Ḃ'=>'B', 'Æ'=>'B', 'Ḅ'=>'B', 'Ḇ'=>'B', 'Æ‚'=>'B', 'Æ„'=>'B', 'Þ'=>'B',
'Ĉ'=>'C', 'Ċ'=>'C', 'Č'=>'C', 'Ƈ'=>'C', 'Ç'=>'C', 'Ḉ'=>'C',
'Ḋ'=>'D', 'ÆŠ'=>'D', 'Ḍ'=>'D', 'Ḏ'=>'D', 'á¸'=>'D', 'Ḓ'=>'D', 'ÄŽ'=>'D',
'Ä'=>'Dj', 'Ɖ'=>'Dj',
'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ẽ'=>'E', 'Ä’'=>'E', 'Ä”'=>'E', 'Ä–'=>'E', 'Ë'=>'E', 'Ẻ'=>'E', 'Äš'=>'E', 'È„'=>'E', 'Ȇ'=>'E', 'Ẹ'=>'E', 'Ȩ'=>'E', 'Ę'=>'E', 'Ḙ'=>'E', 'Ḛ'=>'E', 'Ề'=>'E', 'Ế'=>'E', 'Ễ'=>'E', 'Ể'=>'E', 'Ḕ'=>'E', 'Ḗ'=>'E', 'Ệ'=>'E', 'Ḝ'=>'E', 'ÆŽ'=>'E', 'Æ'=>'E',
'Ḟ'=>'F', 'Ƒ'=>'F',
'Ç´'=>'G', 'Äœ'=>'G', 'Ḡ'=>'G', 'Äž'=>'G', 'Ä '=>'G', 'Ǧ'=>'G', 'Æ“'=>'G', 'Ä¢'=>'G', 'Ǥ'=>'G',
'Ĥ'=>'H', 'Ḧ'=>'H', 'Ȟ'=>'H', 'Ƕ'=>'H', 'Ḥ'=>'H', 'Ḩ'=>'H', 'Ḫ'=>'H', 'Ħ'=>'H',
'ÃŒ'=>'I', 'Ã'=>'I', 'ÃŽ'=>'I', 'Ĩ'=>'I', 'Ī'=>'I', 'Ĭ'=>'I', 'Ä°'=>'I', 'Ã'=>'I', 'Ỉ'=>'I', 'Ç'=>'I', 'Ị'=>'I', 'Ä®'=>'I', 'Ȉ'=>'I', 'ÈŠ'=>'I', 'Ḭ'=>'I', 'Æ—'=>'I', 'Ḯ'=>'I',
'IJ'=>'IJ',
'Ä´'=>'J',
'Ḱ'=>'K', 'Ǩ'=>'K', 'Ḵ'=>'K', 'Ƙ'=>'K', 'Ḳ'=>'K', 'Ķ'=>'K', 'Ĺ'=>'L', 'Ḻ'=>'L', 'Ḷ'=>'L', 'Ä»'=>'L', 'Ḽ'=>'L', 'Ľ'=>'L', 'Ä¿'=>'L', 'Å'=>'L', 'Ḹ'=>'L',
'Ḿ'=>'M', 'á¹€'=>'M', 'Ṃ'=>'M', 'Æœ'=>'M', 'Ñ'=>'N', 'Ǹ'=>'N', 'Ń'=>'N', 'Ñ'=>'N', 'Ṅ'=>'N', 'Ň'=>'N', 'ÅŠ'=>'N', 'Æ'=>'N', 'Ṇ'=>'N', 'Å…'=>'N', 'Ṋ'=>'N', 'Ṉ'=>'N', 'È '=>'N',
'Ã’'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'ÅŒ'=>'O', 'ÅŽ'=>'O', 'È®'=>'O', 'Ö'=>'O', 'Ỏ'=>'O', 'Å'=>'O', 'Ç‘'=>'O', 'ÈŒ'=>'O', 'ÈŽ'=>'O', 'Æ '=>'O', 'Ǫ'=>'O', 'Ọ'=>'O', 'ÆŸ'=>'O', 'Ø'=>'O', 'á»’'=>'O', 'á»'=>'O', 'á»–'=>'O', 'á»”'=>'O', 'È°'=>'O', 'Ȫ'=>'O', 'Ȭ'=>'O', 'Ṍ'=>'O', 'á¹'=>'O', 'á¹’'=>'O', 'Ờ'=>'O', 'Ớ'=>'O', 'á» '=>'O', 'Ở'=>'O', 'Ợ'=>'O', 'Ǭ'=>'O', 'Ộ'=>'O', 'Ǿ'=>'O', 'Ɔ'=>'O', 'Å’'=>'OE',
'Ṕ'=>'P', 'Ṗ'=>'P', 'Ƥ'=>'P',
'Å”'=>'R', 'Ṙ'=>'R', 'Ř'=>'R', 'È'=>'R', 'È’'=>'R', 'Ṛ'=>'R', 'Å–'=>'R', 'Ṟ'=>'R', 'Ṝ'=>'R', 'Ʀ'=>'R',
'Ś'=>'S', 'Ŝ'=>'S', 'Ṡ'=>'S', 'Š'=>'S', 'Ṣ'=>'S', 'Ș'=>'S', 'Ş'=>'S', 'Ṥ'=>'S', 'Ṧ'=>'S', 'Ṩ'=>'S',
'Ṫ'=>'T', 'Ť'=>'T', 'Ƭ'=>'T', 'Ʈ'=>'T', 'Ṭ'=>'T', 'Ț'=>'T', 'Ţ'=>'T', 'Ṱ'=>'T', 'Ṯ'=>'T', 'Ŧ'=>'T',
'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ũ'=>'U', 'Ū'=>'U', 'Ŭ'=>'U', 'Ü'=>'U', 'Ủ'=>'U', 'Ů'=>'U', 'Ű'=>'U', 'Ǔ'=>'U', 'Ȕ'=>'U', 'Ȗ'=>'U', 'Ư'=>'U', 'Ụ'=>'U', 'Ṳ'=>'U', 'Ų'=>'U', 'Ṷ'=>'U', 'Ṵ'=>'U', 'Ṹ'=>'U', 'Ṻ'=>'U', 'Ǜ'=>'U', 'Ǘ'=>'U', 'Ǖ'=>'U', 'Ǚ'=>'U', 'Ừ'=>'U', 'Ứ'=>'U', 'Ữ'=>'U', 'Ử'=>'U', 'Ự'=>'U',
'Ṽ'=>'V', 'Ṿ'=>'V', 'Ʋ'=>'V',
'Ẁ'=>'W', 'Ẃ'=>'W', 'Ŵ'=>'W', 'Ẇ'=>'W', 'Ẅ'=>'W', 'Ẉ'=>'W',
'Ẋ'=>'X', 'Ẍ'=>'X',
'Ỳ'=>'Y', 'Ã'=>'Y', 'Ŷ'=>'Y', 'Ỹ'=>'Y', 'Ȳ'=>'Y', 'Ẏ'=>'Y', 'Ÿ'=>'Y', 'Ỷ'=>'Y', 'Ƴ'=>'Y', 'á»´'=>'Y',
'Ź'=>'Z', 'áº'=>'Z', 'Å»'=>'Z', 'Ž'=>'Z', 'Ȥ'=>'Z', 'Ẓ'=>'Z', 'Ẕ'=>'Z', 'Ƶ'=>'Z',
'à '=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'Ä'=>'a', 'ă'=>'a', 'ȧ'=>'a', 'ä'=>'a', 'ả'=>'a', 'Ã¥'=>'a', 'ÇŽ'=>'a', 'È'=>'a', 'Ä…'=>'a', 'ạ'=>'a', 'á¸'=>'a', 'ẚ'=>'a', 'ầ'=>'a', 'ấ'=>'a', 'ẫ'=>'a', 'ẩ'=>'a', 'ằ'=>'a', 'ắ'=>'a', 'ẵ'=>'a', 'ẳ'=>'a', 'Ç¡'=>'a', 'ÇŸ'=>'a', 'Ç»'=>'a', 'áº'=>'a', 'ặ'=>'a',
'æ'=>'ae', 'ǽ'=>'ae', 'ǣ'=>'ae',
'ḃ'=>'b', 'ɓ'=>'b', 'ḅ'=>'b', 'ḇ'=>'b', 'ƀ'=>'b', 'ƃ'=>'b', 'ƅ'=>'b', 'þ'=>'b',
'ć'=>'c', 'ĉ'=>'c', 'Ä‹'=>'c', 'Ä'=>'c', 'ƈ'=>'c', 'ç'=>'c', 'ḉ'=>'c',
'ḋ'=>'d', 'É—'=>'d', 'á¸'=>'d', 'á¸'=>'d', 'ḑ'=>'d', 'ḓ'=>'d', 'Ä'=>'d', 'Ä‘'=>'d', 'ÆŒ'=>'d', 'È¡'=>'d',
'Ä‘'=>'dj',
'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ẽ'=>'e', 'Ä“'=>'e', 'Ä•'=>'e', 'Ä—'=>'e', 'ë'=>'e', 'ẻ'=>'e', 'Ä›'=>'e', 'È…'=>'e', 'ȇ'=>'e', 'ẹ'=>'e', 'È©'=>'e', 'Ä™'=>'e', 'ḙ'=>'e', 'ḛ'=>'e', 'á»'=>'e', 'ế'=>'e', 'á»…'=>'e', 'ể'=>'e', 'ḕ'=>'e', 'ḗ'=>'e', 'ệ'=>'e', 'á¸'=>'e', 'Ç'=>'e', 'É›'=>'e',
'ḟ'=>'f', 'ƒ'=>'f',
'ǵ'=>'g', 'Ä'=>'g', 'ḡ'=>'g', 'ÄŸ'=>'g', 'Ä¡'=>'g', 'ǧ'=>'g', 'É '=>'g', 'Ä£'=>'g', 'Ç¥'=>'g',
'ĥ'=>'h', 'ḣ'=>'h', 'ḧ'=>'h', 'ȟ'=>'h', 'ƕ'=>'h', 'ḥ'=>'h', 'ḩ'=>'h', 'ḫ'=>'h', 'ẖ'=>'h', 'ħ'=>'h',
'ì'=>'i', 'Ã'=>'i', 'î'=>'i', 'Ä©'=>'i', 'Ä«'=>'i', 'Ä'=>'i', 'ı'=>'i', 'ï'=>'i', 'ỉ'=>'i', 'Ç'=>'i', 'ị'=>'i', 'į'=>'i', 'ȉ'=>'i', 'È‹'=>'i', 'á¸'=>'i', 'ɨ'=>'i', 'ḯ'=>'i',
'ij'=>'ij',
'ĵ'=>'j', 'ǰ'=>'j',
'ḱ'=>'k', 'ǩ'=>'k', 'ḵ'=>'k', 'ƙ'=>'k', 'ḳ'=>'k', 'ķ'=>'k',
'ĺ'=>'l', 'ḻ'=>'l', 'ḷ'=>'l', 'ļ'=>'l', 'ḽ'=>'l', 'ľ'=>'l', 'ŀ'=>'l', 'ł'=>'l', 'ƚ'=>'l', 'ḹ'=>'l', 'ȴ'=>'l',
'ḿ'=>'m', 'á¹'=>'m', 'ṃ'=>'m', 'ɯ'=>'m',
'ǹ'=>'n', 'ń'=>'n', 'ñ'=>'n', 'ṅ'=>'n', 'ň'=>'n', 'ŋ'=>'n', 'ɲ'=>'n', 'ṇ'=>'n', 'ņ'=>'n', 'ṋ'=>'n', 'ṉ'=>'n', 'ʼn'=>'n', 'ƞ'=>'n', 'ȵ'=>'n',
'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'Å'=>'o', 'Å'=>'o', 'ȯ'=>'o', 'ö'=>'o', 'á»'=>'o', 'Å‘'=>'o', 'Ç’'=>'o', 'È'=>'o', 'È'=>'o', 'Æ¡'=>'o', 'Ç«'=>'o', 'á»'=>'o', 'ɵ'=>'o', 'ø'=>'o', 'ồ'=>'o', 'ố'=>'o', 'á»—'=>'o', 'ổ'=>'o', 'ȱ'=>'o', 'È«'=>'o', 'È'=>'o', 'á¹'=>'o', 'á¹'=>'o', 'ṑ'=>'o', 'ṓ'=>'o', 'á»'=>'o', 'á»›'=>'o', 'ỡ'=>'o', 'ở'=>'o', 'ợ'=>'o', 'Ç'=>'o', 'á»™'=>'o', 'Ç¿'=>'o', 'É”'=>'o',
'Å“'=>'oe',
'ṕ'=>'p', 'ṗ'=>'p', 'ƥ'=>'p',
'Å•'=>'r', 'á¹™'=>'r', 'Å™'=>'r', 'È‘'=>'r', 'È“'=>'r', 'á¹›'=>'r', 'Å—'=>'r', 'ṟ'=>'r', 'á¹'=>'r',
'Å›'=>'s', 'Å'=>'s', 'ṡ'=>'s', 'Å¡'=>'s', 'á¹£'=>'s', 'È™'=>'s', 'ÅŸ'=>'s', 'á¹¥'=>'s', 'ṧ'=>'s', 'ṩ'=>'s', 'Å¿'=>'s', 'ẛ'=>'s',
'ß'=>'Ss',
'ṫ'=>'t', 'ẗ'=>'t', 'Å¥'=>'t', 'Æ'=>'t', 'ʈ'=>'t', 'Æ«'=>'t', 'á¹'=>'t', 'È›'=>'t', 'Å£'=>'t', 'á¹±'=>'t', 'ṯ'=>'t', 'ŧ'=>'t', 'ȶ'=>'t',
'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'Å©'=>'u', 'Å«'=>'u', 'Å'=>'u', 'ü'=>'u', 'ủ'=>'u', 'ů'=>'u', 'ű'=>'u', 'Ç”'=>'u', 'È•'=>'u', 'È—'=>'u', 'Æ°'=>'u', 'ụ'=>'u', 'á¹³'=>'u', 'ų'=>'u', 'á¹·'=>'u', 'á¹µ'=>'u', 'á¹¹'=>'u', 'á¹»'=>'u', 'Çœ'=>'u', 'ǘ'=>'u', 'Ç–'=>'u', 'Çš'=>'u', 'ừ'=>'u', 'ứ'=>'u', 'ữ'=>'u', 'á»'=>'u', 'á»±'=>'u',
'ṽ'=>'v', 'ṿ'=>'v',
'áº'=>'w', 'ẃ'=>'w', 'ŵ'=>'w', 'ẇ'=>'w', 'ẅ'=>'w', 'ẘ'=>'w', 'ẉ'=>'w',
'ẋ'=>'x', 'áº'=>'x',
'ý'=>'y', 'ý'=>'y', 'ỳ'=>'y', 'ý'=>'y', 'Å·'=>'y', 'ȳ'=>'y', 'áº'=>'y', 'ÿ'=>'y', 'ÿ'=>'y', 'á»·'=>'y', 'ẙ'=>'y', 'Æ´'=>'y', 'ỵ'=>'y',
'ź'=>'z', 'ẑ'=>'z', 'ż'=>'z', 'ž'=>'z', 'ȥ'=>'z', 'ẓ'=>'z', 'ẕ'=>'z', 'ƶ'=>'z',
'â„–'=>'No',
'º'=>'o',
'ª'=>'a',
'€'=>'E',
'©'=>'C',
'â„—'=>'P',
'â„¢'=>'tm',
'â„ '=>'sm'
);
//Make the magic
$sanitized_filename = str_replace(array_keys($invalid), array_values($invalid), $filename);
$sanitized_filename = remove_accents($sanitized_filename);
$sanitized_filename = preg_replace('/[^a-zA-Z0-9-_\.]/', '', strtolower($sanitized_filename));
//Return the new name
return $sanitized_filename;
}
/**
* Update rewrite rules options.
*
* @param array $args Define if the library has to make a redirect
*
* @since 4.0.0
*/
static function wp_enqueue_media_olz($args = array())
{
//Admin panel
if (!OLZ_ISADMIN) {
return;
}
//Enqueue me just once per page, please.
if (did_action('wp_enqueue_media_olz') || did_action('wp_enqueue_media')) {
return;
}
global $content_width, $wpdb, $wp_locale;
$defaults = array(
'post' => null,
);
$args = wp_parse_args($args, $defaults);
//We're going to pass the old thickbox media tabs to `media_upload_tabs`
//to ensure plugins will work. We will then unset those tabs.
$tabs = array(
//handler action suffix => tab label
'type' => '',
'type_url' => '',
'gallery' => '',
'library' => '',
);
/** This filter is documented in wp-admin/includes/media.php */
$tabs = apply_filters('media_upload_tabs', $tabs);
unset($tabs['type'], $tabs['type_url'], $tabs['gallery'], $tabs['library']);
$props = array(
'link' => get_option('image_default_link_type'), //db default is 'file'
'align' => get_option('image_default_align'), //empty default
'size' => get_option('image_default_size'), //empty default
);
$exts = array_merge(wp_get_audio_extensions(), wp_get_video_extensions());
$mimes = get_allowed_mime_types();
$ext_mimes = array();
foreach ($exts as $ext) {
foreach ($mimes as $ext_preg => $mime_match) {
if (preg_match('#' . $ext . '#i', $ext_preg)) {
$ext_mimes[ $ext ] = $mime_match;
break;
}
}
}
if (false === ($has_audio = get_transient('has_audio'))) {
$has_audio = (bool) $wpdb->get_var("
SELECT ID
FROM $wpdb->posts
WHERE post_type = 'attachment'
AND post_mime_type LIKE 'audio%'
LIMIT 1
");
set_transient('has_audio', $has_audio);
}
if (false === ($has_video = get_transient('has_video'))) {
$has_video = (bool) $wpdb->get_var("
SELECT ID
FROM $wpdb->posts
WHERE post_type = 'attachment'
AND post_mime_type LIKE 'video%'
LIMIT 1
");
set_transient('has_video', $has_video);
}
$months = $wpdb->get_results($wpdb->prepare("
SELECT DISTINCT YEAR(post_date) AS year, MONTH(post_date) AS month
FROM $wpdb->posts
WHERE post_type = %s
ORDER BY post_date DESC
", 'attachment'));
foreach ($months as $month_year) {
$month_year->text = sprintf(
OlympusZeus::translate('%1$s %2$d'),
$wp_locale->get_month($month_year->month),
$month_year->year
);
}
$settings = array(
'tabs' => $tabs,
'tabUrl' => add_query_arg(array('chromeless' => true), admin_url('media-upload.php')),
'mimeTypes' => wp_list_pluck(get_post_mime_types(), 0),
/** This filter is documented in wp-admin/includes/media.php */
'captions' => ! apply_filters('disable_captions', ''),
'nonce' => array(
'sendToEditor' => wp_create_nonce('media-send-to-editor'),
),
'post' => array(
'id' => 0,
),
'defaultProps' => $props,
'attachmentCounts' => array(
'audio' => ($has_audio) ? 1 : 0,
'video' => ($has_video) ? 1 : 0
),
'embedExts' => $exts,
'embedMimes' => $ext_mimes,
'contentWidth' => $content_width,
'months' => $months,
'mediaTrash' => MEDIA_TRASH ? 1 : 0
);
$post = null;
if (isset($args['post'])) {
$post = get_post($args['post']);
$settings['post'] = array(
'id' => $post->ID,
'nonce' => wp_create_nonce('update-post_' . $post->ID),
);
$thumbnail_support = current_theme_supports('post-thumbnails', $post->post_type)
&& post_type_supports($post->post_type, 'thumbnail');
if (! $thumbnail_support && 'attachment' === $post->post_type && $post->post_mime_type) {
if (wp_attachment_is('audio', $post)) {
$thumbnail_support = post_type_supports('attachment:audio', 'thumbnail')
|| current_theme_supports('post-thumbnails', 'attachment:audio');
} elseif (wp_attachment_is('video', $post)) {
$thumbnail_support = post_type_supports('attachment:video', 'thumbnail')
|| current_theme_supports('post-thumbnails', 'attachment:video');
}
}
if ($thumbnail_support) {
$featured_image_id = get_post_meta($post->ID, '_thumbnail_id', true);
$settings['post']['featuredImageId'] = $featured_image_id ? $featured_image_id : -1;
}
}
$hier = $post && is_post_type_hierarchical($post->post_type);
$strings = array(
//Generic
'url' => OlympusZeus::translate('URL'),
'addMedia' => OlympusZeus::translate('Add Media'),
'search' => OlympusZeus::translate('Search'),
'select' => OlympusZeus::translate('Select'),
'cancel' => OlympusZeus::translate('Cancel'),
'update' => OlympusZeus::translate('Update'),
'replace' => OlympusZeus::translate('Replace'),
'remove' => OlympusZeus::translate('Remove'),
'back' => OlympusZeus::translate('Back'),
/* translators: This is a would-be plural string used in the media manager.
If there is not a word you can use in your language to avoid issues with the
lack of plural support here, turn it into "selected: %d" then translate it.
*/
'selected' => OlympusZeus::translate('%d selected'),
'dragInfo' => OlympusZeus::translate('Drag and drop to reorder media files.'),
//Upload
'uploadFilesTitle' => OlympusZeus::translate('Upload Files'),
'uploadImagesTitle' => OlympusZeus::translate('Upload Images'),
//Library
'mediaLibraryTitle' => OlympusZeus::translate('Media Library'),
'insertMediaTitle' => OlympusZeus::translate('Insert Media'),
'createNewGallery' => OlympusZeus::translate('Create a new gallery'),
'createNewPlaylist' => OlympusZeus::translate('Create a new playlist'),
'createNewVideoPlaylist' => OlympusZeus::translate('Create a new video playlist'),
'returnToLibrary' => OlympusZeus::translate('← Return to library'),
'allMediaItems' => OlympusZeus::translate('All media items'),
'allDates' => OlympusZeus::translate('All dates'),
'noItemsFound' => OlympusZeus::translate('No items found.'),
'insertIntoPost' => $hier
? OlympusZeus::translate('Insert into page')
: OlympusZeus::translate('Insert into post'),
'unattached' => OlympusZeus::translate('Unattached'),
'trash' => _x('Trash', 'noun'),
'uploadedToThisPost' => $hier
? OlympusZeus::translate('Uploaded to this page')
: OlympusZeus::translate('Uploaded to this post'),
'warnDelete' => OlympusZeus::translate("You are about to permanently delete this item.
\n 'Cancel' to stop, 'OK' to delete."),
'warnBulkDelete' => OlympusZeus::translate("You are about to permanently delete these items.
\n 'Cancel' to stop, 'OK' to delete."),
'warnBulkTrash' => OlympusZeus::translate("You are about to trash these items.
\n 'Cancel' to stop, 'OK' to delete."),
'bulkSelect' => OlympusZeus::translate('Bulk Select'),
'cancelSelection' => OlympusZeus::translate('Cancel Selection'),
'trashSelected' => OlympusZeus::translate('Trash Selected'),
'untrashSelected' => OlympusZeus::translate('Untrash Selected'),
'deleteSelected' => OlympusZeus::translate('Delete Selected'),
'deletePermanently' => OlympusZeus::translate('Delete Permanently'),
'apply' => OlympusZeus::translate('Apply'),
'filterByDate' => OlympusZeus::translate('Filter by date'),
'filterByType' => OlympusZeus::translate('Filter by type'),
'searchMediaLabel' => OlympusZeus::translate('Search Media'),
'noMedia' => OlympusZeus::translate('No media attachments found.'),
//Library Details
'attachmentDetails' => OlympusZeus::translate('Attachment Details'),
//From URL
'insertFromUrlTitle' => OlympusZeus::translate('Insert from URL'),
//Featured Images
'setFeaturedImageTitle' => OlympusZeus::translate('Set Featured Image'),
'setFeaturedImage' => OlympusZeus::translate('Set featured image'),
//Gallery
'createGalleryTitle' => OlympusZeus::translate('Create Gallery'),
'editGalleryTitle' => OlympusZeus::translate('Edit Gallery'),
'cancelGalleryTitle' => OlympusZeus::translate('← Cancel Gallery'),
'insertGallery' => OlympusZeus::translate('Insert gallery'),
'updateGallery' => OlympusZeus::translate('Update gallery'),
'addToGallery' => OlympusZeus::translate('Add to gallery'),
'addToGalleryTitle' => OlympusZeus::translate('Add to Gallery'),
'reverseOrder' => OlympusZeus::translate('Reverse order'),
//Edit Image
'imageDetailsTitle' => OlympusZeus::translate('Image Details'),
'imageReplaceTitle' => OlympusZeus::translate('Replace Image'),
'imageDetailsCancel' => OlympusZeus::translate('Cancel Edit'),
'editImage' => OlympusZeus::translate('Edit Image'),
//Crop Image
'chooseImage' => OlympusZeus::translate('Choose Image'),
'selectAndCrop' => OlympusZeus::translate('Select and Crop'),
'skipCropping' => OlympusZeus::translate('Skip Cropping'),
'cropImage' => OlympusZeus::translate('Crop Image'),
'cropYourImage' => OlympusZeus::translate('Crop your image'),
'cropping' => OlympusZeus::translate('Cropping…'),
'suggestedDimensions' => OlympusZeus::translate('Suggested image dimensions:'),
'cropError' => OlympusZeus::translate('There has been an error cropping your image.'),
//Edit Audio
'audioDetailsTitle' => OlympusZeus::translate('Audio Details'),
'audioReplaceTitle' => OlympusZeus::translate('Replace Audio'),
'audioAddSourceTitle' => OlympusZeus::translate('Add Audio Source'),
'audioDetailsCancel' => OlympusZeus::translate('Cancel Edit'),
//Edit Video
'videoDetailsTitle' => OlympusZeus::translate('Video Details'),
'videoReplaceTitle' => OlympusZeus::translate('Replace Video'),
'videoAddSourceTitle' => OlympusZeus::translate('Add Video Source'),
'videoDetailsCancel' => OlympusZeus::translate('Cancel Edit'),
'videoSelectPosterImageTitle' => OlympusZeus::translate('Select Poster Image'),
'videoAddTrackTitle' => OlympusZeus::translate('Add Subtitles'),
//Playlist
'playlistDragInfo' => OlympusZeus::translate('Drag and drop to reorder tracks.'),
'createPlaylistTitle' => OlympusZeus::translate('Create Audio Playlist'),
'editPlaylistTitle' => OlympusZeus::translate('Edit Audio Playlist'),
'cancelPlaylistTitle' => OlympusZeus::translate('← Cancel Audio Playlist'),
'insertPlaylist' => OlympusZeus::translate('Insert audio playlist'),
'updatePlaylist' => OlympusZeus::translate('Update audio playlist'),
'addToPlaylist' => OlympusZeus::translate('Add to audio playlist'),
'addToPlaylistTitle' => OlympusZeus::translate('Add to Audio Playlist'),
//Video Playlist
'videoPlaylistDragInfo' => OlympusZeus::translate('Drag and drop to reorder videos.'),
'createVideoPlaylistTitle' => OlympusZeus::translate('Create Video Playlist'),
'editVideoPlaylistTitle' => OlympusZeus::translate('Edit Video Playlist'),
'cancelVideoPlaylistTitle' => OlympusZeus::translate('← Cancel Video Playlist'),
'insertVideoPlaylist' => OlympusZeus::translate('Insert video playlist'),
'updateVideoPlaylist' => OlympusZeus::translate('Update video playlist'),
'addToVideoPlaylist' => OlympusZeus::translate('Add to video playlist'),
'addToVideoPlaylistTitle' => OlympusZeus::translate('Add to Video Playlist'),
);
/**
* Filter the media view settings.
*
* @since WordPress 3.5.0
*
* @param array $settings List of media view settings.
* @param WP_Post $post Post object.
*/
$settings = apply_filters('media_view_settings', $settings, $post);
/**
* Filter the media view strings.
*
* @since WordPress 3.5.0
*
* @param array $strings List of media view strings.
* @param WP_Post $post Post object.
*/
$strings = apply_filters('media_view_strings', $strings, $post);
$strings['settings'] = $settings;
//Ensure we enqueue media-editor first, that way media-views is
//registered internally before we try to localize it. see #24724.
wp_enqueue_script('media-editor');
wp_localize_script('media-views', '_wpMediaViewsL10n', $strings);
wp_enqueue_script('media-audiovideo');
wp_enqueue_style('media-views');
if (OLZ_ISADMIN) {
wp_enqueue_script('mce-view');
wp_enqueue_script('image-edit');
}
wp_enqueue_style('imgareaselect');
wp_plupload_default_settings();
require_once ABSPATH . WPINC . '/media-template.php';
add_action('admin_footer', 'wp_print_media_templates');
add_action('wp_footer', 'wp_print_media_templates');
add_action('customize_controls_print_footer_scripts', 'wp_print_media_templates');
/**
* Fires at the conclusion of wp_enqueue_media_olz().
*
* @since WordPress 3.5.0
*/
do_action('wp_enqueue_media_olz');
}
}