fix: start image url with slash

This commit is contained in:
Marvin Flock
2025-04-22 17:04:44 +02:00
parent 8d50de12d7
commit bf25471571
@@ -3,9 +3,13 @@
use JetBrains\PhpStorm\NoReturn; use JetBrains\PhpStorm\NoReturn;
use Joomla\CMS\Application\SiteApplication; use Joomla\CMS\Application\SiteApplication;
use Joomla\CMS\Factory; use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;
use Joomla\Filesystem\File; use Joomla\Filesystem\File;
use Joomla\Filesystem\Folder; use Joomla\Filesystem\Folder;
const SPORTSMANAGER_JOOMLA_PATH = JPATH_ROOT;
define("SPORTSMANAGER_JOOMLA_URL", Uri::base());
function bildKopierenAngepasst($quelle, $ziel, $ziel_breite, $ziel_hoehe, $zuschneiden): bool function bildKopierenAngepasst($quelle, $ziel, $ziel_breite, $ziel_hoehe, $zuschneiden): bool
{ {
$len = strlen($ziel); $len = strlen($ziel);
@@ -65,7 +69,6 @@ function bildKopierenAngepasst($quelle, $ziel, $ziel_breite, $ziel_hoehe, $zusch
#[NoReturn] function bildAnpassen($typ, $id = 0): void #[NoReturn] function bildAnpassen($typ, $id = 0): void
{ {
global $sportsmanager_joomla_path;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (empty($id)) if (empty($id))
@@ -76,7 +79,7 @@ function bildKopierenAngepasst($quelle, $ziel, $ziel_breite, $ziel_hoehe, $zusch
$max_height = $jInput->get('mh', 0, 'INT'); $max_height = $jInput->get('mh', 0, 'INT');
$no_cache = $jInput->get('nc', 0, 'INT'); $no_cache = $jInput->get('nc', 0, 'INT');
$pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . $typ . DIRECTORY_SEPARATOR . $id . '.'; $pfad = SPORTSMANAGER_JOOMLA_PATH . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . $typ . DIRECTORY_SEPARATOR . $id . '.';
if (File::exists($pfad . 'png')) if (File::exists($pfad . 'png'))
$ext = "png"; $ext = "png";
else if (File::exists($pfad . 'jpg')) else if (File::exists($pfad . 'jpg'))
@@ -163,11 +166,10 @@ function bildKopierenAngepasst($quelle, $ziel, $ziel_breite, $ziel_hoehe, $zusch
function bildLoeschen($typ, $id): void function bildLoeschen($typ, $id): void
{ {
global $sportsmanager_joomla_path;
$typ_exploded = explode("/", $typ); $typ_exploded = explode("/", $typ);
$typ = $typ_exploded[0]; $typ = $typ_exploded[0];
$typ_prefix = count($typ_exploded) > 1 ? $typ_exploded[1] : ""; $typ_prefix = count($typ_exploded) > 1 ? $typ_exploded[1] : "";
$bilder_pfad = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . $typ; $bilder_pfad = SPORTSMANAGER_JOOMLA_PATH . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . $typ;
$pfad = $bilder_pfad . '/' . $typ_prefix . $id . "."; $pfad = $bilder_pfad . '/' . $typ_prefix . $id . ".";
if (!is_file($pfad . 'png') && !is_file($pfad . 'jpg')) if (!is_file($pfad . 'png') && !is_file($pfad . 'jpg'))
return; return;
@@ -178,11 +180,10 @@ function bildLoeschen($typ, $id): void
function bildIdentisch($typ1, $id1, $typ2, $id2): bool function bildIdentisch($typ1, $id1, $typ2, $id2): bool
{ {
global $sportsmanager_joomla_path;
$typ1_exploded = explode("/", $typ1); $typ1_exploded = explode("/", $typ1);
$typ1 = $typ1_exploded[0]; $typ1 = $typ1_exploded[0];
$typ1_prefix = count($typ1_exploded) > 1 ? $typ1_exploded[1] : ""; $typ1_prefix = count($typ1_exploded) > 1 ? $typ1_exploded[1] : "";
$bilder_pfad1 = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . $typ1; $bilder_pfad1 = SPORTSMANAGER_JOOMLA_PATH . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . $typ1;
$pfad1 = $bilder_pfad1 . '/' . $typ1_prefix . $id1 . "."; $pfad1 = $bilder_pfad1 . '/' . $typ1_prefix . $id1 . ".";
if (is_file($pfad1 . "png")) if (is_file($pfad1 . "png"))
$ext = "png"; $ext = "png";
@@ -195,7 +196,7 @@ function bildIdentisch($typ1, $id1, $typ2, $id2): bool
$typ2_exploded = explode("/", $typ2); $typ2_exploded = explode("/", $typ2);
$typ2 = $typ2_exploded[0]; $typ2 = $typ2_exploded[0];
$typ2_prefix = count($typ2_exploded) > 1 ? $typ2_exploded[1] : ""; $typ2_prefix = count($typ2_exploded) > 1 ? $typ2_exploded[1] : "";
$bilder_pfad2 = $sportsmanager_joomla_path . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . $typ2; $bilder_pfad2 = SPORTSMANAGER_JOOMLA_PATH . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'sportsmanager' . DIRECTORY_SEPARATOR . $typ2;
$pfad2 = $bilder_pfad2 . '/' . $typ2_prefix . $id2 . "." . $ext; $pfad2 = $bilder_pfad2 . '/' . $typ2_prefix . $id2 . "." . $ext;
return files_identical($pfad1, $pfad2); return files_identical($pfad1, $pfad2);
@@ -257,21 +258,18 @@ function playerImage($playerId, $gender, $width = 180, $height = 240): ?string
function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $alternativ = ""): ?string function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $alternativ = ""): ?string
{ {
global $sportsmanager_joomla_path;
global $sportsmanager_joomla_url;
$typ_exploded = explode("/", $typ); $typ_exploded = explode("/", $typ);
$typ = $typ_exploded[0]; $typ = $typ_exploded[0];
$typ_prefix = count($typ_exploded) > 1 ? $typ_exploded[1] : ""; $typ_prefix = count($typ_exploded) > 1 ? $typ_exploded[1] : "";
$pfad = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "."; $pfad = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . ".";
if (is_file($pfad . "png")) if (is_file($pfad . "png"))
$ext = "png"; $ext = "png";
else if (is_file($pfad . "jpg")) else if (is_file($pfad . "jpg"))
$ext = "jpg"; $ext = "jpg";
else if (!empty($alternativ)) { else if (!empty($alternativ)) {
$id = $alternativ; $id = $alternativ;
$pfad = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "."; $pfad = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . ".";
if (is_file($pfad . "png")) if (is_file($pfad . "png"))
$ext = "png"; $ext = "png";
else if (is_file($pfad . "jpg")) else if (is_file($pfad . "jpg"))
@@ -285,9 +283,9 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0,
$time = filemtime($pfad . $ext); $time = filemtime($pfad . $ext);
if ($fixed_width > 0 && $fixed_height > 0) { if ($fixed_width > 0 && $fixed_height > 0) {
$pfad_angepasst = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . $fixed_width . "H" . $fixed_height . "." . $ext; $pfad_angepasst = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . $fixed_width . "H" . $fixed_height . "." . $ext;
if (is_file($pfad_angepasst)) { if (is_file($pfad_angepasst)) {
return $sportsmanager_joomla_url . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst); return SPORTSMANAGER_JOOMLA_URL . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst);
} }
} }
@@ -299,13 +297,13 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0,
$max_height = $fixed_height > 0 ? $fixed_height : $max_height; $max_height = $fixed_height > 0 ? $fixed_height : $max_height;
if (($fixed_width == 0 || $width == $fixed_width) && ($fixed_height == 0 || $height == $fixed_height) && ($fixed_width != 0 || $max_width == 0 || $width <= $max_width) && ($fixed_height != 0 || $max_height == 0 || $height <= $max_height)) { if (($fixed_width == 0 || $width == $fixed_width) && ($fixed_height == 0 || $height == $fixed_height) && ($fixed_width != 0 || $max_width == 0 || $width <= $max_width) && ($fixed_height != 0 || $max_height == 0 || $height <= $max_height)) {
$pfad_angepasst = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . $width . "H" . $height . "." . $ext; $pfad_angepasst = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . $width . "H" . $height . "." . $ext;
if (!is_file($pfad_angepasst)) { if (!is_file($pfad_angepasst)) {
if (!copy($pfad . $ext, $pfad_angepasst)) if (!copy($pfad . $ext, $pfad_angepasst))
return null; return null;
} }
return $sportsmanager_joomla_url . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst); return SPORTSMANAGER_JOOMLA_URL . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst);
} }
$new_width = $width; $new_width = $width;
@@ -325,7 +323,7 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0,
if ($max_height > 0 && (($max_height - $new_height) % 2) == 1) // Toleranz bei nur 1 Pixel Unterschied if ($max_height > 0 && (($max_height - $new_height) % 2) == 1) // Toleranz bei nur 1 Pixel Unterschied
$new_height += 1; $new_height += 1;
$pfad_angepasst = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . max($fixed_width, $new_width) . "H" . max($fixed_height, $new_height) . "." . $ext; $pfad_angepasst = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . max($fixed_width, $new_width) . "H" . max($fixed_height, $new_height) . "." . $ext;
if (!is_file($pfad_angepasst)) { if (!is_file($pfad_angepasst)) {
$image = $ext == "png" ? imagecreatefrompng($pfad . $ext) : imagecreatefromjpeg($pfad . $ext); $image = $ext == "png" ? imagecreatefrompng($pfad . $ext) : imagecreatefromjpeg($pfad . $ext);
@@ -344,7 +342,7 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0,
imagejpeg($image_resized, $pfad_angepasst); imagejpeg($image_resized, $pfad_angepasst);
} }
return $sportsmanager_joomla_url . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst); return SPORTSMANAGER_JOOMLA_URL . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst);
} }
/* /*
@@ -362,12 +360,10 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0,
*/ */
function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?string function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?string
{ {
global $sportsmanager_joomla_path;
$typ_exploded = explode("/", $typ); $typ_exploded = explode("/", $typ);
$typ = $typ_exploded[0]; $typ = $typ_exploded[0];
$typ_prefix = count($typ_exploded) > 1 ? $typ_exploded[1] : ""; $typ_prefix = count($typ_exploded) > 1 ? $typ_exploded[1] : "";
$pfad = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "."; $pfad = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . ".";
if (is_file($pfad . "png")) if (is_file($pfad . "png"))
$ext = "png"; $ext = "png";
@@ -375,7 +371,7 @@ function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?stri
$ext = "jpg"; $ext = "jpg";
else if (!empty($alternativ)) { else if (!empty($alternativ)) {
$id = $alternativ; $id = $alternativ;
$pfad = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "."; $pfad = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . ".";
if (is_file($pfad . "png")) if (is_file($pfad . "png"))
$ext = "png"; $ext = "png";
else if (is_file($pfad . "jpg")) else if (is_file($pfad . "jpg"))
@@ -386,28 +382,25 @@ function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?stri
else else
return null; return null;
$bildpfad = "images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext; $bildpfad = "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext;
return '<img class="el-image" data-src="' . $bildpfad . $resize . '" ' . $zusatz . ' uk-img />'; return '<img class="el-image" data-src="' . $bildpfad . $resize . '" ' . $zusatz . ' uk-img />';
} }
function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $zusatz = "", $alternativ = ""): ?string function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $zusatz = "", $alternativ = ""): ?string
{ {
global $sportsmanager_joomla_path;
global $sportsmanager_joomla_url;
$typ_exploded = explode("/", $typ); $typ_exploded = explode("/", $typ);
$typ = $typ_exploded[0]; $typ = $typ_exploded[0];
$typ_prefix = count($typ_exploded) > 1 ? $typ_exploded[1] : ""; $typ_prefix = count($typ_exploded) > 1 ? $typ_exploded[1] : "";
$pfad = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "."; $pfad = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . ".";
if (is_file($pfad . "png")) if (is_file($pfad . "png"))
$ext = "png"; $ext = "png";
else if (is_file($pfad . "jpg")) else if (is_file($pfad . "jpg"))
$ext = "jpg"; $ext = "jpg";
else if (!empty($alternativ)) { else if (!empty($alternativ)) {
$id = $alternativ; $id = $alternativ;
$pfad = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "."; $pfad = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . ".";
if (is_file($pfad . "png")) if (is_file($pfad . "png"))
$ext = "png"; $ext = "png";
else if (is_file($pfad . "jpg")) else if (is_file($pfad . "jpg"))
@@ -421,9 +414,9 @@ function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0
$time = filemtime($pfad . $ext); $time = filemtime($pfad . $ext);
if ($fixed_width > 0 && $fixed_height > 0) { if ($fixed_width > 0 && $fixed_height > 0) {
$pfad_angepasst = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . $fixed_width . "H" . $fixed_height . "." . $ext; $pfad_angepasst = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . $fixed_width . "H" . $fixed_height . "." . $ext;
if (is_file($pfad_angepasst)) { if (is_file($pfad_angepasst)) {
return '<img src="' . $sportsmanager_joomla_url . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst) . '" width="' . $fixed_width . '" height="' . $fixed_height . '" ' . $zusatz . ' />'; return '<img src="' . SPORTSMANAGER_JOOMLA_URL . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst) . '" width="' . $fixed_width . '" height="' . $fixed_height . '" ' . $zusatz . ' />';
} }
} }
@@ -435,13 +428,13 @@ function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0
$max_height = $fixed_height > 0 ? $fixed_height : $max_height; $max_height = $fixed_height > 0 ? $fixed_height : $max_height;
if (($fixed_width == 0 || $width == $fixed_width) && ($fixed_height == 0 || $height == $fixed_height) && ($fixed_width != 0 || $max_width == 0 || $width <= $max_width) && ($fixed_height != 0 || $max_height == 0 || $height <= $max_height)) { if (($fixed_width == 0 || $width == $fixed_width) && ($fixed_height == 0 || $height == $fixed_height) && ($fixed_width != 0 || $max_width == 0 || $width <= $max_width) && ($fixed_height != 0 || $max_height == 0 || $height <= $max_height)) {
$pfad_angepasst = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . $width . "H" . $height . "." . $ext; $pfad_angepasst = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . $width . "H" . $height . "." . $ext;
if (!is_file($pfad_angepasst)) { if (!is_file($pfad_angepasst)) {
if (!copy($pfad . $ext, $pfad_angepasst)) if (!copy($pfad . $ext, $pfad_angepasst))
return null; return null;
} }
return '<img src="' . $sportsmanager_joomla_url . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst) . '" width="' . $width . '" height="' . $height . '" ' . $zusatz . ' />'; return '<img src="' . SPORTSMANAGER_JOOMLA_URL . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst) . '" width="' . $width . '" height="' . $height . '" ' . $zusatz . ' />';
} }
$new_width = $width; $new_width = $width;
@@ -461,7 +454,7 @@ function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0
if ($max_height > 0 && (($max_height - $new_height) % 2) == 1) // Toleranz bei nur 1 Pixel Unterschied if ($max_height > 0 && (($max_height - $new_height) % 2) == 1) // Toleranz bei nur 1 Pixel Unterschied
$new_height += 1; $new_height += 1;
$pfad_angepasst = $sportsmanager_joomla_path . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . max($fixed_width, $new_width) . "H" . max($fixed_height, $new_height) . "." . $ext; $pfad_angepasst = SPORTSMANAGER_JOOMLA_PATH . "/images/sportsmanager/" . $typ . "/" . $typ_prefix . "I" . $id . "T" . $time . "W" . max($fixed_width, $new_width) . "H" . max($fixed_height, $new_height) . "." . $ext;
if (!is_file($pfad_angepasst)) { if (!is_file($pfad_angepasst)) {
$image = $ext == "png" ? imagecreatefrompng($pfad . $ext) : imagecreatefromjpeg($pfad . $ext); $image = $ext == "png" ? imagecreatefrompng($pfad . $ext) : imagecreatefromjpeg($pfad . $ext);
@@ -480,5 +473,5 @@ function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0
imagejpeg($image_resized, $pfad_angepasst); imagejpeg($image_resized, $pfad_angepasst);
} }
return '<img src="' . $sportsmanager_joomla_url . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst) . '" width="' . max($fixed_width, $new_width) . '" height="' . max($fixed_height, $new_height) . '" ' . $zusatz . ' />'; return '<img src="' . SPORTSMANAGER_JOOMLA_URL . 'images/sportsmanager/' . $typ . '/' . basename($pfad_angepasst) . '" width="' . max($fixed_width, $new_width) . '" height="' . max($fixed_height, $new_height) . '" ' . $zusatz . ' />';
} }