Nach Update: Broken Images
dpf-dd opened this issue · 8 comments
Ein tolles Update, die neue v2! Vielen Dank für dieses sinnvolle Addon...
Habe das heute mal auf einem Testsystem mit bestehenden Inhalten ausprobiert. Nach dem Update von v1.x habe ich aber das Problem, dass im MP die Vorschaugrafiken nicht laden.
Im Quelltext steht als Bild-Tag bei mir das hier
http://www.xyz.de/redaxo/index.php?page=mediapool/media&rex-api-call=focuspoint&type=1920_1080&file=test.jpg&xy=59.6,44.9
Wenn ich die URL im Browser direkt aufrufe, dann whoopt es mit folgender Meldung:
Call to private rex_media::__construct() from context 'focuspoint_media'
Error Exception: …/redaxo/src/addons/mediapool/lib/media.php70
Gleiches Problem auch im Frontend, ebenfalls mit dieser Fehlermeldung. Allerdings betrifft das im Frontend nicht alle Bilder, sondern nur einige. Ich versuche gerade ein Muster zu erkennen - aber noch ohne Erfolg.
Kann das jemand reproduzieren? Ist das ein Bug oder kann das weg? :D
Gruß,
Stefan
Hm. Mein Link im "Quelltext" sieht z.B. so aus:
.../redaxo/index.php?page=mediapool/media&file_id=1&rex_file_category=0&rex-api-call=focuspoint&type=fpHeader&file=steg.jpg&xy=50.2,51.3
Im Source steht nur <img >
. Der Link wird vom JS zusammengebaut:
this.domPreviewImage.attr( 'src',
location.pathname +
location.search +
'&rex-api-call=focuspoint&type=' + this.mediatype +
'&file=' + this.mediafile +
'&xy=' + this.cPos.asData()
);
pathname ist .../redaxo/index.php
und search ist ?page=mediapool/media&file_id=1&rex_file_category=0
.
Das bei mir auf allen REX-Instanzen so. Feststellung 1: mit dem Link stimmt schon was nicht. Ich kann es aber nicht nachstellen.
Die Fehlermeldung besagt, dass die Klasse focuspoint_media (class focuspoint_media extends rex_media
) die Methode rex_media::__construct()
nicht aufrufen kann, weil die als private
deklariert ist. Das finde ich nun wieder extrem seltsam.
Ich kriege das nicht nachgestellt. Daher die Standardfrage wnn einem nix mehr einfällt: Cache gelöscht?
Jo, Cache mehrfach gelöscht. AddOn auch "re-installiert" - Problem bleibt bestehen. Neu ist, dass jetzt ALLE Frontend-Bilder broken sind :D
Möchtest du mal einen Zugang zu meinem Testsystem?
Kann ich gerne mal ansehen. Schick zu (PN in slack bzw. Mail)
@gharlan Hi Gregor,
hast Du evtl eine Idee, was da querhängt?
Ich habe eine Klasse focuspoint_media
abgeleitet von rex_media
. (https://github.com/FriendsOfREDAXO/focuspoint/blob/master/lib/focuspoint_media.php#L22).
Der Aufruf
$fpMedia = focuspoint_media::get( 'steg.jpg' );
geht stets unfehlbar auf die Bretter mit der Fehlermeldung
Call to private rex_media::__construct() from context 'focuspoint_media
Und zwar nur dann, wenn ich mich auf einer Instanz mit PHP 5.6 bewege. Mit PHP 7 ist die Welt in Ordnung.
Hast Du irgendeine Idee (außer Umstieg auf PHP 7)?
Hatte auch das Problem. Ging tatsächlich nur mit dem Umstieg auf PHP 7. Wenn nicht anders lösbar, sollte das beim Update-Hinweis hinterlegt sein.
Evtl hat Gregor ja nen Tip? Wenn nein wird PHP7 Voraussetzung. Der Active-Support für 5.6 ist eh lange zu Ende und der verbliebene Security-Support wird am Jahresende eingestellt. Die Hoster fangen ja auch schon an, 5.6 abzuklemmen. Ist halt etwas unschön, wenn ein Addon mehr fordert als die Basis.
@christophboecker Deiner Klasse fehlt ein (leerer) Konstruktor, siehe auch https://friendsofredaxo.github.io/tricks/snippets/klasse_rex_media_erweitern (letzter Codeblock unten)
Danke fürs Fehlerfinden und den Lösungshinweis.