0

コンポーネントadsmangerの検索モジュール内でJoomlaのカレンダーフィールドをカスタマイズしたいのですが、基本的には次のことをしたいです:

  • ユーザーが今日より前の日付を選択できないようにします。
  • ユーザーがフィールドに入力できないようにします。カレンダーを使用してのみ日付を選択できます。
  • 現在の日付をデフォルト値として設定

component でのカレンダー フィールドの生成の一部を次に示します。

<?php
case 'date':

            $options = array();
            $options['size'] = 16;
            $options['maxlength'] = 16;
            if ($field->required == 1) {
                $options['class'] = 'adsmanager_required';
                $options['mosReq'] = '1';
                $options['mosLabel'] = "$strtitle";
            }
            else 
            {
                $options['class'] = 'adsmanager';
            }
            $return .= JHTML::_('behavior.calendar');
            if ($value != "") {
                if (function_exists("strptime")) {
                    $a = strptime($value, JText::_('ADSMANAGER_DATE_FORMAT_LC'));
                    $timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
                } else {
                    $timestamp = strtotime($value);
                }
                if ($timestamp != null)
                    $value = date("Y-m-d",$timestamp);
                else
                    $value = "";
            }
            $return .=  JHTML::_('calendar', $value, "$field->name", "$field->name", JText::_('ADSMANAGER_DATE_FORMAT_LC'), $options); ?>
4

1 に答える 1

0

カレンダーには、実際には、すぐに指定したことを正確に実行する方法がありません。しかし、あなたに近づくいくつかの方法があります。

含まれている方法は、利用可能な年を設定することです。これにより、少なくとも今年はそれらを保持できます。

Calendar.setRange(2013, 2020);

onUpdatejavascript 関数には、独自の比較関数を記述して日付を今日以降に制限するために使用できるハンドラーを追加するメソッドもあります。Calendar.setup()ただし、関数は呼び出しの一部である必要があるため、Joomla で関数をこの位置に渡す良い方法はないようです。JavaScript を生成するコードはlibraries/joomla/html/html.php880 行目にあります。

于 2013-02-12T20:35:16.917 に答える