$component->app = $app;
$component->admin_log = $this->container['admin_log'];
$component->auth_app = $this->container['apps']['auth'];
+ $component->router = $this->container['router'];
$components[] = $component;
}
}
{
public function response($container, $request)
{
- return new IPF_HTTP_Response_Redirect(IPF_HTTP_URL::urlForView(array('IPF_Admin_User_Controller', 'login')));
+ /** @var IPF_Router $router */
+ $router = $container['router'];
+ $loginPage = $router->reverse(['IPF_Admin_User_Controller', 'login']);
+ return new IPF_HTTP_Response_Redirect($loginPage);
}
}
public $admin_log;
/** @var IPF_Auth_App */
public $auth_app;
+ /** @var IPF_Router */
+ public $router;
public function slug()
{
return false;
}
- protected abstract function _getForm($obj, $data);
+ protected abstract function _getForm($obj, $data, $extra);
- protected function _getEditForm($obj, $data)
+ protected function _getEditForm($obj, $data, $extra)
{
- return $this->_getForm($obj, $data);
+ return $this->_getForm($obj, $data, $extra);
}
- protected function _getAddForm($obj, $data)
+ protected function _getAddForm($obj, $data, $extra)
{
- return $this->_getForm($obj, $data);
+ return $this->_getForm($obj, $data, $extra);
}
public function listTemplate()
{
$url = @$this->request->POST['ipf_referrer'];
if (!$url)
- $url = IPF_HTTP_URL::urlForView(array('IPF_Admin_Components_Controller', 'listItems'), array($this->app->slug(), $this->slug()));
+ $url = $this->router->reverse(array('IPF_Admin_Components_Controller', 'listItems'), array($this->app->slug(), $this->slug()));
return new IPF_HTTP_Response_Redirect($url);
}
public function addItem()
{
+ $extra = array(
+ 'filebrowser_url' => $this->router->reverse(array('IPF_Admin_FileBrowser_Controller', 'index')),
+ );
+
$errors = false;
if ($this->request->method == 'POST') {
- $form = $this->_getAddForm(null, $this->request->getFormData());
+ $form = $this->_getAddForm(null, $this->request->getFormData(), $extra);
$this->_setupAddForm($form);
if ($form->isValid()) {
}
$errors = true;
} else {
- $form = $this->_getAddForm(null, null);
+ $form = $this->_getAddForm(null, null, $extra);
$this->_setupAddForm($form);
}
if (!$object)
throw new IPF_HTTP_Error404;
+ $extra = array(
+ 'filebrowser_url' => $this->router->reverse(array('IPF_Admin_FileBrowser_Controller', 'index')),
+ );
+
$errors = false;
if ($this->request->method == 'POST') {
- $form = $this->_getEditForm($object, $this->request->getFormData());
+ $form = $this->_getEditForm($object, $this->request->getFormData(), $extra);
$this->_setupEditForm($form);
if ($form->isValid()) {
}
$errors = true;
} else {
- $form = $this->_getEditForm($object, null);
+ $form = $this->_getEditForm($object, null, $extra);
$this->_setupEditForm($form);
}
if ($item['id'] !== null) {
$params[$paramName] = $item['id'];
}
- $url = '?'.IPF_HTTP_URL::generateParams($params, false);
+ $url = '?'.$this->encodeParams($params);
$ul->append(Tag::li()
->toggleClass('selected', $item['selected'])
return $ul->html();
}
+
+ private function encodeParams($params)
+ {
+ $params_list = array();
+ foreach ($params as $key => $value)
+ $params_list[] = urlencode($key) . '=' . urlencode($value);
+ return implode('&', $params_list);
+ }
}
{
$this->force_absolute_urls = \PFF\Arr::pop($attrs, 'force_absolute_urls', false);
$this->editor_config = \PFF\Arr::pop($attrs, 'editor_config', array());
-
- $this->filebrowser_url = IPF_HTTP_URL::urlForView(array('IPF_Admin_FileBrowser_Controller', 'index'));
-
+ $this->filebrowser_url = \PFF\Arr::pop($attrs, 'filebrowser_url');
parent::__construct($attrs);
}
return $this->authApp()->findUser($id);
}
- protected function _getForm($user, $data)
+ protected function _getForm($user, $data, $extra)
{
$connection = $this->getConnection();
- $extra = array(
- 'auth_app' => $this->authApp(),
- 'permissions_choices' => $this->permissionChoices($connection),
- 'roles_choices' => \PFF\Collection::columnByProperty(Role::all($connection), 'id', 'name'),
- );
+ $extra['auth_app'] = $this->authApp();
+ $extra['permissions_choices'] = $this->permissionChoices($connection);
+ $extra['roles_choices'] = \PFF\Collection::columnByProperty(Role::all($connection), 'id', 'name');
+
if ($user) {
$extra['initial'] = array(
'permissions' => \PFF\Arr::pluck($user->permissions($connection), 'id'),
return IPF_Database::queryOneObject($this->getConnection(), Role::class, 'SELECT * FROM auth_role WHERE id = ?', [$id], []);
}
- protected function _getForm($role, $data)
+ protected function _getForm($role, $data, $extra)
{
$connection = $this->getConnection();
- $extra = array(
- 'auth_app' => $this->authApp(),
- 'permissions_choices' => $this->permissionChoices($connection),
- );
+ $extra['auth_app'] = $this->authApp();
+ $extra['permissions_choices'] = $this->permissionChoices($connection);
if ($role) {
$extra['initial'] = array(
+++ /dev/null
-<?php
-
-class IPF_HTTP_URL
-{
- public static function generateParams($params=array(), $encode=true)
- {
- $params_list = array();
- foreach ($params as $key => $value)
- $params_list[] = urlencode($key).'='.urlencode($value);
- return implode($encode ? '&' : '&', $params_list);
- }
-
- public static function generate($action, $params=array(), $encode=true)
- {
- if (count($params) > 0)
- $action .= '?' . self::generateParams($params, $encode);
- return $action;
- }
-
- public static function urlForView($view, $params=array(), $get_params=array(), $encoded=true)
- {
- $action = IPF_Project::getInstance()->router->reverse($view, $params);
- return self::generate($action, $get_params, $encoded);
- }
-}
-