diff options
author | Egor <egor.26.93@gmail.com> | 2015-07-28 11:38:44 +0300 |
---|---|---|
committer | Egor <egor.26.93@gmail.com> | 2015-07-28 11:38:44 +0300 |
commit | a1d1e9404b3be20e668cdbde86d6be8cff98f159 (patch) | |
tree | 9d277691dd0ea2dc170c35ec99c1ca8929e57ad8 /SchedulerHelper.php | |
parent | 0947d0e30dbcea775e1026586503744034d8cf1a (diff) | |
download | scheduler-helper-php-a1d1e9404b3be20e668cdbde86d6be8cff98f159.zip scheduler-helper-php-a1d1e9404b3be20e668cdbde86d6be8cff98f159.tar.gz scheduler-helper-php-a1d1e9404b3be20e668cdbde86d6be8cff98f159.tar.bz2 |
Updated mapping of fields functionality.
Diffstat (limited to 'SchedulerHelper.php')
-rwxr-xr-x | SchedulerHelper.php | 45 |
1 files changed, 24 insertions, 21 deletions
diff --git a/SchedulerHelper.php b/SchedulerHelper.php index df5888f..bf708d1 100755 --- a/SchedulerHelper.php +++ b/SchedulerHelper.php @@ -35,6 +35,9 @@ abstract class DHelper extends SchedulerHelperConnector ); protected $_mapped_fields = array(); + + protected $_use_only_mapped_fields = false; + protected function getIdFieldName() { return $this->getFieldsNames(self::FLD_ID); @@ -92,12 +95,13 @@ abstract class DHelper extends SchedulerHelperConnector return $this->_fields_names[$field]; } - public function setFieldsNames($fieldsDataArray) + public function setFieldsNames($fieldsDataArray, $useOnlySetFields = false) { if(!is_array($fieldsDataArray)) throw new Exception("Fields data must be array."); $this->_mapped_fields = $fieldsDataArray; + $this->_use_only_mapped_fields = $useOnlySetFields; foreach($fieldsDataArray as $fieldKey => $fieldValue) { //If field name is numeric, then made same field key and field value. @@ -268,26 +272,24 @@ class Helper extends DHelper implements IHelper private function _filterEventDataToResponse($eventDataArray) { $filteredEventData = array(); + $fullEventData = array(); + foreach($eventDataArray as $dataKey => $dataValue) { $mappedFieldsValues = array_flip($this->_mapped_fields); - switch($dataKey) { - case $this->getIdFieldName(): - case $this->getRecurringTypeFieldName(): - case $this->getParentIdFieldName(): - case $this->getLengthFieldName(): - if(!array_key_exists($dataKey, $mappedFieldsValues)) - continue; - - $filteredEventData[$dataKey] = $dataValue; - break; - - default: - $filteredEventData[$dataKey] = $dataValue; - break; - } + $fullEventData[$dataKey] = $dataValue; + + if( + ($this->_use_only_mapped_fields && array_key_exists($dataKey, $mappedFieldsValues)) + || !$this->_use_only_mapped_fields + ) { + $filteredEventData[$dataKey] = $dataValue; + } } - return $filteredEventData; +// $this->_use_only_mapped_fields + +// var_dump($filteredEventData);exit; + return array("filtered_event_data" => $filteredEventData, "full_event_data" => $fullEventData); } /** @@ -368,14 +370,15 @@ class Helper extends DHelper implements IHelper $resultData = array(); for($i = 0; $i < count($eventsData); $i++) { $eventData = $eventsData[$i]; - $recurringStartDateStamp = SchedulerHelperDate::getDateTimestamp($eventData[$this->getStartDateFieldName()]); - $recurringEndDateStamp = SchedulerHelperDate::getDateTimestamp($eventData[$this->getEndDateFieldName()]); + $fullEventData = $eventData["full_event_data"]; + $recurringStartDateStamp = SchedulerHelperDate::getDateTimestamp($fullEventData[$this->getStartDateFieldName()]); + $recurringEndDateStamp = SchedulerHelperDate::getDateTimestamp($fullEventData[$this->getEndDateFieldName()]); - if( + if( (($intervalStartDateStamp <= $recurringStartDateStamp) && ($recurringStartDateStamp <= $intervalEndDateStamp)) || (($intervalStartDateStamp <= $recurringEndDateStamp) && ($recurringEndDateStamp <= $intervalEndDateStamp)) ) { - array_push($resultData, $eventData); + array_push($resultData, $eventData["filtered_event_data"]); } } |