Esempio n. 1
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;
                 }
             }
         }
     }
 }
Esempio n. 2
0
==================================================
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;
Esempio n. 3
0
/**
 * 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);
}
Esempio n. 4
0
 /**
  * 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);
 }
Esempio n. 5
0
 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'));
     }
 }