/** * Main init hook. */ function wpcf_embedded_init() { $locale = get_locale(); load_textdomain('wpcf', WPCF_EMBEDDED_ABSPATH . '/locale/types-' . $locale . '.mo'); if (!defined('WPV_VERSION')) { load_textdomain('wpv-views', WPCF_EMBEDDED_ABSPATH . '/locale/locale-views/views-' . $locale . '.mo'); } // Define necessary constants if plugin is not present if (!defined('WPCF_VERSION')) { define('WPCF_VERSION', '1.0.4'); define('WPCF_META_PREFIX', 'wpcf-'); define('WPCF_EMBEDDED_RELPATH', icl_get_file_relpath(__FILE__)); } else { define('WPCF_EMBEDDED_RELPATH', WPCF_RELPATH . '/embedded'); } define('WPCF_EMBEDDED_INC_RELPATH', WPCF_EMBEDDED_RELPATH . '/includes'); define('WPCF_EMBEDDED_RES_RELPATH', WPCF_EMBEDDED_RELPATH . '/resources'); if (is_admin()) { require_once WPCF_EMBEDDED_ABSPATH . '/admin.php'; wpcf_embedded_admin_init_hook(); } else { require_once WPCF_EMBEDDED_ABSPATH . '/frontend.php'; } wpcf_init_custom_types_taxonomies(); if (defined('DOING_AJAX')) { require_once WPCF_EMBEDDED_ABSPATH . '/frontend.php'; } wpcf_embedded_check_import(); }
function admin_enqueue_scripts() { // Using Pointers wp_enqueue_style('wp-pointer'); wp_enqueue_script('wp-pointer'); wp_enqueue_script('wpv-wp-pointer', icl_get_file_relpath(__FILE__) . '/res/js/wpv-wp-pointer.js', array()); wp_enqueue_style('wpv-wp-pointer', icl_get_file_relpath(__FILE__) . '/res/css/wpv-wp-pointer.css', array()); // Register our action add_action('admin_print_footer_scripts', array($this, 'admin_print_footer_scripts')); }
/** * Register and enqueue scripts and actions. * * @param type $formID */ public function __construct($formID) { $this->__formID = trim($formID, '#'); // Register and enqueue wp_register_script('wptoolset-form-conditional', WPTOOLSET_FORMS_RELPATH . '/js/conditional.js', array('jquery', 'jquery-effects-scale'), WPTOOLSET_FORMS_VERSION, true); wp_enqueue_script('wptoolset-form-conditional'); $js_data = array('ajaxurl' => admin_url('admin-ajax.php', null)); wp_localize_script('wptoolset-form-conditional', 'wptConditional', $js_data); wp_register_script('wptoolset-parser', icl_get_file_relpath(dirname(dirname(__FILE__))) . '/expression-parser/js/parser.js', array('jquery'), WPTOOLSET_FORMS_VERSION, true); wp_enqueue_script('wptoolset-parser'); $js_data = array('ajaxurl' => admin_url('admin-ajax.php', null)); // Render settings add_action('admin_print_footer_scripts', array($this, 'renderJsonData'), 30); add_action('wp_footer', array($this, 'renderJsonData'), 30); // Check conditional and hide field add_action('wptoolset_field_class', array($this, 'actionFieldClass')); }
/** * Editor_addon_generic class * * Defines EDITOR_ADDON_ABSPATH and EDITOR_ADDON_RELPATH if not already defined. * Scripts and styles required for the icl_editor are also registered and possibly enqueued here. * * @since unknown */ if (!class_exists('Editor_addon_generic')) { if (!defined('ICL_COMMON_FUNCTIONS')) { require_once dirname(dirname(__FILE__)) . '/functions.php'; } define('EDITOR_ADDON_ABSPATH', dirname(__FILE__)); if (!defined('EDITOR_ADDON_RELPATH')) { define('EDITOR_ADDON_RELPATH', icl_get_file_relpath(__FILE__)); } add_action('init', 'icl_editor_addon_register_assets'); if (!function_exists('icl_editor_addon_register_assets')) { /** * icl_editor_addon_register_assets * * Register the Editor Addon assets so they are available for everyone to use * * @since 1.6 */ function icl_editor_addon_register_assets() { // Styles wp_register_style('editor_addon_menu', EDITOR_ADDON_RELPATH . '/res/css/pro_dropdown_2.css'); wp_register_style('editor_addon_menu_scroll', EDITOR_ADDON_RELPATH . '/res/css/scroll.css');
public static function getFileUrl($__FILE__ = null, $use_baseurl = true) { self::fixServerVars(); if (!$__FILE__) { $__FILE__ = (string) __FILE__; } $__FILE__ = str_replace('\\', '/', dirname($__FILE__)); $manual = false; if (isset($_SERVER['DOCUMENT_ROOT'])) { $manual = strpos($__FILE__, $_SERVER['DOCUMENT_ROOT']) !== 0 ? true : false; } $docroot = self::getDocRoot($manual); $baseurl = $use_baseurl ? self::getBaseUrl() : self::getHostUrl(); if (0 === strpos($__FILE__, $docroot)) { return self::_join_paths($baseurl, self::str_after($__FILE__, $docroot)); } else { $map = self::getUSymlink(); if (!empty($map) && false !== strpos($__FILE__, $map[1])) { return self::_join_paths($baseurl, str_replace($map[1], $map[0], $__FILE__)); } else { return icl_get_file_relpath($__FILE__ . DIRECTORY_SEPARATOR . 'dummy.php'); // finally here return self::_join_paths($baseurl, $__FILE__); } } }
function promote_types_and_views_admin() { ?> <div class="wrap"> <?php $promote_types = defined('WPCF_RUNNING_EMBEDDED'); $promote_views = is_promote_views(); $affiliate_url = ''; if (function_exists('wpv_get_affiliate_url')) { $affiliate_url = wpv_get_affiliate_url(); } $icon_url = icl_get_file_relpath(dirname(__FILE__) . '/res/img/views-32.png') . '/views-32.png'; ?> <div class="icon32" style='background:url("<?php echo $icon_url; ?> ") no-repeat;'><br /></div> <h2><?php _e('Get Types and Views', 'wpv-views'); ?> </h2> <p style="font-size: 130%;"><?php _e('Your theme was created using <strong>Types</strong> and <strong>Views</strong>. Developers use these two plugins to build complex websites, without coding.', 'wpv-views'); ?> </p> <p style="font-size: 120%;"><?php _e("Right now, you're using the embedded version, which creates the layout but doesn't include the editing interface. You can upgrade to the full version and customize your site yourself - you don't even need to know how to program!", 'wpv-views'); ?> </p> <p style="font-size: 120%;"><?php echo sprintf(__('Once you have installed the full versions of Types and Views you\'ll be able to create and edit your own content types, layouts and listings.', 'wpv-views'), 'http://wordpress.org/extend/plugins/types/', 'http://wp-types.com' . $affiliate_url); ?> </p> <p style="font-size: 140%; font-weight: bold; "><?php echo sprintf(__('<a href="%s" target="_blank">Learn more</a>', 'wpv-views'), 'http://wp-types.com' . $affiliate_url); ?> </p> <br /><hr /><br /> <ol> <li><?php _e('Every purchase of Views entitles you to commercial-grade support and upgrades for one year.', 'wpv-views'); ?> </li> <li><?php _e('You can use Types and Views for as many themes and websites as you like.', 'wpv-views'); ?> </li> </ol> <?php //if ($promote_types && $promote_views) { // // wpv_promote_views_admin(); // echo "<hr />\n"; // wpcf_promote_types_admin(); //} else { // if ($promote_types) { // wpcf_promote_types_admin(); // } else { // wpv_promote_views_admin(); // } //} ?> </div> <?php }
/** * Main init hook. * * All rest of init processes are continued here. * Sets locale, constants, includes... * * @todo Make sure plugin AND embedded code are calling this function on 'init' * @todo Test priorities */ function wpcf_embedded_init() { do_action('wpcf_before_init'); // Set locale $locale = get_locale(); load_textdomain('wpcf', WPCF_EMBEDDED_ABSPATH . '/locale/types-' . $locale . '.mo'); if (!defined('WPV_VERSION')) { load_textdomain('wpv-views', WPCF_EMBEDDED_ABSPATH . '/locale/locale-views/views-' . $locale . '.mo'); } // Define necessary constants if plugin is not present // This ones are skipped if used as embedded code! if (!defined('WPCF_VERSION')) { define('WPCF_VERSION', '1.2'); define('WPCF_META_PREFIX', 'wpcf-'); define('WPCF_EMBEDDED_RELPATH', icl_get_file_relpath(__FILE__)); } else { // Otherwise if plugin code - just define embedded paths define('WPCF_EMBEDDED_RELPATH', WPCF_RELPATH . '/embedded'); } // Define embedded paths define('WPCF_EMBEDDED_INC_RELPATH', WPCF_EMBEDDED_RELPATH . '/includes'); define('WPCF_EMBEDDED_RES_RELPATH', WPCF_EMBEDDED_RELPATH . '/resources'); // TODO INCLUDES! // // Please add all required includes here // Since Types 1.2 we can consider existing code as core. // All new functionalities should be added as includes HERE // and marked with @since Types $version. // // Thanks! // // Basic /* * * Mind class extensions queue */ require_once WPCF_EMBEDDED_ABSPATH . '/classes/fields.php'; require_once WPCF_EMBEDDED_ABSPATH . '/classes/field.php'; require_once WPCF_EMBEDDED_ABSPATH . '/classes/class.wpcf-template.php'; // Repeater require_once WPCF_EMBEDDED_ABSPATH . '/classes/repeater.php'; require_once WPCF_EMBEDDED_INC_ABSPATH . '/repetitive-fields-ordering.php'; // Relationship require_once WPCF_EMBEDDED_ABSPATH . '/classes/relationship.php'; // Conditional require_once WPCF_EMBEDDED_ABSPATH . '/classes/conditional.php'; // API require_once WPCF_EMBEDDED_ABSPATH . '/classes/api.php'; require_once WPCF_EMBEDDED_INC_ABSPATH . '/api.php'; // Validation require_once WPCF_EMBEDDED_ABSPATH . '/classes/validation.php'; // Post Types require_once WPCF_EMBEDDED_ABSPATH . '/classes/class.wpcf-post-types.php'; // Import Export require_once WPCF_EMBEDDED_ABSPATH . '/classes/class.wpcf-import-export.php'; // Incubator require_once WPCF_EMBEDDED_ABSPATH . '/incubator/index.php'; // Module manager require_once WPCF_EMBEDDED_INC_ABSPATH . '/module-manager.php'; // WPML specific code require_once WPCF_EMBEDDED_INC_ABSPATH . '/wpml.php'; /* * * * TODO This is a must for now. * See if any fields need to be loaded. */ require_once WPCF_EMBEDDED_INC_ABSPATH . '/fields/checkbox.php'; /* * * * Use this call to load basic scripts and styles if necesary * wpcf_enqueue_scripts(); */ // Include frontend or admin code if (is_admin()) { require_once WPCF_EMBEDDED_ABSPATH . '/admin.php'; /* * TODO Check if called twice * * Watch this! This is actually called twice everytime * in both modes (plugin or embedded) */ wpcf_embedded_admin_init_hook(); } else { require_once WPCF_EMBEDDED_ABSPATH . '/frontend.php'; } global $wpcf; // TODO since Types 1.2 Continue adding new functionalities HERE /* * Consider code already there as core. * Use hooks to add new functionalities * * Introduced new global object $wpcf * Holds useful objects like: * $wpcf->field - Field object (base item object) * $wpcf->repeater - Repetitive field object */ // Set field object $wpcf->field = new WPCF_Field(); // Set fields object $wpcf->fields = new WPCF_Fields(); // Set template object $wpcf->template = new WPCF_Template(); // Set repeater object $wpcf->repeater = new WPCF_Repeater(); // Set relationship object $wpcf->relationship = new WPCF_Relationship(); // Set conditional object $wpcf->conditional = new WPCF_Conditional(); // Set validate object $wpcf->validation = new WPCF_Validation(); // Set import export objects $wpcf->import = new WPCF_Import_Export(); $wpcf->export = new WPCF_Import_Export(); // Set API object $wpcf->api = new WPCF_Api(); // Set post object $wpcf->post = new stdClass(); // Set post types object $wpcf->post_types = new WPCF_Post_Types(); // Define exceptions - privileged plugins and their data $wpcf->toolset_post_types = array('view', 'view-template', 'cred-form'); $wpcf->excluded_post_types = array('revision', 'view', 'view-template', 'cred-form', 'nav_menu_item', 'attachment', 'mediapage'); // Init custom types and taxonomies wpcf_init_custom_types_taxonomies(); /* * TODO Check why we enabled this * * I think because of CRED or Views using Types admin functions on frontend * Does this need review? */ if (defined('DOING_AJAX')) { require_once WPCF_EMBEDDED_ABSPATH . '/frontend.php'; } // Check if import/export request is going on wpcf_embedded_check_import(); // Set debugging if (!defined('WPCF_DEBUG')) { define('WPCF_DEBUG', false); } if (WPCF_DEBUG) { $wpcf->debug = new stdClass(); require WPCF_INC_ABSPATH . '/debug.php'; add_action('wp_footer', 'wpcf_debug', 1.0E+32); add_action('admin_footer', 'wpcf_debug', 9.999999999999999E+28); } do_action('wpcf_after_init'); }
/** * Fetches remote images. * * @param type $url * @return \WP_Error */ function wpcf_fields_image_get_remote($url) { $refresh = false; // Set directory $cache_dir = wpcf_fields_image_get_cache_directory(); if (is_wp_error($cache_dir)) { return $cache_dir; } // Validate image $extension = pathinfo($url, PATHINFO_EXTENSION); if (!in_array(strtolower($extension), array('jpg', 'jpeg', 'gif', 'png'))) { return new WP_Error('wpcf_image_cache_not_valid', sprintf(__('Image %s not valid', 'wpcf'), $url)); } $image = $cache_dir . DIRECTORY_SEPARATOR . md5($url) . '.' . $extension; // Refresh if necessary $refresh_time = intval(wpcf_get_settings('images_remote_cache_time')); if ($refresh_time != 0 && file_exists($image)) { $time_modified = filemtime($image); if (time() - $time_modified > $refresh_time * 60 * 60) { $refresh = true; $files = glob($cache_dir . DIRECTORY_SEPARATOR . md5($url) . "-*"); if ($files) { foreach ($files as $filename) { @unlink($filename); } } } } // Check if image is fetched if ($refresh || !file_exists($image)) { // fetch the remote url and write it to the placeholder file add_filter('http_request_timeout', 'wpcf_image_http_request_timeout', 10, 1); $resp = wp_remote_get($url); // Check if response type is expected if (is_object($resp)) { return new WP_Error('wpcf_image_cache_file_error', sprintf(__('Remote server returned error response %1$d %2$s', 'wpcf'), esc_html($resp->errors["http_request_failed"][0]), get_status_header_desc($resp->errors["http_request_failed"][0]))); } remove_filter('http_request_timeout', 'wpcf_image_http_request_timeout', 10, 1); // make sure the fetch was successful if ($resp['response']['code'] != '200') { return new WP_Error('wpcf_image_cache_file_error', sprintf(__('Remote server returned error response %1$d %2$s', 'wpcf'), esc_html($resp['response']), get_status_header_desc($resp['response']))); } if (strlen($resp['body']) != $resp['headers']['content-length']) { return new WP_Error('wpcf_image_cache_file_error', __('Remote file is incorrect size', 'wpcf')); } $out_fp = fopen($image, 'w'); if (!$out_fp) { return new WP_Error('wpcf_image_cache_file_error', __('Could not create cache file', 'wpcf')); } fwrite($out_fp, $resp['body']); fclose($out_fp); $max_size = (int) apply_filters('import_attachment_size_limit', 0); $filesize = filesize($image); if (!empty($max_size) && $filesize > $max_size) { @unlink($image); return new WP_Error('wpcf_image_cache_file_error', sprintf(__('Remote file is too large, limit is %s', 'wpcf'), size_format($max_size))); } } return array('abspath' => $image, 'relpath' => icl_get_file_relpath($image) . '/' . basename($image)); }