Changeset 390809
- Timestamp:
- 05/30/2011 03:11:56 PM (15 years ago)
- Location:
- user-agent-theme-switcher/trunk
- Files:
-
- 1 added
- 3 edited
-
UserAgentThemeSwitcher.php (modified) (2 diffs)
-
UserAgentThemeSwitcherData.php (modified) (16 diffs)
-
browsers.xml (modified) (16 diffs)
-
icon/rockmelt.png (added)
Legend:
- Unmodified
- Added
- Removed
-
user-agent-theme-switcher/trunk/UserAgentThemeSwitcher.php
r388831 r390809 212 212 $rules = $this->database->getConfiguratedTemplates(); 213 213 $themes = get_themes(); 214 $tags = $this->database->get Tags();214 $tags = $this->database->getWebTags(); 215 215 216 216 include('template/'.UserAgentThemeSwitcher::PAGE_TEMPLATE.'.php'); … … 346 346 */ 347 347 private function getParameter($parameterName, $isNull = false) { 348 if(isset($_REQUEST[$parameterName])) {349 return $_REQUEST[$parameterName];350 } else {351 if($isNull === true) {352 return null;353 } else {354 return '';355 }356 }348 if(isset($_REQUEST[$parameterName])) { 349 return $_REQUEST[$parameterName]; 350 } else { 351 if($isNull === true) { 352 return null; 353 } else { 354 return ''; 355 } 356 } 357 357 }//getParameter 358 358 }//UserAgentThemeSwitcher -
user-agent-theme-switcher/trunk/UserAgentThemeSwitcherData.php
r388831 r390809 56 56 */ 57 57 public function __construct(wpdb $connection = null, $tableprefix = '') { 58 $this->connection = $connection;59 $this->tablePrefix = $tableprefix;60 61 $this->generateBrowsers();58 $this->connection = $connection; 59 $this->tablePrefix = $tableprefix; 60 61 $this->generateBrowsers(); 62 62 }//__construct 63 63 … … 69 69 */ 70 70 public function updateDatabase($version) { 71 $installedVersion = get_option(UserAgentThemeSwitcherData::VERSION_KEY, 0);72 73 if($installedVersion == 0) {74 $this->createDatabase($version);75 }76 77 if($installedVersion != $version) {78 if($version != 0) {79 add_option(UserAgentThemeSwitcherData::VERSION_KEY, $version);80 }81 }71 $installedVersion = get_option(UserAgentThemeSwitcherData::VERSION_KEY, 0); 72 73 if($installedVersion == 0) { 74 $this->createDatabase($version); 75 } 76 77 if($installedVersion != $version) { 78 if($version != 0) { 79 add_option(UserAgentThemeSwitcherData::VERSION_KEY, $version); 80 } 81 } 82 82 }//updateDatabase 83 83 … … 88 88 */ 89 89 private function createDatabase($version = 0) { 90 $sql = 'CREATE TABLE IF NOT EXISTS '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE.' (';91 $sql .= '`id` INT NOT NULL AUTO_INCREMENT,';92 $sql .= '`useragent` VARCHAR(255) NOT NULL,';93 $sql .= 'PRIMARY KEY (`id`)';94 $sql .= ') ENGINE=MYISAM;';95 $this->connection->get_results($sql);96 97 $sql = 'CREATE TABLE IF NOT EXISTS '.$this->tablePrefix.UserAgentThemeSwitcherData::BROWSERS_TABLE.' (';98 $sql .= '`code` varchar(20) NOT NULL,';99 $sql .= '`theme` varchar(50) DEFAULT NULL,';100 $sql .= 'PRIMARY KEY (`code`)';101 $sql .= ') ENGINE=MyISAM;';102 $this->connection->get_results($sql);103 104 add_option(UserAgentThemeSwitcherData::DEBUG_KEY, 'false');105 add_option(UserAgentThemeSwitcherData::VERSION_KEY, $version);90 $sql = 'CREATE TABLE IF NOT EXISTS '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE.' ('; 91 $sql .= '`id` INT NOT NULL AUTO_INCREMENT,'; 92 $sql .= '`useragent` VARCHAR(255) NOT NULL,'; 93 $sql .= 'PRIMARY KEY (`id`)'; 94 $sql .= ') ENGINE=MYISAM;'; 95 $this->connection->get_results($sql); 96 97 $sql = 'CREATE TABLE IF NOT EXISTS '.$this->tablePrefix.UserAgentThemeSwitcherData::BROWSERS_TABLE.' ('; 98 $sql .= '`code` varchar(20) NOT NULL,'; 99 $sql .= '`theme` varchar(50) DEFAULT NULL,'; 100 $sql .= 'PRIMARY KEY (`code`)'; 101 $sql .= ') ENGINE=MyISAM;'; 102 $this->connection->get_results($sql); 103 104 add_option(UserAgentThemeSwitcherData::DEBUG_KEY, 'false'); 105 add_option(UserAgentThemeSwitcherData::VERSION_KEY, $version); 106 106 }//createDatabase 107 107 … … 112 112 */ 113 113 public function getBrowsers() { 114 return $this->browsers;114 return $this->browsers; 115 115 }//getBrowsers 116 116 … … 121 121 */ 122 122 public function getBrowsersWithoutTheme() { 123 $countBrowsers = count($this->browsers);124 $browsers = array();125 126 for($i = 0; $i < $countBrowsers; $i++) {127 if(!$this->browsers[$i]->isThemeByCode() && !$this->browsers[$i]->hasTag('spider')) {128 $browsers[] = $this->browsers[$i];129 }130 }131 132 return $browsers;123 $countBrowsers = count($this->browsers); 124 $browsers = array(); 125 126 for($i = 0; $i < $countBrowsers; $i++) { 127 if(!$this->browsers[$i]->isThemeByCode() && !$this->browsers[$i]->hasTag('spider')) { 128 $browsers[] = $this->browsers[$i]; 129 } 130 } 131 132 return $browsers; 133 133 }//getBrowsersWithoutTheme 134 134 … … 139 139 */ 140 140 public function getBrowsersWithTheme() { 141 $countBrowsers = count($this->browsers);142 $browsers = array();143 144 for($i = 0; $i < $countBrowsers; $i++) {145 if($this->browsers[$i]->hasTheme()) {146 $browsers[] = $this->browsers[$i];147 }148 }149 150 return $browsers;141 $countBrowsers = count($this->browsers); 142 $browsers = array(); 143 144 for($i = 0; $i < $countBrowsers; $i++) { 145 if($this->browsers[$i]->hasTheme()) { 146 $browsers[] = $this->browsers[$i]; 147 } 148 } 149 150 return $browsers; 151 151 }//getBrowsersWithTheme 152 152 … … 157 157 */ 158 158 public function getTags() { 159 $tags = array(); 160 $countBrowsers = count($this->browsers); 161 162 for($i = 0; $i < $countBrowsers; $i++) { 163 for($j = 0; $j < count($this->browsers[$i]->getTags()); $j++) { 164 if(!in_array($this->browsers[$i]->getTag($j), $tags)) { 165 $tags[] = $this->browsers[$i]->getTag($j); 166 } 167 } 159 $tags = array(); 160 $countBrowsers = count($this->browsers); 161 162 for($i = 0; $i < $countBrowsers; $i++) { 163 for($j = 0; $j < count($this->browsers[$i]->getTags()); $j++) { 164 if(!in_array($this->browsers[$i]->getTag($j), $tags)) { 165 $tags[] = $this->browsers[$i]->getTag($j); 166 } 167 } 168 } 169 170 return $tags; 171 }//getTags 172 173 174 175 public function getWebTags() { 176 $tags = $this->getTags(); 177 $webTags = array(); 178 179 for($i = 0; $i < count($tags); $i++) { 180 if($tags[$i] != 'spider') { 181 $webTags[] = $tags[$i]; 182 } 183 } 184 185 return $webTags; 168 186 } 169 170 return $tags; 171 }//getTags 187 172 188 173 189 … … 177 193 */ 178 194 public function getConfiguratedTemplates() { 179 $sql = 'SELECT * FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::BROWSERS_TABLE;180 $results = $this->connection->get_results($sql);181 182 return $results;195 $sql = 'SELECT * FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::BROWSERS_TABLE; 196 $results = $this->connection->get_results($sql); 197 198 return $results; 183 199 }//getConfiguratedTemplates 184 200 … … 189 205 */ 190 206 public function addBrowser(BrowserUA $browser) { 191 $this->browsers[] = $browser;207 $this->browsers[] = $browser; 192 208 }//addBrowser 193 209 … … 199 215 */ 200 216 public function addRule($code, $theme) { 201 $sql = 'INSERT INTO '.$this->tablePrefix.UserAgentThemeSwitcherData::BROWSERS_TABLE.' (code, theme) VALUES("'.$code.'", "'.$theme.'")';202 $this->connection->get_results($sql);203 $this->generateBrowsers();217 $sql = 'INSERT INTO '.$this->tablePrefix.UserAgentThemeSwitcherData::BROWSERS_TABLE.' (code, theme) VALUES("'.$code.'", "'.$theme.'")'; 218 $this->connection->get_results($sql); 219 $this->generateBrowsers(); 204 220 }//addTemplateToBrowser 205 221 … … 209 225 */ 210 226 public function truncateDebugUserAgents() { 211 $sql = 'TRUNCATE TABLE '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE;212 $this->connection->get_results($sql);227 $sql = 'TRUNCATE TABLE '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE; 228 $this->connection->get_results($sql); 213 229 }//truncateDebugUserAgents 214 230 … … 219 235 */ 220 236 public function deleteRule($rule) { 221 $sql = 'DELETE FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::BROWSERS_TABLE.' WHERE code = "'.$rule.'"';222 $this->connection->get_results($sql);223 $this->generateBrowsers();237 $sql = 'DELETE FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::BROWSERS_TABLE.' WHERE code = "'.$rule.'"'; 238 $this->connection->get_results($sql); 239 $this->generateBrowsers(); 224 240 }//deleteRule 225 241 … … 230 246 */ 231 247 public function addDebugUserAgent($useragent) { 232 $sql = 'SELECT id FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE.' where useragent = "'.$useragent.'"';233 $exists = $this->connection->get_results($sql);234 235 if($exists == null) {236 $sql = 'INSERT INTO '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE.' (useragent) VALUES ("'.$useragent.'")';237 $this->connection->get_results($sql);238 }248 $sql = 'SELECT id FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE.' where useragent = "'.$useragent.'"'; 249 $exists = $this->connection->get_results($sql); 250 251 if($exists == null) { 252 $sql = 'INSERT INTO '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE.' (useragent) VALUES ("'.$useragent.'")'; 253 $this->connection->get_results($sql); 254 } 239 255 }//addDebugUserAgent 240 256 … … 245 261 */ 246 262 public function getDebugUserAgents() { 247 $sql = 'SELECT * FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE;248 $results = $this->connection->get_results($sql);249 250 return $results;263 $sql = 'SELECT * FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE; 264 $results = $this->connection->get_results($sql); 265 266 return $results; 251 267 }//getDebugUserAgents 252 268 … … 257 273 */ 258 274 public function deleteUserAgent($id) { 259 $sql = 'DELETE FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE.' WHERE id = "'.$id.'"';260 $this->connection->get_results($sql);275 $sql = 'DELETE FROM '.$this->tablePrefix.UserAgentThemeSwitcherData::USERAGENTS_TABLE.' WHERE id = "'.$id.'"'; 276 $this->connection->get_results($sql); 261 277 }//deleteUserAgent 262 278 … … 268 284 $this->browsers = array(); 269 285 270 $this->addBrowser(new BrowserUA('chrome', 'Google Chrome', null, 'Mozilla\/5.0 \(.*\) AppleWebKit\/.* \(KHTML, like Gecko\) Chrome\/.* Safari\/.*', 'webkit'));271 $this->addBrowser(new BrowserUA('safaridesktop', 'Safari', null, 'Mozilla\/5\.0 \(.*; .*\) AppleWebKit\/.* \(KHTML, like Gecko\) Version\/[\d\.]+ Safari\/.*', 'webkit'));272 $this->addBrowser(new BrowserUA('firefox', 'Firefox', null, 'Mozilla\/5\.0 \(.*\) Gecko\/.* Firefox\/.*', 'gecko'));273 $this->addBrowser(new BrowserUA('safarimobile', 'Safari Mobile', null, 'Mozilla\/5.0 \(.*\) AppleWebKit\/.* \(KHTML, like Gecko\)( Version\/.*){0,1} Mobile[\/A-Z0-9]{0,}( Safari\/.*){0,1}', 'webkit,mobile'));274 $this->addBrowser(new BrowserUA('ie6', 'Internet Explorer 6', null, 'Mozilla\/4\.0 \(compatible; MSIE 6\.0;.*\).*', 'ie'));275 $this->addBrowser(new BrowserUA('ie7', 'Internet Explorer 7', null, 'Mozilla\/4\.0 \(compatible; MSIE 7\.0;.*\).*', 'ie'));276 $this->addBrowser(new BrowserUA('ie8', 'Internet Explorer 8', null, 'Mozilla\/4\.0 \(compatible; MSIE 8\.0;.*\).*', 'ie'));277 $this->addBrowser(new BrowserUA('ie9', 'Internet Explorer 9', null, 'Mozilla\/5\.0 \(compatible; MSIE 9\.0;.*\).*', 'ie'));278 $this->addBrowser(new BrowserUA('operamini', 'Opera Mini', null, 'Opera\/.* \(.*Opera Mini\/.*\).*', 'opera,mobile'));279 $this->addBrowser(new BrowserUA('camino', 'Camino', null, 'Mozilla\/5.0 \(.*\) Gecko\/[\d]+ Camino\/[\d\.]+ \(like Firefox\/[\d\.]+\)', 'gecko'));280 $this->addBrowser(new BrowserUA('operadesktop', 'Opera', null, 'Opera\/[\d\.]+( ){0,1}\(.*\).*', 'opera'));281 $this->addBrowser(new BrowserUA('iceweasel', 'IceWeasel', null, 'Mozilla\/5.0 \(.*\) Gecko\/[\d]+ Iceweasel\/[\d\.]+ \(Debian-.*\).*', 'gecko'));282 283 $this->addBrowser(new BrowserUA('ipad', 'iPad', null, 'Mozilla\/5.0 \(iPad; .*\).*', 'tablet'));284 $this->addBrowser(new BrowserUA('kindle', 'Amazon Kindle', null, 'Mozilla\/5\.0 \(.*\) AppleWebKit\/.* \(KHTML, like Gecko(.*) Version\/[\d\.]+ Kindle\/.*', 'tablet'));285 $this->addBrowser(new BrowserUA('wordpressweb', 'Wordpress Web', null, 'WordPress\/(.*\)$', 'spider'));286 $this->addBrowser(new BrowserUA('wordpressandroid', 'Wordpress Android', null, 'wp-android\/(.*\)$', 'spider'));287 286 $this->addBrowser(new BrowserUA('googlebot', 'GoogleBot', null, '^Mozilla\/5\.0 \(compatible; Googlebot\/.\..; \+http:\/\/www\.google\.com\/bot\.html\)$', 'google')); 287 $this->addBrowser(new BrowserUA('ie6', 'Internet Explorer 6', null, '^Mozilla\/4\.0 \(compatible; MSIE 6\.0;.*\).*$', 'ie')); 288 $this->addBrowser(new BrowserUA('ie7', 'Internet Explorer 7', null, '^Mozilla\/4\.0 \(compatible; MSIE 7\.0;.*\).*$', 'ie')); 289 $this->addBrowser(new BrowserUA('ie8', 'Internet Explorer 8', null, '^Mozilla\/4\.0 \(compatible; MSIE 8\.0;.*\).*$', 'ie')); 290 $this->addBrowser(new BrowserUA('ie9', 'Internet Explorer 9', null, '^Mozilla\/5\.0 \(compatible; MSIE 9\.0;.*\).*$', 'ie')); 291 $this->addBrowser(new BrowserUA('chrome', 'Google Chrome', null, '^Mozilla\/5.0 \(.*\) AppleWebKit\/.* \(KHTML, like Gecko\) Chrome\/.* Safari\/.*$', 'webkit')); 292 $this->addBrowser(new BrowserUA('safaridesktop', 'Safari', null, '^Mozilla\/5\.0 \(.*; .*\) AppleWebKit\/.* \(KHTML, like Gecko\) Version\/[\d\.]+ Safari\/.*$', 'webkit')); 293 $this->addBrowser(new BrowserUA('firefox', 'Firefox', null, '^Mozilla\/5\.0 \(.*\) Gecko\/.* Firefox\/.*$', 'gecko')); 294 $this->addBrowser(new BrowserUA('operadesktop', 'Opera', null, '^Opera\/[\d\.]+( ){0,1}\(.*\).*$', 'opera')); 295 $this->addBrowser(new BrowserUA('safarimobile', 'Safari Mobile', null, '^Mozilla\/5.0 \(.*\) AppleWebKit\/.* \(KHTML, like Gecko\)( Version\/.*){0,1} Mobile[\/A-Z0-9]{0,}( Safari\/.*){0,1}$', 'webkit,mobile')); 296 $this->addBrowser(new BrowserUA('operamini', 'Opera Mini', null, '^Opera\/.* \(.*Opera Mini\/.*\).*$', 'opera,mobile')); 297 $this->addBrowser(new BrowserUA('camino', 'Camino', null, '^Mozilla\/5.0 \(.*\) Gecko\/[\d]+ Camino\/[\d\.]+ \(like Firefox\/[\d\.]+\)$', 'gecko')); 298 299 $this->addBrowser(new BrowserUA('iceweasel', 'IceWeasel', null, '^Mozilla\/5.0 \(.*\) Gecko\/[\d]+ Iceweasel\/[\d\.]+ \(Debian-.*\).*$', 'gecko')); 300 $this->addBrowser(new BrowserUA('rockmelt', 'RockMelt', null, '^Mozilla\/5.0 \(Macintosh; .*\) AppleWebKit\/534\.24 \(KHTML, like Gecko\) RockMelt\/.* Chrome\/.* Safari\/.*$', 'webkit')); 301 302 $this->addBrowser(new BrowserUA('ipad', 'iPad', null, '^Mozilla\/5.0 \(iPad; .*\).*$', 'tablet')); 303 $this->addBrowser(new BrowserUA('kindle', 'Amazon Kindle', null, '^Mozilla\/5\.0 \(.*\) AppleWebKit\/.* \(KHTML, like Gecko(.*) Version\/[\d\.]+ Kindle\/.*$', 'tablet')); 304 288 305 $this->addBrowser(new BrowserUA('googlebotmobile', 'GoogleBot Mobile', null, '\(compatible; Googlebot-Mobile\/.\..; \+http:\/\/www\.google.com\/bot.html\)$', 'google,mobile')); 289 306 307 $this->addBrowser(new BrowserUA('wordpressandroid', 'Wordpress Android', null, '^wp-android\/(.*\)$', 'spider')); 308 $this->addBrowser(new BrowserUA('wordpressweb', 'Wordpress Web', null, '^WordPress\/.*$', 'spider')); 309 $this->addBrowser(new BrowserUA('java', 'Java', null, '^Java\/.*$', 'spider')); 310 $this->addBrowser(new BrowserUA('bitacoras', 'Bitacoras', null, '^Bitacoras.com\/2\.0 \(http:\/\/bitacoras\.com\)$', 'spider')); 311 312 290 313 $configuratedTemplates = $this->getConfiguratedTemplates(); 291 314 $countConfiguredBrowsers = count($configuratedTemplates); -
user-agent-theme-switcher/trunk/browsers.xml
r388831 r390809 6 6 <Tag>webkit</Tag> 7 7 </Tags> 8 <UserAgents>9 <UserAgent></UserAgent>10 </UserAgents>11 8 </Browser><Browser code="safaridesktop"> 12 9 <Name>Safari</Name> … … 15 12 <Tag>webkit</Tag> 16 13 </Tags> 17 <UserAgents>18 <UserAgent></UserAgent>19 </UserAgents>20 14 </Browser><Browser code="firefox"> 21 15 <Name>Firefox</Name> … … 24 18 <Tag>gecko</Tag> 25 19 </Tags> 26 <UserAgents>27 <UserAgent></UserAgent>28 </UserAgents>29 20 </Browser><Browser code="safarimobile"> 30 21 <Name>Safari Mobile</Name> … … 34 25 <Tag>mobile</Tag> 35 26 </Tags> 36 <UserAgents>37 <UserAgent></UserAgent>38 </UserAgents>39 27 </Browser><Browser code="ie6"> 40 28 <Name>Internet Explorer 6</Name> … … 43 31 <Tag>ie</Tag> 44 32 </Tags> 45 <UserAgents>46 <UserAgent></UserAgent>47 </UserAgents>48 33 </Browser> 49 34 <Browser code="ie7"> … … 53 38 <Tag>ie</Tag> 54 39 </Tags> 55 <UserAgents>56 <UserAgent></UserAgent>57 </UserAgents>58 40 </Browser> 59 41 <Browser code="ie8"> … … 63 45 <Tag>ie</Tag> 64 46 </Tags> 65 <UserAgents>66 <UserAgent></UserAgent>67 </UserAgents>68 47 </Browser> 69 48 <Browser code="ie9"> … … 73 52 <Tag>ie</Tag> 74 53 </Tags> 75 <UserAgents>76 <UserAgent></UserAgent>77 </UserAgents>78 54 </Browser> 79 55 <Browser code="operamini"> … … 84 60 <Tag>mobile</Tag> 85 61 </Tags> 86 <UserAgents>87 <UserAgent></UserAgent>88 </UserAgents>89 62 </Browser> 90 63 <Browser code="camino"> … … 94 67 <Tag>gecko</Tag> 95 68 </Tags> 96 <UserAgents>97 <UserAgent></UserAgent>98 </UserAgents>99 69 </Browser> 100 70 <Browser code="operadesktop"> … … 104 74 <Tag>opera</Tag> 105 75 </Tags> 106 <UserAgents>107 <UserAgent></UserAgent>108 </UserAgents>109 76 </Browser> 110 77 <Browser code="iceweasel"> … … 114 81 <Tag>gecko</Tag> 115 82 </Tags> 116 <UserAgents>117 <UserAgent></UserAgent>118 </UserAgents>119 83 </Browser> 120 84 <Browser code="ipad"> … … 124 88 <Tag>tablet</Tag> 125 89 </Tags> 126 <UserAgents>127 <UserAgent></UserAgent>128 </UserAgents>129 90 </Browser> 130 91 <Browser code="kindle"> … … 134 95 <Tag>tablet</Tag> 135 96 </Tags> 136 <UserAgents>137 <UserAgent></UserAgent>138 </UserAgents>139 97 </Browser> 140 98 <Browser code="wordpressweb"> 141 99 <Name>Wordpress Web</Name> 142 <Pattern> WordPress\/(.*\)$</Pattern>100 <Pattern>^WordPress\/.*$</Pattern> 143 101 <Tags> 144 102 <Tag>spider</Tag> 145 103 </Tags> 146 104 <UserAgents> 147 <UserAgent> </UserAgent>105 <UserAgent>WordPress/3.1.2; http://www.indalcasa.com</UserAgent> 148 106 </UserAgents> 149 107 </Browser> … … 154 112 <Tag>spider</Tag> 155 113 </Tags> 156 <UserAgents>157 <UserAgent></UserAgent>158 </UserAgents>159 114 </Browser> 160 115 <Browser code="googlebot"> … … 175 130 <Tag>mobile</Tag> 176 131 </Tags> 177 <UserAgents>178 <UserAgent></UserAgent>179 </UserAgents>180 132 </Browser> 181 133 </Browsers>
Note: See TracChangeset
for help on using the changeset viewer.