| @@ 547-664 (lines=118) @@ | ||
| 544 | * |
|
| 545 | * @return string rendered form element |
|
| 546 | */ |
|
| 547 | public function renderFormTextDateSelect(XoopsFormTextDateSelect $element) |
|
| 548 | { |
|
| 549 | static $included = false; |
|
| 550 | if (file_exists(XOOPS_ROOT_PATH . '/language/' . $GLOBALS['xoopsConfig']['language'] . '/calendar.php')) { |
|
| 551 | include_once XOOPS_ROOT_PATH . '/language/' . $GLOBALS['xoopsConfig']['language'] . '/calendar.php'; |
|
| 552 | } else { |
|
| 553 | include_once XOOPS_ROOT_PATH . '/language/english/calendar.php'; |
|
| 554 | } |
|
| 555 | ||
| 556 | $ele_name = $element->getName(); |
|
| 557 | $ele_value = $element->getValue(false); |
|
| 558 | if (is_string($ele_value)) { |
|
| 559 | $display_value = $ele_value; |
|
| 560 | $ele_value = time(); |
|
| 561 | } else { |
|
| 562 | $display_value = date(_SHORTDATESTRING, $ele_value); |
|
| 563 | } |
|
| 564 | ||
| 565 | $jstime = formatTimestamp($ele_value, _SHORTDATESTRING); |
|
| 566 | if (isset($GLOBALS['xoTheme']) && is_object($GLOBALS['xoTheme'])) { |
|
| 567 | $GLOBALS['xoTheme']->addScript('include/calendar.js'); |
|
| 568 | $GLOBALS['xoTheme']->addStylesheet('include/calendar-blue.css'); |
|
| 569 | if (!$included) { |
|
| 570 | $included = true; |
|
| 571 | $GLOBALS['xoTheme']->addScript('', '', ' |
|
| 572 | var calendar = null; |
|
| 573 | ||
| 574 | function selected(cal, date) |
|
| 575 | { |
|
| 576 | cal.sel.value = date; |
|
| 577 | } |
|
| 578 | ||
| 579 | function closeHandler(cal) |
|
| 580 | { |
|
| 581 | cal.hide(); |
|
| 582 | Calendar.removeEvent(document, "mousedown", checkCalendar); |
|
| 583 | } |
|
| 584 | ||
| 585 | function checkCalendar(ev) |
|
| 586 | { |
|
| 587 | var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev); |
|
| 588 | for (; el != null; el = el.parentNode) |
|
| 589 | if (el == calendar.element || el.tagName == "A") break; |
|
| 590 | if (el == null) { |
|
| 591 | calendar.callCloseHandler(); Calendar.stopEvent(ev); |
|
| 592 | } |
|
| 593 | } |
|
| 594 | function showCalendar(id) |
|
| 595 | { |
|
| 596 | var el = xoopsGetElementById(id); |
|
| 597 | if (calendar != null) { |
|
| 598 | calendar.hide(); |
|
| 599 | } else { |
|
| 600 | var cal = new Calendar(true, "' . $jstime . '", selected, closeHandler); |
|
| 601 | calendar = cal; |
|
| 602 | cal.setRange(1900, 2100); |
|
| 603 | calendar.create(); |
|
| 604 | } |
|
| 605 | calendar.sel = el; |
|
| 606 | calendar.parseDate(el.value); |
|
| 607 | calendar.showAtElement(el); |
|
| 608 | Calendar.addEvent(document, "mousedown", checkCalendar); |
|
| 609 | ||
| 610 | return false; |
|
| 611 | } |
|
| 612 | ||
| 613 | Calendar._DN = new Array |
|
| 614 | ("' . _CAL_SUNDAY . '", |
|
| 615 | "' . _CAL_MONDAY . '", |
|
| 616 | "' . _CAL_TUESDAY . '", |
|
| 617 | "' . _CAL_WEDNESDAY . '", |
|
| 618 | "' . _CAL_THURSDAY . '", |
|
| 619 | "' . _CAL_FRIDAY . '", |
|
| 620 | "' . _CAL_SATURDAY . '", |
|
| 621 | "' . _CAL_SUNDAY . '"); |
|
| 622 | Calendar._MN = new Array |
|
| 623 | ("' . _CAL_JANUARY . '", |
|
| 624 | "' . _CAL_FEBRUARY . '", |
|
| 625 | "' . _CAL_MARCH . '", |
|
| 626 | "' . _CAL_APRIL . '", |
|
| 627 | "' . _CAL_MAY . '", |
|
| 628 | "' . _CAL_JUNE . '", |
|
| 629 | "' . _CAL_JULY . '", |
|
| 630 | "' . _CAL_AUGUST . '", |
|
| 631 | "' . _CAL_SEPTEMBER . '", |
|
| 632 | "' . _CAL_OCTOBER . '", |
|
| 633 | "' . _CAL_NOVEMBER . '", |
|
| 634 | "' . _CAL_DECEMBER . '"); |
|
| 635 | ||
| 636 | Calendar._TT = {}; |
|
| 637 | Calendar._TT["TOGGLE"] = "' . _CAL_TGL1STD . '"; |
|
| 638 | Calendar._TT["PREV_YEAR"] = "' . _CAL_PREVYR . '"; |
|
| 639 | Calendar._TT["PREV_MONTH"] = "' . _CAL_PREVMNTH . '"; |
|
| 640 | Calendar._TT["GO_TODAY"] = "' . _CAL_GOTODAY . '"; |
|
| 641 | Calendar._TT["NEXT_MONTH"] = "' . _CAL_NXTMNTH . '"; |
|
| 642 | Calendar._TT["NEXT_YEAR"] = "' . _CAL_NEXTYR . '"; |
|
| 643 | Calendar._TT["SEL_DATE"] = "' . _CAL_SELDATE . '"; |
|
| 644 | Calendar._TT["DRAG_TO_MOVE"] = "' . _CAL_DRAGMOVE . '"; |
|
| 645 | Calendar._TT["PART_TODAY"] = "(' . _CAL_TODAY . ')"; |
|
| 646 | Calendar._TT["MON_FIRST"] = "' . _CAL_DISPM1ST . '"; |
|
| 647 | Calendar._TT["SUN_FIRST"] = "' . _CAL_DISPS1ST . '"; |
|
| 648 | Calendar._TT["CLOSE"] = "' . _CLOSE . '"; |
|
| 649 | Calendar._TT["TODAY"] = "' . _CAL_TODAY . '"; |
|
| 650 | ||
| 651 | // date formats |
|
| 652 | Calendar._TT["DEF_DATE_FORMAT"] = "' . _SHORTDATESTRING . '"; |
|
| 653 | Calendar._TT["TT_DATE_FORMAT"] = "' . _SHORTDATESTRING . '"; |
|
| 654 | ||
| 655 | Calendar._TT["WK"] = ""; |
|
| 656 | '); |
|
| 657 | } |
|
| 658 | } |
|
| 659 | return '<div class="form-inline"><input class="form-control" type="text" name="' . $ele_name |
|
| 660 | . '" id="' . $ele_name . '" size="' . $element->getSize() . '" maxlength="' |
|
| 661 | . $element->getMaxlength() . '" value="' . $display_value . '"' . $element->getExtra() |
|
| 662 | . ' /><input class="form-control" type="reset" value=" ... " onclick="return showCalendar(\'' |
|
| 663 | . $ele_name . '\');"></div>'; |
|
| 664 | } |
|
| 665 | ||
| 666 | /** |
|
| 667 | * Render support for XoopsThemeForm |
|
| @@ 482-606 (lines=125) @@ | ||
| 479 | * |
|
| 480 | * @return string rendered form element |
|
| 481 | */ |
|
| 482 | public function renderFormTextDateSelect(XoopsFormTextDateSelect $element) |
|
| 483 | { |
|
| 484 | static $included = false; |
|
| 485 | if (file_exists(XOOPS_ROOT_PATH . '/language/' . $GLOBALS['xoopsConfig']['language'] . '/calendar.php')) { |
|
| 486 | include_once XOOPS_ROOT_PATH . '/language/' . $GLOBALS['xoopsConfig']['language'] . '/calendar.php'; |
|
| 487 | } else { |
|
| 488 | include_once XOOPS_ROOT_PATH . '/language/english/calendar.php'; |
|
| 489 | } |
|
| 490 | ||
| 491 | $ele_name = $element->getName(); |
|
| 492 | $ele_value = $element->getValue(false); |
|
| 493 | if (is_string($ele_value)) { |
|
| 494 | $display_value = $ele_value; |
|
| 495 | $ele_value = time(); |
|
| 496 | } else { |
|
| 497 | $display_value = date(_SHORTDATESTRING, $ele_value); |
|
| 498 | } |
|
| 499 | ||
| 500 | $jstime = formatTimestamp($ele_value, _SHORTDATESTRING); |
|
| 501 | if (isset($GLOBALS['xoTheme']) && is_object($GLOBALS['xoTheme'])) { |
|
| 502 | $GLOBALS['xoTheme']->addScript('include/calendar.js'); |
|
| 503 | $GLOBALS['xoTheme']->addStylesheet('include/calendar-blue.css'); |
|
| 504 | if (!$included) { |
|
| 505 | $included = true; |
|
| 506 | $GLOBALS['xoTheme']->addScript('', '', ' |
|
| 507 | var calendar = null; |
|
| 508 | ||
| 509 | function selected(cal, date) |
|
| 510 | { |
|
| 511 | cal.sel.value = date; |
|
| 512 | } |
|
| 513 | ||
| 514 | function closeHandler(cal) |
|
| 515 | { |
|
| 516 | cal.hide(); |
|
| 517 | Calendar.removeEvent(document, "mousedown", checkCalendar); |
|
| 518 | } |
|
| 519 | ||
| 520 | function checkCalendar(ev) |
|
| 521 | { |
|
| 522 | var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev); |
|
| 523 | for (; el != null; el = el.parentNode) |
|
| 524 | if (el == calendar.element || el.tagName == "A") break; |
|
| 525 | if (el == null) { |
|
| 526 | calendar.callCloseHandler(); Calendar.stopEvent(ev); |
|
| 527 | } |
|
| 528 | } |
|
| 529 | function showCalendar(id) |
|
| 530 | { |
|
| 531 | var el = xoopsGetElementById(id); |
|
| 532 | if (calendar != null) { |
|
| 533 | calendar.hide(); |
|
| 534 | } else { |
|
| 535 | var cal = new Calendar(true, "' . $jstime . '", selected, closeHandler); |
|
| 536 | calendar = cal; |
|
| 537 | cal.setRange(1900, 2100); |
|
| 538 | calendar.create(); |
|
| 539 | } |
|
| 540 | calendar.sel = el; |
|
| 541 | calendar.parseDate(el.value); |
|
| 542 | calendar.showAtElement(el); |
|
| 543 | Calendar.addEvent(document, "mousedown", checkCalendar); |
|
| 544 | ||
| 545 | return false; |
|
| 546 | } |
|
| 547 | ||
| 548 | Calendar._DN = new Array |
|
| 549 | ("' . _CAL_SUNDAY . '", |
|
| 550 | "' . _CAL_MONDAY . '", |
|
| 551 | "' . _CAL_TUESDAY . '", |
|
| 552 | "' . _CAL_WEDNESDAY . '", |
|
| 553 | "' . _CAL_THURSDAY . '", |
|
| 554 | "' . _CAL_FRIDAY . '", |
|
| 555 | "' . _CAL_SATURDAY . '", |
|
| 556 | "' . _CAL_SUNDAY . '"); |
|
| 557 | Calendar._MN = new Array |
|
| 558 | ("' . _CAL_JANUARY . '", |
|
| 559 | "' . _CAL_FEBRUARY . '", |
|
| 560 | "' . _CAL_MARCH . '", |
|
| 561 | "' . _CAL_APRIL . '", |
|
| 562 | "' . _CAL_MAY . '", |
|
| 563 | "' . _CAL_JUNE . '", |
|
| 564 | "' . _CAL_JULY . '", |
|
| 565 | "' . _CAL_AUGUST . '", |
|
| 566 | "' . _CAL_SEPTEMBER . '", |
|
| 567 | "' . _CAL_OCTOBER . '", |
|
| 568 | "' . _CAL_NOVEMBER . '", |
|
| 569 | "' . _CAL_DECEMBER . '"); |
|
| 570 | ||
| 571 | Calendar._TT = {}; |
|
| 572 | Calendar._TT["TOGGLE"] = "' . _CAL_TGL1STD . '"; |
|
| 573 | Calendar._TT["PREV_YEAR"] = "' . _CAL_PREVYR . '"; |
|
| 574 | Calendar._TT["PREV_MONTH"] = "' . _CAL_PREVMNTH . '"; |
|
| 575 | Calendar._TT["GO_TODAY"] = "' . _CAL_GOTODAY . '"; |
|
| 576 | Calendar._TT["NEXT_MONTH"] = "' . _CAL_NXTMNTH . '"; |
|
| 577 | Calendar._TT["NEXT_YEAR"] = "' . _CAL_NEXTYR . '"; |
|
| 578 | Calendar._TT["SEL_DATE"] = "' . _CAL_SELDATE . '"; |
|
| 579 | Calendar._TT["DRAG_TO_MOVE"] = "' . _CAL_DRAGMOVE . '"; |
|
| 580 | Calendar._TT["PART_TODAY"] = "(' . _CAL_TODAY . ')"; |
|
| 581 | Calendar._TT["MON_FIRST"] = "' . _CAL_DISPM1ST . '"; |
|
| 582 | Calendar._TT["SUN_FIRST"] = "' . _CAL_DISPS1ST . '"; |
|
| 583 | Calendar._TT["CLOSE"] = "' . _CLOSE . '"; |
|
| 584 | Calendar._TT["TODAY"] = "' . _CAL_TODAY . '"; |
|
| 585 | ||
| 586 | // date formats |
|
| 587 | Calendar._TT["DEF_DATE_FORMAT"] = "' . _SHORTDATESTRING . '"; |
|
| 588 | Calendar._TT["TT_DATE_FORMAT"] = "' . _SHORTDATESTRING . '"; |
|
| 589 | ||
| 590 | Calendar._TT["WK"] = ""; |
|
| 591 | '); |
|
| 592 | } |
|
| 593 | } |
|
| 594 | return '<input type="text" name="' . $ele_name . '" id="' . $ele_name . '" size="' |
|
| 595 | . $element->getSize() . '" maxlength="' . $element->getMaxlength() . '" value="' |
|
| 596 | . $display_value . '"' . $element->getExtra() |
|
| 597 | . ' /><input type="reset" value=" ... " onclick="return showCalendar(\'' . $ele_name |
|
| 598 | . '\');">'; |
|
| 599 | /* |
|
| 600 | return "<input type='text' name='" . $ele_name . "' id='" . $ele_name . "' size='" |
|
| 601 | . $element->getSize() . "' maxlength='" . $element->getMaxlength() . "' value='" |
|
| 602 | . $display_value . "'" . $element->getExtra() |
|
| 603 | . " /><input type='reset' value=' ... ' onclick='return showCalendar(\"" . $ele_name |
|
| 604 | . "\");'>"; |
|
| 605 | */ |
|
| 606 | } |
|
| 607 | ||
| 608 | /** |
|
| 609 | * Render support for XoopsThemeForm |
|