Posted by & filed under TYPO3.

There are numerous hooks added, which improve TYPO3’s extensibility. Here is a list:

getSingleField_beforeRender

In function getSingleField_SW, called before rendering a field. Class should be added to $TYPO3_CONF_VARS[‘SC_OPTIONS’][‘t3lib/class.t3lib_tceforms.php’][‘getSingleFieldClass’] array, and function name should be getSingleField_beforeRender. It can be used for custom TCA processing prior to the field being rendered.

tt_content_drawItem

The function tt_content_drawItem of tx_cms_layout now has a new hook that can be used to define preview options for custom CTypes. The hook is declared in $GLOBALS[‘TYPO3_CONF_VARS’][‘SC_OPTIONS’][‘cms/layout/class.tx_cms_layout.php’][‘tt_content_drawItem_default’]

ClearCacheMenu

You can insert items into the clear cache menu by using a hook implementing a backend_cacheActionsHook interface. The hook is declared in $GLOBALS[‘TYPO3_CONF_VARS’][‘SC_OPTIONS’][‘additionalBackendItems’][‘cacheActions’].

preprocessRequest

This hook is declared in index_ts.php, and can be used to determine processing strategy based on the request. For example, it can be used to deliver a static page if no user is logged in, but forward all requests with logged in users to TYPO3 for further processing. The hook is declared in $GLOBALS[‘TYPO3_CONF_VARS’][‘SC_OPTIONS’][‘tslib/index_ts.php’][‘preprocessRequest’]

makeQueryArray

New hook in makeQueryArray function of class.db_list.inc allows modification of the query parts that are returned. The hook is declared in $GLOBALS[‘TYPO3_CONF_VARS’] [‘SC_OPTIONS’][‘typo3/class.db_list.inc’][‘makeQueryArray’]

Docheader buttons

Extra buttons can now be added to the docheader using a hook, instead of XCLASS. Hook is declared in $GLOBALS[‘TYPO3_CONF_VARS’][‘SC_OPTIONS’][‘typo3/template.php’][‘docHeaderButtonsHook’]

wrapTtile

New hook was added to wrapTitle function of the class.webPageTree.php. It can be used to modify the page title in the page tree upon rendering. Hook is defined in $GLOBALS[‘TYPO3_CONF_VARS’][‘SC_OPTIONS’][‘typo3/class.webpagetree.php’][‘pageTitleOverlay’]

debug_typo3PrintError

The hook allows to modify the error message before it is sent to the user. Its is declared in $GLOBALS[‘TYPO3_CONF_VARS’][‘SC_OPTIONS’][‘t3lib/class.t3lib_timetrack.php’][‘debug_typo3PrintError’]

getPage

A hook in getPage function of class t3lib_page allows to manipulate the page UID before the page row is pulled. Hook is declared in $GLOBALS[‘TYPO3_CONF_VARS’][‘SC_OPTIONS’][‘t3lib/class.t3lib_page.php’][‘getPage’]

getImgResource

This hook could be used to post process image using options not present in standard TYPO3 installation. Hook is declared in $GLOBALS[‘TYPO3_CONF_VARS’][‘SC_OPTIONS’][‘tslib/class.tslib_content.php’][‘getImgResource’] and must implement tslib_cObj_getImgResourceHook interface.

More info:
RFC #8890: Feature: hook in function “getSingleField_SW” before rendering of single fields in tceforms.
http://bugs.typo3.org/view.php?id=8890
RFC: Feature Request #9078: Integrate hook in page module to render preview of records with own CType
http://bugs.typo3.org/view.php?id=9078
RFC: #9885: Add Hook to ClearCacheMenu
http://bugs.typo3.org/view.php?id=9885
RFC Feature #10869: Integrate hook to pre-process the frontend rendering
http://bugs.typo3.org/view.php?id=10869
RFC: #4361 – hook request in class.db_list.inc
http://bugs.typo3.org/view.php?id=4361
RFC: #10947: It’s not possible to add buttons to docheader
http://bugs.typo3.org/view.php?id=10947
RFC #11207 Hook Request in typo3/class.webPageTree.php -> wrapTitle
http://bugs.typo3.org/view.php?id=11207
RFC: #8601: Hook for debug_typo3PrintError
http://bugs.typo3.org/view.php?id=8601
RFC #11431: Hook request for manipulating the pageID in getPage
http://bugs.typo3.org/view.php?id=11431
RFC Feature #9292: Integrate hook at the end of tslib_cObj::getImgResource
http://bugs.typo3.org/view.php?id=9292

Posted by & filed under TYPO3.

A new setting is available in the install tool – dbClientCompress. When enabled, it compresses the communication with the MySQL database, saving network bandwidth, but costing CPU time. This is a useful setting for cases when MySQL and PHP application are on different hosts.

More info:

RFC: #7059: Improve database performance for external database host
http://bugs.typo3.org/view.php?id=7059
http://www.mysqlperformanceblog.com/2007/12/20/large-result-sets-vs-compression-protocol/

Posted by & filed under TYPO3.

TYPO3 4.3 is almost here. As I am writing this, beta numero dos is about to be released for testing. Many users, administrators, and developers are wondering what is new, what has changed, and what they can expect from the upgrade.

To help you out, I will do a series of blog posts in the next few weeks to describe the new features, that may otherwise be overlooked. These posts will not cover major features, such as extbase, fluid, advanced frontend editing, mass file uploader, or even the new multimedia content element, which would require a small book by themselves. Instead I will cover small and large changes that weren’t important enough to be included in the NEWS.txt list, or ones that will impact any existing installation. Make sure to subscribe to the RSS feed so that you don’t miss any. And if you think I missed something important – let me know! TYPO3 is all about inspiring people to share!

Lastly, there has been a lot of work that has been put into this release, and some exiting new features are in it. Big thanks goes out to everyone who has worked on making it happen!

Posted by & filed under Programming.

NuSphere PHPEd IDE has been upgraded to 5.9. New release introduces full support for PHP 5.3, including the debugger (available for  awhile now), and syntax support for one fo the major PHP 5.3 features – namespaces.

Complete list of features:

Posted by & filed under Web 2.0.

I recently read an article in Business Week, describing the birth of “Real-Time Web”, and a flood of investments into the area. The concept is pioneered by Facebook and Twitter, where the action that happens “now”.

Today I heard about PubSubHubbub from Google (try pronouncing it, I’ll wait). It allows you to use a hub for pushing updates in real-time. The protocol is based on Atom and RSS, and is completely open.

Right now there are no good frameworks for real-time web, based on events communicated from the server to the client, rather than the other way around. PubSubHubbub is a good intermediary between the old concepts of dynamic web and the real-time web. I expect to see more general purpose frameworks to appear that support real-time web concepts to appear soon as the paradigm shifts in that direction.