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( '/\
(.*)\<\/div\>/', $inline_data, $matches, PREG_OFFSET_CAPTURE ); if ( ( $match_count == false ) || ( $match_count == 0 ) ) { return $inline_data; } if ( isset( $item->mla_item_isc_image_source_own ) && 1 == $item->mla_item_isc_image_source_own ) { $value = esc_html( 'yes' ); } else { $value = esc_html( 'no' ); } $head = substr( $inline_data, 0, $matches[1][0][1] ); $tail = substr( $inline_data, ( $matches[1][0][1] + strlen( $matches[1][0][0] ) ) ); $inline_data = $head . $value . $tail; return $inline_data; } // mla_list_table_build_inline_data_filter } // Class MLAImageSourceControlExample /* * Install the filters at an early opportunity */ add_action('init', 'MLAImageSourceControlExample::initialize'); ?>