/** * 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']; }
/** * 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); }