/* FILE tLocal source code of mysqlSendmail.cgi (built by mysqlRAD2.cgi (c) Gary Wallis 2001,2002 GPL Licensed) $Id: tlocal.c 6 2005-11-24 00:02:59Z ggw $ (tAuthorize.cPasswd template set member) PURPOSE */ #include "mysqlrad.h" //Table Variables //uLocal: Primary Key static unsigned uLocal=0; //cDomain: Domain for local mail delivery static char cDomain[33]={""}; //uServer: Server account is on static unsigned uServer=0; static char cuServerPullDown[256]={""}; //uOwner: Record owner static unsigned uOwner=0; //uCreatedBy: uClient for last insert static unsigned uCreatedBy=0; #define ISM3FIELDS //uCreatedDate: Unix seconds date last insert static long unsigned uCreatedDate=0; //uModBy: uClient for last update static unsigned uModBy=0; //uModDate: Unix seconds date last update static long unsigned uModDate=0; #define VAR_LIST_tLocal "tLocal.uLocal,tLocal.cDomain,tLocal.uServer,tLocal.uOwner,tLocal.uCreatedBy,tLocal.uCreatedDate,tLocal.uModBy,tLocal.uModDate" //Local only void Insert_tLocal(void); void Update_tLocal(char *rowid); int InsertUpdate_tLocal(char *cKey); void ProcesstLocalListVars(pentry entries[], int x); //In tLocalfunc.h file included below void ExtProcesstLocalVars(pentry entries[], int x); void ExttLocalCommands(pentry entries[], int x); void ExttLocalButtons(void); void ExttLocalNavBar(void); void ExttLocalGetHook(entry gentries[], int x); void ExttLocalSelect(void); void ExttLocalSelectRow(void); void ExttLocalListSelect(void); void ExttLocalListFilter(void); void ExttLocalAuxTable(void); #include "tlocalfunc.h" //Table Variables Assignment Function void ProcesstLocalVars(pentry entries[], int x) { register int i; for(i=0;i\n"); printf("\n"); printf(""); printf("
"); ExttLocalNavBar(); printf(""); printf("",rowid); if(i) { printf(" "); if(mode==6) //printf(" Found"); printf(LANG_NBR_FOUND); else if(mode==5) //printf(" Modified"); printf(LANG_NBR_MODIFIED); else if(mode==4) //printf(" New"); printf(LANG_NBR_NEW); printf(LANG_NBRF_SHOWING,rowid,i); } else { if(!result[0]) //printf(" No records found"); printf(LANG_NBR_NORECS); } if(result[0]) printf(" %s",result); printf("
"); ExttLocalButtons(); printf(""); printf("\n"); if(mode==2000 || mode==2002) tLocalInputContent(); else tLocalContent(); printf("
\n"); printf("
\n"); //Bottom table ExttLocalAuxTable(); printf("\n"); Footer_ism3(); }//end of tLocal(); void tLocalContent(void) { OpenRow(LANG_FL_tLocal_uLocal,"white"); printf("%u\n",uLocal,uLocal); printf("  "); OpenRow(LANG_FL_tLocal_cDomain,EmptyString(cDomain)); printf("%s",cDomain,EncodeDoubleQuotes(cDomain)); printf("  "); OpenRow(LANG_FL_tLocal_uServer,IsZero(uServer)); tTablePullDownReadOnly("tServer;cuServerPullDown","cLabel","cLabel",uServer); printf("  "); OpenRow(LANG_FL_tLocal_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); printf("  "); OpenRow(LANG_FL_tLocal_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); printf("  "); OpenRow(LANG_FL_tLocal_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); printf("  "); OpenRow(LANG_FL_tLocal_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); printf("  "); OpenRow(LANG_FL_tLocal_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("  "); printf("\n"); }//tLocalContent() void tLocalInputContent(void) { OpenRow(LANG_FL_tLocal_uLocal,"white"); if(uPermLevel>=20) printf("\n",LANG_FT_tLocal_uLocal,uLocal); else printf("%u\n",uLocal,uLocal); OpenRow(LANG_FL_tLocal_cDomain,EmptyString(cDomain)); if(uPermLevel>=10 || (uPermLevel>=8 && mode!=2000)) printf("\n",LANG_FT_tLocal_cDomain,EncodeDoubleQuotes(cDomain)); else printf("%s",cDomain,EncodeDoubleQuotes(cDomain)); OpenRow(LANG_FL_tLocal_uServer,IsZero(uServer)); if(uPermLevel>=10) tTablePullDown("tServer;cuServerPullDown","cLabel","cLabel",uServer); else { tTablePullDownReadOnly("tServer;cuServerPullDown","cLabel","cLabel",uServer); } OpenRow(LANG_FL_tLocal_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); OpenRow(LANG_FL_tLocal_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); OpenRow(LANG_FL_tLocal_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); OpenRow(LANG_FL_tLocal_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); OpenRow(LANG_FL_tLocal_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("\n"); }//void tLocalInputContent(void) void NewtLocal(unsigned uMode) { register int i=0; MYSQL_RES *res; //New select sprintf(query,"SELECT uLocal FROM tLocal\ WHERE uLocal=%u" ,uLocal); mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); if(i) //tLocal("Record already exists"); tLocal(LANG_NBR_RECEXISTS); //insert query Insert_tLocal(); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"New record %u added"); uLocal=mysql_insert_id(&mysql); if(!uMode) { sprintf(query,LANG_NBR_NEWRECADDED,uLocal); tLocal(query); } }//NewtLocal(unsigned uMode) void DeletetLocal(void) { #ifdef ISM3FIELDS sprintf(query,"DELETE FROM tLocal WHERE uLocal=%u AND ( uOwner=%u OR %u>9 )" ,uLocal,uLoginClient,uPermLevel); #else sprintf(query,"DELETE FROM tLocal WHERE uLocal=%u" ,uLocal); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //tLocal("Record Deleted"); if(mysql_affected_rows(&mysql)>0) tLocal(LANG_NBR_RECDELETED); else tLocal(LANG_NBR_RECNOTDELETED); }//void DeletetLocal(void) void Insert_tLocal(void) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //insert query //insert query sprintf(query,"INSERT INTO tLocal SET uLocal=%u, cDomain='%s', uServer=%u, uOwner=%u, uCreatedBy=%u, uCreatedDate=%lu, uModBy=%u, uModDate=0", uLocal ,TextAreaSave(cDomain) ,uServer ,uOwner ,uCreatedBy ,(long unsigned)clock ,uModBy ); mysql_query(&mysql,query); #ifdef ISM3FIELDS uCreatedDate=clock; #endif }//void Insert_tLocal(void) void Update_tLocal(char *rowid) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //update query //update query sprintf(query,"UPDATE tLocal SET uLocal=%u,cDomain='%s',uServer=%u,uModBy=%u,uModDate=%lu WHERE _rowid=%s", uLocal ,TextAreaSave(cDomain) ,uServer ,uModBy ,(long unsigned)clock ,rowid); mysql_query(&mysql,query); #ifdef ISM3FIELDS uModDate=clock; #endif }//void Update_tLocal(void) void ModtLocal(void) { register int i=0; MYSQL_RES *res; MYSQL_ROW field; #ifdef ISM3FIELDS unsigned uPreModDate=0; //Mod select query if(uPermLevel<10) sprintf(query,"SELECT tLocal.uLocal,\ tLocal.uModDate\ FROM tLocal,tClient\ WHERE tLocal.uLocal=%u\ AND tLocal.uOwner=tClient.uClient\ AND (tClient.uOwner=%u OR tClient.uClient=%u)" ,uLocal,uLoginClient,uLoginClient); else sprintf(query,"SELECT uLocal,uModDate FROM tLocal\ WHERE uLocal=%u" ,uLocal); #else sprintf(query,"SELECT uLocal FROM tLocal\ WHERE uLocal=%u" ,uLocal); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); //if(i<1) tLocal("Record does not exist"); if(i<1) tLocal(LANG_NBR_RECNOTEXIST); //if(i>1) tLocal("Multiple rows!"); if(i>1) tLocal(LANG_NBR_MULTRECS); field=mysql_fetch_row(res); #ifdef ISM3FIELDS sscanf(field[1],"%u",&uPreModDate); if(uPreModDate!=uModDate) tLocal(LANG_NBR_EXTMOD); #endif Update_tLocal(field[0]); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"record %s modified",field[0]); sprintf(query,LANG_NBRF_REC_MODIFIED,field[0]); tLocal(query); }//ModtLocal(void) void tLocalList(void) { MYSQL_RES *res; MYSQL_ROW field; ExttLocalListSelect(); mysql_query(&mysql,query); if(mysql_error(&mysql)[0]) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); PageMachine("tLocalList",1,"");//1 is auto header list mode. Opens table! //Filter select drop down ExttLocalListFilter(); printf("",command); printf("\n"); printf("\n"); printf(""); mysql_data_seek(res,start-1); for(n=0;n<(end-start+1);n++) { field=mysql_fetch_row(res); if(!field) { printf("
uLocalcDomainuServeruOwneruCreatedByuCreatedDateuModByuModDate
End of data
"); Footer_ism3(); } if(n % 2) printf(""); else printf(""); printf(" %s%s%s%s%s%s%s%s" ,field[0] ,field[0] ,field[1] ,field[2] ,field[3] ,field[4] ,field[5] ,field[6] ,field[7] ); } printf("\n"); Footer_ism3(); }//tLocalList() void CreatetLocal(void) { sprintf(query,"CREATE TABLE tLocal ( uLocal int unsigned PRIMARY KEY AUTO_INCREMENT, cDomain varchar(32) NOT NULL DEFAULT '',unique (cDomain,uServer), uOwner int unsigned NOT NULL DEFAULT 0,index (uOwner), uCreatedBy int unsigned NOT NULL DEFAULT 0, uCreatedDate int unsigned NOT NULL DEFAULT 0, uModBy int unsigned NOT NULL DEFAULT 0, uModDate int unsigned NOT NULL DEFAULT 0, uServer int unsigned NOT NULL DEFAULT 0,index (uServer) )"); mysql_query(&mysql,qstr); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); }//CreatetLocal() //sedall patch1