diff --git a/controllers/copy.php b/controllers/copy.php index 804e6b8efab18e36eec2c49b9c135a0eb9d4ac94..dd966a7f99bfff28efe00570b1b0c63169834772 100755 --- a/controllers/copy.php +++ b/controllers/copy.php @@ -25,7 +25,7 @@ class CopyController extends PluginController } if (count(Request::getArray("c")) == 1) { $this->single_course = Course::find(current(Request::getArray("c"))); - $this->single_course_name = $course->name; + $this->single_course_name = $this->single_course; } } else { throw new Trails_Exception(400); @@ -97,6 +97,7 @@ class CopyController extends PluginController $newcourse['mkdate'] = time(); $newcourse->setId($newcourse->getNewId()); $newcourse['start_time'] = $semester['beginn']; + $newcourse['duration_time'] = 0; if ($invisible_copied_courses) { $newcourse['visible'] = 0; } @@ -222,6 +223,7 @@ class CopyController extends PluginController if (Request::get("cycles")) { + $last_week = count($semester->getStartWeeks()) - 1; foreach ($oldcourse->cycles as $cycledate) { $statement = DBManager::get()->prepare(" @@ -242,10 +244,8 @@ class CopyController extends PluginController $newcycle->setData($cycledate->toArray()); $newcycle->setId($newcycle->getNewId()); $newcycle['seminar_id'] = $newcourse->getId(); - $newcycle['week_offset'] = Request::get("week_offset"); - $newcycle['end_offset'] = Request::get("end_offset") !== 10000 - ? Request::get("end_offset") - : floor(($semester['vorles_ende'] - $semester['vorles_beginn']) / (86400 * 7)); + $newcycle['week_offset'] = Request::int("week_offset"); + $newcycle['end_offset'] = Request::get('end_offset') == 'last' ? $last_week : Request::int("end_offset"); $newcycle['mkdate'] = time(); $newcycle['chdate'] = time(); $newcycle->store(); diff --git a/plugin.manifest b/plugin.manifest index ca81a4628888ee70285243c3d68e48e1589a9c12..024778581085fac7ae1cdbf86829faa062d5c42c 100755 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,6 +1,6 @@ pluginname=CourseCopy pluginclassname=CourseCopy -version=1.9.3 +version=1.9.4 origin=data-quest studipMinVersion=4.0 studipMaxVersion=5.3.99 diff --git a/views/copy/semester_start_und_ende.php b/views/copy/semester_start_und_ende.php index fbceb897c7b0dcdf315034b6d3fc9acacdf174ed..22a78a73ceb3e107776e830fd36b651c2592483c 100755 --- a/views/copy/semester_start_und_ende.php +++ b/views/copy/semester_start_und_ende.php @@ -1,36 +1,31 @@ +<?php +$start_weeks = $semester->getStartWeeks(); +$last_week = count($start_weeks) - 1; +?> <label> <?= _("Startwoche") ?> <select name="week_offset"> - <? $i = 0 ?> - <? while ($semester['vorles_beginn'] + 43200 + 86400 * 7 * $i < $semester['vorles_ende']) : ?> + <? foreach ($start_weeks as $i => $text) : ?> <option value="<?= $i ?>"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_WEEK_OFFSET == $i ? " checked" : "" ?>> - <? - $timestamp = $semester['vorles_beginn'] + 43200 + 86400 * 7 * $i; - $timestamp = $timestamp - ((date("w", $timestamp) - 1) % 7) * 86400; - ?> - <?= sprintf(_("%s. Semesterwoche (ab %s)"), $i + 1, date("d.m.Y", $timestamp)) ?> + <?= $text?> </option> - <? $i++ ?> - <? endwhile ?> + <? endforeach; ?> </select> </label> <label> <?= _("Endwoche") ?> <select name="end_offset"> - <option value="10000"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_END_OFFSET == 10000 ? " checked" : "" ?>> - <?= _("Letzte Semesterwoche") ?> - </option> - <? $i = floor(($semester['vorles_ende'] - $semester['vorles_beginn']) / (86400 * 7)) - 1 ?> - <? while ($i >= 0) : ?> - <option value="<?= $i ?>"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_END_OFFSET == $i ? " checked" : "" ?>> - <? - $timestamp = $semester['vorles_beginn'] + 43200 + 86400 * 7 * $i; - $timestamp = $timestamp - ((date("w", $timestamp) - 1) % 7) * 86400; - ?> - <?= sprintf(_("%s. Semesterwoche (ab %s)"), $i + 1, date("d.m.Y", $timestamp)) ?> + <? foreach (array_reverse($start_weeks, true) as $i => $text) : ?> + <? if ($i == $last_week) : ?> + <option value="last"> + <?= _('Semesterende: ') . $text?> </option> - <? $i-- ?> - <? endwhile ?> + <? else : ?> + <option value="<?= $i ?>"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_END_OFFSET == $i ? " checked" : "" ?>> + <?= $text?> + </option> + <? endif ?> + <? endforeach ?> </select> </label>