blog.erikkothe.de rund um Magento, TYPO3, CSS, ….

Einzelne Checkbox als Pflichtfeld geht nicht.

Es gibt bis dato wohl Probleme mit Powermail und date2cal. Wenn man eine einzelne Checkbox hat, die dann auch noch ein Pflichtfeld ist, wird diese nicht übermittelt. Das ganze ist aber schnell umgangen und sollte helfen bis es ein Update der Extensions gibt. Einfach diese Zeile im Konstantenfeld des TS eintragen:

plugin.powermail.field.checkboxJS = 0
Share

Warum funktioniert scriptmerger bzw. minify nicht unter TYPO3 4.4?

Da ich immer darauf aus bin, die Seiten schlank und schnell zu halten, benutze ich verschiedene Extensions - eine davon ist scriptmerger. Aber unter TYPO3 4.4 geht diese Extension bzw. minify nicht auf anhieb. Das liegt an der Art wie TYPO3 nun die CSS und JS Dateien einbindet, diese bekommen standartmässig noch ein Parameter mitgegeben (?+Zahl). Dieses Problem ist aber schnell gelöst, einfach diese Zeile in der Datei typo3conf/localconf.php ergänzen:

$TYPO3_CONF_VARS['FE']['versionNumberInFilename'] = '';

Update: Unter http://forge.typo3.org/projects/extension-scriptmerger/repository findet man wie von Stefan Galinski angemerkt eine gefixte Version.

Share

Wie entferne ich das “border”-Attribute aus dem img-Tag?

Um einen sauberen XHTML Code zubekommen ist es zwingend erforderlich das das border-Attribute aus dem img-Tag rausgenommen wird. Das setzt TYPO3 leider standardmässig rein. Aber mit einer Zeile im Setupteil des Templates kann man diesen Fehler beheben:


config.disableImgBorderAttr = 1

Nun kann weiter validiert werden ;)

Share

Wie bekomme ich unter eID Zugriff auf cObj?

Viele Forenbeiträge musste ich durchforsten um eine passende Lösung dafür zu finden. An dieser Stelle vielen Dank an die fleissigen Schreiber in diversen Foren!

Bei meinem speziellen Problem wollte ich Bilder passend zuschneiden. Dafür wollte ich die Funktion "getImgResource" benutzen. Um diese Funktion aber zur Verfügung zu haben, muss einiges in dem Skript hinzugefügt werden. An erster Stelle steht, die passenden Dateien zu laden:

require_once(PATH_t3lib . 'class.t3lib_page.php');
require_once(PATH_tslib . 'class.tslib_pibase.php');
require_once(PATH_tslib . 'class.tslib_content.php');
require_once(PATH_t3lib . 'class.t3lib_stdgraphic.php');
require_once(PATH_tslib . 'class.tslib_gifbuilder.php');

Danach müssen die erforderlichen Instanzen erstellt werden:

$classTemp = t3lib_div::makeInstanceClassName('tslib_fe');
$GLOBALS['TSFE'] = new $classTemp($TYPO3_CONF_VARS, $page, 0, true);
$GLOBALS['TSFE']->tmpl = t3lib_div::makeInstance('t3lib_tstemplate');
$GLOBALS['TSFE']->tmpl->init();
$GLOBALS['TSFE']->sys_page = t3lib_div::makeInstance('t3lib_pageSelect');
$GLOBALS['TSFE']->rootLine = $GLOBALS['TSFE']->sys_page->getRootLine(intval(4));
$GLOBALS['TSFE']->getConfigArray();

Der wichtigste Schritt, das cObj erstellen:

$mycObj = new tslib_cObj();

Nun hat man unter "$mycObj" Zugriff auf deren Methoden. Wie z.B. "$mycObj->getImgResource()"

Wenn jemand eine kürzere Lösung parat hat? Beiträge sind gerne erwünscht!

Share

Probleme mit Submenü bei TypoGento?

Heute bin ich über das Problem gestolpert das bei TypoGento das Menü auf der TYPO3 Seite nicht richtig angezeigt wird. Wenn man auf ein Produkt klickt, dann wird nur noch die oberste Ebene des Menüs angezeigt. Nach ein wenig Analyse der URLs die erzeugt werden und Nachforschungen im Quelltext habe ich eine Lösung dafür gefunden. Sie ist ziemlich simpel, da nur die Parameter in der URL nicht passend ausgewertet werden. Man muss nur in der Datei class.tx_fbmagento_navigation.php im Ordner EXT:fb_magento/lib die Funktion _parseNodes anpassen.

Alt:

protected function _parseNodes($nodes) {
    	foreach($nodes as $node) {
			if ($node->getId() ==  intval($this->_get['shop']['id']) || ($node->getChildren() && $this->_parseNodes($node->getChildren()))) {
    				$node->setAct(true);
    				return true;
    }
}

Neu:

protected function _parseNodes($nodes) {
    	foreach($nodes as $node) {
    		if(isset($this->_get['shop']['category'])){
			if ($node->getId() ==  intval($this->_get['shop']['category']) || ($node->getChildren() && $this->_parseNodes($node->getChildren()))) {
    				$node->setAct(true);
    				return true;
	    		}
		}else{
			if ($node->getId() ==  intval($this->_get['shop']['id']) || ($node->getChildren() && $this->_parseNodes($node->getChildren()))) {
    				$node->setAct(true);
    				return true;
	    		}
		}
    	}
    }

Share

Wie leere ich den Realurl Pfad Cache?

Ein einfacher Weg ohne in der Datenbank herumzuspielen den RealUrl - Pfadcache zu löschen, ist einfach in die localconf.php diese drei Zeilen anfügen:

$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urldecodecache'] = 'tx_realurl_urldecodecache';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urlencodecache'] = 'tx_realurl_urlencodecache';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_pathcache'] = 'tx_realurl_pathcache';

Jetzt kann man bequem über den Frontend-Cache auch diesen Cache löschen.

Share