+++ /dev/null
--------------------------------------------------------------------------------
-CREATING NEW BLOCKS
--------------------------------------------------------------------------------
-
--------------------------------------------------------------------------------
-WARNING - PRELIMINARY DOCUMENTATION
-This is designed to point new block developers in the right direction. At times
-it may NOT be fully up-to-date with the source, or it may even contain some
-tiny bit of misinformation that has slipped our notice. If you encounter such a
-case, please:
- 1. Use the existing block code as reference
- 2. Come to the moodle.org forums and tell the world! :) We 'll help you!
--------------------------------------------------------------------------------
-
-You have to derive a class that extends MoodleBlock.
-
-The derived class MUST:
-
- * Implement a constructor that:
- 1. Sets $this->content_type (BLOCK_TYPE_LIST or BLOCK_TYPE_TEXT)
- 3. Sets $this->title
- 4. Sets $this->version
- 5. Sets $this->course equal to its only argument
-
-The derived class MAY:
-
- * Declare that the block has a configuration interface.
- To do so:
-
- 1. Define a method has_config() {return true;}
- 2. Define a method print_config() that prints whatever
- configuration interface you want to have.
- 3. Define a method handle_config($data) that does what
- is needed. $data comes straight from data_submitted().
-
- * Limit the course formats it can be displayed in.
- To do so:
-
- 1. Define a method applicable_formats() which returns a bitwise
- OR of one or more COURSE_FORMAT_XXX defined constants. These
- are defined in lib/blocklib.php.
-
- * Select a "preferred" width which the course format will try to honor.
- To do so:
-
- 1. Define a method preferred_width() which returns an integer.
- This is the block's preferred width in pixels.
-
- * Declare that the block is going to hide its header. This will result
- in a more lightweight appearance. Ideal for announcements/notices.
- To do so:
-
- 1. Define a method hide_header() {return true;}
var $str;
/**
- * The title of the block to be displayed in the block header area.
+ * The title of the block to be displayed in the block title area.
* @var string $title
*/
var $title = NULL;
return $this->version;
}
- /**
- * Returns the class $header var value.
- *
- * Intentionally doesn't check if a header is set.
- * This is already done in {@link _self_test()}
- *
- * @return string $this->header
- */
- function get_header() {
- // Intentionally doesn't check if a header is set. This is already done in _self_test()
- return $this->header;
- }
-
/**
* First sets the current value of $this->content to NULL
* then calls the block's {@link get_content()} function
* @uses $THEME
* @return boolean
*/
- function print_config() {
+ function config_print() {
// Default behavior: print the config_global.html file
// You don't need to override this if you're satisfied with the above
if (!$this->has_config()) {
* Default behavior: save all variables as $CFG properties
* You don't need to override this if you 're satisfied with the above
*
- * @param array $config
+ * @param array $data
* @return boolean
*/
- function handle_config($config) {
+ function config_save($data) {
// Default behavior: save all variables as $CFG properties
// You don't need to override this if you 're satisfied with the above
- if (!$this->has_config()) {
- return false;
- }
- foreach ($config as $name => $value) {
+ foreach ($data as $name => $value) {
set_config($name, $value);
}
return true;
*/
function specialization() {
// Just to make sure that this method exists.
- return;
}
/**
if (!$this->instance_allow_multiple() && !$this->instance_allow_config()) {
return false;
}
- global $CFG, $USER, $THEME;
+ global $CFG, $THEME;
if (is_file($CFG->dirroot .'/blocks/'. $this->name() .'/config_instance.html')) {
print_simple_box_start('center', '', $THEME->cellheading);