Пример #1
0
 /**
  * Field method name factory
  *
  * @param array $strings
  * @return array
  */
 public function buildFieldMethods(array $strings)
 {
     $names = [];
     foreach ($strings as $string) {
         $string = strtolower($string);
         if (strpos($string, '_')) {
             $string = underscoreToCamelCase($string);
         }
         $name = 'make' . ucfirst($string) . 'String';
         $names[$string] = $name;
     }
     return $names;
 }
Пример #2
0
// widgets
if (preg_match('/\\/widgets\\/([a-zA-Z0-9]*)(.*)?/i', @$_SERVER['REDIRECT_URL'], $matches)) {
    @(list($url, $widgetName, $params) = $matches);
    if (!empty($widgetName) && WidgetLoader::exists($widgetName)) {
        $widget = WidgetLoader::load($widgetName, $params);
        die($widget->getWidget());
    } else {
        die('Widget "' . $widgetName . '" not installed/available');
    }
} elseif (preg_match('/\\/explorer(\\/([a-zA-Z_]*))?/i', @$_SERVER['REDIRECT_URL'], $matches)) {
    if (@$matches[2]) {
        $_GET['type'] = $matches[2];
    }
    $api = new Api(API_PROJECT, API_READ_KEY);
    $qb = $api->getQueryBuilder();
    // parse request and map to query builder
    foreach ($_GET as $name => $value) {
        if (in_array(strtolower($name), $AVAILABLE_PARAMS)) {
            $param = underscoreToCamelCase(strtolower($name));
            $qb->{$param}($value);
        }
    }
    $data = $qb->execute()->toArray();
    die(json_encode($data, JSON_PRETTY_PRINT));
}
die('you either need to load a widget (/widget/{WIDGET_NAME}) or use the explorer (/explorer/{PARAMS})');
function underscoreToCamelCase($string)
{
    $func = create_function('$c', 'return strtoupper($c[1]);');
    return preg_replace_callback('/_([a-z])/', $func, $string);
}