Zugriff auf die Detailseite nur für angemeldete User
Und noch ein Wunsch, eine Idee für die Galerie.
Es wäre schön, wenn man die Weiterleitungsseite schützen könnte, sprich Zugriff nur für angemeldete User.
Also, der nicht angemeldete Surfer bekommt die Seite mit einem oder mehreren Alben angezeigt, aber eben nur dem Vorschaubild und dem Titel des Albums. Bei Klick auf ein Album, kommt dann eine Meldung (am besten natürlich selbst einstellbar), dass diese Inhalte nur angemeldeten Usern zur Verfügung stehen.
Ich weiß natürlich nicht, wie aufwendig sowas ist - daher erstmal nur eine Idee.
Bildtitel in der Albumübersicht
Zitat:
Zitat von
markocupic
Die Möglichkeit einen Titel dem Bild hinzuzufügen, habe ich im neusten build implementiert. Im template bekommst du den Titel über $Picture["title"]. Mehr Infos unter:
http://testumgebung.kletterkader.com/cms/template-anpassen.html
Im template erscheint der Titel im alt-Attribut des Vorschaubildes.
Ich hoffe, das ist in etwa das, was du brauchst. Bitte mal testen... Bin froh um deine Rückmeldung.
Das ging schneller, als ich gedacht hab - es ist genau das, was ich meinte und funktioniert bei den ersten Tests tadellos!
Vielen, vielen Dank!!
Maren
Verschieben von Alben für Admins UND Albumbesitzer
Um es nicht nur Admins sondern auch Albemerstellern zu erlauben, Alben zu verschieben, in der Datei tl_gallery_creator_albums.php im dca-Ordner des Moduls die Funktion cutPictures (Zeile 1254) wie folgt abändern:
PHP-Code:
public function cutPicture($row, $href, $label, $title, $icon, $attributes)
{
$objAlb = $this->Database->prepare('SELECT owner FROM tl_gallery_creator_albums WHERE id=?')
->execute($row['id']);
return (($this->User->id == $objAlb->owner OR $this->User->isAdmin) ? ' <a href="'.$this->addToUrl($href.'&id='.$row['id']).'" title="'.specialchars($title).'"'.$attributes.'>'.$this->generateImage($icon, $label).'</a> ' : ' ' . $this->generateImage(preg_replace('/\.gif$/i', '_.gif', $icon)).' ');
}
Danach können auch Albenbesitzer ihre eigenen Alben verschieben, ohne Adminrechte zu besitzen.
Vielleicht kann man das ins nächste Release mit einbauen...
Gruß,
Lukas
Bug in Frontend-Templates -> Fehler im IE
Hallo!
Da ich mit JavaScript bisher nicht viel selbst geschrieben habe, weiß ich nicht genau ob ich hier richtig liege, aber nennen will ich's trotzdem mal:
in den Frontend-Templates (habe das default- und imagerotator-Template überprüft) gibt es am Ende dieses Script:
HTML-Code:
<script type="text/javascript">
<!--//--><![CDATA[//><!--
window.addEvent('domready', function() {
//Weiterleitung bei Klick auf das, das Bild enthaltende Listenelement
$$("ul.list_albums li.level_1").addEvent('click', function() {
var href = this.getElement('a').get('href');
var myURI = new URI();
var redirect = myURI.get('scheme') + '://' + myURI.get('host') + myURI.get('directory') + href;
window.parent.location=redirect;
});
/**
* Cursor über h2
*/
$$('.gallery_creator li.level_1').setStyle('cursor', 'pointer');
//bei domready erhält das erste Listenelement einen overlay
$$(".gallery_creator ul.list_albums").getFirst("li").addClass('active');
//Klassenzuweisung
$$(".gallery_creator ul.list_albums li.level_1").addEvent('mouseover', function() {
$$(".gallery_creator ul.list_albums").getFirst("li").removeClass('active');
this.addClass('active');
});
//Klassenentfernung
$$(".gallery_creator ul.list_albums li.level_1").addEvent('mouseout', function() {
this.removeClass('active');
});
});
//--><!]]>
</script>
Im Quellcode der Seite kam der schließende Kommentar vor dem Tag nicht an, sodass der IE einen Fehler produzierte (nachfolgender Code wurde nicht mehr sauber verarbeitet, weshalb der Footer fehlte).
Ich habe dann beim Beginn des Scripts
Code:
<!--//--><![CDATA[//><!--
zu geändert, am Ende zu Dadurch wurde der Fehler bei mir behoben.
Ich kann nicht genau sagen, ob das Template nun fehlerhaft ist, oder bei mir was falsch gelaufen ist, aber die Änderungen haben auf jeden Fall auch dazu geführt, das der Validator bei W3C keinen Fehler mehr anzeigt.
Kann das jemand so bestätigen?
Dann wäre die Änderung des Templates durch den Entwickler vielleicht sinnvoll.
Einige Fragen zum gallery_creator
Hi Marco,
erst Mal vielen Dank für Deine tolle Arbeit die Du in diese Erweiterung gesteckt hast!
Ich teste sie gerade für mich, auf contao 2.10.3
Dabei drängen sich mir einige Fragen auf:
1.) Das template "ce_gc_lightbox" funktioniert bei mir gar nicht, muß ich eine zusätzliche Erweiterung istallieren?
2.) zum template "ce_gc_default": Das ja "tabellarisch" aufgebaut ist, wäre es für elastische Layouts nicht sinnvoller, wenn die Anzahl der Thumbnails in einer Reihe nicht mit der Einstellung festgelegt würde, sondern einfach den verfügbaren Platz einnehmen würden?
Mein Vorschlag dazu: Eine Einstellung "0 Bilder pro Reihe" bedeutet "So viele wie reinpassen"
3.) zum template "ce_gc_jquery_galleria" wie kann ich die Größe/Breite und die Farbe der erzeugten "Galerie" ändern?
4.) wie 3.) zum template "ce_gc_jw_imagerotator
Grüße aus Ludwigsburg
Jochen Kubik
Probleme nach Java-Update
Hallo,
ich klinke mich hier gerade mal rein.
Ich habe mir die Erweiterung gerade installiert, um sie mal durch zu testen.
Was mir als erstes aufgefallen ist (und ich vermute mal, dass hat nichts mit der Erweiterung an sich zu tun): Der Jumpload verursacht einen sofortigen Absturz meines Browsers, sobald ich versuche irgendeinen Button zu klicken.
Ich bin dem ganzen auch schon ein bisschen nachgegangen und vermute, dass es mit dem letzten Java Update zu tun hat.
Ich benutze normalerweise OS X 10.6.8 mit der aktuellesten Java-Version (die kam vor ein paar Tagen per Softwareupdate) und Firefox in der Version 8.0.
Wenn ich nun mein Backend unter Windows XP in meiner VirtualBox öffne und dort den Jumploader starte habe ich keine Probleme. Und dort habe ich gestern die Java-Version downgegradet, weil ich mit einem anderen Java Applet ähnliche Probleme hatte.
Meine Schlussfolgerung: Es liegt an der neuen Java-Version.
Ein Lösung habe ich bisher nicht gefunden und das Downgrade von Java in OS X ist etwas komplizierter als unter Windows.
Ich dachte das könnte als Hinweis hilfreich sein, falls bei anderen Leuten das gleiche Problem auftritt.
jumploader und windows vista funktioniert nicht mehr
Hallo allerseits
Habe seit gestern bemerkt, dass das jumploader plugin unter windows vista nicht mehr funktioniert. Haben das andere ebenfalls festgestellt?
Unter windows 7 kein Problem?!
Grüsse Marko
Return Link in Albumhierarchie
Hallo Community,
zuerst einmal: Stranger spricht mir aus der Seele. Die Idee mit der Album- gleich Ordnerstruktur kann ich nur befürworten!
Nun aber zu meinem Problem:
Ich habe ebenfalls diverse Alben angelegt:
--Auftritte
--Saison 2011
--Rosenmontag
-- RoMo 2011
Wenn ich mich nun im untersten Ordner befinde, setzt mich der "zurück" link wieder auf den oberste Seite zurück. Das ist äußerst ungünstig.
Die Stelle im Template (ce_gc_default) habe ich bereits gefunden. Allerdings bin ich jetzt mit meinem Latein am Ende um nur eine Ebene/Album zurück zugehen.
PHP-Code:
<?php if ($this->backLink): ?>
<div class="backLink"><a href="<?php echo $this->backLink; ?>" title="zurück">« <?php echo $GLOBALS['TL_LANG']['gallery_creator']['back_to_general_view']; ?></a></div>
<?php endif; ?>
Kann mir hier jemand helfen?
zurück-Link: Problem behoben
Lieber user von gallery_creator
Falls Unteralben im Einsatz sind, führt der "zurück-Link" nun zum entsprechenden Parent-Album zurück.
->neustes build herunterladen...
Problem also behoben!
Grüsse Marko
Filtermöglichkeit per Template
Hallo und Danke für diese Super-Extension! Ist echt gut gelungen...
Ich möchte eine Art Gallerie-Navigation/Filter erstellen:
- es sollen alle Gallerien mit dem Titel und einem Link zur Gallerie aufgelistet werden. Dies habe ich bereits erreich, idem ich alle dazu unnötigen schipsel auf dem Template entfernt habe.
Diese Liste wird ja nun aber nur auf der Gallerieübersichtsseite angezeigt und nicht auf der Detailansicht.
Ich habe schon alles probiert (mein php ist etwas holperig) und erreiche nicht, dass die "navi" auch trotz vars in der url angezeigt wird.
jetziges Template (wird nur auf übersichtsseite aller alben angezeigt...)
Code:
<!-- indexer::stop -->
<?php $GLOBALS['TL_JAVASCRIPT'][] = 'system/modules/gallery_creator/html/gallery_creator_fe.js'; ?>
<!--start album-overview-->
<div class="<?php echo $this->class; ?> gallery_creator block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
<?php if ($this->headline): ?>
<<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
<?php endif; ?>
<?php echo $this->pagination; ?>
<?php if (count($this->arrAlbums)>0): ?>
<ul class="list_albums">
<?php foreach ($this->arrAlbums as $Album): ?>
<li class="level_1 block row" style="<?php echo $this->imagemargin; ?>">
<div class="col_1">
<figure class="image_container" onmouseover="<?php echo $Album["thumbMouseover"]; ?>">
<?php if ($Album["href"]): ?>
<a href="<?php echo $Album["href"]; ?>" title="<?php echo $Album["title"]; ?>">
<?php endif; ?>
<?php if ($Album["href"]): ?>
</a>
<?php endif; ?>
</figure>
</div>
<div class="col_2">
<h2><?php echo $Album["name"]; ?></h2>
<?php if ($Album["count_subalbums"]): ?>
<p class="count_pics"><?php echo $Album["count_subalbums"]; ?> <?php echo $GLOBALS['TL_LANG']['gallery_creator']['subalbums']; ?></p>
<?php endif; ?>
</div>
<div class="clr"><!--clearing-box--></div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
<!--end album-overview-->
<!--start album-overview-->
<div class="<?php echo $this->class; ?> gallery_creator block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
<?php if ($this->headline): ?>
<<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
<?php endif; ?>
<?php echo $this->pagination; ?>
<?php if (count($this->arrAlbums)>0): ?>
<ul class="list_albums">
<?php foreach ($this->arrAlbums as $Album): ?>
<li class="level_1 block row" style="<?php echo $this->imagemargin; ?>">
<div class="col_1">
<figure class="image_container" onmouseover="<?php echo $Album["thumbMouseover"]; ?>">
<?php if ($Album["href"]): ?>
<a href="<?php echo $Album["href"]; ?>" title="<?php echo $Album["title"]; ?>">
<?php endif; ?>
<?php if ($Album["href"]): ?>
</a>
<?php endif; ?>
</figure>
</div>
<div class="col_2">
<h2><?php echo $Album["name"]; ?></h2>
<?php if ($Album["count_subalbums"]): ?>
<p class="count_pics"><?php echo $Album["count_subalbums"]; ?> <?php echo $GLOBALS['TL_LANG']['gallery_creator']['subalbums']; ?></p>
<?php endif; ?>
</div>
<div class="clr"><!--clearing-box--></div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
<!--end album-overview-->
<script type="text/javascript">
<!--//--><![CDATA[//><!--
window.addEvent('domready', function() {
//Weiterleitung bei Klick auf das, das Bild enthaltende Listenelement
$$("ul.list_albums li.level_1").addEvent('click', function() {
var href = this.getElement('a').get('href');
var myURI = new URI();
var redirect = myURI.get('scheme') + '://' + myURI.get('host') + myURI.get('directory') + href;
window.parent.location=redirect;
});
/**
* Cursor über h2
*/
$$('.gallery_creator li.level_1').setStyle('cursor', 'pointer');
//bei domready erhält das erste Listenelement einen overlay
$$(".gallery_creator ul.list_albums").getFirst("li").addClass('active');
//Klassenzuweisung
$$(".gallery_creator ul.list_albums li.level_1").addEvent('mouseover', function() {
$$(".gallery_creator ul.list_albums").getFirst("li").removeClass('active');
this.addClass('active');
});
//Klassenentfernung
$$(".gallery_creator ul.list_albums li.level_1").addEvent('mouseout', function() {
this.removeClass('active');
});
});
//--><!]]>
</script>
<!-- indexer::continue -->
ich weiss, dass die navi so doppelt angezeigt wird, aber habs testhalber so drin.
Vielen Dank für einen Denkanstoss, wie ich die Navi auch in der Detailansicht einer gallerie anzeigen kann...
Nimmt mich wunder, weshalb es nicht per Template auslesbar ist
Evtl. bin ich ja vorgeprägt von Katalog, wo ja fast alles über Templates geregelt werden kann - ich kann mir nur nicht erklären, warum das nicht per php auslesbar ist in der detailview.
Sind die Übersichtsdaten in der detailansicht denn nicht "erreichbar" per php und ich muss deshalb über eine separate extension gehen..?
Muss es dem Kunden noch vorstellen, aber wenn ers so haben will wäre die Lösung mit einer kleinen Extension elegant. Bitte melde mir doch per pn, um was für eine finanzielle Grössenordnung es sich handelt (bin "Amateur", kleines Budget...).
Grüess usem Sonnige Aarau
EDIT:
Wäre das nicht eine interessante Ergänzung zu den per Standard vorhandenen Funktionen? Ich finde die Navigation per zurückbutton etwas sehr umständlich, wenn man von Gallerie zu gallerie springen kann ist das sehr praktisch...(Workflow wäre optimiert im Vergleich zur Realisation per Seitenstruktur und Standardnavi, wo das Erstellen und einbinden in eine Seite viel Aufwand bedeutet)
Lösung:
Habe ein modul "Auflistung" erstellt, dort die Albumtabelle vom gallerycreator gewählt, das feld alias eingetragen. Im List_default.html5 habe ich dann "den Rest" des Links eingefügt, sodass nun die Auflistung eine Naviliste für alle gallerien ist, welche dynamisch erstellt wird.
gallery_creator und meta.txt
Hallo Stranger
Die metaText-Informationen zum einzelnen Bild kriegst du im Template über das Array
$Picture['metaFile']['caption'], oder $Picture['metaFile']['alt']
siehe auch:
Code:
echo '<pre>' . $this->showTemplateVars() . '</pre>';
Zuerst aber das neuste build herunterladen.
Gruss Marko
"GalleryCreatorAlbums " nach "gallery_creator_albums" umbenannt
Ciao Toto
Ja, genau! Den Ordner mit den Grossbuchstaben GalleryCreatorAlbums kannst du manuell löschen, wenn das update geklappt hat.
Zur Info für alle anderen:
Scheinbar kann es auf Windows-Systemen Probleme geben mit Verzeichnissen, die Grossbuchstaben enthalten. Aus diesem Grund wurde ab v.3.1.0 das das Verzeichnis "GalleryCreatorAlbums " nach "gallery_creator_albums" umbenannt.
Klar ich in der runonce.php auch veranlassen können, dass das alte Verzeichnis nach dem Updatevorgang automatisch gelöscht wird. Doch das getraute ich mich ehrlich gesagt nicht. ich möchte lieber nicht verantwortlich sein, wenn jemand all seine Bilder verliert, wenn etwas beim Updaten schief gelaufen ist. Deshalb sollte das alte Verzeichnis "GalleryCreatorAlbums", wenn alles überprüft wurde, manuell gelöscht werden.
Liebe Grüsse
Marko
Gallery Creator aus dem Template aus modifizieren
Dies ist die Antwort auf eine persönliche Nachricht von 'Kohlekocher'
Die Template-Klasse erbt einige Methoden aus der Controller-Klasse, die für den Entwickler recht hilfreich sind. Dadurch lässt sich eine Erweiterung mit relativ wenig Aufwand aus dem Template heraus (updatesicher) anpassen.
Problemstellung:
Es soll aus dem Template heraus ein weiteres, grösseres Thumbnail (300px x 300px) generiert werden. Zu diesem Zweck bedient man sich der aus der Controller-Klasse vererbten Methode Controller:getImage().
Hier der Auszug aus dem Frontend-Template:
Code:
<?php
/*
aus http://api.contao.org/#getImage
string getImage (string $image, integer $width, integer $height, [string $mode = ''], [string $target = null])
wobei $mode entweder 'crop', 'proportional' oder 'box' ist
*/
//thumbnail generieren
//$Picture['href'] enthält den Pfad zum Bild
$myThumbSrc = $this->getImage($Picture['href'], 300, 300, 'proportional');
?>
<!-- thumbnail im html einbauen -->
<img src="<?php echo $myThumbSrc; ?>" alt="bla">
Hier die Auflistung aller aus übergeordneten Klassen vererbten Methoden:
Quelle: http://api.contao.org/
Inherited From Template
Template::__construct()
Template::dumpTemplateVars()
Template::getData()
Template::getFormat()
Template::getName()
Template::minifyHtml()
Template::output()
Template::parse()
Template::setData()
Template::setFormat()
Template::setName()
Template::showIE6warning()
Template::showTemplateVars()
Template::__get()
Template::__isset()
Template::__set()
Inherited From Controller
Controller::addEnclosuresToTemplate()
Controller::addImageToTemplate()
Controller::classFileExists()
Controller::convertRelativeUrls()
Controller::createInitialVersion()
Controller::createNewVersion()
Controller::eliminateNestedPages()
Controller::eliminateNestedPaths()
Controller::findContentElement()
Controller::findFrontendModule()
Controller::generateFrontendUrl()
Controller::generateImage()
Controller::generateMargin()
Controller::getArticle()
Controller::getBackendLanguages()
Controller::getBackendThemes()
Controller::getChildRecords()
Controller::getContentElement()
Controller::getCountries()
Controller::getDatePickerString()
Controller::getForm()
Controller::getFrontendModule()
Controller::getImage()
Controller::getLanguages()
Controller::getPageDetails()
Controller::getPageSections()
Controller::getSpellcheckerString()
Controller::getTemplate()
Controller::getTemplateGroup()
Controller::getTheme()
Controller::getTimeZones()
Controller::loadDataContainer()
Controller::optionChecked()
Controller::optionSelected()
Controller::parseSimpleTokens()
Controller::prepareForWidget()
Controller::printArticleAsPdf()
Controller::removeOldFeeds()
Controller::replaceInsertTags()
Controller::resizeImage()
Controller::restoreBasicEntities()
Controller::sendFileToBrowser()
Inherited From System
System::__construct()
System::addToUrl()
System::getFormattedNumber()
System::getIndexFreeRequest()
System::getMessages()
System::getReadableSize()
System::getReferer()
System::idnaDecode()
System::idnaEncode()
System::idnaEncodeEmail()
System::idnaEncodeUrl()
System::import()
System::isValidEmailAddress()
System::loadLanguageFile()
System::log()
System::parseDate()
System::redirect()
System::reload()
System::setCookie()
System::splitFriendlyName()
System::urlEncode()
Grüsse Marko
Zitat:
Hi Marko,
wie geht es dir? Lange nichts mehr gehört...? Nochmals Dickes Lob an dein Script "Gallery Creator"
Ich habe dein Script mitlerweile produktiv im Einsatz! Habe es aber etwas anders in die Seite eingebaut als ursprünglich geplant und mit dir diskutiert. Nutze nun das "Galleria" Script Template. Klappt auch alles soweit ganz gut! Habe das Template nochmals etwas angepasst, so dass nur dann die Bilder bzw. die Galleria angezeigt wird, wenn keine Unteralben existieren.
Kurze Frage: Gibt es eine Möglichkeit das ich die Templatevariable $Picture[rel] und $Album[thumb] mit einem anderen Wert fülle? Optimal wäre mir hier ein weiteres Thumbnail. Momentan ist es so das die Thumbnail Einstellung im Backend für alles gilt - also für die Thumbnails der Alben, für die Thumbnails der Detailansicht usw...
Ich würde gerne aber verschiedene größen Einstellen - also Thumbnailgröße für Albumübersicht, bzw. Albumauflistung und Thumbnailgröße für Kleinansicht, sowie Thumbnailgröße für Großansicht.
In Zusammenhang mit Galleria hat man nämlich die Möglichkeit zunächst ganz kleine Thumbnails (für die Liste unten) anzugeben, dann die Bilder für die Normalansicht (Großansicht), sowie das Originalbild nochmals in einer Lightbox zu öffnen. Das würde ich gerne so nutzen. Zusätzlich sollten die Thumbnails für die Albumübersicht aber auch korrekt angezeigt werden - d.h. nicht so klein wie in Galleria, aber auch nicht so groß wie in der Großansicht.
Ich denke so kompliziert sollte das nicht zu realisieren sein, oder?
1.) Das DCA anpassen, damit man die Werte im Backend erfassen kann
2.) Im PHP ein wenig Code einfügen, so dass die Templatevariablen entsprechend gefüllt werden mit $Picture[thumb] = klein, $Picture[rel] = groß und $Album[thumb] = Albumübersicht
3.) Das Template anpassen und die Variablen korrekt verwenden.
Für den zweiten Schritt kann man sicher Copy & Paste von dem heutigen Code machen der schon existiert um die Thumbnails zu erstellen, oder?
Was hälst du von der Idee? Kannst du mir vielleicht die Stellen im PHP Coding nennen, wo man das anpassen muss?
Viele Grüße
Tobias
Liste der Anhänge anzeigen (Anzahl: 2)
Fehler?
Hallo an alle und Guten Rutsch,
kann mir jemand sagen wie dieser Fehler zustande kommt?
Anhang 6193
Es ist eine jungfräuliche Installation Contao 2.10.3 mit folgende Erweiterungen:
Anhang 6192