2013-02-12 65 views
0

我想自定義組件adsmanger的搜索模塊內的Joomla壓延機領域,基本上我想:如何防止用戶在Joomla日曆字段中選擇今天之前的日期?

  • 防止從今天之前選擇的日期用戶。
  • 防止用戶輸入字段,他只能使用日曆選擇日期。
  • 設定當前日期爲默認值

這裏是壓光場的生成的組件部分:

<?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); ?> 

回答

0

日曆實際上並沒有辦法做到準確您開箱時指定的內容。有一些方法可以讓你接近。

包括的方法是設置可用年限,至少可以在今年保留它們。

Calendar.setRange(2013, 2020); 

也有在javascript函數的方法來添加一個onUpdate處理程序,你可以用它來寫你自己的比較函數將日期限制爲今天和轉發。然而,Joomla似乎並沒有將功能傳遞給這個位置的好方法,因爲它應該是Calendar.setup()調用的一部分。生成javascript的代碼在處以880ish行發現。

+0

謝謝你的回答,我發現那一行,但我的網站是關於拼車,我不想讓用戶選擇過去的日期,禁用在字段中輸入日期的可能性,以及默認值?謝謝 – Aladin 2013-02-12 21:08:03

+0

這些都是可能的選擇。我相當確信,Joomla沒有內置的方法去做你想做的事情,所以你可能會有一些重要的代碼(如果我有東西躺着,我會發布它)。您可能想要考慮嘗試不同的日曆彈出窗口(您可能想查看Joomla [此處](http://www.dynarch.com/projects/calendar/)附帶的日曆的更新和商業版本)或者可以嘗試編寫自己的Javascript函數來解析結果,無論是關閉日曆還是保存日曆。 – 2013-02-12 22:03:26

+0

再次感謝您,我會試一試,但您知道我不是JS開發人員,我認爲它可以使用PHP修復... – Aladin 2013-02-12 22:12:51

相關問題