/** * Render an output zone, as configured in the Admin * * @param string $zone The zone name, like 'footer-left' * @param array $atts * * @return string|null */ public function renderZone($zone = '', $atts = array()) { if (empty($zone)) { do_action('gravityview_log_error', 'GravityView_View[renderZone] No zone defined.'); return NULL; } $defaults = array('slug' => $this->getTemplatePartSlug(), 'context' => $this->getContext(), 'entry' => $this->getCurrentEntry(), 'form' => $this->getForm(), 'hide_empty' => $this->getAtts('hide_empty')); $final_atts = wp_parse_args($atts, $defaults); $output = ''; $final_atts['zone_id'] = "{$final_atts['context']}_{$final_atts['slug']}-{$zone}"; $fields = $this->getField($final_atts['zone_id']); // Backward compatibility if ('table' === $this->getTemplatePartSlug()) { /** * Modify the fields displayed in the table * @var array */ $fields = apply_filters("gravityview_table_cells", $fields, $this); } if (empty($fields)) { return NULL; } $field_output = ''; foreach ($fields as $field) { $final_atts['field'] = $field; $field_output .= gravityview_field_output($final_atts); } /** * If a zone has no field output, choose whether to show wrapper * False by default to keep backward compatibility * @since 1.7.6 * @param boolean $hide_empty_zone Default: false */ if (empty($field_output) && apply_filters('gravityview/render/hide-empty-zone', false)) { return NULL; } if (!empty($final_atts['wrapper_class'])) { $output .= '<div class="' . gravityview_sanitize_html_class($final_atts['wrapper_class']) . '">'; } $output .= $field_output; if (!empty($final_atts['wrapper_class'])) { $output .= '</div>'; } echo $output; return $output; }
<?php if ($this->getFields('single_list-title') || $this->getFields('single_list-subtitle')) { ?> <div class="gv-list-view-title"> <?php if ($fields = $this->getFields('single_list-title')) { $i = 0; $title_args = array('entry' => $entry, 'form' => $this->form, 'hide_empty' => $this->atts['hide_empty']); foreach ($fields as $field) { $title_args['field'] = $field; if (0 === $i) { $title_args['markup'] = '<h3 id="{{ field_id }}" class="{{class}}">{{label}}{{value}}</h3>'; echo gravityview_field_output($title_args); } else { $title_args['wpautop'] = true; echo gravityview_field_output($title_args); } $i++; } } $this->renderZone('subtitle', array('wrapper_class' => 'gv-list-view-subtitle', 'markup' => '<h4 id="{{ field_id }}" class="{{class}}">{{label}}{{value}}</h4>')); ?> </div> <?php } ?> <div class="gv-list-view-content"> <?php $this->renderZone('image', array('wrapper_class' => 'gv-list-view-content-image', 'markup' => '<h4 id="{{ field_id }}" class="{{class}}">{{label}}{{value}}</h4>')); $this->renderZone('description', array('wrapper_class' => 'gv-list-view-content-description', 'label_markup' => '<h4>{{label}}</h4>', 'wpautop' => true));
$title_args['markup'] = '<span class="edit"><i class="fa fa-ban"></i>{{value}}</span>'; $links .= gravityview_field_output($title_args); } break; case 'copy_entry': $title_args['markup'] = '<span class="edit"><i class="fa fa-files-o"></i>{{value}}</span>'; $links .= gravityview_field_output($title_args); break; case 'entry_link': $title_args['markup'] = '<span class="edit"><i class="fa fa-eye"></i>{{value}}</span>'; $links .= gravityview_field_output($title_args); break; default: $title_args['markup'] = '{{label}} {{value}}'; } $entryData[$field['id']] = gravityview_field_output($title_args); unset($title_args['markup']); } } if (!empty($entryData)) { ?> <div class="entryImg"><?php echo isset($entry['22']) && $entry['22'] != '' ? $entryData['22'] : '<img src="/wp-content/uploads/2015/12/no-image.png" />'; ?> </div> <div class="entryData"> <div class="statusBox <?php echo $statusBlock; ?>
/** * @group fieldoutput * @see gravityview_field_output * @covers ::gravityview_field_output() */ public function test_gravityview_field_output() { /** * * 'entry' => null, * 'field' => null, * 'form' => null, * 'hide_empty' => true, * 'markup' => '<div id="{{ field_id }}" class="{{ class }}">{{label}}{{value}}</div>', * 'label_markup' => '', * 'wpautop' => false, * 'zone_id' => null, */ $form = $this->factory->form->create_and_get(); $entry = $this->factory->entry->create_and_get(array('form_id' => $form['id'])); $markup = '<div id="{{ field_id }}" class="{{ class }}">{{label}}{{value}}</div>'; $markup_without_spaces = '<div id="{{field_id}}" class="{{class}}">{{label}}{{value}}</div>'; $markup_just_label = '{{label}}'; $markup_just_value = '{{value}}'; $args = array('entry' => $entry, 'form' => $form, 'hide_empty' => $this->atts['hide_empty']); return; foreach ($entry as $field_id => $raw_field_value) { if (!is_numeric($field_id)) { continue; } $field = gravityview_get_field($form, $field_id); $args['field'] = $field; $value = gv_value($entry, $args['field']); $args['markup'] = $markup; $output = gravityview_field_output($args); //$this->assertEquals( , $output ); // Test hide empty } // Test gravityview/field_output/args filter add_filter('gravityview/field_output/args', array($this, '_filter_test_gravityview_field_output_args'), 10, 2); remove_filter('gravityview/field_output/args', array($this, '_filter_test_gravityview_field_output_args')); }