PluginProbe
InfiniteWP Client / trunk
InfiniteWP Client vtrunk
1.13.10 1.13.7 trunk 0.1.4 0.1.5 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.1.0 1.1.1 1.1.10 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.11.0 1.11.1 1.12.1 1.12.3 All 92 releases
iwp-client / addons / post_links / link.class.php

link.class.php in InfiniteWP Client trunk, at addons/post_links/link.class.php

197 lines 5.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*************************************************************
3 *
4 * link.class.php
5 *
6 * Manage/Add Links
7 *
8 *
9 * Copyright (c) 2011 Prelovac Media
10 * www.prelovac.com
11 **************************************************************/
12 if ( ! defined('ABSPATH') )
13 die();
14 class IWP_MMB_Link extends IWP_MMB_Core
15 {
16 function __construct()
17 {
18 parent::__construct();
19 }
20
21 function add_link($args)
22 {
23 global $wpdb;
24 extract($args);
25
26 $params['link_url'] = esc_html($url);
27 $params['link_url'] = esc_url($params['link_url']);
28 $params['link_name'] = esc_html($name);
29 $params['link_id'] = '';
30 $params['link_description'] = $description;
31 $params['link_target'] = $link_target;
32 $params['link_category'] = array();
33
34 //Add Link category
35 if(is_array($link_category) && !empty($link_category)){
36 $terms = get_terms('link_category',array('hide_empty' => 0));
37
38 if($terms){
39 foreach($terms as $term){
40 if(in_array($term->name,$link_category)){
41 $params['link_category'][] = $term->term_id;
42 $link_category = $this->remove_element($link_category, $term->name);
43 }
44 }
45 }
46 if(!empty($link_category)){
47 foreach($link_category as $linkkey => $linkval){
48 if(!empty($linkval)){
49 $link = wp_insert_term($linkval,'link_category');
50
51 if(isset($link['term_id']) && !empty($link['term_id'])){
52 $params['link_category'][] = $link['term_id'];
53 }
54 }
55 }
56 }
57 }
58
59 //Add Link Owner
60 if (!isset($user)) {
61 $user = false;
62 }
63 $user_obj = get_userdatabylogin($user);
64 if($user_obj && $user_obj->ID){
65 $params['link_owner'] = $user_obj->ID;
66 }
67
68
69 if(!function_exists('wp_insert_link'))
70 include_once (ABSPATH . 'wp-admin/includes/bookmark.php');
71
72 $is_success = wp_insert_link($params);
73
74 // if ($is_success && $Rlink) {
75 // $is_success = $wpdb->insert($wpdb->base_prefix."links_extrainfo", array('link_id'=> $is_success, 'link_reciprocal' => $Rlink, 'link_submitter_email' => $submitterMail));
76 // }
77 return $is_success ? true : array('error' => 'Failed to add link.', 'error_code' => 'failed_to_add_link');
78 }
79
80 function remove_element($arr, $val){
81 foreach ($arr as $key => $value){
82 if ($value == $val){
83 unset($arr[$key]);
84 }
85 }
86 return $arr = array_values($arr);
87 }
88
89 function get_links($args){
90 global $wpdb;
91
92 $where='';
93
94 extract($args);
95
96 if(!empty($filter_links))
97 {
98 $table_name = $wpdb->prefix."links_extrainfo";
99 $cus_sql = '';
100 if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name) {
101 $cus_sql= " OR link_id IN(SELECT link_id FROM ".$wpdb->prefix."links_extrainfo WHERE 1=1 AND (link_reciprocal LIKE '%".esc_sql($filter_links)."%' OR link_submitter_email LIKE '%".esc_sql($filter_links)."%'))";
102 }
103
104 $where.=" AND (link_name LIKE '%".esc_sql($filter_links)."%' OR link_url LIKE '%".esc_sql($filter_links)."%'".$cus_sql.")";
105 }
106
107 $linkcats = $this->getLinkCats();
108 $sql_query = "$wpdb->links WHERE 1=1 ".$where;
109 $links_total = $wpdb->get_results("SELECT count(*) as total_links FROM ".$sql_query);
110 $total=$links_total[0]->total_links;
111
112 $query_links = $wpdb->get_results("SELECT link_id, link_url, link_name, link_target, link_visible, link_rating, link_rel FROM ".$sql_query." ORDER BY link_name ASC LIMIT 500");
113 $links = array();
114 foreach ( $query_links as $link_info )
115 {
116 if (isset($linkcats[$link_info->link_id])) {
117 $link_cat = $linkcats[$link_info->link_id];
118 }
119 $cats = array();
120 if (!empty($link_cat)) {
121 foreach($link_cat as $catkey=>$catval)
122 {
123 $cats[] = $catval;
124 }
125 }
126
127 $links[$link_info->link_id] = array(
128 "link_url" => $link_info->link_url,
129 "link_name" => $link_info->link_name,
130 "link_target" => $link_info->link_target,
131 "link_visible" => $link_info->link_visible,
132 "link_rating" => $link_info->link_rating,
133 "link_rel" => $link_info->link_rel,
134 "link_cats" => $cats
135 );
136 }
137
138 return array('links' => $links, 'total' => $total);
139 }
140
141 function getLinkCats($taxonomy = 'link_category')
142 {
143 global $wpdb;
144
145 $cats = $wpdb->get_results("SELECT l.link_id, $wpdb->terms.name
146 FROM $wpdb->links AS l
147 INNER JOIN $wpdb->term_relationships ON ( l.link_id = $wpdb->term_relationships.object_id )
148 INNER JOIN $wpdb->term_taxonomy ON ( $wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id
149 AND $wpdb->term_taxonomy.taxonomy = '".$taxonomy."' )
150 INNER JOIN $wpdb->terms ON ( $wpdb->term_taxonomy.term_id = $wpdb->terms.term_id )");
151 $post_cats = array();
152 foreach ( $cats as $post_val )
153 {
154
155 $post_cats[$post_val->link_id][] = $post_val->name;
156 }
157
158 return $post_cats;
159 }
160
161 function delete_link($args){
162 global $wpdb;
163
164 if(!empty($args['link_id']))
165 {
166 $link_id = (int)$args['link_id'];
167 $delete_query = $wpdb->prepare("DELETE FROM $wpdb->links WHERE link_id = %d", $link_id);
168 $wpdb->query($delete_query);
169
170 return 'Link deleted.';
171 }
172 else
173 {
174 return 'No ID...';
175 }
176 }
177
178 function delete_links($args){
179 global $wpdb;
180 extract($args);
181
182 if(isset($deleteaction) && $deleteaction=='delete'){
183 foreach($args as $key=>$val){
184
185 if(!empty($val) && is_numeric($val))
186 {
187 $delete_query = $wpdb->prepare("DELETE FROM $wpdb->links WHERE link_id = %d", (int)$val);
188
189 $wpdb->query($delete_query);
190 }
191 }
192 }
193 return "Link deleted";
194 }
195
196 }
197 ?>