Personal tools
Skip to content. | Skip to navigation
With this product you can import in your Plone site a full set of users, providing a CSV file with all required and optional data. If your user's fieldset is customized you can also provide non-standards ones. The only required column is username. The password data, if not provided, will be generated randomly. If you have powers to manage groups, you can also add all new users to one or more groups available. Finally you can send a notification message to those users, customizing the message text (for example: to give to users the account's email address).
An integration of the MediaElementJS audio and video player for Plone. Large portions of this package have been blatantly copied from the collective.flowplayer product by Martin Aspeli. What it does Once installed, supported media files uploaded to the Plone site will automatically use a view that renders them with the MediaElementJS player. MediaElementJS uses <video> and <audio> tags on modern browsers. If the browser doesn't support HTML5 media element tags, or can not render the media natively, a Flash players that mimics the MediaElement API is used. See the MediaElementJS browser and device support chart for details. The recognized formats at the moment are: Audio MP3, Ogg, MPEG-4, WAV, Windows Media Audio, WebM Video MPEG-4, Ogg, WebM, Flash Video, Windows Media Video, MPEG and QuickTime (.mov and .qt)
Sometimes, a monkey patch is a necessary evil. This package makes it easier to apply a monkey patch during Zope startup. It uses the ZCML configuration machinery to ensure that patches are loaded "late" in the startup cycle, so that the original code has had time to be fully initialised and configured. This is similar to using the `initialize()` method in a product's __init__.py, except it does not require that the package be a full-blown Zope 2 product with a persistent Control_Panel entry. Applying a monkey patch ======================= Here's an example:: <configure xmlns="http://namespaces.zope.org/zope" xmlns:monkey="http://namespaces.plone.org/monkey" i18n_domain="collective.monkeypatcher"> <include package="collective.monkeypatcher" /> <monkey:patch description="This works around issue http://some.tracker.tld/ticket/123" class="Products.CMFPlone.CatalogTool.CatalogTool" original="searchResults" replacement=".catalog.patchedSearchResults" /> </configure> In this example, we patch Plone's CatalogTool's searchResults() function, replacing it with our own version in catalog.py. To patch a module level function, you can use `module` instead of `class`. The original class and function/method name and the replacement symbol will be checked to ensure that they actually exist. If patching happens too soon (or too late), use the `order` attribute to specify a higher (later) or lower (earlier) number. The default is 1000. By default, `DocFinderTab <http://pypi.python.org/pypi/Products.DocFinderTab>`_ and other TTW API browsers will emphasize the monkey patched methods/functions, appending the docstring with "Monkey patched with 'my.monkeypatched.function'". If you don't want this, you could set the `docstringWarning` attribute to `false`. If you want to do more than just replace one function with another, you can provide your own patcher function via the `handler` attribute. This should be a callable like:: def apply_patch(scope, original, replacement): ... Here, `scope` is the class/module that was specified. `original` is the string name of the function to replace, and `replacement` is the replacement function. Full list of options: - ``class`` The class being patched - ``module`` The module being patched - ``handler`` A function to perform the patching. Must take three parameters: class/module, original (string), and replacement - ``original`` Method or function to replace - ``replacement`` Method to function to replace with - ``preservedoc`` Preserve docstrings? - ``preserveOriginal`` Preserve the original function so that it is reachable view prefix _old_. Only works for default handler - ``preconditions`` Preconditions (multiple, separated by space) to be satisified before applying this patch. Example: Products.LinguaPlone-=1.4.3 or Products.TextIndexNG3+=3.3.0 - ``preserveOriginal`` Preserve the original function so that it is reachable view prefix _old_. Only works for default handler - ``preconditions`` Preconditions (multiple, separated by space) to be satisified before applying this patch. Example: Products.LinguaPlone-=1.4.3 or Products.TextIndexNG3+=3.3.0 - ``ignoreOriginal`` Ignore if the orginal function isn't present on the class/module being patched - ``docstringWarning`` Add monkey patch warning in docstring - ``description`` Some comments about your monkey patch - ``order`` Execution order Handling monkey patches events ============================== Applying a monkey patch fires an event. See the `interfaces.py` module. If you to handle such event add this ZCML bunch:: ... <subscriber for="collective.monkeypatcher.interfaces.IMonkeyPatchEvent" handler="my.component.events.myHandler" /> ... And add such Python:: def myHandler(event): """see collective.monkeypatcher.interfaces.IMonkeyPatchEvent""" ...
collective.mtrsetup provides a GenericSetup extension for importing and exporting mimetypes to / from the mimetypes registry. How to use Add collective.mtrsetup as dependency to your setup.py Add a zcml-include to your configure.zcml or dependency.zcml Add a dependency to profile-collective.mtrsetup:default to your metadata.xml in your generic setup profile Create a mimetypes.xml as showed below in your generic setup profile OpenOffice / Office 2007 There is a additional generic setup profile provided in this package (profile-collective.mtrsetup:default) which adds icons for OpenOffice (with backwards compatiblity to StarOffice) and adds the already used ms-office-icons to the new office 2007 mimetypes. The official Office 2007 icons are not added because of the license.
This addon integrate oembed into Plone. You can find a demo at http://youtu.be/kHikGIWrvCs oEmbed official documentation: http://oembed.com/ You have to know this addon try to go beyond already supported website and with as many providers as possible without third party services.