예제 #1
0
 /**
  * Class constructor
  *
  * @param array $config
  */
 public function __construct(array $config = array())
 {
     parent::__construct('token', 'token', $config);
     $this->_type = 'token';
     $value = One_Form_Helper::createToken();
     $_SESSION['OneToken'] = $value;
     $this->token = $_SESSION['OneToken'];
 }
예제 #2
0
    /**
     * Render the widget as a JS datepicker
     *
     * @param One_Model $model
     * @param One_Dom $d
     */
    private function renderJSCalendar($model, One_Dom $d)
    {
        if (!is_null($this->getCfg('jquery'))) {
            return $this->renderJQueryDatepicker($model, $d);
        }
        $id = $this->getID();
        $name = $this->getName();
        $value = $this->getValue($model);
        $dom = One_Repository::createDom();
        preg_match('/^(\\d{4})-(\\d{2})-(\\d{2})( (\\d{2}):(\\d{2}):(\\d{2}))?$/', $value, $matches);
        One_Vendor::getInstance()->loadStyle('js/jscalendar/calendar-win2k-1.css', 'head');
        One_Vendor::getInstance()->loadScript('js/jscalendar/calendar.js', 'head', 10);
        //		One_Vendor::getInstance()->loadScript('js/jscalendar/lang/calendar-'.strtolower(substr(One::getInstance()->getLanguage(), 0, 2)).'.js', 'head', 11); // problems with language packs so stick to EN
        One_Vendor::getInstance()->loadScript('js/jscalendar/lang/calendar-en.js', 'head', 11);
        One_Vendor::getInstance()->loadScript('js/jscalendar/calendar-setup.js', 'head', 12);
        if ($this->getCfg('jsFlat')) {
            $container = new One_Form_Container_Div($id . 'container');
            $extraParams = array('default' => $this->getDefault());
            if (in_array($this->getCfg('one'), array('one', 'yes', 'true', '1'))) {
                $extraParams['one'] = 'one';
            }
            $hidden = new One_Form_Widget_Scalar_Hidden($id, $name, null, $extraParams);
            $container->render($model, $dom);
            $hidden->render($model, $dom);
            $defaultDate = date('Y-m-d');
            if ('' != $value && '0000-00-00' != $value && '0000-00-00 00:00:00' != $value) {
                $defaultDate = $value;
            }
            $onloadscript = '
			Calendar.setup(
			{
				flat         : "' . $id . 'container",
				flatCallback : dateChanged,
				ifFormat     : "%Y-%m-%d' . (trim($this->getCfg('time')) != '' ? ' %H:%M' : '') . '"' . (trim($this->getCfg('time')) != '' ? ',
				showsTime    : true' : '') . ',
				date         : "' . $value . '"
			}
			);
			';
            $headscript = 'function dateChanged(calendar)
			{
				if(calendar.dateClicked)
				{
					var hidden = document.getElementById("' . $id . '");
					var year = calendar.date.getFullYear();
					var month = ((calendar.date.getMonth() + 1) < 10) ? "0" + (calendar.date.getMonth() + 1) : (calendar.date.getMonth() + 1);
					var day = (calendar.date.getDate() < 10) ? "0" + calendar.date.getDate() : calendar.date.getDate();

					hidden.value = year + "-" + month + "-" + day;
				}
			}';
            One_Vendor::getInstance()->loadScriptDeclaration($headscript, 'head', 10);
            One_Vendor::getInstance()->loadScriptDeclaration($onloadscript, 'onload');
        } else {
            $extraParams = array('readonly' => 'readonly', 'default' => $this->getDefault());
            if (in_array($this->getCfg('one'), array('one', 'yes', 'true', '1'))) {
                $extraParams['one'] = 'one';
            }
            $tf = new One_Form_Widget_Scalar_Textfield($id, $name, NULL, $extraParams);
            $trigger = new One_Form_Widget_Image($id . 'trigger', $name . 'trigger', NULL, array('src' => One_Config::getInstance()->getUrl() . '/vendor/images/calendar.png', 'alt' => 'Show calendar', 'title' => 'Show calendar'));
            $tf->render($model, $dom);
            $trigger->render($model, $dom);
            $script = 'Calendar.setup(
			{
				inputField : "' . $name . '",
				ifFormat   : "%Y-%m-%d' . (trim($this->getCfg('time')) != '' ? ' %H:%M' : '') . '",
				button     : "' . $name . 'trigger"' . (trim($this->getCfg('time')) != '' ? ',
				showsTime    : true' : '') . '
			}
			);';
            One_Vendor::getInstance()->loadScriptDeclaration($script, 'onload');
        }
        //return $output;
        $d->addDom($dom);
    }