This blog describes how to disable future dates in the Drupal 7. One of the features in the date module is displayed the date in the pop-up.
The use case is if you want to display only past & current date rather than all the dates in the pop-up, then how to do it in Drupal 7. Actually, the date module provides API called hook_date_popup_process_alter to alter the date_popup widget elements.
For instance, I am going to disable future dates in the article content type. Please consider the following code snippet.
I've disabled the dates only if the form is article & the field name is field_date. After added the above code to your module, you could see disabled future dates in the date pop up. It looks like the below image:
Now I've hope you know how to disable the future dates at the date module in Drupal 7.
The use case is if you want to display only past & current date rather than all the dates in the pop-up, then how to do it in Drupal 7. Actually, the date module provides API called hook_date_popup_process_alter to alter the date_popup widget elements.
Example for disabling future dates in Drupal 7:
For instance, I am going to disable future dates in the article content type. Please consider the following code snippet.
/**
* Implement hook_date_popup_process_alter().
*/
function phponwebsites_date_popup_process_alter(&$element, &$form_state, &$context) {
if ($form_state['complete form']['#form_id'] == 'article_node_form' && $element['#field']['field_name'] == 'field_date') {
$max = 0;
}
if (isset($element['#datepicker_options']['maxDate'])) {
$max = $element['#datepicker_options']['maxDate'];
}
if (isset($max)) {
$element['#datepicker_options'] = array(
'maxDate' => "+$max D",
);
}
$element['date'] = date_popup_process_date_part($element);
}
* Implement hook_date_popup_process_alter().
*/
function phponwebsites_date_popup_process_alter(&$element, &$form_state, &$context) {
if ($form_state['complete form']['#form_id'] == 'article_node_form' && $element['#field']['field_name'] == 'field_date') {
$max = 0;
}
if (isset($element['#datepicker_options']['maxDate'])) {
$max = $element['#datepicker_options']['maxDate'];
}
if (isset($max)) {
$element['#datepicker_options'] = array(
'maxDate' => "+$max D",
);
}
$element['date'] = date_popup_process_date_part($element);
}
I've disabled the dates only if the form is article & the field name is field_date. After added the above code to your module, you could see disabled future dates in the date pop up. It looks like the below image:
Now I've hope you know how to disable the future dates at the date module in Drupal 7.
Related articles:
Remove speical characters from URL alias using pathauto module in Drupal 7
Add new menu item into already created menu in Drupal 7
Add class into menu item in Drupal 7
Create menu tab programmatically in Drupal 7
Add custom fields to search api index in Drupal 7
Clear views cache when insert, update and delete a node in Drupal 7
Create a page without header and footer in Drupal 7
Login using both email and username in Drupal 7
Update multiple fields using #ajax in Drupal 7
Remove speical characters from URL alias using pathauto module in Drupal 7
Add new menu item into already created menu in Drupal 7
Add class into menu item in Drupal 7
Create menu tab programmatically in Drupal 7
Add custom fields to search api index in Drupal 7
Clear views cache when insert, update and delete a node in Drupal 7
Create a page without header and footer in Drupal 7
Login using both email and username in Drupal 7
Update multiple fields using #ajax in Drupal 7