The default controller for extension not found.

Some time we get the error like
“The default controller for extension “extname” and plugin “Calendar” can not be determined.
Please check for TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() in your ext_localconf.php”.

Even we have all the correct configurations in ext_localconf.php and ext_tables.php

This is what we have in ext_localconf.php
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
‘Vendor.’ . $_EXTKEY,
‘Calendar’,
array(
‘Calendar’ => ‘list, show’,
),
array(
‘Calendar’ => ”,

)
);
?>

This is what we have in ext_tables.php
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
$_EXTKEY,
‘Calendar For Dates’,
‘Calendar’
);

All the configurations are perfect but still we get the error, why?

Yes there is the reason for it. Suppose we have more than one extension, or more that one plug in in the same extension.
Other extensions or plugins might have had flexforms, and we have added that plugin and configured the flexform.
Now for the same tt_content element we have selected the plugin “Calendar”, and when we select this plugin we dont see any flexform values of
previous plugins.
But in Databse the table tt_content still stores the flexform values of old plug in and this leades to error.

Solution :
1) Go to databse and delete the flexform values for the perticular tt_content element.
or
2) Delete the old content element and add the new tt_content element.

Color space in Typo3 4.7 with Image magic 6.7.5 or higher

If we are using the tyop3 version 4.7 or less and the Image magic is upgraded to the latest version (>= 6.7.5)
then we need to set the colorspace to sRGB in install tool and need to patch the core file to make it work properly.

Find the file ‘class.t3lib_stdgraphic.php‘ in t3lib.
add the following lines in order

add
protected $IMversion = 0; // ImageMagick Version
after the line
var $nativeCharset = ”; // Is set to the native character set of the input strings.

in similar way

add
else {
$cmd = t3lib_div::imageMagickCommand(‘identify’,’-version | grep Version:’);
$ret = explode(‘ ‘,t3lib_utility_Command::exec($cmd));
$ret = explode(‘.’,str_replace(‘-‘,’.’,$ret[2]));
$this->IMversion = $ret[0].str_pad($ret[1],4,’0′,STR_PAD_LEFT).str_pad($ret[2],4,’0′,STR_PAD_LEFT).str_pad($ret[3],4,’0′,STR_PAD_LEFT);
}
after
if (!$gfxConf[‘im’]) {
$this->NO_IMAGE_MAGICK = 1;
}

Replace the line
$this->cmds[‘jpg’] = $this->cmds[‘jpeg’] = ‘-colorspace RGB -sharpen 50 -quality ‘ . $this->jpegQuality;
after
$this->jpegQuality = t3lib_utility_Math::forceIntegerInRange($gfxConf[‘jpg_quality’], 10, 100, 75);
with
$this->cmds[‘jpg’] = $this->cmds[‘jpeg’] = ‘-colorspace ‘ . ( $this->IMversion >= 6000700050005 ? ‘s’ : ” ) . ‘RGB -sharpen 50 -quality ‘ . $this->jpegQuality;

Replace the line
$this->cmds[‘jpg’] = $this->cmds[‘jpeg’] = ‘-colorspace RGB -quality ‘ . $this->jpegQuality;
after
$this->NO_IM_EFFECTS = 1;
with
$this->cmds[‘jpg’] = $this->cmds[‘jpeg’] = ‘-colorspace ‘ . ( $this->IMversion >= 6000700050005 ? ‘s’ : ” ) . ‘RGB -quality ‘ . $this->jpegQuality;
Replace the line
$this->cmds[‘jpg’] = $this->cmds[‘jpeg’] = ‘-colorspace RGB -quality ‘ . intval($gfxConf[‘jpg_quality’]) . $this->v5_sharpen(10);
after
$this->V5_EFFECTS = 1;
if ($gfxConf[‘im_v5effects’] > 0) {
with
$this->cmds[‘jpg’] = $this->cmds[‘jpeg’] = ‘-colorspace ‘ . ( $this->IMversion >= 6000700050005 ? ‘s’ : ” ) . ‘RGB -quality ‘ . intval($gfxConf[‘jpg_quality’]) . $this->v5_sharpen(10);

Adding the Icon for Menu from page media property

From typo3 6.2.x, please use the following code  to generate the icon for menus from its page’s media property.

lib.menu = HMENU
lib.menu {
entryLevel = 1
expAll = 1
1 = TMENU
1{
wrap = <ul class=”leftmenu”> | </ul>
expAll = 1
NO = 1
NO{
before.wrap = <li>|
stdWrap.cObject = COA
stdWrap.cObject {
10 = FILES
10 {
# Get the images related to the current page
references {
table = pages
fieldName = media
}
# Render each image and wrap it as appropriate
renderObj = TEXT
renderObj {
typolink {
parameter.data = file:current:publicUrl
forceAbsoluteUrl = 1
returnLast = url
}
wrap = |,
}
stdWrap {
# Take only the first image if several are defined
listNum = 0
# Use default image if none is available
ifEmpty.cObject = TEXT
ifEmpty.cObject.typolink {
parameter = path_to_images/logo.png
forceAbsoluteUrl = 1
returnLast = url
}
wrap = <img src=”|” title=”image” />
}
}

20 = TEXT
20.field = title
20.wrap = <span>|</span>
}
after.wrap = |</li>
}
ACT < .NO
ACT.before.wrap = <li class=”active”> |

CUR < .NO
CUR.before.wrap = <li class=”active”> |
}
}

Displaying the actual filename when the same file is uploaded multiple times

Hi!

In Typo3 when we upload the same file (i.e. file with the same name) multiple times in a page, The same name is displayed on the page but the link to the files is diferrent as the file is renamed when it is uploaded.

For example

Say we upload a file name test.txt two times, the file is saved in the uploaded folder as

test.txt

test_01.txt

but on the page it displays as

test.txt (links to test.txt )

test.txt (links to test_01.txt )

So in case for the second time if we want to display the real file name to which it is linked,

i.e. test.txt (links to test_01.txt ) as test_01.txt (links to test_01.txt )

Add the following line in your SETUP CODE

tt_content.uploads.20.linkProc.removePrependedNumbers = 0

This will display the full file name…

Display the value one object only when the other object value is faslse

Hello!

In some cases we want to display the value of object only when the value of the other object is false or null. For this to work we use the typoscript cobject with the negate option.

The Following code depicts how to display the PREVIOUS and NEXT buttons in the typoscript prev/next menu. When using the prev/next menu code the prev button does not appear on the first page and next button on the last. But for some purpose we need to have these buttons but without the link.

The following code helps to solve this problem.

lib.prevNext = COA
lib.prevNext{
1 = TEXT
1.value = PREVIOUS
1.stdWrap.if.negate =1
1.stdWrap.if.isTrue.cObject = HMENU
1.stdWrap.if.isTrue.cObject {
special = browse
special {
items = prev
items.prevnextToSection = 1
prev.fields.title = PREVIOUS
}

1 = TMENU
1.NO {
linkWrap = <div class=”button”> | </div>
stdWrap.htmlSpecialChars = 1
}
}

2 = HMENU
2{
special = browse
special {
items = prev|next
items.prevnextToSection = 1
prev.fields.title = PREVIOUS
next.fields.title = NEXT
}

1 = TMENU
1.NO {
linkWrap = <div class=”button”> | </div>
stdWrap.htmlSpecialChars = 1
}
}

3 = TEXT
3.value = NEXT
3.stdWrap.if.negate =1
3.stdWrap.if.isTrue.cObject = HMENU
3.stdWrap.if.isTrue.cObject {
special = browse
special {
items = next
items.prevnextToSection = 1
prev.fields.title = PREVIOUS
}

1 = TMENU
1.NO {
linkWrap = <div class=”button”> | </div>
stdWrap.htmlSpecialChars = 1
}
}
}