/** * Administrative settings. * * @return array * An array containing form items to place on the module settings page. */ public static function hookAdminSettings() { $form['handle_content_expiry'] = array('#type' => 'fieldset', '#title' => t('Handle content expiry'), '#collapsible' => TRUE, '#collapsed' => FALSE); $form['handle_content_expiry']['node_expire_handle_content_expiry'] = array('#type' => 'radios', '#title' => t('Handle content expiry'), '#default_value' => ConfigHandler::getHandleContentExpiry(), '#options' => array(0 => t('In legacy mode'), 1 => t('Trigger "Content Expired" event every cron run when the node is expired'), 2 => t('Trigger "Content Expired" event only once when the node is expired')), '#description' => t('In non-legacy mode node expiry is set for each node type separately and disabled by default.') . ' ' . t('Enable it at Structure -> Content types -> {Your content type} -> Edit -> Publishing options.') . '<br />' . t('"Trigger "Content Expired" event only once " option allows to ignore nodes, which already have been processed.') . '<br />' . t('Legacy mode means: not possible to allow expiry separately for each particular node type, trigger "Content Expired" event every cron run, legacy data saving')); // Visibility. $states = array('visible' => array(':input[name="node_expire_handle_content_expiry"]' => array(array('value' => '1'), array('value' => '2')))); // Variable node_expire_date_entry_elements is not used in legacy mode, // so in legacy mode it is safe to keep any of it's value. // It is necessary just to take care about proper validation // (see node_expire_admin_settings_validate below). $form['date_entry_elements'] = array('#type' => 'fieldset', '#title' => t('Date values entry elements'), '#collapsible' => TRUE, '#collapsed' => FALSE, '#states' => $states); $form['date_entry_elements']['node_expire_date_entry_elements'] = array('#type' => 'radios', '#title' => t('Enter date values using'), '#default_value' => ConfigHandler::getDateEntryElements(), '#options' => array(0 => t('Text fields'), 1 => t('Date popups')), '#description' => t('"Date popups" option requires Date module to be installed') . ' ' . t('with Date Popup enabled. This option is not available in legacy mode.'), '#states' => $states); $form['date_format'] = array('#type' => 'fieldset', '#title' => t('Format of expiry date'), '#collapsible' => TRUE, '#collapsed' => FALSE); $form['date_format']['node_expire_date_format'] = array('#type' => 'textfield', '#maxlength' => 25, '#title' => t('Format of expiry date'), '#default_value' => ConfigHandler::getDateFormat(), '#description' => t('Format of expiry date.') . ' ' . t('Format: PHP <a href="http://www.php.net/strtotime" target="_blank">strtotime format</a>.')); $form['past_date_allowed'] = array('#type' => 'fieldset', '#title' => t('Expire date in the past'), '#collapsible' => TRUE, '#collapsed' => FALSE); $form['past_date_allowed']['node_expire_past_date_allowed'] = array('#type' => 'checkbox', '#title' => t('Allow expire date in the past'), '#default_value' => ConfigHandler::getPastDateAllowed(), '#description' => t('Checking this box will allow to save nodes with expire date in the past. This is helpful during site development and testing.')); // End of node_expire_admin_settings(). return system_settings_form($form); }