00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef paragraphs_HPP
00012 #define paragraphs_HPP
00013
00014 #include "read_write_base.hpp"
00015
00016 class paragraphs_Obj: public read_write_base
00017 {
00018 public:
00019 identifier id;
00020 llong site_id;
00021 llong page_id;
00022 int place_order;
00023 string template_tag;
00024 string replace_tag;
00025 string name;
00026 string content;
00027 llong author;
00028 time_date time_authored;
00029 time_date time_start;
00030 time_date time_end;
00031 bool approved;
00032 string section;
00033 paragraphs_Obj():read_write_base()
00034 ,id(0LL)
00035 ,site_id(0LL)
00036 ,page_id(0LL)
00037 ,place_order(0)
00038 ,template_tag("")
00039 ,replace_tag("")
00040 ,name("")
00041 ,content("")
00042 ,author(0LL)
00043 ,time_authored( )
00044 ,time_start( )
00045 ,time_end( )
00046 ,approved(false)
00047 ,section("")
00048 {
00049
00050 data_name("metasite.paragraphs");
00051
00052 addDXMap( new llongXfer("id", &id ));
00053 addDXMap( new llongXfer("site_id", &site_id ));
00054 addDXMap( new llongXfer("page_id", &page_id ));
00055 addDXMap( new intXfer("place_order", &place_order ));
00056 addDXMap( new stringXfer("template_tag", &template_tag ));
00057 addDXMap( new stringXfer("replace_tag", &replace_tag ));
00058 addDXMap( new stringXfer("name", &name ));
00059 addDXMap( new stringXfer("content", &content ));
00060 addDXMap( new llongXfer("author", &author ));
00061 addDXMap( new time_dateXfer("time_authored", &time_authored ));
00062 addDXMap( new time_dateXfer("time_start", &time_start ));
00063 addDXMap( new time_dateXfer("time_end", &time_end ));
00064 addDXMap( new boolXfer("approved", &approved ));
00065 addDXMap( new stringXfer("section", §ion ));
00066 }
00067 virtual bool ivalidate( void )
00068 {
00069 bool bres=true;
00070 if( site_id < 1 )
00071 {
00072 bres=false;
00073 m_result="Please Specify a Site.";
00074 }
00075 else if ( page_id < 1 )
00076 {
00077 bres=false;
00078 m_result="Please Specify a Page.";
00079 }
00080 else if( section.length() == 0 )
00081 {
00082 bres=false;
00083 m_result="Please Specify the Section.";
00084 }
00085 else if( replace_tag.length() == 0 )
00086 {
00087 bres=false;
00088 m_result="Please Specify the Replacement Tag!";
00089 }
00090 else if( name.length() == 0 )
00091 {
00092
00093 name=content.substr(0,20);
00094 }
00095 else
00096 {
00097
00098 if( place_order == 0 )
00099 {
00100 ocString msql = "select max(place_order) from metasite.paragraphs "
00101 "where page_id = ";
00102 msql.append( page_id );
00103 if( section.length() )
00104 {
00105 msql += " and section ='" + section + "'";
00106 }
00107 if(rs.open(msql))
00108 {
00109 place_order = atol(rs.getField(0).format().c_str()) + 1;
00110 rs.close();
00111 }
00112 }
00113 }
00114 return bres;
00115 }
00116 virtual bool ssupplemental( void )
00117 {
00118 return true;
00119 }
00120 virtual bool uvalidate( changeMap & changes )
00121 {
00122 return true;
00123 }
00124 virtual bool usupplemental( changeMap & changes )
00125 {
00126
00127 if( changes.find("place_order") != changes.end() )
00128 {
00129 ocString msql = "select id from metasite.paragraphs "
00130 "where page_id = ";
00131 msql.append( page_id );
00132 msql += " and place_order = ";
00133 msql.append( place_order );
00134 msql += " and id <> ";
00135 msql.append( id );
00136 msql += " and template_tag = '" + section + "'";
00137 if(rs.open(msql))
00138 {
00139 rs.close();
00140
00141 msql = "update metasite.paragraphs set place_order=place_order+1 where page_id = ";
00142 msql.append( page_id );
00143 msql += " and place_order >= ";
00144 msql.append( place_order );
00145 msql += " and id <> ";
00146 msql.append( id );
00147 msql += " and section = '" + section + "'";
00148 cmd.execute(msql);
00149 }
00150 }
00151 return true;
00152 }
00153
00154 };
00155 #endif
00156
00157
00158
00159