_appendName = true; } /** * HTML code to display this datepicker. * * @return string */ public function toHtml() { if ($this->_flagFrozen) { return $this->getFrozenHtml(); } $id = $this->getAttribute('id'); $value = $this->getValue(); $formattedValue = ''; if (!empty($value)) { $formattedValue = api_format_date($value, DATE_TIME_FORMAT_LONG_24H); } $label = $this->getLabel(); if (is_array($label) && isset($label[0])) { $label = $label[0]; } //$resetFieldX = sprintf(get_lang('Reset %s'), $label); return '_getAttrString($this->_attributes).' />'.$this->getElementJS(); } /** * @param string $value */ public function setValue($value) { $value = substr($value, 0, 16); $this->updateAttributes(['value' => $value]); } /** * Get the necessary javascript for this datepicker. * * @return string */ private function getElementJS(): string { $localeCode = $this->getLocaleCode(); $id = $this->getAttribute('id'); $altFormat = ($localeCode === 'en') ? 'F d, Y - H:i' : 'd F, Y - H:i'; $js = ""; return $js; } /** * Retrieves the locale code based on user and course settings. * Extracts the ISO language code from user or course settings and checks * its availability in the list of supported locales. Returns 'en' if the language * is not available. * * @return string Locale code (e.g., 'es', 'en', 'fr'). */ private function getLocaleCode(): string { $locale = api_get_language_isocode(); $userInfo = api_get_user_info(); if (is_array($userInfo) && !empty($userInfo['language']) && ANONYMOUS != $userInfo['status']) { $locale = $userInfo['language']; } $courseInfo = api_get_course_info(); if (!empty($courseInfo)) { $locale = $courseInfo['language']; } $localeCode = explode('_', $locale)[0]; $availableLocales = [ 'ar', 'ar-dz', 'at', 'az', 'be', 'bg', 'bn', 'bs', 'cat', 'ckb', 'cs', 'cy', 'da', 'de', 'eo', 'es', 'et', 'fa', 'fi', 'fo', 'fr', 'ga', 'gr', 'he', 'hi', 'hr', 'hu', 'hy', 'id', 'is', 'it', 'ja', 'ka', 'km', 'ko', 'kz', 'lt', 'lv', 'mk', 'mn', 'ms', 'my', 'nl', 'nn', 'no', 'pa', 'pl', 'pt', 'ro', 'ru', 'si', 'sk', 'sl', 'sq', 'sr', 'sr-cyr', 'sv', 'th', 'tr', 'uk', 'uz', 'uz_latn', 'vn', 'zh', 'zh-tw' ]; if (!in_array($localeCode, $availableLocales)) { $localeCode = 'en'; } return $localeCode; } }