X-Git-Url: https://scm.cri.ensmp.fr/git/Epoz.git/blobdiff_plain/e12f4a95372036c721467827829f60a68ef92048..36a8f50734b56b213436c3f09afc80509c20cc16:/Products/Epoz/Extensions/Install.py diff --git a/Products/Epoz/Extensions/Install.py b/Products/Epoz/Extensions/Install.py new file mode 100755 index 0000000..353ff62 --- /dev/null +++ b/Products/Epoz/Extensions/Install.py @@ -0,0 +1,54 @@ +### +# Epoz-Installer-Script for CMF/Plone +# Taken and adapted from CMFVisualEditor +### + +from Products.Epoz import cmfepoz_globals +from StringIO import StringIO +from Products.CMFCore.utils import getToolByName +from Products.CMFCore.DirectoryView import addDirectoryViews + +_globals = globals() + +def install_plone(self, out): + """ add Epoz to 'my preferences' """ + portal_props=getToolByName(self,'portal_properties') + site_props=getattr(portal_props,'site_properties', None) + attrname='available_editors' + if site_props is not None: + editors=list(site_props.getProperty(attrname)) + if 'Epoz' not in editors: + editors.append('Epoz') + site_props._updateProperty(attrname, editors) + print >>out, "Added 'Epoz' to available editors in Plone." + +def install_subskin(self, out, skin_name, globals=cmfepoz_globals): + skinstool=getToolByName(self, 'portal_skins') + if skin_name not in skinstool.objectIds(): + addDirectoryViews(skinstool, 'epoz', globals) + + for skinName in skinstool.getSkinSelections(): + path = skinstool.getSkinPath(skinName) + path = [i.strip() for i in path.split(',')] + try: + if skin_name not in path: + path.insert(path.index('custom') +1, skin_name) + except ValueError: + if skin_name not in path: + path.append(skin_name) + + path = ','.join(path) + skinstool.addSkinSelection(skinName, path) + +def install(self): + out = StringIO() + print >>out, "Installing Epoz" + install_subskin(self, out, 'epoz_core') + install_subskin(self, out, 'epoz_i18n') + install_subskin(self, out, 'epoz_images') + install_subskin(self, out, 'epoz_plone') + install_plone(self, out) + + print >>out, "Done." + + return out.getvalue()