Turn the QR Code extension into a SimpleExtension, trim the boilerplate
This commit is contained in:
		
							parent
							
								
									0ca0a546e5
								
							
						
					
					
						commit
						f8765de7a9
					
				@ -6,34 +6,9 @@
 | 
				
			|||||||
 * 				Based on Artanis's Link to Image Extension <artanis.00@gmail.com>
 | 
					 * 				Based on Artanis's Link to Image Extension <artanis.00@gmail.com>
 | 
				
			||||||
 * 				Includes QRcode Perl CGI & PHP scripts ver. 0.50 [http://www.swetake.com/qr/qr_cgi_e.html]
 | 
					 * 				Includes QRcode Perl CGI & PHP scripts ver. 0.50 [http://www.swetake.com/qr/qr_cgi_e.html]
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
class QRImage implements Extension {
 | 
					class QRImage extends SimpleExtension {
 | 
				
			||||||
	var $theme;
 | 
						public function onDisplayingImage($event) {
 | 
				
			||||||
 | 
							$this->theme->links_block(make_http(make_link('image/'.$event->image->id)));
 | 
				
			||||||
	public function receive_event(Event $event) {
 | 
					 | 
				
			||||||
		global $config, $database, $page, $user;
 | 
					 | 
				
			||||||
		if(is_null($this->theme)) $this->theme = get_theme_object($this);
 | 
					 | 
				
			||||||
			if(($event instanceof DisplayingImageEvent)) {
 | 
					 | 
				
			||||||
				$this->theme->links_block($page, $this->data($event->image));
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private function hostify($str) {
 | 
					 | 
				
			||||||
		$str = str_replace(" ", "%20", $str);
 | 
					 | 
				
			||||||
		if(strpos($str, "ttp://") > 0) {
 | 
					 | 
				
			||||||
			return $str;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else {
 | 
					 | 
				
			||||||
			return "http://" . $_SERVER["HTTP_HOST"] . $str;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	private function data($image) {
 | 
					 | 
				
			||||||
		global $config;
 | 
					 | 
				
			||||||
		$i_image_id = int_escape($image->id);
 | 
					 | 
				
			||||||
		return array(
 | 
					 | 
				
			||||||
			'image_src'	=> $this->hostify('/image/'.$i_image_id));
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
add_event_listener(new QRImage());
 | 
					 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,12 +1,10 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
class QRImageTheme extends Themelet {
 | 
					class QRImageTheme extends Themelet {
 | 
				
			||||||
	public function links_block(Page $page, $data) {
 | 
						public function links_block($link) {
 | 
				
			||||||
		$image_src = $data['image_src'];
 | 
							global $page;
 | 
				
			||||||
		global $config, $user;
 | 
							$base_href = get_base_href();
 | 
				
			||||||
		$base_href = $config->get_string('base_href');
 | 
					 | 
				
			||||||
		$data_href = get_base_href();
 | 
					 | 
				
			||||||
		$page->add_block( new Block(
 | 
							$page->add_block( new Block(
 | 
				
			||||||
			"QR Code","<img src='".$data_href."/ext/qr_code/qr_img.php?d=".$image_src."&s=3' />","left",50));
 | 
								"QR Code","<img src='$base_href/ext/qr_code/qr_img.php?d=$link&s=3' />","left",50));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user