public function onNewsfeedItemRender(OW_Event $event)
 {
     $params = $event->getParams();
     $content = $event->getData();
     if (!empty($params['action']['entityType']) && !empty($params['action']['pluginKey']) && $params['action']['entityType'] == 'birthday' && $params['action']['pluginKey'] == 'birthdays') {
         $html = '<div class="ow_user_list_data"></div>';
         if (!empty($content['birthdate']) && !empty($content['userData'])) {
             $date = UTIL_DateTime::parseDate($content['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
             $birthdate = UTIL_DateTime::formatBirthdate($date['year'], $date['month'], $date['day']);
             if ($date['month'] == intval(date('m'))) {
                 if (intval(date('d')) + 1 == intval($date['day'])) {
                     $birthdate = '<span class="ow_green" style="font-weight: bold; text-transform: uppercase;">' . OW::getLanguage()->text('base', 'date_time_tomorrow') . '</a>';
                 } else {
                     if (intval(date('d')) == intval($date['day'])) {
                         $birthdate = '<span class="ow_green" style="font-weight: bold; text-transform: uppercase;">' . OW::getLanguage()->text('base', 'date_time_today') . '</span>';
                     }
                 }
             }
             $html = '<div class="ow_user_list_data">
                         <a href="' . $content['userData']["url"] . '">' . $content['userData']["title"] . '</a><br><span style="font-weight:normal;" class="ow_small">' . OW::getLanguage()->text('birthdays', 'birthday') . ' ' . $birthdate . '</span>                
                      </div>';
         }
         $content['content'] .= $html;
         $content['content'] = '<div class="clearfix">' . $content['content'] . '</div>';
         $event->setData($content);
     }
 }
 public function onNewsfeedItemRender(OW_Event $event)
 {
     $params = $event->getParams();
     $content = $event->getData();
     if (!empty($params['action']['entityType']) && !empty($params['action']['pluginKey']) && $params['action']['entityType'] == 'birthday' && $params['action']['pluginKey'] == 'birthdays') {
         $html = '<div class="ow_user_list_data"></div>';
         if (!empty($content['birthdate']) && !empty($content['userData'])) {
             $date = UTIL_DateTime::parseDate($content['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
             $birthdate = UTIL_DateTime::formatBirthdate($date['year'], $date['month'], $date['day']);
             if ($date['month'] == intval(date('m'))) {
                 if (intval(date('d')) + 1 == intval($date['day'])) {
                     $birthdate = '<span class="ow_green" style="font-weight: bold; text-transform: uppercase;">' . OW::getLanguage()->text('base', 'date_time_tomorrow') . '</a>';
                 } else {
                     if (intval(date('d')) == intval($date['day'])) {
                         $birthdate = '<span class="ow_green" style="font-weight: bold; text-transform: uppercase;">' . OW::getLanguage()->text('base', 'date_time_today') . '</span>';
                     }
                 }
             }
             $html = '<div class="ow_user_list_data">
                         <a href="' . $content['userData']["url"] . '">' . $content['userData']["title"] . '</a><br><span style="font-weight:normal;" class="ow_small">' . OW::getLanguage()->text('birthdays', 'birthday') . ' ' . $birthdate . '</span>                
                      </div>';
         }
         $userId = $params['action']['entityId'];
         $usersData = BOL_AvatarService::getInstance()->getDataForUserAvatars(array($userId));
         $content['content'] = '<div class="ow_user_list_picture">' . OW::getThemeManager()->processDecorator('avatar_item', $usersData[$userId]) . '</div>';
         $content['content'] .= $html;
         $content['content'] = '<div class="clearfix">' . $content['content'] . '</div>';
         $content['view'] = array('iconClass' => 'ow_ic_birthday');
         $event->setData($content);
     }
 }
 public function getAvatarInfo($idList)
 {
     $data = parent::getAvatarInfo($idList);
     $birthdays = BOL_QuestionService::getInstance()->getQuestionData($idList, array('birthdate'));
     foreach ($data as $userId => $item) {
         $yearOld = '';
         if (!empty($birthdays[$userId]['birthdate'])) {
             switch ($this->key) {
                 case 'birthdays_today':
                     $date = UTIL_DateTime::parseDate($birthdays[$userId]['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                     $yearOld = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']) . " " . OW::getLanguage()->text('base', 'questions_age_year_old');
                     break;
                 case 'birthdays_this_week':
                     $date = UTIL_DateTime::parseDate($birthdays[$userId]['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                     $yearOld = OW::getLanguage()->text('birthdays', 'birthday') . ' ' . UTIL_DateTime::formatBirthdate($date['year'], $date['month'], $date['day']) . " ";
                     break;
             }
         }
         if (!empty($data[$userId]['title'])) {
             $data[$userId]['attrs'] = ' data-birthday="' . (!empty($yearOld) ? $yearOld : '') . '"';
         } else {
             if (!empty($yearOld)) {
                 $data[$userId]['attrs'] = ' data-birthday="' . $yearOld . '"';
             }
         }
     }
     OW::getDocument()->addOnloadScript("\n                \$('*[title]', \$('.birthdays_avatar_list') ).each( function(i, o){\n                    \$(o).off('mouseenter');\n                    \$(o).on('mouseenter', function(){ \n                        var title = \$(this).attr('title');\n                        var birthday = \$(this).data('birthday');\n                        \n                        if ( !birthday )\n                        {\n                            OW.showTip(\$(this), {timeout:200});\n                        }\n                        else if ( !title && birthday )\n                        {\n                            birthday = '<span class=\"ow_small\" style=\"font-weight:normal;\">' + birthday + '</span>';\n                            \n                            OW.showTip(\$(this), {timeout:200, show:birthday});\n                        }\n                        else\n                        {\n                            birthday = '<br><span class=\"ow_small\" style=\"font-weight:normal;\">' + birthday + '</span>';\n                            \n                            OW.showTip(\$(this), {timeout:200, show:title + birthday});\n                        }\n                     });\n                    \$(o).off('mouseleave');\n                    \$(o).on('mouseleave', function(){ OW.hideTip(\$(this)); });\n            });");
     return $data;
 }
Exemple #4
0
 public function getFields($userIdList)
 {
     $fields = array();
     $qs = array();
     $qBdate = BOL_QuestionService::getInstance()->findQuestionByName('birthdate');
     if ($qBdate->onView) {
         $qs[] = 'birthdate';
     }
     $qSex = BOL_QuestionService::getInstance()->findQuestionByName('sex');
     if ($qSex->onView) {
         $qs[] = 'sex';
     }
     $questionList = BOL_QuestionService::getInstance()->getQuestionData($userIdList, $qs);
     foreach ($questionList as $uid => $question) {
         $fields[$uid] = array();
         $age = '';
         if (!empty($question['birthdate'])) {
             $date = UTIL_DateTime::parseDate($question['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
             $age = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']);
         }
         $sexValue = '';
         if (!empty($question['sex'])) {
             $sex = $question['sex'];
             for ($i = 0; $i < 31; $i++) {
                 $val = pow(2, $i);
                 if ((int) $sex & $val) {
                     $sexValue .= BOL_QuestionService::getInstance()->getQuestionValueLang('sex', $val) . ', ';
                 }
             }
             if (!empty($sexValue)) {
                 $sexValue = substr($sexValue, 0, -2);
             }
         }
         if (!empty($sexValue) && !empty($age)) {
             $fields[$uid][] = array('label' => '', 'value' => $sexValue . ' ' . $age);
         }
         if (!empty($question['birthdate'])) {
             $dinfo = date_parse($question['birthdate']);
             if ($this->listKey == 'birthdays') {
                 $birthdate = '';
                 if (intval(date('d')) + 1 == intval($dinfo['day'])) {
                     $questionList[$uid]['birthday'] = OW::getLanguage()->text('base', 'date_time_tomorrow');
                     $birthdate = '<a href="#" class="ow_lbutton ow_green">' . $questionList[$uid]['birthday'] . '</a>';
                 } else {
                     if (intval(date('d')) == intval($dinfo['day'])) {
                         $questionList[$uid]['birthday'] = OW::getLanguage()->text('base', 'date_time_today');
                         $birthdate = '<a href="#" class="ow_lbutton ow_green">' . $questionList[$uid]['birthday'] . '</a>';
                     } else {
                         $birthdate = UTIL_DateTime::formatBirthdate($dinfo['year'], $dinfo['month'], $dinfo['day']);
                     }
                 }
                 $fields[$uid][] = array('label' => 'Birthday: ', 'value' => $birthdate);
             }
         }
     }
     return $fields;
 }
Exemple #5
0
 public function __construct(BASE_CLASS_WidgetParameter $params)
 {
     parent::__construct();
     $service = BIRTHDAYS_BOL_Service::getInstance();
     $user = BOL_UserService::getInstance()->findUserById($params->additionalParamList['entityId']);
     if ($user === null) {
         $this->setVisible(false);
         return;
     }
     $eventParams = array('action' => 'birthdays_view_my_birthdays', 'ownerId' => $user->getId(), 'viewerId' => OW::getUser()->getId());
     try {
         OW::getEventManager()->getInstance()->call('privacy_check_permission', $eventParams);
     } catch (RedirectException $e) {
         $this->setVisible(false);
         return;
     }
     $result = $service->findListByBirthdayPeriod(date('Y-m-d'), date('Y-m-d', strtotime('+7 day')), 0, 1, array($user->getId()));
     $isComingSoon = !empty($result);
     $this->assign('ballonGreenSrc', OW::getPluginManager()->getPlugin('birthdays')->getStaticUrl() . 'img/' . 'ballon-lime-green.png');
     $data = BOL_QuestionService::getInstance()->getQuestionData(array($user->getId()), array('birthdate'));
     if (!$isComingSoon && !$params->customizeMode || !array_key_exists('birthdate', $data[$user->getId()])) {
         $this->setVisible(false);
         return;
     }
     $birtdate = $data[$user->getId()]['birthdate'];
     $dateInfo = UTIL_DateTime::parseDate($birtdate, UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
     $label = '';
     if ($dateInfo['day'] == date('d')) {
         $label = '<span class="ow_lbutton ow_green">' . OW::getLanguage()->text('base', 'date_time_today') . '</span>';
     } else {
         if ($dateInfo['day'] == date('d') + 1) {
             $label = '<span class="ow_lbutton ow_green">' . OW::getLanguage()->text('base', 'date_time_tomorrow') . '</span>';
         } else {
             $label = '<span class="ow_small">' . UTIL_DateTime::formatBirthdate($dateInfo['year'], $dateInfo['month'], $dateInfo['day']) . '</span>';
         }
     }
     $this->assign('label', $label);
 }
function renderQuestion($userId, $questionName, $label = false)
{
    global $QuestionService;
    global $language;
    global $getConfig;
    global $QUESTION_PRESENTATION_SELECT;
    global $QUESTION_PRESENTATION_RADIO;
    global $QUESTION_PRESENTATION_MULTICHECKBOX;
    global $QUESTION_PRESENTATION_URL;
    global $QUESTION_PRESENTATION_TEXT;
    global $QUESTION_PRESENTATION_TEXTAREA;
    global $QUESTION_PRESENTATION_DATE;
    global $QUESTION_VALUE_TYPE_DATETIME;
    global $QUESTION_VALUE_TYPE_SELECT;
    global $QUESTION_PRESENTATION_BIRTHDATE;
    global $QUESTION_PRESENTATION_AGE;
    global $QUESTION_PRESENTATION_RANGE;
    global $MYSQL_DATETIME_DATE_FORMAT;
    $questionData = $QuestionService->getQuestionData(array($userId), array($questionName));
    if (!isset($questionData[$userId][$questionName])) {
        return null;
    }
    $question = $QuestionService->findQuestionByName($questionName);
    switch ($question->presentation) {
        case $QUESTION_PRESENTATION_DATE:
            $format = $getConfig->getValue('base', 'date_field_format');
            $value = 0;
            switch ($question->type) {
                case $QUESTION_VALUE_TYPE_DATETIME:
                    $date = UTIL_DateTime::parseDate($questionData[$userId][$question->name], $MYSQL_DATETIME_DATE_FORMAT);
                    $value = $date;
                    break;
                case $QUESTION_VALUE_TYPE_SELECT:
                    $value = (int) $questionData[$userId][$question->name];
                    break;
            }
            if ($format === 'dmy') {
                $questionData[$userId][$question->name] = date("d/m/Y", $value);
            } else {
                $questionData[$userId][$question->name] = date("m/d/Y", $value);
            }
            break;
        case $QUESTION_PRESENTATION_BIRTHDATE:
            $date = UTIL_DateTime::parseDate($questionData[$userId][$question->name], $MYSQL_DATETIME_DATE_FORMAT);
            $questionData[$userId][$question->name] = UTIL_DateTime::formatBirthdate($date['year'], $date['month'], $date['day']);
            break;
        case $QUESTION_PRESENTATION_AGE:
            $date = UTIL_DateTime::parseDate($questionData[$userId][$question->name], $MYSQL_DATETIME_DATE_FORMAT);
            $questionData[$userId][$question->name] = date("Y/m/d", strtotime($date['year'] . "/" . $date['month'] . "/" . $date['day']));
            break;
        case $QUESTION_PRESENTATION_RANGE:
            $range = explode('-', $questionData[$userId][$question->name]);
            $questionData[$userId][$question->name] = $language->text('base', 'form_element_from') . " " . $range[0] . " " . $language->text('base', 'form_element_to') . " " . $range[1];
            break;
        case $QUESTION_PRESENTATION_SELECT:
        case $QUESTION_PRESENTATION_RADIO:
        case $QUESTION_PRESENTATION_MULTICHECKBOX:
            $value = "";
            $multicheckboxValue = (int) $questionData[$userId][$question->name];
            $questionValues = $QuestionService->findQuestionValues($question->name);
            foreach ($questionValues as $val) {
                /* @var $val BOL_QuestionValue */
                if ((int) $val->value & $multicheckboxValue) {
                    if ($label == false) {
                        if (strlen($value) > 0) {
                            $value .= ',';
                        }
                        $value .= $val->value;
                        //$language->text('base', 'questions_question_' . $question->name . '_value_' . ($val->value));
                    } else {
                        if (strlen($value) > 0) {
                            $value .= ',';
                            // $value .= '@@';
                        }
                        // $QuestionService = $QuestionService;
                        $value .= $QuestionService->getQuestionValueLang($question->name, $val->value);
                        //$language->text('base', 'questions_question_' . $question->name . '_value_' . ($val->value));
                    }
                }
            }
            if (strlen($value) > 0) {
                $questionData[$userId][$question->name] = $value;
            }
            break;
        case $QUESTION_PRESENTATION_URL:
        case $QUESTION_PRESENTATION_TEXT:
        case $QUESTION_PRESENTATION_TEXTAREA:
            // googlemap_location shortcut
            if ($question->name == "googlemap_location" && !empty($questionData[$userId][$question->name]) && is_array($questionData[$userId][$question->name])) {
                $mapData = $questionData[$userId][$question->name];
                $value = trim($mapData["address"]);
            } else {
                $value = trim($questionData[$userId][$question->name]);
            }
            if (strlen($value) > 0) {
                $questionData[$userId][$question->name] = UTIL_HtmlTag::autoLink(nl2br($value));
            }
            break;
        default:
            $questionData[$userId][$question->name] = null;
    }
    return $questionData[$userId][$question->name];
}
Exemple #7
0
 public function getUserViewQuestions($userId, $adminMode = false, $questionNames = array(), $sectionNames = null)
 {
     $questionService = BOL_QuestionService::getInstance();
     $user = BOL_UserService::getInstance()->findUserById($userId);
     $accountType = $user->accountType;
     $language = OW::getLanguage();
     if (empty($questionNames)) {
         if ($adminMode) {
             $questions = $questionService->findAllQuestionsForAccountType($accountType);
         } else {
             $questions = $questionService->findViewQuestionsForAccountType($accountType);
         }
     } else {
         $questions = $questionService->findQuestionByNameList($questionNames);
         foreach ($questions as &$q) {
             $q = (array) $q;
         }
     }
     $section = null;
     $questionArray = array();
     $questionNameList = array();
     foreach ($questions as $sort => $question) {
         if (!empty($sectionNames) && !in_array($question['sectionName'], $sectionNames)) {
             continue;
         }
         if ($section !== $question['sectionName']) {
             $section = $question['sectionName'];
         }
         $questions[$sort]['hidden'] = false;
         if (!$questions[$sort]['onView']) {
             $questions[$sort]['hidden'] = true;
         }
         $questionArray[$section][$sort] = $questions[$sort];
         $questionNameList[] = $questions[$sort]['name'];
     }
     $questionData = $questionService->getQuestionData(array($userId), $questionNameList);
     $questionLabelList = array();
     // add form fields
     foreach ($questionArray as $sectionKey => $section) {
         foreach ($section as $questionKey => $question) {
             $event = new OW_Event('base.questions_field_get_label', array('presentation' => $question['presentation'], 'fieldName' => $question['name'], 'configs' => $question['custom'], 'type' => 'view'));
             OW::getEventManager()->trigger($event);
             $label = $event->getData();
             $questionLabelList[$question['name']] = !empty($label) ? $label : BOL_QuestionService::getInstance()->getQuestionLang($question['name']);
             $event = new OW_Event('base.questions_field_get_value', array('presentation' => $question['presentation'], 'fieldName' => $question['name'], 'value' => empty($questionData[$userId][$question['name']]) ? null : $questionData[$userId][$question['name']], 'questionInfo' => $question, 'userId' => $userId));
             OW::getEventManager()->trigger($event);
             $eventValue = $event->getData();
             if (!empty($eventValue)) {
                 $questionData[$userId][$question['name']] = $eventValue;
                 continue;
             }
             if (!empty($questionData[$userId][$question['name']])) {
                 switch ($question['presentation']) {
                     case BOL_QuestionService::QUESTION_PRESENTATION_CHECKBOX:
                         if ((int) $questionData[$userId][$question['name']] === 1) {
                             $questionData[$userId][$question['name']] = OW::getLanguage()->text('base', 'yes');
                         } else {
                             unset($questionArray[$sectionKey][$questionKey]);
                         }
                         break;
                     case BOL_QuestionService::QUESTION_PRESENTATION_DATE:
                         $format = OW::getConfig()->getValue('base', 'date_field_format');
                         $value = 0;
                         switch ($question['type']) {
                             case BOL_QuestionService::QUESTION_VALUE_TYPE_DATETIME:
                                 $date = UTIL_DateTime::parseDate($questionData[$userId][$question['name']], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                                 if (isset($date)) {
                                     $format = OW::getConfig()->getValue('base', 'date_field_format');
                                     $value = mktime(0, 0, 0, $date['month'], $date['day'], $date['year']);
                                 }
                                 break;
                             case BOL_QuestionService::QUESTION_VALUE_TYPE_SELECT:
                                 $value = (int) $questionData[$userId][$question['name']];
                                 break;
                         }
                         if ($format === 'dmy') {
                             $questionData[$userId][$question['name']] = date("d/m/Y", $value);
                         } else {
                             $questionData[$userId][$question['name']] = date("m/d/Y", $value);
                         }
                         break;
                     case BOL_QuestionService::QUESTION_PRESENTATION_BIRTHDATE:
                         $date = UTIL_DateTime::parseDate($questionData[$userId][$question['name']], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                         $questionData[$userId][$question['name']] = UTIL_DateTime::formatBirthdate($date['year'], $date['month'], $date['day']);
                         break;
                     case BOL_QuestionService::QUESTION_PRESENTATION_AGE:
                         $date = UTIL_DateTime::parseDate($questionData[$userId][$question['name']], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                         $questionData[$userId][$question['name']] = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']) . " " . $language->text('base', 'questions_age_year_old');
                         break;
                     case BOL_QuestionService::QUESTION_PRESENTATION_RANGE:
                         $range = explode('-', $questionData[$userId][$question['name']]);
                         $questionData[$userId][$question['name']] = $language->text('base', 'form_element_from') . " " . $range[0] . " " . $language->text('base', 'form_element_to') . " " . $range[1];
                         break;
                     case BOL_QuestionService::QUESTION_PRESENTATION_SELECT:
                     case BOL_QuestionService::QUESTION_PRESENTATION_RADIO:
                     case BOL_QuestionService::QUESTION_PRESENTATION_MULTICHECKBOX:
                         $value = "";
                         $multicheckboxValue = (int) $questionData[$userId][$question['name']];
                         $parentName = $question['name'];
                         if (!empty($question['parent'])) {
                             $parent = BOL_QuestionService::getInstance()->findQuestionByName($question['parent']);
                             if (!empty($parent)) {
                                 $parentName = $parent->name;
                             }
                         }
                         $questionValues = BOL_QuestionService::getInstance()->findQuestionValues($parentName);
                         $value = array();
                         foreach ($questionValues as $val) {
                             /* @var $val BOL_QuestionValue */
                             if ((int) $val->value & $multicheckboxValue) {
                                 /* if ( strlen($value) > 0 )
                                                                       {
                                                                       $value .= ', ';
                                                                       }
                                 
                                                                       $value .= $language->text('base', 'questions_question_' . $parentName . '_value_' . ($val->value)); */
                                 $value[$val->value] = BOL_QuestionService::getInstance()->getQuestionValueLang($val->questionName, $val->value);
                             }
                         }
                         if (!empty($value)) {
                             $questionData[$userId][$question['name']] = $value;
                         } else {
                             unset($questionArray[$sectionKey][$questionKey]);
                         }
                         break;
                     case BOL_QuestionService::QUESTION_PRESENTATION_URL:
                     case BOL_QuestionService::QUESTION_PRESENTATION_TEXT:
                     case BOL_QuestionService::QUESTION_PRESENTATION_TEXTAREA:
                         if (!is_string($questionData[$userId][$question['name']])) {
                             break;
                         }
                         $value = trim($questionData[$userId][$question['name']]);
                         if (strlen($value) > 0) {
                             $questionData[$userId][$question['name']] = UTIL_HtmlTag::autoLink(nl2br($value));
                         } else {
                             unset($questionArray[$sectionKey]);
                         }
                         break;
                     default:
                         unset($questionArray[$sectionKey][$questionKey]);
                 }
             } else {
                 unset($questionArray[$sectionKey][$questionKey]);
             }
         }
         if (isset($questionArray[$sectionKey]) && count($questionArray[$sectionKey]) === 0) {
             unset($questionArray[$sectionKey]);
         }
     }
     return array('questions' => $questionArray, 'data' => $questionData, 'labels' => $questionLabelList);
 }
 private function renderQuestion($userId, $questionName)
 {
     $language = OW::getLanguage();
     $questionData = BOL_QuestionService::getInstance()->getQuestionData(array($userId), array($questionName));
     if (!isset($questionData[$userId][$questionName])) {
         return null;
     }
     $question = BOL_QuestionService::getInstance()->findQuestionByName($questionName);
     switch ($question->presentation) {
         /*case BOL_QuestionService::QUESTION_PRESENTATION_CHECKBOX:
                         
                         if ( (int) $questionData[$userId][$question->name] === 1 )
                         {
                             $questionData[$userId][$question['name']] = $language->text('base', 'questions_checkbox_value_true');
                         }
                         else
                         {
                             $questionData[$userId][$question['name']] = $language->text('base', 'questions_checkbox_value_false');
                         }
         
                         break;*/
         case BOL_QuestionService::QUESTION_PRESENTATION_DATE:
             $format = OW::getConfig()->getValue('base', 'date_field_format');
             $value = 0;
             switch ($question->type) {
                 case BOL_QuestionService::QUESTION_VALUE_TYPE_DATETIME:
                     $date = UTIL_DateTime::parseDate($questionData[$userId][$question->name], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                     if (isset($date)) {
                         $format = OW::getConfig()->getValue('base', 'date_field_format');
                         $value = mktime(0, 0, 0, $date['month'], $date['day'], $date['year']);
                     }
                     break;
                 case BOL_QuestionService::QUESTION_VALUE_TYPE_SELECT:
                     $value = (int) $questionData[$userId][$question->name];
                     break;
             }
             if ($format === 'dmy') {
                 $questionData[$userId][$question->name] = date("d/m/Y", $value);
             } else {
                 $questionData[$userId][$question->name] = date("m/d/Y", $value);
             }
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_BIRTHDATE:
             $date = UTIL_DateTime::parseDate($questionData[$userId][$question->name], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
             $questionData[$userId][$question->name] = UTIL_DateTime::formatBirthdate($date['year'], $date['month'], $date['day']);
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_AGE:
             $date = UTIL_DateTime::parseDate($questionData[$userId][$question->name], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
             $questionData[$userId][$question->name] = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']) . " " . $language->text('base', 'questions_age_year_old');
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_RANGE:
             $range = explode('-', $questionData[$userId][$question->name]);
             $questionData[$userId][$question->name] = $language->text('base', 'form_element_from') . " " . $range[0] . " " . $language->text('base', 'form_element_to') . " " . $range[1];
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_SELECT:
         case BOL_QuestionService::QUESTION_PRESENTATION_RADIO:
         case BOL_QuestionService::QUESTION_PRESENTATION_MULTICHECKBOX:
             $value = "";
             $multicheckboxValue = (int) $questionData[$userId][$question->name];
             $questionValues = BOL_QuestionService::getInstance()->findQuestionValues($question->name);
             foreach ($questionValues as $val) {
                 /* @var $val BOL_QuestionValue */
                 if ((int) $val->value & $multicheckboxValue) {
                     if (strlen($value) > 0) {
                         $value .= ', ';
                     }
                     $value .= $language->text('base', 'questions_question_' . $question->name . '_value_' . $val->value);
                 }
             }
             if (strlen($value) > 0) {
                 $questionData[$userId][$question->name] = $value;
             }
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_URL:
         case BOL_QuestionService::QUESTION_PRESENTATION_TEXT:
         case BOL_QuestionService::QUESTION_PRESENTATION_TEXTAREA:
             // googlemap_location shortcut
             if ($question->name == "googlemap_location" && !empty($questionData[$userId][$question->name]) && is_array($questionData[$userId][$question->name])) {
                 $mapData = $questionData[$userId][$question->name];
                 $value = trim($mapData["address"]);
             } else {
                 $value = trim($questionData[$userId][$question->name]);
             }
             if (strlen($value) > 0) {
                 $questionData[$userId][$question->name] = UTIL_HtmlTag::autoLink(nl2br($value));
             }
             break;
         default:
             $questionData[$userId][$question->name] = null;
     }
     return $questionData[$userId][$question->name];
 }
Exemple #9
0
 public function getQuestionValueForUserList(BOL_Question $question, $value)
 {
     $stringValue = "";
     switch ($question->presentation) {
         case BOL_QuestionService::QUESTION_PRESENTATION_CHECKBOX:
             if ((int) $value === 1) {
                 $stringValue = OW::getLanguage()->text('base', 'yes');
             }
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_DATE:
             $format = OW::getConfig()->getValue('base', 'date_field_format');
             $value = 0;
             switch ($question->type) {
                 case BOL_QuestionService::QUESTION_VALUE_TYPE_DATETIME:
                     $date = UTIL_DateTime::parseDate($value, UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                     if (isset($date)) {
                         $stringValue = mktime(0, 0, 0, $date['month'], $date['day'], $date['year']);
                     }
                     break;
                 case BOL_QuestionService::QUESTION_VALUE_TYPE_SELECT:
                     $stringValue = (int) $value;
                     break;
             }
             if ($format === 'dmy') {
                 $stringValue = date("d/m/Y", $value);
             } else {
                 $stringValue = date("m/d/Y", $value);
             }
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_BIRTHDATE:
             $date = UTIL_DateTime::parseDate($value, UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
             $stringValue = UTIL_DateTime::formatBirthdate($date['year'], $date['month'], $date['day']);
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_AGE:
             $date = UTIL_DateTime::parseDate($alue, UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
             $stringValue = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']) . " " . $language->text('base', 'questions_age_year_old');
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_RANGE:
             $range = explode('-', $value);
             $stringValue = $language->text('base', 'form_element_from') . " " . $range[0] . " " . $language->text('base', 'form_element_to') . " " . $range[1];
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_SELECT:
         case BOL_QuestionService::QUESTION_PRESENTATION_RADIO:
         case BOL_QuestionService::QUESTION_PRESENTATION_MULTICHECKBOX:
             $multicheckboxValue = (int) $value;
             $parentName = $question->name;
             if (!empty($question->parent)) {
                 $parent = BOL_QuestionService::getInstance()->findQuestionByName($question->parent);
                 if (!empty($parent)) {
                     $parentName = $parent->name;
                 }
             }
             $questionValues = BOL_QuestionService::getInstance()->findQuestionValues($parentName);
             foreach ($questionValues as $val) {
                 /* @var $val BOL_QuestionValue */
                 if ((int) $val->value & $multicheckboxValue) {
                     $stringValue .= BOL_QuestionService::getInstance()->getQuestionValueLang($val->questionName, $val->value) . ', ';
                 }
             }
             if (!empty($stringValue)) {
                 $stringValue = mb_substr($stringValue, 0, -2);
             }
             break;
         case BOL_QuestionService::QUESTION_PRESENTATION_URL:
         case BOL_QuestionService::QUESTION_PRESENTATION_TEXT:
         case BOL_QuestionService::QUESTION_PRESENTATION_TEXTAREA:
             if (!is_string($value)) {
                 break;
             }
             $value = trim($value);
             if (strlen($value) > 0) {
                 $stringValue = UTIL_HtmlTag::autoLink(nl2br($value));
             }
             break;
     }
     return $stringValue;
 }
Exemple #10
0
 private function getUserInfo($userId, $question, $value)
 {
     $questionName = $question['name'];
     $event = new OW_Event('base.questions_field_get_label', array('presentation' => $question['presentation'], 'fieldName' => $questionName, 'configs' => $question['custom'], 'type' => 'view'));
     OW::getEventManager()->trigger($event);
     $eventData = $event->getData();
     $questionLabel = !empty($eventData) ? $eventData : BOL_QuestionService::getInstance()->getQuestionLang($questionName);
     $event = new OW_Event('base.questions_field_get_value', array('presentation' => $question['presentation'], 'fieldName' => $questionName, 'value' => $value, 'questionInfo' => $question, 'userId' => $userId));
     OW::getEventManager()->trigger($event);
     $eventValue = $event->getData();
     $questionValue = '';
     if (!empty($eventValue)) {
         $questionValue = $eventValue;
     } else {
         switch ($question['presentation']) {
             case BOL_QuestionService::QUESTION_PRESENTATION_CHECKBOX:
                 $questionValue = OW::getLanguage()->text('base', (int) $value === 1 ? 'yes' : 'no');
                 break;
             case BOL_QuestionService::QUESTION_PRESENTATION_DATE:
                 $value = null;
                 switch ($question['type']) {
                     case BOL_QuestionService::QUESTION_VALUE_TYPE_DATETIME:
                         $date = UTIL_DateTime::parseDate($value, UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                         if (isset($date)) {
                             $value = mktime(0, 0, 0, $date['month'], $date['day'], $date['year']);
                         }
                         break;
                     case BOL_QuestionService::QUESTION_VALUE_TYPE_SELECT:
                         $value = (int) $value;
                         break;
                 }
                 $questionValue = date(OW::getConfig()->getValue('base', 'date_field_format') === 'dmy' ? 'd/m/Y' : 'm/d/Y', $value);
                 break;
             case BOL_QuestionService::QUESTION_PRESENTATION_BIRTHDATE:
                 $date = UTIL_DateTime::parseDate($value, UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                 $questionValue = UTIL_DateTime::formatBirthdate($date['year'], $date['month'], $date['day']);
                 break;
             case BOL_QuestionService::QUESTION_PRESENTATION_AGE:
                 $date = UTIL_DateTime::parseDate($value, UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
                 $questionValue = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']) . " " . OW::getLanguage()->text('base', 'questions_age_year_old');
                 break;
             case BOL_QuestionService::QUESTION_PRESENTATION_RANGE:
                 $range = explode('-', $value);
                 $questionValue = OW::getLanguage()->text('base', 'form_element_from') . " " . $range[0] . " " . OW::getLanguage()->text('base', 'form_element_to') . " " . $range[1];
                 break;
             case BOL_QuestionService::QUESTION_PRESENTATION_SELECT:
             case BOL_QuestionService::QUESTION_PRESENTATION_RADIO:
             case BOL_QuestionService::QUESTION_PRESENTATION_MULTICHECKBOX:
                 $multicheckboxValue = (int) $value;
                 $parentName = $question['name'];
                 if (!empty($question['parent'])) {
                     $parent = BOL_QuestionService::getInstance()->findQuestionByName($question['parent']);
                     if (!empty($parent)) {
                         $parentName = $parent->name;
                     }
                 }
                 static $values = array();
                 if (!isset($values[$parentName])) {
                     $values[$parentName] = BOL_QuestionService::getInstance()->findQuestionValues($parentName);
                 }
                 $_value = array();
                 foreach ($values[$parentName] as $val) {
                     if ((int) $val->value & $multicheckboxValue) {
                         $_value[] = BOL_QuestionService::getInstance()->getQuestionValueLang($val->questionName, $val->value);
                     }
                 }
                 $questionValue = $_value;
                 break;
             default:
                 $questionValue = strip_tags(trim((string) $value));
                 break;
         }
     }
     return array('label' => $questionLabel, 'value' => $questionValue);
 }
Exemple #11
0
 public function getUserListFields(OW_Event $e)
 {
     $params = $e->getParams();
     $list = !empty($params['list']) ? $params['list'] : null;
     $userIdList = !empty($params['userIdList']) ? $params['userIdList'] : null;
     if (empty($userIdList)) {
         return;
     }
     $fieldsList = array();
     $qBirthdate = BOL_QuestionService::getInstance()->findQuestionByName('birthdate');
     if ($qBirthdate->onView) {
         $fieldsList[] = 'birthdate';
     }
     $qSex = BOL_QuestionService::getInstance()->findQuestionByName('sex');
     if ($qSex->onView) {
         $fieldsList[] = 'sex';
     }
     $questionList = BOL_QuestionService::getInstance()->findQuestionByNameList($fieldsList);
     $qData = BOL_QuestionService::getInstance()->getQuestionData($userIdList, $fieldsList);
     $data = $e->getData();
     foreach ($userIdList as $userId) {
         $questionsData = $qData[$userId];
         $age = '';
         if (!empty($questionsData['birthdate'])) {
             $date = UTIL_DateTime::parseDate($questionsData['birthdate'], UTIL_DateTime::MYSQL_DATETIME_DATE_FORMAT);
             $age = UTIL_DateTime::getAge($date['year'], $date['month'], $date['day']);
         }
         $sexValue = '';
         if (!empty($questionsData['sex'])) {
             $sexValue = BOL_QuestionService::getInstance()->getQuestionValueForUserList($questionList['sex'], $questionsData['sex']);
         }
         if (!empty($sexValue) && !empty($age)) {
             $data[$userId][] = $sexValue . ' ' . $age;
         }
         switch ($list) {
             case "birthdays":
                 if (!empty($questionsData['birthdate']) && $list == 'birthdays') {
                     $dinfo = date_parse($questionsData['birthdate']);
                     $birthdate = '';
                     if (intval(date('d')) + 1 == intval($dinfo['day'])) {
                         $birthday = OW::getLanguage()->text('base', 'date_time_tomorrow');
                         $birthdate = '<a href="#" class="ow_lbutton ow_green">' . $birthday . '</a>';
                     } else {
                         if (intval(date('d')) == intval($dinfo['day'])) {
                             $birthday = OW::getLanguage()->text('base', 'date_time_today');
                             $birthdate = '<a href="#" class="ow_lbutton ow_green">' . $birthday . '</a>';
                         } else {
                             $birthdate = UTIL_DateTime::formatBirthdate($dinfo['year'], $dinfo['month'], $dinfo['day']);
                         }
                     }
                     $data[$userId][] = OW::getLanguage()->text('birthdays', 'birthday') . ":" . $birthdate;
                 }
                 break;
         }
     }
     $e->setData($data);
 }