widget.class.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. /**
  3. * @author ThemePunch <info@themepunch.com>
  4. * @link http://www.themepunch.com/
  5. * @copyright 2015 ThemePunch
  6. */
  7. if( !defined( 'ABSPATH') ) exit();
  8. class RevSliderWidget extends WP_Widget {
  9. public function __construct(){
  10. // widget actual processes
  11. $widget_ops = array('classname' => 'widget_revslider', 'description' => __('Displays a revolution slider on the page','revslider') );
  12. parent::__construct('rev-slider-widget', __('Revolution Slider','revslider'), $widget_ops);
  13. }
  14. /**
  15. *
  16. * the form
  17. */
  18. public function form($instance) {
  19. try {
  20. $slider = new RevSlider();
  21. $arrSliders = $slider->getArrSlidersShort();
  22. }catch(Exception $e){}
  23. if(empty($arrSliders)){
  24. echo __("No sliders found, Please create a slider",'revslider');
  25. }else{
  26. $field = "rev_slider";
  27. $fieldPages = "rev_slider_pages";
  28. $fieldCheck = "rev_slider_homepage";
  29. $fieldTitle = "rev_slider_title";
  30. $sliderID = RevSliderFunctions::getVal($instance, $field);
  31. $homepage = RevSliderFunctions::getVal($instance, $fieldCheck);
  32. $pagesValue = RevSliderFunctions::getVal($instance, $fieldPages);
  33. $title = RevSliderFunctions::getVal($instance, $fieldTitle);
  34. $fieldID = $this->get_field_id( $field );
  35. $fieldName = $this->get_field_name( $field );
  36. $select = RevSliderFunctions::getHTMLSelect($arrSliders,$sliderID,'name="'.$fieldName.'" id="'.$fieldID.'"',true);
  37. $fieldID_check = $this->get_field_id( $fieldCheck );
  38. $fieldName_check = $this->get_field_name( $fieldCheck );
  39. $checked = "";
  40. if($homepage == "on")
  41. $checked = "checked='checked'";
  42. $fieldPages_ID = $this->get_field_id( $fieldPages );
  43. $fieldPages_Name = $this->get_field_name( $fieldPages );
  44. $fieldTitle_ID = $this->get_field_id( $fieldTitle );
  45. $fieldTitle_Name = $this->get_field_name( $fieldTitle );
  46. ?>
  47. <label for="<?php echo $fieldTitle_ID?>"><?php _e("Title",'revslider')?>:</label>
  48. <input type="text" name="<?php echo $fieldTitle_Name?>" id="<?php echo $fieldTitle_ID?>" value="<?php echo $title?>" class="widefat">
  49. <br><br>
  50. <?php _e("Choose Slider",'revslider')?>: <?php echo $select?>
  51. <div style="padding-top:10px;"></div>
  52. <label for="<?php echo $fieldID_check?>"><?php _e("Home Page Only",'revslider')?>:</label>
  53. <input type="checkbox" name="<?php echo $fieldName_check?>" id="<?php echo $fieldID_check?>" <?php echo $checked?> >
  54. <br><br>
  55. <label for="<?php echo $fieldPages_ID?>"><?php _e("Pages: (example: 2,10)",'revslider')?></label>
  56. <input type="text" name="<?php echo $fieldPages_Name?>" id="<?php echo $fieldPages_ID?>" value="<?php echo $pagesValue?>">
  57. <div style="padding-top:10px;"></div>
  58. <?php
  59. } //else
  60. }
  61. /**
  62. *
  63. * update
  64. */
  65. public function update($new_instance, $old_instance) {
  66. return($new_instance);
  67. }
  68. /**
  69. *
  70. * widget output
  71. */
  72. public function widget($args, $instance) {
  73. $sliderID = RevSliderFunctions::getVal($instance, "rev_slider");
  74. $title = RevSliderFunctions::getVal($instance, "rev_slider_title");
  75. $homepageCheck = RevSliderFunctions::getVal($instance, "rev_slider_homepage");
  76. $homepage = "";
  77. if($homepageCheck == "on")
  78. $homepage = "homepage";
  79. $pages = RevSliderFunctions::getVal($instance, "rev_slider_pages");
  80. if(!empty($pages)){
  81. if(!empty($homepage))
  82. $homepage .= ",";
  83. $homepage .= $pages;
  84. }
  85. if(empty($sliderID))
  86. return(false);
  87. $slider = new RevSliderSlider();
  88. $slider->initByID($sliderID);
  89. $disable_on_mobile = $slider->getParam("disable_on_mobile","off");
  90. if($disable_on_mobile == 'on'){
  91. $mobile = (strstr($_SERVER['HTTP_USER_AGENT'],'Android') || strstr($_SERVER['HTTP_USER_AGENT'],'webOS') || strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') ||strstr($_SERVER['HTTP_USER_AGENT'],'iPod') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad') || strstr($_SERVER['HTTP_USER_AGENT'],'Windows Phone') || wp_is_mobile()) ? true : false;
  92. if($mobile) return false;
  93. }
  94. //widget output
  95. $beforeWidget = RevSliderFunctions::getVal($args, "before_widget");
  96. $afterWidget = RevSliderFunctions::getVal($args, "after_widget");
  97. $beforeTitle = RevSliderFunctions::getVal($args, "before_title");
  98. $afterTitle = RevSliderFunctions::getVal($args, "after_title");
  99. echo $beforeWidget;
  100. if(!empty($title))
  101. echo $beforeTitle.$title.$afterTitle;
  102. RevSliderOutput::putSlider($sliderID,$homepage);
  103. add_action('wp_head', array($this,'writeCSS'));
  104. echo $afterWidget;
  105. }
  106. public function writeCSS(){
  107. }
  108. }
  109. /**
  110. * old classname extends new one (old classnames will be obsolete soon)
  111. * @since: 5.0
  112. **/
  113. class RevSlider_Widget extends RevSliderWidget {}
  114. ?>