Changeset 1221170
- Timestamp:
- 08/14/2015 07:02:16 PM (11 years ago)
- Location:
- broken-link-manager
- Files:
-
- 105 added
- 1 deleted
- 5 edited
-
tags/0.6.0 (added)
-
tags/0.6.0/config (added)
-
tags/0.6.0/config/class (added)
-
tags/0.6.0/config/class/broken_url.php (added)
-
tags/0.6.0/config/class/log_url.php (added)
-
tags/0.6.0/config/class/redirected_url.php (added)
-
tags/0.6.0/config/footer.php (added)
-
tags/0.6.0/config/functions.php (added)
-
tags/0.6.0/config/topnavi.php (added)
-
tags/0.6.0/css (added)
-
tags/0.6.0/css/bootstrap.css (added)
-
tags/0.6.0/css/bootstrap.min.css (added)
-
tags/0.6.0/css/images (added)
-
tags/0.6.0/css/images/bg_header.png (added)
-
tags/0.6.0/css/images/sort_asc.png (added)
-
tags/0.6.0/css/images/sort_asc_disabled.png (added)
-
tags/0.6.0/css/images/sort_both.png (added)
-
tags/0.6.0/css/images/sort_desc.png (added)
-
tags/0.6.0/css/images/sort_desc_disabled.png (added)
-
tags/0.6.0/css/images/wblm_logo.png (added)
-
tags/0.6.0/css/plugins (added)
-
tags/0.6.0/css/plugins/metisMenu (added)
-
tags/0.6.0/css/plugins/metisMenu/metisMenu.css (added)
-
tags/0.6.0/css/plugins/metisMenu/metisMenu.min.css (added)
-
tags/0.6.0/css/plugins/morris.css (added)
-
tags/0.6.0/css/plugins/social-buttons.css (added)
-
tags/0.6.0/css/plugins/timeline.css (added)
-
tags/0.6.0/css/style.css (added)
-
tags/0.6.0/font-awesome-4.2.0 (added)
-
tags/0.6.0/font-awesome-4.2.0/css (added)
-
tags/0.6.0/font-awesome-4.2.0/css/font-awesome.css (added)
-
tags/0.6.0/font-awesome-4.2.0/css/font-awesome.min.css (added)
-
tags/0.6.0/font-awesome-4.2.0/fonts (added)
-
tags/0.6.0/font-awesome-4.2.0/fonts/FontAwesome.otf (added)
-
tags/0.6.0/font-awesome-4.2.0/fonts/fontawesome-webfont.eot (added)
-
tags/0.6.0/font-awesome-4.2.0/fonts/fontawesome-webfont.svg (added)
-
tags/0.6.0/font-awesome-4.2.0/fonts/fontawesome-webfont.ttf (added)
-
tags/0.6.0/font-awesome-4.2.0/fonts/fontawesome-webfont.woff (added)
-
tags/0.6.0/font-awesome-4.2.0/less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/bordered-pulled.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/core.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/fixed-width.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/font-awesome.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/icons.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/larger.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/list.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/mixins.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/path.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/rotated-flipped.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/spinning.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/stacked.less (added)
-
tags/0.6.0/font-awesome-4.2.0/less/variables.less (added)
-
tags/0.6.0/font-awesome-4.2.0/scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_bordered-pulled.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_core.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_fixed-width.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_icons.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_larger.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_list.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_mixins.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_path.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_rotated-flipped.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_spinning.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_stacked.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/_variables.scss (added)
-
tags/0.6.0/font-awesome-4.2.0/scss/font-awesome.scss (added)
-
tags/0.6.0/js (added)
-
tags/0.6.0/js/bootstrap.min.js (added)
-
tags/0.6.0/js/dashboard.php (added)
-
tags/0.6.0/js/plugins (added)
-
tags/0.6.0/js/plugins/morris (added)
-
tags/0.6.0/js/plugins/morris/morris-data.js (added)
-
tags/0.6.0/js/plugins/morris/morris.js (added)
-
tags/0.6.0/js/plugins/morris/morris.min.js (added)
-
tags/0.6.0/js/plugins/morris/raphael.min.js (added)
-
tags/0.6.0/js/wblm.js (added)
-
tags/0.6.0/languages (added)
-
tags/0.6.0/languages/wblm-de_DE.mo (added)
-
tags/0.6.0/languages/wblm-de_DE.po (added)
-
tags/0.6.0/languages/wblm-en_EN.mo (added)
-
tags/0.6.0/languages/wblm-en_EN.po (added)
-
tags/0.6.0/languages/wblm-fr_FR.mo (added)
-
tags/0.6.0/languages/wblm-fr_FR.po (added)
-
tags/0.6.0/languages/wblm-tr_TR.mo (added)
-
tags/0.6.0/languages/wblm-tr_TR.po (added)
-
tags/0.6.0/languages/wblm.mo (added)
-
tags/0.6.0/languages/wblm.pot (added)
-
tags/0.6.0/less (added)
-
tags/0.6.0/less/mixins.less (added)
-
tags/0.6.0/less/sb-admin-2.less (added)
-
tags/0.6.0/less/variables.less (added)
-
tags/0.6.0/log (added)
-
tags/0.6.0/readme.txt (added)
-
tags/0.6.0/screenshot-1.png (added)
-
tags/0.6.0/screenshot-2.png (added)
-
tags/0.6.0/screenshot-3.png (added)
-
tags/0.6.0/screenshot-4.png (added)
-
tags/0.6.0/wblm-broken-url.php (added)
-
tags/0.6.0/wblm-dashboard.php (added)
-
tags/0.6.0/wblm-redirect-url.php (added)
-
tags/0.6.0/wblm-settings.php (added)
-
tags/0.6.0/wblm-url-add.php (added)
-
tags/0.6.0/wblm-url-edit.php (added)
-
tags/0.6.0/wblm-url-log.php (added)
-
tags/0.6.0/wblm.php (added)
-
trunk/config/class/broken_url.php (modified) (1 diff)
-
trunk/config/class/log_url.php (modified) (1 diff)
-
trunk/config/class/redirected_url.php (modified) (1 diff)
-
trunk/css/plugins/dataTables.bootstrap.css (deleted)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/wblm.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
broken-link-manager/trunk/config/class/broken_url.php
r1027191 r1221170 5 5 6 6 class wblm_List_Table extends WP_List_Table { 7 var $url_data = array(); 8 7 var $url_data = array(); 9 8 function __construct(){ 10 global $status, $page, $wpdb; 11 12 parent::__construct( array( 13 'singular' => __( 'url', 'wblm' ), //singular name of the listed records 14 'plural' => __( 'urls', 'wblm' ), //plural name of the listed records 15 'ajax' => false //does this table support ajax? 16 17 ) ); 18 add_action( 'admin_head', array( &$this, 'admin_header' ) ); 19 9 global $status, $page, $wpdb; 10 parent::__construct( array( 11 'singular' => __( 'url', 'wblm' ), //singular name of the listed records 12 'plural' => __( 'urls', 'wblm' ), //plural name of the listed records 13 'ajax' => false //does this table support ajax? 14 ) ); 15 add_action( 'admin_head', array( &$this, 'admin_header' ) ); 20 16 } 21 17 22 function admin_header() { 23 $page = ( isset($_GET['page'] ) ) ? esc_attr( $_GET['page'] ) : false; 24 if( 'wblm-broken' != $page ) 25 return; 26 echo '<style type="text/css">'; 27 echo '.wp-list-table .column-id { width: 30px; }'; 28 echo '.wp-list-table .column-old_url { width: auto; }'; 29 echo '.wp-list-table .column-new_url { width: 450px; }'; 30 echo '.wp-list-table .column-hit { width: 70px;}'; 31 echo '</style>'; 32 } 33 34 function no_items() { 35 _e( 'No urls found, dude.' ); 36 } 37 38 function column_default( $item, $column_name ) { 39 switch( $column_name ) { 40 case 'id': 41 case 'old_url': 42 case 'new_url': 43 case 'hit': 44 return $item[ $column_name ]; 45 default: 46 return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes 47 } 48 } 49 50 function get_sortable_columns() { 51 $sortable_columns = array( 52 'id' => array('id',false), 53 'old_url' => array('old_url',false), 54 'new_url' => array('old_url',false), 55 'hit' => array('hit',false) 56 ); 57 return $sortable_columns; 18 function admin_header() { 19 $page = ( isset($_GET['page'] ) ) ? esc_attr( $_GET['page'] ) : false; 20 if( 'wblm-broken' != $page ) 21 return; 22 echo '<style type="text/css">'; 23 echo '.wp-list-table .column-id { width: 30px; }'; 24 echo '.wp-list-table .column-old_url { width: auto; }'; 25 echo '.wp-list-table .column-new_url { width: 450px; }'; 26 echo '.wp-list-table .column-hit { width: 70px;}'; 27 echo '</style>'; 28 } 29 30 function no_items() { 31 _e( 'No urls found, dude.' ); 32 } 33 34 function column_default( $item, $column_name ) { 35 switch( $column_name ) { 36 case 'id': 37 case 'old_url': 38 case 'new_url': 39 case 'hit': 40 return $item[ $column_name ]; 41 default: 42 return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes 43 } 44 } 45 46 function get_sortable_columns() { 47 $sortable_columns = array( 48 'id' => array('id',false), 49 'old_url' => array('old_url',false), 50 'new_url' => array('old_url',false), 51 'hit' => array('hit',false) 52 ); 53 return $sortable_columns; 54 } 55 56 function get_columns(){ 57 $columns = array( 58 'cb' => '<input type="checkbox" />', 59 'old_url' => __( 'Broken URLs', 'wblm' ), 60 'new_url' => __( 'Add Redirect Link', 'wblm' ), 61 'hit' => __( 'HIT', 'wblm' ) 62 ); 63 return $columns; 64 } 65 66 function usort_reorder( $a, $b ) { 67 // If no sort, default to title 68 $orderby = ( ! empty( $_GET['orderby'] ) ) ? sanitize_sql_orderby($_GET['orderby']) : 'old_url'; 69 // If no order, default to asc 70 $order = ( ! empty($_GET['order'] ) ) ? sanitize_text_field($_GET['order']) : 'asc'; 71 // Determine sort order 72 $result = strcmp( $a[$orderby], $b[$orderby] ); 73 // Send final sort direction to usort 74 return ( $order === 'asc' ) ? $result : -$result; 75 } 76 77 78 function inline_editor() { 79 return ' 80 <div class="blc-inline-editor-content"> 81 <label> 82 <span class="title">URL</span> 83 <span><input type="text" placeholder="http://" name="new_url%s" value="" class="wblm-table-add-field" /></span> 84 </label> 85 <button type="submit" class="button-primary save alignright" name="urlAdd" value="%s">Add</button> 86 <div class="clear"></div> 87 </div>'; 88 } 89 90 function column_old_url($item){ 91 $datum = parse_url($item['old_url']); 92 $parts = pathinfo($datum['path']); 93 $ext = isset($parts['extension']) ? $parts['extension'] : 'page'; 94 $actions = array( 95 'type' => sprintf('<b>%s</b>',$ext), 96 'delete' => sprintf('<a href="'. admin_url("admin.php?page=%s&delURL=%s&url=%s") .'" onClick="return confirm(\'Are you sure you want to delete?\');">Delete</a>',$_REQUEST['page'],'on',$item['id']), 97 'log' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Log</a>','wblm-log',$item['id']), 98 'Waybackmachine' => sprintf('<a href="http://web.archive.org/web/*/%s" target="_blank">Waybackmachine</a>',$item['old_url']), 99 ); 100 return sprintf('%1$s %2$s', $item['old_url'], $this->row_actions($actions) ); 101 } 102 103 function column_new_url($item){ 104 $actions = array( 105 'add_url' => sprintf($this->inline_editor() ,$item['id'],$item['id']), 106 ); 107 return sprintf('%1$s %2$s', $item['new_url'], $this->row_actions($actions) ); 108 } 109 110 111 function get_bulk_actions() { 112 $actions = array( 113 'delete' => 'Delete URL (URLs and URLs LOG)', 114 'deleteLog' => 'Delete only URL LOG', 115 'bulkEdit' => 'Bulk Edit' 116 ); 117 return $actions; 118 } 119 120 function column_cb($item) { 121 return sprintf('<input type="checkbox" name="url[]" value="%s" />', $item['id']); 122 } 123 124 function process_bulk_action() { 125 $url = null; 126 global $wpdb; 127 if( 'delete'===$this->current_action() ) { 128 foreach($_POST['url'] as $url) { 129 if(is_numeric($url) && $url!=null){ 130 $wpdb->delete(TABLE_WBLM, array( 'id' => $url ), array( '%d' )); 131 $wpdb->delete(TABLE_WBLM_LOG, array( 'url' => $url ), array( '%d' )); 132 } 133 } 134 }elseif( 'deleteLog'===$this->current_action() ) { 135 foreach($_POST['url'] as $url) { 136 if(is_numeric($url) && $url!=null){ 137 $wpdb->delete(TABLE_WBLM_LOG, array( 'url' => $url ), array( '%d' )); 138 } 139 } 140 }elseif( 'bulkEdit'===$this->current_action() ) { 141 get_bulkEdit('wblm-broken', 'Add'); 142 } 143 144 $urlAdd = isset($_REQUEST['urlAdd']) ? $_REQUEST['urlAdd'] : null; 145 if($urlAdd){ 146 if(is_numeric($urlAdd) && $urlAdd!=null){ 147 $new_url = isset($_REQUEST['new_url'.$urlAdd]) ? sanitize_url($_REQUEST['new_url'.$urlAdd]) : null; 148 $wpdb->query($wpdb->prepare("UPDATE " . TABLE_WBLM . " SET `new_url` = '%s', `active` = '1' WHERE id = '%d'", $new_url, $urlAdd)); 149 150 } 151 } 152 $urlAddBulk = isset($_REQUEST['urlAddBulk']) ? 'OK' : null; 153 if($urlAddBulk){ 154 $new_url = isset($_REQUEST['new_url']) ? sanitize_url($_REQUEST['new_url']) : null; 155 foreach($_POST['urls'] as $url) { 156 if(is_numeric($url) && $url!=null){ 157 $wpdb->query($wpdb->prepare("UPDATE " . TABLE_WBLM . " SET `new_url` = '%s', `active` = '1' WHERE id = '%d'", $new_url, $url)); 158 } 159 } 160 } 161 } 162 163 164 function prepare_items($search=''){ 165 global $wpdb; 166 167 $table_name = $wpdb->prefix . 'wblm'; 168 $per_page = 100; 169 $columns = $this->get_columns(); 170 $hidden = array(); 171 $sortable = $this->get_sortable_columns(); 172 173 $this->_column_headers = array($columns, $hidden, $sortable); 174 $this->process_bulk_action(); 175 176 $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; 177 $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? sanitize_sql_orderby($_REQUEST['orderby']) : 'hit'; 178 $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? sanitize_text_field($_REQUEST['order']) : 'desc'; 179 180 if($search){ 181 $search = trim($search); 182 $search = sanitize_text_field($search); 183 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `active` = '0' and old_url like '%$search%'"); 184 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE `active` = '0' and `old_url` LIKE '%%%s%%' ORDER BY $orderby $order LIMIT %d OFFSET %d", $search, $per_page, $paged), ARRAY_A); 185 }else{ 186 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `active` = '0' "); 187 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name where `active` = '0' ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A); 188 } 189 190 $this->set_pagination_args(array( 191 'total_items' => $total_items, 192 'per_page' => $per_page, 193 'total_pages' => ceil($total_items / $per_page), 194 )); 195 } 196 197 58 198 } 59 199 60 function get_columns(){61 $columns = array(62 'cb' => '<input type="checkbox" />',63 'old_url' => __( 'Broken URLs', 'wblm' ),64 'new_url' => __( 'Add Redirect Link', 'wblm' ),65 'hit' => __( 'HIT', 'wblm' )66 );67 return $columns;68 }69 70 function usort_reorder( $a, $b ) {71 // If no sort, default to title72 $orderby = ( ! empty( $_GET['orderby'] ) ) ? $_GET['orderby'] : 'old_url';73 // If no order, default to asc74 $order = ( ! empty($_GET['order'] ) ) ? $_GET['order'] : 'asc';75 // Determine sort order76 $result = strcmp( $a[$orderby], $b[$orderby] );77 // Send final sort direction to usort78 return ( $order === 'asc' ) ? $result : -$result;79 }80 81 82 function inline_editor() {83 return '84 <div class="blc-inline-editor-content">85 <label>86 <span class="title">URL</span>87 <span><input type="text" placeholder="http://" name="new_url%s" value="" class="wblm-table-add-field" /></span>88 </label>89 <button type="submit" class="button-primary save alignright" name="urlAdd" value="%s">Add</button>90 <div class="clear"></div>91 </div>';92 }93 94 function column_old_url($item){95 $datum = parse_url($item['old_url']);96 $parts = pathinfo($datum['path']);97 $ext = isset($parts['extension']) ? $parts['extension'] : 'page';98 $actions = array(99 'type' => sprintf('<b>%s</b>',$ext),100 'delete' => sprintf('<a href="'. admin_url("admin.php?page=%s&delURL=%s&url=%s") .'" onClick="return confirm(\'Are you sure you want to delete?\');">Delete</a>',$_REQUEST['page'],'on',$item['id']),101 'log' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Log</a>','wblm-log',$item['id']),102 'Waybackmachine' => sprintf('<a href="http://web.archive.org/web/*/%s" target="_blank">Waybackmachine</a>',$item['old_url']),103 );104 return sprintf('%1$s %2$s', $item['old_url'], $this->row_actions($actions) );105 }106 107 function column_new_url($item){108 $actions = array(109 'add_url' => sprintf($this->inline_editor() ,$item['id'],$item['id']),110 );111 return sprintf('%1$s %2$s', $item['new_url'], $this->row_actions($actions) );112 }113 114 115 function get_bulk_actions() {116 $actions = array(117 'delete' => 'Delete URL (URLs and URLs LOG)',118 'deleteLog' => 'Delete only URL LOG',119 'bulkEdit' => 'Bulk Edit'120 );121 return $actions;122 }123 124 function column_cb($item) {125 return sprintf('<input type="checkbox" name="url[]" value="%s" />', $item['id']);126 }127 128 function process_bulk_action() {129 $url = null;130 if( 'delete'===$this->current_action() ) {131 foreach($_POST['url'] as $url) {132 global $wpdb;133 $wpdb->query("DELETE FROM " . TABLE_WBLM . " WHERE id = $url");134 $wpdb->query("DELETE FROM " . TABLE_WBLM_LOG . " WHERE url = $url");135 }136 }elseif( 'deleteLog'===$this->current_action() ) {137 foreach($_POST['url'] as $url) {138 global $wpdb;139 $wpdb->query("DELETE FROM " . TABLE_WBLM_LOG . " WHERE url = $url");140 }141 }elseif( 'bulkEdit'===$this->current_action() ) {142 get_bulkEdit('wblm-broken', 'Add');143 }144 145 $urlAdd = isset($_REQUEST['urlAdd']) ? $_REQUEST['urlAdd'] : null;146 if($urlAdd){147 global $wpdb;148 $new_url = isset($_REQUEST['new_url'.$urlAdd]) ? $_REQUEST['new_url'.$urlAdd] : null;149 $wpdb->query("UPDATE " . TABLE_WBLM . " SET `new_url` = '$new_url', `active` = '1' WHERE id = '$urlAdd'");150 }151 152 $urlAddBulk = isset($_REQUEST['urlAddBulk']) ? $_REQUEST['urlAddBulk'] : null;153 if($urlAddBulk){154 global $wpdb;155 $new_url = isset($_REQUEST['new_url']) ? $_REQUEST['new_url'] : null;156 foreach($_POST['urls'] as $url) {157 $wpdb->query("UPDATE " . TABLE_WBLM . " SET `new_url` = '$new_url', `active` = '1' WHERE id = '$url'");158 }159 }160 161 162 163 }164 165 166 function prepare_items($search=''){167 global $wpdb;168 169 $table_name = $wpdb->prefix . 'wblm';170 $per_page = 50;171 $columns = $this->get_columns();172 $hidden = array();173 $sortable = $this->get_sortable_columns();174 175 $this->_column_headers = array($columns, $hidden, $sortable);176 $this->process_bulk_action();177 178 $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0;179 $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? $_REQUEST['orderby'] : 'hit';180 $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? $_REQUEST['order'] : 'desc';181 182 if($search){183 $search = trim($search);184 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `active` = '0' and old_url like '%$search%'");185 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE `active` = '0' and `old_url` LIKE '%%%s%%' ORDER BY $orderby $order LIMIT %d OFFSET %d", $search, $per_page, $paged), ARRAY_A);186 }else{187 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `active` = '0' ");188 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name where `active` = '0' ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A);189 }190 191 $this->set_pagination_args(array(192 'total_items' => $total_items,193 'per_page' => $per_page,194 'total_pages' => ceil($total_items / $per_page),195 ));196 }197 198 199 }200 201 200 ?> -
broken-link-manager/trunk/config/class/log_url.php
r1000579 r1221170 3 3 require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); 4 4 } 5 6 5 class wblm_List_Table extends WP_List_Table { 7 8 var $url_data = array(); 6 var $url_data = array(); 9 7 10 8 function __construct(){ 11 global $status, $page, $wpdb; 12 13 parent::__construct( array( 14 'singular' => __( 'url', 'wblm' ), //singular name of the listed records 15 'plural' => __( 'urls', 'wblm' ), //plural name of the listed records 16 'ajax' => false //does this table support ajax? 17 18 ) ); 19 20 add_action( 'admin_head', array( &$this, 'admin_header' ) ); 21 9 global $status, $page, $wpdb; 10 parent::__construct( array( 11 'singular' => __( 'url', 'wblm' ), //singular name of the listed records 12 'plural' => __( 'urls', 'wblm' ), //plural name of the listed records 13 'ajax' => false //does this table support ajax? 14 ) ); 15 add_action( 'admin_head', array( &$this, 'admin_header' ) ); 22 16 } 23 17 24 function admin_header() {25 $page = ( isset($_GET['page'] ) ) ? esc_attr( $_GET['page'] ) : false;26 if( 'wblm-log' != $page )27 return;28 echo '<style type="text/css">';29 echo '.wp-list-table .column-id { width: 30px; }';30 echo '.wp-list-table .column-date { width: 95px; }';31 echo '.wp-list-table .column-referer { width: auto; }';32 echo '.wp-list-table .column-user { width: auto;}';33 echo '.wp-list-table .column-ip { width: 130px;}';34 echo '.wp-list-table .column-http_statu { width: 90px;}';35 echo '</style>';36 }18 function admin_header() { 19 $page = ( isset($_GET['page'] ) ) ? esc_attr( $_GET['page'] ) : false; 20 if( 'wblm-log' != $page ) 21 return; 22 echo '<style type="text/css">'; 23 echo '.wp-list-table .column-id { width: 30px; }'; 24 echo '.wp-list-table .column-date { width: 95px; }'; 25 echo '.wp-list-table .column-referer { width: auto; }'; 26 echo '.wp-list-table .column-user { width: auto;}'; 27 echo '.wp-list-table .column-ip { width: 130px;}'; 28 echo '.wp-list-table .column-http_statu { width: 90px;}'; 29 echo '</style>'; 30 } 37 31 38 function no_items() {39 _e( 'No urls found, dude.' );40 }32 function no_items() { 33 _e( 'No urls found, dude.' ); 34 } 41 35 42 function column_default( $item, $column_name ) { 43 switch( $column_name ) { 44 case 'id': 45 case 'date': 46 case 'referer': 47 case 'useragent': 48 case 'ip': 49 case 'http_statu': 50 return $item[ $column_name ]; 51 default: 52 return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes 53 } 54 } 55 56 function column_date($item){ 57 return date('d.m.Y H:i:s', strtotime($item['date'])); 58 } 59 60 function column_referer($item){ 61 if ($item['referer'] != 'Direct'){ 62 return '<a href="'.$item['referer'].'" target="_blank">'.$item['referer'].'</a>'; 63 }else{ 64 return $item['referer']; 36 function column_default( $item, $column_name ) { 37 switch( $column_name ) { 38 case 'id': 39 case 'date': 40 case 'referer': 41 case 'useragent': 42 case 'ip': 43 case 'http_statu': 44 return $item[ $column_name ]; 45 default: 46 return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes 65 47 } 66 48 } 67 49 68 function column_ip($item){ 69 return '<a href="http://whois.arin.net/rest/ip/'.$item['ip'].'" target="_blank">'.$item['ip'].'</a>'; 50 function column_date($item){ 51 return date('d.m.Y H:i:s', strtotime($item['date'])); 52 } 53 54 function column_referer($item){ 55 if ($item['referer'] != 'Direct'){ 56 return '<a href="'.$item['referer'].'" target="_blank">'.$item['referer'].'</a>'; 57 }else{ 58 return $item['referer']; 59 } 60 } 61 62 function column_ip($item){ 63 return '<a href="http://whois.arin.net/rest/ip/'.$item['ip'].'" target="_blank">'.$item['ip'].'</a>'; 64 } 65 66 function column_http_statu($item){ 67 if ($item['http_statu'] == 301){ 68 $http_statu = '<span class="text-success"> 301 </span>'; 69 }elseif($item['http_statu'] == 404){ 70 $http_statu = '<span class="text-danger"> 404 </span>'; 71 }else{ 72 $http_statu = '<span class="text-warning"> Unknown </span>'; 73 } 74 return $http_statu; 75 } 76 77 function get_sortable_columns() { 78 $sortable_columns = array( 79 'id' => array('id',false), 80 'date' => array('date',false), 81 'referer' => array('referer',false), 82 'useragent' => array('useragent',false), 83 'ip' => array('ip',false), 84 'http_statu' => array('http_statu',false), 85 ); 86 return $sortable_columns; 87 } 88 89 function get_columns(){ 90 $columns = array( 91 'cb' => '<input type="checkbox" />', 92 'date' => __( 'Date', 'wblm' ), 93 'referer' => __( 'Referer', 'wblm' ), 94 'useragent' => __( 'User Agent', 'wblm' ), 95 'ip' => __( 'IP', 'wblm' ), 96 'http_statu' => __( 'Statu', 'wblm' ), 97 ); 98 return $columns; 99 } 70 100 71 } 101 function usort_reorder( $a, $b ) { 102 // If no sort, default to title 103 $orderby = ( ! empty( $_GET['orderby'] ) ) ? sanitize_sql_orderby($_GET['orderby']) : 'date'; 104 // If no order, default to asc 105 $order = ( ! empty($_GET['order'] ) ) ? sanitize_text_field($_GET['order']) : 'asc'; 106 // Determine sort order 107 $result = strcmp( $a[$orderby], $b[$orderby] ); 108 // Send final sort direction to usort 109 return ( $order === 'asc' ) ? $result : -$result; 110 } 111 112 function column_referer_url($item){ 113 $actions = array( 114 'edit' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Edit</a>','wblm-edit-url',$item['id']), 115 'delete' => sprintf('<a href="'. admin_url("admin.php?page=%s&delURL=%s&url=%s") .'" onClick="return confirm(\'Are you sure you want to delete?\');">Delete</a>',$_REQUEST['page'],'on',$item['id']), 116 'log' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Log</a>','wblm-log',$item['id']), 117 'Waybackmachine' => sprintf('<a href="http://web.archive.org/web/*/%s" target="_blank">Waybackmachine</a>',$item['old_url']), 118 ); 119 return sprintf('%1$s %2$s', $item['referer'], $this->row_actions($actions) ); 120 } 121 122 function get_bulk_actions() { 123 $actions = array( 124 'delete' => 'Delete' 125 ); 126 return $actions; 127 } 128 129 function column_cb($item) { 130 return sprintf('<input type="checkbox" name="log[]" value="%s" />', $item['id']); 131 } 72 132 73 133 74 function column_http_statu($item){ 75 if ($item['http_statu'] == 301){ 76 $http_statu = '<span class="text-success"> 301 </span>'; 77 }elseif($item['http_statu'] == 404){ 78 $http_statu = '<span class="text-danger"> 404 </span>'; 79 }else{ 80 $http_statu = '<span class="text-warning"> Unknown </span>'; 81 } 82 return $http_statu; 83 } 84 85 86 87 function get_sortable_columns() { 88 $sortable_columns = array( 89 'id' => array('id',false), 90 'date' => array('date',false), 91 'referer' => array('referer',false), 92 'useragent' => array('useragent',false), 93 'ip' => array('ip',false), 94 'http_statu' => array('http_statu',false), 95 ); 96 return $sortable_columns; 97 } 98 99 function get_columns(){ 100 $columns = array( 101 'cb' => '<input type="checkbox" />', 102 'date' => __( 'Date', 'wblm' ), 103 'referer' => __( 'Referer', 'wblm' ), 104 'useragent' => __( 'User Agent', 'wblm' ), 105 'ip' => __( 'IP', 'wblm' ), 106 'http_statu' => __( 'Statu', 'wblm' ), 107 ); 108 return $columns; 109 } 110 111 function usort_reorder( $a, $b ) { 112 // If no sort, default to title 113 $orderby = ( ! empty( $_GET['orderby'] ) ) ? $_GET['orderby'] : 'date'; 114 // If no order, default to asc 115 $order = ( ! empty($_GET['order'] ) ) ? $_GET['order'] : 'asc'; 116 // Determine sort order 117 $result = strcmp( $a[$orderby], $b[$orderby] ); 118 // Send final sort direction to usort 119 return ( $order === 'asc' ) ? $result : -$result; 120 } 121 122 function column_referer_url($item){ 123 $actions = array( 124 'edit' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Edit</a>','wblm-edit-url',$item['id']), 125 'delete' => sprintf('<a href="'. admin_url("admin.php?page=%s&delURL=%s&url=%s") .'" onClick="return confirm(\'Are you sure you want to delete?\');">Delete</a>',$_REQUEST['page'],'on',$item['id']), 126 'log' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Log</a>','wblm-log',$item['id']), 127 'Waybackmachine' => sprintf('<a href="http://web.archive.org/web/*/%s" target="_blank">Waybackmachine</a>',$item['old_url']), 128 129 ); 130 131 return sprintf('%1$s %2$s', $item['referer'], $this->row_actions($actions) ); 132 } 133 134 function get_bulk_actions() { 135 $actions = array( 136 'delete' => 'Delete' 137 ); 138 return $actions; 139 } 140 141 function column_cb($item) { 142 return sprintf('<input type="checkbox" name="log[]" value="%s" />', $item['id']); 143 } 144 145 146 function process_bulk_action() { 147 $url = null; 148 if( 'delete'===$this->current_action() ) { 149 foreach($_POST['log'] as $log) { 150 global $wpdb; 151 $wpdb->query("DELETE FROM " . TABLE_WBLM_LOG . " WHERE id = $log"); 134 function process_bulk_action() { 135 $url = null; 136 global $wpdb; 137 138 if( 'delete'===$this->current_action() ) { 139 foreach($_POST['log'] as $log) { 140 if(is_numeric($log) && $log!=null){ 141 $wpdb->delete(TABLE_WBLM_LOG, array( 'id' => $log ), array( '%d' )); 142 } 143 } 152 144 } 153 145 } 154 }155 146 156 157 158 function prepare_items($url='',$search=''){ 159 global $wpdb; 160 161 $table_name = $wpdb->prefix . 'wblm_log'; 162 $per_page = 50; 163 $columns = $this->get_columns(); 164 $hidden = array(); 165 $sortable = $this->get_sortable_columns(); 166 167 $this->_column_headers = array($columns, $hidden, $sortable); 168 $this->process_bulk_action(); 169 170 $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; 171 $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? $_REQUEST['orderby'] : 'id'; 172 $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? $_REQUEST['order'] : 'desc'; 173 174 175 if($search){ 176 $search = trim($search); 177 $searchFilterUrl = "and (`referer` LIKE '%%$search%%' OR `useragent` LIKE '%%$search%%' OR `ip` LIKE '%%$search%%')"; 178 $searchFilterAll = "where `referer` LIKE '%%$search%%' OR `useragent` LIKE '%%$search%%' OR `ip` LIKE '%%$search%%'"; 179 }else{ 180 $searchFilterUrl = null; 181 $searchFilterAll = null; 182 } 183 184 if($url){ 185 $url = trim($url); 186 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `url` = '$url' $searchFilterUrl "); 187 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE `url` = %d and (`referer` LIKE '%%%s%%' OR `useragent` LIKE '%%%s%%' OR `ip` LIKE '%%%s%%') ORDER BY $orderby $order LIMIT %d OFFSET %d", $url, $search, $search, $search, $per_page, $paged), ARRAY_A); 188 }else{ 189 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name $searchFilterAll"); 190 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name where `referer` LIKE '%%%s%%' OR `useragent` LIKE '%%%s%%' OR `ip` LIKE '%%%s%%' ORDER BY $orderby $order LIMIT %d OFFSET %d", $search, $search, $search, $per_page, $paged), ARRAY_A); 191 } 192 193 //print_r($this->items); 194 195 196 $this->set_pagination_args(array( 197 'total_items' => $total_items, 198 'per_page' => $per_page, 199 'total_pages' => ceil($total_items / $per_page), 200 )); 201 } 202 203 204 } 147 function prepare_items($url='',$search=''){ 148 global $wpdb; 149 150 $table_name = $wpdb->prefix . 'wblm_log'; 151 $per_page = 100; 152 $columns = $this->get_columns(); 153 $hidden = array(); 154 $sortable = $this->get_sortable_columns(); 155 156 $this->_column_headers = array($columns, $hidden, $sortable); 157 $this->process_bulk_action(); 158 159 $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; 160 $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? sanitize_sql_orderby($_REQUEST['orderby']) : 'id'; 161 $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? sanitize_text_field($_REQUEST['order']) : 'desc'; 162 163 164 if($search){ 165 $search = trim($search); 166 $searchFilterUrl = "and (`referer` LIKE '%%$search%%' OR `useragent` LIKE '%%$search%%' OR `ip` LIKE '%%$search%%')"; 167 $searchFilterAll = "where `referer` LIKE '%%$search%%' OR `useragent` LIKE '%%$search%%' OR `ip` LIKE '%%$search%%'"; 168 }else{ 169 $searchFilterUrl = null; 170 $searchFilterAll = null; 171 } 172 173 if($url){ 174 $url = trim($url); 175 $search = sanitize_text_field($search); 176 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `url` = '$url' $searchFilterUrl "); 177 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE `url` = %d and (`referer` LIKE '%%%s%%' OR `useragent` LIKE '%%%s%%' OR `ip` LIKE '%%%s%%') ORDER BY $orderby $order LIMIT %d OFFSET %d", $url, $search, $search, $search, $per_page, $paged), ARRAY_A); 178 }else{ 179 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name $searchFilterAll"); 180 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name where `referer` LIKE '%%%s%%' OR `useragent` LIKE '%%%s%%' OR `ip` LIKE '%%%s%%' ORDER BY $orderby $order LIMIT %d OFFSET %d", $search, $search, $search, $per_page, $paged), ARRAY_A); 181 } 182 183 //print_r($this->items); 184 185 186 $this->set_pagination_args(array( 187 'total_items' => $total_items, 188 'per_page' => $per_page, 189 'total_pages' => ceil($total_items / $per_page), 190 )); 191 } 192 }//Class 205 193 ?> -
broken-link-manager/trunk/config/class/redirected_url.php
r1027191 r1221170 5 5 6 6 class wblm_List_Table extends WP_List_Table { 7 var $url_data = array(); 8 function __construct(){ 9 global $status, $page, $wpdb; 10 parent::__construct( array( 11 'singular' => __( 'url', 'wblm' ), //singular name of the listed records 12 'plural' => __( 'urls', 'wblm' ), //plural name of the listed records 13 'ajax' => false //does this table support ajax? 14 ) ); 15 add_action( 'admin_head', array( &$this, 'admin_header' ) ); 16 } 7 17 8 var $url_data = array(); 9 function __construct(){ 10 global $status, $page, $wpdb; 11 parent::__construct( array( 12 'singular' => __( 'url', 'wblm' ), //singular name of the listed records 13 'plural' => __( 'urls', 'wblm' ), //plural name of the listed records 14 'ajax' => false //does this table support ajax? 15 ) ); 16 add_action( 'admin_head', array( &$this, 'admin_header' ) ); 17 } 18 function admin_header() { 19 $page = ( isset($_GET['page'] ) ) ? esc_attr( $_GET['page'] ) : false; 20 if( 'wblm-redirect' != $page ) 21 return; 22 echo '<style type="text/css">'; 23 echo '.wp-list-table .column-id { width: 30px; }'; 24 echo '.wp-list-table .column-old_url { width: auto; }'; 25 echo '.wp-list-table .column-new_url { width: auto; }'; 26 echo '.wp-list-table .column-hit { width: 70px;}'; 27 echo '</style>'; 28 } 18 29 19 function admin_header() { 20 $page = ( isset($_GET['page'] ) ) ? esc_attr( $_GET['page'] ) : false; 21 if( 'wblm-redirect' != $page ) 22 return; 23 echo '<style type="text/css">'; 24 echo '.wp-list-table .column-id { width: 30px; }'; 25 echo '.wp-list-table .column-old_url { width: auto; }'; 26 echo '.wp-list-table .column-new_url { width: auto; }'; 27 echo '.wp-list-table .column-hit { width: 70px;}'; 28 echo '</style>'; 29 } 30 function no_items() { 31 _e( 'No urls found, dude.' ); 32 } 30 33 31 function no_items() { 32 _e( 'No urls found, dude.' ); 33 } 34 function column_default( $item, $column_name ) { 35 switch( $column_name ) { 36 case 'id': 37 case 'old_url': 38 case 'new_url': 39 case 'hit': 40 return $item[ $column_name ]; 41 default: 42 return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes 43 } 44 } 34 45 35 function column_default( $item, $column_name ) { 36 switch( $column_name ) { 37 case 'id': 38 case 'old_url': 39 case 'new_url': 40 case 'hit': 41 return $item[ $column_name ]; 42 default: 43 return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes 44 } 45 } 46 function get_sortable_columns() { 47 $sortable_columns = array( 48 'id' => array('id',false), 49 'old_url' => array('old_url',false), 50 'new_url' => array('new_url',false), 51 'hit' => array('hit',false) 52 ); 53 return $sortable_columns; 54 } 46 55 47 function get_sortable_columns(){48 $sortable_columns = array(49 'id' => array('id',false),50 'old_url' => array('old_url',false),51 'new_url' => array('new_url',false),52 'hit' => array('hit',false)53 );54 return $sortable_columns;55 }56 function get_columns(){ 57 $columns = array( 58 'cb' => '<input type="checkbox" />', 59 'old_url' => __( 'Broken URLs', 'wblm' ), 60 'new_url' => __( 'Redirected URLs', 'wblm' ), 61 'hit' => __( 'HIT', 'wblm' ) 62 ); 63 return $columns; 64 } 56 65 57 function get_columns(){ 58 $columns = array( 59 'cb' => '<input type="checkbox" />', 60 'old_url' => __( 'Broken URLs', 'wblm' ), 61 'new_url' => __( 'Redirected URLs', 'wblm' ), 62 'hit' => __( 'HIT', 'wblm' ) 63 ); 64 return $columns; 65 } 66 function usort_reorder( $a, $b ) { 67 // If no sort, default to title 68 $orderby = ( ! empty( $_GET['orderby'] ) ) ? sanitize_sql_orderby($_GET['orderby']) : 'old_url'; 69 // If no order, default to asc 70 $order = ( ! empty($_GET['order'] ) ) ? sanitize_text_field($_GET['order']) : 'asc'; 71 // Determine sort order 72 $result = strcmp( $a[$orderby], $b[$orderby] ); 73 // Send final sort direction to usort 74 return ( $order === 'asc' ) ? $result : -$result; 75 } 66 76 67 function usort_reorder( $a, $b ) { 68 // If no sort, default to title 69 $orderby = ( ! empty( $_GET['orderby'] ) ) ? $_GET['orderby'] : 'old_url'; 70 // If no order, default to asc 71 $order = ( ! empty($_GET['order'] ) ) ? $_GET['order'] : 'asc'; 72 // Determine sort order 73 $result = strcmp( $a[$orderby], $b[$orderby] ); 74 // Send final sort direction to usort 75 return ( $order === 'asc' ) ? $result : -$result; 76 } 77 function column_old_url($item){ 78 $datum = parse_url($item['old_url']); 79 $parts = pathinfo($datum['path']); 80 $ext = isset($parts['extension']) ? $parts['extension'] : 'page'; 81 $actions = array( 82 'type' => sprintf('<b>%s</b>',$ext), 83 'edit' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Edit</a>','wblm-edit-url',$item['id']), 84 'delete' => sprintf('<a href="'. admin_url("admin.php?page=%s&delURL=%s&url=%s") .'" onClick="return confirm(\'Are you sure you want to delete?\');">Delete</a>',$_REQUEST['page'],'on',$item['id']), 85 'log' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Log</a>','wblm-log',$item['id']), 86 'Waybackmachine' => sprintf('<a href="http://web.archive.org/web/*/%s" target="_blank">Waybackmachine</a>',$item['old_url']), 87 ); 88 return sprintf('%1$s %2$s', $item['old_url'], $this->row_actions($actions) ); 89 } 77 90 78 function column_old_url($item){ 79 $datum = parse_url($item['old_url']); 80 $parts = pathinfo($datum['path']); 81 $ext = isset($parts['extension']) ? $parts['extension'] : 'page'; 82 $actions = array( 83 'type' => sprintf('<b>%s</b>',$ext), 84 'edit' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Edit</a>','wblm-edit-url',$item['id']), 85 'delete' => sprintf('<a href="'. admin_url("admin.php?page=%s&delURL=%s&url=%s") .'" onClick="return confirm(\'Are you sure you want to delete?\');">Delete</a>',$_REQUEST['page'],'on',$item['id']), 86 'log' => sprintf('<a href="'. admin_url("admin.php?page=%s&url=%s") .'">Log</a>','wblm-log',$item['id']), 87 'Waybackmachine' => sprintf('<a href="http://web.archive.org/web/*/%s" target="_blank">Waybackmachine</a>',$item['old_url']), 88 ); 89 return sprintf('%1$s %2$s', $item['old_url'], $this->row_actions($actions) ); 90 } 91 function get_bulk_actions() { 92 $actions = array( 93 'delete' => 'Delete URL (URLs and URLs LOG)', 94 'deleteLog' => 'Delete only URL LOG', 95 'bulkEdit' => 'Bulk Edit' 96 ); 97 return $actions; 98 } 91 99 92 function get_bulk_actions() { 93 $actions = array( 94 'delete' => 'Delete URL (URLs and URLs LOG)', 95 'deleteLog' => 'Delete only URL LOG', 96 'bulkEdit' => 'Bulk Edit' 97 ); 98 return $actions; 99 } 100 function column_cb($item) { 101 return sprintf('<input type="checkbox" name="url[]" value="%s" />', $item['id']); 102 } 100 103 101 function column_cb($item) { 102 return sprintf('<input type="checkbox" name="url[]" value="%s" />', $item['id']); 103 } 104 105 function process_bulk_action() { 106 $url = null; 107 if( 'delete'===$this->current_action() ) { 108 foreach($_POST['url'] as $url) { 109 global $wpdb; 110 $wpdb->query("DELETE FROM " . TABLE_WBLM . " WHERE id = $url"); 111 $wpdb->query("DELETE FROM " . TABLE_WBLM_LOG . " WHERE url = $url"); 104 function process_bulk_action() { 105 $url = null; 106 global $wpdb; 107 108 if( 'delete'===$this->current_action() ) { 109 foreach($_POST['url'] as $url) { 110 if(is_numeric($url) && $url!=null){ 111 $wpdb->delete(TABLE_WBLM, array( 'id' => $url ), array( '%d' )); 112 $wpdb->delete(TABLE_WBLM_LOG, array( 'url' => $url ), array( '%d' )); 113 } 114 } 115 }elseif( 'deleteLog'===$this->current_action() ) { 116 foreach($_POST['url'] as $url) { 117 if(is_numeric($url) && $url!=null){ 118 $wpdb->delete(TABLE_WBLM_LOG, array( 'url' => $url ), array( '%d' )); 119 } 120 } 121 }elseif( 'bulkEdit'===$this->current_action() ) { 122 get_bulkEdit('wblm-redirect', 'Edit'); 112 123 } 113 }elseif( 'deleteLog'===$this->current_action() ) {114 foreach($_POST['url'] as $url) {115 global $wpdb;116 $ wpdb->query("DELETE FROM " . TABLE_WBLM_LOG . " WHERE url = $url");117 }118 }elseif( 'bulkEdit'===$this->current_action() ){119 get_bulkEdit('wblm-redirect', 'Edit');120 }124 125 $urlAddBulk = isset($_REQUEST['urlAddBulk']) ? 'OK' : null; 126 if($urlAddBulk){ 127 $new_url = isset($_REQUEST['new_url']) ? sanitize_url($_REQUEST['new_url']) : null; 128 foreach($_POST['urls'] as $url) { 129 if(is_numeric($url) && $url!=null){ 130 $wpdb->query($wpdb->prepare("UPDATE " . TABLE_WBLM . " SET `new_url` = '%s', `active` = '1' WHERE id = '%d'", $new_url, $url)); 131 } 121 132 122 $urlAddBulk = isset($_REQUEST['urlAddBulk']) ? $_REQUEST['urlAddBulk'] : null; 123 if($urlAddBulk){ 124 global $wpdb; 125 $new_url = isset($_REQUEST['new_url']) ? $_REQUEST['new_url'] : null; 126 foreach($_POST['urls'] as $url) { 127 $wpdb->query("UPDATE " . TABLE_WBLM . " SET `new_url` = '$new_url', `active` = '1' WHERE id = '$url'"); 133 } 128 134 } 129 135 } 130 }131 136 132 137 133 function prepare_items($search=''){ 134 global $wpdb; 135 136 $table_name = $wpdb->prefix . 'wblm'; 137 $per_page = 50; 138 $columns = $this->get_columns(); 139 $hidden = array(); 140 $sortable = $this->get_sortable_columns(); 141 142 $this->_column_headers = array($columns, $hidden, $sortable); 143 $this->process_bulk_action(); 144 145 $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; 146 $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? $_REQUEST['orderby'] : 'hit'; 147 $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? $_REQUEST['order'] : 'desc'; 148 149 if($search){ 150 $search = trim($search); 151 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `active` = '1' and old_url like '%$search%'"); 152 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE `active` = '1' and (`old_url` LIKE '%%%s%%' OR `new_url` LIKE '%%%s%%') ", $search, $search), ARRAY_A); 153 }else{ 154 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `active` = '1' "); 155 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name where `active` = '1' ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A); 156 } 157 158 $this->set_pagination_args(array( 159 'total_items' => $total_items, 160 'per_page' => $per_page, 161 'total_pages' => ceil($total_items / $per_page), 162 )); 163 } 164 165 138 function prepare_items($search=''){ 139 global $wpdb; 140 141 $table_name = $wpdb->prefix . 'wblm'; 142 $per_page = 100; 143 $columns = $this->get_columns(); 144 $hidden = array(); 145 $sortable = $this->get_sortable_columns(); 146 147 $this->_column_headers = array($columns, $hidden, $sortable); 148 $this->process_bulk_action(); 149 150 $paged = isset($_REQUEST['paged']) ? max(0, intval($_REQUEST['paged']) - 1) : 0; 151 $orderby = (isset($_REQUEST['orderby']) && in_array($_REQUEST['orderby'], array_keys($this->get_sortable_columns()))) ? sanitize_sql_orderby($_REQUEST['orderby']) : 'hit'; 152 $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], array('asc', 'desc'))) ? sanitize_text_field($_REQUEST['order']) : 'desc'; 153 154 if($search){ 155 $search = trim($search); 156 $search = sanitize_text_field($search); 157 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `active` = '1' and old_url like '%$search%'"); 158 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE `active` = '1' and (`old_url` LIKE '%%%s%%' OR `new_url` LIKE '%%%s%%') ", $search, $search), ARRAY_A); 159 }else{ 160 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name where `active` = '1' "); 161 $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name where `active` = '1' ORDER BY $orderby $order LIMIT %d OFFSET %d", $per_page, $paged), ARRAY_A); 162 } 163 164 $this->set_pagination_args(array( 165 'total_items' => $total_items, 166 'per_page' => $per_page, 167 'total_pages' => ceil($total_items / $per_page), 168 )); 169 } 166 170 } //class 167 171 -
broken-link-manager/trunk/readme.txt
r1200617 r1221170 4 4 Requires at least: 3.0 5 5 Tested up to: 4.2.2 6 Stable tag: 0.6. 06 Stable tag: 0.6.5 7 7 Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8NYR3F4RVTBHS 8 8 … … 41 41 == Screenshots == 42 42 43 1. WBLM Das chboard44 2. Redi erctURLs43 1. WBLM Dashboard 44 2. Redirected URLs 45 45 3. WBLM URL Log 46 46 4. WBLM Settings … … 48 48 49 49 == Changelog == 50 51 = 0.6.5 = 52 * Optimized POST calls 53 * Some security measures were taken 54 * Fixed small bug 50 55 51 56 = 0.6.0 = -
broken-link-manager/trunk/wblm.php
r1200617 r1221170 4 4 Plugin URI: https://wordpress.org/plugins/broken-link-manager 5 5 Description: WBLM -> Wordpress Broken Link Manager. This plugin helps you check, organise and monitor your broken backlinks. 6 Version: 0.6. 06 Version: 0.6.5 7 7 Author: Hüseyin Kocak 8 8 Author URI: http://k-78.de
Note: See TracChangeset
for help on using the changeset viewer.