예제 #1
0
/**
 * Renders Google line chart
 * 
 * @param array $params data in format like 
 *      $params=array(
 *       0=>array('month','total','active','inactive'),
 *       1=>array('Февраль',200,150,50),
 *       2=>array('Сентябрь',200,160,40)
 *       );
 * @param string $title chart title
 * @param string $width chart width in px or %, 500px default
 * @param string $height chart height in px or %, 500px default
 * @param string $options google charts options
 * 
 * @return string
 */
function wf_gchartsLine($params, $title = '', $width = '', $height = '', $options = '')
{
    global $ubillingConfig;
    $altCfg = $ubillingConfig->getAlter();
    $containerId = wf_InputId();
    $width = $width ? $width : '500px';
    $height = $height ? $height : '500px';
    $result = '';
    $chartData = '';
    $enableFlag = true;
    if (!isset($altCfg['GCHARTS_ENABLED'])) {
        $enableFlag = true;
    } else {
        if ($altCfg['GCHARTS_ENABLED']) {
            $enableFlag = true;
        } else {
            $enableFlag = false;
        }
    }
    if ($enableFlag) {
        if (!empty($params)) {
            $chartData = json_encode($params, JSON_NUMERIC_CHECK);
        }
        $result = wf_tag('script', false, '', 'type="text/javascript" src="https://www.gstatic.com/charts/loader.js"') . wf_tag('script', true);
        $result .= wf_tag('script', false, '', 'type="text/javascript"');
        $result .= 'google.charts.load(\'current\', {\'packages\':[\'corechart\']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = google.visualization.arrayToDataTable(
          ' . $chartData . '
        );

        var options = {
          title: \'' . $title . '\',
          curveType: \'function\',
           ' . $options . '
          legend: { position: \'bottom\' }
        };

        var chart = new google.visualization.LineChart(document.getElementById(\'' . $containerId . '\'));

        chart.draw(data, options);
      }
        ';
        $result .= wf_tag('script', true);
        $result .= wf_tag('div', false, '', 'id="' . $containerId . '" style="width: ' . $width . '; height: ' . $height . ';"') . wf_tag('div', true);
    }
    return $result;
}
예제 #2
0
function wf_FullCalendar($data)
{
    $elementid = wf_InputId();
    $calendar = "<script type='text/javascript'>\n\n\t\$(document).ready(function() {\n\t\n\t\tvar date = new Date();\n\t\tvar d = date.getDate();\n\t\tvar m = date.getMonth();\n\t\tvar y = date.getFullYear();\n         \n\t\t\$('#" . $elementid . "').fullCalendar({\n\t\t\teditable: false,\n                        theme: true,\n                        \n                        monthNamesShort: [\n                        '" . rcms_date_localise('Jan') . "',\n                        '" . rcms_date_localise('Feb') . "',\n                        '" . rcms_date_localise('Mar') . "',\n                        '" . rcms_date_localise('Apr') . "',\n                        '" . rcms_date_localise('May') . "',\n                        '" . rcms_date_localise('Jun') . "',\n                        '" . rcms_date_localise('Jul') . "',\n                        '" . rcms_date_localise('Aug') . "',\n                        '" . rcms_date_localise('Sep') . "',\n                        '" . rcms_date_localise('Oct') . "',\n                        '" . rcms_date_localise('Nov') . "',\n                        '" . rcms_date_localise('Dec') . "'\n                        ],\n\n                        monthNames: [\n                        '" . rcms_date_localise('January') . "',\n                        '" . rcms_date_localise('February') . "',\n                        '" . rcms_date_localise('March') . "',\n                        '" . rcms_date_localise('April') . "',\n                        '" . rcms_date_localise('May') . "',\n                        '" . rcms_date_localise('June') . "',\n                        '" . rcms_date_localise('July') . "',\n                        '" . rcms_date_localise('August') . "',\n                        '" . rcms_date_localise('September') . "',\n                        '" . rcms_date_localise('October') . "',\n                        '" . rcms_date_localise('November') . "',\n                        '" . rcms_date_localise('December') . "'\n                        ],\n                        \n                        dayNamesShort: [\n                        '" . rcms_date_localise('Sun') . "',\n                        '" . rcms_date_localise('Mon') . "',\n                        '" . rcms_date_localise('Tue') . "',\n                        '" . rcms_date_localise('Wed') . "',\n                        '" . rcms_date_localise('Thu') . "',\n                        '" . rcms_date_localise('Fri') . "',\n                        '" . rcms_date_localise('Sat') . "'\n                        ],\n                        \n                        dayNames: [\n                        '" . rcms_date_localise('Sunday') . "',\n                        '" . rcms_date_localise('Monday') . "',\n                        '" . rcms_date_localise('Tuesday') . "',\n                        '" . rcms_date_localise('Wednesday') . "',\n                        '" . rcms_date_localise('Thursday') . "',\n                        '" . rcms_date_localise('Friday') . "',\n                        '" . rcms_date_localise('Saturday') . "'\n                        ],\n                        \n                        buttonText: {\n                            today:    '" . __('Today') . "',\n                            month:    '" . __('Month') . "',\n                            week:     '" . __('Week') . "',\n                            day:      '" . __('Day') . "'\n                        },\n\n                        header: {\n\t\t\t\tleft: 'prev,next today',\n\t\t\t\tcenter: 'title',\n\t\t\t\tright: 'month,basicWeek,basicDay'\n\t\t\t},\n                        \n\t\t\tevents: [\n\t\t\t\t" . $data . "\n\t\t\t\n\t\t\t]\n                        \n\t\t});\n\t\t\n\t});\n\n</script>\n<div id='" . $elementid . "'></div>\n";
    return $calendar;
}
예제 #3
0
 /**
  * Return check box Web From element 
  *
  * @param string  $name name of element
  * @param string  $label text label for input
  * @param bool    $br append new line
  * @param bool    $checked is checked?
  * 
  * @return  string     
  */
 protected function CheckInput($name, $label = '', $value = '', $br = false, $checked = false)
 {
     $inputid = wf_InputId();
     if ($br) {
         $newline = '<br>';
     } else {
         $newline = '';
     }
     if ($checked) {
         $check = 'checked=""';
     } else {
         $check = '';
     }
     if ($value != '') {
         $result = '<input type="checkbox" id="' . $inputid . '" name="' . $name . '" ' . $check . ' value=' . $value . ' />';
     } else {
         $result = '<input type="checkbox" id="' . $inputid . '" name="' . $name . '" ' . $check . ' />';
     }
     if ($label != '') {
         $result .= ' <label for="' . $inputid . '">' . __($label) . '</label>' . "\n";
     }
     $result .= $newline . "\n";
     return $result;
 }
예제 #4
0
/**
 * Returns typical answer preset insertion form
 * 
 * @return string
 */
function web_TicketsTAPLister()
{
    $result = '';
    $maxLen = 50;
    $allReplies = zb_TicketsTAPgetAll();
    if (!empty($allReplies)) {
        $result .= wf_delimiter() . wf_tag('h3') . __('Typical answers presets') . wf_tag('h3', true);
        $result .= wf_tag('ul', false);
        foreach ($allReplies as $io => $each) {
            $randId = wf_InputId();
            $rawText = trim($each);
            $result .= wf_tag('script', false, '', 'language="javascript" type="text/javascript"');
            $result .= '
                    function jsAddReplyText_' . $randId . '() {
                         var replytext=\'' . json_encode($rawText) . '\';
                         $("#ticketreplyarea").val(replytext);
                    }
                    ';
            $result .= wf_tag('script', true);
            $linkText = htmlspecialchars($rawText);
            if (mb_strlen($linkText, 'UTF-8') > $maxLen) {
                $linkText = mb_substr($rawText, 0, $maxLen, 'UTF-8') . '..';
            } else {
                $linkText = $rawText;
            }
            $result .= wf_tag('li') . wf_tag('a', false, '', 'href="#" onClick="jsAddReplyText_' . $randId . '();"') . $linkText . wf_tag('a', true) . wf_tag('li', true);
        }
        $result .= wf_tag('ul', true);
    }
    return $result;
}
예제 #5
0
/**
 * Renders Google 3d pie chart
 * 
 * @param array $params data in format like string=>count
 * @param string $title chart title
 * @param string $width chart width in px or %, 500px default
 * @param string $height chart height in px or %, 500px default
 * @param string $options google charts options, useful examples see below<br>
 * pieSliceText: percentage/value/label/none OR  pieSliceText: 'value-and-percentage'<br>
 * is3D: true/false <br>
 * backgroundColor: '#666', <br>
 * legend : {position: 'bottom', textStyle: {color: 'red', fontSize: 12 }}, <br>
 * chartArea: {  width: '90%', height: '90%' }, <br>
 * 
 * @return string
 */
function wf_gcharts3DPie($params, $title = '', $width = '', $height = '', $options = '')
{
    global $ubillingConfig;
    $altCfg = $ubillingConfig->getAlter();
    $containerId = wf_InputId();
    $width = $width ? $width : '500px';
    $height = $height ? $height : '500px';
    $result = '';
    $chartData = '';
    $enableFlag = true;
    if (!isset($altCfg['GCHARTS_ENABLED'])) {
        $enableFlag = true;
    } else {
        if ($altCfg['GCHARTS_ENABLED']) {
            $enableFlag = true;
        } else {
            $enableFlag = false;
        }
    }
    if ($enableFlag) {
        if (!empty($params)) {
            foreach ($params as $io => $each) {
                $chartData .= '[\'' . $io . '\',' . $each . '],';
            }
            $chartData = substr($chartData, 0, -1);
        }
        //legend.scrollArrows.activeColor
        $result = wf_tag('script', false, '', 'type="text/javascript" src="https://www.google.com/jsapi"') . wf_tag('script', true);
        $result .= wf_tag('script', false, '', 'type="text/javascript"');
        $result .= '
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      
      function drawChart() {

        var data = google.visualization.arrayToDataTable([
          [\'X\', \'Y\'],
           ' . $chartData . '
         ]);

        var options = {
          title: \'' . $title . '\',
          is3D: true,
          ' . $options . '
          \'tooltip\' : {
             trigger: \'none\'
            }
        };

        var chart = new google.visualization.PieChart(document.getElementById(\'' . $containerId . '\'));
        chart.draw(data, options);
      }
';
        $result .= wf_tag('script', true);
        $result .= wf_tag('div', false, '', 'id="' . $containerId . '" style="width: ' . $width . '; height: ' . $height . ';"') . wf_tag('div', true);
    }
    return $result;
}