Example #1
0
 protected function build(array $data, $prefix = null)
 {
     if ($this->csrf && $this->csrfInstance instanceof \rock\csrf\CSRF) {
         if (empty($data['query'])) {
             $data['query'] = [];
         }
         $data['query'][$this->csrfInstance->csrfParam] = $this->csrfInstance->get();
     }
     if (!empty($data['query'])) {
         $data['query'] = preg_replace('/%5B[0-9]+%5D/i', '%5B%5D', http_build_query($data['query']));
     } else {
         unset($data['query']);
     }
     if (empty($data['fragment'])) {
         unset($data['fragment']);
     }
     return $prefix . http_build_url($data);
 }
Example #2
0
 protected function clientOptions(array $options)
 {
     if (!$this->enableClientValidation) {
         return $options;
     }
     if (!isset($options['data']['ng-init'])) {
         $options['data']['ng-init'] = [];
     }
     if (isset($options['data']['ng-init']) && !is_array($options['data']['ng-init'])) {
         throw new WidgetException(WidgetException::NOT_ARRAY, ['name' => 'param "ng-init"']);
     }
     if (!empty($this->modelName)) {
         $options['name'] = $this->modelName;
         if (!isset($options['data']['ng-init']['formName'])) {
             $options['data']['ng-init']['formName'] = $this->modelName;
         }
     }
     if ($this->validateOnChanged) {
         $options['data']['ng-init']['validateOnChanged'] = true;
     }
     if ($this->csrf instanceof \rock\csrf\CSRF) {
         if (!isset($options['hiddenCsrf']['data'])) {
             $options['hiddenCsrf']['data'] = [];
         }
         if (!isset($options['hiddenCsrf']['data']['ng-model'])) {
             $options['hiddenCsrf']['data']['ng-model'] = (isset($this->modelName) ? $this->modelName : 'form') . ".values.{$this->csrf->csrfParam}";
         }
         if (!isset($options['hiddenCsrf']['data']['ng-value'])) {
             $options['hiddenCsrf']['data']['ng-value'] = "rock.csrf.getToken() || '" . $this->csrf->get() . "'";
         }
     }
     $options['data']['ng-submit'] = "submit('{$this->clientAction}', \$event)";
     return $options;
 }
 protected function getMessageLogout(CSRF $CSRF, $key, $layout = '@common.views/elements/alert-info')
 {
     $args = [$CSRF->csrfParam => $CSRF->get(), 'service' => 'logout'];
     $content = i18n::t($key, ['url' => Url::set()->addArgs($args)->getRelative()]);
     return $this->template->getChunk($layout, ['output' => $content]);
 }