Jump to content

Recommended Posts

Hi guys,

 

I have this problem: I have connected Moodle with Joomla and I ma transferring specific pieces from the database.

 

One of these pieces is the Feedback from grades. The feedback is written in Moodle using JCE editor which stores it in the HTML format

 

When I try to call on the feedback using code:

<?php echo $tarea['feedback']; ?>

 

I get an API error because the feedback contains characters like <p>, <li> etc.

 

When I manually remove these it works but all I get is unformatted plain text.

 

Is there a way how to persuade the database, Moodle and anything that needs to be changed, to display the feedback including HTML?

 

Just to clarify things, here are the codes I use to get data from Moodle to Joomla:

 

auth.php

function get_user_grades ($user,$cid) 
{
        global $CFG, $DB;

	$user = utf8_decode ($user);
        $user = get_complete_user_data ('username', $user);
        $uid = $user->id;


	$SQL = "SELECT g.itemid, g.finalgrade,gi.courseid,gi.itemname,gi.id, g.timecreated, g.feedback
                      FROM {$CFG->prefix}grade_items gi
                           JOIN {$CFG->prefix}grade_grades g      ON g.itemid = gi.id
                           JOIN {$CFG->prefix}user u              ON u.id = g.userid
                           JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
                       WHERE g.finalgrade IS NOT NULL
		   AND u.id =  ?
		   AND gi.courseid = ?
                  GROUP BY g.itemid
                  ORDER BY g.timecreated DESC";
     
                           
    $sum_array = array();
	$params = array ($uid, $cid);
    if ($sums = $DB->get_records_sql($SQL, $params)) 
	{
		$i = 0;
		$rdo = array ();
		foreach ($sums as $sum)
		{
			 if (! $grade_grade = grade_grade::fetch(array('itemid'=>$sum->id,'userid'=>$uid))) {
				$grade_grade = new grade_grade();
				$grade_grade->userid = $this->user->id;
				$grade_grade->itemid = $grade_object->id;

          }

				$grade_item = $grade_grade->load_grade_item();

				$sums2[$i] = $sum;
				$scale = $grade_item->load_scale();
				$formatted_grade = grade_format_gradevalue($sums2[$i]->finalgrade, &$grade_item, true, GRADE_DISPLAY_TYPE_REAL);
          $sums2[$i]->finalgrade = $formatted_grade;

				$rdo[$i]['itemname'] = $sum->itemname;
				$rdo[$i]['finalgrade'] = $formatted_grade;
          $rdo[$i]['timecreated'] = $sum->timecreated;
          $rdo[$i]['feedback'] = $sum->feedback;
		    $rdo[$i]['itemid'] = $sum->itemid;
          $i++;
		}
		return $rdo;
		return $sums2;
	}
	    
	return array();
    }

 

This is the translator:

externallib.php

/* get_user_grades */
    public static function get_user_grades_parameters() {
        return new external_function_parameters(
                        array(
                            'user' => new external_value(PARAM_TEXT, 'username'),
                            'id' => new external_value(PARAM_INT, 'course id'),
                        )
        );
    }

    public static function get_user_grades_returns() {
	 return new external_multiple_structure(
			new external_single_structure(
				array(
					'itemname' => new external_value(PARAM_TEXT, 'item name'),
					'finalgrade' => new external_value(PARAM_TEXT, 'final grade'),
					'timecreated' => new external_value(PARAM_INT, 'timecreated'),
					'feedback' => new external_value(PARAM_TEXT, 'feedback'),
					'itemid' => new external_value(PARAM_INT, 'itemid'),

				)
			)
            );
    }

    public static function get_user_grades($user, $id) {
        global $CFG, $DB;

        $params = self::validate_parameters(self::get_user_grades_parameters(), array('user' => $user, 'id'=>$id));

	$auth = new  auth_plugin_joomdle ();
	$return = $auth->get_user_grades ($user, $id);


        return $return;
    }

 

and this is the code to display it in Joomla:

<?php echo $tarea['feedback']; ?>

 

Thanks in advance for your answers!!

 

 

 

 

 

 

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.