| @@ -108,8 +108,10 @@ | ||
| 108 | 108 | // set active networks. Support doubles. |
| 109 | 109 | foreach($active_networks as $index => $network_name) |
| 110 | 110 | { |
| 111 | 111 | $network = mbSocial()->networks()->get($network_name); |
| 112 | + if (! is_object($network)) // could be removed network. | |
| 113 | + continue; | |
| 112 | 114 | if ($network->get('is_active')) |
| 113 | 115 | $selected[$index] = $network; |
| 114 | 116 | } |
| 115 | 117 | |
| @@ -124,23 +126,16 @@ | ||
| 124 | 126 | { |
| 125 | 127 | $priority = 'selected'; |
| 126 | 128 | } |
| 127 | 129 | |
| 128 | - | |
| 129 | - /* if ($priority == 'selected') | |
| 130 | - { | |
| 131 | - continue; // ignore active, since it's set earlier. | |
| 132 | - //$selected[$is_active] = $network; | |
| 133 | - | |
| 134 | - } */ | |
| 135 | 130 | if ($priority == 'unselected') |
| 136 | 131 | $unselected[] = $network; |
| 137 | 132 | if ($priority == 'readmore') |
| 138 | 133 | $readmore[] = $network; |
| 139 | 134 | |
| 140 | - | |
| 141 | 135 | if ($network->get('network') == 'maxbutton' && $priority != 'readmore') // exceptions |
| 142 | 136 | { |
| 137 | + | |
| 143 | 138 | $readmore[] = $network; |
| 144 | 139 | } |
| 145 | 140 | |
| 146 | 141 | |
| @@ -145,9 +140,8 @@ | ||
| 145 | 140 | |
| 146 | 141 | |
| 147 | 142 | } // foreach networks |
| 148 | 143 | |
| 149 | - | |
| 150 | 144 | // Sort networks by order saved. |
| 151 | 145 | ksort($selected); |
| 152 | 146 | return array('selected' => $selected, 'unselected' => $unselected, 'readmore' => $readmore); |
| 153 | 147 | } |
| @@ -197,12 +191,35 @@ | ||
| 197 | 191 | case 'nucleo': |
| 198 | 192 | $output = "<span class='mb-icon'><i class='$icon_type $icon' title='$title' > </i></span>"; |
| 199 | 193 | break; |
| 200 | 194 | case 'svg': |
| 201 | - case 'png': | |
| 195 | + case 'png': // via network settings, or whatever. | |
| 202 | 196 | $output = "<span class='mb-icon " . $icon_type . "'><img src='" . $icon . "' alt='" . $title . "'></span>"; |
| 203 | 197 | break; |
| 198 | + case 'image': // via media uploader | |
| 199 | + case 'image-remote': | |
| 200 | + if ($icon_type == 'image-remote') // when loading a custom network, before import | |
| 201 | + { | |
| 202 | + $url = $args['image_url']; | |
| 203 | + $output = '<img src="' . $url . '" border="0" />'; | |
| 204 | + } | |
| 205 | + else { | |
| 206 | + $image_id = isset($args['image_id']) ? $args['image_id'] : false; | |
| 207 | + $image_size = isset($args['image_size']) ? $args['image_size'] : false; | |
| 204 | 208 | |
| 209 | + $img_data = wp_get_attachment_image_src($image_id, $image_size); | |
| 210 | + $output = ''; | |
| 211 | + | |
| 212 | + if ($img_data) | |
| 213 | + { | |
| 214 | + $width = $img_data[1]; | |
| 215 | + $height = $img_data[2]; | |
| 216 | + $url = $img_data[0]; | |
| 217 | + $output = '<span class="mb-icon ' . $icon_type . '"><img src="' . $url . '" width="' . $width . '" height="' . $height . '" border="0" /></span>'; | |
| 218 | + } | |
| 219 | + | |
| 220 | + } | |
| 221 | + break; | |
| 205 | 222 | default: |
| 206 | 223 | $output = ''; |
| 207 | 224 | break; |
| 208 | 225 | } |
| @@ -209,8 +226,38 @@ | ||
| 209 | 226 | |
| 210 | 227 | return apply_filters('display/render/icon', $output, $args); |
| 211 | 228 | } |
| 212 | 229 | |
| 230 | + public function applyVars($string) | |
| 231 | + { | |
| 232 | + //$vars = $this->getShareData(); | |
| 233 | + $w = MBSocial()->whistle(); | |
| 234 | + | |
| 235 | + preg_match_all('/\{(.*?)\}/im', $string, $matches); | |
| 236 | + //$vars = (isset($vars[0]) && count($vars[0]) > 0) ? $vars[0] : array(); | |
| 237 | + | |
| 238 | + if (count($matches) == 0) | |
| 239 | + return $string; | |
| 240 | + | |
| 241 | + $vars = $matches[0]; // i.e. {url} | |
| 242 | + $clean_vars = $matches[1]; // i.e. url | |
| 243 | + | |
| 244 | + for($i = 0; $i < count($vars); $i++) | |
| 245 | + { | |
| 246 | + $var = $vars[$i]; | |
| 247 | + $clean_var = $clean_vars[$i]; | |
| 248 | + | |
| 249 | + if (strpos($string, $var) !== false) | |
| 250 | + { | |
| 251 | + $val = $w->ask('display/vars/' . $clean_var); | |
| 252 | + $string = str_replace($var, $val, $string); | |
| 253 | + } | |
| 254 | + | |
| 255 | + } | |
| 256 | + | |
| 257 | + return $string; | |
| 258 | + } | |
| 259 | + | |
| 213 | 260 | public function header( $args = array() ) |
| 214 | 261 | { |
| 215 | 262 | $defaults = array( |
| 216 | 263 | 'title' => '', |
| @@ -270,9 +317,10 @@ | ||
| 270 | 317 | if ($display_review) |
| 271 | 318 | { |
| 272 | 319 | add_action( 'admin_notices', array( $this, 'mbsocial_review_notice')); |
| 273 | 320 | // registered in admin scripts |
| 274 | - MB()->load_library('review_notice'); | |
| 321 | + if (method_exists(MB(), 'load_library')) | |
| 322 | + MB()->load_library('review_notice'); | |
| 275 | 323 | } |
| 276 | 324 | |
| 277 | 325 | } |
| 278 | 326 | |