00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "read_base.hpp"
00010 #include "openLogin.h"
00011
00012 string siteIds( openLogin & login )
00013 {
00014 string sql;
00015 if( login.SiteAdmin() == false )
00016 {
00017 sql += " ";
00018 quickQuery qqry;
00019 string getSql = "select site_id from metasite.group_sites where group_id = ";
00020 getSql += login.GroupId();
00021 openRS & rs = qqry.getData(getSql);
00022 bool isOpen;
00023 for( isOpen = qqry.opened;isOpen;isOpen=rs.next())
00024 {
00025 sql += rs.getField(0).format();
00026 sql += ", ";
00027 }
00028
00029 if( sql.length() > 2 )
00030 {
00031 sql.resize(sql.length()-2);
00032 }
00033 sql += " ";
00034 }
00035 return sql;
00036 }
00037
00038 string siteLimits( openLogin & login )
00039 {
00040 string sql;
00041 if( login.SiteAdmin() == false )
00042 {
00043 string inList = siteIds( login );
00044 if( inList.length() )
00045 {
00046 sql += " in (";
00047 sql += inList;
00048 sql += ")";
00049 }
00050 }
00051 return sql;
00052 }
00053
00054 string siteFocus( openLogin & login )
00055 {
00056
00057 cgiCookie cookie;
00058
00059 cookie.setPath("/");
00060 string site_id = cookie.get("site_id");
00061 string sql;
00062
00063 if( site_id.length() )
00064 {
00065 sql = " = ";
00066 sql += site_id;
00067 }
00068 return sql;
00069 }
00070
00071
00072
00073 string currentSite( cgiInput & args )
00074 {
00075 string site;
00076
00077 cgiCookie cookie;
00078
00079 cookie.setPath("/");
00080
00081 site = cookie.get("site_id");
00082 if( site.length() == 0 )
00083 {
00084 cgiEnvironment cgiEnv;
00085 ocString domain = cgiEnv.ServerName().c_str();
00086 ocString relpath = cgiEnv.ScriptName().c_str();
00087 if( domain.length() )
00088 {
00089 relpath = relpath.parse("sys");
00090 quickQuery qqry;
00091 string getSql = "select id from metasite.sites where domain = '";
00092 getSql += domain + "' and url = '";
00093 getSql += relpath + "'";
00094 openRS & rs = qqry.getData(getSql);
00095 if( qqry.opened )
00096 {
00097 site = rs.getField(0).format();
00098 cookie.set( "site_id", site.c_str() );
00099 }
00100 else
00101 {
00102 cerr << "Error finding site - " << getSql << endl;
00103 }
00104 }
00105 }
00106 return site;
00107 }
00108
00109 string templateFromId( string template_id )
00110 {
00111 string ret;
00112 quickQuery qqry;
00113 string getSql = "select path from metasite.templates where id = ";
00114 getSql += template_id;
00115 openRS & rs = qqry.getData(getSql);
00116 if( qqry.opened )
00117 {
00118 ret = rs.getField(0).format();
00119 rs.close();
00120 }
00121 return ret;
00122 }
00123
00124 string templateFromPageId( string page_id )
00125 {
00126 string ret;
00127 quickQuery qqry;
00128 string getSql = "select template_id from metasite.pages where id = ";
00129 getSql += page_id;
00130 openRS & rs = qqry.getData(getSql);
00131 if( qqry.opened )
00132 {
00133 string template_id = rs.getField(0).format();
00134 rs.close();
00135 ret = templateFromId( template_id );
00136 }
00137 return ret;
00138 }