Month: September 2007

tt_address

Nachdem ich gestern über erste Opfer sprach, wurde es heute noch schlimmer. Ich habe versucht die Erweiterung direct_mail zum Laufen zu bringen aber bei der Anmeldung kam unsere bekannte Fehlermeldung:

[php]Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/typo3/typo3_src-4.1/t3lib/class.t3lib_db.php on line 796
[/php]

Nachdem ich im Internet nichts gefunden hatte bin ich nochmals meine Extensions durchgegangen und bei der Erweiterung tt_address war zu lesen, das er die Datenbank updaten wollte

[code]
ALTER TABLE tt_address ADD uid int(11) unsigned NOT NULL auto_increment;
[/code]

aber dies schien irgendwie nicht zu funktionieren bzw. meldet MySql folgendes

[code]
#1075 – Incorrect table definition; there can be only one auto column and it must be defined as a key
[/code]

Also habe ich mir die Erweiterung phpmyadmin heruntergeladen, und habe in die Tabelle tt_address ein neues Feld hinzugefügt:

[code]
ALTER TABLE `tt_address` ADD `uid` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;
[/code]

Um solche Fehler zufünftig besser zu finden, hilft außerdem folgender Wert in der localcon.php im Typo3conf Verzeichnis

[php]
$TYPO3_CONF_VARS[‘SYS’][‘sqlDebug’] = 1;
[/php]

Dadurch werden im Front- und Backend vollständige SQL Ausgaben gemacht.

[random_content group_id=”211″ num_posts=”1″]

Typo3: Warning: mysql_fetch_assoc()

Während meiner Extensionschlacht habe ich mittlerweile das erste Opfer zu beklagen. Jedesmal wenn ich eine Seite lösche, erscheint eine Fehlermeldung

[php]
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/local/typo3_src-4.1.2/t3lib/class.t3lib_db.php on line 796
[/php]

Da es eine Develop Umgebung ist, kann man es verkraften, hoffentlich sind keine weiteren Funktionen betroffen. Wie gesagt, die Seiten lassen sich löschen aber es erscheint eine Fehlermeldung. Bei den vielen Funktionen die Typo3 hat, hat man keine Chance sowas zu verhindern. Weil selbst bei einer Develop Umgebung kann man schlecht immer alles testen.

Update:
Wer die Erweiterung tt_address installiert hat, sollte sich diesen Beitrag anschauen tt_address

[random_content group_id=”211″ num_posts=”1″]

mm_forum Designvorlage / Stylesheet

Die Extension mm_forum befindet sich zwar noch im Beta Status, aber weil Typo3.net darauf basiert, vertraue ich jetzt einfach mal den Entwicklern. Fehlermeldungen sieht man eigntlich nur beim Einrichten, weil manchmal einfach noch IF Abfragen fehlen und so natürlich die Prüfung nach dem Config File fehlschlägt, weil man noch nichts konfiguriert hat.

Die Anleitung ist im Moment auch nur als Open Office File verfügbar und wenn man sich die Mühe macht, sich Open Office zu installieren, falls man es noch nicht hat, wird man mit tollen Screenshots belohnt. Wenn man dann dagegen sein eigenes Forum anschaut ist man etwas enttäuscht. Das liegt dann einfach daran, weil das Stylesheet nicht richtig eingebunden wird.

Dies kann man einfach beheben in dem man ins Setup folgenden Code einfügt
[code]
seite.includeCSS.file2 = typo3conf/ext/mm_forum/res/tmpl/default/css/mm_forum.css
[/code]

Danach erstrahlt das Forum in neuem Glanz.

[random_content group_id=”211″ num_posts=”1″]

cal – Warning: gmmktime() expects parameter 1 to be long

Zuerst wollte ich mich schon über die Extension cal freuen. Sie schien richtig gut programmiert zu sein und die Anleitung war dazu auch noch sehr gut aufgebaut.
Nachdem ich aber die Suche eingebaut hatte, bekam ich zwei tolle Fehlermeldungen
[php]
Warning: gmmktime() expects parameter 1 to be long, string given in /home/www/host/htdocs/typo3conf/ext/cal/controller/class.tx_cal_controller.php on line 1647

Warning: gmmktime() expects parameter 1 to be long, string given in /home/www/host/htdocs/typo3conf/ext/cal/controller/class.tx_cal_controller.php on line 1652
[/php]

Nachdem sich die Fehlermeldung durch ändern der Einstellungen im Plugin nicht beheben ließ, habe ich mich also im Quellcode zu der Zeile 1647 bewegt.

[php]
/* Get the min start time as a timestamp */
$minStarttime=intval($this->conf[‘view.’][‘search.’][‘startRange’]);
if($minStarttime<19700102) $minStarttime=19700102;
$minStarttime = gmmktime(‘Ymd’, $minStarttime);
[/php]

Durch die Verwendung der Variable $minStarttime bzw. auch die Angabe von Ymd gehe ich mal davon aus, das die Programmierer eigentlich date() verwenden wollten. Also habe ich den Code wie folgt abgeändert.

[php]
Zeile: 1647
$minStarttime = date(‘Ymd’, $minStarttime);

Zeile: 1652
$maxEndtime = date(‘Ymd’, $maxEndtime);
[/php]

[random_content group_id=”211″ num_posts=”1″]

Captcha Library (captcha) – Kein Spamschutz Bild

Nach der Installtion von der captcha Extension von Kasper Skrhj wurde mir erstmal kein Bild angezeigt. Beim aufrufen der Bild Url http://www.Meine Domain.de/typo3conf/ext/captcha/captcha/captcha.php, die man im Quellcode nachlesen kann, bekam ich folgende Meldung:
[php]Fatal error: Call to undefined function imagerotate() in /home/www/host/htdocs/typo3conf/ext/captcha/captcha/captcha.php on line 78[/php]

Die Funktion imagerotate() ist, je nach PHP Installtion, nicht immer verfügbar. Bei PHP.net/imagerotate finde sich dazu folgende Anmerkung:

Diese Funktion steht nur zur Verfügung, wenn PHP mit der GD Bibliothek übersetzt wurde, die mit PHP zusammen erhältlich ist.

Beim wem dies nicht so ist, der hat ein kleines Problem. In den Kommentaren gibt es dafür zwar einen Workaround
[php]
function imageRotate($src_img, $angle) {

$src_x = imagesx($src_img);
$src_y = imagesy($src_img);
if ($angle == 90 || $angle == -910) {
$dest_x = $src_y;
$dest_y = $src_x;
} else {
$dest_x = $src_x;
$dest_y = $src_y;
}

$rotate=imagecreatetruecolor($dest_x,$dest_y);
imagealphablending($rotate, false);

switch ($angle) {
case 90:
for ($y = 0; $y < ($src_y); $y++) {
for ($x = 0; $x < ($src_x); $x++) {
$color = imagecolorat($src_img, $x, $y);
imagesetpixel($rotate, $dest_x – $y – 1, $x, $color);
}
}
break;
case -90:
for ($y = 0; $y < ($src_y); $y++) {
for ($x = 0; $x < ($src_x); $x++) {
$color = imagecolorat($src_img, $x, $y);
imagesetpixel($rotate, $y, $dest_y – $x – 1, $color);
}
}
break;
case 180:
for ($y = 0; $y < ($src_y); $y++) {
for ($x = 0; $x < ($src_x); $x++) {
$color = imagecolorat($src_img, $x, $y);
imagesetpixel($rotate, $dest_x – $x – 1, $dest_y – $y – 1, $color);
}
}
break;
default: $rotate = $src_img;
};
return $rotate;
}
[/php]

Dieser geht jedoch leider nur für 90 Grad Winkel. Wer kleinere Winkel haben möchte, muß auf ImageMagick zurückgreifen. Da dies eigentlich sowieso verfügbar sein muss, bei einer Typo3 Installation, finde ich es sehr schade, dass der Entwickler dies über PHP lösen wollte.

Wer auf das Rotieren verzichten kann braucht einfach in der Datei captcha.php Zeile 78 auskommentieren und folgendes einfügen.
[php]//$rot = imagerotate($tmpi, $da, $back);
$rot = $tmpi;[/php]

[random_content group_id=”211″ num_posts=”1″]