Overview

Classes

  • GF_Background_Upgrader
  • GF_Download
  • GF_Forms_Model_Legacy
  • GF_Query_Call
  • GF_Query_Column
  • GF_Query_Condition
  • GF_Query_Literal
  • GF_Query_Series
  • GF_Upgrade
  • GFAddOn
  • GFAddOnFeedsTable
  • GFAPI
  • GFFeedAddOn
  • GFPaymentAddOn
  • GFPaymentStatsTable
  • Gravity_Api

Functions

  • gapi
  • Overview
  • Class
  1:   2:   3:   4:   5:   6:   7:   8:   9:  10:  11:  12:  13:  14:  15:  16:  17:  18:  19:  20:  21:  22:  23:  24:  25:  26:  27:  28:  29:  30:  31:  32:  33:  34:  35:  36:  37:  38:  39:  40:  41:  42:  43:  44:  45:  46:  47:  48:  49:  50:  51:  52:  53:  54:  55:  56:  57:  58:  59:  60:  61:  62:  63:  64:  65:  66:  67:  68:  69:  70:  71:  72:  73:  74:  75:  76:  77:  78:  79:  80:  81:  82:  83:  84:  85:  86:  87:  88:  89:  90:  91:  92:  93:  94:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 
<?php

/**
 * The Gravity Forms Query Column class.
 */
class GF_Query_Column {

    /**
     * @const Identifier for searching across any meta field.
     */
    const META = '{{ANY META FIELD}}';

    /**
     * @var string The field ID.
     */
    private $_field_id;

    /**
     * @var int|array The source.
     */
    private $_source;

    /**
     * @var string|false The alias override (for meta rows)
     */
    private $_alias = false;

    /**
     * Represents a column.
     *
     * @param string $field_id The field ID (meta key or column name).
     * @param int|array $source The source this field is referencing.
     * @param string|bool $alias An alias override. Default: false.
     */
    public function __construct( $field_id, $source = 0, $alias = false ) {
        if ( ! ( is_int( $source ) || is_array( $source ) ) ) {
            return;
        }

        $this->_field_id = $field_id;
        $this->_source = $source;
        $this->_alias = $alias;
    }

    /**
     * Get some SQL for this column.
     *
     * @param $query GF_Query The query.
     *
     * @return string The SQL.
     */
    public function sql( $query ) {
        if ( ! $query instanceof GF_Query ) {
            return '';
        }

        if ( ! $this->field_id ) {
            return '';
        }

        if ( $this->is_entry_column() ) {
            return sprintf( '`%s`.`%s`', $this->alias ? $this->alias : $query->_alias( null, $this->source ), $this->field_id );
        } else if ( $this->is_meta_column() ) {
            return sprintf( '`%s`.`%s`', $this->alias ? $this->alias : $query->_alias( $this->field_id, $this->source, 'm' ), $this->field_id );
        }

        return '';
    }

    /**
     * Whether this field is an entry column.
     *
     * @return boolean An entry column or not.
     */
    public function is_entry_column() {
        if ( ! $this->field_id ) {
            return false;
        }

        static $entry_columns = array();
        if ( empty( $entry_columns ) ) {
            global $wpdb;
            $entry_columns = wp_list_pluck( $wpdb->get_results( 'SHOW COLUMNS FROM ' . GFFormsModel::get_entry_table_name(), ARRAY_A ), 'Field' );
        }
        return in_array( $this->field_id, $entry_columns );
    }

    /**
     * Whether this field is a nullable entry column.
     *
     * @since 2.3.1.10
     *
     * @return boolean An entry column or not.
     */
    public function is_nullable_entry_column() {
        if ( ! $this->field_id ) {
            return false;
        }

        static $nullable_entry_columns = array();
        if ( empty( $nullable_entry_columns ) ) {
            global $wpdb;
            $nullable_entry_columns = wp_list_pluck( $wpdb->get_results( 'SHOW COLUMNS FROM ' . GFFormsModel::get_entry_table_name() . " WHERE `Null` = 'YES'", ARRAY_A ), 'Field' );
        }
        return in_array( $this->field_id, $nullable_entry_columns );
    }



    /**
     * Whether this field is a meta column.
     *
     * @return boolean A meta column or not.
     */
    public function is_meta_column() {
        if ( ! $this->field_id ) {
            return false;
        }

        return in_array( $this->field_id, array( 'meta_key', 'meta_value' ) );
    }

    /**
     * Proxy read-only values.
     */
    public function __get( $key ) {
        switch ( $key ):
            case 'field_id':
                return $this->_field_id;
            case 'source':
                return $this->_source;
            case 'alias':
                return $this->_alias;
        endswitch;
    }
}
Gravity Forms API API documentation generated by ApiGen