Open frase-git opened 1 year ago
Unfortunately, I had to realize now (too late) that the gallery is displayed, but the functionality is not given. In this case, “Photoswipe” is not included correctly. This is a pity, because I would have needed such functionality well.
Die Verwendung von Plugin-Aufrufen ist immer möglich (es sind schließlich normale PHP-Funktionen), aber in diesem Fall klappt das je nach konfiguriertem Frontend nicht, da z.B. Photoswipe nach $hjs
schreibt, und das kommt beim Pluginaufruf im Template zu spät. Das ist eigentlich ein allgemeines Problem, um das Pluginautoren bislang auf unterschiedliche Weise herumgearbeitet haben (gar nicht nach $hjs
schreiben; die nötige Ausgabe in $hjs
immer erzeugen; eine zusätzliche Initialisierungs-Funktion im Template aufrufen müssen), oder auch nicht. Das mag ich bei der Foldergallery eigentlich nicht machen. Statt dessen sollte der Core eine Funktion bereitstellen, die man aufrufen kann statt nach $hjs
zu schreiben (und wenn head()
bereits aufgerufen wurde, dann muss der Core eben nachträglich den <head>
manipulieren; nicht schön, und vielleicht auch nicht performant, aber dann wäre dieses leidige Thema vom Tisch).
Verstehe. Danke. Im speziellen Fall wollte ich mittels Morepagedata eine Galerie über die volle Seitenbreite unterhalb des eigentlichen Inhalts (nicht volle Breite) anzeigen lassen – oder eben nicht. Jetzt muss ich das Template so abändern, dass der normale Inhalt per DIV im Editor markiert werden muss, damit dieser nicht die volle Breite erhält. Unkomfortabel, leider.
Du könntest patchen. Es sollte genügen diese Zeilen in eine eigene Funktion auszugliedern, etwa
function init_photoswipe_for_foldergallery() {
global $hjs;
// hier die Zeilen einfügen
}
Diese Funktion müsste dann früh im Template aufgerufen werden (vor head()
).
Hm, funktioniert leider nicht.
Uncaught ReferenceError: PhotoSwipe is not defined
Ich habe jetzt folgendes ins Template geschrieben:
(nach <head>
und vor <?=head();?>
)
<?php
// https://github.com/cmb69/foldergallery_xh/issues/51#issuecomment-1399464588
function init_photoswipe_for_foldergallery() {
global $hjs;
$hjs .= sprintf(
'<link rel="stylesheet" href="./plugins/foldergallery/lib/photoswipe/photoswipe.css">'
);
$hjs .= sprintf(
'<link rel="stylesheet" href="./plugins/foldergallery/lib/photoswipe/default-skin/default-skin.css">'
);
$hjs .= sprintf(
'<script src="./plugins/foldergallery/lib/photoswipe/photoswipe.min.js"></script>'
);
$hjs .= sprintf(
'<script src="./plugins/foldergallery/lib/photoswipe/photoswipe-ui-default.min.js"></script>'
);
}
init_photoswipe_for_foldergallery()
?>
Und das scheint zu funktionieren. Könnte das Probleme machen?
Die Dateien werden zwar auf allen Seiten eingebunden, das stört aber nicht wirklich.
Und das scheint zu funktionieren. Könnte das Probleme machen?
Höchstens, wenn die Foldergallery noch zusätzlich per Pluginaufruf genutzt wird; dann würde das CSS und JS zweimal eingebunden werden. Wahrscheinlich auch kein Problem, aber das ließe sich abfangen (falls relevant, kann ich da noch etwas Code schreiben).
(falls relevant, kann ich da noch etwas Code schreiben)
Erstmal nicht, danke.
Ich überlege gerade, wenn ich sowieso die Galerie nur anzeige, wenn in Morepagedata ein Galeriename vergeben wurde (<?php if(isset($galName)):?>
) dann könnte ich ja die Funktion auch davon abhängig machen – oder?
if(isset($galName)) {
init_photoswipe_for_foldergallery();
}
Ja, das sollte funktionieren (du musst die Bedingung halt zweimal schreiben, aber das ist an sich kein Problem).
Statt dessen sollte der Core eine Funktion bereitstellen, die man aufrufen kann statt nach
$hjs
zu schreiben (und wennhead()
bereits aufgerufen wurde, dann muss der Core eben nachträglich den<head>
manipulieren; nicht schön, und vielleicht auch nicht performant, aber dann wäre dieses leidige Thema vom Tisch).
Eigentlich gibt es dafür ja schon XH_afterFinalCleanUp
Just now I noticed that a plugin call is also possible in the template. Example:
<div><?=foldergallery('UNTERORDNERNAME')?></div>
There is nothing about it in the manual. That could be made up if no problems are expected with it.