Whups::urlFor PHP Method

urlFor() public static method

URL factory.
public static urlFor ( string $controller, array | string $data, boolean $full = false, integer $append_session ) : Horde_Url
$controller string The controller to link to, one of 'queue', 'ticket', 'ticket_rss', 'ticket_action', 'query', 'query_rss'.
$data array | string URL data, depending on the controller.
$full boolean @see Horde::url()
$append_session integer @see Horde::url()
return Horde_Url The generated URL.
    public static function urlFor($controller, $data, $full = false, $append_session = 0)
    {
        $rewrite = isset($GLOBALS['conf']['urls']['pretty']) && $GLOBALS['conf']['urls']['pretty'] == 'rewrite';
        switch ($controller) {
            case 'queue':
                if ($rewrite) {
                    if (is_array($data)) {
                        if (empty($data['slug'])) {
                            $slug = (int) $data['id'];
                        } else {
                            $slug = $data['slug'];
                        }
                    } else {
                        $slug = (int) $data;
                    }
                    return Horde::url('queue/' . $slug, $full, $append_session);
                } else {
                    if (is_array($data)) {
                        $id = $data['id'];
                    } else {
                        $id = $data;
                    }
                    return Horde::url('queue/?id=' . $id, $full, $append_session);
                }
                break;
            case 'ticket':
                $id = (int) $data;
                if ($rewrite) {
                    return Horde::url('ticket/' . $id, $full, $append_session);
                } else {
                    return Horde::url('ticket/?id=' . $id, $full, $append_session);
                }
                break;
            case 'ticket_rss':
                $id = (int) $data;
                if ($rewrite) {
                    return Horde::url('ticket/' . $id . '/rss', $full, $append_session);
                } else {
                    return Horde::url('ticket/rss.php?id=' . $id, $full, $append_session);
                }
                break;
            case 'ticket_action':
                list($controller, $id) = $data;
                if ($rewrite) {
                    return Horde::url('ticket/' . $id . '/' . $controller, $full, $append_session = 0);
                } else {
                    return Horde::url('ticket/' . $controller . '.php?id=' . $id, $full, $append_session = 0);
                }
            case 'query':
            case 'query_rss':
                if ($rewrite) {
                    if (is_array($data)) {
                        if (isset($data['slug'])) {
                            $slug = $data['slug'];
                        } else {
                            $slug = $data['id'];
                        }
                    } else {
                        $slug = (int) $data;
                    }
                    $url = 'query/' . $slug;
                    if ($controller == 'query_rss') {
                        $url .= '/rss';
                    }
                    return Horde::url($url, $full, $append_session);
                } else {
                    if (is_array($data)) {
                        if (isset($data['slug'])) {
                            $param = array('slug' => $data['slug']);
                        } else {
                            $param = array('query' => $data['id']);
                        }
                    } else {
                        $param = array('query' => $data);
                    }
                    $url = $controller == 'query' ? 'query/run.php' : 'query/rss.php';
                    return Horde::url($url, $full, $append_session)->add($param);
                }
                break;
        }
    }

Usage Example

Exemplo n.º 1
0
 /**
  */
 protected function _title()
 {
     if (($query = $this->_getQuery()) && $query->name) {
         return Horde::link(Whups::urlFor('query', empty($query->slug) ? array('id' => $query->id) : array('slug' => $query->slug))) . htmlspecialchars($query->name) . '</a>';
     }
     return $this->getName();
 }
All Usage Examples Of Whups::urlFor