Rev 966 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* The cesa_notes block
*
* @package block_cesa_notes
* @author Gautam Kumar Das<gautam.arg@gmail.com>
*/
defined('MOODLE_INTERNAL') || die();
require_once($CFG->dirroot . '/blocks/cesa_notes/lib.php');
/**
* cesa_notes block.
*
* @package block_cesa_notes
*
*/
class block_cesa_notes extends block_base {
public function init() {
$this->title = get_string('pluginname', 'block_cesa_notes');
}
public function has_config() {
return true;
}
public function applicable_formats() {
return array('all' => true);
}
public function instance_allow_multiple() {
return false;
}
public function hide_header() {
global $PAGE;
if (!$PAGE->user_is_editing()) {
return true;
}
}
/**
* The content object.
*
* @return stdObject
*/
public function get_content() {
global $CFG, $PAGE;
static $jscount = 0;
if ($this->content !== null) {
return $this->content;
} else {
$this->content = new \stdClass();
}
if (!isloggedin() or isguestuser()) {
return ''; // Never useful unless you are logged in as real users
}
if (!in_array($PAGE->context->contextlevel, array(CONTEXT_COURSE, CONTEXT_SYSTEM, CONTEXT_MODULE, CONTEXT_USER))) {
return '';
}
$this->content = new stdClass();
$this->content->footer = '';
$this->content->text = '';
if (empty($this->instance)) {
return $this->content;
}
$this->content = new stdClass();
$this->content->text = '';
if ($PAGE->user_is_editing()) {
$this->content->text = '<div class="inline-cesa_notes-opener">'.get_string('showcesa_notes', 'block_cesa_notes').'</div>';
}
$this->content->footer = '';
if ($jscount == 0) {
$this->block_cesa_notes_get_required_javascript();
$jscount++;
}
return $this->content;
}
/*
* load JS that requires into the page.
*/
private function block_cesa_notes_get_required_javascript() {
global $PAGE, $CFG;
list($context, $course, $cm) = get_context_info_array($PAGE->context->id);
$config = get_config('block_cesa_notes');
$mm = new block_cesa_notes_manager();
$currenttabindex = $mm->get_current_tab($context, $PAGE);
$arguments = array( 'arg'=> array(
'instanceid' => $this->instance->id,
'editing' => ($PAGE->user_is_editing()),
'editingicon_pos' => ($PAGE->user_is_editing()) ? 'cesa_notes-pos-inline' : $config->icondisplayposition,
'maxallowedcharacters' => $config->characterlimit,
'contextid' => $context->id,
'maxallowedcharacters_warning' => get_string('notmorethan', 'block_cesa_notes', $config->characterlimit),
'contextareas' => $mm->get_available_contextareas(),
'currenttabindex' => ($currenttabindex == null ? 'site' : $currenttabindex),
'perpage' => $config->cesa_notesperpage,
),
);
$PAGE->requires->string_for_js('charactersleft', 'block_cesa_notes');
$PAGE->requires->string_for_js('notmorethan', 'block_cesa_notes');
$PAGE->requires->string_for_js('cesa_notes', 'block_cesa_notes');
$PAGE->requires->string_for_js('showcesa_notes', 'block_cesa_notes');
$PAGE->requires->string_for_js('savedsuccess', 'block_cesa_notes');
$PAGE->requires->string_for_js('save', 'block_cesa_notes');
$PAGE->requires->string_for_js('placeholdercontent', 'block_cesa_notes');
$PAGE->requires->string_for_js('deletecesa_notes', 'block_cesa_notes');
$PAGE->requires->string_for_js('cesa_notescount', 'block_cesa_notes');
$PAGE->requires->string_for_js('previouspage', 'block_cesa_notes');
$PAGE->requires->string_for_js('nextpage', 'block_cesa_notes');
$PAGE->requires->string_for_js('nothingtodisplay', 'block_cesa_notes');
$PAGE->requires->string_for_js('cesa_notessavedundertab', 'block_cesa_notes');
$PAGE->requires->string_for_js('cancel', 'moodle');
$this->page->requires->js_call_amd('block_cesa_notes/cesa_notesblock', 'init', $arguments);
}
}