Commit 5266b6ed authored by jan.koester's avatar jan.koester
Browse files

static content have search

parent 018a2d28
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -381,6 +381,36 @@ bool blogi::StaticPage::Controller(const int tid,libhttppp::HttpRequest *req,lib
    return false;
}

void blogi::StaticPage::Search(const int tid, const char* word, blogi::SearchRet& result, const char* sessionid){
    std::vector<char> buf;
    blogi::SQL sql;
    blogi::DBResult res;
    sql << "SELECT id,url,meta,text FROM table WHERE text LIKE '%s'"<< sql.escaped(buf,word) <<"'%' OR meta LIKE '%" << sql.escaped(buf,word) << "%';";

    int count=Args->database[tid]->exec(&sql,res);

    for (int i=0; i < count; ++i) {
        SearchRet::Data data;
        data.title=res[i][2];

        int tlen = strlen(res[i][3]) < 25 ? strlen(res[i][3]) : 25;

        std::copy(res[i][3],res[i][3]+tlen,std::back_inserter(data.text));

        char url[512];
        std::string surl=Args->config->buildurl("staticpage/",url,512);

        surl+=res[i][1];

        data.anchor=surl;

        result.push_back(data);

    }

}


const char * blogi::StaticPage::getAuthor(){
    return "Jan Koester";
}
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ namespace blogi {

        bool Controller(const int tid,libhttppp::HttpRequest *req,libhtmlpp::HtmlElement *page,const char *sessionid);
        void Settings(const int tid,libhttppp::HttpRequest * req, libhtmlpp::HtmlString & setdiv,const char *sessionid);
        void Search(const int tid, const char* word, blogi::SearchRet &result, const char* sessionid);
    private:
        void newPage(const int tid,libhttppp::HttpRequest * req, libhtmlpp::HtmlString & setdiv);
        void delPage(const int tid,libhttppp::HttpRequest * req, libhtmlpp::HtmlString & setdiv);