
Security News
npm ‘is’ Package Hijacked in Expanding Supply Chain Attack
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
collective.superfish
Advanced tools
collective.superfish integrates the jQuery Superfish plugin
_ into Plone.
Superfish is a really nice solution for dropdown menus using css, valid xhtml and JavaScript which degrades gracefully if JavaScript is not available.
.. _jQuery Superfish plugin
: https://superfish.joelbirch.co/
Since Version 2.0 collective.superfish
targets Plone 5 only.
If you want to use it on Plone < 5 then stay to the 1.x versions.
This package behaves as a "drop-in" replacement for plone.global_sections
.
Just install it :)
Use Plone's Configuration Registry to change Superfish settings.
Filter for prefix ISuperfishSettings
to see available options.
For integrators you can set the following records in registry.xml
of your theme profile::
<records interface='collective.superfish.interfaces.ISuperfishSettings' prefix='superfish'>
<value key="add_portal_tabs">True</value>
<value key="menu_depth">2</value>
<value key="superfish_options">{ "delay": 800, "cssArrows": true }</value>
</records>
See https://superfish.joelbirch.co/options/ for a complete
list of available superfish_options
.
Migration experience from Plone 4 -> 5 has to be tested!!
There is an upgrade step which removes the old resources from portal_css/portal_javascripts
and import the compiled resources to Resource Registry.
Maybe someone can give some input on this and file some issues <https://github.com/collective/collective.superfish/issues>
_
Add tests
Superfish https://superfish.joelbirch.co
hoverIntent https://github.com/briancherne/jquery-hoverIntent
Suckerfish Dropdowns http://www.alistapart.com/articles/dropdowns
jQuery http://jquery.com
Update superfish.js from 1.7.3 to 1.7.5, and hoverIntend from r7 (1.7.0) to 1.8.1 [fRiSi]
Don't break JS when jQuery is undefined. This happened for eg. on wildcard.foldercontents folder_content view [petschki]
Update superfish.js from 1.4.8 to 1.7.3 and hoverIntent.js from r5 to r7 [fRiSi]
.. ATTENTION:: This update breaks css compatibility with the previous version!
Add default formatting for superfish menu based on the DEMO SKIN
in the superfish default css <https://github.com/joeldbirch/superfish/blob/master/dist/css/superfish.css>
_
to make it fit the Sunburst Theme
Superfish Menu Layout changed from
<li><span class="selected"><a .../></span></li>
to
<li class="selected"><a .../></li>
since javascript could not handle the
additional span tag for setting the .sf-with-ul
class.
[fRiSi]
fixed dropdown for IE7 and IE8 [fRiSi]
replace '
with '
instead of '
since
IE7/8 can't handle this xhtml entity
(http://inthemaze.net/post/2008/04/08/46-ie7-and-apos)
[fRiSi]
use official hoverIntent.js
_ with docstring and versioninfo
and replaced (function($){})(jQuery);
with
jQuery(function($){});
syntax so the script does not conflict with
collective.carousel (when both are merged to the same file by portal_javascript).
[fRiSi]
.. _official hoverIntent.js
: http://cherne.net/brian/resources/jquery.hoverIntent.js
removed desc.replace(...) and added a custom entities method to fix #1. [saily]
don't use version in metadata.xml for the package version in setup.py. the metadata version this is meant to reflect the version of the GS profile and must not be mixed up with the package version. [fRiSi]
Replace " with " to keep valid HTML if description contains quotes. [saily]
Made id-generation more resistent against duplicated id's. We now use normalized urls to generate the item id. [saily]
added support to include portal_tabs in the superfish navigation by setting
ADD_PORTAL_TABS = True
in subclasses [fRiSi]
added some documentation targeted at integrators [fRiSi]
don't render superfish_init.js with inline=True
since this leads to
strange errors in
Products.ResourceRegistries-2.0b2-py2.6.egg/Products/ResourceRegistries/browser/scripts.pt
eg when adding a StaticText Portlet
AttributeError: 'DirContainedFileResource5' object has no attribute 'POST'
according to the resourceregistry documentation
_ it's better to set inline to False
in any case.
.. _resourceregistry documentation
: http://plone.org/documentation/kb/working-with-resourceregistries/registry-entry-parameters
Removed caching after some discussions with fRiSi. We left the code but disabled it by default, enable it again uncommenting the ram.cache line::
#@ram.cache(_render_sections_cachekey) def render(self): return self.index()
Displaying superfish menu only when installed in portal_quickinstaller by adding a superfish-browserlayer through browserlayer.xml file. [saily]
Changed default values for 'interval' and 'timeout' of hoverIntent which controls the show and hide process of the submenu. Read more about configuration of hoverIntent here: http://cherne.net/brian/resources/jquery.hoverIntent.html
Moved from full to safe compression for javascript files. [saily]
Removed unused class attributes for SuperFishViewlet. [saily]
Added caching to improve rendering performance. [saily]
FAQs
A suckerfish/superfish integration into plone
We found that collective.superfish demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
Security News
A critical flaw in the popular npm form-data package could allow HTTP parameter pollution, affecting millions of projects until patched versions are adopted.
Security News
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.