Shows how to add a record edit link to a Participants Database Participant Log Global Log List template.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* shows how to add a record edit link to a global log list template | |
* | |
*/ | |
/** | |
* provides the record's edit link | |
* | |
* @global wpdb $wpdb | |
* @param object $field the field object | |
*/ | |
if ( !function_exists( 'xnau_get_entry_record_edit_link' ) ): | |
function xnau_get_entry_record_edit_link( $field ) | |
{ | |
$record_id = method_exists( $field, 'parent_record_id' ) ? $field->parent_record_id() : $field->record_id; | |
global $wpdb; | |
$private_id = $wpdb->get_var( 'SELECT `private_id` FROM ' . Participants_Db::$participants_table . ' WHERE `id` = "' . $record_id . '" LIMIT 1' ); | |
return Participants_Db::get_record_link( $private_id ); | |
} | |
endif; | |
/* name of the field the edit is is applied to | |
* | |
* this should be a "placeholder" field from the main plugin | |
*/ | |
$link_field = 'edit_link'; | |
?> | |
<div class="wrap <?php echo $this->wrap_class ?>" id="<?php echo $this->list_anchor ?>"> | |
<?php | |
/* | |
* SEARCH/SORT FORM | |
* | |
* the search/sort form is only presented when enabled in the shortcode. | |
* | |
*/ | |
$this->show_search_sort_form(); | |
/* | |
* GLOBAL LOG DISPLAY | |
* | |
* NOTE: the container for the list itself (excluding search and pagination | |
* controls) must have a class of "list-container" for AJAX search/sort to | |
* function | |
*/ | |
?> | |
<table class="wp-list-table widefat fixed pages list-container" > | |
<?php if ( has_action( 'pdb-prepend_to_list_container_content' ) ) : ?> | |
<caption> | |
<?php do_action( 'pdb-prepend_to_list_container_content' ) ?> | |
<?php $this->print_list_count( '<div class="%s"><span class="list-display-count">' ) ?> | |
</caption> | |
<?php else : ?> | |
<?php | |
/* print the count if enabled in the shortcode | |
* | |
* the tag wrapping the count statment can be supplied in the function argument, example here | |
*/ | |
$this->print_list_count( '<caption class="%s" ><span class="list-display-count">' ); | |
?> | |
<?php endif ?> | |
<?php if ( $record_count > 0 ) : // print only if there are records to show ?> | |
<thead> | |
<tr> | |
<?php | |
/* | |
* this function prints headers for all the fields | |
* replacement codes: | |
* %2$s is the form element type identifier | |
* %1$s is the title of the field | |
*/ | |
$this->print_header_row( '<th class="%2$s" scope="col">%1$s</th>' ); | |
?> | |
</tr> | |
</thead> | |
<tbody> | |
<?php while ( $this->have_records() ) : $this->the_record(); // each record is one row ?> | |
<tr> | |
<?php while ( $this->have_fields() ) : $this->the_field(); // each field is one cell ?> | |
<?php | |
if ( $this->field->name === $link_field ) { | |
$this->field->link = xnau_get_entry_record_edit_link( $this->field ); | |
} | |
?> | |
<td class="<?php echo $this->field->name() ?>-field"> | |
<?php $this->field->print_value() ?> | |
</td> | |
<?php endwhile; // each field ?> | |
</tr> | |
<?php endwhile; // each record ?> | |
</tbody> | |
<?php else : // if there are no records ?> | |
<tbody> | |
<tr> | |
<td><?php if ( $this->is_search_result ) echo Participants_Db::plugin_setting( 'no_records_message' ) ?></td> | |
</tr> | |
</tbody> | |
<?php endif; // $record_count > 0 ?> | |
</table> | |
<?php | |
/* | |
* this shortcut function presents a pagination control with default layout | |
*/ | |
$this->show_pagination_control(); | |
?> | |
</div> |
April 24, 2021
I updated this template to work correctly with current versions of Participants Database.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Be sure to have the name of the log in the shortcode...for example:
[pdb_log_list log_name=work_log]