/** * 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; } } } } }
================================================== Generate the input helper ================================================== */ if (!empty($input_helper)) { $function_or_file = $input_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' => $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;
/** * Output Pod Page Content */ function pods_content() { global $pod_page_exists; do_action('pods_content_pre', $pod_page_exists); $content = false; if (false !== $pod_page_exists) { $function_or_file = str_replace('*', 'w', $pod_page_exists['uri']); $check_function = false; $check_file = null; if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_PAGE_FILES') || !PODS_PAGE_FILES)) { $check_file = false; } if (false !== $check_function && false !== $check_file) { $function_or_file = pods_function_or_file($function_or_file, $check_function, 'page', $check_file); } else { $function_or_file = false; } if (!$function_or_file && 0 < strlen(trim($pod_page_exists['phpcode']))) { $content = $pod_page_exists['phpcode']; } ob_start(); if (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; } } $content = ob_get_clean(); echo apply_filters('pods_content', $content); } do_action('pods_content_post', $pod_page_exists, $content); }
/** * Display the page template */ function showTemplate($template, $code = null) { ob_start(); //pre-template hooks do_action('pods_pre_showtemplate', $template, $code, $this); do_action("pods_pre_showtemplate_{$template}", $template, $code, $this); if (!empty($code)) { $function_or_file = false; } else { $function_or_file = $template; $check_function = false; $check_file = null; if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_TEMPLATE_FILES') || !PODS_TEMPLATE_FILES)) { $check_file = false; } if (false !== $check_function && false !== $check_file) { $function_or_file = pods_function_or_file($function_or_file, $check_function, 'template', $check_file); } else { $function_or_file = false; } if (!$function_or_file) { $api = new PodAPI(); $params = array('name' => $template); if (!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) { $params = pods_sanitize($params); } $code = $api->load_template($params); if (false !== $code && 0 < strlen(trim($code['code']))) { $code = $code['code']; } else { $code = false; } } } if (empty($code) && false !== $function_or_file && isset($function_or_file['file'])) { // Only detail templates need $this->id if (empty($this->id)) { while ($this->fetchRecord()) { locate_template($function_or_file['file'], true, true); } } else { locate_template($function_or_file['file'], true, true); } } elseif (!empty($code)) { // Only detail templates need $this->id if (empty($this->id)) { while ($this->fetchRecord()) { echo $this->parse_template_string($code); } } else { echo $this->parse_template_string($code); } } //post-template hooks do_action('pods_post_showtemplate', $template, $code, $this); do_action("pods_post_showtemplate_{$template}", $template, $code, $this); return apply_filters('pods_showtemplate', ob_get_clean(), $template, $code, $this); }
function precode() { global $pods, $pod_page_exists; $function_or_file = str_replace('*', 'w', $pod_page_exists['uri']); $check_function = false; $check_file = 'precode-' . $function_or_file; if ((!defined('PODS_STRICT_MODE') || !PODS_STRICT_MODE) && (!defined('PODS_PAGE_FILES') || !PODS_PAGE_FILES)) { $check_file = false; } if (false !== $check_function && false !== $check_file) { $function_or_file = pods_function_or_file($function_or_file, $check_function, 'page', $check_file); } else { $function_or_file = false; } $content = false; if (!$function_or_file && 0 < strlen(trim($pod_page_exists['precode']))) { $content = $pod_page_exists['precode']; } if (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}"); } } do_action('pods_page_precode', $pod_page_exists, $pods); if (!is_object($pods) && (404 == $pods || is_wp_error($pods))) { remove_action('template_redirect', array($this, 'template_redirect')); remove_action('wp_head', array($this, 'wp_head')); remove_filter('redirect_canonical', array($this, 'kill_redirect')); remove_filter('wp_title', array($this, 'wp_title')); remove_filter('body_class', array($this, 'body_class')); remove_filter('status_header', array($this, 'status_header')); remove_action('wp', array($this, 'silence_404')); } }