public function GetWidgetUrl($auth, $widgettype, $widgetSettings = null)
 {
     $rServiceUrl = str_replace('EngineWebServices', '', $this->_configuration->getScormEngineServiceUrl());
     //$rServiceUrl = 'http://localhost/';
     switch ($widgettype) {
         case 'allSummary':
             $reporturl = $rServiceUrl . '/Reportage/scormreports/widgets/summary/SummaryWidget.php';
             $reporturl .= '?srt=allLearnersAllCourses';
             break;
         case 'courseSummary':
             $reporturl = $rServiceUrl . '/Reportage/scormreports/widgets/summary/SummaryWidget.php';
             $reporturl .= '?srt=singleCourse';
             break;
         case 'learnerSummary':
             $reporturl = $rServiceUrl . 'Reportage/scormreports/widgets/summary/SummaryWidget.php';
             $reporturl .= '?srt=singleLearnerSingleCourse';
             break;
         case 'courseActivities':
         case 'learnerRegistration':
         case 'courseComments':
         case 'learnerComments':
         case 'courseInteractionsShort':
         case 'learnerInteractions':
         case 'learnerActivities':
         case 'courseRegistration':
         case 'learnerRegistration':
         case 'learnerCourseActivities':
         case 'learnerTranscript':
         case 'learnerCourseInteractionsShort':
         case 'learnerCourseComments':
             $reporturl = $rServiceUrl . '/Reportage/scormreports/widgets/DetailsWidget.php';
             $reporturl .= '?drt=' . $widgettype;
             break;
         case 'allLearners':
             $reporturl = $rServiceUrl . '/Reportage/scormreports/widgets/ViewAllDetailsWidget.php';
             $reporturl .= '?viewall=learners';
             break;
         case 'allCourses':
             $reporturl = $rServiceUrl . '/Reportage/scormreports/widgets/ViewAllDetailsWidget.php';
             $reporturl .= '?viewall=courses';
             break;
         default:
             break;
     }
     $reporturl .= '&appId=' . $this->_configuration->getAppId();
     //process the WidgetSettings
     if (isset($widgetSettings)) {
         if ($widgetSettings->hasCourseId()) {
             $reporturl .= '&courseId=' . $widgetSettings->getCourseId();
         }
         if ($widgetSettings->hasLearnerId()) {
             $reporturl .= '&learnerId=' . $widgetSettings->getLearnerId();
         }
         $reporturl .= '&showTitle=' . boolString($widgetSettings->getShowTitle());
         $reporturl .= '&standalone=' . boolString($widgetSettings->getStandalone());
         if ($widgetSettings->getIframe()) {
             $reporturl .= '&iframe=true';
             //only write this if it's true
         }
         $reporturl .= '&expand=' . boolString($widgetSettings->getExpand());
         $reporturl .= '&scriptBased=' . boolString($widgetSettings->getScriptBased());
         $reporturl .= '&divname=' . $widgetSettings->getDivname();
         $reporturl .= '&vertical=' . boolString($widgetSettings->getVertical());
         $reporturl .= '&embedded=' . boolString($widgetSettings->getEmbedded());
         //$reporturl .= '&viewall='.boolString($widgetSettings->getViewAll());
         //$reporturl .= '&export='.boolString($widgetSettings->getExport());
         //Process the DateRangeSettings
         $dateRangeSettings = $widgetSettings->getDateRangeSettings();
         if (isset($dateRangeSettings)) {
             switch ($dateRangeSettings->getDateRangeType()) {
                 case 'selection':
                     //daterange
                     $reporturl .= '&dateRangeType=c';
                     $reporturl .= '&dateRangeStart=' . $dateRangeSettings->getDateRangeStart();
                     $reporturl .= '&dateRangeEnd=' . $dateRangeSettings->getDateRangeEnd();
                     $reporturl .= '&dateCriteria=' . $dateRangeSettings->getDateCriteria();
                     break;
                 case 'mtd':
                     //month to date
                     $reporturl .= '&dateRangeType=mtd';
                     $reporturl .= '&dateCriteria=' . $dateRangeSettings->getDateCriteria();
                     break;
                 case 'ytd':
                     //year to date
                     $reporturl .= '&dateRangeType=ytd';
                     $reporturl .= '&dateCriteria=' . $dateRangeSettings->getDateCriteria();
                     break;
                     //case 'p3m': ??
                 //case 'p3m': ??
                 default:
                     break;
             }
         }
         //Process Tags
         $tagSettings = $widgetSettings->getTagSettings();
         if (isset($tagSettings)) {
             $tagSettings = $widgetSettings->getTagSettings();
             if ($tagSettings->hasTags('learner')) {
                 $reporturl .= '&learnerTags=' . $tagSettings->getTagString('learner');
                 $reporturl .= '&viewLearnerTagGroups=' . $tagSettings->getViewTagString('learner');
             }
             if ($tagSettings->hasTags('course')) {
                 $reporturl .= '&courseTags=' . $tagSettings->getTagString('course');
                 $reporturl .= '&viewCourseTagGroups=' . $tagSettings->getViewTagString('course');
             }
             if ($tagSettings->hasTags('registration')) {
                 $reporturl .= '&registrationTags=' . $tagSettings->getTagString('registration');
                 $reporturl .= '&viewRegistrationTagGroups=' . $tagSettings->getViewTagString('registration');
             }
         }
         //Process Comparisons
         $comparisonSettings = $widgetSettings->getComparisonSettings();
         if (isset($comparisonSettings)) {
             $reporturl .= '&compDateRangeType=ad';
             $reporturl .= '&compDateCriteria=launched';
             $reporturl .= '&compLearnerTags=_all';
             $reporturl .= '&compDateRangeType=ad';
             $reporturl .= '&compDateCriteria=launched';
             $reporturl .= '&compViewLearnerTagGroups=_all';
             $reporturl .= '&compViewCourseTagGroups=_all';
             $reporturl .= '&compViewRegistrationTagGroups=_all';
             $reporturl .= '&compMatchDates=1';
         }
     }
     //error_log("ReportUrl: ".$reporturl);
     return $this->GetReportUrl($auth, $reporturl);
     //return $reporturl;
 }
Ejemplo n.º 2
0
function getServer($id)
{
    $app = Slim\Slim::getInstance();
    $app->contentType('application/json');
    $response = $app->response();
    $server = $id[0];
    $path = implode("/", array_slice($id, 1));
    if (!$path) {
        $path = "/";
    } else {
        $path = "/" . $path;
    }
    $id = implode("/", $id);
    $root_dir = getOption('root') . '/' . $id;
    $extensions = getOption('extensions');
    echo "{\n  \"server\": \"{$server}\",\n";
    echo "  \"path\": \"" . encodePath($path) . "\"";
    if (is_dir($root_dir) && ($handle = opendir($root_dir))) {
        echo ",\n  \"content\": [";
        $is_first = true;
        $has_search = false;
        while (false !== ($file = readdir($handle))) {
            $path_parts = pathinfo($file);
            if (isset($path_parts['extension'])) {
                $extension = $path_parts['extension'];
            }
            if ($file == '_search') {
                $has_search = true;
            } else {
                if (!startsWith($file, '.') && is_dir("{$root_dir}/{$file}")) {
                    if ($is_first) {
                        $is_first = false;
                    } else {
                        echo ",";
                    }
                    echo "\n    { \"folder\": " . json_encode($file) . ", \"link\": \"" . encodePath("{$id}/{$file}") . "\" }";
                } else {
                    if (is_file("{$root_dir}/{$file}") && in_array($extension, $extensions)) {
                        if ($is_first) {
                            $is_first = false;
                        } else {
                            echo ",";
                        }
                        echo "\n    { \"file\": " . json_encode($file) . ", \"link\": \"" . encodePath("{$id}/{$file}") . "\", \"type\": \"" . $extension . "\" }";
                    }
                }
            }
        }
        closedir($handle);
        echo "\n  ],";
        echo "\n  \"search\": " . boolString($has_search);
        $response["Cache-Control"] = "max-age=600";
    } else {
        $response->status(404);
    }
    echo "\n}\n";
}