예제 #1
0
 /**
  * Creates an Link object based on a DB row.
  *
  * @param array $row The DB row containing Link data.
  * @return \WebLinks\Domain\Link
  */
 protected function buildDomainObject($row)
 {
     $link = new Link();
     $link->setId($row['link_id']);
     $link->setTitle($row['link_title']);
     $link->setUrl($row['link_url']);
     if (array_key_exists('user_id', $row)) {
         // Find and set the associated user
         $userId = $row['user_id'];
         $user = $this->userDAO->find($userId);
         $link->setAuthor($user);
     }
     return $link;
 }
예제 #2
0
 /**
  * Submit link controller.
  * 
  * @param Request $request Incoming request
  * @param Application $app Silex application
  */
 public function submitLinkAction(Request $request, Application $app)
 {
     $linkFormView = null;
     if ($app['security.authorization_checker']->isGranted('IS_AUTHENTICATED_FULLY')) {
         $link = new Link();
         $author = $app['user'];
         $link->setAuthor($author);
         $linkForm = $app['form.factory']->create(new LinkType(), $link);
         $linkForm->handleRequest($request);
         if ($linkForm->isSubmitted() && $linkForm->isValid()) {
             $app['dao.link']->save($link);
             $app['session']->getFlashBag()->add('success', 'The link was successfully added.');
         }
         $linkFormView = $linkForm->createView();
     }
     return $app['twig']->render('link_form.html.twig', array('title' => 'New link', 'linkForm' => $linkFormView));
 }
예제 #3
0
use WebLinks\Domain\Link;
use WebLinks\Form\Type\LinkType;
// Home page
$app->get('/', function () use($app) {
    $links = $app['dao.link']->findAll();
    return $app['twig']->render('index.html.twig', array('links' => $links));
});
// Submit link page
$app->match('/link/submit', function (Request $request) use($app) {
    $valid = false;
    $user = $app['security']->getToken()->getUser();
    $linkFormView = null;
    if ($app['security']->isGranted('IS_AUTHENTICATED_FULLY')) {
        // A user is fully authenticated : he can add links
        $link = new Link();
        $link->setAuthor($user);
        $linkForm = $app['form.factory']->create(new LinkType(), $link);
        $linkForm->handleRequest($request);
        if ($linkForm->isSubmitted() && $linkForm->isValid()) {
            $app['dao.link']->save($link);
            $app['session']->getFlashBag()->add('success', 'Your link was succesfully added.');
        }
        $linkFormView = $linkForm->createView();
    }
    return $app['twig']->render('link_submit.html.twig', array('linkForm' => $linkFormView, 'valid' => $valid));
});
// Login form
$app->get('/login', function (Request $request) use($app) {
    return $app['twig']->render('login.html.twig', array('error' => $app['security.last_error']($request), 'last_username' => $app['session']->get('_security.last_username')));
})->bind('login');
// named route so that path('login') works in Twig templates