Пример #1
0
 /**
  * @override
  */
 function PreRender($args = array())
 {
     $id = $this->id;
     $this->_basicOptions['center'] = '[jscode]' . $this->_basicOptions['center'];
     $this->_basicOptions['mapTypeId'] = '[jscode]' . $this->_basicOptions['mapTypeId'];
     if ($this->AutoShowHints) {
         $this->_basicOptions['autoShowHints'] = true;
     }
     $init = array("wdf.gmap.init('{$id}'," . system_to_json($this->_basicOptions) . ");");
     foreach ($this->_markers as $m) {
         list($lat, $lng, $opt) = $m;
         $init[] = "wdf.gmap.addMarker('{$id}',{$lat},{$lng}," . json_encode($opt) . ");";
     }
     foreach ($this->_addresses as $a) {
         if (is_array($a)) {
             $init[] = "wdf.gmap.addAddress('{$id}'," . json_encode($a['address']) . "," . json_encode($a['title']) . ");";
         } else {
             $init[] = "wdf.gmap.addAddress('{$id}'," . json_encode($a) . ");";
         }
     }
     $init[] = "wdf.gmap.showAllMarkers('{$id}');";
     $this->_addLoadCallback('maps', $init);
     return parent::PreRender($args);
 }
 /**
  * @override
  */
 function PreRender($args = array())
 {
     if (count($this->_data) > 1) {
         $id = $this->id;
         $opts = json_encode($this->gvOptions);
         if (count($this->_data) > 0) {
             array_walk_recursive($this->_data, function (&$item, &$key) {
                 if ($item instanceof DateTime) {
                     $item = "[jscode]new Date(" . $item->getTimestamp() * 1000 . ")";
                 }
             });
             $d = system_to_json($this->_data);
             $js = "var d=google.visualization.arrayToDataTable({$d});" . "var c=new google.visualization.{$this->gvType}(\$('#{$id}').get(0));" . "google.visualization.events.addListener(c, 'ready', function(){ \$('#{$id}').data('ready',true); });" . "c.draw(d,{$opts});" . "\$('#{$id}').data('googlechart', c);";
         } else {
             $q = buildQuery($this->id, 'Query');
             $js = "var {$id} = new google.visualization.Query('{$q}');" . "{$id}.setQuery('{$this->gvQuery}');" . "{$id}.send(function(r){ if(r.isError()){ \$('#{$id}').html(r.getDetailedMessage()); }else{ var c=new google.visualization.{$this->gvType}(\$('#{$id}').get(0));" . "google.visualization.events.addListener(c, 'ready', function(){ \$('#{$id}').data('ready',true); });" . "c.draw(r.getDataTable(),{$opts});" . "\$('#{$id}').data('googlechart', c);}});";
         }
         $this->_addLoadCallback('visualization', $js, true);
     } else {
         $t = $this->opt('title');
         $this->css('text-align', 'center')->content(($t ? "<b>{$t}:</b> " : "") . tds("TXT_NO_DATA", "No data found"), true);
     }
     if (isset($this->gvOptions['width'])) {
         $this->css('width', "{$this->gvOptions['width']}px");
     }
     if (isset($this->gvOptions['height'])) {
         $this->css('height', "{$this->gvOptions['height']}px");
     }
     return parent::PreRender($args);
 }