Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Scraper_Class {
- var $title;
- var $url;
- function fetch_content(){
- $this->title = $this->get_remote_title();
- }
- function get_remote_title(){
- //...
- return $title;
- }
- }
- Website_Preset_Class extends Scraper_Class {
- static function can_load_url($input_url){
- //...
- return true;
- }
- function get_remote_title(){
- //...
- return $title;
- }
- }
- function get_scraper{
- $scraper = new Scraper_Class();
- foreach($presets as $preset){
- if ( $preset::can_load_url($url) ){
- $scraper = new preset();
- break; //we've got our preset
- }
- }
- }
- Scraper_Class {
- var $url;
- var $title;
- var $filters;
- function fetch_content(){
- $this->title = $this->get_remote_title();
- //...
- $this->remove_temporary_filters(); //<-- HERE
- }
- function get_remote_title(){
- //...
- return apply_filters('get_remote_title',$title);
- }
- function add_temporary_filter($tag,$function_to_add,$priority = 10,$accepted_args = 1){
- $this->filters = array($tag,function_to_add,priority);
- add_filter($tag,function_to_add,priority);
- }
- function remove_temporary_filters(){
- foreach((array)$this->filters as $filter){
- remove_filter($filter[0],$filter[1],$filter[2]);
- }
- }
- }
- Website_Preset_Class { //not extending Scraper_Class
- function __construct($scraper){
- if ( self::can_load_url($scraper->url) ){
- $scraper->add_temporary_filter('get_remote_title',array($this,'get_preset_title');
- }
- }
- static function can_load_url($input_url){
- //...
- return true;
- }
- function get_preset_title(){
- //...
- return $title;
- }
- }
Add Comment
Please, Sign In to add comment