Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/main/gradebook/lib/be/studentpublicationlink.clas...

106 lines
2.4 KiB

<?php
/**
* Gradebook link to student publication item
* @author Bert Steppé
* @package dokeos.gradebook
*/
class StudentPublicationLink extends EvalLink
{
// INTERNAL VARIABLES
private $studpub_table = null;
private $itemprop_table = null;
// CONSTRUCTORS
function StudentPublicationLink()
{
$this->set_type(LINK_STUDENTPUBLICATION);
}
// FUNCTIONS IMPLEMENTING ABSTRACTLINK
public function get_view_url ($stud_id)
{
// find a file uploaded by the given student,
// with the same title as the evaluation name
$eval = $this->get_evaluation();
$sql = 'SELECT pub.url'
.' FROM '.$this->get_itemprop_table().' prop, '
.$this->get_studpub_table().' pub'
." WHERE prop.tool = 'work'"
.' AND prop.insert_user_id = '.$stud_id
.' AND prop.ref = pub.id'
." AND pub.title = '".mysql_real_escape_string($eval->get_name())."'";
$result = api_sql_query($sql, __FILE__, __LINE__);
if ($fileurl = mysql_fetch_row($result))
{
$course_info = Database :: get_course_info($this->get_course_code());
$url = api_get_path(WEB_PATH)
.'main/gradebook/open_document.php?file='
.$course_info['directory']
.'/'
.$fileurl[0];
return $url;
}
else
return null;
}
public function get_type_name()
{
return get_lang('DokeosStudentPublications');
}
public function is_allowed_to_change_name()
{
return false;
}
// INTERNAL FUNCTIONS
/**
* Lazy load function to get the database table of the student publications
*/
private function get_studpub_table ()
{
if (!isset($this->studpub_table))
{
$course_info = Database :: get_course_info($this->get_course_code());
$database_name = $course_info['db_name'];
$this->studpub_table = Database :: get_course_table(TABLE_STUDENT_PUBLICATION, $database_name);
}
return $this->studpub_table;
}
/**
* Lazy load function to get the database table of the item properties
*/
private function get_itemprop_table ()
{
if (!isset($this->itemprop_table))
{
$course_info = Database :: get_course_info($this->get_course_code());
$database_name = $course_info['db_name'];
$this->itemprop_table = Database :: get_course_table(TABLE_ITEM_PROPERTY, $database_name);
}
return $this->itemprop_table;
}
}
?>