5 if ( ! defined(
'GRAVITYVIEW_DIR' ) ) {
30 if ( $request->is_admin() ) {
31 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', null, null,
$atts );
48 $atts = apply_filters(
'gravityview/shortcodes/gventry/atts',
$atts );
53 gravityview()->log->error(
'View does not exist #{view_id}', array(
'view_id' =>
$atts[
'view_id'] ) );
54 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', null, null,
$atts );
57 $entry_id = ! empty(
$atts[
'entry_id'] ) ?
$atts[
'entry_id'] :
$atts[
'id'];
61 if ( class_exists(
'\GF_Query' ) ) {
67 add_filter(
'gravityview_get_entries', $filter =
function( $parameters,
$args,
$form_id ) {
68 if ( ! empty( $parameters[
'sorting'] ) ) {
72 $sort = &$parameters[
'sorting'];
73 $sort[
'direction'] = $sort[
'direction'] ==
'RAND' ? : ( $sort[
'direction'] ==
'ASC' ?
'DESC' :
'ASC' );
78 $parameters[
'sorting'] = array(
86 $entries = $view->get_entries( null );
87 remove_filter(
'gravityview_get_entries', $filter );
89 $entries = $view->get_entries( null );
92 if ( $sort = end(
$entries->sorts ) ) {
101 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', $view, null,
$atts );
105 if ( !
$entry = $view->get_entries( null )->first() ) {
106 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', $view, null,
$atts );
111 gravityview()->log->error(
'Entry #{entry_id} not found', array(
'view_id' =>
$atts[
'view_id'] ) );
112 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', $view, null,
$atts );
116 if ( $view->form->ID !=
$entry[
'form_id'] ) {
117 gravityview()->log->error(
'Entry does not belong to view (form mismatch)' );
118 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', $view,
$entry,
$atts );
121 if ( post_password_required( $view->ID ) ) {
122 gravityview()->log->notice(
'Post password is required for View #{view_id}', array(
'view_id' => $view->ID ) );
123 return apply_filters(
'gravityview/shortcodes/gventry/output', get_the_password_form( $view->ID ), $view,
$entry,
$atts );
126 if ( ! $view->form ) {
127 gravityview()->log->notice(
'View #{id} has no form attached to it.', array(
'id' => $view->ID ) );
133 if ( \
GVCommon::has_cap( array(
'edit_gravityviews',
'edit_gravityview' ), $view->ID ) ) {
134 $return = sprintf( __(
'This View is not configured properly. Start by <a href="%s">selecting a form</a>.',
'gk-gravityview' ), esc_url( get_edit_post_link( $view->ID,
false ) ) );
135 return apply_filters(
'gravityview/shortcodes/gventry/output', $return, $view,
$entry,
$atts );
138 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', $view,
$entry,
$atts );
142 $public_states = get_post_stati( array(
'public' =>
true ) );
143 if ( ! in_array( $view->post_status, $public_states ) && ! \
GVCommon::has_cap(
'read_gravityview', $view->ID ) ) {
144 gravityview()->log->notice(
'The current user cannot access this View #{view_id}', array(
'view_id' => $view->ID ) );
145 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', $view,
$entry,
$atts );
149 if (
$entry[
'status'] !=
'active' ) {
150 gravityview()->log->notice(
'Entry ID #{entry_id} is not active', array(
'entry_id' =>
$entry->ID ) );
151 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', $view,
$entry,
$atts );
154 $is_admin_and_can_view = $view->settings->get(
'admin_show_all_statuses' ) &&
\GVCommon::has_cap(
'gravityview_moderate_entries', $view->ID );
156 if ( $view->settings->get(
'show_only_approved' ) && ! $is_admin_and_can_view ) {
158 gravityview()->log->error(
'Entry ID #{entry_id} is not approved for viewing', array(
'entry_id' =>
$entry->ID ) );
159 return apply_filters(
'gravityview/shortcodes/gventry/output',
'', $view,
$entry,
$atts );
167 if (
$atts[
'edit'] ) {
174 $render = $loader->instances[
'render'];
179 add_filter(
'gravityview_is_edit_entry', $use_entry =
function() use (
$entry ) {
183 add_filter(
'gravityview/is_single_entry',
'__return_true' );
190 'form_id' =>
$form[
'id'],
191 'view_id' => $view->ID,
192 'entries' => array(
$entry ),
196 $_GET[
'edit'] = wp_create_nonce(
200 add_filter(
'gravityview/edit_entry/success', $callback =
function ( $message, $_view_id, $_entry,
$back_link, $redirect_url ) use ( $view,
$entry,
$atts ) {
213 return apply_filters(
'gravityview/shortcodes/gventry/edit/success', $message, $view,
$entry,
$atts,
$back_link, $redirect_url );
221 remove_filter(
'gravityview_is_edit_entry', $use_entry );
222 remove_filter(
'gravityview/is_single_entry',
'__return_true' );
223 remove_filter(
'gravityview/edit_entry/success', $callback );
226 add_filter(
'gravityview/template/links/back/url',
'__return_false' );
228 $renderer = new \GV\Entry_Renderer();
230 $request = new \GV\Mock_Request();
231 $request->returns[
'is_entry'] =
$entry;
235 remove_filter(
'gravityview/template/links/back/url',
'__return_false' );
246 return apply_filters(
'gravityview/shortcodes/gventry/output',
$output, $view,
$entry,
$atts );
If this file is called directly, abort.
static getInstance( $passed_post=NULL)
static getInstance( $passed_post=NULL)
if(! isset( $gravityview)||empty( $gravityview->template)) $template
The entry loop for the list output.
If this file is called directly, abort.
if(gravityview() ->plugin->is_GF_25()) $form
static get_template_settings( $post_id)
Get all the settings for a View.
gv_map_deep( $value, $callback)
Maps a function to all non-iterable elements of an array or an object.
If this file is called directly, abort.
static get_endpoint_name()
Return the endpoint name for a single Entry.
static by_id( $post_id)
Construct a instance from a post ID.
static get_nonce_key( $view_id, $form_id, $entry_id)
Return a well formatted nonce key according to GravityView Edit Entry protocol.
static by_id( $field_id)
Get a from an internal Gravity Forms field ID.
if(empty( $created_by)) $form_id
callback( $atts, $content='', $tag='')
The WordPress Shortcode API callback for this shortcode.
static get( $array, $key, $default=null)
Grab a value from an array or an object or default.
gravityview()
The main GravityView wrapper function.
static by_id( $entry_id, $form_id=0)
Construct a instance by ID.
static is_approved( $status)
static has_cap( $caps='', $object_id=null, $user_id=null)
Alias of GravityView_Roles_Capabilities::has_cap()