mirror of
https://github.com/jspsych/jsPsych.git
synced 2025-05-11 16:18:11 +00:00
Adding a template for creating a new plugin
This commit is contained in:
parent
60ef236dc6
commit
635bfadf92
56
plugins/template/jspsych-plugin-template.js
Normal file
56
plugins/template/jspsych-plugin-template.js
Normal file
@ -0,0 +1,56 @@
|
||||
/**
|
||||
* Josh de Leeuw
|
||||
* November 2013
|
||||
*
|
||||
* This is a basic template for a jsPsych plugin. Use it to start creating your
|
||||
* own plugin. There is more information about how to create a plugin on the
|
||||
* jsPsych wiki (https://github.com/jodeleeuw/jsPsych/wiki/Create-a-Plugin).
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
(function( $ ) {
|
||||
jsPsych["PLUGIN-NAME"] = (function(){
|
||||
|
||||
var plugin = {};
|
||||
|
||||
plugin.create = function(params) {
|
||||
var trials = new Array(NUMBER_OF_TRIALS);
|
||||
for(var i = 0; i < NUMBER_OF_TRIALS; i++)
|
||||
{
|
||||
trials[i] = {};
|
||||
trials[i].type = "PLUGIN-NAME";
|
||||
// other information needed for the trial method can be added here
|
||||
|
||||
// supporting the generic data object with the following line
|
||||
// is always a good idea. it allows people to pass in the data
|
||||
// parameter, but if they don't it gracefully adds an empty object
|
||||
// in it's place.
|
||||
trials[i].data = (typeof params.data === 'undefined') ? {} : params.data[i];
|
||||
}
|
||||
return trials;
|
||||
};
|
||||
|
||||
plugin.trial = function(display_element, block, trial, part) {
|
||||
// code for running the trial goes here
|
||||
|
||||
// data saving
|
||||
// this is technically optional, but virtually every plugin will
|
||||
// need to do it. it is good practice to include the type and
|
||||
// trial_index fields for all plugins.
|
||||
var trial_data = {
|
||||
type: trial.type,
|
||||
trial_index: block.trial_idx,
|
||||
// other values to save go here
|
||||
};
|
||||
// this line merges together the trial_data object and the generic
|
||||
// data object (trial.data), and then stores them.
|
||||
block.writeData($.extend({}, trial_data, trial.data));
|
||||
|
||||
// this method must be called at the end of the trial
|
||||
block.next();
|
||||
};
|
||||
|
||||
return plugin;
|
||||
})();
|
||||
}) (jQuery);
|
Loading…
Reference in New Issue
Block a user