error or status message(s), 'body' => '',
* 'prevent_default' => true to bypass the MLA handler )
*/
public static function mla_list_table_inline_action( $item_content, $post_id ) {
//error_log( 'MLAImageSourceControlExample::mla_list_table_inline_action $item_content = ' . var_export( $item_content, true ), 0 );
//error_log( 'MLAImageSourceControlExample::mla_list_table_inline_action $post_id = ' . var_export( $post_id, true ), 0 );
//error_log( 'MLAImageSourceControlExample::mla_list_table_inline_action $_REQUEST = ' . var_export( $_REQUEST, true ), 0 );
if ( isset( $_REQUEST['custom_updates'] ) && isset( $_REQUEST['custom_updates']['isc_image_source_own'] ) ) {
if ( 'yes' == trim( strtolower( $_REQUEST['custom_updates']['isc_image_source_own'] ) ) ) {
$_REQUEST['custom_updates']['isc_image_source_own'] = 1;
} else {
$_REQUEST['custom_updates']['isc_image_source_own'] = '';
}
}
return $item_content;
} // mla_list_table_inline_action
/**
* Process an MLA_List_Table bulk action
*
* This filter gives you an opportunity to pre-process an MLA_List_Table page-level
* or single-item action, standard or custom, before the MLA handler.
* The filter is called once for each of the items in $_REQUEST['cb_attachment'].
*
* @since 1.00
*
* @param array $item_content NULL, to indicate no handler.
* @param string $bulk_action the requested action.
* @param integer $post_id the affected attachment.
*
* @return object updated $item_content. NULL if no handler, otherwise
* ( 'message' => error or status message(s), 'body' => '',
* 'prevent_default' => true to bypass the MLA handler )
*/
public static function mla_list_table_bulk_action( $item_content, $bulk_action, $post_id ) {
static $isc_image_source_own_value = NULL;
//error_log( 'MLAImageSourceControlExample::mla_list_table_bulk_action $item_content = ' . var_export( $item_content, true ), 0 );
//error_log( 'MLAImageSourceControlExample::mla_list_table_bulk_action $bulk_action = ' . var_export( $bulk_action, true ), 0 );
//error_log( 'MLAImageSourceControlExample::mla_list_table_bulk_action $post_id = ' . var_export( $post_id, true ), 0 );
//error_log( 'MLAImageSourceControlExample::mla_list_table_inline_action $_REQUEST = ' . var_export( $_REQUEST, true ), 0 );
if ( ! empty( $_REQUEST['c_isc_image_source_own'] ) ) {
if ( is_null( $isc_image_source_own_value ) ) {
$isc_image_source_own_value = trim( strtolower( $_REQUEST['c_isc_image_source_own'] ) );
}
$_REQUEST['c_isc_image_source_own'] = '';
}
if ( ! empty( $isc_image_source_own_value ) ) {
if ( 'yes' == $isc_image_source_own_value ) {
update_post_meta( $post_id, 'isc_image_source_own', 1 );
$item_content = array( 'message' => sprintf( __( 'Adding %1$s = %2$s', 'media-library-assistant' ) . '
', 'isc_image_source_own', $isc_image_source_own_value ) );
} else {
delete_post_meta( $post_id, 'isc_image_source_own' );
$item_content = array( 'message' => sprintf( __( 'Deleting %1$s', 'media-library-assistant' ) . '
', 'isc_image_source_own' ) );
}
}
//error_log( 'MLAImageSourceControlExample::mla_list_table_inline_action final $_REQUEST = ' . var_export( $_REQUEST, true ), 0 );
return $item_content;
} // mla_list_table_bulk_action
/**
* MLA_List_Table inline edit item values
*
* This filter gives you a chance to modify and extend the substitution values
* for the Quick and Bulk Edit forms.
*
* @since 1.00
*
* @param array $item_values parameter_name => parameter_value pairs
*
* @return array updated substitution parameter name => value pairs
*/
public static function mla_list_table_inline_values( $item_values ) {
//error_log( 'MLAImageSourceControlExample::mla_list_table_inline_values $item_values = ' . var_export( $item_values, true ), 0 );
$item_values['custom_fields'] = str_replace( '>isc_image_source<', '>Source<', $item_values['custom_fields'] );
$item_values['bulk_custom_fields'] = str_replace( '>isc_image_source<', '>Source<', $item_values['bulk_custom_fields'] );
$item_values['custom_fields'] = str_replace( '>isc_image_source_own<', '>Own<', $item_values['custom_fields'] );
$item_values['bulk_custom_fields'] = str_replace( '>isc_image_source_own<', '>Own<', $item_values['bulk_custom_fields'] );
$item_values['custom_fields'] = str_replace( '>isc_image_source_url<', '>Source URL<', $item_values['custom_fields'] );
$item_values['bulk_custom_fields'] = str_replace( '>isc_image_source_url<', '>Source URL<', $item_values['bulk_custom_fields'] );
return $item_values;
} // mla_list_table_inline_values
/**
* Filter the MLA_List_Table columns
*
* This MLA-specific filter gives you an opportunity to filter the list table columns.
*
* @since 1.00
*
* @param array $columns An array of columns.
* format: column_slug => Column Label
*
* @return array updated array of columns.
*/
public static function mla_list_table_get_columns( $columns ) {
//error_log( 'MLAImageSourceControlExample::mla_list_table_get_columns $columns = ' . var_export( $columns, true ), 0 );
if ( isset( $columns['c_isc_image_source'] ) ) {
unset( $columns['c_isc_image_source'] );
$columns['my_isc_image_source'] = 'Source';
}
if ( isset( $columns['c_isc_image_source_own'] ) ) {
unset( $columns['c_isc_image_source_own'] );
$columns['my_isc_image_source_own'] = 'Own';
}
if ( isset( $columns['c_isc_image_source_url'] ) ) {
unset( $columns['c_isc_image_source_url'] );
$columns['my_isc_image_source_url'] = 'Source URL';
}
//error_log( 'MLAImageSourceControlExample::mla_list_table_get_columns final $columns = ' . var_export( $columns, true ), 0 );
return $columns;
} // mla_list_table_get_columns_filter
/**
* Filter the MLA_List_Table hidden columns
*
* This MLA-specific filter gives you an opportunity to filter the hidden list table columns.
*
* @since 1.00
*
* @param array $hidden_columns An array of columns.
* format: index => column_slug
*
* @return array updated array of columns.
*/
public static function mla_list_table_get_hidden_columns( $hidden_columns ) {
//error_log( 'MLAImageSourceControlExample::mla_list_table_get_hidden_columns $hidden_columns = ' . var_export( $hidden_columns, true ), 0 );
$index = array_search( 'c_isc_image_source', $hidden_columns );
if ( false !== $index ) {
$hidden_columns[ $index ] = 'my_isc_image_source';
}
$index = array_search( 'c_isc_image_source_own', $hidden_columns );
if ( false !== $index ) {
$hidden_columns[ $index ] = 'my_isc_image_source_own';
}
$index = array_search( 'c_isc_image_source_url', $hidden_columns );
if ( false !== $index ) {
$hidden_columns[ $index ] = 'my_isc_image_source_url';
}
//error_log( 'MLAImageSourceControlExample::mla_list_table_get_hidden_columns final $hidden_columns = ' . var_export( $hidden_columns, true ), 0 );
return $hidden_columns;
} // mla_list_table_get_hidden_columns_filter
/**
* Filter the MLA_List_Table sortable columns
*
* This MLA-specific filter gives you an opportunity to filter the sortable list table
* columns; a good alternative to the 'manage_media_page_mla_menu_sortable_columns' filter.
*
* @since 1.00
*
* @param array $sortable_columns An array of columns.
* Format: 'column_slug' => 'orderby'
* or 'column_slug' => array( 'orderby', true )
*
* The second format will make the initial sorting order be descending.
*
* @return array updated array of columns.
*/
public static function mla_list_table_get_sortable_columns( $sortable_columns ) {
//error_log( 'MLAImageSourceControlExample::mla_list_table_get_sortable_columns $sortable_columns = ' . var_export( $sortable_columns, true ), 0 );
if ( isset( $sortable_columns['c_isc_image_source'] ) ) {
$sortable_columns['my_isc_image_source'] = $sortable_columns['c_isc_image_source'];
unset( $sortable_columns['c_isc_image_source'] );
}
if ( isset( $sortable_columns['c_isc_image_source_own'] ) ) {
$sortable_columns['my_isc_image_source_own'] = $sortable_columns['c_isc_image_source_own'];
unset( $sortable_columns['c_isc_image_source_own'] );
}
if ( isset( $sortable_columns['c_isc_image_source_url'] ) ) {
$sortable_columns['my_isc_image_source_url'] = $sortable_columns['c_isc_image_source_url'];
unset( $sortable_columns['c_isc_image_source_url'] );
}
//error_log( 'MLAImageSourceControlExample::mla_list_table_get_sortable_columns final $sortable_columns = ' . var_export( $sortable_columns, true ), 0 );
return $sortable_columns;
} // mla_list_table_get_sortable_columns_filter
/**
* Supply a column value if no column-specific function has been defined
*
* Called when the MLA_List_Table can't find a value for a given column.
*
* @since 1.00
*
* @param string NULL, indicating no default content
* @param array A singular item (one full row's worth of data)
* @param array The name/slug of the column to be processed
* @return string Text or HTML to be placed inside the column
*/
public static function mla_list_table_column_default( $content, $item, $column_name ) {
//error_log( "MLAImageSourceControlExample::mla_list_table_column_default ({$column_name}) \$item = " . var_export( $item, true ), 0 );
if ( 'my_isc_image_source' == $column_name ) {
return isset( $item->mla_item_isc_image_source ) ? $item->mla_item_isc_image_source : '';
}
if ( 'my_isc_image_source_own' == $column_name ) {
$values = isset( $item->mla_item_isc_image_source_own ) ? $item->mla_item_isc_image_source_own : '';
if ( empty( $values ) ) {
return 'no';
} else {
return 'yes';
}
}
if ( 'my_isc_image_source_url' == $column_name ) {
return isset( $item->mla_item_isc_image_source_url ) ? $item->mla_item_isc_image_source_url : '';
}
return $content;
} // mla_list_table_column_default_filter
/**
* Filter the data for inline (Quick and Bulk) editing
*
* This filter gives you an opportunity to filter the data passed to the
* JavaScript functions for Quick and Bulk editing.
*
* @since 1.00
*
* @param string $inline_data The HTML markup for inline data.
* @param object $item The current Media Library item.
*
* @return string updated HTML markup for inline data.
*/
public static function mla_list_table_build_inline_data( $inline_data, $item ) {
//error_log( 'MLAImageSourceControlExample::mla_list_table_build_inline_data $inline_data = ' . var_export( $inline_data, true ), 0 );
//error_log( 'MLAImageSourceControlExample::mla_list_table_build_inline_data $item = ' . var_export( $item, true ), 0 );
$match_count = preg_match_all( '/\