*/ $app->get("/watchlist/removeall", function (Request $request) use($app) { if (!($user = $app['user'])) { return $app->redirect($app['url_generator']->generate('login')); } $w = WatchlistQuery::create(); $w->filterByUser($user); $w->delete(); return $app->redirect($app['url_generator']->generate('watchlist')); })->bind('watchlistremoveall'); /** * ---------------------- * route /watchlist GET * ---------------------- */ $app->get("/watchlist/{page}", function (Request $request, $page) use($app) { if (!($user = $app['user'])) { return $app->redirect($app['url_generator']->generate('login')); } $itemIds = array(); if ($ws = $user->getWatchlists()) { foreach ($ws as $w) { $itemIds[] = $w->getItemId(); } } $page = $page > 0 ? $page : 1; $q = ItemQuery::create(); $q->filterByPrimaryKeys(array_unique($itemIds)); // use generic function to render return item_list($app, $request, $q, $page, 25, array('watchlist' => true)); })->assert('page', '\\d*')->value('page', 1)->bind('watchlist');
if (($type == '' && (xmlrpc_isComputerRegistered($target_uuid) || xmlrpc_isComputerInProfileRegistered($target_uuid))) || ($type == 'group' && xmlrpc_isProfileRegistered($target_uuid))) { if (isset($_GET['mod'])) { $mod = $_GET['mod']; } else { $mod = "none"; } switch($mod) { case 'up': item_up(); break; case 'down': item_down(); break; case 'edit': item_edit(); break; default: item_list(); break; } } else { # register the target (computer or profile) $params = array('target_uuid'=>$target_uuid, 'type'=>$type, 'from'=>"services", "target_name"=>$target_name); header("Location: " . urlStrRedirect("base/computers/".$type."register_target", $params)); exit; } ?>
return $q; }; } $q = $getQ($search); if ($q->count() == 0 && $search != trim($search)) { $search = trim($search); $q = $getQ($search); } if ($page == 1 && $q->count() == 1) { $item = $q->findOne(); return $app->redirect($app['url_generator']->generate($route, array('dataId' => $item->getDataId()))); } if ($recipes) { $content = recipe_list($app, $request, $q, $page, 25, array('search' => $search, 'type' => 'search', 'included' => true)); } else { $content = item_list($app, $request, $q, $page, 25, array('search' => $search, 'type' => 'search', 'included' => true)); } $params = array(); if ($minLevelFilter = $request->get('min_level', null)) { $params['min_level'] = $minLevelFilter; } if ($maxLevelFilter = $request->get('max_level', null)) { $params['max_level'] = $maxLevelFilter; } // use generic function to render return $app['twig']->render('search.html.twig', array('recipes' => $recipes, 'content' => $content, 'search' => $search, 'params' => $params)); })->assert('search', '[^/]*')->assert('page', '-?\\d*')->convert('page', $toInt)->convert('search', function ($search) { return urldecode($search); })->value('search', null)->value('page', 1)->bind('search'); /** * ----------------------
$subtype = null; } if (!is_null($type)) { if (!($type = ItemTypeQuery::create()->findPk($type))) { return $app->abort(404, "bad type"); } $q->filterByItemType($type); if (!is_null($subtype)) { if (!($subtype = ItemSubTypeQuery::create()->findPk(array($subtype, $type->getId())))) { return $app->abort(404, "bad type"); } $q->filterByItemSubType($subtype); } } // use generic function to render return item_list($app, $request, $q, $page, 50, array('type' => $type, 'subtype' => $subtype)); })->assert('type', '-?\\d*')->assert('subtype', '-?\\d*')->assert('page', '-?\\d*')->value('type', -1)->value('subtype', -1)->value('page', 1)->bind('type'); /** * ---------------------- * route /item * ---------------------- */ $app->get("/item/{dataId}", function ($dataId) use($app) { $item = ItemQuery::create()->findPK($dataId); $ingredientInRecipes = RecipeQuery::create()->useIngredientQuery()->filterByItemId($dataId)->endUse()->addDescendingOrderByColumn('profit')->find(); if (!$item) { return $app->abort(404, "Page does not exist."); } // a recipe item, should link to the recipe if (strpos($item->getName(), "Recipe: ") === 0) { $recipes = RecipeQuery::create()->findByName(substr($item->getName(), strlen("Recipe: ")));