460{
461
462
463
464 ListedStringToStringArrayMap& mapQuery = session.
__ctx.__queryMap;
465 ListedStringToStringArrayMap& mapForm = session.
__ctx.__formMap;
466
469 10,
470 -1
471 );
474 10,
475 -1
476 );
479 String strType =
getDefault(mapForm, L
"TYPE");
480 String strCharset =
getDefault(mapForm, L
"CHARSET");
481 String strLanguage =
getDefault(mapForm, L
"LANGUAGE");
482 String strTitle =
getDefault(mapForm, L
"TITLE");
483 String strDesc =
getDefault(mapForm, L
"COMMENT");
484
485 if (strType.isEmpty())
486 strType = L"text/html";
487
488 if (nPageID <= 0 ) {
489
490 return;
491 }
492
494 if (nOldPageID > 0)
496
499
501 "INSERT INTO DCL_PAGE (PAGE_ID, PERM_ID, CATEGORY_ID,"
502 " TYPE, CHARSET, LANGUAGE, TITLE,"
503 " COMMENT, UPDATE_TIME)\n"
504 "\n VALUES (:PAGE_ID, :PERM_ID, :CATEGORY_ID,"
505 " :TYPE, :CHARSET, :LANGUAGE, :TITLE,"
506 " :COMMENT, CURRENT_TIMESTAMP)"
507 );
508 }
509 else {
511 "DELETE FROM DCL_VIEW WHERE PAGE_ID = " + String::valueOf(nOldPageID)
512 );
513
515 "UPDATE DCL_PAGE SET "
516 "\n PAGE_ID = :PAGE_ID,"
517 " PERM_ID = :PERM_ID,"
518 " CATEGORY_ID = :CATEGORY_ID,"
519 " TYPE = :TYPE, CHARSET = :CHARSET,"
520 " LANGUAGE = :LANGUAGE, TITLE = :TITLE,"
521 " COMMENT = :COMMENT,"
522 " UPDATE_TIME = CURRENT_TIMESTAMP"
523 "\n WHERE PAGE_ID = :OLD_PAGE_ID"
524 );
525 }
526
527 SQLParams& params = q.
params();
528 params.
byName(L
"PAGE_ID").setValue(nPageID);
529 params.
byName(L
"PERM_ID").setValue(nPermID);
530 params.
byName(L
"CATEGORY_ID").setValue(nCategoryID);
531 params.
byName(L
"TYPE").setValue(strType);
532 if (strCharset.isEmpty())
533 params.
byName(L
"CHARSET").setNull();
534 else
535 params.
byName(L
"CHARSET").setValue(strCharset);
536
537 if (strLanguage.isEmpty())
538 params.
byName(L
"LANGUAGE").setNull();
539 else
540 params.
byName(L
"LANGUAGE").setValue(strLanguage);
541
542 if (strTitle.isEmpty())
543 params.
byName(L
"TITLE").setNull();
544 else
545 params.
byName(L
"TITLE").setValue(strTitle);
546
547 if (strDesc.isEmpty())
548 params.
byName(L
"COMMENT").setNull();
549 else
550 params.
byName(L
"COMMENT").setValue(strDesc);
551
553 params.
byName(L
"OLD_PAGE_ID").setValue(nOldPageID);
554
556
557
558
559
560
561
562
563
564
565
566
567
568 StringArray& vCLASS = mapForm[L"CLASS_ID"];
569 StringArray& vUSER = mapForm[L"USER_ID"];
570 StringArray& vDS = mapForm[L"DS_ID"];
571 StringArray& vSKIN = mapForm[L"SKIN_FILE"];
572 StringArray& vPARAMS = mapForm[L"PARAMETERS"];
573
575 "INSERT INTO DCL_VIEW "
576 "\n VALUES(:PAGE_ID, :NO, :CLASS_ID, :USER_ID, :DS_ID, :SKIN_FILE, :PARAMETERS)"
577 );
578 for(size_t i = 0; i < vCLASS.size(); i++) {
580 if (nClassID < 0) {
581
582 break;
583 }
589 if (vSKIN[i].isEmpty())
591 else
593
594 if (vPARAMS[i].isEmpty())
596 else
598
600 }
601
602 StringBuilder strNext =
getDefault(mapQuery, L
"next");
603 if (strNext.isEmpty()) {
604 strNext = __strDetailPage;
605 strNext += L"&_page=" + String::valueOf(nPageID);
606 }
607
608 String strListPage =
getDefault(mapQuery, L
"list");
609 if (!strListPage.isEmpty())
611
612 __pPage->refresh(session, L
"?page=" + strNext.toString());
613}
static String getDefault(ListedStringToStringArrayMap &map, const String &strKey)
static int parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
SQLParam & byName(const wchar_t *_name) _CONST __DCL_THROWS1(InvalidIndexException *)
void prepare(const String &_sql) __DCL_THROWS1(SQLException *)
_CONST SQLParams & params() _CONST
void execute() __DCL_THROWS1(SQLException *)
HttpServletContextEx & __ctx
static ByteString encode(const ByteString &_str)