Skip to content
Snippets Groups Projects
Commit 384e5ea9 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms Committed by Jan-Hendrik Willms
Browse files

fix errors in mvv models, fixes #1230

Closes #1230

Merge request studip/studip!741
parent 5c8ab2c2
No related branches found
No related tags found
No related merge requests found
<?php
/**
* This interface ensures that all objects of ModuleManagementModel have
* the same constructor signature. Otherwise, we can not guarantee that the
* use of "new static()" in ModuleManagement code will always do the right
* things.
*
* @author Jan-Hendrik Willms <tleilax+studip@gmail.com>
* @license GPL2 or any later version
*/
interface ModuleManagementInterface
{
public function __construct($id = null);
}
...@@ -364,7 +364,7 @@ class Lvgruppe extends ModuleManagementModelTreeItem ...@@ -364,7 +364,7 @@ class Lvgruppe extends ModuleManagementModelTreeItem
*/ */
public function getTrailParent() public function getTrailParent()
{ {
return Modul::findCached($this->getTrailParent_id()); return Modul::findCached($this->getTrailParentId());
} }
/** /**
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
require_once 'config/mvv_config.php'; require_once 'config/mvv_config.php';
abstract class ModuleManagementModel extends SimpleORMap abstract class ModuleManagementModel extends SimpleORMap implements ModuleManagementInterface
{ {
/** /**
* Usable as option for ModuleManagementModel::getDisplayName(). * Usable as option for ModuleManagementModel::getDisplayName().
...@@ -133,7 +133,7 @@ abstract class ModuleManagementModel extends SimpleORMap ...@@ -133,7 +133,7 @@ abstract class ModuleManagementModel extends SimpleORMap
/** /**
* Returns an object by given id with all relations and additional fields. * Returns an object by given id with all relations and additional fields.
* *
* @param tring $id The id of the object. * @param string $id The id of the object.
* @return ModuleManagementModel * @return ModuleManagementModel
*/ */
public static function getEnriched($id) public static function getEnriched($id)
...@@ -493,7 +493,7 @@ abstract class ModuleManagementModel extends SimpleORMap ...@@ -493,7 +493,7 @@ abstract class ModuleManagementModel extends SimpleORMap
* @param array $params Array with the parameters used in query * @param array $params Array with the parameters used in query
* @param int $row_count Number of rows to return * @param int $row_count Number of rows to return
* @param int $offset Offset where the result set starts * @param int $offset Offset where the result set starts
* @return object SimpleOrMapCollection with all found objects or empty array * @return SimpleOrMapCollection with all found objects or empty array
*/ */
public static function getEnrichedByQuery($query = null, $params = [], public static function getEnrichedByQuery($query = null, $params = [],
$row_count = null, $offset = null) $row_count = null, $offset = null)
......
...@@ -7,20 +7,18 @@ ...@@ -7,20 +7,18 @@
* modify it under the terms of the GNU General Public License as * modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of * published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version. * the License, or (at your option) any later version.
* *
* @author Peter Thienel <thienel@data-quest.de> * @author Peter Thienel <thienel@data-quest.de>
* @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
* @category Stud.IP * @category Stud.IP
* @since 3.5 * @since 3.5
*/ */
require_once 'ModuleManagementModel.php';
abstract class ModuleManagementModelTreeItem extends ModuleManagementModel implements MvvTreeItem abstract class ModuleManagementModelTreeItem extends ModuleManagementModel implements MvvTreeItem
{ {
/** /**
* The default route through the MVV object structure. * The default route through the MVV object structure.
* *
* @var array * @var array
*/ */
public static $TRAIL_DEFAULT = [ public static $TRAIL_DEFAULT = [
...@@ -36,15 +34,15 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple ...@@ -36,15 +34,15 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
'Abschluss', 'Abschluss',
'AbschlussKategorie' 'AbschlussKategorie'
]; ];
/** /**
* An array of functions to filter mvv objects during path creation. * An array of functions to filter mvv objects during path creation.
* The class name is the key and the filter function the value. * The class name is the key and the filter function the value.
* *
* @var array * @var array
*/ */
protected static $object_filter = []; protected static $object_filter = [];
/** /**
* @see MvvTreeItem::getTrailParentId() * @see MvvTreeItem::getTrailParentId()
*/ */
...@@ -52,7 +50,7 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple ...@@ -52,7 +50,7 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
{ {
return ($_SESSION['MVV/' . get_class() . '/trail_parent_id']); return ($_SESSION['MVV/' . get_class() . '/trail_parent_id']);
} }
public function getTrails($types = null, $mode = null, $path = null, $in_recursion = false) public function getTrails($types = null, $mode = null, $path = null, $in_recursion = false)
{ {
$path = $path ?: self::$TRAIL_DEFAULT; $path = $path ?: self::$TRAIL_DEFAULT;
...@@ -61,7 +59,7 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple ...@@ -61,7 +59,7 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
$class_name = get_class($this); $class_name = get_class($this);
$next = $path[array_search($class_name, $path) + 1]; $next = $path[array_search($class_name, $path) + 1];
$parents = $this->getParents($next); $parents = $this->getParents($next);
foreach ($parents as $parent) { foreach ($parents as $parent) {
if ($parent) { if ($parent) {
if ($this->checkFilter($parent)) { if ($this->checkFilter($parent)) {
...@@ -81,17 +79,17 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple ...@@ -81,17 +79,17 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
} }
} }
} }
if (empty($trails) && in_array($class_name, $types)) { if (empty($trails) && in_array($class_name, $types)) {
$trails = [[$class_name => $this]]; $trails = [[$class_name => $this]];
} }
return $trails; return $trails;
} }
/** /**
* Checks trails object filter. * Checks trails object filter.
* *
* @param MvvTreeItem $item The item to check. * @param MvvTreeItem $item The item to check.
* @return boolean True if item has passed the check. * @return boolean True if item has passed the check.
*/ */
...@@ -106,22 +104,22 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple ...@@ -106,22 +104,22 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
} }
return true; return true;
} }
protected static function sortTrails($trail_a, $trail_b) protected static function sortTrails($trail_a, $trail_b)
{ {
} }
/** /**
* Returns whether this object is assignable to courses. * Returns whether this object is assignable to courses.
* *
* @return boolean True if the object is assignable. * @return boolean True if the object is assignable.
*/ */
public function isAssignable() public function isAssignable()
{ {
return false; return false;
} }
/** /**
* @see MvvTreeItem::hasChildren() * @see MvvTreeItem::hasChildren()
*/ */
...@@ -129,11 +127,11 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple ...@@ -129,11 +127,11 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
{ {
return count($this->getChildren()) > 0; return count($this->getChildren()) > 0;
} }
/** /**
* Formats the trails to pathes. The path consists of alle names of the * Formats the trails to pathes. The path consists of alle names of the
* objects of a trail glued together with the given delimiter. * objects of a trail glued together with the given delimiter.
* *
* @param array $trails All trails as array. * @param array $trails All trails as array.
* @param string $delimiter A string used as the "glue". * @param string $delimiter A string used as the "glue".
* @param int $display_options Display options set by constants defined * @param int $display_options Display options set by constants defined
...@@ -153,10 +151,10 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple ...@@ -153,10 +151,10 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
sort($pathes, SORT_LOCALE_STRING); sort($pathes, SORT_LOCALE_STRING);
return $pathes; return $pathes;
} }
/** /**
* Filters trails by given object types. * Filters trails by given object types.
* *
* @param array $trails An array of trails. * @param array $trails An array of trails.
* @param array $filter_objects An array of object class names. * @param array $filter_objects An array of object class names.
* @return array The filtered trails. * @return array The filtered trails.
...@@ -183,11 +181,11 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple ...@@ -183,11 +181,11 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
} }
return $filtered_trails; return $filtered_trails;
} }
/** /**
* Stores filter function to restrict pathes only to objects fulfilling * Stores filter function to restrict pathes only to objects fulfilling
* all conditions defined in this function. * all conditions defined in this function.
* *
* @param string $class_name The name of the class. * @param string $class_name The name of the class.
* @param Closure $filter_func The function defining the filter. * @param Closure $filter_func The function defining the filter.
* @param array $params Parameters used by filter function. * @param array $params Parameters used by filter function.
......
...@@ -99,7 +99,7 @@ class Modulteil extends ModuleManagementModelTreeItem ...@@ -99,7 +99,7 @@ class Modulteil extends ModuleManagementModelTreeItem
/** /**
* Retrieves all Modulteile of the given Modul. * Retrieves all Modulteile of the given Modul.
* *
* @param type $modul_id The id of a Modul. * @param string $modul_id The id of a Modul.
* @return SimpleORMapCollection A collection of Modulteile. * @return SimpleORMapCollection A collection of Modulteile.
*/ */
public static function findByModul($modul_id) public static function findByModul($modul_id)
...@@ -119,7 +119,7 @@ class Modulteil extends ModuleManagementModelTreeItem ...@@ -119,7 +119,7 @@ class Modulteil extends ModuleManagementModelTreeItem
/** /**
* Retrieves all Modulteile the given LV-Gruppe is assigned to. * Retrieves all Modulteile the given LV-Gruppe is assigned to.
* *
* @param type $lvgruppe_id The id of a LV-Gruppe. * @param string $lvgruppe_id The id of a LV-Gruppe.
* @return SimpleORMapCollection A collection of Modulteile. * @return SimpleORMapCollection A collection of Modulteile.
*/ */
public static function findByLvgruppe($lvgruppe_id) public static function findByLvgruppe($lvgruppe_id)
......
...@@ -37,7 +37,7 @@ class MvvCourse extends ModuleManagementModelTreeItem ...@@ -37,7 +37,7 @@ class MvvCourse extends ModuleManagementModelTreeItem
*/ */
public function getTrailParent() public function getTrailParent()
{ {
return LvGruppe::findCached($this->getTrailParent_id()); return LvGruppe::findCached($this->getTrailParentId());
} }
/** /**
...@@ -58,7 +58,7 @@ class MvvCourse extends ModuleManagementModelTreeItem ...@@ -58,7 +58,7 @@ class MvvCourse extends ModuleManagementModelTreeItem
public function getDisplayName($options = self::DISPLAY_DEFAULT) public function getDisplayName($options = self::DISPLAY_DEFAULT)
{ {
$this->getName(); return $this->name;
} }
/** /**
......
...@@ -44,12 +44,14 @@ class MvvFileFileref extends ModuleManagementModel ...@@ -44,12 +44,14 @@ class MvvFileFileref extends ModuleManagementModel
* *
* @return string Name of the file. * @return string Name of the file.
*/ */
public function getFilename() public function getFilename(): string
{ {
if ($this->file_ref) { if ($this->file_ref) {
$filetype = $this->file_ref->getFileType(); $filetype = $this->file_ref->getFileType();
return $filetype->getFilename(); return $filetype->getFilename();
} }
throw new Exception("Could not load file ref for file");
} }
/** /**
...@@ -92,5 +94,7 @@ class MvvFileFileref extends ModuleManagementModel ...@@ -92,5 +94,7 @@ class MvvFileFileref extends ModuleManagementModel
} }
} }
} }
return false;
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment