Ejemplo n.º 1
0
 public function testResource()
 {
     Route::context("user_id", 7);
     $params = array('book_id' => 3);
     $r = Route::resource("users/:user_id/friends", $params);
     $this->assertEquals($r, "users/7/friends");
 }
function smarty_function_action_attributes($params, &$view)
{
    $availableMethods = array('get', 'post', 'put', 'delete');
    $methodsParams = array_intersect($availableMethods, array_keys($params));
    $method = reset($methodsParams);
    if (empty($method)) {
        return;
    }
    $assign = '';
    if (isset($params['assign'])) {
        $assign = $params['assign'];
        unset($params['assign']);
    }
    $pattern = $params[$method];
    unset($params[$method]);
    $resource = Route::resource($pattern, $params);
    $prefix = App::getLinkPrefix($params);
    $result = ' data-method="' . $method . '"';
    $result .= ' data-resource="' . $prefix . ltrim($resource, '/') . '"';
    list($preg, $map) = Url::preg($pattern);
    $result .= ' data-params="' . http_build_query(array_diff_key($params, array_flip($map))) . '"';
    $result .= ' ';
    if ($assign) {
        $view->assign($assign, $result);
        $link = '';
    }
    return $result;
}
Ejemplo n.º 3
0
function smarty_block_form($ps, $content, &$view, &$repeat)
{
    if ($repeat) {
        return;
    }
    $r = '<form';
    $prefix = '';
    $app = !empty($ps['app']) ? $ps['app'] : App::get();
    $apps = App::apps();
    if (!empty($apps[$app])) {
        $prefix = $apps[$app] . "/";
    }
    $ps['action'] = $prefix . $ps['action'];
    $add = '';
    $ps['action'] = Route::resource($ps['action'], $ps);
    $resource = $ps['action'];
    if (!empty($ps['action']) && !empty($ps['method'])) {
        $ps['method'] = strtolower($ps['method']);
        $add .= '<input type="hidden" name="' . $ps['method'] . '" value="' . $ps['action'] . '" />';
        $ps['action'] = '/pina.php';
        if ($ps['method'] != 'get') {
            $ps['method'] = 'post';
        }
    }
    if (!empty($ps["action"])) {
        $r .= ' action="' . $ps["action"] . '"';
    }
    if (!empty($ps["method"])) {
        $r .= ' method="' . $ps["method"] . '"';
    }
    if (!empty($ps["id"])) {
        $r .= ' id="' . $ps["id"] . '"';
    }
    if (!empty($ps["name"])) {
        $r .= ' name="' . $ps["name"] . '"';
    }
    if (!empty($ps["class"])) {
        $r .= ' class="' . $ps["class"] . '"';
    }
    if (!empty($ps["enctype"])) {
        $r .= ' enctype="' . $ps["enctype"] . '"';
    }
    if (!empty($ps["novalidate"])) {
        $r .= ' novalidate="' . $ps["novalidate"] . '"';
    }
    if (!empty($ps["role"])) {
        $r .= ' role="' . $ps["role"] . '"';
    }
    if (!empty($ps["target"])) {
        $r .= ' target="' . $ps["target"] . '"';
    }
    $r .= '>';
    $r .= $add;
    $ps['resource'] = $resource;
    $r .= Composer::draw('templater::form', $ps, $view);
    //$r .= CSRFToken::formField($resource, $ps["method"]);
    return $r . $content . '</form>';
}
Ejemplo n.º 4
0
function smarty_block_iflocation($params, $content, &$view, &$repeat)
{
    if (empty($content) || empty($params['get'])) {
        return '';
    }
    $pattern = Url::trim($params['get']);
    $needed = Route::resource($pattern, $params);
    if (empty($needed)) {
        return '';
    }
    $resource = Url::trim(\Pina\Core::resource());
    if (strpos($resource, $needed) !== 0) {
        return '';
    }
    list($preg, $map) = Url::preg($params['get']);
    $data = \Pina\Core::getRequestData();
    unset($params['get']);
    $params = array_diff_key($params, array_flip($map));
    unset($data['get']);
    if (array_diff_assoc($data, $params) || array_diff_assoc($params, $data)) {
        return '';
    }
    return $content;
}
Ejemplo n.º 5
0
 public function moduleProvider()
 {
     Route::own('/menus', 'Menus');
     return array(array('menus/items', 'Menus'), array('menus/', 'Menus'));
 }