19 call_user_func( __FUNCTION__, $id, $atts, $_this );
22 if ( ! $_this->views->count() ) {
27 array_map(
function( $view ) {
return $view->ID; }, $_this->views->all() ),
28 array_map(
function( $view ) {
return $view->as_data(); }, $_this->views->all() )
33 if ( $view = $_this->views->get(
$view_id ) ) {
34 do_action(
'gravityview_log_debug', sprintf(
'GravityView_View_Data[add_view] Returning; View #%s already exists.',
$view_id ) );
35 return $view->as_data();
40 do_action(
'gravityview_log_debug', sprintf(
'GravityView_View_Data[add_view] Returning; View #%s does not exist.',
$view_id ) );
45 if ( ! $view->form ) {
46 do_action(
'gravityview_log_debug', sprintf(
'GravityView_View_Data[add_view] Returning; Post ID #%s does not have a connected form.',
$view_id ) );
51 if ( is_array( $atts ) ) {
52 $view->settings->update( $atts );
55 $_this->views->add( $view );
57 return $view->as_data();
82 do_action(
'gravityview_log_debug',
'[gravityview_get_entries] Final Parameters',
$criteria );
90 $entries = apply_filters_ref_array(
'gravityview_before_get_entries', array( null,
$criteria, $parameters, &$count ) );
99 $entries = new \GV\Entry_Collection();
101 $view->settings->update(
$args );
106 : ( ( ( $parameters[
'paging'][
'offset'] - $view->settings->get(
'offset' ) ) / $parameters[
'paging'][
'page_size'] ) + 1 );
110 'offset' => ( $page - 1 ) * $view->settings->get(
'page_size' ),
111 'page_size' => $view->settings->get(
'page_size' ),
117 $entries = array_map(
function( $e ) {
return $e->as_entry(); },
$entries->all() );
126 $entries = apply_filters_ref_array(
'gravityview_entries', array( $entries,
$criteria, $parameters, &$count ) );
128 return array( $entries, $paging, $count );
146 gravityview()->log->error(
'No entry or field_settings[id] supplied', array(
'data' => array( func_get_args() ) ) );
152 $entry =
$entry[
'_multi'][ $field_settings[
'form_id'] ];
156 gravityview()->log->error(
'Invalid \GV\GF_Entry supplied', array(
'data' =>
$entry ) );
170 case \GV\Source::BACKEND_GRAVITYFORMS:
172 gravityview()->log->error(
'No form Gravity Form found for entry', array(
'data' =>
$entry ) );
176 if ( !
$field = $form::get_field(
$form, $field_settings[
'id'] ) ) {
183 case \GV\Source::BACKEND_INTERNAL:
192 gravityview()->log->error(
'Could not determine source for entry', array(
'data' => array( func_get_args() ) ) );
197 $field->update_configuration( $field_settings );
199 $renderer = new \GV\Field_Renderer();
218 if ( ! empty( $field_settings[
'show_label'] ) || $force_show_label ) {
220 $label = isset( $field_settings[
'label'] ) ? $field_settings[
'label'] :
'';
223 if ( ! empty( $field_settings[
'custom_label'] ) ) {
232 $label .= apply_filters(
'gravityview_render_after_label',
'', $field_settings );
243 $label = apply_filters(
'gravityview/template/field_label',
$label, $field_settings,
$form, $entry );
250 if ( ! empty( $entry[
'_multi'] ) && ! empty( $field_settings[
'form_id'] ) && ! empty( $entry[
'_multi'][ $field_settings[
'form_id'] ] ) ) {
251 $entry = $entry[
'_multi'][ $field_settings[
'form_id'] ];
253 $form = $_form->form;
257 if ( empty( $entry[
'form_id'] ) || empty( $field_settings[
'id'] ) ) {
258 gravityview()->log->error(
'No entry or field_settings[id] supplied', array(
'data' => array( func_get_args() ) ) );
259 return $bail(
$label, $field_settings, $entry, $force_show_label,
$form );
262 if ( empty( $entry[
'id'] ) || ! $gv_entry = \
GV\
GF_Entry::by_id( $entry[
'id'] ) ) {
263 gravityview()->log->error(
'Invalid \GV\GF_Entry supplied', array(
'data' => $entry ) );
264 return $bail(
$label, $field_settings, $entry, $force_show_label,
$form );
279 case \GV\Source::BACKEND_GRAVITYFORMS:
281 gravityview()->log->error(
'No form Gravity Form found for entry', array(
'data' => $entry ) );
282 return $bail(
$label, $field_settings, $entry->as_entry(), $force_show_label,
$form );
285 if ( !
$field = $gf_form::get_field(
$gf_form, $field_settings[
'id'] ) ) {
286 gravityview()->log->error(
'No field found for specified form and field ID #{field_id}', array(
'field_id' => $field_settings[
'id'],
'data' =>
$form ) );
287 return $bail(
$label, $field_settings, $entry->as_entry(), $force_show_label,
$gf_form->form );
289 if ( empty( $field_settings[
'show_label'] ) ) {
291 $field_settings[
'label'] =
'';
297 case \GV\Source::BACKEND_INTERNAL:
299 return $bail(
$label, $field_settings, $entry->as_entry(), $force_show_label,
$form );
305 gravityview()->log->error(
'Could not determine source for entry. Using empty field.', array(
'data' => array( func_get_args() ) ) );
310 if( $force_show_label ) {
311 $field_settings[
'show_label'] =
'1';
315 $field->update_configuration( $field_settings );
317 if ( ! empty(
$field->show_label ) ) {
326 $label .= apply_filters(
'gravityview_render_after_label',
'',
$field->as_configuration() );
400 public static function push( $configuration ) {
401 array_push( self::$stack, self::freeze() );
402 self::load( $configuration );
410 public static function pop() {
411 self::thaw( array_pop( self::$stack ) );
420 global $wp_actions, $wp_query;
447 'wp_actions[loop_start]' => empty( $wp_actions[
'loop_start'] ) ? 0 : $wp_actions[
'loop_start'],
448 'wp_query::in_the_loop' => $wp_query->in_the_loop,
457 public static function thaw( $data ) {
458 foreach ( (array)$data as $key =>
$value ) {
460 case '\GravityView_View::atts':
463 case '\GravityView_View::view_id':
466 case '\GravityView_View::back_link_label':
469 case '\GravityView_View_Data::views':
472 case '\GravityView_View::entries':
475 case '\GravityView_View::form':
478 case '\GravityView_View::form_id':
481 case '\GravityView_View::context':
484 case '\GravityView_View::total_entries':
487 case '\GravityView_View::post_id':
490 case '\GravityView_View::is_hide_until_searched':
493 case '\GravityView_frontend::post_id':
496 case '\GravityView_frontend::context_view_id':
498 $frontend->context_view_id =
$value;
500 case '\GravityView_frontend::is_gravityview_post_type':
503 case '\GravityView_frontend::post_has_shortcode':
506 case '\GravityView_frontend::gv_output_data':
509 case '\GravityView_View::paging':
512 case '\GravityView_View::sorting':
515 case '\GravityView_frontend::is_search':
518 case '\GravityView_frontend::single_entry':
521 case '\GravityView_frontend::entry':
524 case '\GravityView_View::_current_entry':
527 case '\GravityView_View::fields':
530 case '\GravityView_View::_current_field':
533 case 'wp_actions[loop_start]':
535 $wp_actions[
'loop_start'] =
$value;
537 case 'wp_query::in_the_loop':
539 $wp_query->in_the_loop =
$value;
552 public static function load( $configuration ) {
553 foreach ( (array)$configuration as $key =>
$value ) {
556 $views = new \GV\View_Collection();
560 '\GravityView_View::atts' =>
$value->settings->as_atts(),
561 '\GravityView_View::view_id' =>
$value->ID,
562 '\GravityView_View::back_link_label' =>
$value->settings->get(
'back_link_label', null ),
563 '\GravityView_View::form' =>
$value->form ?
$value->form->form : null,
564 '\GravityView_View::form_id' =>
$value->form ?
$value->form->ID : null,
565 '\GravityView_View::is_hide_until_searched' =>
$value->settings->get(
'hide_until_searched', null ) && !
gravityview()->request->is_search(),
567 '\GravityView_View_Data::views' => $views,
569 '\GravityView_frontend::context_view_id' =>
$value->ID,
573 $has_shortcode =
false;
575 if ( $shortcode->name ==
'gravityview' ) {
576 $has_shortcode =
true;
581 '\GravityView_View::post_id' =>
$value->ID,
582 '\GravityView_frontend::post_id' =>
$value->ID,
583 '\GravityView_frontend::is_gravityview_post_type' =>
$value->post_type ==
'gravityview',
584 '\GravityView_frontend::post_has_shortcode' => $has_shortcode,
589 '\GravityView_View_Data::views' =>
$value,
595 '\GravityView_View::entries' => array_map(
function( $e ) {
return $e->as_entry(); },
$value->all() ),
596 '\GravityView_View::total_entries' =>
$value->total(),
601 '\GravityView_frontend::single_entry' =>
$value->ID,
602 '\GravityView_frontend::entry' =>
$value->as_entry(),
603 '\GravityView_View::_current_entry' =>
$value->as_entry(),
608 '\GravityView_View::fields' =>
$value->as_configuration(),
613 '\GravityView_View::_current_field' => array(
616 'field_settings' =>
$value->as_configuration(),
618 'field_type' =>
$value->type,
631 '\GravityView_View::context' => (
632 $value->is_entry() ?
'single' :
633 (
$value->is_edit_entry() ?
'edit' :
634 (
$value->is_view(
false ) ?
'directory': null )
637 '\GravityView_frontend::is_search' =>
$value->is_search(),
640 if ( !
$value->is_entry() ) {
642 '\GravityView_frontend::single_entry' => 0,
643 '\GravityView_frontend::entry' => 0
649 '\GravityView_View::paging' =>
$value,
654 '\GravityView_View::sorting' =>
$value,
659 'wp_query::in_the_loop' =>
$value,
660 'wp_actions[loop_start]' =>
$value ? 1 : 0,
685 global $wp_query, $wp_actions;
687 $wp_query->in_the_loop =
false;
688 $wp_actions[
'loop_start'] = 0;
694 add_filter(
'gravityview/configuration/fields',
function( $fields ) {
695 if ( empty( $fields ) ) {
715 foreach ( $fields as $position => &$_fields ) {
717 if ( empty( $_fields ) || ! is_array( $_fields ) ) {
721 foreach ( $_fields as $uid => &$_field ) {
722 if ( ! isset( $_field[
'only_loggedin'] ) ) {
726 $_field[
'only_loggedin'] !=
'1' && ( $_field[
'only_loggedin_cap'] =
'' );
734 add_filter(
'gravityview/view/configuration/fields',
function( $fields, $view ) {
735 if ( ! $view || empty( $fields ) ) {
739 if ( ! $view->form || ! $view->form->ID ) {
750 foreach ( $fields as $position => &$_fields ) {
752 if ( empty( $_fields ) || ! is_array( $_fields ) ) {
756 foreach ( $_fields as $uid => &$_field ) {
757 if ( ! empty( $_field[
'id'] ) && is_numeric( $_field[
'id'] ) && empty( $_field[
'form_id'] ) ) {
758 $_field[
'form_id'] = $view->form->ID;
768 add_action(
'gravityview/template/after',
function( $gravityview = null ) {
769 if ( class_exists(
'\GravityView_frontend' ) ) {
772 if ( empty( $wp_filter[
'gravityview_after'] ) ) {
776 foreach ( $wp_filter[
'gravityview_after']->callbacks[10] as $function_key => $callback ) {
777 if ( strpos( $function_key,
'context_not_configured_warning' ) ) {
778 unset( $wp_filter[
'gravityview_after']->callbacks[10][ $function_key ] );
784 add_filter(
'gravityview/query/is_null_condition',
function() {
785 if ( ! class_exists(
$class =
'\GV\Mocks\GF_Query_Condition_IS_NULL' ) ) {
786 require_once
gravityview()->plugin->dir(
'future/_mocks.isnull.php' );
static getInstance( $passed_post=NULL)
GravityView_View_Data_add_view( $view_id, $atts, $_this)
This file contains mock code for deprecated functions.
static calculate_get_entries_criteria( $passed_criteria=array(), $form_ids=array())
Calculates the Search Criteria used on the self::get_entries / self::get_entry methods.
static getInstance( $passed_post=NULL)
$gravityview_view
array $entry array $form array $field_settings
if(gv_empty( $field['value'], false, false)) $format
A manager of legacy global states and contexts.
static reset()
Resets the global state completely.
$field_settings['content']
static freeze()
Serializes the current configuration as needed.
GravityView_API_field_value( $entry, $field_settings, $format)
The old function does a bit too much, not only does it retrieve the value for a field, but it also renders some output.
if(gravityview() ->plugin->is_GF_25()) $form
static load( $configuration)
Hydrates the legacy context globals as needed.
GravityView_frontend_get_view_entries( $args, $form_id, $parameters, $count)
$criteria['paging']
Modify the search parameters before the entries are fetched.
static get_field()
Get a by Field ID for this data source.
static pop()
Restores last saved state and context.
static push( $configuration)
Set the state depending on the provided configuration.
static by_id( $post_id)
Construct a instance from a post ID.
static from_entries( $entries)
Construct a multientry from an array of entries.
static replace_variables( $text, $form=array(), $entry=array(), $url_encode=false, $esc_html=true, $nl2br=true, $format='html', $aux_data=array())
Alias for GravityView_Merge_Tags::replace_variables()
const BACKEND_GRAVITYFORMS
static thaw( $data)
Deserializes a saved configuration.
if(empty( $created_by)) $form_id
GravityView_API_field_label( $form, $field_settings, $entry, $force_show_label=false)
Mock out the ::field_label method.
foreach(GravityKitFoundation::helpers() ->core->get_plugins() as $path=> $plugin)
static get( $array, $key, $default=null)
Grab a value from an array or an object or default.
gravityview()
The main GravityView wrapper function.
static parse( $content)
Parse a string of content and figure out which ones there are.
static by_id( $entry_id, $form_id=0)
Construct a instance by ID.
static getInstance()
Get the one true instantiated self.