Example #1
0
 public function testCanGetViewRenderingList()
 {
     $list = $this->views->getViewList('foo');
     $this->assertEquals([500 => 'foo'], $list);
     $this->views->extendView('foo', 'bar');
     $this->views->extendView('foo', 'bing', 499);
     $list = $this->views->getViewList('foo');
     $this->assertEquals([499 => 'bing', 500 => 'foo', 501 => 'bar'], $list);
 }
Example #2
0
 /**
  * Convenience function for generating a form from a view in a standard location.
  *
  * This function assumes that the body of the form is located at "forms/$action" and
  * sets the action by default to "action/$action".  Automatically wraps the forms/$action
  * view with a <form> tag and inserts the anti-csrf security tokens.
  *
  * @tip This automatically appends elgg-form-action-name to the form's class. It replaces any
  * slashes with dashes (blog/save becomes elgg-form-blog-save)
  *
  * @example
  * <code>echo elgg_view_form('login');</code>
  *
  * This would assume a "login" form body to be at "forms/login" and would set the action
  * of the form to "http://yoursite.com/action/login".
  *
  * If elgg_view('forms/login') is:
  * <input type="text" name="username" />
  * <input type="password" name="password" />
  *
  * Then elgg_view_form('login') generates:
  * <form action="http://yoursite.com/action/login" method="post">
  *     ...security tokens...
  *     <input type="text" name="username" />
  *     <input type="password" name="password" />
  * </form>
  *
  * @param string $action    The name of the action. An action name does not include
  *                          the leading "action/". For example, "login" is an action name.
  * @param array  $form_vars $vars passed to the "input/form" view
  * @param array  $body_vars $vars passed to the "forms/<action>" view
  *
  * @return string The complete form
  */
 public function render($action, $form_vars = array(), $body_vars = array())
 {
     $defaults = array('action' => elgg_normalize_url("action/{$action}"));
     // append elgg-form class to any class options set
     $form_vars['class'] = (array) elgg_extract('class', $form_vars, []);
     $form_vars['class'][] = 'elgg-form-' . preg_replace('/[^a-z0-9]/i', '-', $action);
     $form_vars = array_merge($defaults, $form_vars);
     $form_vars['action_name'] = $action;
     if (!isset($form_vars['body'])) {
         $this->rendering = true;
         $this->footer = '';
         // Render form body
         $body = $this->views->renderView("forms/{$action}", $body_vars);
         if (!empty($body)) {
             // Grab the footer if one was set during form rendering
             $body .= $this->views->renderView('elements/forms/footer', ['footer' => $this->getFooter(), 'action_name' => $action]);
         }
         $this->rendering = false;
         $form_vars['body'] = $body;
     }
     return elgg_view('input/form', $form_vars);
 }
 public static function getException($e = '')
 {
     $view = new ViewsService(new UserService());
     $view->render_ExceptionPage($e);
 }