Changeset 481551
- Timestamp:
- 12/28/2011 04:53:20 PM (14 years ago)
- Location:
- mediaembedder
- Files:
-
- 67 added
- 1 deleted
- 2 edited
-
tags/2011.12.28 (added)
-
tags/2011.12.28/api.php (added)
-
tags/2011.12.28/list.php (added)
-
tags/2011.12.28/mediaembedder.php (added)
-
tags/2011.12.28/module (added)
-
tags/2011.12.28/module/allthingsdigital.php (added)
-
tags/2011.12.28/module/aniboom.php (added)
-
tags/2011.12.28/module/atom.php (added)
-
tags/2011.12.28/module/bambuser.php (added)
-
tags/2011.12.28/module/barelydigital.php (added)
-
tags/2011.12.28/module/barelypolitical.php (added)
-
tags/2011.12.28/module/bliptv.php (added)
-
tags/2011.12.28/module/collegehumor.php (added)
-
tags/2011.12.28/module/dailymotion.php (added)
-
tags/2011.12.28/module/doller99.php (added)
-
tags/2011.12.28/module/flickr.php (added)
-
tags/2011.12.28/module/funnyordie.php (added)
-
tags/2011.12.28/module/gametrailers.php (added)
-
tags/2011.12.28/module/hulu.php (added)
-
tags/2011.12.28/module/metacafe.php (added)
-
tags/2011.12.28/module/photobucket.php (added)
-
tags/2011.12.28/module/revision3.php (added)
-
tags/2011.12.28/module/screenr.php (added)
-
tags/2011.12.28/module/scribd.php (added)
-
tags/2011.12.28/module/smugmug.php (added)
-
tags/2011.12.28/module/viddler.php (added)
-
tags/2011.12.28/module/vimeo.php (added)
-
tags/2011.12.28/module/youtube.php (added)
-
tags/2011.12.28/readme.txt (added)
-
tags/2011.12.28/sql (added)
-
tags/2011.12.28/sql/main.sql (added)
-
tags/2011.12.28/template (added)
-
tags/2011.12.28/template/allthingsdigital.php (added)
-
tags/2011.12.28/template/aniboom.php (added)
-
tags/2011.12.28/template/atom.php (added)
-
tags/2011.12.28/template/bambuser.php (added)
-
tags/2011.12.28/template/bambuser_channel.php (added)
-
tags/2011.12.28/template/barelydigital.php (added)
-
tags/2011.12.28/template/barelypolitical.php (added)
-
tags/2011.12.28/template/bliptv.php (added)
-
tags/2011.12.28/template/collegehumor.php (added)
-
tags/2011.12.28/template/dailymotion.php (added)
-
tags/2011.12.28/template/doller99.php (added)
-
tags/2011.12.28/template/flickr.php (added)
-
tags/2011.12.28/template/flickr_video.php (added)
-
tags/2011.12.28/template/funnyordie.php (added)
-
tags/2011.12.28/template/gametrailers.php (added)
-
tags/2011.12.28/template/hulu.php (added)
-
tags/2011.12.28/template/metacafe.php (added)
-
tags/2011.12.28/template/photobucket.php (added)
-
tags/2011.12.28/template/revision3.php (added)
-
tags/2011.12.28/template/screenr.php (added)
-
tags/2011.12.28/template/scribd.php (added)
-
tags/2011.12.28/template/smugmug.php (added)
-
tags/2011.12.28/template/viddler.php (added)
-
tags/2011.12.28/template/vimeo.php (added)
-
tags/2011.12.28/template/youtube.php (added)
-
tags/2011.12.28/template/youtube_playlist.php (added)
-
tags/2011.12.28/view (added)
-
tags/2011.12.28/view/settings.php (added)
-
tags/2011.12.28/view/template-editor-filelist.php (added)
-
tags/2011.12.28/view/template-editor.php (added)
-
trunk/api.php (added)
-
trunk/mediaembedder.php (modified) (18 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/settings.php (deleted)
-
trunk/view (added)
-
trunk/view/settings.php (added)
-
trunk/view/template-editor-filelist.php (added)
-
trunk/view/template-editor.php (added)
Legend:
- Unmodified
- Added
- Removed
-
mediaembedder/trunk/mediaembedder.php
r469902 r481551 5 5 Plugin URI: http://cj-jackson.com/ 6 6 Description: An efficient, flexible multimedia embedder 7 Version: 2011.12. 017 Version: 2011.12.28 8 8 Author: Christopher John Jackson 9 9 Author URI: http://cj-jackson.com/ … … 32 32 * SOFTWARE. 33 33 */ 34 35 34 include "list.php"; 36 35 37 36 class mediaembedder { 37 38 38 static private $meta; 39 39 static private $url; 40 40 static private $dom; 41 41 static private $param; 42 42 43 static public function init() { 43 44 global $wpdb; 44 wp_embed_register_handler('mediaembedder', 45 '#http(s?)://(.*)#i', 46 array(__CLASS__, 'handler')); 47 $sql = file_get_contents(dirname(__FILE__).'/sql/main.sql'); 45 wp_embed_register_handler('mediaembedder', '#http(s?)://(.*)#i', array(__CLASS__, 'handler')); 46 $sql = file_get_contents(dirname(__FILE__) . '/sql/main.sql'); 48 47 $sql = str_replace("__prefix__", $wpdb->base_prefix, $sql); 49 48 $wpdb->query($sql); 50 } 51 49 50 // Set up param 51 self::$param = self::cleanParam(); 52 53 wp_enqueue_script('jquery'); 54 } 55 56 static public function getParam() { 57 return self::$param; 58 } 59 52 60 static public function handler($matches, $attr, $url, $rawattr) { 53 61 self::$meta = array(); … … 56 64 unset($matches); 57 65 global $mediaembedderlist; 58 foreach ($mediaembedderlist as $list) {66 foreach ($mediaembedderlist as $list) { 59 67 $pattern = self::patternWrap($list['re']); 60 if (preg_match($pattern, $url, $matches)) {61 if (file_exists(self::module($list['module']))) {68 if (preg_match($pattern, $url, $matches)) { 69 if (file_exists(self::module($list['module']))) { 62 70 include_once self::module($list['module']); 63 if (class_exists('me_'.$list['module'])) {71 if (class_exists('me_' . $list['module'])) { 64 72 $method = 'execute'; 65 if (isset($list['method'])) {73 if (isset($list['method'])) { 66 74 $method = $list['method']; 67 75 } 68 if (method_exists('me_'.$list['module'], $method)) {76 if (method_exists('me_' . $list['module'], $method)) { 69 77 $code = call_user_func( 70 array('me_'.$list['module'], $method), 71 $matches, $url); 72 if(!$code) { 78 array('me_' . $list['module'], $method), $matches, $url); 79 if (!$code) { 73 80 return false; 74 81 } 75 if (self::title() && self::title_enabled())76 return self::title() ."\n".$code;82 if (self::title() && self::title_enabled()) 83 return self::title() . "\n" . $code; 77 84 else 78 85 return $code; … … 84 91 return false; 85 92 } 86 93 87 94 static private function patternWrap($pattern, $count = false) { 88 95 return "#" . str_replace("#", "\#", $pattern) . "#i"; 89 96 } 90 97 91 98 static public function module($module) { 92 99 return dirname(__FILE__) . '/module/' . $module . '.php'; 93 100 } 94 101 95 102 static public function template($module) { 96 103 $module = substr($module, 3); 97 $custompath = WP_CONTENT_DIR . '/mediaembedder/template/' . $module.'.php';98 if (file_exists($custompath)) {104 $custompath = WP_CONTENT_DIR . '/mediaembedder/template/' . $module . '.php'; 105 if (file_exists($custompath)) { 99 106 return $custompath; 100 107 } else { … … 102 109 } 103 110 } 104 111 105 112 static public function width() { 106 if (is_numeric(get_option('mediaembedder_width'))) {113 if (is_numeric(get_option('mediaembedder_width'))) { 107 114 return (int) get_option('mediaembedder_width'); 108 115 } else { … … 110 117 } 111 118 } 112 119 113 120 static public function height() { 114 if (is_numeric(get_option('mediaembedder_height'))) {121 if (is_numeric(get_option('mediaembedder_height'))) { 115 122 return (int) get_option('mediaembedder_height'); 116 123 } else { … … 118 125 } 119 126 } 120 127 121 128 static public function title_enabled() { 122 if (get_option('mediaembedder_title_enabled') == '1') {129 if (get_option('mediaembedder_title_enabled') == '1') { 123 130 return true; 124 131 } else { … … 126 133 } 127 134 } 128 135 129 136 static public function title() { 130 if (isset(self::$meta['og:title'])) {137 if (isset(self::$meta['og:title'])) { 131 138 return self::$meta['og:title']; 132 } elseif (isset(self::$meta['title'])) {139 } elseif (isset(self::$meta['title'])) { 133 140 return self::$meta['title']; 134 141 } else { … … 136 143 } 137 144 } 138 145 139 146 static public function hasher($data) { 140 147 return hash('ripemd160', $data); 141 148 } 142 149 143 150 static public function get_or_setup_data($hash) { 144 151 global $wpdb; 145 152 $record = $wpdb->get_row( 146 153 $wpdb->prepare( 147 "SELECT * FROM ".$wpdb->base_prefix."mediaembedder_cache 148 WHERE hash=%s", 149 array($hash) 154 "SELECT * FROM " . $wpdb->base_prefix . "mediaembedder_cache 155 WHERE hash=%s", array($hash) 150 156 ), ARRAY_A 151 157 ); 152 if ($record) {158 if ($record) { 153 159 $data = json_decode($record['data'], true); 154 160 } else { … … 157 163 $nodes = self::$dom->getElementsByTagName('meta'); 158 164 $meta = array(); 159 foreach ($nodes as $node) {160 if ($node->getAttribute('property') != "") {165 foreach ($nodes as $node) { 166 if ($node->getAttribute('property') != "") { 161 167 $meta[strtolower($node->getAttribute('property'))] = $node->getAttribute('content'); 162 168 } 163 if ($node->getAttribute('name') != "") {169 if ($node->getAttribute('name') != "") { 164 170 $meta[strtolower($node->getAttribute('name'))] = $node->getAttribute('content'); 165 171 } … … 168 174 $datajson = json_encode($data); 169 175 $wpdb->insert( 170 $wpdb->base_prefix.'mediaembedder_cache', 171 array( 172 'hash' => $hash, 173 'data' => $datajson 174 ), 175 array( 176 '%s', 177 '%s' 176 $wpdb->base_prefix . 'mediaembedder_cache', array( 177 'hash' => $hash, 178 'data' => $datajson 179 ), array( 180 '%s', 181 '%s' 178 182 ) 179 183 ); … … 182 186 return $data; 183 187 } 184 188 185 189 static public function setdata($hash, $data) { 186 190 global $wpdb; 187 191 $data = json_encode($data); 188 192 $wpdb->update( 189 $wpdb->base_prefix.'mediaembedder_cache', 190 array( 191 'data' => $data 192 ), 193 array( 194 'hash' => $hash 195 ), 196 array( 197 '%s', 198 ), 199 array( 200 '%s', 193 $wpdb->base_prefix . 'mediaembedder_cache', array( 194 'data' => $data 195 ), array( 196 'hash' => $hash 197 ), array( 198 '%s', 199 ), array( 200 '%s', 201 201 ) 202 202 ); 203 203 } 204 205 static public function dom_get($url, $tag, $property_name, 206 $property_value = false, $content_name = false) { 207 if(self::$dom && self::$url == $url) { 204 205 static public function dom_get($url, $tag, $property_name, $property_value = false, $content_name = false) { 206 if (self::$dom && self::$url == $url) { 208 207 $dom = self::$dom; 209 208 } else { … … 212 211 } 213 212 $nodes = $dom->getElementsByTagName($tag); 214 foreach ($nodes as $node) {215 if (!$property_value) {213 foreach ($nodes as $node) { 214 if (!$property_value) { 216 215 return $node->getAttribute($property_name); 217 216 } 218 if ($node->getAttribute($property_name) == $property_value) {217 if ($node->getAttribute($property_name) == $property_value) { 219 218 return $node->getAttribute($content_name); 220 219 } … … 222 221 return false; 223 222 } 224 225 static public function doms_get($string, $tag, $property_name, 226 $property_value = false, $content_name = false) { 223 224 static public function doms_get($string, $tag, $property_name, $property_value = false, $content_name = false) { 227 225 $dom = new DOMDocument(); 228 226 @$dom->loadHTML($string); 229 227 $nodes = $dom->getElementsByTagName($tag); 230 foreach ($nodes as $node) {231 if (!$property_value) {228 foreach ($nodes as $node) { 229 if (!$property_value) { 232 230 return $node->getAttribute($property_name); 233 231 } 234 if ($node->getAttribute($property_name) == $property_value) {232 if ($node->getAttribute($property_name) == $property_value) { 235 233 return $node->getAttribute($content_name); 236 234 } … … 238 236 return false; 239 237 } 240 238 241 239 static public function activate() { 242 240 add_option('mediaembedder_title_enabled', 0); … … 244 242 add_option('mediaembedder_height', 320); 245 243 } 246 244 247 245 static public function admin_page() { 248 add_ submenu_page('options-general.php', 'MediaEmbedder',249 'MediaEmbedder', 'manage_options', 'media-embedder',250 array(__CLASS__, 'settings'));251 246 add_menu_page('MediaEmbedder', 'MediaEmbedder', 'manage_options', 'mediaembedder.php', array(__CLASS__, 'settings')); 247 add_submenu_page('mediaembedder.php', 'MediaEmbedder', 'MediaEmbedder', 'manage_options', 'mediaembedder.php', array(__CLASS__, 'settings')); 248 add_submenu_page('mediaembedder.php', 'Template Editor', 'Template Editor', 'manage_options', 'mediaembedder-template.php', array(__CLASS__, 'template_editor')); 249 252 250 $settings = array( 253 251 'mediaembedder_title_enabled', … … 260 258 unset($settings); 261 259 } 262 260 263 261 static public function settings() { 264 262 $width = self::width(); 265 263 $height = self::height(); 266 264 $title_enabled = ''; 267 if (self::title_enabled()) {265 if (self::title_enabled()) { 268 266 $title_enabled = 'checked'; 269 267 } 270 include dirname(__FILE__). '/settings.php'; 271 } 268 include dirname(__FILE__) . '/view/settings.php'; 269 } 270 271 static public function template_editor() { 272 include dirname(__FILE__) . '/view/template-editor.php'; 273 } 274 275 static private function cleanParam() { 276 $param = array_merge($_POST, $_GET); 277 278 $param = is_array($param) ? 279 array_map('stripslashes_deep', $param) : 280 stripslashes($param); 281 282 return $param; 283 } 284 272 285 } 273 286 … … 275 288 register_activation_hook(__FILE__, array('mediaembedder', 'activate')); 276 289 add_action('admin_menu', array('mediaembedder', 'admin_page')); 290 291 require_once 'api.php'; -
mediaembedder/trunk/readme.txt
r469902 r481551 4 4 Tags: media, embed, video, photo, image, audio 5 5 Requires at least: 3.2.0 6 Tested up to: 3. 2.17 Stable tag: 2011.12. 016 Tested up to: 3.3 7 Stable tag: 2011.12.28 8 8 9 9 Multimedia Embedder that relies on template, unlike oEmbed, therefore allowing … … 63 63 == Changelog == 64 64 65 = 2011.12.28 = 66 * Added Template Editor into Admin-CP. 67 65 68 = 2011.12.01 = 66 69 * Fixed Screenr regular expression.
Note: See TracChangeset
for help on using the changeset viewer.