@@ -369,73 +369,54 @@ private:
369369 boost ::split (parts , path , boost ::is_any_of ("/" ));
370370
371371 WDate lower , upper ;
372- int year = boost ::lexical_cast < int > (parts [0 ]);
372+ try {
373+ int year = boost ::lexical_cast < int > (parts [0 ]);
373374
374- if (parts .size () > 1 ) {
375- int month = boost ::lexical_cast < int > (parts [1 ]);
375+ if (parts .size () > 1 ) {
376+ int month = boost ::lexical_cast < int > (parts [1 ]);
376377
377- if (parts .size () > 2 ) {
378- int day = boost ::lexical_cast < int > (parts [2 ]);
378+ if (parts .size () > 2 ) {
379+ int day = boost ::lexical_cast < int > (parts [2 ]);
379380
380- lower .setDate (year , month , day );
381- upper = lower .addDays (1 );
381+ lower .setDate (year , month , day );
382+ upper = lower .addDays (1 );
383+ } else {
384+ lower .setDate (year , month , 1 );
385+ upper = lower .addMonths (1 );
386+ }
382387 } else {
383- lower .setDate (year , month , 1 );
384- upper = lower .addMonths (1 );
388+ lower .setDate (year , 1 , 1 );
389+ upper = lower .addYears (1 );
385390 }
386- } else {
387- lower .setDate (year , 1 , 1 );
388- upper = lower .addYears (1 );
389- }
390-
391- Posts posts = session_ .find < Post >
392- ("where date >= ? "
393- "and date < ? "
394- "and (state = ? or author_id = ?)" )
395- .bind (WDateTime (lower ))
396- .bind (WDateTime (upper ))
397- .bind (Post ::Published )
398- .bind (session_ .user ().id ());
399-
400- if (parts .size () > 3 ) {
401- std ::string title = parts [3 ];
402-
403- for (Posts ::const_iterator i = posts .begin (); i != posts .end (); ++ i )
404- if ((* i )-> titleToUrl () == title ) {
405- showPost (* i , PostView ::Detail , parent );
406- return ;
407- }
408391
392+ Posts posts = session_ .find < Post >
393+ ("where date >= ? "
394+ "and date < ? "
395+ "and (state = ? or author_id = ?)" )
396+ .bind (WDateTime (lower ))
397+ .bind (WDateTime (upper ))
398+ .bind (Post ::Published )
399+ .bind (session_ .user ().id ());
400+
401+ if (parts .size () > 3 ) {
402+ std ::string title = parts [3 ];
403+
404+ for (Posts ::const_iterator i = posts .begin (); i != posts .end (); ++ i )
405+ if ((* i )-> titleToUrl () == title ) {
406+ showPost (* i , PostView ::Detail , parent );
407+ return ;
408+ }
409+
410+ showError (tr ("blog-no-post" ));
411+ } else {
412+ showPosts (posts , parent );
413+ }
414+ } catch (std ::exception & e ) {
409415 showError (tr ("blog-no-post" ));
410- } else {
411- showPosts (posts , parent );
412416 }
413417 }
414418
415419 void showPosts (dbo ::ptr < User > user ) {
416- /*
417- <<<<<<< HEAD:examples/blog/view/BlogView.C
418- if (user == session_.user() && user->role == User::Admin) {
419- WTemplate *authorPanel = new WTemplate(tr("blog-author-panel"), items_);
420-
421- WPushButton *newPost = new WPushButton(tr("new-post"));
422- newPost->clicked().connect(this, &BlogImpl::newPost);
423-
424- WContainerWidget *unpublishedPosts = new WContainerWidget();
425- showPosts(user->allPosts(Post::Unpublished), unpublishedPosts);
426-
427- authorPanel->bindString("user", user->name);
428- authorPanel->bindInt("unpublished-count",
429- user->allPosts(Post::Unpublished).size());
430- authorPanel->bindInt("published-count",
431- user->allPosts(Post::Published).size());
432- authorPanel->bindWidget("new-post", newPost);
433- authorPanel->bindWidget("unpublished-posts", unpublishedPosts);
434- }
435-
436- =======
437- >>>>>>> bvh_blog:examples/blog/view/BlogView.C
438- */
439420 showPosts (user -> latestPosts (), items_ );
440421 }
441422
0 commit comments