DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

EXT: typo3_blog

Created:2010-02-18T17:33:18
Changed by:Roland Hensch
Changed:2013-03-17T21:04:44.590000000
Classification:typo3_blog
Description:The keywords help with categorizing and tagging of the manuals. You can combine two or more keywords and add additional keywords yourself. Please use at least one keyword from both lists. If your manual is NOT in english, see next tab "language" ---- forEditors (use this for editors / german "Redakteure") forAdmins (use this for Administrators) forDevelopers (use this for Developers) forBeginners (manuals covering TYPO3 basics) forIntermediates (manuals going into more depth) forAdvanced (covering the most advanced TYPO3 topics) see more: http://wiki.typo3.org/doc_template#tags ----
Keywords:Blog
Author:Roland Hensch
Email:rsch73@gmail.com
Info 4:
Language:en

img-1 img-2 EXT: typo3_blog - typo3_blog

EXT: typo3_blog

Extension Key: typo3_blog

Language: en

Keywords: Typo3 Blog

Copyright 2000-2010, Roland Hensch, <rsch73@gmail.com>

This document is published under the Open Content License

available from http://www.opencontent.org/opl.shtml

The content of this document is related to TYPO3

- a GNU/GPL CMS/Framework available from www.typo3.org

Table of Contents

EXT: typo3_blog 1

`Introduction 3 <#__RefHeading__9811_1055177846>`_

What does it do? 3

Screenshots 3

`Users manual 4 <#__RefHeading__9817_1055177846>`_

Generall 4

Blog start page 4

Blog categories 5

Blog entry 5

Blog Settings 5

FAQ 5

`Administration 6 <#__RefHeading__9829_1055177846>`_

Adding TypoScript Template 6

FAQ 6

`Configuration 7 <#__RefHeading__9835_1055177846>`_

blogList Widget 7

blogSingle Widget 8

archive Widget 10

blogroll Widget 11

calendar Widget 12

category Widget 13

latestPosts Widget 13

relatedPosts Widget 14

Template Setup 15

Reference 15

`Tutorial 16 <#__RefHeading__8961_1179748543>`_

`Known problems 17 <#__RefHeading__9843_1055177846>`_

`To-Do list 18 <#__RefHeading__9845_1055177846>`_

`ChangeLog 19 <#__RefHeading__9847_1055177846>`_

Introduction

What does it do?

  • This extension provides blog functionality for Typo3 and we have included several widgets and a new page doktype “Blog Category”. All pages with this doktype will be rendered with the blogList widget. All pages with the doktype “Standard” will also be rendered with the blogSingle widget. You can use all content elements in your blog entries.
  • The blog is managed only in Typo3 pagetree. This is very easy.
  • You can add more functionality with other Typo3 extension. You can use ext:comments for comments, ext:vge_tagcloud for a tagcloud, ext:form4_pages_rss for RSS Feed
Widgets
  • The following widgets are available in this extension
  • blogSingle: Display a single blog entry
  • category: Display a menu with blog categories
  • archive: Display list of blog entries ordered by year and month
  • calendar: Display a calendar an highlight the date of created posts
  • blogroll: Display a list with interested links
  • latestPosts: Display a list from the latest blog entries

Screenshots

img-3 img-4

img-5 img-6 Users manual

Generall

  • This extension has the Typo3 multilanguage support.
  • From the page you can use the “publish date” and the “expiration date”.
  • realurl support
  • You can change the create datetime of your blog entries

Blog start page

  • Create first a new page in your pagetree and change the doktype to “Blog Category”. This is the blog start page. The blog start page display a list with all blog entries.
  • The blog start page is rendered with the blogList widget.

Blog categories

  • Create new pages below the blog start page and change the doktype to “Blog Category”. All pages with this doktype will be rendered as bloglist and displayed a list with blog entry only for this category.
  • Each page with the page doktype “Blog Category” will be rendered with the blogList widget.

Blog entry

  • Create a new page with the doktype “Standard” below a blog category page. The blog entry page belongs to this blog category page. You can change the blog settings in the “Blog Settings” Tab. You must edit this page to change the blog settings.
  • You can add all content elements on this page.

Blog Settings

img-3

  • Add the author name. Select your name in the “ Author ” select menu. This menu contains the backend users. Please set your name in the “User Settings”
  • You can enable or disable comments for this page in “ Allow comments on blog page ”. If you have installed the commtens extension or disqus comment service.
  • Set the create datetime . The default is the page create datetime
  • Set tags on blog page for a tagcloud. You can render the tagcloud with the vge_tagcloud extension.
  • Exclude page to render this page with css_styled_content. You can use this feature to display a search result.
  • You can select a blogroll item to display this item on your blog entry page.

FAQ

Possible subsections: FAQ

Administration

Adding TypoScript Template

  • Create a new extension template on the blog start page to integrate a blog in a existing Site.
  • img-7 Add the extension TypoScript “Typo3Blog Setup (typo3_blog)” and the extension TypoScript “Page browser (pagebrowse)” to this template. Please set the correct order.
  • img-8 Go into the “Constant Editor” on this template and select the category “PLUGIN.TYPO3BLOG: Basic” and set the “Start Pid”. The Start Pid is the page id from the blog start page.

img-9 FAQ

jQuery support

This extension includes the jQuery lib and add's to your template. If jQuery already exist then remove the path in Constant Editor Files Section “jQuery Library”

Configuration

This section describes the TypoScript configuration of the typo3_blog widgets and the integration in your page template.

blogList Widget

Please look at the TypoScript configuration EXT:typo3_blog/widgets/bloglist/setup.txt and the template file EXT:typo3_blog/widgets/bloglist/template.html

TypoScript:

plugin.tx_typo3blog_pi1 {
  blogList = USER_INT
  blogList {
    includeLibs = EXT:typo3_blog/widgets/bloglist/class.tx_typo3blog_widget_bloglist.php
    userFunc = tx_typo3blog_widget_bloglist->main
  ...
  }
}
itemsToDisplay

Property

itemsToDisplay

Data type

int

Description

Count to displaying entries in bloglist

Default

Value of {$plugin.tx_typo3blog_pi1.blogList.itemsToDisplay} constant

contentItemsToDisplay

Property

contentItemsToDisplay

Data type

int

Description

Displaying elements from tt_content as preview.

Default

Value of {$plugin.tx_typo3blog_pi1.blogList.contentItemsToDisplay} constant

templateFile

Property

templateFile

Data type

string

Description

Path to blogList template file

Default

Value of {$plugin.tx_typo3blog_pi1.blogList.templateFile} constant

baseWrap

Property

baseWrap

Data type

array

Description

Wrap for the widget

Example:

baseWrap {
  outerWrap = <div class="tx-typo3blog-pi1"> | </div>
}

Default

marker

Property

marker

Data type

array

Description

This is an array with all markers for the template. You can use all columns from the table pages in this marker array. We have already set several columns in this TS.

Example:

marker {
  ...
  title = TEXT
  title {
    wrap = |
    field = title
    typolink {
      parameter.dataWrap = {field:uid}
      title.field = subtitle // title
      useCacheHash = 1
    }
  }

  tx_typo3blog_create_datetime = TEXT
  tx_typo3blog_create_datetime {
    field = tx_typo3blog_create_datetime
    strftime = {$plugin.tx_typo3blog_pi1.dateFromat}
    wrap = <li> | </li>
    required = 1
  }
  ...
}

Default

markerConfigs
uid

Property

uid

Data type

TEXT

Description

Column uid from table pages.

Set the marker in templatefile ###UID###

Default

title

Property

title

Data type

TEXT

Description

Column title in table pages.

Set the marker in templatefile ###TITLE###

Default

tx_typo3blog_create_datetime

Property

tx_typo3blog_create_datetime

Data type

TEXT

Description

Column tx_typo3blog_create_datetime in table pages.

Set the marker in templatefile ###TX_TYPO3BLOG_CREATE_DATETIME###

Default

author

Property

author

Data type

TEXT

Description

Column be_user_realName in table be_users

Set the marker in templatefile ###AUTHOR###

Default

author_email

Property

author_email

Data type

TEXT

Description

Column be_user_email in table be_users

Set the marker in templatefile ###AUTHOR_EMAIL###

Default

author_email

Property

author_email

Data type

TEXT

Description

Field that widget with md5() hash from column be_user_email in table be_users

Set the marker in templatefile ###GRAVATAR###

Default

category

Property

category

Data type

TEXT

Description

Name of blog category. Field that generated by widget

Set the marker in templatefile ###CATEGORY###

Default

tx_typo3blog_tags

Property

tx_typo3blog_tags

Data type

COA

Description

Column tx_typo3blog_tags in table pages.

Set the marker in templatefile ###TX_TYPO3BLOG_TAGS###

Default

pagecontent

Property

pagecontent

Data type

COA

Description

CONTENT Select from table tt_content to set the content element as preview in blogList

Example:

marker {
  ...
  pagecontent = COA
  pagecontent {
    10 = CONTENT
    10.table = tt_content
    10.select.pidInList.dataWrap = {field:uid}
    10.select.where = colPos=0
    10.select.max = {$plugin.tx_typo3blog_pi1.blogList.contentItemsToDisplay}
     10.select.languageField = sys_language_uid
  }
  ...
}

Default

showmore

Property

showmore

Data type

TEXT

Description

This field is parsed in widget and create a link to this blog entry page

Set the marker in templatefile ###SHOWMORE###

Default

additionalheader

Property

additionalheader

Data type

COA

Description

This field is parsed in widget and you can add other content on top of the widget. Set the marker in templatefile ###ADDITIONALHEADER###

Default

additionalfooter

Property

additionalfooter

Data type

COA

Description

This field is parsed in widget and you can add other content on bottom of the widget. Set the marker in templatefile ###ADDITIONALFOOTER###

Default

blogSingle Widget

Please look at the TypoScript configuration EXT:typo3_blog/widgets/blogsingle/setup.txt and the template file EXT:typo3_blog/widgets/blogsingle/template.html

TypoScript:

plugin.tx_typo3blog_pi1 {
  blogSingle = USER
  blogSingle {
    includeLibs = EXT:typo3_blog/widgets/blogsingle/class.tx_typo3blog_widget_blogsingle.php
    userFunc = tx_typo3blog_widget_blogsingle->main
    ...
  }
}
templateFile

Property

templateFile

Data type

string

Description

Path to blogList template file

Default

Value of {$plugin.tx_typo3blog_pi1.blogList.templateFile} constant

baseWrap

Property

baseWrap

Data type

array

Description

Wrap for the widget

Example:

baseWrap {
  outerWrap = <div class="tx-typo3blog-pi1"> | </div>
}

Default

singleNav

Property

singleNav

Data type

HMENU

Description

Navigation to get next and preview blog entry

Example:

singleNav = HMENU
singleNav {
  special = browse
  special {
    items = prev|up|next
    items.prevnextToSection =
    prev.fields.data = page:title
    up.fields.data = page:title
    next.fields.data = page:title
  }
  1 = TMENU
  1.wrap = <ul>|</ul>
  1.alternativeSortingField = tx_typo3blog_create_datetime desc
  1.NO {
    linkWrap = <li>|</li>
    stdWrap.htmlSpecialChars = 1
    ATagTitle.field = subtitle // title
  }
}

Default

marker

Property

marker

Data type

array

Description

This is an array with all markers for the template. You can use all columns from table pages in this marker array. We have already set several columns in this TS.

Example:

marker {
  ...
  title = TEXT
  title {
    wrap = <h2>|</h2>
    field = title
  }

  tx_typo3blog_create_datetime = TEXT
  tx_typo3blog_create_datetime {
    field = tx_typo3blog_create_datetime
    strftime = {$plugin.tx_typo3blog_pi1.dateFromat}
    wrap = <li> | </li>
    required = 1
  }

  gravatar = TEXT
  gravatar {
    field = be_user_email_secure
    dataWrap = <img src="http://www.gravatar.com/avatar/|.jpg?s=100" alt="{field:be_user_realName}" />
    required = 1
  }
   ...
}

Default

markerConfigs
additionalheader

Property

additionalheader

Data type

COA

Description

This field is parsed in widget and you can add other content on top of the widget. Set the marker in templatefile ###ADDITIONALHEADER###

Default

title

Property

title

Data type

TEXT

Description

Column title in table pages.

Set the marker in templatefile ###TITLE###

Default

category

Property

category

Data type

TEXT

Description

Name of blog category. Field that generated by widget

Set the marker in templatefile ###CATEGORY###

Default

author

Property

author

Data type

TEXT

Description

Column be_user_realName in table be_users

Set the marker in templatefile ###AUTHOR###

Default

author_email

Property

author_email

Data type

TEXT

Description

Field that widget with md5() hash from column be_user_email in table be_users

Set the marker in templatefile ###GRAVATAR###

Default

tx_typo3blog_create_datetime

Property

tx_typo3blog_create_datetime

Data type

TEXT

Description

Column tx_typo3blog_create_datetime in table pages.

Set the marker in templatefile ###TX_TYPO3BLOG_CREATE_DATETIME###

Default

tx_typo3blog_tags

Property

tx_typo3blog_tags

Data type

COA

Description

Column tx_typo3blog_tags in table pages.

Set the marker in templatefile ###TX_TYPO3BLOG_TAGS###

Default

gravatar

Property

gravatar

Data type

TEXT

Description

Add gravatar from http://www.gravatar.com/avatar/

Set the marker in templatefile ###GRAVATAR###

Example:

marker {
  ...
  gravatar = TEXT
  gravatar {
    field = be_user_email_secure
    dataWrap = <img src="http://www.gravatar.com/avatar/|.jpg?s=100" alt="{field:be_user_realName}" />
    required = 1
  }
  ...
}

Default

pagecontent

Property

pagecontent

Data type

COA

Description

CONTENT select from table tt_content to set all content element from current page (blog entry)

Example:

marker {
  ...
  pagecontent = COA
  pagecontent {
    10 = CONTENT
    10.table = tt_content
    10.select.pidInList.dataWrap = {field:uid}
    10.select.where = colPos=0
    10.select.languageField = sys_language_uid
  }
  ...
}

Default

additionalfooter

Property

additionalfooter

Data type

COA

Description

This field is parsed in widget and you can add other content on bottom of the widget. Set the marker in templatefile ###ADDITIONALFOOTER###

Example:

marker {
  ...
  additionalfooter = COA
  additionalfooter {
    10 = TEXT
    10 {
      if.isTrue.field = tx_typo3blog_allow_comments
      stdWrap.cObject = CONTENT
      stdWrap.cObject < comments.commentsForm
    }
  }
  ...
}

Default

archive Widget

Please look at the TypoScript configuration EXT:typo3_blog/widgets/archive/setup.txt and the template file EXT:typo3_blog/widgets/archive/template.html

TypoScript:

plugin.tx_typo3blog_pi1 {
  archive = USER
  archive {
    includeLibs = EXT:typo3_blog/widgets/archive/class.tx_typo3blog_widget_archive.php
    userFunc = tx_typo3blog_widget_archive->main
    ...
  }
}
jQueryNoConflict

Property

jQueryNoConflict

Data type

boolean

Description

Enable jQuery no conflict mode

Default

0

jsInFooter

Property

jsInFooter

Data type

boolean

Description

Add Javascript in footer

Default

0

jsMinify

Property

jsMinify

Data type

boolean

Description

Minify Javascript

Default

0

jsInline

Property

jsInline

Data type

boolean

Description

Add Javascript inline

Default

0

cssMinify

Property

cssMinify

Data type

boolean

Description

Minify CSS stylesheet

Default

0

templateFile

Property

templateFile

Data type

string

Description

Path to template file

Default

Value of {$plugin.tx_typo3blog_pi1.archive.templateFile} constant

baseWrap

Property

baseWrap

Data type

array

Description

Contains wraps

Example:

baseWrap {
  outerWrap = <div class="tx-typo3blog-pi1"> | </div>
  dataWrap = <h3>{LLL:EXT:typo3_blog/pi1/locallang.xml:tx_typo3blog_widget_archive.title}</h3>
}

Default

marker

Property

marker

Data type

array

Description

This is an array with all markers for the template. You can use all columns from table pages in this marker array. We have already set several columns in this TS.

Example:

marker {
  ...
  quantity = TEXT
  quantity {
    field = quantity
    wrap = |
  }
  ...
}

Default

markerConfigs
year

Property

year

Data type

TEXT

Description

Field year as link

Set the marker in templatefile ###YEAR###

Default

month

Property

month

Data type

TEXT

Description

Field month as link

Set the marker in templatefile ###MONTH###

Default

quantity

Property

quantity

Data type

TEXT

Description

Field quantity is a count of blog entry in month

Set the marker in templatefile ###QUANTITY###

Default

title

Property

title

Data type

TEXT

Description

Column title in table pages.

Set the marker in templatefile ###TITLE###

Default

blogroll Widget

Please look at the TypoScript configuration EXT:typo3_blog/widgets/blogroll/setup.txt

Typoscript:

includeLibs.tx_typo3blog_widget_blogroll = EXT:typo3_blog/widgets/blogroll/class.tx_typo3blog_widget_blogroll.php plugin.tx_typo3blog_pi1 {
  blogroll = RECORDS
  blogroll {
    source.cObject = USER
    source.cObject {
      userFunc = tx_typo3blog_widget_blogroll->getBlogRollIds
    }
    ...
  }
}
tables

Property

tables

Data type

string

Description

Name of table with blogroll records

Default

tx_typo3blog_blogroll

conf.tx_typo3blog_blogroll

Property

conf.tx_typo3blog_blogroll

Data type

COA

Description

Contain all fields and wraps to render the blogroll list

Example:

conf.tx_typo3blog_blogroll = COA
conf.tx_typo3blog_blogroll {
  10 = TEXT
  10 {
    field = name
    typolink {
      parameter.field = link
      title.field = title // name
    }
  }
  wrap = <li> | </li>
}

Default

stdWrap

Property

stdWrap

Data type

stdWrap

Description

Wrap for blogroll widget.

Example:

stdWrap {
  outerWrap = <div class="tx-typo3blog-pi1"> | </div>
  dataWrap =<h3> {LLL:EXT:typo3_blog/pi1/locallang.xml:tx_typo3blog_widget_blogroll.title}</h3>
  wrap = <ul> | </ul>
  required = 1
}

Default

calendar Widget

Please look at the TypoScript configuration EXT:typo3_blog/widgets/calendar/setup.txt and the template file EXT:typo3_blog/widgets/calendar/template.html

Typoscript:

plugin.tx_typo3blog_pi1 {
  calendar = USER
  calendar {
    includeLibs = EXT:typo3_blog/widgets/calendar/class.tx_typo3blog_widget_calendar.php
    userFunc = tx_typo3blog_widget_calendar->main
    ...
  }
}
jQueryNoConflict

Property

jQueryNoConflict

Data type

boolean

Description

Enable jQuery no conflict mode

Default

0

jsInFooter

Property

jsInFooter

Data type

boolean

Description

Add Javascript in footer

Default

0

jsMinify

Property

jsMinify

Data type

boolean

Description

Minify Javascript

Default

0

jsInline

Property

jsInline

Data type

boolean

Description

Add Javascript inline

Default

0

cssMinify

Property

cssMinify

Data type

boolean

Description

Minify CSS stylesheet

Default

0

templateFile

Property

templateFile

Data type

string

Description

Path to template file

Default

Value of {$plugin.tx_typo3blog_pi1.calendar.templateFile} constant

baseWrap

Property

baseWrap

Data type

array

Description

Wrap for the widget

Example:

baseWrap {
  outerWrap = <div class="tx-typo3blog-pi1"> | </div>
}

Default

datepicker

Property

datepicker

Data type

COA

Description

Add div element with class attribute to render the datpicker.

Example:

datepicker = COA
datepicker {
  10 = TEXT
  10.wrap = <div id="tx_typo3blog_widget_calendar">| </div>
}

Default

category Widget

Please look at the TypoScript configuration EXT:typo3_blog/widgets/category/setup.txt.

categoryList

Property

categoryList

Data type

HMENU

Description

Default HMENU to render a menu list with categories

Default

latestPosts Widget

Please look at the TypoScript configuration EXT:typo3_blog/widgets/latestposts/setup.txt and the template file EXT:typo3_blog/widgets/latestposts/template.html

Typoscript:

plugin.tx_typo3blog_pi1 {
  latestPosts = USER
  latestPosts {
    includeLibs = EXT:typo3_blog/widgets/latestposts/class.tx_typo3blog_widget_latestposts.php
    userFunc = tx_typo3blog_widget_latestposts->main
    ...
  }
}
itemsToDisplay

Property

itemsToDisplay

Data type

int

Description

Number of items to display in the latestPosts list

Default

Value of {$plugin.tx_typo3blog_pi1.latestPosts.itemsToDisplay} constant

templateFile

Property

templateFile

Data type

string

Description

Path to template file

Default

Value of {$plugin.tx_typo3blog_pi1.latestPosts.templateFile} constant

baseWrap

Property

baseWrap

Data type

array

Description

Wrap for the widget

Example:

baseWrap {
  outerWrap = <div class="tx-typo3blog-pi1"> | </div>
  dataWrap = <h3 class="title">{LLL:EXT:typo3_blog/pi1/locallang.xml:tx_typo3blog_widget_latestposts.title}</h3>
  wrap = <ul>|</ul>
}

Default

marker

Property

marker

Data type

array

Description

This is an array with all markers for the template. You can use all columns from table pages in this marker array. We have already set several columns in this TS.

Example:

marker {
  ...
  title = TEXT
  title {
    wrap = <li>|</li>
     field = title
     typolink {
       parameter.dataWrap = {field:uid}
       title.field = subtitle // title
     }
  }
  ...
}

Default

markerConfigs
additionalheader

Property

additionalheader

Data type

COA

Description

This field is parsed in widget and you can add other content on top of the widget. Set the marker in templatefile ###ADDITIONALHEADER###

Default

title

Property

title

Data type

TEXT

Description

Column title in table pages.

Set the marker in templatefile ###TITLE###

Default

additionalfooter

Property

additionalfooter

Data type

COA

Description

This field is parsed in widget and you can add other content on bottom of the widget. Set the marker in templatefile ###ADDITIONALFOOTER###

Default

Template Setup

This TypoScript configuration contains the sidebar with widgets.

lib.content_right = COA
lib.content_right {
  10 < plugin.tx_typo3blog_pi1.category
  20 < plugin.tx_typo3blog_pi1.calendar
  30 < plugin.tx_typo3blog_pi1.archive
  40 < plugin.tx_typo3blog_pi1.relatedPosts
  50 < plugin.tx_typo3blog_pi1.latestPosts
  60 < plugin.tx_typo3blog_pi1.latestComments
  70 < plugin.tx_typo3blog_pi1.blogroll
}
# Write the sidebar in page subparts marker CONTENT_RIGHT
page.10.subparts.CONTENT_RIGHT < lib.content_right

This Typoscript configuration is required to render the blogList and blogSingle widget in your template.

[PIDinRootline = {$plugin.tx_typo3blog_pi1.startPid}]
  page.10.subparts.CONTENT_NORMAL < plugin.tx_typo3blog_pi1.blogSingle
[end]

[userFunc = user_typo3blog_pageTypeIsCategory()]
  page.10.subparts.CONTENT_NORMAL < plugin.tx_typo3blog_pi1.blogList
  page.10.subparts.CONTENT_RIGHT.30 >
  page.10.subparts.CONTENT_RIGHT.50 >
[end]

[globalVar = TSFE:page|tx_typo3blog_exclude_page = 1]
  page.10.subparts.CONTENT_NORMAL < styles.content.get
[end]

Reference

Possible subsections: Reference (TypoScript)

Tutorial

See typo3_blog documentation http://www.unitlabs.ch/typo3-extensions

To-Do list

ChangeLog

1.0.0

Version

1.0.0

Changes

Add Typo3 multilanguage supportRemove the typo3blog sample Layout and remove widgets for comments, pagehits, tagcloud, form4_pages_rss, sexybookmarks and tt_content search

0.0.4

Version

0.0.4

Changes

Add manual

0.0.3

Version

0.0.3

Changes

0.0.2

Version

0.0.2

Changes

0.0.1

Version

0.0.1

Changes

img-2 19