1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207:
<?php
if( ! class_exists( 'WP_List_Table' ) ) {
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
}
class CTA_Template_Manager_List extends WP_List_Table {
private $template_data;
private $singular;
private $plural;
function __construct() {
$CTA_Load_Extensions = CTA_Load_Extensions();
$wp_cta_data = $CTA_Load_Extensions->template_definitions;
$final_data = array();
foreach ($wp_cta_data as $key=>$data) {
$array_core_templates = array('auto-focus', 'thumbnail-cta', 'breathing', 'clean-cta', 'blank-template','call-out-box','cta-one','demo', 'flat-cta', 'peek-a-boo', 'popup-ebook', 'facebook-like-button', 'facebook-like-to-download', 'feedburner-subscribe-to-download', 'linkedin-share-to-download', 'tweet-to-download', 'follow-to-download', 'ebook-call-out');
if ($key == 'wp-cta' || substr($key,0,4) == 'ext-' ) {
continue;
}
if (isset($data['info']['data_type']) && $data['info']['data_type']=='metabox') {
continue;
}
if (in_array($key,$array_core_templates)) {
continue;
}
if (isset($_POST['s'])&&!empty($_POST['s'])) {
if (!stristr($data['info']['label'],$_POST['s'])) {
continue;
}
}
if (isset($data['thumbnail'])) {
$thumbnail = $data['thumbnail'];
} else if ($key=='default') {
$thumbnail = get_bloginfo('template_directory')."/screenshot.png";
} else {
$thumbnail = WP_CTA_UPLOADS_URLPATH.$key."/thumbnail.png";
}
$this_data['ID'] = $key;
$this_data['template'] = $key;
$this_data['name'] = (array_key_exists('info',$data)) ? $data['info']['label'] : $data['label'];
$this_data['category'] = (array_key_exists('info',$data)) ? $data['info']['category'] : $data['category'];
$this_data['description'] = (array_key_exists('info',$data)) ? $data['info']['description'] : $data['description'];
$this_data['thumbnail'] = $thumbnail;
if (isset($data['version'])&&!empty($data['info']['version'])) {
$this_data['version'] = $data['info']['version'];
} else {
$this_data['version'] = "1.0.1";
}
$final_data[] = $this_data;
}
$this->template_data = $final_data;
$this->singular = 'ID';
$this->plural = 'ID';
$this->_actions = array();
$args = $this->_args;
$args['plural'] = sanitize_key( '' );
$args['singular'] = sanitize_key( '' );
$this->_args = $args;
}
function get_columns() {
$columns = array(
'cb' => '<input type="checkbox" />',
'template' => 'Template',
'description' => 'Description',
'category' => 'Category',
'version' => 'Current Version'
);
return $columns;
}
function column_cb($item){
return sprintf(
'<input type="checkbox" name="template[]" value="%s" />', $item['ID']
);
}
function get_sortable_columns() {
$sortable_columns = array(
'template' => array('template',false),
'category' => array('category',false),
'version' => array('version',false)
);
return $sortable_columns;
}
function usort_reorder( $a, $b ){
$orderby = ( ! empty( $_GET['orderby'] ) ) ? sanitize_text_field($_GET['orderby']) : 'template';
$order = ( ! empty($_GET['order'] ) ) ? sanitize_text_field($_GET['order']) : 'asc';
$result = strcmp( $a[$orderby], $b[$orderby] );
return ( $order === 'asc' ) ? $result : -$result;
}
function prepare_items() {
$columns = $this->get_columns();
$hidden = array('ID');
$sortable = $this->get_sortable_columns();
$this->_column_headers = array( $columns, $hidden, $sortable );
if(is_array($this->template_data)) {
usort( $this->template_data, array( &$this, 'usort_reorder'));
}
$per_page = 25;
$current_page = $this->get_pagenum();
$total_items = count( $this->template_data );
if (is_array($this->template_data)) {
$this->found_data = array_slice( $this->template_data,( ( $current_page-1 )* $per_page ), $per_page );
}
$this->set_pagination_args( array(
'total_items' => $total_items,
'per_page' => $per_page
));
$this->items = $this->found_data;
$this->_screen = get_current_screen();
$this->screen = get_current_screen();
}
function column_default( $item, $column_name ) {
switch( $column_name ) {
case 'template':
return '<div class="capty-wrapper" style="overflow: hidden; position: relative; "><div class="capty-image"><img src="'.$item[ 'thumbnail' ].'" class="template-thumbnail" alt="'.$item['name'].'" id="id_'.$item['ID'].'" title="'.$item['name'].'">
</div><div class="capty-caption" style="text-align:center;width:158px;margin-left:-6px;height: 20px; opacity: 0.7; top:-82px;position: relative;">'.$item['name'].'</div></div>';
case 'category':
return '<span class="post-state">
<span class="pending states">'.$item[ $column_name ].'</span>
</span>';
case 'description':
return $item[ $column_name ];
case 'version':
echo CTA_Template_Manager::check_template_for_update($item);
return;
case 'actions':
return;
default:
return print_r( $item, true ) ;
}
}
function admin_header() {
$page = ( isset($_GET['page'] ) ) ? esc_attr( $_GET['page'] ) : false;
if( 'wp_cta_manage_templates' != $page )
return;
}
function no_items() {
_e( 'No premium templates installed. Templates included in the Call to Action core plugin will not be listed here.' );
}
function get_bulk_actions() {
$actions = array(
'upgrade' => 'Upgrade',
'delete' => 'Delete',
);
return $actions;
}
}