Esempio n. 1
0
 public static function uri($item = NULL, $action = NULL)
 {
     $route_name = 'tart';
     if ($item instanceof Jam_Validated) {
         $params = array('controller' => Inflector::plural($item->meta()->model()));
         if ($item->loaded()) {
             $params['id'] = $item->id();
         }
         if (is_array($action)) {
             $params = Arr::merge($params, $action);
         } elseif ($action) {
             $params['action'] = $action;
         }
         if (!$action or is_array($action) and !isset($action['action'])) {
             $params['action'] = $item->loaded() ? 'edit' : 'new';
         }
         $params['category'] = Arr::get($params, 'category', Tart::category($params['controller']));
         if ($params['category']) {
             $route_name = 'tart_category';
         }
         return Route::url($route_name, $params);
     } else {
         $params = array('controller' => $item);
         if (is_array($action)) {
             $params = Arr::merge($params, $action);
         } elseif ($action) {
             $params['action'] = $action;
         }
         $params['category'] = Arr::get($params, 'category', Tart::category($params['controller']));
         if ($params['category']) {
             $route_name = 'tart_category';
         }
         return Route::url($route_name, $params);
     }
 }