PageRenderTime 25ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/app/code/community/Nwdthemes/Revslider/Block/Revslider.php

https://bitbucket.org/maconeto/proman
PHP | 114 lines | 79 code | 19 blank | 16 comment | 25 complexity | df4a415b8099f25bb0e245365c500597 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. /**
  3. * Nwdthemes Revolution Slider Extension
  4. *
  5. * @package Revslider
  6. * @author Nwdthemes <mail@nwdthemes.com>
  7. * @link http://nwdthemes.com/
  8. * @copyright Copyright (c) 2014. Nwdthemes
  9. * @license http://themeforest.net/licenses/terms/regular
  10. */
  11. class Nwdthemes_Revslider_Block_Revslider extends Mage_Core_Block_Template {
  12. protected $_slider;
  13. protected $_content;
  14. protected function _construct() {
  15. parent::_construct();
  16. global $wpdb;
  17. global $revSliderVersion;
  18. spl_autoload_register( array(Mage::helper('nwdrevslider'), 'loadRevClasses'), true, true );
  19. $wpdb = Mage::helper('nwdrevslider/query');
  20. $revSliderVersion = RevSliderGlobals::SLIDER_REVISION;
  21. new RevSliderFront();
  22. Mage::helper('nwdrevslider/plugin')->loadPlugins();
  23. $this->setTemplate('nwdthemes/revslider/revslider.phtml');
  24. }
  25. protected function _renderSlider() {
  26. if ( is_null($this->_slider) ) {
  27. ob_start();
  28. $this->_slider = RevSliderOutput::putSlider($this->getData('alias'));
  29. $this->_content = ob_get_contents();
  30. ob_clean();
  31. ob_end_clean();
  32. }
  33. }
  34. /**
  35. * Include scritps and styles
  36. */
  37. protected function addHeadIncludes() {
  38. $this->_renderSlider();
  39. Mage::helper('nwdrevslider/framework')->do_action('wp_enqueue_scripts');
  40. $content = '';
  41. foreach (Mage::helper('nwdrevslider/framework')->getFromRegister('styles') as $_handle => $_style) {
  42. if (strpos($_style, Mage::getDesign()->getSkinUrl('nwdthemes/revslider')) === false) {
  43. $content .= '<link rel="stylesheet" type="text/css" href="' . $_style . '" media="all" />' . "\n";
  44. }
  45. }
  46. foreach (Mage::helper('nwdrevslider/framework')->getFromRegister('scripts') as $_handle => $_script) {
  47. if (strpos($_script, Mage::getDesign()->getSkinUrl('nwdthemes/revslider')) === false) {
  48. $content .= '<script type="text/javascript" src="' . $_script . '"></script>' . "\n";
  49. }
  50. }
  51. return $content;
  52. }
  53. public function getCacheKeyInfo() {
  54. $this->_renderSlider();
  55. $key = parent::getCacheKeyInfo();
  56. $key[] = $this->getData('alias');
  57. $key[] = $this->_slider->getParam("disable_on_mobile", "off");
  58. $key[] = isset($_SERVER['HTTPS']);
  59. return $key;
  60. }
  61. public function renderSlider() {
  62. if ( Mage::helper('nwdall')->getCfg('general/enabled', 'nwdrevslider_config') ) {
  63. $this->_renderSlider();
  64. $custom_css = RevSliderOperations::getStaticCss();
  65. $custom_css = '<style type="text/css">' . RevSliderCssParser::compress_css($custom_css) . '</style>';
  66. $this->_content = $this->addHeadIncludes() . self::load_icon_fonts() . $custom_css . $this->_content;
  67. if(!empty($this->_slider)){
  68. // Do not output Slider if we are on mobile
  69. $disable_on_mobile = $this->_slider->getParam("disable_on_mobile","off");
  70. if($disable_on_mobile == 'on'){
  71. $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') || Mage::helper('nwdrevslider/framework')->wp_is_mobile()) ? true : false;
  72. if($mobile) return false;
  73. }
  74. $show_alternate = $this->_slider->getParam("show_alternative_type","off");
  75. if($show_alternate == 'mobile' || $show_alternate == 'mobile-ie8'){
  76. if(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') || Mage::helper('nwdrevslider/framework')->wp_is_mobile()){
  77. $show_alternate_image = $this->_slider->getParam("show_alternate_image","");
  78. $this->_content = '<img class="tp-slider-alternative-image" src="'.$show_alternate_image.'" data-no-retina>';
  79. }
  80. }
  81. }
  82. }
  83. return $this->_content;
  84. }
  85. /**
  86. * Add icon fonts
  87. */
  88. public static function load_icon_fonts(){
  89. global $fa_icon_var,$pe_7s_var;
  90. $content = '';
  91. if($fa_icon_var) $content .= "<link rel='stylesheet' property='stylesheet' id='rs-icon-set-fa-icon-css' href='" . Nwdthemes_Revslider_Helper_Framework::$RS_PLUGIN_URL . "public/assets/fonts/font-awesome/css/font-awesome.css' type='text/css' media='all' />";
  92. if($pe_7s_var) $content .= "<link rel='stylesheet' property='stylesheet' id='rs-icon-set-pe-7s-css' href='" . Nwdthemes_Revslider_Helper_Framework::$RS_PLUGIN_URL . "public/assets/fonts/pe-icon-7-stroke/css/pe-icon-7-stroke.css' type='text/css' media='all' />";
  93. return $content;
  94. }
  95. }