00001
00002
00003
00004
00005
00006 #include "connectstring"
00007 #include <iostream>
00008 #include <iomanip>
00009 #include "cgiTemplates.h"
00010 #include "forms.h"
00011 #include "ocTypes.h"
00012 #include "ocString.h"
00013 #include "read_write_base.hpp"
00014 #include "forms_base.hpp"
00015 #include "list_base.hpp"
00016 #include "openLogin.h"
00017 #include "siteLimit.h"
00018 #include "menu_item.hpp"
00019 #include "link.hpp"
00020
00021 using namespace std;
00022 openLogin oLogin;
00023
00024 class menu_item_form: public menu_item, public forms_base
00025 {
00026 void addPageParagraphMenuItems()
00027 {
00028 ocString selPage = "select pg.id, pg.url from metasite.pages pg inner join links ln on pg.url = ln.url where ln.id = ";
00029 selPage.append( link_id );
00030 if( rs.open(selPage ) )
00031 {
00032 ocString URL = rs.getField(1).format();
00033 ocString selPars = "select place_order, name from metasite.paragraphs where name not like '-%' and page_id = ";
00034 selPars += rs.getField(0).format();
00035 rs.close();
00036 int order = place_order;
00037 bool opened = rs.open( selPars );
00038 while( opened )
00039 {
00040 script << "<p> add " << URL << "#paragraph_" << rs.getField(0).format() << "</p>" << endl;
00041 class link lnk;
00042 lnk.key(link_id);
00043
00044 if( lnk.get_data() )
00045 {
00046 lnk.id = 0;
00047 lnk.key(0);
00048 lnk.name = rs.getField(1).format();
00049 lnk.url = URL + "#paragraph_" + rs.getField(0).format();
00050
00051 if( lnk.db_insert() )
00052 {
00053 order++;
00054 menu_item mitm;
00055 mitm.site_id = site_id;
00056 mitm.menu_id = menu_id;
00057 mitm.link_id = lnk.key();
00058 mitm.template_tag = template_tag;
00059 mitm.locate_tag = locate_tag;
00060 mitm.target_tag = target_tag;
00061 mitm.label_tag = label_tag;
00062 mitm.place_order = order;
00063 mitm.place_level = place_level+1;
00064 if( mitm.db_insert() )
00065 {
00066 mitm.id = mitm.key();
00067 changeMap changes;
00068 changes["place_order"]="place_order";
00069 mitm.usupplemental(changes);
00070 }
00071 }
00072 }
00073 opened = rs.next();
00074 }
00075 }
00076 }
00077 public:
00078 menu_item_form(cgiScript & script):menu_item(),forms_base(script){setKey(*this);}
00079 virtual ~menu_item_form(){;}
00080
00081 void form_id_transfer( void )
00082 {
00083 llongFXfer( "id", id );
00084 }
00085 void form_data_transfer( void )
00086 {
00087
00088 llongFXfer( "site_id", site_id );
00089 llongFXfer( "menu_id", menu_id );
00090 llongFXfer( "link_id", link_id );
00091 stringFXfer( "template_tag", template_tag);
00092 stringFXfer( "locate_tag", locate_tag);
00093 stringFXfer( "target_tag", target_tag);
00094 stringFXfer( "label_tag", label_tag);
00095 intFXfer( "place_order", place_order);
00096 intFXfer( "place_level", place_level);
00097 }
00098
00099 bool dbf_action( string mode, changeMap & changes )
00100 {
00101 return db_action( mode, changes );
00102 }
00103
00104
00105 bool form_display( void )
00106 {
00107 bool breturn = true;
00108 string siteLimitation = siteFocus(oLogin);
00109 ocString sql = "select id, name from metasite.sites";
00110 if( siteLimitation.length() != 0 )
00111 {
00112 sql += " where id ";
00113 sql += siteLimitation;
00114 }
00115 script << makeTop("menu_item_ui.cgi", "MENU ITEMS")
00116 << formTemplate.getParagraph("advanced_begin");
00117
00118 ocString grok = "<a href='?";
00119 if( id > 0 )
00120 {
00121 grok += "Id=";
00122 grok.append(id);
00123 grok += "&";
00124 }
00125 if(menu_id)
00126 {
00127 grok += "menu_id=8";
00128 grok.append(menu_id);
00129 grok += "&";
00130 }
00131 grok += "addPageItems=true'>Add Page Paragraph Items</a>";
00132 script << grok;
00133 script << makeStaticBox("Id", "id", id, "12")
00134 << "<br class='clearall'>" << endl
00135 << makeComboBox( "Site", "site_id", site_id,
00136 sql.c_str() );
00137 sql = "select id, name from metasite.menus where id = ";
00138 sql.append(menu_id);
00139 script << makeComboBox( "Menu", "menu_id", menu_id,
00140 sql.c_str() )
00141 << "<br class='clearall'>" << endl
00142 << makeTextBox("locate_tag","locate_tag",locate_tag,"150","25")
00143 << makeTextBox("target_tag","target_tag",target_tag,"150","25")
00144 << "<br class='clearall'>" << endl;
00145
00146
00147 script << formTemplate.getParagraph("advanced_end");
00148
00149 if( script.ClientArguments().count("addPageItems") == 1 ) addPageParagraphMenuItems();
00150
00151 script << makeTextBox("place_order","place_order",place_order,"8")
00152 << "<br class='clearall'>" << endl
00153 << makeTextBox("place_level","place_level",place_level,"8")
00154 << "<br class='clearall'>" << endl;
00155 sql = "select id, name from metasite.links where site_id ";
00156 sql += siteLimitation;
00157 sql += " order by name";
00158 script << makeComboBox( "Link", "link_id", link_id, sql.c_str() );
00159 script << " <a href='javascript:addLink()'>Create</a>";
00160 if( link_id ) script << " <a href='javascript:updateLink()'>Update</a>";
00161 script << "<br class='clearall'>" << endl;
00162 script << makeMetaBox("template_tag","template_tag",template_tag,"35","","menu items")
00163 << "<br class='clearall'>" << endl
00164
00165 << makeButtons( key() );
00166 script << makeBottom( m_result ) << endl;
00167 return breturn;
00168 }
00169 };
00170
00171
00172 int main( int argcount, char ** args )
00173 {
00174 cgiScript script( "text/html", false );
00175 menu_item_form myFrm(script);
00176
00177 if( oLogin.testLoginStatus() )
00178 {
00179 script.closeHeader();
00180 cgiTemplates pgoo;
00181 pgoo.load("Templates/adminPane.htmp");
00182
00183 script << ocString(pgoo.getParagraph("top"))
00184 .replaceAll("$heading$","SITES")
00185 .replace("// More Functions?",
00186 "var xdoc = myDom.newXMLHttpRequest();"
00187 "function addLink(){\n"
00188 " jopen('link_ui.cgi','scrollbars,resizable,width=450,height=300','link');\n"
00189 "}\n"
00190 "function updateLink(){\n"
00191 " var link='link_ui.cgi?Id=';"
00192 " link += myDom.getElementById('link_id').value;\n"
00193 " jopen(link,'scrollbars,resizable,width=450,height=300','link');\n"
00194 "}\n");
00195
00196 myFrm.loadControlTemplates("Templates/childdivform.htmp");
00197
00198 myFrm.form_action();
00199
00200 myFrm.form_display();
00201
00202
00203 ocString end = pgoo.getParagraph("bottom");
00204 script << end;
00205
00206 }
00207 else
00208 {
00209 script.Redirect("signIn.html");
00210 }
00211 }
00212
00213
00214 #include "read_write_base.cpp"
00215 #include "forms_base.cpp"