Package: sc.social.like
Table of ContentsLife, the Universe, and EverythingMostly HarmlessDon’t PanicPlone version compatibilityInstallationConfigurationOpen Graph protocol supportValidation of best practices for social networks sharingFacebook prefetchCanonical URL and migration to HTTPSPrivacy and cookiesSocial media and Plone 5ScreenshotsTilesShare and EnjoyChangelog2.13 (2020-01-02)2.13b3 (2018-01-11)2.13b2 (2017-10-30)2.13b1 (2017-09-28)2.12b1 (2017-09-15)2.11b2 (2017-09-11)2.11b1 (2017-09-08)2.10.1 (2017-08-02)2.10 (2017-07-17)2.9 (2017-03-09)2.8b1 (2017-02-03)2.7b1 (2017-01-09)2.6b1 (2016-12-21)2.6a1 (2016-09-23)2.5 (2016-07-26)2.4.1 (2015-12-10)2.4 (2015-09-17)2.3 (2015-07-14)2.2 (2015-05-04)2.1 (2015-03-02)2.0.2 (2015-02-23)2.0.1 (2015-02-23)2.0 (2015-02-10)2.0rc1 (2014-10-14)2.0b4 (2014-08-08)2.0b3 (2014-06-06)2.0b2 (2014-06-02)2.0b1 (2014-02-07)2.0a2 (2013-11-04)2.0a1 (2013-07-23)Life, the Universe, and EverythingThis package provides integration with the following social networks in Plone:FacebookGoogle+LinkedInPinterestTelegramTwitterWhatsApp (mobile only)The integration is done viaOpen Graph protocolbasic metadata and the inclusion of sharing widgets for all enabled social networks.Mostly HarmlessGot an idea? Found a bug? Let us know byopening a support ticket.Don’t PanicPlone version compatibilityThis package is compatible with Plone 4.3 and 5.0.InstallationTo enable this product in a buildout-based installation:Edit your buildout.cfg and addsc.social.liketo the list of eggs to
install:[buildout]
...
eggs =
    sc.social.likeAfter updating the configuration you need to run ‘’bin/buildout’’, which will
take care of updating your system.Go to the ‘Site Setup’ page in a Plone site and click on the ‘Add-ons’ link.Check the box next toSocial: Like Actionsand click the ‘Activate’
button.ConfigurationGo to the ‘Site Setup’ page in the Plone interface and click on the
‘Social Like’ link – under Add-on Configuration.The control panel configlet.There you can configure howSocial: Like Actionswill behave, which actions
will be displayed and for which content types.Open Graph protocol supportThe following basic metadata is included on content types with Social Media behavior enabled:og:title: the title of the itemog:description: the description of the itemog:type: defaults to ‘website’ on the portal root and ‘article’ elsewhereog:url: the canonical URL of the item, that is the URL used by the item when it was first publishedog:image: the ‘large’ scale of the lead image of the item, if present;
you can define a fallback image to be used in content that lacks lead image on the control panel configletValidation of best practices for social networks sharingNoteThis feature is only available for Dexterity-based content types.A content validation process is executed every time you publish an item, or when you edit an item in thepublishedstate.
This process includes checking of maximum length of title and description fields, as well as format, size and dimensions of the lead image field, if present.
A warning message will be shown to the user if the content does not comply with best practices.Sharing best practices were compiled mainly from Twitter and Facebook recommendations.
For more information see:https://dev.twitter.com/cards/markuphttps://developers.facebook.com/docs/sharing/best-practicesYou can disable content validation using an option in the control panel configlet.Facebook prefetchNoteThis feature is only available for Dexterity-based content types.When content is shared for the first time,
the Facebook crawler will scrape and cache the metadata from the URL shared.
The crawler has to see images at least once before they can be rendered.
Prefetching allows Facebook to download content before someone shares it.According toFacebook’s documentation,
prefetching is especially beneficial for people using Facebook on slow or poor network connections.
Prefetching also loads mobile site content faster,
which improves the Facebook app experience on Android and iPhone devices.You can enable Facebook prefetch using an option in the control panel configlet.A call to the Graph API endpoint will be generated automatically every time a new piece content is published,
and every time a published content is edited.
This will keep the metadata updated on Facebook always.Canonical URL and migration to HTTPSNoteThis feature is only available for Dexterity-based content types.
If you’re using Archetypes-based content types or if you don’t apply the Social Media behavior to your Dexterity-based content type,
the current URL will still be used as the canonical URL.The first time someone shares a link, the Facebook crawler will scrape the HTML code at that URL to gather, cache and display info about the content on Facebook.
Facebook uses theog:urltag included in the HTML code to aggregate likes and shares at the same URL rather than spreading across multiple versions of a page.
If you move your content around or if you migrate your site schema from HTTP to HTTPS those counters will be zeroed.To solve this issue this package includes a mechanism to store the URL of the content at publication time to use it as the canonical URL even after renaming or migrating the schema.
To enable this feature you must apply the Social Media behavior to your content type and provide the canonical domain (e.g.http://www.example.org) to be used on the site in the control panel configlet.If you later migrate your site to HTTPS just change the value of the canonical domain (e.g.https://www.example.org).
All content created before the change will still reflect the old schema in their canonical url as expected.The package also includes a helper view to populate content created before release 2.10.
You can access this view by pointing your browser at/@@canonical-url-updater.Privacy and cookiesSocial media widgets commonly track user actions and add third party cookies.If privacy is something you must care about
(for instance, if you need to comply with theEuropean Cookie Law),
sc.social.like provides a “Do not track users” option.
When enabled, social media widgets will be rendered as simple HTML links at the expense of features and user experience.This product is also respects theDo Not Trackuser’s browser preference.
If the user configured the browser for not being tracked,
social media will be rendered as if the “Severe privacy” setting was enabled.Social media and Plone 5Plone 5 includes some configuration fields already available in this package on a new Social Media configlet.
A synchronization of the values of those redundant fields takes place behind the scenes every time you change the Twitter username, the Facebook App ID or the Facebook username,
using either the new Social Media configlet or the Social Like configlet.The Social Media configlet in Plone 5.ScreenshotsTilesIf collective.cover is installed, two new tiles will be available: Facebook and Twitter.The Facebook tile embeds a Facebook Page.
You can set the width and height, and you can control some other aspects of the widget.
A Facebook application ID must be defined in the Social Like configlet in order to use this tile.
Instructions for obtaining a Facebook application ID can be found atFacebook’s developer siteThe Twitter tile embeds a Twitter timeline.
Timelines are an easy way to embed multiple tweets on your website in a compact, single-column view.
You can set the width, height and tweet limit, and you can use a widget ID.
A Twitter username must be defined in the Social Like configlet in order to use this tile.The Twitter and Facebook tiles.TODO:[ ] Facebook: return a comma-separated string of tabs to render[ ] Twitter: allow to remove a display component of a timeline (chrome)[ ] Twitter: refresh the tile after editing it[ ] RobotFramework tests for both tiles[ ] Plone 5.1 compatibilityShare and Enjoysc.social.like would not have been possible without the contribution of the following people:Cleber J. Santos (idea and implementation)André NogueiraHéctor VelardeErico AndreiMikel LarreategiRodrigo Ferreira de SouzaLuciano Camargo CruzThomas DesvenainFont Awesome (icons)Development sponsored by:Rede Brasil AtualCartaCapitalTV1Brazilian GovernmentUNESCOChangelogThere’s a frood who really knows where his towel is.2.13 (2020-01-02)Add option to show social networks in folderish templates, even if folderish
type isn’t checked to show social networks (closes#174).
[idgserpro]Remove unused viewsocial_likes_view.
[idgserpro]Explicity remove the viewlet for folder_contents view (closes#261).
[rodfersou]Code refactor to increase future Python 3 compatibility;
add dependency onsix.
[hvelarde]Fix upgrade step when there are no plone.app.tiles recrods.
[erral]2.13b3 (2018-01-11)AvoidAttributeErrorwhen acessing image fields based onNamedImageinstead ofNamedBlobImage.
[hvelarde]2.13b2 (2017-10-30)AvoidAttributeErrorwhen migrating package settings to Plone’s registry.
[hvelarde]Complete Basque translation.
[erral]2.13b1 (2017-09-28)Update i18n, and Brazilian Portuguese and Spanish translations.
[hvelarde, rafahela]Implement Facebook prefetching.
Check package documentation for more information on how to use this new feature (closes#129).
[claytonc, hvelarde]Add Open Graph fallback image for content lacking lead image;
the image should be uploaded in the control panel configlet and must comply with best practices;
canonical domain field was also moved to the new Open Graph field set in the configlet (closes#130).
[claytonc, hvelarde]AvoidWorkflowExceptionon sharing best practices validation of content that has no associated workflow, like images and files (fixes#142).
[hvelarde]Update Basque translation.
[erral]2.12b1 (2017-09-15)Update Brazilian Portuguese and Spanish translations.
[hvelarde]Implement a validator to check if content follows social networks sharing best practices (closes#128).
[claytonc, hvelarde]2.11b2 (2017-09-11)AvoidKeyErrorwhen upgrading the package from previous versions.
[hvelarde]2.11b1 (2017-09-08)Code clean up and refactor.
[hvelarde]Open Graph properties where moved out of the Facebook plugin as they are used by other plugins.
[hvelarde]Twitter widgets now respect users’ privacy.
[hvelarde]Google+, LinkedIn, Pinterest and Twitter widgets code was updated.
[hvelarde]Remove redundant metadata as Twitter can use Open Graph properties as fall back (closes#112).
[hvelarde]Remove useless scale caching on the request as it seems to be causing colateral issues (closes#109).
[rodfersou]2.10.1 (2017-08-02)Fixdata-hrefattribute on Facebook plugin to point to canonical URL;
this should finally fix the counter on the widget.
[rodfersou]Fix Canonical URL updater form;
a new upgrade step is provided to update theobjects_providescatalog index (fixes#115).
[hvelarde]Addcanonical_domainfield record to the registry when upgrading;
this fixes an issue in the upgrade step to profile version 3045 (fixes#114).
[hvelarde]2.10 (2017-07-17)Fix support for canonical URL in Facebook’s Open Graph for Dexterity-based content types;
previously the current URL was incorrectly used as the canonical URL of an item leading to zeroed counters when moving content around or when changing the schema to access the site (HTTP to HTTPS).
Check package documentation for more information on how to use this new feature (fixes#104).
[hvelarde]Drop support for Plone 4.2.
[rodfersou]In Plone 5, keep in sync some redundant fields found in the new Social Media configlet.
Changes onfacebook_app_id,facebook_username, ortwitter_usernamefields will be reflected in both configlets (fixes#100).
[hvelarde]2.9 (2017-03-09)Add Facebook control panel setting for showing/hiding the number of likes. By
default the Facebook plugin still shows the likes.
[fredvd]2.8b1 (2017-02-03)Update Brazilian Portuguese and Spanish translations.
[hvelarde]Add support to share content by email (closes#91).
[rodfersou, hvelarde]2.7b1 (2017-01-09)Add missing upgrade step to cook CSS resources.
[hvelarde]Don’t fail in the Twitter plugin if the title has non-ASCII characters.
[csenger, hvelarde]Add metadata for Twitter Cards (closes#65).
[rodfersou]2.6b1 (2016-12-21)Code clean up; tests related with loading BMP images were removed as make no sense.
[hvelarde]Do not show social like viewlet for unpublished content (closes#83).
[rodfersou]Fix package dependencies.
[maurits, hvelarde]2.6a1 (2016-09-23)Add Facebook and Twitter tiles for collective.cover.
The Facebook tile embeds a Facebook Page.
The Twitter tile embeds a Twitter timeline.
[hvelarde]Addtitleattributes to Telegram and WhatsApp share links.
[hvelarde]Enforce constraints onenabled_portal_typesfield to avoidWrongTypeerror while running upgrade step to v3040.
[hvelarde]Do not fail on adding Facebook’s ‘Like’ button while running upgrade step to v3010.
[fredvd, hvelarde]2.5 (2016-07-26)Added Telegram plugin (closes#52).
[rodfersou]Use Plone’s registry instead of theportal_propertiestool to store package configuration (closes#1).
[hvelarde]2.4.1 (2015-12-10)Update package classifiers; Plone 5 was included by mistake in the list of supported versions.
[hvelarde]Use “application/javascript” media type instead of the obsolete “text/javascript”.
[hvelarde]2.4 (2015-09-17)Drop explicit support for Plone 4.1 and Python 2.6;
package should work, but we are not testing anymore with those versions so compatibility is not guaranteed.
[hvelarde]Fix caching issues with WhatsApp button by moving mobile detection client-side (closes#56).
[rodfersou]Add Dutch translations.
[fredvd]Fix uninstall error.
[bsuttor]2.3 (2015-07-14)Added the “Do not track users” configuration option, to prevent social
networks from sending cookies to site’s visitors.
This will replace social badges with simple links.
[keul]Added German translations.
[tohafi]2.2 (2015-05-04)Added WhatsApp plugin (closes#39).
[rodfersou]2.1 (2015-03-02)Translations to Brazilian Portuguese and Spanish were updated.
[hvelarde]Removed deprecated portal_actionicons registration
[keul]Translation fixes: some label were not translated
[keul]Facebook “Share” button now provided. See#15.
[keul]Added missing migration step for refreshing CSS registry
[keul]2.0.2 (2015-02-23)Removed old Facebook specific CSS rule that truncate the new Facebook widget. This close#38.
[keul]2.0.1 (2015-02-23)Nothing changed (brown bag release).2.0 (2015-02-10)Do not load social media stuff on non-canonical views (like edit form or similar). This close#36.
[keul]Added italian translation.
[keul]Load behavior of all social plugins changed to be async.
[keul]Fixed a problem with images loaded in news. If the image isn’t a JPG,
theget_content_imagemethod can’t get image size and returns nothing.
This avoid some strange things, like MemoryError with Pillow.
[cekk]If a field named “image” isn’t an ImageField, do not break the viewlet.
[cekk]Add exception handling also for TypeError in get_content_image method.
[cekk]Fixed metadata og:type, used value ‘article’ for internal page.
[fdelia]2.0rc1 (2014-10-14)Use safe_unicode to deal with accented chars in content Title.
[ericof]2.0b4 (2014-08-08)Fixed styling for action buttons. Now they are displayed side by side
[agnogueira]Fix an UnicodeDecodeError in the Twitter plugin (Reported by Programa Interlegis)
[ericof]2.0b3 (2014-06-06)Fix a division by zero issue happening with AT Images during creation (while on portal_factory)
[ericof]2.0b2 (2014-06-02)Facebook now recommends 1200 x 630 images
[ericof]2.0b1 (2014-02-07)Use View permission on viewlets to avoid security failures into viewlet
if anonymous try to display non public parts of site.
[thomasdesvenain]Fix package dependencies.
[hvelarde]2.0a2 (2013-11-04)Use content language instead of request language, avoiding cache problemshttps://github.com/collective/sc.social.like/issues/19[ericof]2.0a1 (2013-07-23)Drop support for Plone 4.0.x [ericof]Increasing test coverage [ericof]Render metadata viewlet on folder_full_view and all_content templateshttps://github.com/collective/sc.social.like/issues/11[ericof]Fixes vertical displayhttps://github.com/collective/sc.social.like/issues/5[ericof]Add LinkedIn and Pinterest support.https://github.com/collective/sc.social.like/issues/6[ericof]Plugin implementation [ericof]Ensure all resources are loaded using scheme-relative URLs.  Previously,
attempting to load off HTTP on HTTPS sites resulted in broken pages.
[davidjb]Plone 3.x is not officially supported anymore; use it at your own risk.
[hvelarde]Change CSS import to link.
[agnogueira]Previous entries can be found in the HISTORY.rst file.