[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/contentbox-modules/jsFiddle/master/ModuleConfig.cfc [Back]  [Original]

/**
Author 	 :	Joel Watson
Description :

This module allows you to add fiddles from jsFiddle.net

**/
component {

	// Module Properties
	this.title 				= "jsFiddle";
	this.author 			= "Joel Watson";
	this.webURL 			= "http://existdissolve.com";
	this.description 		= "Helps you embedd fiddles from jsFiddle";
	this.version			= "1.0";
	// If true, looks for views in the parent first, if not found, then in the module. Else vice-versa
	this.viewParentLookup 	= true;
	// If true, looks for layouts in the parent first, if not found, then in module. Else vice-versa
	this.layoutParentLookup = true;
	// Module Entry Point
	this.entryPoint			= "jsfiddle";
	this.alias			= "jsFiddle";

	function configure(){

		// module Settings
		settings = {
			// Developer Key
			"width" = "100%",
			"height"= "300px",
			"cachetime" = 30,
			"users"='',
			"tabs"=''
		};

		// SES Routes
		routes = [
			// Module Entry Point
			{pattern="/", handler="home",action="index"},
			// Convention Route
			{pattern="/:handler/:action?"}
		];

		// Custom Declared Interceptors
		interceptors = [
			{ class="#moduleMapping#.interceptors.jsFiddle", name="jsFiddle" }
		];

		// objects
		binder.map("jsFiddle@jsFiddle").to("#moduleMapping#.model.jsFiddle");
	}

	/**
	* Fired when the module is registered and activated.
	*/
	function onLoad(){
		// Let's add ourselves to the main menu in the Modules section
		var menuService = controller.getWireBox().getInstance("AdminMenuService@cb");
		// Add Menu Contribution
		menuService.addSubMenu(topMenu=menuService.MODULES,name="jsFiddle",label="jsFiddle",href="#menuService.buildModuleLink('jsFiddle','home.settings')#");
		// Override settings?
		var settingService = controller.getWireBox().getInstance("SettingService@cb");
		var args = {name="cbox-jsfiddle"};
		var setting = settingService.findWhere(criteria=args);
		if( !isNull(setting) ){
			// override settings from contentbox custom setting
			controller.getSetting("modules").jsFiddle.settings = deserializeJSON( setting.getvalue() );
			// run process for updating user fiddles, if expired
			var jsFiddleService = controller.getWireBox().getInstance( "jsFiddle@jsFiddle" );
			jsFiddleService.updateUserFiddles( listToArray( controller.getSetting("modules").jsFiddle.settings.users ) );
		}
	}

	/**
	* Fired when the module is activated
	*/
	function onActivate(){
		var settingService = controller.getWireBox().getInstance("SettingService@cb");
		// store default settings
		var findArgs = {name="cbox-jsfiddle"};
		var setting = settingService.findWhere(criteria=findArgs);
		if( isNull(setting) ){
			var args = {name="cbox-jsfiddle", value=serializeJSON( settings )};
			var jsFiddleSettings = settingService.new(properties=args);
			settingService.save( jsFiddleSettings );
		}

		// Install the ckeditor plugin
		var ckeditorPluginsPath = controller.getSetting("modules")["contentbox-admin"].path & "/modules/contentbox-ckeditor/includes/ckeditor/plugins/cbjsFiddle";
		var pluginPath = moduleMapping & "/includes/cbjsFiddle";
		directoryCopy(source=pluginPath, destination=ckeditorPluginsPath, recurse=true);
	}

	/**
	* Fired when the module is unregistered and unloaded
	*/
	function onUnload(){
		// Let's remove ourselves to the main menu in the Modules section
		var menuService = controller.getWireBox().getInstance("AdminMenuService@cb");
		// Remove Menu Contribution
		menuService.removeSubMenu(topMenu=menuService.MODULES,name="jsFiddle");
	}

	/**
	* Fired when the module is deactivated by ContentBox Only
	*/
	function onDeactivate(){
		var settingService = controller.getWireBox().getInstance("SettingService@cb");
		var args = {name="cbox-jsfiddle"};
		var setting = settingService.findWhere(criteria=args);
		if( !isNull(setting) ){
			settingService.delete( setting );
		}
		// Uninstall the ckeditor plugin
		var ckeditorPluginsPath = controller.getSetting("modules")["contentbox-admin"].path & "/modules/contentbox-ckeditor/includes/ckeditor/plugins/cbjsFiddle";
		var pluginPath = controller.getSetting("modules")["jsFiddle"].path & "/includes/cbjsFiddle";
		directoryDelete(path=ckeditorPluginsPath, recurse=true);
	}
}

Web Proxy Viewer  |  New URL  |  Original Page