Ejemplo n.º 1
0
function getSurveyLanguage()
{
    /* SMS */
    if ($_SESSION['SYSTEM_ENTRY'] == USCIC_SMS) {
        if (loadvar(SMS_POST_LANGUAGE) != '') {
            $l = loadvar(SMS_POST_LANGUAGE);
            if (isSurveyLanguage($l)) {
                $_SESSION['SURVEY_LANGUAGE'] = $l;
                return $_SESSION['SURVEY_LANGUAGE'];
            }
        }
        if (isset($_SESSION['SURVEY_LANGUAGE'])) {
            if (isSurveyLanguage($_SESSION['SURVEY_LANGUAGE'])) {
                return $_SESSION['SURVEY_LANGUAGE'];
            }
        }
        /* check user */
        $user = new User($_SESSION['URID']);
        $utype = $user->getUserType();
        switch ($utype) {
            case USER_SYSADMIN:
                $default = getDefaultSurveyLanguage();
                $_SESSION['SURVEY_LANGUAGE'] = $default;
                return $default;
            case USER_TRANSLATOR:
                $languages = explode("~", $user->getLanguages(getSurvey(), getSurveyMode()));
                $default = getDefaultSurveyLanguage();
                if (inArray($default, $languages)) {
                    $_SESSION['SURVEY_LANGUAGE'] = $default;
                    return $default;
                }
                $_SESSION['SURVEY_LANGUAGE'] = $languages[0];
                return $languages[0];
            default:
                $default = getDefaultSurveyLanguage();
                $_SESSION['SURVEY_LANGUAGE'] = $default;
                return $default;
        }
    }
    /* SURVEY */
    // check for new language
    global $engine, $language;
    /* global language has been set! (via setting below, so no need to repeat) */
    if (isSurveyLanguage($language)) {
        return $language;
    }
    /* get from loadvar (IF ALLOWED) */
    if (getSurveyLanguageAllowChange() != LANGUAGE_CHANGE_NOTALLOWED) {
        $l = loadvarSurvey(POST_PARAM_LANGUAGE);
        if (isSurveyLanguage($l)) {
            $language = $l;
            $_SESSION["PARAMS"][SESSION_PARAM_LANGUAGE] = $l;
            return $language;
        }
        $l = getFromSessionParams(SESSION_PARAM_NEWLANGUAGE);
        if (isSurveyLanguage($l)) {
            $_SESSION["PARAMS"][SESSION_PARAM_LANGUAGE] = $l;
            unset($_SESSION["PARAMS"][SESSION_PARAM_NEWLANGUAGE]);
            $language = $l;
            return $l;
        }
    }
    // check for old language from session
    $l = getFromSessionParams(SESSION_PARAM_LANGUAGE);
    //echo $l;
    if (isSurveyLanguage($l)) {
        $language = $l;
        return $l;
    }
    // default language
    $l = getDefaultSurveyLanguage();
    if (isSurveyLanguage($l)) {
        $language = $l;
        return $language;
    }
    /* everything else failed */
    $language = 1;
    // english
    return 1;
}
Ejemplo n.º 2
0
    function displayParadataScripts($paradata)
    {
        //only for surveys
        if ($_SESSION['SYSTEM_ENTRY'] != USCIC_SURVEY) {
            return;
        }
        // check config
        if ($paradata == false) {
            return;
        }
        // http://greensock.com/forums/topic/9059-cross-browser-to-detect-tab-or-window-is-active-so-animations-stay-in-sync-using-html5-visibility-api/
        if (!isRegisteredScript("js/TabWindowVisibilityManager.min.js")) {
            registerScript('js/TabWindowVisibilityManager.min.js');
            $returnStr = getScript('js/TabWindowVisibilityManager.min.js');
        }
        if (!isRegisteredScript("js/datetimepicker/moment-min.js")) {
            registerScript('js/datetimepicker/moment-min.js');
            $returnStr .= getScript("js/datetimepicker/moment-min.js");
        }
        //if (!isRegisteredScript("js/zip/lzstring.js")) {
        //    registerScript('js/zip/lzstring.js');
        //    $returnStr .= '<script type=text/javascript src="js/zip/lzstring.js"></script>';
        //}
        $params = array(POST_PARAM_DEFAULT_LANGUAGE => getDefaultSurveyLanguage(), POST_PARAM_DEFAULT_MODE => getDefaultSurveyMode(), POST_PARAM_RGID => $this->engine->getRgid(), POST_PARAM_LANGUAGE => getSurveyLanguage(), POST_PARAM_MODE => getSurveyMode(), SESSION_PARAM_TEMPLATE => getSurveyTemplate(), POST_PARAM_VERSION => getSurveyVersion(), POST_PARAM_STATEID => $this->engine->getStateId(), POST_PARAM_DISPLAYED => urlencode(serialize($this->engine->getDisplayNumbers())), POST_PARAM_PRIMKEY => $this->engine->getPrimaryKey(), POST_PARAM_SUID => $this->engine->getSuid());
        $r = setSessionsParamString($params);
        $returnStr .= '<script type="text/javascript">';
        $str = '
            // bind listeners
            $(document).ready(function(){  ';
        if (Config::logParadataMouseMovement()) {
            $str .= '$("html").mousemove(function(event) {
                    window.mousex = event.pageX;
                    window.mousey = event.pageY;
                });';
        }
        $str .= '
                $("html").click(function(event){
                    var name = "";
                    if (event.target.name) {
                        name = event.target.name;
                    }
                    logParadata("MC:"+event.pageX+":"+event.pageY+":"+event.which+":"+name);
                });
                $("html").keyup(function(event){
                    var name = "";
                    if (event.target.name) {
                        name = event.target.name;
                    }
                    logParadata("KE:"+event.keyCode+":"+name);
                });
            });';
        if (Config::logParadataMouseMovement()) {
            $str .= '
                window.mousex = 0;
                window.mousey = 0;
                window.lastx = window.mousex;
                window.lasty = window.mousey;
                function mousemov() {
                    if (window.lastx != window.mousex || window.lasty != window.mousey) {
                        logParadata("MM:"+window.mousex+":"+window.mousey);
                        window.lastx = window.mousex;
                        window.lasty = window.mousey;
                    }

                }
                window.onload=setInterval(mousemov, ' . Config::logParadataMouseMovementInterval() . '); // capture mouse movement every 5 seconds
                ';
        }
        $str .= '
            // compress function
            function compress(string) {
                return string;
                //return LZString.compressToUTF16(string);
            }
            
            // function to log paradata
            function logParadata(para) {
                $("#pid").val($("#pid").val() + "||" + compress(para + "=" + moment()));
                //alert($("#pid").val().length);
                // if length exceeds limit
                //if ($("#pid").val().length > 1024) {
                    //alert($("#pid").val().length);
                    //sendParadata($("#pid").val()); // send to server
                    //$("#pid").val(""); // reset
                //}
            }

            // function to send paradata to the server
            function sendParadata(paradata) {
                $.ajax({
                    type: "POST",
                    url: "ajax/index.php",
                    data: {ajaxr: "' . $r . '", p: "storeparadata", ' . POST_PARAM_PARADATA . ': paradata},
                    async: true
                });
            }
                 
            var firedin = false;                
            var firedout = false; 
            $(window).TabWindowVisibilityManager({
                onFocusCallback: function(){
                        if (firedin == false) {
                            //document.title="visible";
                            logParadata("FI:");	                
                        }
                        firedin = true;
                        firedout = false;
                },
                onBlurCallback: function(){
                    if (firedout == false) {
                        //document.title="invisible";
                        logParadata("FO:");
                    }
                    firedout = true;    
                    firedin = false;
                }
            });';
        $returnStr .= minifyScript($str);
        $returnStr .= '</script>';
        return $returnStr;
    }
Ejemplo n.º 3
0
    function showRemarkModal($queryobject, $qa, $current)
    {
        $params = array(POST_PARAM_DEFAULT_LANGUAGE => getDefaultSurveyLanguage(), POST_PARAM_DEFAULT_MODE => getDefaultSurveyMode(), POST_PARAM_LANGUAGE => getSurveyLanguage(), POST_PARAM_MODE => getSurveyMode(), POST_PARAM_GROUP => $this->engine->getTemplate(), POST_PARAM_TEMPLATE => getSurveyTemplate(), POST_PARAM_VERSION => getSurveyVersion(), POST_PARAM_STATEID => $this->engine->getStateId(), POST_PARAM_RGID => $this->engine->getRgid(), POST_PARAM_DISPLAYED => $this->engine->getDisplayed(), POST_PARAM_PRIMKEY => $this->engine->getPrimaryKey(), POST_PARAM_SUID => $this->engine->getSuid());
        $r = setSessionsParamString($params);
        $returnStr = minifyScript("<script type='text/javascript'>\n                            function storeRemark() { \n                                var val=\$('#remarkfield').val();\n                                if (val == '') {\n                                    if (\$('#uscic-remarkbutton').hasClass('uscic-remarkbutton-active') == true) {\n                                        \$('#uscic-remarkbutton').removeClass('uscic-remarkbutton-active');\n                                        \$('#" . POST_PARAM_REMARK_INDICATOR . "').val('');\n                                        \$.ajax({\n                                            type: 'POST',\n                                            url: 'ajax/index.php',\n                                            data: {p: 'removeremark', ajaxr: '" . $r . "'},\n                                            async: true\n                                          });\n                                     }\n                                }\n                                else {\n                                    \$('#uscic-remarkbutton').addClass('uscic-remarkbutton-active');\n                                    \$('#" . POST_PARAM_REMARK_INDICATOR . "').val(1);\n                                    \$.ajax({\n                                        type: 'POST',\n                                        url: 'ajax/index.php',\n                                        data: {p: 'storeremark', ajaxr: '" . $r . "', " . POST_PARAM_REMARK . ": encodeURIComponent(val)},\n                                        async: true\n                                      });\n                                }\n                            }</script>");
        $inlineclass = '';
        $returnStr .= '<div class="modal fade" id="remarkmodal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header uscic-modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
            <h4 class="modal-title" id="remarktitle">' . Language::remarkTitle() . '</h4>
            </div>
            <div class="modal-body">
                <h3>
                <div class="form-group uscic-formgroup' . $inlineclass . '">
                        <label>
                            <div class="uscic-remarkarea">
                                <textarea class="form-control uscic-form-control" id="remarkfield" name="remarkfield">' . $current . '</textarea>
                            </div>            
                        </label>
                </div>
                </h3>
            </div>';
        if ($queryobject->getShowCloseButton() == BUTTON_YES || $queryobject->getShowRemarkSaveButton() == BUTTON_YES) {
            $returnStr .= '<div class="panel-footer ' . $qa . ' uscic-buttonpanel">';
            if ($queryobject->getShowCloseButton() == BUTTON_YES) {
                $returnStr .= '<button type="button" class="btn btn-default" data-dismiss="modal">' . $queryobject->getLabelCloseButton() . '</button>';
            }
            if ($queryobject->getShowRemarkSaveButton() == BUTTON_YES) {
                $returnStr .= '<button type="button" class="btn btn-default" onclick=\'storeRemark(); $("#remarkmodal").modal("hide"); return false;\'>' . $queryobject->getLabelRemarkSaveButton() . '</button>';
            }
            $returnStr .= '</div>';
        }
        $returnStr .= '</div>
  </div>
</div>';
        return $returnStr;
    }
Ejemplo n.º 4
0
         }
     }
     $setting = new Setting();
     $this->addRuntimeSetting($index, $setting);
     return $setting;
     // db failed
 }
 function getSettingValueDirect($name, $mode, $language)
 {
     $index = strtoupper($name . $mode . $language . $this->getObjectType());
     if (isset($this->settings[$index])) {
         return $this->settings[$index]->getValue();
     }
     // check for current mode/default language
     $index = strtoupper($name . $mode . getDefaultSurveyLanguage() . $this->getObjectType());
     if (isset($this->settings[$index])) {
         return $this->settings[$index]->getValue();
     }
     // should we break mode below to find a setting value???
     // check for default mode/current language
     $index = strtoupper($name . getDefaultSurveyMode() . $language . $this->getObjectType());
     if (isset($this->settings[$index])) {
         return $this->settings[$index]->getValue();
     }