Re: Flexslider_XH
Posted: Fri Jun 27, 2014 12:50 pm
Funktioniert, vielen Dank !
komisch, in der Vorversion hatte ich die Probleme auch, dachte aber, das behoben zu haben. Bei mir hier tritt das nicht mehr auf. Kann das hier nicht reproduzieren.cmb wrote:Zunächst hatte ich die Bilder direkt in userfiles/images/ liegen. Dann schlug aber das Speichern des verkleinerten Bildes immer fehl. Das liegt wohl an simpl_SaveImages(), wo davon ausgegangen wird, dass der Dateiname immer einen Slash enthält.
Code: Select all
$x = strrpos($imglist['image1'][$key],'/');
$x = $x? $x++ : '';
$folder = substr($imglist['image1'][$key],0,$x);
$oldname = substr($imglist['image1'][$key],$x);
$imglist['image1'][$key]=$folder.$newname;
simpl_NewImage($folder,$oldname,$newname,$width,$height);
Code: Select all
$x = strrpos($imglist['image1'][$key],'/');
$folder = $x? substr($imglist['image1'][$key],0,$x++) : '';
$oldname = $x? substr($imglist['image1'][$key],$x++) : $imglist['image1'][$key];
$imglist['image1'][$key]=$folder.$newname;
simpl_NewImage($folder,$oldname,$newname,$width,$height);
Ich habe gerade noch mal mit einem frischen XH 1.6.2 probiert, und das selbe Ergebnis wie zuvor. Ich habe also ein Bild Tulips.jpg in userfiles/images/, und will es auf 512x384 px verkleinern. Dann wird der Dateiname als Tulips_512x384.jpg vorbelegt. Beim Speichern erscheint die Meldung:svasti wrote:komisch, in der Vorversion hatte ich die Probleme auch, dachte aber, das behoben zu haben. Bei mir hier tritt das nicht mehr auf. Kann das hier nicht reproduzieren.
Der Debug-Modus zeigt als erste Warnung:Undefined file
./userfiles/images/
Die erste Meldung kommt daher, dass $x hier '' ist, aber von substr() eine Zahl als 3. Parameter erwartet wird; jedenfalls seit PHP 5.3, siehe http://3v4l.org/Zju9q. Wenn ich Zeile 492 ändere:WARNING: substr() expects parameter 3 to be long, string given
C:\xampp\htdocs\xh162g\plugins\flexslider\funcs.php:493
Code: Select all
$x = $x? $x++ : 0;
Code: Select all
$folder == 'slider'
$oldname == '/Tulips.jpg'
$newname == 'Tulips_1024x768 .jpg'
Das scheint nicht der Fall zu sein. Folgender Code verhält sich anders als man erwarten könnte:svasti wrote:Er schaut nach, wo in der Adresse des bisherigen Bildes (z.B. altesbild.jpg oder test/altesbild2.jpg) der letzte Slash ist, und wenn einer da ist, generiert er daraus den folder ($x = 4, substr bei 5 abgeschnitten => 'test/').
Code: Select all
$x = $x? $x++ : 0;
Code: Select all
$x = $x ? $x + 1 : 0;
Test:svasti wrote:Vielleicht besser so?Code: Select all
$x = strrpos($imglist['image1'][$key],'/'); $folder = $x? substr($imglist['image1'][$key],0,$x++) : ''; $oldname = $x? substr($imglist['image1'][$key],$x++) : $imglist['image1'][$key]; $imglist['image1'][$key]=$folder.$newname; simpl_NewImage($folder,$oldname,$newname,$width,$height);
Code: Select all
$imglist['image1'][$key] = 'foo/bar';
$x = strrpos($imglist['image1'][$key],'/');
$folder = $x? substr($imglist['image1'][$key],0,$x++) : '';
$oldname = $x? substr($imglist['image1'][$key],$x++) : $imglist['image1'][$key];
var_dump($folder);
var_dump($oldname);
Allerdings sollte es wohl "bar/" statt "foo" sein. Das Problem ist, dass der Post-Increment Operator seinen Operanden zurück liefert, und erst danach erhöht. Ersetze man beide Post-Increment-Operatoren durch Pre-Increment-Operatoren wäre das Ergebnis übrigens "foo/" und "ar".string(3) "bar"
string(3) "foo"
Zu PHP 5.3 war schon ein relativ großer Sprung (eigentlich sollte statt PHP 5.3 ja ursprünglich PHP 6 veröffentlicht werden). Aber zwischen den Minor-Versionen gibt es immer mal ein paar inkompatible Änderungen. Recht gute Dienste leistet da PHP CompatInfo, obwohl es diesen Fall vermutlich nicht gemeldet hätte.svasti wrote:Ich habe hier php 5.2.5 und ab 5.3 macht php ja anscheinend einiges anders.
Prima.svasti wrote: Habe gerade die alte und die neue Version (echo der Variablen damit ich sehe was passiert) unter php 5.5.3 getestet und die Fehler bestätigt bzw. die Korrektur läuft.
Code: Select all
<?php echo flexslider();?>