You are here

public function FrxDrupal::format in Forena Reports 8

Implement custom SQL formatter to make sure that strings are properly escaped. Ideally we'd replace this with something that handles prepared statements, but it wouldn't work for

Parameters

string $value: Data value to foramt

string $key: Name of token being formatted.

bool $raw: True implies data should not be formatted for human consumption.

Return value

string Formatted replaced value.

File

src/FrxPlugin/Driver/FrxDrupal.php, line 288
Provides data blocks for native drupal connections using the default drupal connections.

Class

FrxDrupal
Class FrxDrupal

Namespace

Drupal\forena\FrxPlugin\Driver

Code

public function format($value, $key, $raw = FALSE) {
  if ($raw) {
    return $value;
  }
  $db = Database::getConnection('default');
  $value = $this
    ->parmConvert($key, $value);
  if ($db) {
    if ($value === '' || $value === NULL) {
      $value = 'NULL';
    }
    else {
      if (is_array($value)) {
        if ($value == array()) {
          $value = 'NULL';
        }
        else {

          // Build a array of values string
          $i = 0;
          $val = '';
          foreach ($value as $v) {
            $i++;
            if ($i > 1) {
              $val .= ',';
            }
            $val .= $db
              ->quote($v);
          }
          $value = $val;
        }
      }
      elseif (is_int($value)) {
        $value = (int) $value;
        $value = (string) $value;
      }
      elseif (is_float($value)) {
        $value = (double) $value;
        $value = (string) $value;
      }
      else {
        $value = trim($value);
        $value = $db
          ->quote($value);
      }
    }
  }
  return $value;
}