Example #1
0
 if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_HELPER_FILES') || !PODS_HELPER_FILES)) {
     $check_file = false;
 }
 if (false !== $check_function && false !== $check_file) {
     $function_or_file = pods_function_or_file($function_or_file, $check_function, 'helper', $check_file);
 } else {
     $function_or_file = false;
 }
 $content = false;
 if (!$function_or_file) {
     $api = new PodAPI();
     $params = array('name' => $input_helper, 'type' => 'input');
     if (!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) {
         $params = pods_sanitize($params);
     }
     $content = $api->load_helper($params);
     if (false !== $content && 0 < strlen(trim($content['phpcode']))) {
         $content = $content['phpcode'];
     } else {
         $content = false;
     }
 }
 if (false === $content && false !== $function_or_file && isset($function_or_file['function'])) {
     echo $function_or_file['function']($coltype, $field, $css_id, $css_classes, $value, $this);
 } elseif (false === $content && false !== $function_or_file && isset($function_or_file['file'])) {
     locate_template($function_or_file['file'], true, true);
 } elseif (false !== $content) {
     if (!defined('PODS_DISABLE_EVAL') || PODS_DISABLE_EVAL) {
         eval("?>{$content}");
     } else {
         echo $content;
Example #2
0
 /**
  * Drop a single pod item
  *
  * $params['pod_id'] int The item's ID from the wp_pod table
  * $params['tbl_row_id'] int (optional) The item's ID from the wp_pod_tbl_* table (used with datatype parameter)
  * $params['datatype'] string (optional) The datatype name (used with tbl_row_id parameter)
  * $params['datatype_id'] int (optional) The datatype ID (used with tbl_row_id parameter)
  *
  * @param array $params An associative array of parameters
  * @since 1.7.9
  */
 function drop_pod_item($params)
 {
     if (defined('PODS_STRICT_MODE') && PODS_STRICT_MODE) {
         $params = pods_sanitize($params);
     }
     $params = (object) $params;
     if (isset($params->tbl_row_id)) {
         if (!empty($params->tbl_row_id) && is_array($params->tbl_row_id)) {
             $new_params = $params;
             foreach ($params->tbl_row_id as $tbl_row_id) {
                 $new_params->tbl_row_id = $tbl_row_id;
                 $this->drop_pod_item($new_params);
             }
             return;
         }
         if (isset($params->datatype_id)) {
             $select_dt = "p.datatype = '{$params->datatype_id}'";
         } else {
             $select_dt = "t.name = '{$params->datatype}'";
         }
         $sql = "\n            SELECT\n                p.id AS pod_id, p.tbl_row_id, t.id, t.name\n            FROM\n                @wp_pod p\n            INNER JOIN\n                @wp_pod_types t ON t.id = p.datatype\n            WHERE\n                p.tbl_row_id = {$params->tbl_row_id} AND\n                {$select_dt}\n            LIMIT\n                1\n            ";
     } else {
         $sql = "\n            SELECT\n                p.id AS pod_id, p.tbl_row_id, t.id, t.name\n            FROM\n                @wp_pod p\n            INNER JOIN\n                @wp_pod_types t ON t.id = p.datatype\n            WHERE\n                p.id = {$params->pod_id}\n            LIMIT\n                1\n            ";
     }
     $result = pod_query($sql);
     $row = mysql_fetch_assoc($result);
     $params->datatype_id = $row['id'];
     $params->datatype = $row['name'];
     $params->pod_id = $row['pod_id'];
     $params->tbl_row_id = $row['tbl_row_id'];
     // Get helper code
     $result = pod_query("SELECT pre_drop_helpers, post_drop_helpers FROM @wp_pod_types WHERE id = {$params->datatype_id}");
     $row = mysql_fetch_assoc($result);
     $params->pre_drop_helpers = explode(',', $row['pre_drop_helpers']);
     $params->post_drop_helpers = explode(',', $row['post_drop_helpers']);
     // Plugin hook
     do_action('pods_pre_drop_pod_item', $params);
     // Pre-drop helpers
     if (0 < count($params->pre_drop_helpers)) {
         foreach ($params->pre_drop_helpers as $helper) {
             $function_or_file = $helper;
             $check_function = $function_or_file;
             if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_HELPER_FUNCTIONS') || !PODS_HELPER_FUNCTIONS)) {
                 $check_function = false;
             }
             $check_file = null;
             if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_HELPER_FILES') || !PODS_HELPER_FILES)) {
                 $check_file = false;
             }
             if (false !== $check_function && false !== $check_file) {
                 $function_or_file = pods_function_or_file($function_or_file, $check_function, 'helper', $check_file);
             } else {
                 $function_or_file = false;
             }
             $content = false;
             if (!$function_or_file) {
                 $api = new PodAPI();
                 $params_helper = array('name' => $helper, 'type' => 'pre_drop');
                 if (!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) {
                     $params_helper = pods_sanitize($params_helper);
                 }
                 $content = $api->load_helper($params_helper);
                 if (false !== $content && 0 < strlen(trim($content['phpcode']))) {
                     $content = $content['phpcode'];
                 } else {
                     $content = false;
                 }
             }
             if (false === $content && false !== $function_or_file && isset($function_or_file['function'])) {
                 $function_or_file['function']($params, $this);
             } elseif (false === $content && false !== $function_or_file && isset($function_or_file['file'])) {
                 locate_template($function_or_file['file'], true, true);
             } elseif (false !== $content) {
                 if (!defined('PODS_DISABLE_EVAL') || PODS_DISABLE_EVAL) {
                     eval("?>{$content}");
                 } else {
                     echo $content;
                 }
             }
         }
     }
     pod_query("DELETE FROM `@wp_pod_tbl_{$params->datatype}` WHERE id = {$params->tbl_row_id} LIMIT 1");
     pod_query("UPDATE @wp_pod_rel SET sister_pod_id = NULL WHERE sister_pod_id = {$params->pod_id}");
     pod_query("DELETE FROM @wp_pod WHERE id = {$params->pod_id} LIMIT 1");
     pod_query("DELETE FROM @wp_pod_rel WHERE pod_id = {$params->pod_id}");
     // Plugin hook
     do_action('pods_post_drop_pod_item', $params);
     // Post-drop helpers
     if (0 < count($params->post_drop_helpers)) {
         foreach ($params->post_drop_helpers as $helper) {
             $function_or_file = $helper;
             $check_function = $function_or_file;
             if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_HELPER_FUNCTIONS') || !PODS_HELPER_FUNCTIONS)) {
                 $check_function = false;
             }
             $check_file = null;
             if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_HELPER_FILES') || !PODS_HELPER_FILES)) {
                 $check_file = false;
             }
             if (false !== $check_function && false !== $check_file) {
                 $function_or_file = pods_function_or_file($function_or_file, $check_function, 'helper', $check_file);
             } else {
                 $function_or_file = false;
             }
             $content = false;
             if (!$function_or_file) {
                 $api = new PodAPI();
                 $params_helper = array('name' => $helper, 'type' => 'post_drop');
                 if (!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) {
                     $params_helper = pods_sanitize($params_helper);
                 }
                 $content = $api->load_helper($params_helper);
                 if (false !== $content && 0 < strlen(trim($content['phpcode']))) {
                     $content = $content['phpcode'];
                 } else {
                     $content = false;
                 }
             }
             if (false === $content && false !== $function_or_file && isset($function_or_file['function'])) {
                 $function_or_file['function']($params, $this);
             } elseif (false === $content && false !== $function_or_file && isset($function_or_file['file'])) {
                 locate_template($function_or_file['file'], true, true);
             } elseif (false !== $content) {
                 if (!defined('PODS_DISABLE_EVAL') || PODS_DISABLE_EVAL) {
                     eval("?>{$content}");
                 } else {
                     echo $content;
                 }
             }
         }
     }
 }
Example #3
0
 /**
  * Run a helper within a Pod Page or WP Template or Magic Tags
  *
  * @param string $helper The helper name
  * @return mixed Anything returned by the helper
  * @since 1.2.0
  */
 function pod_helper($helper, $value = null, $name = null)
 {
     ob_start();
     do_action('pods_pre_pod_helper', $helper, $value, $name, $this);
     do_action("pods_pre_pod_helper_{$helper}", $helper, $value, $name, $this);
     $function_or_file = $helper;
     $check_function = $function_or_file;
     if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_HELPER_FUNCTIONS') || !PODS_HELPER_FUNCTIONS)) {
         $check_function = false;
     }
     $check_file = null;
     if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_HELPER_FILES') || !PODS_HELPER_FILES)) {
         $check_file = false;
     }
     if (false !== $check_function && false !== $check_file) {
         $function_or_file = pods_function_or_file($function_or_file, $check_function, 'helper', $check_file);
     } else {
         $function_or_file = false;
     }
     $content = false;
     if (!$function_or_file) {
         $api = new PodAPI();
         $params = array('name' => $helper, 'type' => 'display');
         if (!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) {
             $params = pods_sanitize($params);
         }
         $content = $api->load_helper($params);
         if (false !== $content && 0 < strlen(trim($content['phpcode']))) {
             $content = $content['phpcode'];
         } else {
             $content = false;
         }
     }
     if (false === $content && false !== $function_or_file && isset($function_or_file['function'])) {
         echo $function_or_file['function']($value, $name, $this);
     } elseif (false === $content && false !== $function_or_file && isset($function_or_file['file'])) {
         locate_template($function_or_file['file'], true, true);
     } elseif (false !== $content) {
         if (!defined('PODS_DISABLE_EVAL') || !PODS_DISABLE_EVAL) {
             eval("?>{$content}");
         } else {
             echo $content;
         }
     }
     //post-helper hooks
     do_action('pods_post_pod_helper', $helper, $value, $name, $this);
     do_action("pods_post_pod_helper_{$helper}", $helper, $value, $name, $this);
     return apply_filters('pods_helper', ob_get_clean(), $helper, $value, $this);
 }