The blog extension for TYPO3 provides a blog based on TYPO3s core features - pages and content element.
Use all your favorite and well-known elements to create a full-blown blog with ease.
The main goal for this blog extension was to use TYPO3s core concepts and
elements to provide a full-blown blog that users of TYPO3 can instantly
understand and use.
Pages as blog entries
Blog entries are simply pages with a special page type blog entry and can be
created and edited via the well-known page module. Creating new entries is as
simple as dragging a new entry into the page tree.
Post information in backend page header
The TYPO3 page and the list module show additional information for blog
posts. Information that is normally hidden in the page settings is now
visible to the editor. The new information bar is enabled by default but
can be disabled in the extension settings.
Use all your content elements
All your existing elements can be used on the blog pages - including
backend layouts, custom content elements or plugins.
Flexible positioning
All parts of your new blog are usable on their own, so you can just use the
elements you want. The different elements include for example the comments
and comment form, a sidebar or the list of blog posts. All these elements
can be used as separate content elements and therefor be positioned and used
wherever you want.
Customizable Templates
Templating is done via Fluid templates. If you want your blog to have a custom
look and feel just replace the templates and styles with your own. If you just
want a quick blog installation, use the templates provided by the extension and
just add your stylesheets.
Categorizing and Tagging
Use categories and tags to add meta information to your blog posts. Let your
users explore your posts based on their interests navigating via tags or
categories to find similar entries. Add posts from the same category to your
posts to get your readers to read even more.
Integration and Standalone Mode
The blog features three different modes - expert, standalone and integration.
Installation
Install TYPO3 Blog Extension like any other TYPO3 extension.
Composer
composer require t3g/blog
Copied!
Git
cd typo3conf/ext/
git clone git@github.com:TYPO3GmbH/blog.git
Copied!
Extension Manager
Log into your TYPO3
Go to Admin Tools / Extensions
Select "Get Extensions" in the Document-Header
Click "Update now"
Search for "TYPO3 Blog Extension"
Click Import and Install
Activation
Go to Admin Tools / Extensions
Select "Installed Extensions" in the Document-Header
The Setup Wizard creates a fully configured standalone instance of the TYPO3
Blog Extension. If you already have an existing site, you might dislike the result
of having an additional and unplanned root page. In that case, please read the
manual setup instructions.
The manual setup helps you to build an integrated instance of the TYPO3 Blog
Extension. If you want a standalone Blog and do not have an existing
site, please go with the Setup Wizard instructions.
The Setup Wizard creates a fully configured standalone instance of the TYPO3
Blog Extension. If you already have an existing site, you might dislike the result
of having an additional and unplanned root page. In that case, please read the
Manual Setup instructions.
Click on "Setup" in the "Blog" section of your module menu in the backend
Click on the "Setup a new blog" button
Enter a title for your blog
Click on the "Setup" button, to create the blog
The blog setup is now completed
Enable your blog
Select the page module
Right click on your blog
Enable the page
Explore your Blog
Manual Setup
The manual setup helps you to build an integrated instance of the TYPO3 Blog
Extension. If you want a standalone Blog and do not have an existing
site, please go with the Setup Wizard instructions.
It is recommended to use the "Integration" template to use the prepared page
templates for lists and posts. These are using the layout "Default" and the
section "Main" of your Template.
If your "Page-Template/-Sections" named differently, please overwrite the blog
templates in your sitepackage. Check the used templates below and adapt them
to your own needs.
Click on the page where you want to create the new category
Click on the "new record" button on the top and choose category
Enter a title for the category and choose a possible parent
Click "Save"
Tags
Create a new Tag
Go to list module
Click on the page where you want to create the new tag
Enter a title for the tag
Click "Save"
Posts
Create a new post
Create blog post
Create a new blog post page
Click on the page module
Click on the plus icon on top of the page tree
Drag the blog post into your data folder
Edit your blog post
Select the blog post you created
Click "Edit Post Meta-Data" or the edit button in the page header
Check the title of your blog post
Select the "General" tab
Edit the title of your blog post
Adjust publish date and feature image
Click the "Blog" tab
Adjust the publish date if nessesary
Upload a new image for your blog post or select an existing one
Note
The featured image will be displayed in all blog lists and in the RSS feed.
The "Blog: Header" plugin is available to display it in the blog post.
Save your changes and close the post meta data interface
Save your changes
Close the post meta data interface
Add content blocks to your post
Click the "Add content" Button
Select any content block you want to insert, for example "Regular Text Element"
Insert content for your block
Save the content
Close the content block
Tip
You can add all kinds of content elements that you are using on the rest of your web site, too. The blog itself doesn't
provide any special elements for the content of your blog entry as sticking close to the rest of your website ensures a
consistent look and feel for your visitors.
Enable your blog post
Right click on the post you want to enable
Click on "Enable"
View your Blog Post
Click on the "View" Button in the document header
Congratulations you published your blog post
Configuration
TypoScript Reference
This section covers all settings, which can be defined by TypoScript Constants.
List posts UID:
Location of the "Blog: List of posts" plugin. This page UID is the root page for the blog. All blog post pages are located below this page.
plugin.tx_blog.settings.authorUid
Property
plugin.tx_blog.settings.authorUid
Data type
int+
Default
0
Description
Author UID:
Location of the "Blog: Author" plugin. Shows posts by author.
plugin.tx_blog.settings.categoryUid
Property
plugin.tx_blog.settings.categoryUid
Data type
int+
Default
0
Description
List by category UID:
Location of the "Blog: List by category" plugin. Shows all posts from one category.
plugin.tx_blog.settings.tagUid
Property
plugin.tx_blog.settings.tagUid
Data type
int+
Default
0
Description
List by tags UID:
Location of the "Blog: List by tags" plugin. Shows all posts from one tag.
plugin.tx_blog.settings.archiveUid
Property
plugin.tx_blog.settings.archiveUid
Data type
int+
Default
0
Description
Archive UID:
Location of the "Blog: Archive" plugin. Shows archived posts.
plugin.tx_blog.settings.storagePid
Property
plugin.tx_blog.settings.storagePid
Data type
int+
Default
0
Description
Storage folder:
Storage folder of all categories and tags for this blog.
Templates
Property
Type
Default
plugin.tx_blog.view.templateRootPaths_
string
EXT:blog/Resources/Private/Templates/
plugin.tx_blog.view.partialRootPaths_
string
EXT:blog/Resources/Private/Partials/
plugin.tx_blog.view.layoutRootPaths_
string
EXT:blog/Resources/Private/Layouts/
plugin.tx_blog.view.widget.templateRootPaths_
string
EXT:blog/Resources/Private/Templates/
plugin.tx_blog.view.emails.templateRootPaths_
string
EXT:blog/Resources/Private/Mails/Templates/
plugin.tx_blog.view.emails.partialRootPaths_
string
EXT:blog/Resources/Private/Mails/Partials/
plugin.tx_blog.view.emails.layoutRootPaths_
string
EXT:blog/Resources/Private/Mails/Layouts/
plugin.tx_blog.view.templateRootPaths
Property
plugin.tx_blog.view.templateRootPaths
Data type
string
Default
EXT:blog/Resources/Private/Templates/
Description
Template Root Path:
Path to templates folder
plugin.tx_blog.view.partialRootPaths
Property
plugin.tx_blog.view.partialRootPaths
Data type
string
Default
EXT:blog/Resources/Private/Partials/
Description
Partial Root Path:
Path to partial folder
plugin.tx_blog.view.layoutRootPaths
Property
plugin.tx_blog.view.layoutRootPaths
Data type
string
Default
EXT:blog/Resources/Private/Layouts/
Description
Layout Root Path:
Path to layout folder
plugin.tx_blog.view.widget.templateRootPaths
Property
plugin.tx_blog.view.widget.templateRootPaths
Data type
string
Default
EXT:blog/Resources/Private/Templates/
Description
Widget-Template Root Path:
Path to templates folder
plugin.tx_blog.view.emails.templateRootPaths
Property
plugin.tx_blog.view.emails.templateRootPaths
Data type
string
Default
EXT:blog/Resources/Private/Mails/Templates/
Description
Email-Template Root Path:
Path to templates folder
g: suitable for display on all websites with any audience type.
pg: may contain rude gestures, provocatively dressed individuals, the lesser swear words, or mild violence.
r: may contain such things as harsh profanity, intense violence, nudity, or hard drug use.
x: may contain hardcore sexual imagery or extremely disturbing violence.
Displays a list of blog posts ordered by date. All non-hidden, non-deleted and
non-archived posts are shown in the list.
Latest posts
Displays a number of latest posts. You can specify the amount of items yourself.
List by category
If you add this element and you have selected a category on the categories tab,
it will show an overview of posts for that category. If you have no categories
selected, it will show an overview of categories.
List by author
Displays all posts belonging to the chosen author.
List by tags
Allows the users to show all posts tagged with a specific keyword.
Archive
The archive plugin displays all posts categorized by year and month.
Blog Post Plugins
If possible, do not add the following plugins manually on each blog post.
Provide them via a Dedicated Page Template, so your editor can concentrate on the content.
Displays post authors, like name, title, avatar, social links..
Related Posts
Based on the categories and tags of the current post, it will show a list of
related posts. This overview should only be placed on a Blog detail page.
Shared Plugins
Sidebar
The sidebar contains links enabling the user to quickly navigate your blog. It
shows an overview of recent posts and comments, categories, tags and archive
links.
The default AvatarProvider is the GravatarProvider, this means the avatar of an author is received from gravatar.com. The extension provides also an ImageProvider for local stored images.
But you can also implement your own AvatarProvider:
Create a class which implements the AvatarProviderInterface.
Add your provider to the TCA field “avatar_provider” to make it selectable in the author record
Note: Since v10 the proxying of gravatar loading is used which means that TYPO3 downloads the gravatar, stores it on the filesystem and delivers the image locally from typo3temp. This is privacy related and useful if users didn't give their consent for fetching gravatars client side.
All Icons are now delivered by default as svgs and are
rendered inline, this makes them easy to style and adjust.
New templates have been introduced that only delivers the markup
for the icons. This can be overwritten if you want to exchange the
icons used. Default avatar size was also slightly increased to better
match renderings.
The metadata implementation for authors, categories, tags, publish date
and comments were really hard to customize. It was used in multiple
places and was also reliant on font awesome for icons.
To provide a better out of the box experience the templates were
completely refactored and rebuilt from the ground up. A generic set was
introduced that provides a lot of flexibility without the need to touch the
templates at all. This set is now replacing all current usages of the
metadata.
The old metadata plugin will now throw a deprecation message and is
planned to be removed with Version 11. Instead of using the old one, there
are now two new plugins for post header and post footer that can be
configured individually through TypoScript constants. While the post
header plugin will also render the post title, the post footer will only render
the metadata for now. Also, the list rendering of posts has now two
dedicated sections for rendering the metadata.
Each section like authors or categories can be configured per position.
If you do not want to have a section rendered at all, you can also simply
disable it. If comments are disabled for a post, the comment section will
not be rendered.
We are now shipping 3 different layouts you can choose from that will
change the look of how the metadata will be displayed.
Simple:
Is a compact version, showing icon and value in one line.
Condensed:
In addition to the icon and value, there is now also a prefix visible.
Extended:
Prefix and value are now in separate lines.
You will find settings for this in the constant editor.
Example Configuration for the postheader position:
The sidebar headline does not deliver any benefit. The user has the option
to use the title of the content element to add a headline to the sidebar if
necessary, in general this has no real use case since only the headlines
of the widgets are relevant.
The author rendering has been completely reworks and is now
more easy to customize without overwriting the templates. Bootstrap
and FontAwesome specific classes were completely removed and
we now deliver some basic css to achieve better results.
Rendering is now more resilient and only renders elements
if necessary. Each element can be identified through specific
classes on the markup. Flexbox is used for alignment and can be
used to reorder the rendering without touching the templates.
Icons for social links now are now delivered by default as svgs
and are rendered inline, this makes them easy to style and adjust.
A new template has been introduced that only delivers the markup
for the icons. This can be overwritten if you want to exchange the
icons used. Default avatar size was also slightly increased to better
match renderings.
The post comment rendering has been completely reworks and
is now more easy to customize without overwriting the templates.
Bootstrap specific classes were completely removed and
we now deliver some basic css to achieve better results.
Schema.org attributes were adjusted to respect the latest
recommendations for user comments. And a new option was
added to make the display date format configurable through typoscript.
The widget rendering has been completely reworked and is
now more easy to customize without overwriting the templates.
Title rendering has been moved to the main layout, you can now
use the new section "Title" to set the widget title. If you have
overwritten the widget templates or added new ones that makes
use of the "Widgets" layout you need to add this new section.
The default size for widgets.tags.maxSize has
been reduced from 200 to 100 to unset the
default scaling. To reenable the tag scaling in
the widget please adjust the min-/maxSize to
your preferred settings.
In addition the fallback sizes have been also
adjusted to reflect these default typoscript
settings.
The widget content rendering has been completely
reworked and is now more easy to customize without
overwriting the templates.
The archive template does not use the Archive/Menu
partial anymore. It now has a dedicated template to not
reflect template changes that are meant to be for a
different rendering location.
RSS links have been removed to declutter the default
view for the sidebar. Links to the RSS feeds still exist in
their dedicated single views.
The pagination rendering has been completely
reworked and is now more easy to customize without
overwriting the templates. Bootstrap specific markup
has been removed.
In addition to a new template, a11y has been
enhanced. We are now providing descriptive labels
for the pagination entries. A set of new language labels
have been introduced that you are now also able
to customize to your needs.
New labels:
pagination.aria.label: Page navigation
pagination.next: Next
pagination.previous: Previous
pagination.aria.current.page: Current page, page %s
pagination.aria.goto.page: Go to page %s
pagination.aria.goto.next: Go to next page
pagination.aria.goto.previous: Go to previous page
Breaking: Use TYPO3 Form Framework for comment form
Description
The required form markup can vary a lot depending on the
frontend implementation of the instance. To ease the
blog integration in all kinds of frontends we decided to
make use of the form framework of TYPO3.
By using the form framework the blog will automatically
respect the already configured forms of the typo3 instance.
This will remove the necessity to provide custom form
templates for the comment form of the blog extension.
This will also mean, thats its no longer possible to adjust
the comment form directly, since this is now generated
through the form framework API.
During the migration it was noticed that the google captcha
implementation is currently only compatible with v2, this
was added to the label for now to avoid configuration
confusions while generating API Keys at google.
To provide more flexibility, all default post list templates
have been reworked. They all now share a common markup
with modifiers for the different plugins.
In previous versions the templates were already listening to
a variable class, but it was never set nor could could it be set
without overriding the templates. All controller that render lists
are now assigning a variable named type to these templates.
Breaking: Add configuration error note for single view plugins
Description
To prevent the usage of plugins that should only be
used on post views we are now adding additional
checks for those. If no post could be resolved - also
means if the plugin is used on pages that do not match
the Constants::DOKTYPE_BLOG_POST - the plugins will
now return a new message to make the miss usage visible.
``
A possible configuration error was detected.
No matching post could be obtained.
Make sure that this plugin is only used on a post.
``
The following plugins will now show this message if no
post could be obtained:
The meta service is obsolete since TYPO3 v9 and is replaced
through the usage of the MetaTag-API from core. To migrate to
the new API you just need to remove all usages of the MetaService.
All backend users now are NOT prevented from editing the field unless they are members
of a backend user group with this field added as an “Allowed Excludefield” (or “admin” user).
Breaking: Drop social image wizard and prefer ext:seo
Description
We are dropping the social image wizard and rely on the editor to create
custom images if necessary. The feature predated the core SEO-Initiative
that now handles social images through dedicated fields. We are strongly
recommending using core handling instead of the media fields.
The wizard itself had several drawbacks, it was hard to configure and
was not able to handle high-resolution images.
Listing of tags is now restricted to the configured storage pid.
If you want to use tags from additional storages please adjust your
configuration accordingly.
The social share links are rarely used and no implementation is provided by the
blog extension itself. The option is removed without replacement. Of course you
can still use an extension like the Shariff implementation for TYPO3 in your
custom templates.
Most of the time the format nl2br viewhelper produces
unwanted and unnecessary line breaks where a paragraph
is actually the wanted result. The new viewhelper converts
linebreaks to actual paragraphs and cleans out empty
segments. In contrary to the form html viewhelper anything
else will be left untouched.
The new featured image field will now be the preferred way
to set an article image. Since the media field could contain
any asset the new featured image field is dedicated to images.
You can configure the width and height through typoscript constants.
Feature: Show post information in backend page header
Description
The TYPO3 page and the list module now show additional information for blog posts.
Information that was previously hidden in the page settings is now visible to the editor.
The new information bar is enabled by default but can be disabled in the extension settings.
The blog now features three different modes - expert, standalone and integration.
It should now be more easy than ever to get your TYPO3 blog up and running.
Providers like Feedly.com include a featured image in the RSS feed.
If the featured image is used in the blog post, it will also be
included in the RSS feed.
Images from gravatar are now cached on the local system, to ensure that the user
does need to connect to the third party service in while browsing the site.
The behavior of blog categories is now streamlined with categories that can be
selected within the page records. Without touching or limiting normal categories.
Blog categories only show other blog categories within the parent selector box,
that are created in the same directory. Note: SEO content is only available for
blog categories, not (anymore) for default categories.
This patch removes all calls to $GLOBALS['TYPO3_DB'] and replace it with doctrine calls.
This patch introduce also two new columns in table :sql:pages:
:sql:crdate_month
:sql:crdate_year
Both fields are used for the data aggregation of the archive sidebar widget.
For existing blog posts, an UpdateWizard is in place and should be executed in the install tool.
Impact
An existing installation must run the UpdateWizard, else the output of the archive sidebar widget is broken.
The AvatarProvider will no longer be injected into the author model.
To make it possible to select the avatar provider on author record level, the behavior has changed.
The GravatarProvider is still the default provider, but can be changed for each author.
An UpgradeWizard will set the GravatarProvider for all authors. if a custom AvatarProvider is in use,
skip the UpgradeWizard and add the class name to the new field for all records.
Impact
Existing custom AvatarProvider must be adjusted and registered in the author TCA field "avatar_provider".
Support for disqus.com was added which allows threaded and interactive comments.
To use disqus.com you have to enable it and set your disqus shortname (forum identifier)
The TypoScript above configures / activates the disqus support and replaces the classic comment form and comment listing.
The comment counts in the list are also replaced by disqus.
Attention: If you have overridden the templates, check the template changes of this patch.
Feature: #EXTBLOG-75 - Moderation only of the first comment
A new value for the moderation settings allows to auto approve comments
if a comment with the same email address has been approved before.
plugin.tx_blog.settings.comments.moderation = 2
Copied!
If the setting plugin.tx_blog.settings.comments.moderation is set to the value 2
a new comment with an author email address which has been used in an other approved comment will
automatically set to status approved too.
The google re-captcha was added to the comment form but have to be activated and configured.
The feature prevent comment spam by adding an additional captcha field to the comment form.
To use the feature it is required to activate and configure the captcha field.
The required keys can be received from google: https://www.google.com/recaptcha/admin#list
A notification system was introduced to send notifications on new comments.
The notification system is extensible and will be used for more notifications in the future.
The first implementation handles the email notifications for new comments on posts.
It is now possible to add a list of related posts based on the current
showed post.
The related posts are based on matching categories and tags. You can
configure the "weight" of categories and tags to match it to your needs.
Feature: SocialImageWizard
Description
The blog add a new wizard to the media field of blog posts.
The button "Open Social Image Wiazrd" opens a modal window with a wizard to create social media images.
The wizard puts the title of the blog post and the author to the image. The text can be changed.
To customize the layout auf the images, it is possible to override the filter and define an own skin.
With PageTS-Config it is possible to define custom files:
Added possibility to set the storage pids for blog posts related plugins.
# This will set pids 1, 4 and 5 as storage pid for blog posts# this will used for all plugins in the whole tree
plugin.tx_blog.settings.storagePid = 1,4,5
Copied!
Impact
You can now set a storage pid where the blog posts are saved. This can be done by TypoScript or plugin setting.
Note
All plugins which list blog posts will first check if there are any TypoScript or plugin setting for the storage pid.
If there are no storage pids set, it will scan the rootline of the page the plugin is on if there are any blog posts.
Introduction of a new setting widget.recentposts.limit for a maximum of
displayed posts in the recent posts widget.
Default value is 5. There is no limit if the setting is not present or set to 0.
The comment form use a honeypot field as spam protection. This means a new
field is added to the comment form which must not be filled out. The field
is set to hidden by JavaScript and only bots will fill out this field.
Impact
The template of the comment form has been changed.
Please add the the following code to your custom template if you not use the templates delivered by the extension:
Blog post can now contains one or more authors. In the frontend a box with the
author profile can be rendered by a new authors plugin. It is alos possible to
link to an overview of all posts by this author.
Impact
The old "author" field can still be used, but should be replaced by the new
author record.
Section, partial and layout names are recommended to be uppercase and
are now renamed to follow best practices. If you have customized
templates please ensure you check the casing of your section names.
actions => Actions
content => Content
intro => Intro
paginator => Paginator
Migration Example:
Old
<f:rendersection="content"arguments="{_all}" />
Copied!
New
<f:rendersection="Content"arguments="{_all}" />
Copied!
If you neglect to correct this situation before executing the upgrade on
the blog extension, you will see the follwing error message:
Oops, an error occurred! Section "content" does not exist.
Dedicated featured image provided
The new featured image field will now be the preferred way to set an article
image. Since the media field could contain any asset the new featured image
field is dedicated to images. You can configure the width and height through
typoscript constants.
The social share links are rarely used and no implementation is provided
by the blog extension itself. The option is removed without replacement.
Of course you can still use an extension like the Shariff implementation
for TYPO3 in your custom templates.
Respect PageTsConfig limitation for authors
From now on the PAGE_TSCONFIG_ID is respected for authors in the backend.
If you have not configured a storage pid for this records before please
adjust your configuration.
TsConfig Example:
TCEFORM.pages.authors.PAGE_TSCONFIG_ID = 59
Copied!
Fontawesome dependency removed
All Icons are now delivered by default as svgs and are rendered inline,
this makes them easy to style and adjust. New templates have been introduced
that only delivers the markup for the icons. This can be overwritten if you
want to exchange the icons used. Default avatar size was also slightly
increased to better match renderings.
Templates added:
Partials/General/BlogIcons.html
Partials/General/SocialIcons.html
Templates changed:
Partials/Archive/Menu.html
Partials/Post/Author.html
Partials/Post/Meta.html
Templates/Post/ListPostsByAuthor.html
Templates/Post/ListPostsByCategory.html
Templates/Post/ListPostsByDate.html
Templates/Post/ListPostsByTag.htm
Introduce blog categories
The behavior of blog categories is now streamlined with categories that
can be selected within the page records. Without touching or limiting
normal categories. Blog categories only show other blog categories within
the parent selector box, that are created in the same directory.
Note: SEO content is only available for blog categories, not (anymore)
for default categories.
MetaService obsolete
The meta service is obsolete since TYPO3 v9 and is replaced through the
usage of the MetaTag-API from core. To migrate to the new API you just
need to remove all usages of the MetaService.
New metadata rendering (modernized)
The metadata implementation for authors, categories, tags, publish date and
comments were really hard to customize. It was used in multiple places and
was also reliant on font awesome for icons. To provide a better out of the
box experience the templates were completely refactored and rebuilt from the
ground up. A generic set was introduced that provides a lot of flexibility
without the need to touch the templates at all. This set is now replacing
all current usages of the metadata. The old metadata plugin will now throw
a deprecation message and is planned to be removed with Version 11. Instead
of using the old one, there are now two new plugins for post header and post
footer that can be configured individually through TypoScript constants.
While the post header plugin will also render the post title, the post footer
will only render the metadata for now. Also, the list rendering of posts has
now two dedicated sections for rendering the metadata.
Each section like authors or categories can be configured per position.
If you do not want to have a section rendered at all, you can also simply
disable it. If comments are disabled for a post, the comment section will
not be rendered.
We are now shipping 3 different layouts you can choose from that will change
the look of how the metadata will be displayed.
Simple:
Is a compact version, showing icon and value in one line.
Condensed:
In addition to the icon and value, there is now also a prefix visible.
Extended:
Prefix and value are now in separate lines. You will find settings for
this in the constant editor.
Example Configuration for the postheader position:
We are now limiting the selection of authors to the default langauge, since
translations are fetched automaticly, if available
Limit tags to configured storage pid
Listing of tags is now restricted to the configured storage pid. If you want
to use tags from additional storages please adjust your configuration
accordingly.
TypoScript Constants Example:
plugin.tx_blog.settings.storagePid = 0,666
Copied!
Social image wizard dropped (prefer ext:seo)
We are dropping the social image wizard and rely on the editor to create custom
images if necessary. The feature predated the core SEO-Initiative that now
handles social images through dedicated fields. We are strongly recommending
using core handling instead of the media fields.
The wizard itself had several drawbacks, it was hard to configure and was not
able to handle high-resolution images.
New list rendering (modernized)
To provide more flexibility, all default post list templates have been reworked.
They all now share a common markup with modifiers for the different plugins.
In previous versions the templates were already listening to a variable class,
but it was never set nor could could it be set without overriding the templates.
All controller that render lists are now assigning a variable named type to these
templates.
ListPostsByAuthor -> postlist--byauthor
ListPostsByCategory-> postlist--bycategory
ListPostsByDate -> postlist--bydate
ListPostsByTag -> postlist--bytag
ListRecentPosts -> postlist--recent
RelatedPosts --> postlist--related
Templates changed:
Partials/List.html
Partials/List/Post.html
Templates/Post/ListPostsByAuthor.html
Templates/Post/ListPostsByCategory.html
Templates/Post/ListPostsByDate.html
Templates/Post/ListPostsByTag.html
New widget rendering (modernized)
The widget rendering has been completely reworked and is now more easy to
customize without overwriting the templates. Title rendering has been moved to
the main layout, you can now use the new section "Title" to set the widget
title. If you have overwritten the widget templates or added new ones that
makes use of the "Widgets" layout you need to add this new section.
Migration:
remove:
<h3 class="widget-title">[TITLE]</h3>
Copied!
add:
<f:section name="Title">[TITLE]</f:section>
Copied!
Templates changed:
Layouts/Widget.html
Templates/Post/Sidebar.html
Templates/Widget/Archive.html
Templates/Widget/Categories.html
Templates/Widget/Comments.html
Templates/Widget/Feed.html
Templates/Widget/RecentPosts.html
Templates/Widget/Tags.html
New widget content rendering (modernized)
The widget content rendering has been completely reworked and is now more easy
to customize without overwriting the templates. The archive template does not
use the Archive/Menu partial anymore. It now has a dedicated template to not
reflect template changes that are meant to be for a different rendering location.
RSS links have been removed to declutter the default view for the sidebar.
Links to the RSS feeds still exist in their dedicated single views.
Templates changed:
Templates/Widget/Archive.html
Templates/Widget/Categories.html
Templates/Widget/Comments.html
Templates/Widget/Feed.html
Templates/Widget/RecentPosts.html
Templates/Widget/Tags.html
New pagination rendering (modernized)
The pagination rendering has been completely reworked and is now more easy to
customize without overwriting the templates. Bootstrap specific markup has been
removed. In addition to a new template, a11y has been enhanced. We are now
providing descriptive labels for the pagination entries. A set of new language
labels have been introduced that you are now also able to customize to your needs.
New labels:
pagination.aria.label: Page navigation
pagination.next: Next
pagination.previous: Previous
pagination.aria.current.page: Current page, page %s
pagination.aria.goto.page: Go to page %s
pagination.aria.goto.next: Go to next page
pagination.aria.goto.previous: Go to previous page
Templates changed:
Templates/ViewHelpers/Widget/Paginate/Index.html
TYPO3 Form Framework for comment form now used
The required form markup can vary a lot depending on the frontend implementation
of the instance. To ease the blog integration in all kinds of frontends we decided
to make use of the form framework of TYPO3. By using the form framework the blog
will automatically respect the already configured forms of the typo3 instance.
This will remove the necessity to provide custom form templates for the comment
form of the blog extension. This will also mean, thats its no longer possible to
adjust the comment form directly, since this is now generated through the form
framework API.
During the migration it was noticed that the google captcha implementation is
currently only compatible with v2, this was added to the label for now to avoid
configuration confusions while generating API Keys at google.
Adjusted Templates:
Templates/Comment/Form.html
New Templates:
Partials/Comments/Form/Closed.html
Partials/Comments/Form/Disqus.html
Partials/Comments/Form/Local.html
Partials/Form/GoogleCaptcha.html
Configuration error note for single view plugins added
To prevent the usage of plugins that should only be used on post views we are now
adding additional checks for those. If no post could be resolved - also means if
the plugin is used on pages that do not match the Constants::DOKTYPE_BLOG_POST
- the plugins will now return a new message to make the miss usage visible.
A possible configuration error was detected. No matching post could be obtained. Make sure that this plugin is only used on a post.
The following plugins will now show this message if no post could be obtained:
Authors
Footer
Header
Metadata
RelatedPosts
Templates added:
Layouts/Post.html
Templates changed:
Templates/Comment/Comments.html
Templates/Comment/Form.html
Templates/Post/Authors.html
Templates/Post/Footer.html
Templates/Post/Header.html
Templates/Post/Metadata.html
Templates/Post/RelatedPosts.html
New post author rendering (modernized)
The author rendering has been completely reworks and is now more easy to customize
without overwriting the templates. Bootstrap and FontAwesome specific classes were
completely removed and we now deliver some basic css to achieve better results.
Rendering is now more resilient and only renders elements if necessary. Each element
can be identified through specific classes on the markup. Flexbox is used for
alignment and can be used to reorder the rendering without touching the templates.
Icons for social links now are now delivered by default as svgs and are rendered
inline, this makes them easy to style and adjust. A new template has been introduced
that only delivers the markup for the icons. This can be overwritten if you want to
exchange the icons used. Default avatar size was also slightly increased to better
match renderings.
Configuration changed:
avatar.provider.size: 64 -> 72
Templates changed or added:
Partials/General/SocialIcons.html
Partials/Post/Author.html
Templates/Post/Authors.html
New post comment rendering (modernized)
The post comment rendering has been completely reworks and is now more easy to
customize without overwriting the templates. Bootstrap specific classes were
completely removed and we now deliver some basic css to achieve better results.
Schema.org attributes were adjusted to respect the latest recommendations for
user comments. And a new option was added to make the display date format
configurable through typoscript.
Configuration added:
comments.date.format = %B %e, %Y
Templates changed or added:
Partials/Comment/Comment.html
Templates/Comment/Comments.html
Reduced tags size by default
The default size for widgets.tags.maxSize has been reduced from 200 to 100 to
unset the default scaling. To reenable the tag scaling inthe widget please
adjust the min-/maxSize to your preferred settings. In addition the fallback
sizes have been also adjusted to reflect these default typoscript settings.
Exclude fields dropped
All backend users now are NOT prevented from editing the field unless they are
members of a backend user group with this field added as an
“Allowed Excludefield” (or “admin” user).
Reference to the headline
Copy and freely share the link
This link target has no permanent anchor assigned.The link below can be used, but is prone to change if the page gets moved.
Social share options dropped
The social share links are rarely used and no implementation is provided by the blog extension itself. The option is removed without replacement. Of course you can still use an extension like the Shariff implementation for TYPO3 in your custom templates.