mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 01:16:44 +02:00
224 lines
9.3 KiB
PHP
Executable file
224 lines
9.3 KiB
PHP
Executable file
<?php // $Id$
|
|
///////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// NOTICE OF COPYRIGHT //
|
|
// //
|
|
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
|
|
// http://moodle.org //
|
|
// //
|
|
// Copyright (C) 2005 Martin Dougiamas http://dougiamas.com //
|
|
// //
|
|
// This program is free software; you can redistribute it and/or modify //
|
|
// it under the terms of the GNU General Public License as published by //
|
|
// the Free Software Foundation; either version 2 of the License, or //
|
|
// (at your option) any later version. //
|
|
// //
|
|
// This program is distributed in the hope that it will be useful, //
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
|
|
// GNU General Public License for more details: //
|
|
// //
|
|
// http://www.gnu.org/copyleft/gpl.html //
|
|
// //
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
require_once('../../config.php');
|
|
require_once('lib.php');
|
|
require_once($CFG->libdir.'/blocklib.php');
|
|
|
|
require_login();
|
|
|
|
$id = optional_param('id', 0, PARAM_INT); // course module id
|
|
$d = optional_param('d', 0, PARAM_INT); // database id
|
|
$mode = optional_param('mode', 'singletemplate', PARAM_ALPHA);
|
|
|
|
if ($id) {
|
|
if (! $cm = get_record('course_modules', 'id', $id)) {
|
|
error('Course Module ID was incorrect');
|
|
}
|
|
if (! $course = get_record('course', 'id', $cm->course)) {
|
|
error('Course is misconfigured');
|
|
}
|
|
if (! $data = get_record('data', 'id', $cm->instance)) {
|
|
error('Course module is incorrect');
|
|
}
|
|
|
|
} else {
|
|
if (! $data = get_record('data', 'id', $d)) {
|
|
error('Data ID is incorrect');
|
|
}
|
|
if (! $course = get_record('course', 'id', $data->course)) {
|
|
error('Course is misconfigured');
|
|
}
|
|
if (! $cm = get_coursemodule_from_instance('data', $data->id, $course->id)) {
|
|
error('Course Module ID was incorrect');
|
|
}
|
|
}
|
|
|
|
if (!isteacheredit($course->id)){
|
|
error(get_string('noaccess','data'));
|
|
}
|
|
|
|
if (isteacher($course->id)) {
|
|
if (!count_records('data_fields','dataid',$data->id)) { // Brand new database!
|
|
redirect($CFG->wwwroot.'/mod/data/field.php?d='.$data->id); // Redirect to field entry
|
|
}
|
|
}
|
|
|
|
//add_to_log($course->id, 'data', 'templates view', "templates.php?id=$cm->id&d=$data->id", $data->id, $cm->id);
|
|
|
|
|
|
/// Print the page header
|
|
|
|
$strdata = get_string('modulenameplural','data');
|
|
|
|
// For the javascript for inserting template tags: initialise the default textarea to
|
|
// 'edit_template' - it is always present in all different possible views.
|
|
$bodytag = 'onload="';
|
|
$bodytag .= 'currEditor = edit_template; ';
|
|
$bodytag .= 'currTextarea = document.tempform.template;';
|
|
$bodytag .= '" ';
|
|
|
|
print_header_simple($data->name, '', "<a href='index.php?id=$course->id'>$strdata</a> -> $data->name",
|
|
'', '', true, '', navmenu($course, $cm), '', $bodytag);
|
|
|
|
print_heading(format_string($data->name));
|
|
|
|
/// Processing submitted data, i.e updating form.
|
|
if (($mytemplate = data_submitted($CFG->wwwroot.'/mod/data/templates.php')) && confirm_sesskey()){
|
|
|
|
// Generate default template.
|
|
if (!empty($mytemplate->defaultform)){
|
|
data_generate_default_templates($data->id, $mode);
|
|
|
|
} else if (!empty($mytemplate->allforms)){ //generate all default templates
|
|
data_generate_default_template($data, 'singletemplate');
|
|
data_generate_default_template($data, 'listtemplate');
|
|
data_generate_default_template($data, 'addtemplate');
|
|
data_generate_default_template($data, 'rsstemplate');
|
|
add_to_log($course->id, 'data', 'templates def', "templates.php?id=$cm->id&d=$data->id", $data->id, $cm->id);
|
|
} else {
|
|
|
|
$newtemplate->id = $data->id;
|
|
$newtemplate->{$mode} = $mytemplate->template;
|
|
|
|
if (isset($mytemplate->listtemplateheader)){
|
|
$newtemplate->listtemplateheader = $mytemplate->listtemplateheader;
|
|
}
|
|
if (isset($mytemplate->listtemplatefooter)){
|
|
$newtemplate->listtemplatefooter = $mytemplate->listtemplatefooter;
|
|
}
|
|
|
|
// Check for multiple tags, only need to check for add template.
|
|
if ($mode != 'addtemplate' or data_tags_check($data->id, $newtemplate->{$mode})){
|
|
update_record('data',$newtemplate);
|
|
}
|
|
add_to_log($course->id, 'data', 'templates saved', "templates.php?id=$cm->id&d=$data->id", $data->id, $cm->id);
|
|
}
|
|
}
|
|
|
|
/// Print the tabs.
|
|
$currenttab = 'templates';
|
|
include('tabs.php');
|
|
|
|
/// Print the browsing interface.
|
|
|
|
echo '<div align="center">'.get_string('header'.$mode,'data').'</div><br />';
|
|
|
|
echo '<form name="tempform" action="templates.php?d='.$data->id.'&mode='.$mode.'" method="post">';
|
|
echo '<input name="sesskey" value="'.sesskey().'" type="hidden" />';
|
|
// Print button to autogen all forms, if all templates are empty
|
|
|
|
$data = get_record('data', 'id', $d); //reload because of possible updates so far!
|
|
|
|
echo '<div align="center"><input type="submit" name="allforms" value="'.get_string('autogenallforms','data').'" /></div>';
|
|
|
|
print_simple_box_start('center','80%');
|
|
echo '<table cellpadding="4" cellspacing="0" border="0">';
|
|
|
|
|
|
/// Add the HTML editor(s).
|
|
echo '<td>';
|
|
$usehtmleditor = can_use_html_editor();
|
|
if ($mode == 'listtemplate'){
|
|
// Print the list template header.
|
|
echo '<tr>';
|
|
echo '<td> </td>';
|
|
echo '<td>';
|
|
echo '<div align="center">'.get_string('header','data').'</div>';
|
|
print_textarea($usehtmleditor, 10, 72, 0, 0, 'listtemplateheader', $data->listtemplateheader);
|
|
echo '</td>';
|
|
echo '</tr>';
|
|
}
|
|
|
|
// Print the main template.
|
|
// Add all the available fields for this data.
|
|
echo '<tr><td valign="top">';
|
|
echo get_string('availabletags','data');
|
|
helpbutton('tags', get_string('tags','data'), 'data');
|
|
|
|
echo '<select name="fields1[]" size="10" ';
|
|
|
|
// Javascript to insert the field tags into the textarea.
|
|
echo 'onclick="';
|
|
echo 'if (typeof(currEditor) != \'undefined\' && currEditor._editMode == \'wysiwyg\') {';
|
|
echo ' currEditor.insertHTML(this.options[selectedIndex].value); '; // HTMLArea-specific.
|
|
echo '} else {';
|
|
echo 'insertAtCursor(currTextarea, this.options[selectedIndex].value);'; // For inserting when in HTMLArea code view or for normal textareas.
|
|
echo '}';
|
|
echo '">';
|
|
|
|
$fields = get_records('data_fields', 'dataid', $data->id);
|
|
foreach ($fields as $field) {
|
|
echo '<option value="[['.$field->name.']]">'.$field->name.'</option>';
|
|
}
|
|
|
|
// Print special tags.
|
|
echo '<option value="##edit##">##' .get_string('edit', 'data'). '##</option>';
|
|
echo '<option value="##more##">##' .get_string('more', 'data'). '##</option>';
|
|
echo '<option value="##delete##">##' .get_string('delete', 'data'). '##</option>';
|
|
echo '<option value="##approve##">##' .get_string('approve', 'data'). '##</option>';
|
|
echo '<option value="##comments##">##' .get_string('comments', 'data'). '##</option>';
|
|
echo '</select>';
|
|
echo '</td>';
|
|
|
|
echo '<td>';
|
|
if ($mode == 'listtemplate'){
|
|
echo '<div align="center">'.get_string('multientry','data').'</div>';
|
|
}
|
|
print_textarea($usehtmleditor, 20, 72, 0, 0, 'template', $data->{$mode});
|
|
echo '</td>';
|
|
echo '</tr>';
|
|
|
|
if ($mode == 'listtemplate'){
|
|
echo '<tr>';
|
|
echo '<td> </td>';
|
|
echo '<td>';
|
|
echo '<div align="center">'.get_string('footer','data').'</div>';
|
|
print_textarea($usehtmleditor, 10, 72, 0, 0, 'listtemplatefooter', $data->listtemplatefooter);
|
|
echo '</td>';
|
|
echo '</tr>';
|
|
}
|
|
|
|
echo '<tr><td align="center" colspan="2">';
|
|
echo '<input type="submit" value="'.get_string('savetemplate','data').'" /> ';
|
|
if (!$data->{$mode}){
|
|
echo '<input type="submit" name="defaultform" value="'.get_string('generatedefault','data').'" />';
|
|
}
|
|
|
|
echo '</td></tr></table>';
|
|
|
|
|
|
print_simple_box_end();
|
|
echo '</form>';
|
|
if ($usehtmleditor) {
|
|
use_html_editor('template');
|
|
if ($mode == 'listtemplate'){
|
|
use_html_editor('listtemplateheader');
|
|
use_html_editor('listtemplatefooter');
|
|
}
|
|
}
|
|
|
|
/// Finish the page
|
|
print_footer($course);
|
|
?>
|