#include "content.hpp" #include "page.hpp" #include "aCms.hpp" #include #include #include namespace apps { // page page::page( aCms &cms ) : master( cms ) { cms.dispatcher( ).assign( "/page/(\\w+)", &page::display, this, 1 ); cms.dispatcher( ).assign( "/api/pages", &page::api_pages, this ); cms.dispatcher( ).assign( "/api/page/(\\w+)", &page::api_page, this, 1 ); } void page::display( std::string slug ) { content::page c( cms ); ini( c ); render( "page_display", c ); } void page::api_pages( ) { cppdb::session sql( cms.conn ); cppdb::result r; r = sql << "SELECT slug, title, content FROM page"; std::vector pages; while( r.next( ) ) { Page page; r >> page.slug; r >> page.title; r >> page.content; pages.push_back( page ); } cppcms::json::value j; j = pages; response( ).out( ) << j; } void page::api_page( std::string slug ) { cppdb::session sql( cms.conn ); cppdb::result r; r = sql << "SELECT slug, title, content FROM page WHERE slug=?" << slug << cppdb::row; if( r.empty( ) ) { return; } Page page; r >> page.slug; r >> page.title; r >> page.content; cppcms::json::value j; j = page; response( ).out( ) << j; } void page::ini( content::page &c ) { master::ini( c ); } } // namespace apps namespace content { page::page( apps::aCms &cms ) : page_edit( cms ) { } page_edit_form::page_edit_form( apps::aCms &cms ) : cppcms::form( ), cms( cms ) { title.message( "Title" ); title.error_message( "The title must not be empty" ); content.message( "Content" ); save.value( "Save" ); preview.value( "Preview" ); add( title ); add( content ); add( save ); add( preview ); title.non_empty( ); } bool page_edit_form::validate( ) { if( !form::validate( ) ) { return false; } return true; } } // namespace content