Skip to content

Commit

Permalink
addresses MDL-19154. May not fix every thing here... more tests in pr…
Browse files Browse the repository at this point in the history
…ogress.
  • Loading branch information
diml committed May 11, 2009
1 parent a9e79cb commit 67b9864
Showing 1 changed file with 35 additions and 29 deletions.
64 changes: 35 additions & 29 deletions search/documents/data_document.php
Expand Up @@ -85,7 +85,7 @@ public function __construct(&$comment, $course_id, $context_id) {
$data->database = $comment['dataid'];

// construct the parent class
parent::__construct($doc, $data, $course_id, $comment['groupid'], $comment['userid'], PATH_FOR_SEARCH_TYPE_DATA);
parent::__construct($doc, $data, $course_id, $comment['groupid'], $comment['userid'], 'mod/'.SEARCH_TYPE_DATA);
}
}

Expand All @@ -109,19 +109,21 @@ function data_make_link($database_id, $record_id) {
* @uses CFG
* @return an array of objects representing the data records.
*/
function data_get_records($database_id, $typematch = '*') {
function data_get_records($database_id, $typematch = '*', $recordid = 0) {
global $CFG;

$fieldset = get_records('data_fields', 'dataid', $database_id);
$uniquerecordclause = ($recordid > 0) ? " AND c.recordid = $recordid " : '' ;
$query = "
SELECT
c.*
FROM
{$CFG->prefix}data_content c,
{$CFG->prefix}data_records r
{$CFG->prefix}data_content as c,
{$CFG->prefix}data_records as r
WHERE
c.recordid = r.id AND
r.dataid = {$database_id}
$uniquerecordclause
ORDER BY
c.fieldid
";
Expand Down Expand Up @@ -161,8 +163,8 @@ function data_get_comments($database_id) {
c.modified,
r.dataid
FROM
{$CFG->prefix}data_comments c,
{$CFG->prefix}data_records r
{$CFG->prefix}data_comments as c,
{$CFG->prefix}data_records as r
WHERE
c.recordid = r.id
";
Expand Down Expand Up @@ -207,22 +209,20 @@ function data_get_content_for_index(&$database) {
foreach($records_content[$aRecordId] as $aField){
$content = @$content.' '.$aField;
}
if (strlen($content) > 0) {
unset($recordMetaData);
$recordMetaData = get_record('data_records', 'id', $aRecordId);
$recordMetaData->title = $first;
$recordTitles[$aRecordId] = $first;
$recordMetaData->content = $content;
$documents[] = new DataSearchDocument(get_object_vars($recordMetaData), $database->course, $context->id);
}
unset($recordMetaData);
$recordMetaData = get_record('data_records', 'id', $aRecordId);
$recordMetaData->title = $first;
$recordTitles[$aRecordId] = $first;
$recordMetaData->content = $content;
$documents[] = new DataSearchDocument(get_object_vars($recordMetaData), $database->course, $context->id);
}
}

// getting comments for indexing
$records_comments = data_get_comments($database->id);
if ($records_comments){
foreach($records_comments as $aComment){
$aComment->title = $recordsTitle[$aComment->recordid];
$aComment->title = $recordsTitles[$aComment->recordid];
$documents[] = new DataCommentSearchDocument(get_object_vars($aComment), $database->course, $context->id);
}
}
Expand All @@ -245,23 +245,28 @@ function data_single_document($id, $itemtype) {
$coursemodule = get_field('modules', 'id', 'name', 'data');
$cm = get_record('course_modules', 'course', $record_course, 'module', $coursemodule, 'instance', $recordMetaData->dataid);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
// get text fields ids in this data (computable fields)
// compute text
$recordData = get_records_select('data_content', "recordid = $id AND type = 'text'", 'recordid');
$accumulator = '';
$recordData = data_get_records($recordMetaData->dataid, 'text', $id);
if ($recordData){
$first = $recordData[0];
if (count($recordData) > 1){
$others = array_splice($recordData, 0, 1);
foreach($others as $aDatum){
$accumulator .= $data->content.' '.$data->content1.' '.$data->content2.' '.$data->content3.' '.$data->content4.' ';
}
$dataArray = array_values($recordData);
$record_content = $dataArray[0]; // We cannot have more than one record here

// extract title as first record in order
$first = $record_content['_first'];
unset($record_content['_first']);

// concatenates all other texts
$content = '';
foreach($record_content as $aField){
$content = @$content.' '.$aField;
}
unset($recordMetaData);
$recordMetaData = get_record('data_records', 'id', $aRecordId);
$recordMetaData->title = $first;
$recordMetaData->content = $content;
return new DataSearchDocument(get_object_vars($recordMetaData), $record_course, $context->id);
}
// add extra fields
$recordMetaData->title = $first;
$recordMetaData->content = $accumulator;
// make document
$documents[] = new DataSearchDocument(get_object_vars($recordMetaData), $record_course, $context->id);
} elseif($itemtype == 'comment') {
// get main records
$comment = get_record('data_comments', 'id', $id);
Expand All @@ -276,9 +281,10 @@ function data_single_document($id, $itemtype) {
$comment->dataid = $record->dataid;
$comment->groupid = $record->groupid;
// make document
$documents[] = new DataCommentSearchDocument(get_object_vars($comment), $record_course, $context->id);
return new DataCommentSearchDocument(get_object_vars($comment), $record_course, $context->id);
} else {
mtrace('Error : bad or missing item type');
return NULL;
}
}

Expand Down

0 comments on commit 67b9864

Please sign in to comment.