Server: news.mantaraham.ir
Current directory: /home/mantaraham/public_html/news/wp-content/plugins/js_composer/include/classes/settings
Software: LiteSpeed



Shell Command Create a new file Upload file

File: class-vc-settings.php
'; echo '
' . $value . '
'; echo '

' . __( 'Add custom CSS code to the plugin without modifying files.', 'js_composer' ) . '

'; } /** * Not responsive checkbox callback function */ public function not_responsive_css_field_callback() { $checked = ( $checked = get_option( self::$field_prefix . 'not_responsive_css' ) ) ? $checked : false; ?>

googleFontsSubsets(); foreach ( $this->getGoogleFontsSubsets() as $pt ) { if ( ! in_array( $pt, $this->getGoogleFontsSubsetsExcluded() ) ) { $checked = ( in_array( $pt, $pt_array ) ) ? ' checked' : ''; ?>

google_fonts_subsets_settings ) ) { $pt_array = vc_settings()->get( 'google_fonts_subsets' ); $this->google_fonts_subsets_settings = $pt_array ? $pt_array : $this->googleFontsSubsetsDefault(); } return $this->google_fonts_subsets_settings; } /** * @return array */ public function googleFontsSubsetsDefault() { return $this->google_fonts_subsets_default; } /** * @return array */ public function getGoogleFontsSubsets() { return $this->google_fonts_subsets; } /** * @param $subsets * * @return bool */ public function setGoogleFontsSubsets( $subsets ) { if ( is_array( $subsets ) ) { $this->google_fonts_subsets = $subsets; return true; } return false; } /** * @return array */ public function getGoogleFontsSubsetsExcluded() { return $this->google_fonts_subsets_excluded; } /** * @param $excluded * * @return bool */ public function setGoogleFontsSubsetsExcluded( $excluded ) { if ( is_array( $excluded ) ) { $this->google_fonts_subsets_excluded = $excluded; return true; } return false; } /** * Not responsive checkbox callback function * */ public function use_custom_callback() { $field = 'use_custom'; $checked = ( $checked = get_option( self::$field_prefix . $field ) ) ? $checked : false; ?>

getDefault( $field ); echo ''; } /** * */ public function margin_callback() { $field = 'margin'; $value = ( $value = get_option( self::$field_prefix . $field ) ) ? $value : $this->getDefault( $field ); echo ''; echo '

' . __( 'Change default vertical spacing between content elements (Example: 20px).', 'js_composer' ) . '

'; } /** * */ public function gutter_callback() { $field = 'gutter'; $value = ( $value = get_option( self::$field_prefix . $field ) ) ? $value : $this->getDefault( $field ); echo ' px'; echo '

' . __( 'Change default horizontal spacing between columns, enter new value in pixels.', 'js_composer' ) . '

'; } /** * */ public function responsive_max_callback() { $field = 'responsive_max'; $value = ( $value = get_option( self::$field_prefix . $field ) ) ? $value : $this->getDefault( $field ); echo ' px'; echo '

' . __( 'By default content elements "stack" one on top other when screen size is smaller than 768px. Change the value to change "stacking" size.', 'js_composer' ) . '

'; } /** * */ public function compiled_js_composer_less_callback() { $field = 'compiled_js_composer_less'; echo ''; // VALUE must be empty } /** * @param $key * * @return string */ public function getDefault( $key ) { return ! empty( self::$defaults[ $key ] ) ? self::$defaults[ $key ] : ''; } /** * Callback function for settings section * * @param $tab */ public function setting_section_callback_function( $tab ) { if ( 'wpb_js_composer_settings_color' === $tab['id'] ) : ?>

getGoogleFontsSubsetsExcluded() ) && in_array( $pt, $this->getGoogleFontsSubsets() ) ) { $pt_array[] = $pt; } } } return $pt_array; } /** * @param $rules * * @return mixed */ public function sanitize_use_custom_callback( $rules ) { return (bool) $rules; } /** * @param $css * * @return mixed */ public function sanitize_custom_css_callback( $css ) { return strip_tags( $css ); } /** * @param $css * * @return mixed */ public function sanitize_compiled_js_composer_less_callback( $css ) { return $css; } /** * @param $color * * @return mixed */ public function sanitize_color_callback( $color ) { return $color; } /** * @param $margin * * @return mixed */ public function sanitize_margin_callback( $margin ) { $margin = preg_replace( '/\s/', '', $margin ); if ( ! preg_match( '/^\d+(px|%|em|pt){0,1}$/', $margin ) ) { add_settings_error( self::$field_prefix . 'margin', 1, __( 'Invalid Margin value.', 'js_composer' ), 'error' ); } return $margin; } /** * @param $gutter * * @return mixed */ public function sanitize_gutter_callback( $gutter ) { $gutter = preg_replace( '/[^\d]/', '', $gutter ); if ( ! $this->_isGutterValid( $gutter ) ) { add_settings_error( self::$field_prefix . 'gutter', 1, __( 'Invalid Gutter value.', 'js_composer' ), 'error' ); } return $gutter; } /** * @param $responsive_max * * @return mixed */ public function sanitize_responsive_max_callback( $responsive_max ) { if ( ! $this->_isNumberValid( $responsive_max ) ) { add_settings_error( self::$field_prefix . 'responsive_max', 1, __( 'Invalid "Responsive max" value.', 'js_composer' ), 'error' ); } return $responsive_max; } /** * @param $number * * @return int */ public static function _isNumberValid( $number ) { return preg_match( '/^[\d]+(\.\d+){0,1}$/', $number ); } /** * @param $gutter * * @return int */ public static function _isGutterValid( $gutter ) { return self::_isNumberValid( $gutter ); } public function useCustomCss() { $use_custom = get_option( self::$field_prefix . 'use_custom', false ); return $use_custom; } public function getCustomCssVersion() { $less_version = get_option( self::$field_prefix . 'less_version', false ); return $less_version; } /** * */ public function rebuild() { /** WordPress Template Administration API */ require_once( ABSPATH . 'wp-admin/includes/template.php' ); /** WordPress Administration File API */ require_once( ABSPATH . 'wp-admin/includes/file.php' ); delete_option( self::$field_prefix . 'compiled_js_composer_less' ); $this->initAdmin(); $this->buildCustomCss(); // TODO: remove this - no needs to re-save always } /** * */ public static function buildCustomColorCss() { /** * Filesystem API init. * */ $url = wp_nonce_url( 'admin.php?page=vc-color&build_css=1', 'wpb_js_settings_save_action' ); self::getFileSystem( $url ); global $wp_filesystem; /** * * Building css file. * */ if ( false === ( $js_composer_upload_dir = self::checkCreateUploadDir( $wp_filesystem, 'use_custom', 'js_composer_front_custom.css' ) ) ) { return; } $filename = $js_composer_upload_dir . '/js_composer_front_custom.css'; $use_custom = get_option( self::$field_prefix . 'use_custom' ); if ( ! $use_custom ) { $wp_filesystem->put_contents( $filename, '', FS_CHMOD_FILE ); return; } $css_string = get_option( self::$field_prefix . 'compiled_js_composer_less' ); if ( strlen( trim( $css_string ) ) > 0 ) { update_option( self::$field_prefix . 'less_version', WPB_VC_VERSION ); delete_option( self::$field_prefix . 'compiled_js_composer_less' ); $css_string = strip_tags( $css_string ); // HERE goes the magic if ( ! $wp_filesystem->put_contents( $filename, $css_string, FS_CHMOD_FILE ) ) { if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) { add_settings_error( self::$field_prefix . 'main_color', $wp_filesystem->errors->get_error_code(), __( 'Something went wrong: js_composer_front_custom.css could not be created.', 'js_composer' ) . ' ' . $wp_filesystem->errors->get_error_message(), 'error' ); } elseif ( ! $wp_filesystem->connect() ) { add_settings_error( self::$field_prefix . 'main_color', $wp_filesystem->errors->get_error_code(), __( 'js_composer_front_custom.css could not be created. Connection error.', 'js_composer' ), 'error' ); } elseif ( ! $wp_filesystem->is_writable( $filename ) ) { add_settings_error( self::$field_prefix . 'main_color', $wp_filesystem->errors->get_error_code(), sprintf( __( 'js_composer_front_custom.css could not be created. Cannot write custom css to "%s".', 'js_composer' ), $filename ), 'error' ); } else { add_settings_error( self::$field_prefix . 'main_color', $wp_filesystem->errors->get_error_code(), __( 'js_composer_front_custom.css could not be created. Problem with access.', 'js_composer' ), 'error' ); } delete_option( self::$field_prefix . 'use_custom' ); delete_option( self::$field_prefix . 'less_version' ); } } } /** * Builds custom css file using css options from vc settings. * * @return bool */ public static function buildCustomCss() { /** * Filesystem API init. * */ $url = wp_nonce_url( 'admin.php?page=vc-color&build_css=1', 'wpb_js_settings_save_action' ); self::getFileSystem( $url ); global $wp_filesystem; /** * Building css file. */ if ( false === ( $js_composer_upload_dir = self::checkCreateUploadDir( $wp_filesystem, 'custom_css', 'custom.css' ) ) ) { return true; } $filename = $js_composer_upload_dir . '/custom.css'; $css_string = ''; $custom_css_string = get_option( self::$field_prefix . 'custom_css' ); if ( ! empty( $custom_css_string ) ) { $assets_url = vc_asset_url( '' ); $css_string .= preg_replace( '/(url\(\.\.\/(?!\.))/', 'url(' . $assets_url, $custom_css_string ); $css_string = strip_tags( $css_string ); } if ( ! $wp_filesystem->put_contents( $filename, $css_string, FS_CHMOD_FILE ) ) { if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) { add_settings_error( self::$field_prefix . 'custom_css', $wp_filesystem->errors->get_error_code(), __( 'Something went wrong: custom.css could not be created.', 'js_composer' ) . $wp_filesystem->errors->get_error_message(), 'error' ); } elseif ( ! $wp_filesystem->connect() ) { add_settings_error( self::$field_prefix . 'custom_css', $wp_filesystem->errors->get_error_code(), __( 'custom.css could not be created. Connection error.', 'js_composer' ), 'error' ); } elseif ( ! $wp_filesystem->is_writable( $filename ) ) { add_settings_error( self::$field_prefix . 'custom_css', $wp_filesystem->errors->get_error_code(), __( 'custom.css could not be created. Cannot write custom css to "' . $filename . '".', 'js_composer' ), 'error' ); } else { add_settings_error( self::$field_prefix . 'custom_css', $wp_filesystem->errors->get_error_code(), __( 'custom.css could not be created. Problem with access.', 'js_composer' ), 'error' ); } return false; } return true; } /** * @param $wp_filesystem * @param $option * @param $filename * * @return bool|string */ public static function checkCreateUploadDir( $wp_filesystem, $option, $filename ) { $js_composer_upload_dir = self::uploadDir(); if ( ! $wp_filesystem->is_dir( $js_composer_upload_dir ) ) { if ( ! $wp_filesystem->mkdir( $js_composer_upload_dir, 0777 ) ) { add_settings_error( self::$field_prefix . $option, $wp_filesystem->errors->get_error_code(), __( sprintf( '%s could not be created. Not available to create js_composer directory in uploads directory (' . $js_composer_upload_dir . ').', $filename ), 'js_composer' ), 'error' ); return false; } } return $js_composer_upload_dir; } /** * @return string */ public static function uploadDir() { $upload_dir = wp_upload_dir(); global $wp_filesystem; return $wp_filesystem->find_folder( $upload_dir['basedir'] ) . vc_upload_dir(); } /** * @return string */ public static function uploadURL() { $upload_dir = wp_upload_dir(); return $upload_dir['baseurl'] . vc_upload_dir(); } /** * @return string */ public static function getFieldPrefix() { return self::$field_prefix; } /** * @param string $url */ protected static function getFileSystem( $url = '' ) { global $wp_filesystem; $status = true; if ( ! $wp_filesystem || ! is_object( $wp_filesystem ) ) { require_once( ABSPATH . '/wp-admin/includes/file.php' ); $status = WP_Filesystem( false, false, true ); } return $status ? $wp_filesystem : false; } /** * @return string */ public function getOptionGroup() { return $this->option_group; } }