本文整理汇总了PHP中Course::decodeCourse方法的典型用法代码示例。如果您正苦于以下问题:PHP Course::decodeCourse方法的具体用法?PHP Course::decodeCourse怎么用?PHP Course::decodeCourse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Course
的用法示例。
在下文中一共展示了Course::decodeCourse方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: install
public static function install($data, &$fail, &$errno, &$error)
{
$res = array();
if (!$fail) {
// die /course Befehle der LCourse auslösen
// alle Veranstaltungen abrufen
$multiRequestHandle = new Request_MultiRequest();
$handler = Request_CreateRequest::createGet($data['PL']['url'] . '/DB/DBCourse/course', array(), '');
$multiRequestHandle->addRequest($handler);
$result = $multiRequestHandle->run();
if (isset($result[0]['content']) && isset($result[0]['status']) && $result[0]['status'] === 200) {
// /course ausloesen
$courses = Course::decodeCourse($result[0]['content']);
if (!is_array($courses)) {
$courses = array($courses);
}
$multiRequestHandle = new Request_MultiRequest();
foreach ($courses as $course) {
$handler = Request_CreateRequest::createPost($data['PL']['url'] . '/logic/LCourse/course', array(), Course::encodeCourse($course));
$multiRequestHandle->addRequest($handler);
}
$answer = $multiRequestHandle->run();
if (count($courses) != count($answer)) {
$fail = true;
$error = Language::Get('courses', 'differentAnswers') . "\n" . Language::Get('main', 'line') . ':' . __LINE__;
}
$i = 0;
foreach ($courses as $course) {
$result = $answer[$i];
$res[$course->getId()] = array();
$res[$course->getId()]['course'] = $course;
if (isset($result['content']) && isset($result['status']) && $result['status'] === 201) {
$res[$course->getId()]['status'] = 201;
} else {
$res[$course->getId()]['status'] = 409;
$fail = true;
if (isset($result['status'])) {
$errno = $result['status'];
$res[$course->getId()]['status'] = $result['status'];
}
}
$i++;
if ($i >= count($answer)) {
break;
}
}
} else {
$fail = true;
$error = "GET /DB/DBCourse/course " . Language::Get('courses', 'operationFailed');
if (isset($result[0]['status'])) {
$errno = $result[0]['status'];
}
}
}
return $res;
}
示例2: addCourse
/**
* Adds the component to a course
*
* Called when this component receives an HTTP POST request to
* /course(/).
*/
public function addCourse()
{
Logger::Log('starts POST AddCourse', LogLevel::DEBUG);
$header = $this->app->request->headers->all();
$body = $this->app->request->getBody();
$courses = Course::decodeCourse($body);
$processes = array();
if (!is_array($courses)) {
$courses = array($courses);
}
foreach ($courses as $course) {
$process = new Process();
$exercise = new Exercise();
$exercise->setCourseId($course->getId());
$process->setExercise($exercise);
$component = new Component();
$component->setId($this->_conf->getId());
$process->setTarget($component);
$processes[] = $process;
}
foreach ($this->_postProcess as $_link) {
$result = Request::routeRequest('POST', '/process', $header, Process::encodeProcess($processes), $_link, 'process');
// checks the correctness of the query
if ($result['status'] >= 200 && $result['status'] <= 299) {
$this->app->response->setStatus(201);
if (isset($result['headers']['Content-Type'])) {
$this->app->response->headers->set('Content-Type', $result['headers']['Content-Type']);
}
} else {
/* if ($courses->getId()!==null){
$this->deleteCourse($courses->getId());
}*/
Logger::Log('POST AddCourse failed', LogLevel::ERROR);
$this->app->response->setStatus(isset($result['status']) ? $result['status'] : 409);
$this->app->response->setBody(Course::encodeCourse($courses));
$this->app->stop();
}
}
$this->app->response->setBody(Course::encodeCourse($courses));
}
示例3: addCourse
/**
* Adds the component to a course
*
* Called when this component receives an HTTP POST request to
* /course(/).
*/
public function addCourse()
{
Logger::Log('starts POST AddCourse', LogLevel::DEBUG);
$header = $this->app->request->headers->all();
$body = $this->app->request->getBody();
$course = Course::decodeCourse($body);
foreach ($this->_createCourse as $_link) {
$result = Request::routeRequest('POST', '/course', $header, Course::encodeCourse($course), $_link, 'course');
// checks the correctness of the query
if ($result['status'] >= 200 && $result['status'] <= 299) {
$this->app->response->setStatus(201);
if (isset($result['headers']['Content-Type'])) {
$this->app->response->headers->set('Content-Type', $result['headers']['Content-Type']);
}
} else {
if ($course->getId() !== null) {
$this->deleteCourse($course->getId());
}
Logger::Log('POST AddCourse failed', LogLevel::ERROR);
$this->app->response->setStatus(isset($result['status']) ? $result['status'] : 409);
$this->app->response->setBody(Course::encodeCourse($course));
$this->app->stop();
}
}
$this->app->response->setBody(Course::encodeCourse($course));
}
示例4: addCourse
/**
* Adds the component to a course
*/
public function addCourse($pre = '')
{
$this->loadConfig($pre);
$pre = ($pre === '' ? '' : '_') . $pre;
Logger::Log('starts POST AddCourse', LogLevel::DEBUG);
// decode the received course data, as an object
$insert = Course::decodeCourse($this->_app->request->getBody());
// always been an array
$arr = true;
if (!is_array($insert)) {
$insert = array($insert);
$arr = false;
}
// this array contains the indices of the inserted objects
$res = array();
foreach ($insert as $in) {
// starts a query, by using a given file
$result = DBRequest::getRoutedSqlFile($this->query, dirname(__FILE__) . '/Sql/AddCourse.sql', array('object' => $in, 'pre' => $pre));
// checks the correctness of the query
if ($result['status'] >= 200 && $result['status'] <= 299) {
$queryResult = Query::decodeQuery($result['content']);
$res[] = $in;
$this->_app->response->setStatus(201);
if (isset($result['headers']['Content-Type'])) {
$this->_app->response->headers->set('Content-Type', $result['headers']['Content-Type']);
}
} else {
Logger::Log('POST AddCourse failed', LogLevel::ERROR);
$this->_app->response->setStatus(isset($result['status']) ? $result['status'] : 409);
$this->_app->response->setBody(Course::encodeCourse($res));
$this->_app->stop();
}
}
if (!$arr && count($res) == 1) {
$this->_app->response->setBody(Course::encodeCourse($res[0]));
} else {
$this->_app->response->setBody(Course::encodeCourse($res));
}
}
示例5: cleanCourses
public static function cleanCourses($data, &$fail, &$errno, &$error)
{
$res = array();
if (!$fail) {
$cleanLinks = Einstellungen::getLinks('deleteClean');
// alle Veranstaltungen abrufen
$multiRequestHandle = new Request_MultiRequest();
$handler = Request_CreateRequest::createGet($data['PL']['url'] . '/DB/DBCourse/course', array(), '');
$multiRequestHandle->addRequest($handler);
$result = $multiRequestHandle->run();
if (isset($result[0]['content']) && isset($result[0]['status']) && $result[0]['status'] === 200) {
// /course ausloesen
$courses = Course::decodeCourse($result[0]['content']);
if (!is_array($courses)) {
$courses = array($courses);
}
$offset = count($courses) - 50;
// nur die letzten 50 Veranstaltungen werden bereinigt
$offset = $offset < 0 ? 0 : $offset;
$courses = array_slice($courses, $offset);
foreach ($courses as $course) {
$multiRequestHandle = new Request_MultiRequest();
$answer = array();
for ($i = 0; $i < count($cleanLinks); $i++) {
// inits all components
$handler = Request_CreateRequest::createDelete($cleanLinks[$i]->getAddress() . '/clean/clean/course/' . $course->getId(), array(), '');
$multiRequestHandle->addRequest($handler);
}
$answer = $multiRequestHandle->run();
}
$res['status'] = 201;
} else {
$fail = true;
$error = "GET /DB/DBCourse/course " . Language::Get('courses', 'operationFailed');
if (isset($result[0]['status'])) {
$errno = $result[0]['status'];
}
}
}
return $res;
}
示例6: ExtractCourse
public static function ExtractCourse($data, $singleResult = false, $CourseExtension = '', $SheetExtension = '', $isResult = true)
{
// generates an assoc array of courses by using a defined list of
// its attributes
$courses = DBJson::getObjectsByAttributes($data, Course::getDBPrimaryKey(), Course::getDBConvert(), $CourseExtension);
// generates an assoc array of settings by using a defined list of
// its attributes
$settings = DBJson::getObjectsByAttributes($data, Setting::getDBPrimaryKey(), Setting::getDBConvert());
// generates an assoc array of exercise sheets by using a defined list of
// its attributes
$exerciseSheets = DBJson::getObjectsByAttributes($data, ExerciseSheet::getDBPrimaryKey(), array(ExerciseSheet::getDBPrimaryKey() => ExerciseSheet::getDBConvert()[ExerciseSheet::getDBPrimaryKey()]), $SheetExtension);
// concatenates the courses and the associated settings
$res = DBJson::concatObjectListResult($data, $courses, Course::getDBPrimaryKey(), Course::getDBConvert()['C_settings'], $settings, Setting::getDBPrimaryKey());
// concatenates the courses and the associated exercise sheet IDs
$res = DBJson::concatResultObjectListAsArray($data, $res, Course::getDBPrimaryKey(), Course::getDBConvert()['C_exerciseSheets'], $exerciseSheets, ExerciseSheet::getDBPrimaryKey(), $SheetExtension, $CourseExtension);
if ($isResult) {
$res = Course::decodeCourse($res, false);
if ($singleResult == true) {
// only one object as result
if (count($res) > 0) {
$res = $res[0];
}
}
}
return $res;
}
示例7: http_get
$group = http_get($URL, true);
$group = json_decode($group, true);
$upload_data['group'] = $group;
}
$user_course_data = $upload_data['user'];
$isExpired = null;
$hasStarted = null;
if (isset($upload_data['exerciseSheet']['endDate']) && isset($upload_data['exerciseSheet']['startDate'])) {
// bool if endDate of sheet is greater than the actual date
$isExpired = date('U') > date('U', $upload_data['exerciseSheet']['endDate']);
// bool if startDate of sheet is greater than the actual date
$hasStarted = date('U') > date('U', $upload_data['exerciseSheet']['startDate']);
if ($isExpired) {
$allowed = 0;
if (isset($user_course_data['courses'][0]['course'])) {
$obj = Course::decodeCourse(Course::encodeCourse($user_course_data['courses'][0]['course']));
$allowed = Course::containsSetting($obj, 'AllowLateSubmissions');
}
///set_error("Der Übungszeitraum ist am ".date('d.m.Y - H:i', $upload_data['exerciseSheet']['endDate'])." abgelaufen!");
if ($allowed === null || $allowed == 1) {
$msg = Language::Get('main', 'expiredExercisePerionDesc', $langTemplate, array('endDate' => date('d.m.Y - H:i', $upload_data['exerciseSheet']['endDate'])));
$notifications[] = MakeNotification('warning', $msg);
} else {
set_error(Language::Get('main', 'expiredExercisePerion', $langTemplate, array('endDate' => date('d.m.Y - H:i', $upload_data['exerciseSheet']['endDate']))));
}
} elseif (!$hasStarted) {
set_error(Language::Get('main', 'noStartedExercisePeriod', $langTemplate, array('startDate' => date('d.m.Y - H:i', $upload_data['exerciseSheet']['startDate']))));
}
} else {
set_error(Language::Get('main', 'noExercisePeriod', $langTemplate));
}
示例8: addCourse
/**
* Adds the component to a course
*
* Called when this component receives an HTTP POST request to
* /course(/).
*/
public function addCourse()
{
Logger::Log('starts POST AddCourse', LogLevel::DEBUG);
$body = $this->app->request->getBody();
// die Daten der Veranstaltung kommen über den Aufrufkörper rein
$courses = Course::decodeCourse($body);
$processes = array();
if (!is_array($courses)) {
$courses = array($courses);
}
// wenn die Komponente direkt in mehrere Veranstaltungen eingetragen werden soll,
// wird das Eintragen für alle vorgenommen
foreach ($courses as $course) {
// ab hier wird der neue Eintrag zusammengestellt
$process = new Process();
$exercise = new Exercise();
$exercise->setCourseId($course->getId());
$process->setExercise($exercise);
$component = new Component();
$component->setId($this->_conf->getId());
$process->setTarget($component);
// und nun wird gesammelt
$processes[] = $process;
}
// die erstellten Einträge können nun an den Zuständigen geschickt werden
foreach ($this->_postProcess as $_link) {
$result = Request::routeRequest('POST', '/process', array(), Process::encodeProcess($processes), $_link, 'process');
// checks the correctness of the query
if ($result['status'] >= 200 && $result['status'] <= 299) {
// wenn der Erstellvorgang erfolgreich war, können wir dies melden
$this->app->response->setStatus(201);
if (isset($result['headers']['Content-Type'])) {
$this->app->response->headers->set('Content-Type', $result['headers']['Content-Type']);
}
} else {
// der Eintrag konnte nicht erstellt werden
/* if ($courses->getId()!==null){
$this->deleteCourse($courses->getId());
}*/
Logger::Log('POST AddCourse failed', LogLevel::ERROR);
// gibt den Status der "Erstellanfrage" zurück oder eine 409 und zusätzlich
// das eingehende Veranstaltungsobjekt
$this->app->response->setStatus(isset($result['status']) ? $result['status'] : 409);
$this->app->response->setBody(Course::encodeCourse($courses));
$this->app->stop();
}
}
// die bearbeiteten Veranstaltungen können nun zur Ausgabe hinzugefügt werden
$this->app->response->setBody(Course::encodeCourse($courses));
}
示例9: loginUser
/**
* Logs in a user.
*
* @param string $username
* @param string $password
* @return true if login is successful
*/
public function loginUser($username, $password)
{
global $databaseURI;
global $logicURI;
// check if logged in in studip
$studip = $this->checkUserInStudip($this->uid, $this->sid);
$studipStatus = null;
if ($studip == true) {
///Logger::Log("inStudip", LogLevel::DEBUG, false, dirname(__FILE__) . '/../../auth.log');
$url = "{$databaseURI}/user/user/{$username}";
$message = null;
$this->userData = http_get($url, false, $message);
///Logger::Log("ostepuUser_url: ".$url, LogLevel::DEBUG, false, dirname(__FILE__) . '/../../auth.log');
///Logger::Log("ostepuUser_message: ".$message, LogLevel::DEBUG, false, dirname(__FILE__) . '/../../auth.log');
///Logger::Log("ostepuUser_data: ".$this->userData, LogLevel::DEBUG, false, dirname(__FILE__) . '/../../auth.log');
$this->userData = json_decode($this->userData, true);
// check if user exists in our system
if ($message != "404" && empty($this->userData) == false) {
// save logged in uid
$_SESSION['UID'] = $this->userData['id'];
// refresh Session in UI and DB
$refresh = $this->refreshSession();
if (isset($_GET['vid']) && (!isset($_GET['cid']) || $this->cid === null)) {
// convert vid to cid
// create course if does not exist
$this->cid = $this->convertVidToCid($_GET['vid']);
///Logger::Log("cid: ".$this->cid , LogLevel::DEBUG, false, dirname(__FILE__) . '/../../auth.log');
if ($this->cid === null) {
// create course
$studipStatus = $this->getUserStatusInStudip($this->uid, $this->vid);
if ($studipStatus === CourseStatus::getStatusDefinition(true)['administrator']) {
///Logger::Log("createCourse>>".$_GET['vid'] , LogLevel::DEBUG, false, dirname(__FILE__) . '/../../auth.log');
$courseObject = $this->getCourseInStudip($this->vid);
if ($courseObject !== null) {
$url = "{$logicURI}/course";
$courseObject = http_post_data($url, Course::encodeCourse($courseObject), false, $message);
if ($message === 201) {
// new course was created
$courseObject = Course::decodeCourse($courseObject);
if ($courseObject !== null) {
$this->cid = $courseObject->getId();
$url = "{$databaseURI}/externalid";
$externalId = ExternalId::createExternalId('S_' . $_GET['vid'], $this->cid);
$externalId = http_post_data($url, ExternalId::encodeExternalId($externalId), false, $message);
if ($message !== 201) {
// create externalId fails, remove course
$url = "{$logicURI}/course/course/" . $this->cid;
http_delete($url, false, $message);
$this->cid = null;
}
if ($this->cid !== null && $studipStatus === CourseStatus::getStatusDefinition(true)['administrator']) {
// redirect user to course settings
/// ???
}
}
}
}
}
}
}
if (!isset($this->cid) || $this->cid === null) {
set_error("unbekannte Veranstaltung!!!");
exit;
}
// get the courseStatus for given course
$this->courseStatus = $this->findCourseStatus();
///Logger::Log("courseStatus: ".$this->courseStatus , LogLevel::DEBUG, false, dirname(__FILE__) . '/../../auth.log');
// if user has no status in course create it
if (!isset($this->courseStatus)) {
if ($studipStatus === null) {
$studipStatus = $this->getUserStatusInStudip($this->uid, $this->vid);
}
if ($studipStatus !== null) {
///Logger::Log("createCourseStatus" , LogLevel::DEBUG, false, dirname(__FILE__) . '/../../auth.log');
// check whether an registration is allowed
$courseData = $this->getCourseData($this->cid);
if ($courseData === null) {
// no course data
set_error("Keine Veranstaltung gefunden!");
exit;
}
if ($courseData->getSettings() !== null) {
$end = Course::containsSetting($courseData, 'RegistrationPeriodEnd');
if ($end !== null && $end != 0 && $end < time()) {
// no registration allowed
set_error("Eine Anmeldung ist nicht möglich!!! Ablaufdatum: " . date('d.m.Y - H:i', $end));
exit;
}
}
$CourseStatusResponse = $this->createCourseStatus($this->userData['id'], $this->cid, $studipStatus);
// set courseStatus to studipStatus only if status is created in DB successfully
if ($CourseStatusResponse == true) {
$this->courseStatus = $studipStatus;
//.........这里部分代码省略.........
示例10: __construct
/**
* the constructor
*
* @param $data an assoc array with the object informations
*/
public function __construct($data = array())
{
if ($data === null) {
$data = array();
}
foreach ($data as $key => $value) {
if (isset($key)) {
if ($key == 'course') {
$this->{$key} = Course::decodeCourse($value, false);
} else {
$func = 'set' . strtoupper($key[0]) . substr($key, 1);
$methodVariable = array($this, $func);
if (is_callable($methodVariable)) {
$this->{$func}($value);
} else {
$this->{$key} = $value;
}
}
}
}
}