Version Description
- [Improved] Columns with empty values will now display a dash symbol
- [Fixed] Excerpt column: The label "Excerpt from content" will now only display when the post has content
Download this release
Release Info
Developer | tschutter |
Plugin | Admin Columns |
Version | 2.5.5 |
Comparing to | |
See all releases |
Code changes from version 2.5.4 to 2.5.5
- assets/css/admin-column.css +0 -1
- assets/css/column.css +1 -1
- assets/css/column.min.css +1 -1
- assets/js/admin-columns.js +23 -8
- assets/js/admin-columns.min.js +1 -1
- classes/column.php +14 -8
- classes/column/default.php +1 -0
- classes/column/media/available-sizes.php +12 -21
- classes/column/media/dimensions.php +1 -17
- classes/column/media/exif-data.php +24 -40
- classes/column/post/content.php +0 -6
- classes/column/post/excerpt.php +1 -7
- classes/column/post/modified.php +8 -29
- classes/column/taxonomy.php +12 -16
- classes/storage_model.php +13 -14
- codepress-admin-columns.php +22 -3
- readme.txt +8 -1
assets/css/admin-column.css
CHANGED
@@ -392,7 +392,6 @@
|
|
392 |
.cpac-column .column-form table tr td.label {
|
393 |
position: relative;
|
394 |
overflow: visible;
|
395 |
-
background: #F9F9F9;
|
396 |
background: #f5f5f5;
|
397 |
border-right: 1px solid #E1E1E1;
|
398 |
vertical-align: top;
|
392 |
.cpac-column .column-form table tr td.label {
|
393 |
position: relative;
|
394 |
overflow: visible;
|
|
|
395 |
background: #f5f5f5;
|
396 |
border-right: 1px solid #E1E1E1;
|
397 |
vertical-align: top;
|
assets/css/column.css
CHANGED
@@ -61,7 +61,7 @@ body.upload-php .tablenav.top .cpac-edit {
|
|
61 |
border-radius: 3px;
|
62 |
min-width: 8px;
|
63 |
padding: 0 6px;
|
64 |
-
height: 20px;
|
65 |
background-color: #e9e9e9;
|
66 |
text-align: center;
|
67 |
margin-right: 7px;
|
61 |
border-radius: 3px;
|
62 |
min-width: 8px;
|
63 |
padding: 0 6px;
|
64 |
+
min-height: 20px;
|
65 |
background-color: #e9e9e9;
|
66 |
text-align: center;
|
67 |
margin-right: 7px;
|
assets/css/column.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.actions #post-query-submit,.tablenav.top .cpac-edit{vertical-align:middle;float:left;margin-bottom:4px}.cpac-divider{display:inline-block;width:14px;height:12px;background:url(../images/square.png) 50% 7px no-repeat}
|
1 |
+
.actions #post-query-submit,.tablenav.top .cpac-edit{vertical-align:middle;float:left;margin-bottom:4px}.cpac-inline-info,.cpac-rounded{min-width:8px;padding:0 6px;text-align:center}.cpac-divider{display:inline-block;width:14px;height:12px;background:url(../images/square.png) 50% 7px no-repeat}span.status-closed{color:red}.tablenav.top .cpac-edit{top:2px;display:inline-block}body.edit-tags-php .tablenav.top .cpac-edit{float:none}.cpac_status_yes{color:#46b450}.cpac_status_no{color:#dc3232}body.edit-php #delete_all{float:left;margin-right:3px}body.users-php .tablenav .actions a.add-new-h2{float:none;vertical-align:middle!important;top:2px!important}@media screen and (max-width:782px){.tablenav.top .actions{display:block!important;margin-bottom:4px}.tablenav.top .actions *{display:none}.tablenav.top .actions .cpac-edit{display:inline-block}}body.upload-php .tablenav.top .cpac-edit{float:none}.cpac-inline-info{display:inline-block;border-radius:3px;min-height:20px;background-color:#e9e9e9;margin-right:7px;font-size:11px;font-weight:700}.cpac-rounded{display:inline-block;border-radius:10px;height:20px;background-color:#e0e0e0;margin-left:7px;font-size:12px}.cpac-rounded.cpac-rounded-first{margin-left:0}.cpac-spacing{display:inline-block;margin-right:10px;margin-bottom:4px}.cpac-suffix{margin-left:8px;color:grey}.cpac-column-value-image{display:inline-block;background:0 0;margin-right:2px;overflow:hidden;max-width:100%}.rtl .cpac-column-value-image{margin-left:2px;margin-right:0}.cpac-column-value-image img{display:block;margin:0 auto}.column-column-attachment img{padding-right:5px;padding-bottom:4px}.rtl .column-column-attachment img{padding-left:5px;padding-right:0}div.cpac-color{line-height:26px}div.cpac-color span{display:block;-webkit-border-radius:3px;border-radius:3px;color:#fff;float:left;height:16px;line-height:16px;margin-right:12px;overflow:hidden;padding:4px 5px;font-size:10px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;min-width:47px;text-align:center}.rtl div.cpac-color span{float:right;margin-left:12px;margin-right:0}div.sizes span.not-available{color:#999}.button.cpac-button-action{position:relative;text-indent:9999px;margin-right:4px;padding:0 13px;overflow:hidden}.button.cpac-button-action:before{position:absolute;top:0;left:0;width:100%;height:100%;text-indent:0}.cpac-tip{display:inline-block}.qtip.qtip-tipsy{background:rgba(0,0,0,.75);font-weight:400;min-width:25px}
|
assets/js/admin-columns.js
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
jQuery( document ).ready( function( $ ) {
|
2 |
cpac_tooltips();
|
|
|
3 |
} );
|
4 |
|
5 |
/**
|
@@ -12,16 +13,30 @@ function cpac_tooltips() {
|
|
12 |
}
|
13 |
|
14 |
jQuery( '.cpac-tip' ).qtip( {
|
15 |
-
content: {
|
16 |
-
attr: 'data-tip'
|
17 |
},
|
18 |
-
position: {
|
19 |
-
my: 'top center',
|
20 |
-
at: 'bottom center'
|
21 |
},
|
22 |
-
style: {
|
23 |
-
tip: true,
|
24 |
-
classes: 'qtip-tipsy'
|
25 |
}
|
26 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
}
|
1 |
jQuery( document ).ready( function( $ ) {
|
2 |
cpac_tooltips();
|
3 |
+
cpac_quickedit_events();
|
4 |
} );
|
5 |
|
6 |
/**
|
13 |
}
|
14 |
|
15 |
jQuery( '.cpac-tip' ).qtip( {
|
16 |
+
content : {
|
17 |
+
attr : 'data-tip'
|
18 |
},
|
19 |
+
position : {
|
20 |
+
my : 'top center',
|
21 |
+
at : 'bottom center'
|
22 |
},
|
23 |
+
style : {
|
24 |
+
tip : true,
|
25 |
+
classes : 'qtip-tipsy'
|
26 |
}
|
27 |
} );
|
28 |
+
}
|
29 |
+
|
30 |
+
function cpac_quickedit_events() {
|
31 |
+
var $ = jQuery;
|
32 |
+
|
33 |
+
$( document ).ajaxComplete( function( event, request, settings ) {
|
34 |
+
var $result = $( '<div>' ).append( request.responseText );
|
35 |
+
if ( $result.find( 'tr.iedit' ).length == 1 ) {
|
36 |
+
var id = $result.find( 'tr.iedit' ).attr( 'id' );
|
37 |
+
$( 'tr#' + id ).trigger( 'updated' );
|
38 |
+
}
|
39 |
+
;
|
40 |
+
|
41 |
+
} );
|
42 |
}
|
assets/js/admin-columns.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function cpac_tooltips(){"undefined"!=typeof jQuery.fn.qtip&&jQuery(".cpac-tip").qtip({content:{attr:"data-tip"},position:{my:"top center",at:"bottom center"},style:{tip:!0,classes:"qtip-tipsy"}})}jQuery(document).ready(function(t){cpac_tooltips()});
|
1 |
+
function cpac_tooltips(){"undefined"!=typeof jQuery.fn.qtip&&jQuery(".cpac-tip").qtip({content:{attr:"data-tip"},position:{my:"top center",at:"bottom center"},style:{tip:!0,classes:"qtip-tipsy"}})}function cpac_quickedit_events(){var t=jQuery;t(document).ajaxComplete(function(e,i,n){var c=t("<div>").append(i.responseText);if(1==c.find("tr.iedit").length){var p=c.find("tr.iedit").attr("id");t("tr#"+p).trigger("updated")}})}jQuery(document).ready(function(t){cpac_tooltips(),cpac_quickedit_events()});
|
classes/column.php
CHANGED
@@ -103,7 +103,6 @@ class CPAC_Column {
|
|
103 |
* @return bool Whether the column type should be available
|
104 |
*/
|
105 |
public function apply_conditional() {
|
106 |
-
|
107 |
return true;
|
108 |
}
|
109 |
|
@@ -111,6 +110,10 @@ class CPAC_Column {
|
|
111 |
return isset( $this->properties->default ) && $this->properties->default;
|
112 |
}
|
113 |
|
|
|
|
|
|
|
|
|
114 |
/**
|
115 |
* Overwrite this function in child class.
|
116 |
* Adds (optional) scripts to the listings screen.
|
@@ -169,7 +172,8 @@ class CPAC_Column {
|
|
169 |
'hide_label' => false, // Should the Label be hidden?
|
170 |
'is_registered' => true, // Should the column be registered based on conditional logic, example usage see: 'post/page-template.php'
|
171 |
'is_cloneable' => true, // Should the column be cloneable
|
172 |
-
'default' => false, // Is this a WP default column,
|
|
|
173 |
'use_before_after' => false, // Should the column use before and after fields
|
174 |
'group' => __( 'Custom', 'codepress-admin-columns' ) // Group name
|
175 |
);
|
@@ -1099,15 +1103,16 @@ class CPAC_Column {
|
|
1099 |
* @return string Formatted date
|
1100 |
*/
|
1101 |
public function get_date( $date, $format = '' ) {
|
1102 |
-
|
1103 |
-
if ( ! $date = $this->get_timestamp( $date ) ) {
|
1104 |
return false;
|
1105 |
}
|
|
|
|
|
1106 |
if ( ! $format ) {
|
1107 |
$format = get_option( 'date_format' );
|
1108 |
}
|
1109 |
|
1110 |
-
return date_i18n( $format, $
|
1111 |
}
|
1112 |
|
1113 |
/**
|
@@ -1348,12 +1353,13 @@ class CPAC_Column {
|
|
1348 |
* @param array $options Select options
|
1349 |
* @param strong $description (optional) Description below the label
|
1350 |
*/
|
1351 |
-
public function display_field_text( $name, $label, $description = '' ) {
|
|
|
1352 |
?>
|
1353 |
-
<tr class="column-<?php echo $name; ?>"
|
1354 |
<?php $this->label_view( $label, $description, $name ); ?>
|
1355 |
<td class="input">
|
1356 |
-
<input type="text" name="<?php $this->attr_name( $name ); ?>" id="<?php $this->attr_id( $name ); ?>" value="<?php echo esc_attr( stripslashes( $this->get_option( $name ) ) ); ?>"
|
1357 |
</td>
|
1358 |
</tr>
|
1359 |
<?php
|
103 |
* @return bool Whether the column type should be available
|
104 |
*/
|
105 |
public function apply_conditional() {
|
|
|
106 |
return true;
|
107 |
}
|
108 |
|
110 |
return isset( $this->properties->default ) && $this->properties->default;
|
111 |
}
|
112 |
|
113 |
+
public function is_original() {
|
114 |
+
return isset( $this->properties->original ) && $this->properties->original;
|
115 |
+
}
|
116 |
+
|
117 |
/**
|
118 |
* Overwrite this function in child class.
|
119 |
* Adds (optional) scripts to the listings screen.
|
172 |
'hide_label' => false, // Should the Label be hidden?
|
173 |
'is_registered' => true, // Should the column be registered based on conditional logic, example usage see: 'post/page-template.php'
|
174 |
'is_cloneable' => true, // Should the column be cloneable
|
175 |
+
'default' => false, // Is this a WP default column, used for displaying values
|
176 |
+
'original' => false, // When a default column has been replaced by custom column we mark it as 'original'
|
177 |
'use_before_after' => false, // Should the column use before and after fields
|
178 |
'group' => __( 'Custom', 'codepress-admin-columns' ) // Group name
|
179 |
);
|
1103 |
* @return string Formatted date
|
1104 |
*/
|
1105 |
public function get_date( $date, $format = '' ) {
|
1106 |
+
if ( ! $timestamp = $this->get_timestamp( $date ) ) {
|
|
|
1107 |
return false;
|
1108 |
}
|
1109 |
+
|
1110 |
+
// get general date format
|
1111 |
if ( ! $format ) {
|
1112 |
$format = get_option( 'date_format' );
|
1113 |
}
|
1114 |
|
1115 |
+
return date_i18n( $format, $timestamp );
|
1116 |
}
|
1117 |
|
1118 |
/**
|
1353 |
* @param array $options Select options
|
1354 |
* @param strong $description (optional) Description below the label
|
1355 |
*/
|
1356 |
+
public function display_field_text( $name, $label, $description = '', $placeholder = '', $optional_toggle_id = '' ) {
|
1357 |
+
$data_optional = $optional_toggle_id ? ' data-additional-option-id="' . $this->get_attr_id( $optional_toggle_id ) . '"' : '';
|
1358 |
?>
|
1359 |
+
<tr class="column-<?php echo $name; ?>"<?php echo $data_optional; ?>>
|
1360 |
<?php $this->label_view( $label, $description, $name ); ?>
|
1361 |
<td class="input">
|
1362 |
+
<input type="text" name="<?php $this->attr_name( $name ); ?>" id="<?php $this->attr_id( $name ); ?>" value="<?php echo esc_attr( stripslashes( $this->get_option( $name ) ) ); ?>"<?php echo $placeholder ? ' placeholder="' . esc_attr( $placeholder ) . '"' : ''; ?>/>
|
1363 |
</td>
|
1364 |
</tr>
|
1365 |
<?php
|
classes/column/default.php
CHANGED
@@ -20,6 +20,7 @@ class CPAC_Column_Default extends CPAC_Column {
|
|
20 |
$this->properties['type'] = 'column-default';
|
21 |
$this->properties['handle'] = NULL;
|
22 |
$this->properties['group'] = __( 'Default', 'codepress-admin-columns' );
|
|
|
23 |
}
|
24 |
|
25 |
/**
|
20 |
$this->properties['type'] = 'column-default';
|
21 |
$this->properties['handle'] = NULL;
|
22 |
$this->properties['group'] = __( 'Default', 'codepress-admin-columns' );
|
23 |
+
$this->properties['original'] = true;
|
24 |
}
|
25 |
|
26 |
/**
|
classes/column/media/available-sizes.php
CHANGED
@@ -7,44 +7,35 @@
|
|
7 |
*/
|
8 |
class CPAC_Column_Media_Available_Sizes extends CPAC_Column {
|
9 |
|
10 |
-
/**
|
11 |
-
* @see CPAC_Column::init()
|
12 |
-
* @since 2.2.1
|
13 |
-
*/
|
14 |
public function init() {
|
15 |
-
|
16 |
parent::init();
|
17 |
|
18 |
-
|
19 |
-
$this->properties['
|
20 |
-
$this->properties['label'] = __( 'Available Sizes', 'codepress-admin-columns' );
|
21 |
}
|
22 |
|
23 |
-
/**
|
24 |
-
* @see CPAC_Column::get_value()
|
25 |
-
* @since 2.0
|
26 |
-
*/
|
27 |
function get_value( $id ) {
|
28 |
$paths = array();
|
29 |
|
30 |
$meta = get_post_meta( $id, '_wp_attachment_metadata', true );
|
31 |
|
32 |
-
if ( ! isset( $meta['sizes'] ) )
|
33 |
-
return
|
|
|
34 |
|
35 |
// available sizes
|
36 |
if ( $intersect = array_intersect( array_keys( $meta['sizes'] ), get_intermediate_image_sizes() ) ) {
|
37 |
|
38 |
-
$url
|
39 |
-
$filename
|
40 |
-
$paths[]
|
41 |
|
42 |
foreach ( $intersect as $size ) {
|
43 |
$src = wp_get_attachment_image_src( $id, $size );
|
44 |
|
45 |
if ( ! empty( $src[0] ) ) {
|
46 |
-
$filename
|
47 |
-
$paths[]
|
48 |
}
|
49 |
}
|
50 |
}
|
@@ -57,8 +48,8 @@ class CPAC_Column_Media_Available_Sizes extends CPAC_Column {
|
|
57 |
}
|
58 |
|
59 |
// image does not have these additional sizes rendered yet
|
60 |
-
if ( $missing = array_diff( array_keys( $_wp_additional_image_sizes), array_keys( $meta['sizes'] ) ) ) {
|
61 |
-
foreach
|
62 |
$paths[] = "<span title='Missing size: Try regenerate thumbnails with the plugin: Force Regenerate Thumbnails' href='javascript:;' class='not-available'>{$size}</span>";
|
63 |
}
|
64 |
}
|
7 |
*/
|
8 |
class CPAC_Column_Media_Available_Sizes extends CPAC_Column {
|
9 |
|
|
|
|
|
|
|
|
|
10 |
public function init() {
|
|
|
11 |
parent::init();
|
12 |
|
13 |
+
$this->properties['type'] = 'column-available_sizes';
|
14 |
+
$this->properties['label'] = __( 'Available Sizes', 'codepress-admin-columns' );
|
|
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
17 |
function get_value( $id ) {
|
18 |
$paths = array();
|
19 |
|
20 |
$meta = get_post_meta( $id, '_wp_attachment_metadata', true );
|
21 |
|
22 |
+
if ( ! isset( $meta['sizes'] ) ) {
|
23 |
+
return $this->get_empty_char();
|
24 |
+
}
|
25 |
|
26 |
// available sizes
|
27 |
if ( $intersect = array_intersect( array_keys( $meta['sizes'] ), get_intermediate_image_sizes() ) ) {
|
28 |
|
29 |
+
$url = wp_get_attachment_url( $id );
|
30 |
+
$filename = basename( $url );
|
31 |
+
$paths[] = "<a title='{$filename}' href='{$url}'>" . __( 'full size', 'codepress-admin-columns' ) . "</a>";
|
32 |
|
33 |
foreach ( $intersect as $size ) {
|
34 |
$src = wp_get_attachment_image_src( $id, $size );
|
35 |
|
36 |
if ( ! empty( $src[0] ) ) {
|
37 |
+
$filename = basename( $src[0] );
|
38 |
+
$paths[] = "<a title='{$filename}' href='{$src[0]}' class='available'>{$size}</a>";
|
39 |
}
|
40 |
}
|
41 |
}
|
48 |
}
|
49 |
|
50 |
// image does not have these additional sizes rendered yet
|
51 |
+
if ( $missing = array_diff( array_keys( $_wp_additional_image_sizes ), array_keys( $meta['sizes'] ) ) ) {
|
52 |
+
foreach ( $missing as $size ) {
|
53 |
$paths[] = "<span title='Missing size: Try regenerate thumbnails with the plugin: Force Regenerate Thumbnails' href='javascript:;' class='not-available'>{$size}</span>";
|
54 |
}
|
55 |
}
|
classes/column/media/dimensions.php
CHANGED
@@ -7,26 +7,15 @@
|
|
7 |
*/
|
8 |
class CPAC_Column_Media_Dimensions extends CPAC_Column {
|
9 |
|
10 |
-
/**
|
11 |
-
* @see CPAC_Column::init()
|
12 |
-
* @since 2.2.1
|
13 |
-
*/
|
14 |
public function init() {
|
15 |
-
|
16 |
parent::init();
|
17 |
|
18 |
-
// Properties
|
19 |
$this->properties['type'] = 'column-dimensions';
|
20 |
$this->properties['label'] = __( 'Dimensions', 'codepress-admin-columns' );
|
21 |
}
|
22 |
|
23 |
-
/**
|
24 |
-
* @see CPAC_Column::get_value()
|
25 |
-
* @since 2.0
|
26 |
-
*/
|
27 |
public function get_value( $id ) {
|
28 |
-
|
29 |
-
$value = '';
|
30 |
|
31 |
$meta = $this->get_raw_value( $id );
|
32 |
|
@@ -37,12 +26,7 @@ class CPAC_Column_Media_Dimensions extends CPAC_Column {
|
|
37 |
return $value;
|
38 |
}
|
39 |
|
40 |
-
/**
|
41 |
-
* @see CPAC_Column::get_raw_value()
|
42 |
-
* @since 2.3.2
|
43 |
-
*/
|
44 |
public function get_raw_value( $id ) {
|
45 |
-
|
46 |
return get_post_meta( $id, '_wp_attachment_metadata', true );
|
47 |
}
|
48 |
}
|
7 |
*/
|
8 |
class CPAC_Column_Media_Dimensions extends CPAC_Column {
|
9 |
|
|
|
|
|
|
|
|
|
10 |
public function init() {
|
|
|
11 |
parent::init();
|
12 |
|
|
|
13 |
$this->properties['type'] = 'column-dimensions';
|
14 |
$this->properties['label'] = __( 'Dimensions', 'codepress-admin-columns' );
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
17 |
public function get_value( $id ) {
|
18 |
+
$value = $this->get_empty_char();
|
|
|
19 |
|
20 |
$meta = $this->get_raw_value( $id );
|
21 |
|
26 |
return $value;
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
29 |
public function get_raw_value( $id ) {
|
|
|
30 |
return get_post_meta( $id, '_wp_attachment_metadata', true );
|
31 |
}
|
32 |
}
|
classes/column/media/exif-data.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* CPAC_Column_Media_File_Size
|
4 |
*
|
@@ -15,12 +16,12 @@ class CPAC_Column_Media_Exif_Data extends CPAC_Column {
|
|
15 |
parent::init();
|
16 |
|
17 |
// Properties
|
18 |
-
$this->properties['type']
|
19 |
-
$this->properties['label']
|
20 |
-
$this->properties['is_cloneable']
|
21 |
|
22 |
// Options
|
23 |
-
$this->options['exif_datatype']
|
24 |
}
|
25 |
|
26 |
/**
|
@@ -35,22 +36,21 @@ class CPAC_Column_Media_Exif_Data extends CPAC_Column {
|
|
35 |
private function get_exif_types() {
|
36 |
|
37 |
$exif_types = array(
|
38 |
-
'aperture'
|
39 |
-
'credit'
|
40 |
-
'camera'
|
41 |
-
'caption'
|
42 |
-
'created_timestamp'
|
43 |
-
'copyright'
|
44 |
-
'focal_length'
|
45 |
-
'iso'
|
46 |
-
'shutter_speed'
|
47 |
-
'title'
|
48 |
);
|
49 |
|
50 |
return $exif_types;
|
51 |
}
|
52 |
|
53 |
-
|
54 |
/**
|
55 |
* @see CPAC_Column::get_value()
|
56 |
* @since 2.0
|
@@ -59,55 +59,39 @@ class CPAC_Column_Media_Exif_Data extends CPAC_Column {
|
|
59 |
|
60 |
$value = '';
|
61 |
|
62 |
-
$data = $this->
|
63 |
$meta = $this->get_raw_value( $id );
|
64 |
|
65 |
if ( isset( $meta['image_meta'][ $data ] ) ) {
|
66 |
$value = $meta['image_meta'][ $data ];
|
67 |
|
68 |
if ( 'created_timestamp' == $data ) {
|
69 |
-
$value = date_i18n( get_option('date_format') . ' ' . get_option('time_format')
|
70 |
}
|
71 |
}
|
|
|
|
|
|
|
72 |
|
73 |
return $value;
|
74 |
}
|
75 |
|
76 |
-
/**
|
77 |
-
* @see CPAC_Column::get_raw_value()
|
78 |
-
* @since 2.0
|
79 |
-
*/
|
80 |
public function get_raw_value( $id ) {
|
81 |
-
|
82 |
return get_post_meta( $id, '_wp_attachment_metadata', true );
|
83 |
}
|
84 |
|
85 |
-
/**
|
86 |
-
* @see CPAC_Column::apply_conditional()
|
87 |
-
* @since 2.0
|
88 |
-
*/
|
89 |
public function apply_conditional() {
|
90 |
-
|
91 |
return function_exists( 'exif_read_data' );
|
92 |
}
|
93 |
|
94 |
-
|
95 |
-
* Display Settings
|
96 |
-
*
|
97 |
-
* @see CPAC_Column::display_settings()
|
98 |
-
* @since 2.0
|
99 |
-
*/
|
100 |
-
public function display_settings() {
|
101 |
-
|
102 |
-
?>
|
103 |
-
|
104 |
<tr class="column-exif-data">
|
105 |
<?php $this->label_view( $this->properties->label, '', 'exif_datatype' ); ?>
|
106 |
<td class="input">
|
107 |
<select name="<?php $this->attr_name( 'exif_datatype' ); ?>" id="<?php $this->attr_id( 'exif_datatype' ); ?>">
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
</select>
|
112 |
</td>
|
113 |
</tr>
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* CPAC_Column_Media_File_Size
|
5 |
*
|
16 |
parent::init();
|
17 |
|
18 |
// Properties
|
19 |
+
$this->properties['type'] = 'column-exif_data';
|
20 |
+
$this->properties['label'] = __( 'EXIF data', 'codepress-admin-columns' );
|
21 |
+
$this->properties['is_cloneable'] = true;
|
22 |
|
23 |
// Options
|
24 |
+
$this->options['exif_datatype'] = '';
|
25 |
}
|
26 |
|
27 |
/**
|
36 |
private function get_exif_types() {
|
37 |
|
38 |
$exif_types = array(
|
39 |
+
'aperture' => __( 'Aperture', 'codepress-admin-columns' ),
|
40 |
+
'credit' => __( 'Credit', 'codepress-admin-columns' ),
|
41 |
+
'camera' => __( 'Camera', 'codepress-admin-columns' ),
|
42 |
+
'caption' => __( 'Caption', 'codepress-admin-columns' ),
|
43 |
+
'created_timestamp' => __( 'Timestamp', 'codepress-admin-columns' ),
|
44 |
+
'copyright' => __( 'Copyright EXIF', 'codepress-admin-columns' ),
|
45 |
+
'focal_length' => __( 'Focal Length', 'codepress-admin-columns' ),
|
46 |
+
'iso' => __( 'ISO', 'codepress-admin-columns' ),
|
47 |
+
'shutter_speed' => __( 'Shutter Speed', 'codepress-admin-columns' ),
|
48 |
+
'title' => __( 'Title', 'codepress-admin-columns' ),
|
49 |
);
|
50 |
|
51 |
return $exif_types;
|
52 |
}
|
53 |
|
|
|
54 |
/**
|
55 |
* @see CPAC_Column::get_value()
|
56 |
* @since 2.0
|
59 |
|
60 |
$value = '';
|
61 |
|
62 |
+
$data = $this->get_option( 'exif_datatype' );
|
63 |
$meta = $this->get_raw_value( $id );
|
64 |
|
65 |
if ( isset( $meta['image_meta'][ $data ] ) ) {
|
66 |
$value = $meta['image_meta'][ $data ];
|
67 |
|
68 |
if ( 'created_timestamp' == $data ) {
|
69 |
+
$value = date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $value ) );
|
70 |
}
|
71 |
}
|
72 |
+
if ( empty( $value ) ) {
|
73 |
+
$value = $this->get_empty_char();
|
74 |
+
}
|
75 |
|
76 |
return $value;
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
79 |
public function get_raw_value( $id ) {
|
|
|
80 |
return get_post_meta( $id, '_wp_attachment_metadata', true );
|
81 |
}
|
82 |
|
|
|
|
|
|
|
|
|
83 |
public function apply_conditional() {
|
|
|
84 |
return function_exists( 'exif_read_data' );
|
85 |
}
|
86 |
|
87 |
+
public function display_settings() { ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
<tr class="column-exif-data">
|
89 |
<?php $this->label_view( $this->properties->label, '', 'exif_datatype' ); ?>
|
90 |
<td class="input">
|
91 |
<select name="<?php $this->attr_name( 'exif_datatype' ); ?>" id="<?php $this->attr_id( 'exif_datatype' ); ?>">
|
92 |
+
<?php foreach ( $this->get_exif_types() as $key => $label ) : ?>
|
93 |
+
<option value="<?php echo $key; ?>"<?php selected( $key, $this->get_option( 'exif_datatype' ) ); ?>><?php echo $label; ?></option>
|
94 |
+
<?php endforeach; ?>
|
95 |
</select>
|
96 |
</td>
|
97 |
</tr>
|
classes/column/post/content.php
CHANGED
@@ -11,15 +11,12 @@ class CPAC_Column_Post_Content extends CPAC_Column {
|
|
11 |
* @since 2.4
|
12 |
*/
|
13 |
public function init() {
|
14 |
-
|
15 |
parent::init();
|
16 |
|
17 |
-
// Properties
|
18 |
$this->properties['type'] = 'column-content';
|
19 |
$this->properties['label'] = __( 'Content', 'codepress-admin-columns' );
|
20 |
$this->properties['object_property'] = 'post_content';
|
21 |
|
22 |
-
// Options
|
23 |
$this->options['excerpt_length'] = 30;
|
24 |
}
|
25 |
|
@@ -28,7 +25,6 @@ class CPAC_Column_Post_Content extends CPAC_Column {
|
|
28 |
* @since 2.4
|
29 |
*/
|
30 |
public function get_value( $post_id ) {
|
31 |
-
|
32 |
return $this->get_shortened_string( $this->get_raw_value( $post_id ), $this->options->excerpt_length );
|
33 |
}
|
34 |
|
@@ -37,7 +33,6 @@ class CPAC_Column_Post_Content extends CPAC_Column {
|
|
37 |
* @since 2.4
|
38 |
*/
|
39 |
public function get_raw_value( $post_id ) {
|
40 |
-
|
41 |
return get_post_field( 'post_content', $post_id, 'raw' );
|
42 |
}
|
43 |
|
@@ -46,7 +41,6 @@ class CPAC_Column_Post_Content extends CPAC_Column {
|
|
46 |
* @since 2.4
|
47 |
*/
|
48 |
public function display_settings() {
|
49 |
-
|
50 |
$this->display_field_excerpt_length();
|
51 |
}
|
52 |
}
|
11 |
* @since 2.4
|
12 |
*/
|
13 |
public function init() {
|
|
|
14 |
parent::init();
|
15 |
|
|
|
16 |
$this->properties['type'] = 'column-content';
|
17 |
$this->properties['label'] = __( 'Content', 'codepress-admin-columns' );
|
18 |
$this->properties['object_property'] = 'post_content';
|
19 |
|
|
|
20 |
$this->options['excerpt_length'] = 30;
|
21 |
}
|
22 |
|
25 |
* @since 2.4
|
26 |
*/
|
27 |
public function get_value( $post_id ) {
|
|
|
28 |
return $this->get_shortened_string( $this->get_raw_value( $post_id ), $this->options->excerpt_length );
|
29 |
}
|
30 |
|
33 |
* @since 2.4
|
34 |
*/
|
35 |
public function get_raw_value( $post_id ) {
|
|
|
36 |
return get_post_field( 'post_content', $post_id, 'raw' );
|
37 |
}
|
38 |
|
41 |
* @since 2.4
|
42 |
*/
|
43 |
public function display_settings() {
|
|
|
44 |
$this->display_field_excerpt_length();
|
45 |
}
|
46 |
}
|
classes/column/post/excerpt.php
CHANGED
@@ -12,15 +12,12 @@ class CPAC_Column_Post_Excerpt extends CPAC_Column {
|
|
12 |
* @since 2.2.1
|
13 |
*/
|
14 |
public function init() {
|
15 |
-
|
16 |
parent::init();
|
17 |
|
18 |
-
// Properties
|
19 |
$this->properties['type'] = 'column-excerpt';
|
20 |
$this->properties['label'] = __( 'Excerpt', 'codepress-admin-columns' );
|
21 |
$this->properties['object_property'] = 'post_excerpt';
|
22 |
|
23 |
-
// Options
|
24 |
$this->options['excerpt_length'] = 30;
|
25 |
}
|
26 |
|
@@ -29,9 +26,8 @@ class CPAC_Column_Post_Excerpt extends CPAC_Column {
|
|
29 |
* @since 2.0
|
30 |
*/
|
31 |
public function get_value( $post_id ) {
|
32 |
-
|
33 |
$value = $this->get_post_excerpt( $post_id, $this->options->excerpt_length );
|
34 |
-
if ( ! has_excerpt( $post_id ) ) {
|
35 |
$value = '<span class="cpac-inline-info">' . __( 'Excerpt from content', 'codepress-admin-columns' ) . '</span> ' . $value;
|
36 |
}
|
37 |
|
@@ -43,7 +39,6 @@ class CPAC_Column_Post_Excerpt extends CPAC_Column {
|
|
43 |
* @since 2.0.3
|
44 |
*/
|
45 |
public function get_raw_value( $post_id ) {
|
46 |
-
|
47 |
return get_post_field( 'post_excerpt', $post_id, 'raw' );
|
48 |
}
|
49 |
|
@@ -52,7 +47,6 @@ class CPAC_Column_Post_Excerpt extends CPAC_Column {
|
|
52 |
* @since 2.0
|
53 |
*/
|
54 |
public function display_settings() {
|
55 |
-
|
56 |
$this->display_field_excerpt_length();
|
57 |
}
|
58 |
}
|
12 |
* @since 2.2.1
|
13 |
*/
|
14 |
public function init() {
|
|
|
15 |
parent::init();
|
16 |
|
|
|
17 |
$this->properties['type'] = 'column-excerpt';
|
18 |
$this->properties['label'] = __( 'Excerpt', 'codepress-admin-columns' );
|
19 |
$this->properties['object_property'] = 'post_excerpt';
|
20 |
|
|
|
21 |
$this->options['excerpt_length'] = 30;
|
22 |
}
|
23 |
|
26 |
* @since 2.0
|
27 |
*/
|
28 |
public function get_value( $post_id ) {
|
|
|
29 |
$value = $this->get_post_excerpt( $post_id, $this->options->excerpt_length );
|
30 |
+
if ( ! has_excerpt( $post_id ) && $value ) {
|
31 |
$value = '<span class="cpac-inline-info">' . __( 'Excerpt from content', 'codepress-admin-columns' ) . '</span> ' . $value;
|
32 |
}
|
33 |
|
39 |
* @since 2.0.3
|
40 |
*/
|
41 |
public function get_raw_value( $post_id ) {
|
|
|
42 |
return get_post_field( 'post_excerpt', $post_id, 'raw' );
|
43 |
}
|
44 |
|
47 |
* @since 2.0
|
48 |
*/
|
49 |
public function display_settings() {
|
|
|
50 |
$this->display_field_excerpt_length();
|
51 |
}
|
52 |
}
|
classes/column/post/modified.php
CHANGED
@@ -6,55 +6,34 @@
|
|
6 |
*/
|
7 |
class CPAC_Column_Post_Modified extends CPAC_Column {
|
8 |
|
9 |
-
/**
|
10 |
-
* @see CPAC_Column::init()
|
11 |
-
* @since 2.2.1
|
12 |
-
*/
|
13 |
public function init() {
|
14 |
-
|
15 |
parent::init();
|
16 |
|
17 |
-
// Properties
|
18 |
$this->properties['type'] = 'column-modified';
|
19 |
$this->properties['label'] = __( 'Last modified', 'codepress-admin-columns' );
|
20 |
|
21 |
-
// Options
|
22 |
$this->options['date_format'] = '';
|
23 |
}
|
24 |
|
25 |
-
/**
|
26 |
-
* @see CPAC_Column::get_value()
|
27 |
-
* @since 2.0
|
28 |
-
*/
|
29 |
public function get_value( $post_id ) {
|
30 |
-
|
31 |
$modified = $this->get_raw_value( $post_id );
|
|
|
32 |
|
33 |
-
if ( ! $
|
34 |
-
|
|
|
|
|
|
|
35 |
}
|
36 |
|
37 |
-
return
|
38 |
}
|
39 |
|
40 |
-
/**
|
41 |
-
* @see CPAC_Column::get_raw_value()
|
42 |
-
* @since 2.0.3
|
43 |
-
*/
|
44 |
public function get_raw_value( $post_id ) {
|
45 |
-
|
46 |
-
$p = get_post( $post_id );
|
47 |
-
|
48 |
-
return $p->post_modified;
|
49 |
}
|
50 |
|
51 |
-
/**
|
52 |
-
* @see CPAC_Column::display_settings()
|
53 |
-
* @since 2.2.7
|
54 |
-
*/
|
55 |
function display_settings() {
|
56 |
-
|
57 |
$this->display_field_date_format();
|
58 |
}
|
59 |
-
|
60 |
}
|
6 |
*/
|
7 |
class CPAC_Column_Post_Modified extends CPAC_Column {
|
8 |
|
|
|
|
|
|
|
|
|
9 |
public function init() {
|
|
|
10 |
parent::init();
|
11 |
|
|
|
12 |
$this->properties['type'] = 'column-modified';
|
13 |
$this->properties['label'] = __( 'Last modified', 'codepress-admin-columns' );
|
14 |
|
|
|
15 |
$this->options['date_format'] = '';
|
16 |
}
|
17 |
|
|
|
|
|
|
|
|
|
18 |
public function get_value( $post_id ) {
|
|
|
19 |
$modified = $this->get_raw_value( $post_id );
|
20 |
+
$date_format = $this->get_option( 'date_format' );
|
21 |
|
22 |
+
if ( ! $date_format ) {
|
23 |
+
$value = $this->get_date( $modified ) . ' ' . $this->get_time( $modified );
|
24 |
+
}
|
25 |
+
else {
|
26 |
+
$value = date_i18n( $date_format, strtotime( $modified ) );
|
27 |
}
|
28 |
|
29 |
+
return $value;
|
30 |
}
|
31 |
|
|
|
|
|
|
|
|
|
32 |
public function get_raw_value( $post_id ) {
|
33 |
+
return get_post_field( 'post_modified', $post_id );
|
|
|
|
|
|
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
36 |
function display_settings() {
|
|
|
37 |
$this->display_field_date_format();
|
38 |
}
|
|
|
39 |
}
|
classes/column/taxonomy.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Taxonomy column, displaying terms from a taxonomy for any object type (i.e. posts)
|
4 |
* supporting WordPress' native way of handling terms.
|
@@ -7,21 +8,16 @@
|
|
7 |
*/
|
8 |
class CPAC_Column_Taxonomy extends CPAC_Column {
|
9 |
|
10 |
-
/**
|
11 |
-
* @see CPAC_Column::init()
|
12 |
-
* @since 2.2.1
|
13 |
-
*/
|
14 |
public function init() {
|
15 |
-
|
16 |
parent::init();
|
17 |
|
18 |
// Properties
|
19 |
-
$this->properties['type']
|
20 |
-
$this->properties['label']
|
21 |
-
$this->properties['is_cloneable']
|
22 |
|
23 |
// Options
|
24 |
-
$this->options['taxonomy']
|
25 |
}
|
26 |
|
27 |
/**
|
@@ -30,7 +26,8 @@ class CPAC_Column_Taxonomy extends CPAC_Column {
|
|
30 |
*/
|
31 |
public function get_value( $post_id ) {
|
32 |
$term_ids = $this->get_raw_value( $post_id );
|
33 |
-
|
|
|
34 |
}
|
35 |
|
36 |
/**
|
@@ -38,7 +35,7 @@ class CPAC_Column_Taxonomy extends CPAC_Column {
|
|
38 |
* @since 2.0.3
|
39 |
*/
|
40 |
public function get_raw_value( $post_id ) {
|
41 |
-
return wp_get_post_terms( $post_id, $this->
|
42 |
}
|
43 |
|
44 |
/**
|
@@ -46,7 +43,7 @@ class CPAC_Column_Taxonomy extends CPAC_Column {
|
|
46 |
* @since 2.3.4
|
47 |
*/
|
48 |
public function get_taxonomy() {
|
49 |
-
return $this->
|
50 |
}
|
51 |
|
52 |
/**
|
@@ -69,7 +66,6 @@ class CPAC_Column_Taxonomy extends CPAC_Column {
|
|
69 |
* @since 2.0
|
70 |
*/
|
71 |
public function display_settings() {
|
72 |
-
|
73 |
$taxonomies = get_object_taxonomies( $this->get_post_type(), 'objects' );
|
74 |
|
75 |
foreach ( $taxonomies as $index => $taxonomy ) {
|
@@ -83,9 +79,9 @@ class CPAC_Column_Taxonomy extends CPAC_Column {
|
|
83 |
<?php $this->label_view( __( "Taxonomy", 'codepress-admin-columns' ), '', 'taxonomy' ); ?>
|
84 |
<td class="input">
|
85 |
<select name="<?php $this->attr_name( 'taxonomy' ); ?>" id="<?php $this->attr_id( 'taxonomy' ); ?>">
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
</select>
|
90 |
</td>
|
91 |
</tr>
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* Taxonomy column, displaying terms from a taxonomy for any object type (i.e. posts)
|
5 |
* supporting WordPress' native way of handling terms.
|
8 |
*/
|
9 |
class CPAC_Column_Taxonomy extends CPAC_Column {
|
10 |
|
|
|
|
|
|
|
|
|
11 |
public function init() {
|
|
|
12 |
parent::init();
|
13 |
|
14 |
// Properties
|
15 |
+
$this->properties['type'] = 'column-taxonomy';
|
16 |
+
$this->properties['label'] = __( 'Taxonomy', 'codepress-admin-columns' );
|
17 |
+
$this->properties['is_cloneable'] = true;
|
18 |
|
19 |
// Options
|
20 |
+
$this->options['taxonomy'] = ''; // Taxonomy slug
|
21 |
}
|
22 |
|
23 |
/**
|
26 |
*/
|
27 |
public function get_value( $post_id ) {
|
28 |
$term_ids = $this->get_raw_value( $post_id );
|
29 |
+
|
30 |
+
return $this->get_terms_for_display( $term_ids, $this->get_taxonomy() );
|
31 |
}
|
32 |
|
33 |
/**
|
35 |
* @since 2.0.3
|
36 |
*/
|
37 |
public function get_raw_value( $post_id ) {
|
38 |
+
return wp_get_post_terms( $post_id, $this->get_taxonomy(), array( 'fields' => 'ids' ) );
|
39 |
}
|
40 |
|
41 |
/**
|
43 |
* @since 2.3.4
|
44 |
*/
|
45 |
public function get_taxonomy() {
|
46 |
+
return $this->get_option( 'taxonomy' );
|
47 |
}
|
48 |
|
49 |
/**
|
66 |
* @since 2.0
|
67 |
*/
|
68 |
public function display_settings() {
|
|
|
69 |
$taxonomies = get_object_taxonomies( $this->get_post_type(), 'objects' );
|
70 |
|
71 |
foreach ( $taxonomies as $index => $taxonomy ) {
|
79 |
<?php $this->label_view( __( "Taxonomy", 'codepress-admin-columns' ), '', 'taxonomy' ); ?>
|
80 |
<td class="input">
|
81 |
<select name="<?php $this->attr_name( 'taxonomy' ); ?>" id="<?php $this->attr_id( 'taxonomy' ); ?>">
|
82 |
+
<?php foreach ( $taxonomies as $taxonomy ) : ?>
|
83 |
+
<option value="<?php echo $taxonomy->name; ?>"<?php selected( $taxonomy->name, $this->get_taxonomy() ) ?>><?php echo $taxonomy->label; ?></option>
|
84 |
+
<?php endforeach; ?>
|
85 |
</select>
|
86 |
</td>
|
87 |
</tr>
|
classes/storage_model.php
CHANGED
@@ -175,18 +175,6 @@ abstract class CPAC_Storage_Model {
|
|
175 |
$default_columns = $this->get_default_column_headings();
|
176 |
}
|
177 |
|
178 |
-
// Custom columns
|
179 |
-
foreach ( $this->columns_filepath as $classname => $path ) {
|
180 |
-
include_once $path;
|
181 |
-
if ( class_exists( $classname, false ) ) {
|
182 |
-
$column = new $classname( $this->key );
|
183 |
-
|
184 |
-
if ( $column->is_registered() ) {
|
185 |
-
$column_types[ $column->get_type() ] = $column;
|
186 |
-
}
|
187 |
-
}
|
188 |
-
}
|
189 |
-
|
190 |
// Default columns
|
191 |
if ( $default_columns ) {
|
192 |
|
@@ -228,6 +216,18 @@ abstract class CPAC_Storage_Model {
|
|
228 |
}
|
229 |
}
|
230 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
$this->column_types = $column_types;
|
232 |
|
233 |
// @since 2.5
|
@@ -243,10 +243,9 @@ abstract class CPAC_Storage_Model {
|
|
243 |
*/
|
244 |
private function get_default_colummn_types() {
|
245 |
$defaults = array();
|
246 |
-
$default_columns = $this->get_default_stored_columns();
|
247 |
|
248 |
foreach ( $this->get_column_types() as $type => $column ) {
|
249 |
-
if ( $column->is_default() ||
|
250 |
$defaults[ $type ] = $column;
|
251 |
}
|
252 |
}
|
175 |
$default_columns = $this->get_default_column_headings();
|
176 |
}
|
177 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
// Default columns
|
179 |
if ( $default_columns ) {
|
180 |
|
216 |
}
|
217 |
}
|
218 |
|
219 |
+
// Custom columns
|
220 |
+
foreach ( $this->columns_filepath as $classname => $path ) {
|
221 |
+
include_once $path;
|
222 |
+
if ( class_exists( $classname, false ) ) {
|
223 |
+
$column = new $classname( $this->key );
|
224 |
+
|
225 |
+
if ( $column->is_registered() ) {
|
226 |
+
$column_types[ $column->get_type() ] = $column;
|
227 |
+
}
|
228 |
+
}
|
229 |
+
}
|
230 |
+
|
231 |
$this->column_types = $column_types;
|
232 |
|
233 |
// @since 2.5
|
243 |
*/
|
244 |
private function get_default_colummn_types() {
|
245 |
$defaults = array();
|
|
|
246 |
|
247 |
foreach ( $this->get_column_types() as $type => $column ) {
|
248 |
+
if ( $column->is_default() || $column->is_original() ) {
|
249 |
$defaults[ $type ] = $column;
|
250 |
}
|
251 |
}
|
codepress-admin-columns.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Admin Columns
|
4 |
-
Version: 2.5.
|
5 |
Description: Customize columns on the administration screens for post(types), pages, media, comments, links and users with an easy to use drag-and-drop interface.
|
6 |
Author: AdminColumns.com
|
7 |
Author URI: https://www.admincolumns.com
|
@@ -32,7 +32,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
32 |
}
|
33 |
|
34 |
// Plugin information
|
35 |
-
define( 'CPAC_VERSION', '2.5.
|
36 |
define( 'CPAC_UPGRADE_VERSION', '2.0.0' ); // Latest version which requires an upgrade
|
37 |
define( 'CPAC_URL', plugin_dir_url( __FILE__ ) );
|
38 |
define( 'CPAC_DIR', plugin_dir_path( __FILE__ ) );
|
@@ -127,6 +127,7 @@ class CPAC {
|
|
127 |
add_action( 'wp_loaded', array( $this, 'after_setup' ) ); // Setup callback, important to load after set_storage_models
|
128 |
add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ) );
|
129 |
add_filter( 'plugin_action_links', array( $this, 'add_settings_link' ), 1, 2 );
|
|
|
130 |
|
131 |
// Populating columns
|
132 |
add_action( 'admin_init', array( $this, 'set_columns' ) );
|
@@ -164,6 +165,11 @@ class CPAC {
|
|
164 |
* @param CPAC $cpac_instance Main Admin Columns plugin class instance
|
165 |
*/
|
166 |
do_action( 'cac/loaded', $this );
|
|
|
|
|
|
|
|
|
|
|
167 |
}
|
168 |
|
169 |
/**
|
@@ -186,7 +192,7 @@ class CPAC {
|
|
186 |
wp_register_style( 'jquery-qtip2', CPAC_URL . "external/qtip2/jquery.qtip{$minified}.css", array(), CPAC_VERSION, 'all' );
|
187 |
wp_register_style( 'cpac-columns', CPAC_URL . "assets/css/column{$minified}.css", array(), CPAC_VERSION, 'all' );
|
188 |
|
189 |
-
if ( $this->
|
190 |
add_filter( 'admin_body_class', array( $this, 'admin_class' ) );
|
191 |
add_action( 'admin_head', array( $this, 'admin_scripts' ) );
|
192 |
|
@@ -208,6 +214,19 @@ class CPAC {
|
|
208 |
}
|
209 |
}
|
210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
/**
|
212 |
* Get registered storage models
|
213 |
*
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Admin Columns
|
4 |
+
Version: 2.5.5
|
5 |
Description: Customize columns on the administration screens for post(types), pages, media, comments, links and users with an easy to use drag-and-drop interface.
|
6 |
Author: AdminColumns.com
|
7 |
Author URI: https://www.admincolumns.com
|
32 |
}
|
33 |
|
34 |
// Plugin information
|
35 |
+
define( 'CPAC_VERSION', '2.5.5' ); // Current plugin version
|
36 |
define( 'CPAC_UPGRADE_VERSION', '2.0.0' ); // Latest version which requires an upgrade
|
37 |
define( 'CPAC_URL', plugin_dir_url( __FILE__ ) );
|
38 |
define( 'CPAC_DIR', plugin_dir_path( __FILE__ ) );
|
127 |
add_action( 'wp_loaded', array( $this, 'after_setup' ) ); // Setup callback, important to load after set_storage_models
|
128 |
add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ) );
|
129 |
add_filter( 'plugin_action_links', array( $this, 'add_settings_link' ), 1, 2 );
|
130 |
+
add_filter( 'list_table_primary_column', array( $this, 'set_primary_column' ), 20, 1 );
|
131 |
|
132 |
// Populating columns
|
133 |
add_action( 'admin_init', array( $this, 'set_columns' ) );
|
165 |
* @param CPAC $cpac_instance Main Admin Columns plugin class instance
|
166 |
*/
|
167 |
do_action( 'cac/loaded', $this );
|
168 |
+
|
169 |
+
// Current listings page storage model
|
170 |
+
if ( $storage_model = $this->get_current_storage_model() ) {
|
171 |
+
do_action( 'cac/current_storage_model', $storage_model );
|
172 |
+
}
|
173 |
}
|
174 |
|
175 |
/**
|
192 |
wp_register_style( 'jquery-qtip2', CPAC_URL . "external/qtip2/jquery.qtip{$minified}.css", array(), CPAC_VERSION, 'all' );
|
193 |
wp_register_style( 'cpac-columns', CPAC_URL . "assets/css/column{$minified}.css", array(), CPAC_VERSION, 'all' );
|
194 |
|
195 |
+
if ( $this->get_current_storage_model() ) {
|
196 |
add_filter( 'admin_body_class', array( $this, 'admin_class' ) );
|
197 |
add_action( 'admin_head', array( $this, 'admin_scripts' ) );
|
198 |
|
214 |
}
|
215 |
}
|
216 |
|
217 |
+
/**
|
218 |
+
* Set the primary columns for the Admin Columns columns
|
219 |
+
*
|
220 |
+
* @since 2.5.5
|
221 |
+
*/
|
222 |
+
public function set_primary_column( $default ) {
|
223 |
+
if ( $storage_model = $this->get_current_storage_model() ) {
|
224 |
+
$default = key( $storage_model->get_columns() );
|
225 |
+
}
|
226 |
+
|
227 |
+
return $default;
|
228 |
+
}
|
229 |
+
|
230 |
/**
|
231 |
* Get registered storage models
|
232 |
*
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
4 |
Tags: plugins, wordpress, admin, column, columns, custom columns, custom fields, image, dashboard, sortable, filters, posts, media, users, pages, posttypes, manage columns, wp-admin
|
5 |
Requires at least: 3.5
|
6 |
Tested up to: 4.4.2
|
7 |
-
Stable tag: 2.5.
|
8 |
|
9 |
Customise columns on the administration screens for post(types), pages, media, comments, links and users with an easy to use drag-and-drop interface.
|
10 |
|
@@ -210,6 +210,13 @@ You can find a list of the available actions and filters (and examples on how to
|
|
210 |
|
211 |
== Changelog ==
|
212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
= 2.5.4 =
|
214 |
* [Fixed] Edit columns button will be positioned correctly on the Trash page
|
215 |
* [Fixed] Obsolete images have been removed
|
4 |
Tags: plugins, wordpress, admin, column, columns, custom columns, custom fields, image, dashboard, sortable, filters, posts, media, users, pages, posttypes, manage columns, wp-admin
|
5 |
Requires at least: 3.5
|
6 |
Tested up to: 4.4.2
|
7 |
+
Stable tag: 2.5.5
|
8 |
|
9 |
Customise columns on the administration screens for post(types), pages, media, comments, links and users with an easy to use drag-and-drop interface.
|
10 |
|
210 |
|
211 |
== Changelog ==
|
212 |
|
213 |
+
= 2.5.5 =
|
214 |
+
* [Improved] Columns with empty values will now display a dash symbol
|
215 |
+
* [Fixed] Excerpt column: The label "Excerpt from content" will now only display when the post has content
|
216 |
+
|
217 |
+
= 2.5.4.1 =
|
218 |
+
* [Fixed] Columns can be marked as original, in case the default has been replaced by an ac-column
|
219 |
+
|
220 |
= 2.5.4 =
|
221 |
* [Fixed] Edit columns button will be positioned correctly on the Trash page
|
222 |
* [Fixed] Obsolete images have been removed
|