X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Ffmshttprequesthandlerfactory.cpp;h=146d8f47ca91cac5e31a445fa6d17eb2fcaa8dfe;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hp=46f31a2d7fdc2ea4e9267ec5d7db8232ee7c9dc9;hpb=3751f10f7127ae0905aa0b52dc6de1c782a38c99;p=fms.git diff --git a/src/http/fmshttprequesthandlerfactory.cpp b/src/http/fmshttprequesthandlerfactory.cpp index 46f31a2..146d8f4 100644 --- a/src/http/fmshttprequesthandlerfactory.cpp +++ b/src/http/fmshttprequesthandlerfactory.cpp @@ -16,12 +16,25 @@ #include "../../include/http/pages/controlboardpage.h" #include "../../include/http/pages/peermaintenancepage.h" #include "../../include/http/pages/peertrustpage.h" +#include "../../include/http/pages/versioninfopage.h" +#include "../../include/http/pages/recentlyaddedpage.h" +#include "../../include/http/pages/forummainpage.h" +#include "../../include/http/pages/showimagepage.h" +#include "../../include/http/pages/forumthreadspage.h" +#include "../../include/http/pages/forumviewthreadpage.h" +#include "../../include/http/pages/forumcreatepostpage.h" +//ROBERT CHANGE +#include "../../include/http/pages/showpendingmessagepage.h" -FMSHTTPRequestHandlerFactory::FMSHTTPRequestHandlerFactory() +#include + +FMSHTTPRequestHandlerFactory::FMSHTTPRequestHandlerFactory(SQLite3DB::DB *db):IDatabase(db) { + Option option(m_db); + // set template std::string templatestr="Home

Could not open template.htm! Place in program directory and restart!


[CONTENT]"; - FILE *infile=fopen("template.htm","r+b"); + FILE *infile=fopen("template.htm","rb"); if(infile) { fseek(infile,0,SEEK_END); @@ -37,28 +50,55 @@ FMSHTTPRequestHandlerFactory::FMSHTTPRequestHandlerFactory() m_log->error("HTTPThread::HTTPThread could not open template.htm"); } + // load forum template + std::string forumtemplate="Home

Could not open forum-template.htm! Place in program directory and restart!


[CONTENT]"; + infile=fopen("forum-template.htm","rb"); + if(infile) + { + fseek(infile,0,SEEK_END); + long len=ftell(infile); + std::vector data(len,0); + fseek(infile,0,SEEK_SET); + fread(&data[0],1,len,infile); + fclose(infile); + forumtemplate.assign(data.begin(),data.end()); + } + else + { + m_log->error("HTTPThread::HTTPThread could not open forum-template.htm"); + } + // push back page handlers - m_pagehandlers.push_back(new OptionsPage(templatestr)); - m_pagehandlers.push_back(new CreateIdentityPage(templatestr)); - m_pagehandlers.push_back(new LocalIdentitiesPage(templatestr)); - m_pagehandlers.push_back(new ConfirmPage(templatestr)); - m_pagehandlers.push_back(new ShowCaptchaPage()); - m_pagehandlers.push_back(new AnnounceIdentityPage(templatestr)); - m_pagehandlers.push_back(new ExecQueryPage(templatestr)); - m_pagehandlers.push_back(new BoardsPage(templatestr)); - m_pagehandlers.push_back(new InsertedFilesPage(templatestr)); - m_pagehandlers.push_back(new AddPeerPage(templatestr)); - m_pagehandlers.push_back(new PeerDetailsPage(templatestr)); - m_pagehandlers.push_back(new ControlBoardPage(templatestr)); - m_pagehandlers.push_back(new PeerMaintenancePage(templatestr)); - m_pagehandlers.push_back(new PeerTrustPage(templatestr)); + m_pagehandlers.push_back(new OptionsPage(m_db,templatestr)); + m_pagehandlers.push_back(new CreateIdentityPage(m_db,templatestr)); + m_pagehandlers.push_back(new LocalIdentitiesPage(m_db,templatestr)); + m_pagehandlers.push_back(new ConfirmPage(m_db,templatestr)); + m_pagehandlers.push_back(new ShowCaptchaPage(m_db)); + m_pagehandlers.push_back(new AnnounceIdentityPage(m_db,templatestr)); + m_pagehandlers.push_back(new ExecQueryPage(m_db,templatestr)); + m_pagehandlers.push_back(new BoardsPage(m_db,templatestr)); + m_pagehandlers.push_back(new InsertedFilesPage(m_db,templatestr)); + m_pagehandlers.push_back(new AddPeerPage(m_db,templatestr)); + m_pagehandlers.push_back(new PeerDetailsPage(m_db,templatestr)); + m_pagehandlers.push_back(new ControlBoardPage(m_db,templatestr)); + m_pagehandlers.push_back(new PeerMaintenancePage(m_db,templatestr)); + m_pagehandlers.push_back(new PeerTrustPage(m_db,templatestr)); + m_pagehandlers.push_back(new VersionInfoPage(m_db,templatestr)); + m_pagehandlers.push_back(new RecentlyAddedPage(m_db,templatestr)); + m_pagehandlers.push_back(new ShowImagePage(m_db)); + m_pagehandlers.push_back(new ForumMainPage(m_db,forumtemplate)); + m_pagehandlers.push_back(new ForumThreadsPage(m_db,forumtemplate)); + m_pagehandlers.push_back(new ForumViewThreadPage(m_db,forumtemplate)); + m_pagehandlers.push_back(new ForumCreatePostPage(m_db,forumtemplate)); + //ROBERT CHANGE + m_pagehandlers.push_back(new ShowPendingMessagePage(m_db,templatestr)); // homepage must be last - catch all page handler - m_pagehandlers.push_back(new HomePage(templatestr)); + m_pagehandlers.push_back(new HomePage(m_db,templatestr)); // initialize the access control list std::string aclstr; std::vector aclparts; - Option::Instance()->Get("HTTPAccessControl",aclstr); + option.Get("HTTPAccessControl",aclstr); StringFunctions::Split(aclstr,",",aclparts); for(std::vector::iterator i=aclparts.begin(); i!=aclparts.end(); i++) {