concrete5/concrete5 — pull request #850 by Remo (2013-01-11 15:03:22+00:00)
Title: handle task on home page

Let's have a look at these page / task URL examples:

1. http://localhost/demo-page/
2. http://localhost/demo-page/task/
3. http://localhost/task/

* The first one is easy, search for the path in PagePaths and return the correct page object.
* The second one is almost as easy, in Request->getRequestedPage we search for the path, couldn't find it? remove the last part (task/) and search again. Path found? Return page object
* The last one is a bit trickier though. The same happens as above, we remove the task but as soon as no path is left, we return $c->loadError(COLLECTION_NOT_FOUND);

In my opinion, this is not correct. The COLLECTION_NOT_FOUND method should be handled in the controller and not in the request object. I simply return Page::getByID(HOME_CID) if this happens and still get a 404 page if the task doesn't exist.

This changes makes the 404 page a bit slower but without it, we can't handle tasks on the home page properly. At least I couldn't find a way to handle it nicely..