Actions

Difference between revisions of "Developer Area/Plugin migration between Mahara 1.3 and 1.4"

From Mahara Wiki

< Developer Area
Line 18: Line 18:
 
|lib.php
 
|lib.php
 
|
 
|
    public static function get_categories() {
+
public static function get_categories() {
        return array(''''feeds'''');
+
    return array(''''feeds'''');
    }
+
}
 
|
 
|
    public static function get_categories() {
+
public static function get_categories() {
        return array(''''external'''');
+
    return array(''''external'''');
    }
+
}
 
|-
 
|-
 
|blocktype
 
|blocktype
Line 31: Line 31:
 
|lib.php
 
|lib.php
 
|
 
|
    public static function get_categories() {
+
public static function get_categories() {
        return array(''''fileimagevideo'''');
+
    return array(''''fileimagevideo'''');
    }
+
}
 
|
 
|
    public static function get_categories() {
+
public static function get_categories() {
        return array(''''external'''');
+
    return array(''''external'''');
    }
+
}
 
|-
 
|-
 
|artefact
 
|artefact
Line 43: Line 43:
 
|lib.php
 
|lib.php
 
|
 
|
    public static function menu_items() {
+
public static function menu_items() {
        return array(
+
    return array(
            array(
+
        array(
                'path' => ''''myportfolio'''/plans',
+
            'path' => ''''myportfolio'''/plans',
                'url'  => 'artefact/plans/',
+
            'url'  => 'artefact/plans/',
                'title' => get_string(''''myplans'''', 'artefact.plans'),
+
            'title' => get_string(''''myplans'''', 'artefact.plans'),
                'weight' => 40,
+
            'weight' => 40,
            ),
+
        ),
        );
+
    );
    }
+
}
 
|
 
|
    public static function menu_items() {
+
public static function menu_items() {
        return array(
+
    return array(
            'content/plans' => array(
+
        'content/plans' => array(
                'path' => ''''content'''/plans',
+
            'path' => ''''content'''/plans',
                'url'  => 'artefact/plans/',
+
            'url'  => 'artefact/plans/',
                'title' => get_string(''''Plans'''', 'artefact.plans'),
+
            'title' => get_string(''''Plans'''', 'artefact.plans'),
                'weight' => 60,
+
            'weight' => 60,
            ),
+
        ),
        );
+
    );
    }
+
}
 
|-
 
|-
 
|
 
|
Line 72: Line 72:
 
plan.php
 
plan.php
 
|
 
|
    define('MENUITEM', ''''myportfolio'''/plans');
+
define('MENUITEM', ''''myportfolio'''/plans');
 
|
 
|
    define('MENUITEM', ''''content'''/plans');
+
define('MENUITEM', ''''content'''/plans');
 
|}
 
|}
  
 
In some cases, it may be worth considering conditional statements to enable a plugin to work with either Mahara 1.3 or 1.4. For example
 
In some cases, it may be worth considering conditional statements to enable a plugin to work with either Mahara 1.3 or 1.4. For example
  
    public static function get_categories() {
+
public static function get_categories() {
        require_once(get_config('libroot') . 'version.php');
+
    require_once(get_config('libroot') . 'version.php');
        $release = $config->release;
+
    $release = $config->release;
            if ($release < 1.4) {
+
        if ($release < 1.4) {
                return array('feeds');
+
            return array('feeds');
            }
+
        }
        return array('external');
+
    return array('external');
    }
+
}

Revision as of 08:04, 23 May 2011

Mahara 1.4 has some changes to the menu bars.

The table below has examples of some code differences required for plugins in Mahara 1.3 and Mahara 1.4.

This may help anyone upgrading a plugin to work in Mahara 1.4 or backport a plugin to Mahara 1.3

It is not comprehensive. Feel free to add further examples

Plugin File Mahara 1.3 Mahara 1.4
blocktype

/externalfeed

lib.php
public static function get_categories() {
    return array('feeds');
}
public static function get_categories() {
    return array('external');
}
blocktype

/externalvideo

lib.php
public static function get_categories() {
    return array('fileimagevideo');
}
public static function get_categories() {
    return array('external');
}
artefact

/plans

lib.php
public static function menu_items() {
    return array(
        array(
            'path' => 'myportfolio/plans',
            'url'  => 'artefact/plans/',
            'title' => get_string('myplans', 'artefact.plans'),
            'weight' => 40,
        ),
    );
}
public static function menu_items() {
    return array(
        'content/plans' => array(
            'path' => 'content/plans',
            'url'  => 'artefact/plans/',
            'title' => get_string('Plans', 'artefact.plans'),
            'weight' => 60,
        ),
    );
}

artefact/plans

index.php new.php plan.php

define('MENUITEM', 'myportfolio/plans');
define('MENUITEM', 'content/plans');

In some cases, it may be worth considering conditional statements to enable a plugin to work with either Mahara 1.3 or 1.4. For example

public static function get_categories() {
    require_once(get_config('libroot') . 'version.php');
    $release = $config->release;
        if ($release < 1.4) {
            return array('feeds');
        }
    return array('external');
}