Changeset 999 for trunk/XinhaCore.js


Ignore:
Timestamp:
05/01/08 16:21:20 (11 years ago)
Author:
ray
Message:

#1195 Allow to specify an external url to load a plugin from

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XinhaCore.js

    r998 r999  
    2727    --     included in the top 10 lines of the file (see the embedded edit mode) 
    2828    -- 
    29     --  $HeadURL$ 
    30     --  $LastChangedDate$ 
    31     --  $LastChangedRevision$ 
    32     --  $LastChangedBy$ 
     29    --  $HeadURL:http://svn.xinha.webfactional.com/trunk/XinhaCore.js $ 
     30    --  $LastChangedDate:2008-05-01 14:33:36 +0200 (Do, 01 Mai 2008) $ 
     31    --  $LastChangedRevision:998M $ 
     32    --  $LastChangedBy:(local) $ 
    3333    --------------------------------------------------------------------------*/ 
    3434 
     
    3636{ 
    3737  'Release'   : 'Trunk', 
    38   'Head'      : '$HeadURL$'.replace(/^[^:]*: (.*) \$$/, '$1'), 
    39   'Date'      : '$LastChangedDate$'.replace(/^[^:]*: ([0-9-]*) ([0-9:]*) ([+0-9]*) \((.*)\) \$/, '$4 $2 $3'), 
    40   'Revision'  : '$LastChangedRevision$'.replace(/^[^:]*: (.*) \$$/, '$1'), 
    41   'RevisionBy': '$LastChangedBy$'.replace(/^[^:]*: (.*) \$$/, '$1') 
     38  'Head'      : '$HeadURL:http://svn.xinha.webfactional.com/trunk/XinhaCore.js $'.replace(/^[^:]*: (.*) \$$/, '$1'), 
     39  'Date'      : '$LastChangedDate:2008-05-01 14:33:36 +0200 (Do, 01 Mai 2008) $'.replace(/^[^:]*: ([0-9-]*) ([0-9:]*) ([+0-9]*) \((.*)\) \$/, '$4 $2 $3'), 
     40  'Revision'  : '$LastChangedRevision:998M $'.replace(/^[^:]*: (.*) \$$/, '$1'), 
     41  'RevisionBy': '$LastChangedBy:(local) $'.replace(/^[^:]*: (.*) \$$/, '$1') 
    4242}; 
    4343 
     
    208208 
    209209/** Creates a new Xinha object 
    210  * @version $Rev$ $LastChangedDate$ 
     210 * @version $Rev:998M $ $LastChangedDate:2008-05-01 14:33:36 +0200 (Do, 01 Mai 2008) $ 
    211211 * @constructor 
    212212 * @param {String|DomNode}   textarea the textarea to replace; can be either only the id or the DOM object as returned by document.getElementById() 
     
    470470 * This class creates an object that can be passed to the Xinha constructor as a parameter. 
    471471 * Set the object's properties as you need to configure the editor (toolbar etc.) 
    472  * @version $Rev$ $LastChangedDate$ 
     472 * @version $Rev:998M $ $LastChangedDate:2008-05-01 14:33:36 +0200 (Do, 01 Mai 2008) $ 
    473473 * @constructor 
    474474 */ 
     
    20602060  { 
    20612061    url = _editor_url + 'modules/InternetExplorer/InternetExplorer.js'; 
    2062     if ( !Xinha.loadPlugins(["InternetExplorer"], function() { editor.generate(); }, url ) ) 
     2062    if ( !Xinha.loadPlugins([{plugin:"InternetExplorer",url:url}], function() { editor.generate(); } ) ) 
    20632063    {             
    20642064      return false; 
     
    20692069  { 
    20702070    url = _editor_url + 'modules/WebKit/WebKit.js'; 
    2071     if ( !Xinha.loadPlugins(["WebKit"], function() { editor.generate(); }, url ) ) 
     2071    if ( !Xinha.loadPlugins([{plugin:"WebKit",url:url}], function() { editor.generate(); } ) ) 
    20722072    {             
    20732073   
     
    20792079  { 
    20802080    url = _editor_url + 'modules/Opera/Opera.js'; 
    2081     if ( !Xinha.loadPlugins(["Opera"], function() { editor.generate(); }, url ) ) 
     2081    if ( !Xinha.loadPlugins([{plugin:"Opera",url:url}], function() { editor.generate(); } ) ) 
    20822082    {             
    20832083      return false; 
     
    20882088  { 
    20892089    url = _editor_url + 'modules/Gecko/Gecko.js'; 
    2090     if ( !Xinha.loadPlugins(["Gecko"], function() { editor.generate(); }, url ) ) 
     2090    if ( !Xinha.loadPlugins([{plugin:"Gecko",url:url}], function() { editor.generate(); } ) ) 
    20912091    {             
    20922092      return false; 
     
    21062106   
    21072107  url = _editor_url + 'modules/FullScreen/full-screen.js'; 
    2108   if ( !Xinha.loadPlugins(["FullScreen"], function() { editor.generate(); }, url )) 
     2108  if ( !Xinha.loadPlugins([{plugin:"FullScreen",url:url}], function() { editor.generate(); } )) 
    21092109  { 
    21102110    return false; 
     
    21122112   
    21132113  url = _editor_url + 'modules/ColorPicker/ColorPicker.js'; 
    2114   if ( !Xinha.loadPlugins(["ColorPicker"], function() { editor.generate(); } , url ) ) 
     2114  if ( !Xinha.loadPlugins([{plugin:"ColorPicker",url:url}], function() { editor.generate(); } ) ) 
    21152115  { 
    21162116    return false; 
     
    21302130        case "insertimage": 
    21312131          url = _editor_url + 'modules/InsertImage/insert_image.js'; 
    2132           if ( typeof Xinha.prototype._insertImage == 'undefined' && !Xinha.loadPlugins(["InsertImage"], function() { editor.generate(); } , url ) ) 
     2132          if ( typeof Xinha.prototype._insertImage == 'undefined' && !Xinha.loadPlugins([{plugin:"InsertImage",url:url}], function() { editor.generate(); } ) ) 
    21332133          { 
    21342134            return false; 
     
    21382138        case "createlink": 
    21392139          url = _editor_url + 'modules/CreateLink/link.js'; 
    2140           if ( typeof Linker == 'undefined' && !Xinha.loadPlugins(["CreateLink"], function() { editor.generate(); } , url )) 
     2140          if ( typeof Linker == 'undefined' && !Xinha.loadPlugins([{plugin:"CreateLink",url:url}], function() { editor.generate(); } )) 
    21412141          { 
    21422142            return false; 
     
    21462146        case "inserttable": 
    21472147          url = _editor_url + 'modules/InsertTable/insert_table.js'; 
    2148           if ( !Xinha.loadPlugins(["InsertTable"], function() { editor.generate(); } , url ) ) 
     2148          if ( !Xinha.loadPlugins([{plugin:"InsertTable",url:url}], function() { editor.generate(); } ) ) 
    21492149          { 
    21502150            return false; 
     
    21592159  if ( Xinha.is_gecko &&  editor.config.mozParaHandler != 'built-in' ) 
    21602160  { 
    2161     if (  !Xinha.loadPlugins(["EnterParagraphs"], function() { editor.generate(); }, _editor_url + 'modules/Gecko/paraHandlerBest.js' ) ) 
     2161    if (  !Xinha.loadPlugins([{plugin:"EnterParagraphs",url: _editor_url + 'modules/Gecko/paraHandlerBest.js'}], function() { editor.generate(); } ) ) 
    21622162    { 
    21632163      return false; 
     
    21812181  } 
    21822182   
    2183   if ( !Xinha.loadPlugins(["GetHtmlImplementation"], function() { editor.generate(); } , getHtmlMethodPlugin)) 
     2183  if ( !Xinha.loadPlugins([{plugin:"GetHtmlImplementation",url:getHtmlMethodPlugin}], function() { editor.generate(); })) 
    21842184  { 
    21852185    return false;         
     
    32993299 * @returns {String} path to plugin 
    33003300 */ 
    3301 Xinha.getPluginDir = function(pluginName) 
    3302 { 
    3303   return _editor_url + "plugins/" + pluginName; 
    3304 }; 
     3301Xinha.getPluginDir = function(plugin) 
     3302{ 
     3303  if (Xinha.externalPlugins[plugin]) 
     3304  { 
     3305    return Xinha.externalPlugins[plugin][0]; 
     3306  } 
     3307  else 
     3308  { 
     3309    return _editor_url + "plugins/" + plugin ; 
     3310  } 
     3311} 
    33053312/** Static function that loads the given plugin 
    33063313 * @param {String} pluginName 
     
    33413348Xinha._pluginLoadStatus = {}; 
    33423349 
     3350Xinha.externalPlugins = {}; 
     3351 
    33433352/** Static function that loads the plugins (see xinha_plugins in NewbieGuide) 
    33443353 * @param {Array} plugins 
     
    33513360  if ( !Xinha.isSupportedBrowser ) return; 
    33523361  Xinha.setLoadingMessage (Xinha._lc("Loading plugins")); 
     3362  var m; 
     3363  for (var i=0;i<plugins.length;i++) 
     3364  { 
     3365    if (typeof plugins[i] == 'object') 
     3366    { 
     3367      m = plugins[i].url.match(/(.*)(\/[^\/]*)$/); 
     3368      Xinha.externalPlugins[plugins[i].plugin] = [m[1],m[2]]; 
     3369      plugins[i] = plugins[i].plugin; 
     3370    } 
     3371  } 
     3372   
    33533373  // Rip the ones that are loaded and look for ones that have failed 
    33543374  var retVal = true; 
     
    33583378  { 
    33593379    var p = nuPlugins.pop(); 
    3360         if (p == 'FullScreen' && !url ) continue; //prevent trying to load FullScreen plugin from the plugins folder 
     3380    if (p == 'FullScreen' && !Xinha.externalPlugins['FullScreen'] ) continue; //prevent trying to load FullScreen plugin from the plugins folder 
     3381    
    33613382    if ( typeof Xinha._pluginLoadStatus[p] == 'undefined' ) 
    33623383    { 
     
    33793400            Xinha._pluginLoadStatus[plugin] = 'failed'; 
    33803401          } 
    3381         },url 
     3402        },(Xinha.externalPlugins[p] ? Xinha.externalPlugins[p][0]+Xinha.externalPlugins[p][1] : url) 
    33823403      ); 
    33833404      retVal = false; 
     
    57545775    var plugin = RegExp.$1; 
    57555776    var popup = RegExp.$2; 
    5756     if ( ! ( /\.html$/.test(popup) ) ) 
     5777    if ( ! ( /\.(html?|php)$/.test(popup) ) ) 
    57575778    { 
    57585779      popup += ".html"; 
    57595780    } 
    5760     url = _editor_url + "plugins/" + plugin + "/popups/" + popup; 
     5781    url = Xinha.getPluginDir(plugin) + "/popups/" + popup; 
    57615782  } 
    57625783  else if ( file.match(/^\/.*?/) || file.match(/^https?:\/\//)) 
     
    57705791  return url; 
    57715792}; 
     5793 
     5794 
    57725795 
    57735796/** FIX: Internet Explorer returns an item having the _name_ equal to the given 
     
    63226345    if ( context != 'Xinha') 
    63236346    { 
    6324       url = _editor_url+"plugins/"+context+"/lang/"+_editor_lang+".js"; 
     6347      url = Xinha.getPluginDir(context)+"/lang/"+_editor_lang+".js"; 
    63256348    } 
    63266349    else 
Note: See TracChangeset for help on using the changeset viewer.