Guest User

Untitled

a guest
Nov 24th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. Scraper_Class {
  2. var $title;
  3. var $url;
  4. function fetch_content(){
  5. $this->title = $this->get_remote_title();
  6. }
  7. function get_remote_title(){
  8. //...
  9. return $title;
  10. }
  11. }
  12.  
  13. Website_Preset_Class extends Scraper_Class {
  14. static function can_load_url($input_url){
  15. //...
  16. return true;
  17. }
  18. function get_remote_title(){
  19. //...
  20. return $title;
  21. }
  22. }
  23.  
  24. function get_scraper{
  25. $scraper = new Scraper_Class();
  26. foreach($presets as $preset){
  27. if ( $preset::can_load_url($url) ){
  28. $scraper = new preset();
  29. break; //we've got our preset
  30. }
  31. }
  32. }
  33.  
  34. Scraper_Class {
  35. var $url;
  36. var $title;
  37. var $filters;
  38.  
  39. function fetch_content(){
  40. $this->title = $this->get_remote_title();
  41. //...
  42. $this->remove_temporary_filters(); //<-- HERE
  43. }
  44.  
  45. function get_remote_title(){
  46. //...
  47. return apply_filters('get_remote_title',$title);
  48. }
  49. function add_temporary_filter($tag,$function_to_add,$priority = 10,$accepted_args = 1){
  50. $this->filters = array($tag,function_to_add,priority);
  51. add_filter($tag,function_to_add,priority);
  52. }
  53. function remove_temporary_filters(){
  54. foreach((array)$this->filters as $filter){
  55. remove_filter($filter[0],$filter[1],$filter[2]);
  56. }
  57.  
  58. }
  59. }
  60.  
  61. Website_Preset_Class { //not extending Scraper_Class
  62. function __construct($scraper){
  63. if ( self::can_load_url($scraper->url) ){
  64. $scraper->add_temporary_filter('get_remote_title',array($this,'get_preset_title');
  65. }
  66. }
  67. static function can_load_url($input_url){
  68. //...
  69. return true;
  70. }
  71. function get_preset_title(){
  72. //...
  73. return $title;
  74. }
  75. }
Add Comment
Please, Sign In to add comment