Archive for the ‘ GENERAL ’ Category

TYPO3 6 und frühere Versionen – Angepasstes TCA für unterschiedliche TYPO3-Versionen

Bezogen auf diese Post, wo wir ein Problem mit dem t3editor und dem TCA gelöst haben, tritt nun ein neues Problem auf.

Der t3editor in unserer Extension funktioniert nun super mit TYPO3 6 – aber in TYPO3 4.x haben wir die Funktionalität leider zerstört.

Aber mit einem kleinen ‚TCA-Hack‘ können wir das Problem beheben. Füge einfach den folgenden PHP-Code hinter dem TCA ein in dem der t3editor verwendet wird, etwa so:

if(isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['compat_version'])) {
  if((float)$GLOBALS['TYPO3_CONF_VARS']['SYS']['compat_version']<6) {
      $TCA['tx_ftm_domain_model_templatemarker']['columns']['marker_typo_script']['config']['wizards']['t3editorTypoScript']['userFunc'] = 
        'EXT:t3editor/classes/class.tx_t3editor_tceforms_wizard.php:tx_t3editor_tceforms_wizard->main';
  }
}

In der ersten Zeile stellen wir sicher, das die Compat-Version definiert ist. Danach prüfen wir ob die TYPO3-Version kleiner 6 ist. Wenn dies der Fall ist, überschreiben wir das TCA-Feld in dem die userFunc definiert wurde und machen das Classes-C zu einem kleinen Buchstaben.

Wenn Du Optimierungen oder Ideen für Erweiterungen hast, schreibe gerne einen Kommentar zu diesem Post 🙂

TYPO3 6 – Wie man eine Extension von Hand deinstalliert

Oft passiert es, das eine neue Extension im TYPO3 6 installiert wird, aber die Extension ist noch nicht kompatibel mit der neuen TYPO3 version.
Im schlechtesten Fall wirft TYPO3 bei jedem Aufruf einen 500 Internal Server Error – und jetzt?

Kein Problem, deinstalliere die Extension einfach per Hand in ein paar Schritten (in diesem Fall ist es die gridelements v1.4.0):

1. Öffne die LocalConfiguration.php Datei welche im typo3conf-Verzeichnis liegt. Hier müssen die folgenden Zeilen entfernt werden:

	'EXT' => array(
		'extConf' => array(
			... -> diesen gridelements Eintrag
			'gridelements' => 'a:1:{s:20:"additionalStylesheet";s:0:"";}',
			... <- ende
	'EXT' => array(
		'extListArray' => array(
			... -> und den zweiten gridelements Eintrag
			'gridelements',
			... <- ende

2. Im nächsten Schritt müssen die gecachten Konfigurations-Dateien gelöscht werden. Um dies zu tun, kann man in TYPO3 6 einfach das Cache-Verzeichnis löschen, welches im typo3temp-Verzeichnis liegt.
3. Schließlich bist Du in der Lage die Extension einfach über den Extension-Manager zu entfernen.

TYPO3 6 mit integriertem t3editor in eigener Extbase-Extension

In einem aktuellen Projekt von mir, dem Fluid Template Manager, benutze ich den t3editor im entwickelten Backend Modul. Danke dem großartigen Post vom typo3blogger war es leicht diesen in TYPO3 4.7.x zu integrieren.
Nur, bei der Vorbereitung der ftm Extension für TYPO3 6.1 passierte ein kleiner Fehler. Die Seite mit dem t3editor wird wegen einem 500er Internal Server Error nicht geladen.

Die Lösung ist einfach.
Laut Konvention der ExtBase-Extensions muss der erste Buchstabe des classes-Verzeichnisses großgeschrieben werden. Das korrekte TCA-Snippet sieht nun wie folgt aus:

'template_code' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:ftm/Resources/Private/Language/locallang_db.xml:tx_ftm_domain_model_templatefluid.template_code',
    'config' => array(
        'type' => 'text',
        'cols' => 112,
        'rows' => 36,
        'eval' => 'trim',
        'wizards' => array(
            't3editorHtml' => array(
                'enableByTypeConfig' => 1,
                'type' => 'userFunc',
                'userFunc' => 'EXT:t3editor/Classes/class.tx_t3editor_tceforms_wizard.php:tx_t3editor_tceforms_wizard->main',
                'params' => array(
                    'format' => 'html',
                ),
            ),
        ),
    ),
),

Nebenbei fand ich auch heraus, das die cols und rows nun auch funktionieren wie sie sollten. 🙂

Notiz: Bezogen auf dieses Problem gibt es hier noch einen weiteren Post, der die Integration in unterschiedlichen TYPO3-Versionen behandelt.

Die verwendeted Typo3 Storage-ID in einer ExtBase Controller-Action verwenden

Um die Storage-ID in einer ExtBase-Extension sauber auslesen zu können müssen wir unsere setup.txt TypoScript Datei ein wenig erweitern, und die storagePid auch im settings-Zweig verfügbar machen:

plugin.tx_yourext {
    persistence {
        storagePid = {$plugin.tx_yourext.persistence.storagePid}
    }
    settings {
        storagePid = {$plugin.tx_yourext.persistence.storagePid}
    }
}

Einfach nur das tx_yourext durch den Extension-Key deiner Extension ersetzen.
Nach dem Speichern und Einspiele in Typo3, nicht vergessen den Typo3-Cache zu leeren 😉

Danach kann man einfach innerhalb einer ExtBase Controller-Action mit der folgenden Zeile darauf zugreifen:

$this->settings['storagePid']

Nun sollte mit die Storage-ID zum Eimsatz bereit sein.

Sollte die Storage-ID leer sein, hast Du vielleicht vergessen sie im Typo3 entsprechend zu setzen 😉

Meine Lieblings 500 Internal Server Error Seite ;)

Meine Lieblings 500 Internal Server Error Seite 😉

After starting Audacious the Player is not visible

Since some time, always when i started the Audacious-Player under Ubuntu, the Player isn’t visible 🙁
The music plays, but no Player is shown..
 
After a little research i found a shell-action to get the Player back:

audtool --mainwin-show on

 
If you still see no Audacious-Player, you can try to press ‚Alt’+’M‘ to toggle the main window.
 
Now, i’m happy to have my Player back.. But something with my color-Theme went wrong. The complete Player is dyed red.
But a solution for this problem is also find quickly.
Open the preferences and navigate to the Appearance-Tab. In there you will find color preferences. I put each color to be at its maximum.


 
Hope this helps some guys! 😉

Change line-height in OpenLaszlo Flash/SWF10 Runtime

When you’re using OpenLaszlo by compiling to flash/swf10 Flash, the lineheight attribute within the text class is readonly. That’s sometimes problematic, if you getting strict specifications from your designer for create a website or GUI (graphic user interface). The designer wants that you do implement all the typographic specification that he gives you, pixel by pixel.

For this case, i’ve searched for a workaround to change the lineheight within text fields.
The result is the following class:

<?xml version="1.0" encoding="UTF-8" ?>
<library>
	<class name="lineHeightText" extends="text" multiline="true">
		
		<switch>
			<unless property="$as3">
				<method name="setLineHeight" args="newLineHeight:Number =0">
				<![CDATA[
					Debug.error("setLineHeight is not supported");
				]]>
				</method>				
			</unless>
		    <otherwise>
				<passthrough>
					import flash.text.*;
				</passthrough>
				
				<method name="setLineHeight" args="newLineHeight:Number =0, refreshHeight:Boolean =true">
				<![CDATA[
				
					// get an reference of this text
					var test = this.getDisplayObject();
					
					// set new line-height
					var format:TextFormat = new TextFormat();
					format.leading = newLineHeight-test.lineheight;
					
					// set line-height in the sprites
					test.lineheight = newLineHeight;
										
					// make this textfield bigger
					if(refreshHeight) this.setAttribute("height", newLineHeight*test.textfield.numLines);
					
					// set the new format
					test.textfield.setTextFormat(format);					
					test.textfield.defaultTextFormat = format;
								
				]]>
				</method>
				
			</otherwise>
		</switch>
		
	</class>
</library>

The usage is very simple:

<?xml version="1.0" encoding="UTF-8" ?>
<canvas name="lineHeight" width="100%" height="100%">
		
	<include href="./lineHeightText.lzx" />
	
	<lineHeightText fontsize="11" fgcolor="#000000" bgcolor="#abcdef" x="10" y="10" name="textarea1" width="200" selectable="true">
		[start]Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.[end]
	</lineHeightText>
	
	<lineHeightText fontsize="11" fgcolor="#000000" bgcolor="#abcdef" x="220" y="10" name="textarea2" width="200" selectable="true">
		<handler name="oninit">
		<![CDATA[
			this.setLineHeight(20);
		]]>
		</handler>
		[start]Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.[end]
	</lineHeightText>	

</canvas>

I hope this can help somebody.
If you find some errors, or have some questions or tips, write me.. 😉

Sourcecode: OpenLaszlo - LineHeight.zip (891)

ISCOPE in the OpenLaszlo Showcase

I’m very happy that our company ISCOPE GmbH now also is list in the OpenLaszlo Showcase 🙂
Check it out!

That’s it…

I say hello world! 😉

My first own blog entry, and henceforth i will torture you all with my small fantasy english 😀