CRM-16355 - checkstyle typos
[civicrm-core.git] / CRM / Admin / Form / ScheduleReminders.php
index 8d69a0fc1c3ed4dc1e008812071304fa054420ac..e6156387b8c774a9a27d681212027596c8aff656 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.6                                                |
+ | CiviCRM version 4.7                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2015                                |
  +--------------------------------------------------------------------+
  *
  * @package CRM
  * @copyright CiviCRM LLC (c) 2004-2015
- * $Id$
- *
  */
 
 /**
- * This class generates form components for Scheduling Reminders
- *
+ * This class generates form components for Scheduling Reminders.
  */
 class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
 
@@ -48,8 +45,6 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
 
   /**
    * Build the form object.
-   *
-   * @return void
    */
   public function buildQuickForm() {
     parent::buildQuickForm();
@@ -259,6 +254,25 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
       CRM_Core_PseudoConstant::nestedGroup('Mailing'), FALSE, array('class' => 'crm-select2 huge')
     );
 
+    // multilingual only options
+    $multilingual = CRM_Core_I18n::isMultilingual();
+    if ($multilingual) {
+      $smarty = CRM_Core_Smarty::singleton();
+      $smarty->assign('multilingual', $multilingual);
+
+      $languages = CRM_Core_I18n::languages(TRUE);
+      $languageFilter = $languages + array(CRM_Core_I18n::NONE => ts('Contacts with no preferred language'));
+      $element = $this->add('select', 'filter_contact_language', ts('Recipients language'), $languageFilter, FALSE,
+        array('multiple' => TRUE, 'class' => 'crm-select2', 'placeholder' => TRUE));
+
+      $communicationLanguage = array(
+        '' => ts('System default language'),
+        CRM_Core_I18n::AUTO => ts('Follow recipient preferred language')
+      );
+      $communicationLanguage = $communicationLanguage + $languages;
+      $this->add('select', 'communication_language', ts('Communication language'), $communicationLanguage);
+    }
+
     CRM_Mailing_BAO_Mailing::commonCompose($this);
 
     $this->add('text', 'subject', ts('Subject'),
@@ -379,6 +393,9 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
         $defaults['recipient'] = 'manual';
         $defaults['recipient_manual_id'] = $defaults['recipient_manual'];
       }
+      if ($contactLanguage = CRM_Utils_Array::value('filter_contact_language', $defaults)) {
+        $defaults['filter_contact_language'] = explode(CRM_Core_DAO::VALUE_SEPARATOR, $contactLanguage);
+      }
     }
 
     return $defaults;
@@ -386,9 +403,6 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
 
   /**
    * Process the form submission.
-   *
-   *
-   * @return void
    */
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
@@ -504,6 +518,11 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
       $params['end_date'] = 'null';
     }
 
+    // multilingual options
+    $params['filter_contact_language'] = CRM_Utils_Array::value('filter_contact_language', $values, NULL);
+    $params['filter_contact_language'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, $params['filter_contact_language']);
+    $params['communication_language'] = CRM_Utils_Array::value('communication_language', $values, NULL);
+
     if ($this->_action & CRM_Core_Action::UPDATE) {
       $params['id'] = $this->_id;
     }
@@ -624,4 +643,17 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
     CRM_Core_Session::setStatus($status, ts('Saved'), 'success');
   }
 
+  /**
+   * List available tokens for this form.
+   *
+   * @return array
+   */
+  public function listTokens() {
+    $tokens = CRM_Core_SelectValues::contactTokens();
+    $tokens = array_merge(CRM_Core_SelectValues::activityTokens(), $tokens);
+    $tokens = array_merge(CRM_Core_SelectValues::eventTokens(), $tokens);
+    $tokens = array_merge(CRM_Core_SelectValues::membershipTokens(), $tokens);
+    return $tokens;
+  }
+
 }