Willkommen Gast.
Um die volle Funktionalität des Forums nutzen zu können,
müssen Sie sich einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

 
Erweiterte Suche

31.109 Beiträge in 6.474 Themen- von 6.477 Mitglieder - Neuestes Mitglied: Frideborg

15-11-2019 06:07:33
JOOM::GALLERY::FORUMJoomGallery 2.x ACLZusammenspiel mit anderen KomponentenIn einem Template die sichere Bild-URL auslesen
Seiten: [1]
Drucken
Autor Thema: In einem Template die sichere Bild-URL auslesen  (Gelesen 3504 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
spikey
Newbie
*
Offline Offline

Beiträge: 30


« am: 31-08-2012 15:07:12 »

Hallo, ich muss ein template anpassen, dass auf das interface der Gallery zugreifen soll. Leider weiss ich nicht, wie ich aus einem Datei-Pfad eines Bildes zu seinem "sicheren" url-Pfad gelange.

Im Detail: Ich verwende folgendes Template um eine Artikel Vorschau auf der Frontseite anzuzeigen (die ein Intro-Bild enthält):
Code
<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_latest
* @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

 
// no direct access
defined('_JEXEC') or die;
 
?>
<?php
$elem_counter = 0;
foreach ($list as $item) :  
$var = json_decode($item->images);
 
?>
<div class="latestnews_joomimg_main">
<div class="latestnews_joomimg_row">
<div class="latestnews_joomimg_imgct<?php if ($elem_counter > 0) echo ' multiple_images'; ?>">
<div class="latestnews_joomimg_img">
  <a href="<?php echo $item->link; ?>"><img src="<?php echo $var->image_intro; ?>"></a>
</div>
<ul>
<li>
<div class="latestnews_joomimg_txt">
<a href="<?php echo $item->link; ?>">
<?php echo $item->title; ?></a>
</div>
</li>
</ul>
</div>
</div>
</div>
<?php $elem_counter++; ?>
<?php endforeach; ?>
 

Mit dieser Zeile hole ich den Pfad für das Bild, dass im Artikel als Intro-Bild gespeichert wurde.
Code
<img src="<?php echo $var->image_intro; ?>">

Frage: gibt es eine Möglichkeit per PHP code über den realen Datei-Pfad zur Bilddatei, z.B. :
/joomla2012/images/joomgallery/thumbnails/ordner_a/subordner_1/eintollesbild_20120805_3189809215.jpg
zu dem sicheren Bildpfad
/joomla2012/index.php/de/galerie/ordner_a/image?view=image&amp;format=raw&amp;type=thumb&amp;id=2f10&amp;width=159&amp;height=106&amp;pos=2
zu gelangen?

Vielen Dank und Gruss,
Spikey
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #1 am: 01-09-2012 01:18:55 »

Hi,

möglich wäre dies durch eine zusätzliche SQL-Abfrage: Man müsste aus der Bild-URL den Dateinamen des Bildes extrahieren (also alles vor dem letzten Slash und den Slash selbst wegschneiden, wofür es sogar eine PHP-Funktion geben sollte, wenn ich mich recht erinnere) und mit diesem Dateinamen dann eine Query auf die Tabelle '#__joomgallery' absetzen. Dadurch kann man ein vollständiges Bild-Objekt erhalten, das ausreicht, um mit der Ambit eine URL für den 'image'-View zu generieren.

Um diese zusätzliche SQL-Query einsparen zu können, wäre es aber besser eventuell früher anzusetzen. Der Bild-Pfad muss schließlich irgendwo herkommen. Wo wird dieser bei dir im Moment erstellt?

Gruß
Chraneco
Gespeichert

Der Sprecher
spikey
Newbie
*
Offline Offline

Beiträge: 30


« Antworten #2 am: 03-09-2012 13:34:17 »

Vielen Dank für Deine Antwort.
Leider ist der Bildpfad gleich so im Artikel gespeichert. Weil die Intro-Bild Funktion eines Joomla Artikels nur eine Datei-Auswahl mit "Browse" button aufweist. Da wird dann gleich das Thumbnail auf dem Dateisystem ausgewählt. Ich dachte mir schon, ob es Sinn macht die "Intro-Bild-Funktion" von Joomla zu überschreiben, damit man eine Bild-Id eintragen könnte oder ich "missbrauche" irgendein anderes Feld.

Gespeichert
spikey
Newbie
*
Offline Offline

Beiträge: 30


« Antworten #3 am: 04-09-2012 12:45:22 »

Danke für die Bemühungen. Ich habe einen Workaround gefunden. Das der Thumbnail-Pfad öffentlich ist, ist nur ein Problem, wenn der Direktzugriff auf die Original-Bild Url möglich ist. Dagegen kann man sich schützen, wenn man ein .htaccess File mit dem Inhalt:
Code:
deny from all
ins Original-Bild-Verzeichnis legt.

Gruss,
Spikey
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #4 am: 04-09-2012 13:24:40 »

Hi,

achso, dir ging es nur darum, die Originalbilder für unberechtigtem Download zu schützen.

Jep, da ist die Variante mit der htaccess-Datei die dafür vorgesehene und war ein Grund, warum in der Galerie für Detail- und Originalbilder eigentlich nirgends mehr die tatsächlichen Bildpfade verwendet werden.

Eine andere Möglichkeit für den Schutz wäre, die Detail- und Originalbilderordner einfach an eine Stelle außerhalb der Domain-Ebene des Servers zu verschieben (also zum Beispiel eine Ebene höher wie das Root-Verzeichnis von Joomla!).

Gruß
Chraneco
Gespeichert

Der Sprecher
Seiten: [1]
Drucken
Gehe zu:  

HOSTED BY SCHWARZKÜNSTLER ®

PROTECTED BY  ZB BLOCK  AND Project Honey Pot
Theme orange-lt created by panic

Bad Behavior has blocked 4369 access attempts in the last 7 days.

mouth