Source for file class.acBlockType_ui_slider.php

Documentation is available at class.acBlockType_ui_slider.php

  1. <?php
  2. {
  3.     function __construct(&$content_obj, $params = array())
  4.     {
  5.         $params['block_type'] = 'ui_slider';
  6.         parent::__construct($content_obj, $params);
  7.         $slider_params = array();
  8.         
  9.         if(isset($params['min']))
  10.             $slider_params['min'] = intval($params['min']);
  11.         
  12.         if(isset($params['max']))
  13.             $slider_params['max'] = intval($params['max']);
  14.         
  15.         if(isset($params['orientation']))
  16.             $slider_params['orientation'] = $params['orientation'];
  17.         
  18.         if(isset($params['range']))
  19.             $slider_params['range'] = ac_utils::IsTrue($params['range']) ? true : $params['range'];
  20.         
  21.         if(isset($params['step']))
  22.             $slider_params['step'] = intval($params['step']);
  23.         
  24.         $this->SetProperty('slider_params',$slider_params);
  25.         $this->SetProperty('unit',isset($params['unit']) ? $params['unit'] : '');
  26.     }
  27.     
  28.     public function GetInput()
  29.     {
  30.         $slider_params = $this->GetProperty('slider_params');
  31.         $diff = (isset($slider_params['max']) ? $slider_params['max'] : 10) - (isset($slider_params['min']) ? $slider_params['min'] : 0);
  32.         $total_steps = ceil($diff / (isset($slider_params['step']) && $slider_params['step'] > 0 ? $slider_params['step'] : 1));
  33.         $width = $total_steps >= 100 ? '100%' : $total_steps.'%';
  34.         $ret = '
  35. <div id="'. $this->GetProperty('id') .'_display">';
  36.  
  37.         if(isset($slider_params['range']))
  38.         {
  39.             $_values = explode(',',$this->GetContent());
  40.             if($slider_params['range'] === true || $slider_params['range'] === false)
  41.             {
  42.                 if(count($_values) < 2)
  43.                 {
  44.                     $value_min = isset($slider_params['min']) ? $slider_params['min'] : 0;
  45.                     $value_max = intval($_values[0]);
  46.                 }
  47.                 else
  48.                 {
  49.                     $value_min = intval($_values[0]);
  50.                     $value_max = intval($_values[1]);
  51.                 }
  52.             }
  53.             else if($slider_params['range'] == 'min')
  54.             {
  55.                 $value_min = isset($slider_params['min']) ? $slider_params['min'] : 0;
  56.                 $value_max = count($_values) < 2 ? $_values[0] : $_values[1];
  57.             }
  58.             else if($slider_params['range'] == 'max')
  59.             {
  60.                 $value_min = count($_values) < 2 ? $_values[0] : $_values[1];
  61.                 $value_max = isset($slider_params['max']) ? $slider_params['max'] : 10;
  62.             }
  63.             if(isset($slider_params['max']) && $slider_params['max'] < $value_max)
  64.                 $value_max = $slider_params['max'];
  65.             
  66.             if(isset($slider_params['min']) && $slider_params['min'] > $value_min)
  67.                 $value_min = $slider_params['min'];
  68.             
  69.             $ret .= $value_min . ' - ' . $value_max;
  70.         }
  71.         else
  72.             $ret .= intval($this->GetContent());
  73.         
  74.         $ret .= ' ' . $this->GetProperty('unit') . 
  75. '</div><br />
  76. <div id="'.$this->GetProperty('id').'_slider" style="margin:0.6em;'.(!isset($slider_params['orientation']) || $slider_params['orientation'] == 'horizontal' ? 'width:'.$width : '' ). '"></div>
  77. <input id="'.$this->GetProperty('id').'" type="hidden" name="' . $this->GetProperty('id') . '" value="' . ($this->GetContent() ? $this->GetContent() : intval($this->GetContent())) . '" />';
  78.         
  79.         return $ret;
  80.     }
  81.     
  82.     public function GetHeaderHTML()
  83.     {
  84.         if($this->_header_html_called)
  85.             return;
  86.         
  87.         $this->_header_html_called = true;
  88.         
  89.         $ret = '
  90. <script language="javascript" type="text/javascript">
  91. /* <![CDATA[ */
  92. ac_onload.push(function(){
  93.     (function($){';
  94.  
  95.         foreach(acContentBlockManager::GetBlocksByType('ui_slider') as $block_id)
  96.         {
  97.             $contentBlock  = &$this->content_obj->GetContentBlock($block_id);
  98.             $slider_params = $contentBlock->GetProperty('slider_params');
  99.             $ret .= '
  100.         $("#'.$block_id.'_slider").slider({
  101.             slide: function( event, ui ) {';
  102.         
  103.             if(isset($slider_params['range']))
  104.             {
  105.                 $ret .= '
  106.                 $("#'. $block_id .'").val( ui.values );
  107.                 $("#'. $block_id .'_display").html( ui.values[0] + \' - \' + ui.values[1] + " '. $contentBlock->GetProperty('unit') .'");';
  108.             
  109.             }
  110.             else
  111.             {
  112.                 $ret .= '
  113.                 $("#'. $block_id .'").val( ui.value );
  114.                 $("#'. $block_id .'_display").html( ui.value + " '. $contentBlock->GetProperty('unit') .'");';
  115.             
  116.             }
  117.             
  118.             $ret .= '
  119.             },';
  120.             
  121.             if(isset($slider_params['range']))
  122.             {
  123.                 $_values = explode(',', $contentBlock->GetContent());
  124.                 if($slider_params['range'] === true || $slider_params['range'] === false)
  125.                 {
  126.                     if(count($_values) < 2)
  127.                     {
  128.                         $value_min = isset($slider_params['min']) ? $slider_params['min'] : 0;
  129.                         $value_max = intval($_values[0]);
  130.                     }
  131.                     else
  132.                     {
  133.                         $value_min = intval($_values[0]);
  134.                         $value_max = intval($_values[1]);
  135.                     }
  136.                 }
  137.                 else if($slider_params['range'] == 'min')
  138.                 {
  139.                     $value_min = isset($slider_params['min']) ? $slider_params['min'] : 0;
  140.                     $value_max = count($_values) < 2 ? $_values[0] : $_values[1];
  141.                 }
  142.                 else if($slider_params['range'] == 'max')
  143.                 {
  144.                     $value_min = count($_values) < 2 ? $_values[0] : $_values[1];
  145.                     $value_max = isset($slider_params['max']) ? $slider_params['max'] : 10;
  146.                 }
  147.                 if(isset($slider_params['max']) && $slider_params['max'] < $value_max)
  148.                     $value_max = $slider_params['max'];
  149.                 
  150.                 if(isset($slider_params['min']) && $slider_params['min'] > $value_min)
  151.                     $value_min = $slider_params['min'];
  152.                 
  153.                 $ret .= 'values: [' . $value_min . ',' . $value_max . ']';
  154.             }
  155.             else
  156.                 $ret .= 'value: ' . intval($contentBlock->GetContent());
  157.             
  158.             if(count($slider_params))
  159.             {
  160.                 $ret .= ',';
  161.                 $slider_settings = array();
  162.                 foreach($slider_params as $paramName => $paramValue)
  163.                 {
  164.                     if(is_bool($paramValue))
  165.                         $slider_settings[] = $paramName . ': ' . ($paramValue ? 'true' : 'false');
  166.                     else
  167.                         $slider_settings[] = $paramName . ': ' . (is_numeric($paramValue) ? $paramValue : '"' . $paramValue . '"');
  168.                 }
  169.                 $ret .= implode(',',$slider_settings);
  170.             }
  171.             $ret .= '
  172.         });';
  173.             
  174.         }
  175.         
  176.         return $ret . '
  177.     })(jQuery);
  178. });
  179. /* ]]> */
  180. </script>';
  181.  
  182.     }
  183. }
  184. ?>

Documentation generated on Tue, 09 Oct 2012 16:57:04 +0200 by phpDocumentor 1.4.1