function toolset_enqueue_scripts($page)
 {
     if ($page == 'toolset-settings') {
         $toolset_bootstrap = Toolset_Common_Bootstrap::getInstance();
         $toolset_assets = $toolset_bootstrap->assets_manager;
         $toolset_assets->enqueue_scripts('toolset-relevanssi-settings-script');
     }
 }
示例#2
0
 /**
  * Early loading actions.
  * 
  * Initialize the Toolset Common library with the new loader. 
  * Initialize asset manager if we're not doing an AJAX call.
  * 
  * @since 2.0
  */
 public function after_setup_theme()
 {
     Toolset_Common_Bootstrap::getInstance();
     // If an AJAX callback handler needs other assets, they should initialize the asset manager by themselves.
     if (!defined('DOING_AJAX')) {
         Types_Assets::get_instance()->initialize_scripts_and_styles();
     }
 }
 /**
  * Evaluates conditions using custom conditional statement.
  *
  * @uses wpv_condition()
  *
  * @param type $post
  * @param type $evaluate
  * @return boolean
  */
 public static function evaluateCustom($evaluate, $values)
 {
     $toolset_bootstrap = Toolset_Common_Bootstrap::getInstance();
     $toolset_bootstrap->register_parser();
     //Fix REGEX conditions that contains \ that is stripped out
     if (strpos($evaluate, "REGEX") === false) {
         $evaluate = trim(stripslashes($evaluate));
         // Check dates
         $evaluate = wpv_filter_parse_date($evaluate);
         $evaluate = self::handle_user_function($evaluate);
     }
     $fields = self::extractFields($evaluate);
     $evaluate = self::_update_values_in_expression($evaluate, $fields, $values);
     $check = false;
     try {
         $parser = new Toolset_Parser($evaluate);
         $parser->parse();
         $check = $parser->evaluate();
     } catch (Exception $e) {
         $check = false;
     }
     return $check;
 }
示例#4
0
 public function register_parser()
 {
     $sections_loaded = self::$sections_loaded;
     if (!in_array('toolset_parser', $sections_loaded)) {
         $sections_loaded[] = 'toolset_parser';
         if (!class_exists('Toolset_Regex')) {
             require_once TOOLSET_COMMON_PATH . '/expression-parser/parser.php';
         }
         self::$sections_loaded = $sections_loaded;
     }
 }
示例#5
0
/**
 * 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()
{
    global $types_instances, $wp_current_filter;
    // Record hook
    $types_instances['hook'] = $wp_current_filter;
    $types_instances['init_queued'] = '#' . did_action('init');
    $types_instances['init_priority'] = TYPES_INIT_PRIORITY;
    $types_instances['forced_embedded'] = defined('TYPES_LOAD_EMBEDDED') && TYPES_LOAD_EMBEDDED;
    // Localization
    new Toolset_Localization('wpcf', WPCF_EMBEDDED_ABSPATH . '/locale', 'types-%s');
    // Toolset Forms
    if (!defined('WPTOOLSET_FORMS_VERSION')) {
        $toolset_common_bootstrap = Toolset_Common_Bootstrap::getInstance();
        $toolset_common_sections = array('toolset_forms');
        $toolset_common_bootstrap->load_sections($toolset_common_sections);
    }
    // Loader
    require_once WPCF_EMBEDDED_ABSPATH . '/classes/loader.php';
    do_action('wpcf_before_init');
    do_action('types_before_init');
    // 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.9');
        define('WPCF_META_PREFIX', 'wpcf-');
    }
    // If forced embedded mode use path to __FILE__
    if (defined('TYPES_LOAD_EMBEDDED') && TYPES_LOAD_EMBEDDED || !defined('WPCF_RELPATH')) {
        define('WPCF_EMBEDDED_RELPATH', wpcf_get_file_url(__FILE__, false));
    } else {
        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/usermeta_field.php';
    // Added by Gen, usermeta fields class
    // Repeater
    require_once WPCF_EMBEDDED_ABSPATH . '/classes/repeater.php';
    require_once WPCF_EMBEDDED_ABSPATH . '/classes/usermeta_repeater.php';
    // Added by Gen, usermeta repeater class
    require_once WPCF_EMBEDDED_INC_ABSPATH . '/repetitive-fields-ordering.php';
    require_once WPCF_EMBEDDED_INC_ABSPATH . '/repetitive-usermetafields-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_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';
    // Module manager
    require_once WPCF_EMBEDDED_INC_ABSPATH . '/module-manager.php';
    // WPML specific code
    require_once WPCF_EMBEDDED_INC_ABSPATH . '/wpml.php';
    // CRED specific code.
    if (defined('CRED_FE_VERSION')) {
        require_once WPCF_EMBEDDED_INC_ABSPATH . '/cred.php';
    }
    /*
     *
     *
     * TODO This is a must for now.
     * See if any fields need to be loaded.
     *
     * 1. Checkboxes - may be missing when submitted
     */
    require_once WPCF_EMBEDDED_INC_ABSPATH . '/fields/checkbox.php';
    /*
     *
     *
     * Use this call to load basic scripts and styles if necesary
     * wpcf_enqueue_scripts();
     */
    require_once WPCF_EMBEDDED_ABSPATH . '/usermeta-init.php';
    // 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 debugging
    if (!defined('WPCF_DEBUG')) {
        define('WPCF_DEBUG', false);
    } else {
        if (WPCF_DEBUG) {
            wp_enqueue_script('jquery');
        }
    }
    $wpcf->debug = new stdClass();
    require WPCF_EMBEDDED_INC_ABSPATH . '/debug.php';
    add_action('wp_footer', 'wpcf_debug', PHP_INT_MAX);
    add_action('admin_footer', 'wpcf_debug', PHP_INT_MAX);
    // Set field object
    $wpcf->field = new WPCF_Field();
    // Set fields object
    $wpcf->fields = new WPCF_Fields();
    // Set usermeta field object
    $wpcf->usermeta_field = new WPCF_Usermeta_Field();
    // Set termmeta field object
    $wpcf->termmeta_field = new WPCF_Termmeta_Field();
    // Set repeater object
    $wpcf->repeater = new WPCF_Repeater();
    // Set usermeta repeater object
    $wpcf->usermeta_repeater = new WPCF_Usermeta_Repeater();
    // Set termmeta repeater object
    $wpcf->termmeta_repeater = new WPCF_Termmeta_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 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', 'cred-user-form');
    // 'attachment' = Media
    //
    $wpcf->excluded_post_types = array('cred-form', 'cred-user-form', 'dd_layouts', 'deprecated_log', 'mediapage', 'nav_menu_item', 'revision', 'view', 'view-template', 'wp-types-group', 'wp-types-user-group', 'acf-field-group');
    /**
     * Do use this CPT in Toolset "actions"
     *
     * Filter allow to add own post types which will be not used in 
     * Toolset plugins
     *
     * @since 1.9.0
     *
     * @param array $post_types array of post types slugs
     */
    $wpcf->excluded_post_types = apply_filters('toolset_filter_exclude_own_post_types', $wpcf->excluded_post_types);
    // Init loader
    WPCF_Loader::init();
    /*
     * 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();
    // Initialize (new) parts of the GUI.
    // Btw. current_screen is being fired during admin_init.
    add_action('current_screen', 'wpcf_initialize_admin_gui');
    do_action('types_after_init');
    do_action('wpcf_after_init');
}
 /**
  * Uses the Toolset_Tokenizer to break down the expression, replace problematic operators by their text-only
  * equivalents and glue the expression back together.
  *
  * Side-effects: Loses custom whitespace characters. All operators (except parentheses) will be surrounded by spaces
  * while everywhere else the whitespace characters will be trimmed.
  *
  * Note: If an invalid expression is provided, it doesn't do anything with it.
  *
  * @param string $expression Condition expression.
  * @return string Equivalent expression but without <, <=, etc.
  * @since 2.0
  */
 protected function transform_operators_to_text_equivalents($expression)
 {
     try {
         // The expression may come directly from parse_str() which may add backslashes to quotes. The tokenizer
         // wouldn't survive that.
         $expression = stripslashes($expression);
         $toolset_bootstrap = Toolset_Common_Bootstrap::getInstance();
         $toolset_bootstrap->register_parser();
         $tokenizer = new Toolset_Tokenizer();
         $tokens = $tokenizer->Tokanize($expression);
         $token_value_replacements = array('<' => 'lt', '>' => 'gt', '<=' => 'lte', '>=' => 'gte', '<>' => 'ne', '=' => 'eq');
         $result = '';
         foreach ($tokens as $token) {
             if ($token->isCompOp) {
                 $token->val = wpcf_getarr($token_value_replacements, $token->val, $token->val);
             }
             if ($token->isCompOp || $token->isArithmeticOp || $token->isLogicOp) {
                 $result .= ' ' . $token->val . ' ';
             } else {
                 if ($token->isStringLiteral) {
                     $result .= '\'' . $token->val . '\'';
                 } else {
                     $result .= $token->val;
                 }
             }
         }
         return $result;
     } catch (Exception $e) {
         // Most probably we were unable to tokenize the expression. We give up.
         return $expression;
     }
 }
 public function debug_page()
 {
     $toolset_common_bootstrap = Toolset_Common_Bootstrap::getInstance();
     $toolset_common_sections = array('toolset_debug');
     $toolset_common_bootstrap->load_sections($toolset_common_sections);
 }
 /**
  * Apply a filter on the array of names loaded sections.
  * 
  * @param string $filter_name Name of the filter.
  * @since 2.1
  */
 private function apply_filters_on_sections_loaded($filter_name)
 {
     self::$sections_loaded = apply_filters($filter_name, self::$sections_loaded);
 }
 function toolset_common_boostrap()
 {
     global $toolset_common_bootstrap;
     $toolset_common_bootstrap = Toolset_Common_Bootstrap::getInstance();
 }