[ Index ]

PHP Cross Reference of Drupal 6 (yi-drupal)

title

Body

[close]

/sites/all/modules/yui_editor/plugins/ -> flickr.js (source)

   1  // $Id: flickr.js,v 1.1.2.3.2.2 2008/11/21 23:25:30 jeffcd Exp $
   2  
   3  function yui_editor_flickr() {
   4    for (var e in YAHOO.Drupal.editors) {
   5      var myEditor = YAHOO.Drupal.editors[e].editor;
   6      var config = YAHOO.Drupal.editors[e].config;
   7  
   8      if (config.flickr == 1) {
   9        var gutter = null;
  10        myEditor.on('toolbarLoaded', function() {
  11          gutter = new YAHOO.gutter();
  12          var flickrConfig = {
  13            type: 'push',
  14            label: 'Insert Flickr Image',
  15            value: 'flickr'
  16          }
  17  
  18          myEditor.toolbar.addButtonToGroup(flickrConfig, 'plugins');
  19  
  20          myEditor.toolbar.on('flickrClick', function(ev) {
  21            myEditor._focusWindow();
  22            if (ev && ev.img) {
  23              var html = '<a href="' + ev.url + '"><img src="' + ev.img + '" title="' + ev.title + '"></a>';
  24              myEditor.execCommand('inserthtml', html);
  25            }
  26  
  27            gutter.toggle();
  28          });
  29          gutter.createGutter();
  30        });
  31  
  32        YAHOO.util.Event.onAvailable('flickr_search', function() {
  33          YAHOO.util.Event.on('flickr_results', 'click', function(ev) {
  34            var tar = YAHOO.util.Event.getTarget(ev);
  35            if (tar.tagName.toLowerCase() == 'img') {
  36              if (tar.getAttribute('fullimage', 2)) {
  37                var img = tar.getAttribute('fullimage', 2),
  38                    title = tar.getAttribute('fulltitle'),
  39                    owner = tar.getAttribute('fullowner'),
  40                    url = tar.getAttribute('fullurl');
  41                myEditor.toolbar.fireEvent('flickrClick', {
  42                  type: 'flickrClick',
  43                  img: img,
  44                  title: title,
  45                  owner: owner,
  46                  url: url
  47                });
  48              }
  49            }
  50          });
  51  
  52          oACDS = new YAHOO.widget.DS_XHR("",
  53            ["photo", "title", "id", "owner", "secret", "server"]);
  54          oACDS.scriptQueryParam = "tags";
  55          oACDS.responseType = YAHOO.widget.DS_XHR.TYPE_XML;
  56          oACDS.maxCacheEntries = 0;
  57          oACDS.scriptQueryAppend = "q=yui_editor/flickr" + '&flickr_api_key=' + config.flickr_api_key;
  58  
  59          oAutoComp = new YAHOO.widget.AutoComplete('flickr_search','flickr_results', oACDS);
  60          oAutoComp.autoHighlight = false;
  61          oAutoComp.alwaysShowContainer = true;
  62          oAutoComp.formatResult = function(oResultItem, sQuery) {
  63            var sTitle = oResultItem[0];
  64            var sId = oResultItem[1];
  65            var sOwner = oResultItem[2];
  66            var sSecret = oResultItem[3];
  67            var sServer = oResultItem[4];
  68            var urlPart = 'http:/'+'/static.flickr.com/' + sServer + '/' + sId + '_' + sSecret;
  69            var sUrl = urlPart + '_s.jpg';
  70            var lUrl = urlPart + '_m.jpg';
  71            var fUrl = 'http:/'+'/www.flickr.com/photos/' + sOwner + '/' + sId;
  72            var sMarkup = '<img src="' + sUrl + '" fullimage="' + lUrl + '" fulltitle="' + sTitle + '" fullid="' +
  73              sOwner + '" fullurl="' + fUrl + '" class="yui-ac-flickrImg" title="Click to add this image to the editor"><br>';
  74  
  75            return (sMarkup);
  76          };
  77        });
  78      }
  79  
  80      (function() {
  81        var Dom = YAHOO.util.Dom,
  82            Event = YAHOO.util.Event;
  83  
  84        YAHOO.gutter = function() {
  85          return {
  86            status: false,
  87            gutter: null,
  88            createGutter: function() {
  89              this.gutter = new YAHOO.widget.Overlay('gutter1', {
  90                height: '425px',
  91                width: '300px',
  92                context: [
  93                  myEditor.get('element'),
  94                  'tl',
  95                  'tr'
  96                ],
  97                position: 'absolute',
  98                visible: false
  99              });
 100              this.gutter.hideEvent.subscribe(function() {
 101                myEditor.toolbar.deselectButton('flickr');
 102                Dom.setStyle('gutter1', 'visibility', 'visible');
 103                var anim = new YAHOO.util.Anim('gutter1', {
 104                  width: {
 105                    from: 300,
 106                    to: 0
 107                  },
 108                  opacity: {
 109                    from: 1,
 110                    to: 0
 111                  }
 112                }, 1);
 113                anim.onComplete.subscribe(function() {
 114                  Dom.setStyle('gutter1', 'visibility', 'hidden');
 115                });
 116                anim.animate();
 117              }, this, true);
 118              this.gutter.showEvent.subscribe(function() {
 119                myEditor.toolbar.selectButton('flickr');
 120                Dom.setStyle(this.gutter.element, 'width', '0px');
 121                var anim = new YAHOO.util.Anim('gutter1', {
 122                  width: {
 123                    from: 0,
 124                    to: 300
 125                  },
 126                  opacity: {
 127                    from: 0,
 128                    to: 1
 129                  }
 130                }, 1);
 131                anim.animate();
 132              }, this, true);
 133  
 134              var warn = '';
 135              if (myEditor.browser.webkit || myEditor.browser.opera) {
 136                warn = myEditor.STR_IMAGE_COPY;
 137              }
 138              this.gutter.setBody('<h2>Flickr Image Search</h2><label for="flikr_search">Tag:</label>' +
 139                '<input type="text" value="" id="flickr_search">&nbsp;<div id="flickr_results">' +
 140                '<p>Enter flickr tags into the box above, separated by commas. Be patient.<p></div>' + warn);
 141                this.gutter.render(document.body);
 142              },
 143              open: function() {
 144                Dom.get('flickr_search').value = '';
 145                this.gutter.show();
 146                this.status = true;
 147              },
 148              close: function() {
 149                this.gutter.hide();
 150                this.status = false;
 151              },
 152              toggle: function() {
 153                if (this.status) {
 154                  this.close();
 155                }
 156                else {
 157                  this.open();
 158                }
 159              }
 160            }
 161          }
 162        })
 163      ();
 164    }
 165  }
 166  YAHOO.Drupal.yui_editor_load.subscribe(yui_editor_flickr);


Generated: Mon Jul 9 18:01:44 2012 Cross-referenced by PHPXref 0.7