/**
  * Function executed from the Scheduler.
  * Sends an email
  *
  * @return	boolean
  */
 public function execute()
 {
     $success = TRUE;
     $taskId = $this->taskUid;
     tx_rnbase::load('tx_rnbase_util_Misc');
     try {
         $lastRun = $this->getLastRunTime($taskId);
         /* @var $srv tx_mklog_srv_WatchDog */
         $srv = tx_rnbase_util_Misc::getService('mklog', 'WatchDog');
         $filters = array();
         $options = array();
         $options['minimalSeverity'] = $this->getMinimalSeverity();
         $options['forceSummaryMail'] = $this->getForceSummaryMail();
         $options['includeDataVar'] = $this->getIncludeDataVar();
         //damit jede Nachricht nur einmal kommt, auch wenn sie mehrmals vorhanden ist
         if ($this->getGroupEntries()) {
             $options['groupby'] = Tx_Mklog_Utility_Devlog::getMessageFieldName() . ',extkey';
             // wir wollen aber wissen wie oft jede Nachricht vorhanden ist
             $options['count'] = TRUE;
         }
         $srv->triggerMails($this->getEmailReceiver(), $lastRun, $filters, $options);
         $this->updateLastRunTime($taskId);
     } catch (Exception $e) {
         tx_rnbase_util_Logger::fatal('WatchDog failed!', 'mklog', array('Exception' => $e->getMessage()));
         $success = FALSE;
     }
     return $success;
 }
 /**
  * This method is used to define new fields for adding or editing a task
  * In this case, it adds an email field
  *
  * @param	array					$taskInfo: reference to the array containing the info used in the add/edit form
  * @param	object					$task: when editing, reference to the current task object. Null when adding.
  * @param	tx_scheduler_Module		$parentObject: reference to the calling object (Scheduler's BE module)
  * @return	array					Array containg all the information pertaining to the additional fields
  *									The array is multidimensional, keyed to the task class name and each field's id
  *									For each field it provides an associative sub-array with the following:
  *										['code']		=> The HTML code for the field
  *										['label']		=> The label of the field (possibly localized)
  *										['cshKey']		=> The CSH key for the field
  *										['cshLabel']	=> The code of the CSH label
  */
 protected function _getAdditionalFields(array &$taskInfo, $task, $parentObject)
 {
     // Initialize extra field value
     if (!array_key_exists(MKLOG_FIELD_EMAIL, $taskInfo) || empty($taskInfo[MKLOG_FIELD_EMAIL])) {
         if ($parentObject->CMD == 'add') {
             // New task
             $taskInfo[MKLOG_FIELD_EMAIL] = '';
         } elseif ($parentObject->CMD == 'edit') {
             // Editing a task, set to internal value if data was not submitted already
             $taskInfo[MKLOG_FIELD_EMAIL] = $task->getEmailReceiver();
             $taskInfo[MKLOG_FIELD_FORCE] = $task->getForceSummaryMail();
             $taskInfo[MKLOG_FIELD_SEVERITY] = $task->getMinimalSeverity();
             $taskInfo[MKLOG_FIELD_DATAVAR] = $task->getIncludeDataVar();
             $taskInfo[MKLOG_FIELD_GROUP_ENTRIES] = $task->getGroupEntries();
         } else {
             // Otherwise set an empty value, as it will not be used anyway
             $taskInfo[MKLOG_FIELD_EMAIL] = '';
         }
     }
     // Write the code for the field
     $additionalFields = array();
     // Email
     $fieldID = 'field_' . MKLOG_FIELD_EMAIL;
     // Note: Name qualifier MUST be "tx_scheduler" as the tx_scheduler's BE module is used!
     $fieldCode = '<input type="text" name="tx_scheduler[' . MKLOG_FIELD_EMAIL . ']" id="' . $fieldID . '" value="' . $taskInfo[MKLOG_FIELD_EMAIL] . '" size="50" />';
     $additionalFields[$fieldID] = array('code' => $fieldCode, 'label' => 'LLL:EXT:mklog/locallang_db.xml:scheduler_watchdog_field_' . MKLOG_FIELD_EMAIL, 'cshKey' => '_MOD_tools_txschedulerM1');
     // Minimum severity
     $fieldID = 'field_' . MKLOG_FIELD_SEVERITY;
     $fieldCode = '<select name="tx_scheduler[' . MKLOG_FIELD_SEVERITY . ']" id="' . $fieldID . '">';
     $srv = tx_rnbase_util_Misc::getService('mklog', 'WatchDog');
     $severities = $srv->getSeverities();
     foreach ($severities as $key => $label) {
         $fieldCode .= '<option value="' . $key . '" ' . ($taskInfo[MKLOG_FIELD_SEVERITY] == $key ? 'selected="selected"' : '') . ' />' . $label . "</option>\n";
     }
     $fieldCode .= '</select>';
     $additionalFields[$fieldID] = array('code' => $fieldCode, 'label' => 'LLL:EXT:mklog/locallang_db.xml:scheduler_watchdog_field_' . MKLOG_FIELD_SEVERITY, 'cshKey' => '_MOD_tools_txschedulerM1');
     // Force summary
     $fieldID = 'field_' . MKLOG_FIELD_FORCE;
     $fieldCode = '<input type="radio" name="tx_scheduler[' . MKLOG_FIELD_FORCE . ']" id="' . $fieldID . '" value="1" ' . ($taskInfo[MKLOG_FIELD_FORCE] ? 'checked="checked"' : '') . ' /> Yes';
     $fieldCode .= '<input type="radio" name="tx_scheduler[' . MKLOG_FIELD_FORCE . ']" id="' . $fieldID . '" value="0" ' . ($taskInfo[MKLOG_FIELD_FORCE] ? '' : 'checked="checked"') . ' /> No';
     $additionalFields[$fieldID] = array('code' => $fieldCode, 'label' => 'LLL:EXT:mklog/locallang_db.xml:scheduler_watchdog_field_' . MKLOG_FIELD_FORCE, 'cshKey' => '_MOD_tools_txschedulerM1');
     // data_var
     $fieldID = 'field_' . MKLOG_FIELD_DATAVAR;
     $fieldCode = '<input type="radio" name="tx_scheduler[' . MKLOG_FIELD_DATAVAR . ']" id="' . $fieldID . '" value="1" ' . ($taskInfo[MKLOG_FIELD_DATAVAR] ? 'checked="checked"' : '') . ' /> Yes';
     $fieldCode .= '<input type="radio" name="tx_scheduler[' . MKLOG_FIELD_DATAVAR . ']" id="' . $fieldID . '" value="0" ' . ($taskInfo[MKLOG_FIELD_DATAVAR] ? '' : 'checked="checked"') . ' /> No';
     $additionalFields[$fieldID] = array('code' => $fieldCode, 'label' => 'LLL:EXT:mklog/locallang_db.xml:scheduler_watchdog_field_' . MKLOG_FIELD_DATAVAR, 'cshKey' => '_MOD_tools_txschedulerM1');
     // data_var
     $fieldID = 'field_' . MKLOG_FIELD_GROUP_ENTRIES;
     if (isset($taskInfo[MKLOG_FIELD_GROUP_ENTRIES])) {
         $fieldValue = $taskInfo[MKLOG_FIELD_GROUP_ENTRIES];
     } else {
         // default
         $fieldValue = 1;
     }
     $fieldCode = '<input type="radio" name="tx_scheduler[' . MKLOG_FIELD_GROUP_ENTRIES . ']" id="' . $fieldID . '" value="1" ' . ($fieldValue ? 'checked="checked"' : '') . ' /> Yes';
     $fieldCode .= '<input type="radio" name="tx_scheduler[' . MKLOG_FIELD_GROUP_ENTRIES . ']" id="' . $fieldID . '" value="0" ' . ($fieldValue ? '' : 'checked="checked"') . ' /> No';
     $additionalFields[$fieldID] = array('code' => $fieldCode, 'label' => 'LLL:EXT:mklog/locallang_db.xml:scheduler_watchdog_field_' . MKLOG_FIELD_GROUP_ENTRIES, 'cshKey' => '_MOD_tools_txschedulerM1');
     return $additionalFields;
 }
 /**
  * @return tx_mklib_srv_StaticCountryZones
  */
 public static function getStaticCountryZonesService()
 {
     return tx_rnbase_util_Misc::getService(self::$extKey, 'staticCountryZones');
 }