From 92ea98a2568a0e59779b924a8b699bea7936fa14 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Beno=C3=AEt=20Pin?= Date: Tue, 16 Aug 2011 13:22:13 +0200 Subject: [PATCH 1/1] =?utf8?q?Ajout=20du=20code=20du=20finder=20ajax=20dep?= =?utf8?q?uis=20le=20d=C3=A9p=C3=B4t=20de=20FCK.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/ckeditor/config.js | 2 +- .../mac_finder/_graphics/folderish_icons.psd | Bin 0 -> 20495 bytes .../browser/mac_finder/browser.css | 68 ++++ .../browser/mac_finder/browser.html.dtml | 351 ++++++++++++++++++ .../mac_finder/connectors/plinn/connector.py | 73 ++++ .../mac_finder/images/folderish-selected.gif | Bin 0 -> 107 bytes .../browser/mac_finder/images/folderish.gif | Bin 0 -> 163 bytes .../mac_finder/images/folderishNode.gif | Bin 0 -> 160 bytes 8 files changed, 493 insertions(+), 1 deletion(-) create mode 100644 skins/ckeditor/filemanager/browser/mac_finder/_graphics/folderish_icons.psd create mode 100644 skins/ckeditor/filemanager/browser/mac_finder/browser.css create mode 100644 skins/ckeditor/filemanager/browser/mac_finder/browser.html.dtml create mode 100644 skins/ckeditor/filemanager/browser/mac_finder/connectors/plinn/connector.py create mode 100644 skins/ckeditor/filemanager/browser/mac_finder/images/folderish-selected.gif create mode 100644 skins/ckeditor/filemanager/browser/mac_finder/images/folderish.gif create mode 100644 skins/ckeditor/filemanager/browser/mac_finder/images/folderishNode.gif diff --git a/skins/ckeditor/config.js b/skins/ckeditor/config.js index 9467812..bb14ec7 100644 --- a/skins/ckeditor/config.js +++ b/skins/ckeditor/config.js @@ -22,5 +22,5 @@ CKEDITOR.editorConfig = function( config ) ]; config.height = '500px'; - config.filebrowserBrowseUrl = CKEDITOR.basePath; + config.filebrowserBrowseUrl = CKEDITOR.basePath + 'filemanager/browser/mac_finder/browser.html?Connector=connectors/plinn/connector'; }; \ No newline at end of file diff --git a/skins/ckeditor/filemanager/browser/mac_finder/_graphics/folderish_icons.psd b/skins/ckeditor/filemanager/browser/mac_finder/_graphics/folderish_icons.psd new file mode 100644 index 0000000000000000000000000000000000000000..69fe1b3c05bd5ce58f40e53a4f948495de122641 GIT binary patch literal 20495 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 literal 0 HcmV?d00001 diff --git a/skins/ckeditor/filemanager/browser/mac_finder/browser.css b/skins/ckeditor/filemanager/browser/mac_finder/browser.css new file mode 100644 index 0000000..cf93b14 --- /dev/null +++ b/skins/ckeditor/filemanager/browser/mac_finder/browser.css @@ -0,0 +1,68 @@ +body { + margin:0; + padding:0; +/* overflow-x : scroll;*/ +} +#finder { + position : relative; + border : none; + vertical-align : top; + font-family : Arial, Helvetica, Geneva, Swiss, SunSans-Regular, sans-serif; + font-size : small; +} + + +#finder td { +/* width : 200px;*/ + padding : 0; +} + +#finder ul { +/* float : left;*/ + list-style : none; + margin : 0; + padding : 0; + overflow-y : scroll; +} +#finder li { + padding-left : 5px; + margin : 2px 0; + cursor : default; +/* vertical-align : middle*/ +} + +#finder li.contentish { + /* nothing special */ +} + +#finder li.contentish-selected { + background-color : #3875d7; + color : white; +} + + +#finder li.folderish { + background : url(images/folderish.gif) center right no-repeat; +} + +#finder li.folderish-selected { + background : url(images/folderish-selected.gif) center right no-repeat #3875d7 ; + color : white; +} + + +#finder img { + margin-right : 3px; + vertical-align : middle; +} + +.finder_preview { + font-size : 95%; +} +.finder_preview th { + color : #7f7f7f; + text-align : right; +} +.finder_preview .thumbnail { + text-align:center; +} \ No newline at end of file diff --git a/skins/ckeditor/filemanager/browser/mac_finder/browser.html.dtml b/skins/ckeditor/filemanager/browser/mac_finder/browser.html.dtml new file mode 100644 index 0000000..be15cd2 --- /dev/null +++ b/skins/ckeditor/filemanager/browser/mac_finder/browser.html.dtml @@ -0,0 +1,351 @@ + + + + + Site browser + + + + + + + + + + + +
    +
  • Folder
  • +
  • Content
  • +
+
+ + \ No newline at end of file diff --git a/skins/ckeditor/filemanager/browser/mac_finder/connectors/plinn/connector.py b/skins/ckeditor/filemanager/browser/mac_finder/connectors/plinn/connector.py new file mode 100644 index 0000000..61d0eae --- /dev/null +++ b/skins/ckeditor/filemanager/browser/mac_finder/connectors/plinn/connector.py @@ -0,0 +1,73 @@ +##parameters=command, path, Type=None +from Products.CMFCore.utils import getToolByName +from Products.CMFCore.permissions import View +mtool = getToolByName(context, 'portal_membership') +checkView = lambda o : mtool.checkPermission(View, o) +utool = getToolByName(context, 'portal_url') +portal = utool.getPortalObject() + +def replaceXMLEntities(text) : + for c, ent in (('<', '<'), ('>', '>'), ('&', '&')) : + text = text.replace(c, ent) + return text + +ob = portal +path = path.replace('\\', '/') +path = path.strip('/') + +if path : + for name in path.split('/') : + ob = getattr(ob, name) + +if command == 'ls' : + objects = [] + if ob.isPrincipiaFolderish : + if Type == 'Image' : filter = {'portal_type' : ['Plinn Folder', 'Portfolio', 'Photo']} + else : filter = {} + objects = ob.listNearestFolderContents(contentFilter = filter) + objects = sequence.sort( objects, (('title_or_id', 'nocase', 'asc'),) ) + + # xml printing + print '' + for o in objects : + path = o.getPhysicalPath() + encodedPath = '' + partObject = portal + for name in path[1:] : + partObject = getattr(partObject, name) + sep = checkView(partObject) and '/' or '\\' + encodedPath += sep+name + + row = '%(title)s' % { + 'path' : encodedPath, + 'folderish' : o.isPrincipiaFolderish, + 'icon' : o.getIcon(), + 'title' : replaceXMLEntities(o.title_or_id()), + 'link' : o.absolute_url() + } + print row + print '' + +elif command == 'info': + #linkFunction = (Type == 'Image') and (lambda o : o.absolute_url() + '/index_html') or (lambda o : o.absolute_url()) + linkFunction = lambda o : o.absolute_url() + ti = ob.getTypeInfo() + method_id = ti.queryMethodID('info') + meth = method_id and getattr(ob, method_id) or (lambda:'Not implemented') + lines = [] + pr = lines.append + pr('') + # print info summary in a CDATA section + pr('') + # print the url link in a tag + pr('') + pr(linkFunction(ob)) + pr('') + pr('') + print ''.join(lines) + + +context.REQUEST.RESPONSE.setHeader('content-type', 'text/xml; charset=utf-8') +return printed \ No newline at end of file diff --git a/skins/ckeditor/filemanager/browser/mac_finder/images/folderish-selected.gif b/skins/ckeditor/filemanager/browser/mac_finder/images/folderish-selected.gif new file mode 100644 index 0000000000000000000000000000000000000000..ebad9f6348aaa0babd9151b054cd46fa4598a559 GIT binary patch literal 107 zcmZ?wbhEHbC&Zl@7`U!c=6-Mk6*rgnKNh3xpU{{&!0bG!i4+x?{{`~ zu3o+R=+UG5_U-HG>1k_gJ8{(^FJ8Pj zfByV0U%p(rbZNqb3HR^cU%h(u|Ns9Phz5#3Sr{1@1Q~QdIzV