Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#26 07. März 2021 21:42

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] LISE : Gallery anzeigen (CMSms 2.1.1)

Kurz zum verstehen:
Wie viele Bilderpaare gibt es pro Person für das vorher / nachher Bild?

Um in der Gallery in einem Unterverzeichnis nur definierte Fotos anzuzeigen, wüsste ich im Moment keinen Kniff. Allerdings kannst du das ganze Lightbox gedöns auch ohne Gallery bei dir auf der Seite einbinden, damit du dies im LISE nutzen kannst.
Wenn es z.B. maximal 3 Bildpaare gibt, könntest du im LISE einfach entsprechend 6 Felder anlegen. Diese kannst du dann im Template auswerten und die Lightbox entsprechend einbauen.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#27 08. März 2021 11:15

Dancer62
Server-Pate
Ort: 26345 Bockhorn, Niedersachsen
Registriert: 08. November 2013
Beiträge: 414

Re: [GELÖST] LISE : Gallery anzeigen (CMSms 2.1.1)

Hallo nockenfell,

danke für die schnelle Antwort.

nockenfell schrieb:

Kurz zum verstehen: Wie viele Bilderpaare gibt es pro Person für das vorher / nachher Bild?

Es wird wahrscheinlich nur 2 Bilderpaare (von hinten & seitlich) pro Person geben. Kann ich dann das Template von z.B. 'Lightbox' nehmen und in das LISE-Template entsprechend einfügen ?

Das wäre natürlich super. Ich müsste dann nach meinem Verständnis die Dateinamen der Bilder aus LISE auslesen und durch das 'Lightbox'-Template auswerten lassen.


Man ist so alt, wie man sich fühlt...

Offline

#28 08. März 2021 21:27

Dancer62
Server-Pate
Ort: 26345 Bockhorn, Niedersachsen
Registriert: 08. November 2013
Beiträge: 414

Re: [GELÖST] LISE : Gallery anzeigen (CMSms 2.1.1)

Ganz so einfach, wie es schien, ist es nun wohl doch nicht. Ich habe hier mal den Code meines LISE-Templates gepostet. Den Teil von

[== php ==]
<div class="gallery">

bis zum entsprechenden

habe ich aus dem Lightbox-Template 'entliehen' und teilweise abgewandelt:

[== php ==]
{if $items|@count > 0}
    {if $pagecount > 1}
        <!-- pagination -->
            <p>
                {if $pagenumber > 1}
                    {$firstpage}&nbsp;{$prevpage}&nbsp;
                {/if}
                {foreach from=$pagelinks item=page}
                    {$page->link}
                {/foreach}
                {if $pagenumber < $pagecount}
                    &nbsp;{$nextpage}&nbsp;{$lastpage}
                {/if}
            </p>
 	<!-- end pagination //-->
    {/if}
    <table class="picture">
        <colgroup>
            <col span="4" />
            <col />
        </colgroup>
        <thead>
             <tr>
                 <td colspan="2">
                     vorher
                 </td>
                 <td colspan="2">
                     nachher
                 </td>
                 <td>
                     Bemerkung
                 </td>
             </tr>
         </thead>
         <tbody>
             <!-- items -->
             {foreach from=$items item=item}
                 <!-- item -->
                 <div class="item">
                      {if !empty($item->fielddefs)}
                         <!-- field definitions -->
                         <div class="item-properties">
                             <!-- pictures of haircuts -->
                             {if $fielddef.type == 'SelectFile' || $fielddef.type == 'FileUpload'}
                                 <tr>
                                     <div class="gallery">
                                         <div class="img">
                                             <td>
                                                 <a class='group' href='{root_url}/uploads/images/Gallery/fotos/frisuren/damen/{$item->fielddef.value}' data-title='{$item->titlename}{if !empty($item->comment)} &bull; &lt;em&gt;{$item->comment|strip_tags|escape:'html'}&lt;em&gt;{/if}' data-lightbox='cmsmsgallery{$galleryid}'>
                                                      <img src='{$item->fielddef.value}' alt='{$item->titlename}' />
                                                 </a>
                                             </td>
                                         </div>
                                         <div class="galleryclear">
                                             &nbsp;
                                         </div>
                                     </div>
                                     <td>
                                         {$item->art.value|cms_escape}<br />
                                         {$item->bemerkung.value|cms_escape}<br />
                                     </td>
                                 </tr>
                             {/if}
                             <!-- end pictures of haircuts //-->
                          </div>
                          <!-- end field definitions //-->
                     {/if}
                 </div>
                 <!-- end item //-->
             {/foreach}
             <!-- end items //-->
         </tbody>
     </table>
{/if}

Das Problem ist, dass er zwar die Tabellenüberschrift darstellt, den Rest aber nicht mehr. Und beim Versuch, mittels Code-Inspektor etwas zu sehen, zeigt er nur die Kommentarzeilen des Templates an  sad .

Ich vermute den Fehler bei der Übernahme des Codes aus dem Lightbox-Template, aber sicher bin ich mir nicht. Die Bilder liegen übrigens tatsächlich im angegebenen Ordner.


Man ist so alt, wie man sich fühlt...

Offline

#29 09. März 2021 22:05

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] LISE : Gallery anzeigen (CMSms 2.1.1)

Du bastelst hier aber auch ein HTML Code zusammen der nicht funktionieren kann. Eine Mischung aus Tabelle und Divs kann nicht wirklich funktionieren. Entweder ist es eine Tabelle oder es sind Divs, aber nicht so gemischt.

Zwischen ein <tbody> und einem <tr> oder einem <tr> und einem <td> kommen keine weiteren HTML-Tags. Nur innerhalb <td></td> kannst du weitere HTML Tags nutzen.

In deinem Code musst du wahrscheinlich auch die data-lightbox='cmsmsgallery{$galleryid}' beim Bild anpassen. Ich nehme an, dass es $galleryid nicht gibt, da du dies von der Gallery kopiert hast. Hier musst du die ID des LISE Datensatzes nehmen.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#30 10. März 2021 11:39

Dancer62
Server-Pate
Ort: 26345 Bockhorn, Niedersachsen
Registriert: 08. November 2013
Beiträge: 414

Re: [GELÖST] LISE : Gallery anzeigen (CMSms 2.1.1)

Hallo nockenfell,

danke für Deine Hinweise. Die Anzeige der Thumbs funktioniert jetzt, allerdings wird beim Klick auf ein Bild, dieses dann in einem neuen Fenster geöffnet und nicht - wie eigentlich gewünscht - in Originalgröße mit Close-Button. Was fehlt an meinem Code ?

[== php ==]
    <tbody>
         <!-- items -->
         {foreach from=$items item=item}
             <!-- item -->
             <div class="item">
                 <tr>
                     {foreach from=$item->fielddefs item=fielddef}
                         {if !empty($item->fielddefs) && $fielddef.type == 'SelectFile'}
                             <!-- field definitions -->
                             <td>
                                 <div class="item-properties">
                                     <!-- pictures of haircuts -->
                                     <div class="gallery">
                                         <div class="img">
                                             <a class="group" href="{root_url}/uploads/images/Gallery/fotos/frisuren/damen/{$fielddef.value}" data-title="{$fielddef.name}" data-lightbox="cmsmsgallery{$title}">
                                                 <img src="{root_url}/uploads/images/Gallery/fotos/frisuren/damen/thumb_{$fielddef.value}" alt="{$fielddef.name}" />
                                             </a>
                                         </div>
                                         <div class="galleryclear">
                                             &nbsp;
                                         </div>
                                     </div>
                                     <!-- end pictures of haircuts //-->
                                 </div>
                             </td>
                        {elseif $fielddef.type == 'category'}
                             <td>
                                  {$item->fielddefs.art.value|cms_escape}<br />
                                  {$item->fielddefs.bemerkung.value|cms_escape}<br />
                             </td>
                        {/if}
                        <!-- end field definitions //-->
                    {/foreach}
                 </tr>
             </div>
             <!-- end item //-->
        {/foreach}
        <!-- end items //-->
    </tbody>

Ich habe den Verdacht, dass die Lightbox nicht wirklich angesprochen wird. Woher soll das Template denn wissen, dass es auf die Lightbox zugreifen soll - außerhalb der Gallery ?

Außerdem finde ich die Klasse "group" im <a>-Tag nicht - sie stammt aus dem Lightbox-Template, ist im zugehörigen Stylesheet jedoch nicht gelistet...

Beitrag geändert von Dancer62 (10. März 2021 11:56)


Man ist so alt, wie man sich fühlt...

Offline

#31 10. März 2021 12:51

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] LISE : Gallery anzeigen (CMSms 2.1.1)

Zum Gallerytemplate gehört auch ein wenig Javascript.

Hier ein Beispiel aus dem prettyPhoto Template von Gallery

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="{$gallery_module_root}/templates/prettyphoto/jquery.prettyPhoto.js"></script>

<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
	$("a[rel^='prettyPhoto']").prettyPhoto({
			animation_speed: 'fast',
			slideshow: 5000,
			autoplay_slideshow: false,
			show_title: true,
			allow_resize: true,
			counter_separator_label: '/',
			theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
			hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
			overlay_gallery: true,
			keyboard_shortcuts: true,
			deeplinking: false
	});
});
</script>

Du musst den Javascript Code des Gallery-Templates verwenden, welches du als Vorlage genutzt hast. Die ganzen "data-XXX" Parameter die du im Link hinterlegt hast, werden vom Javascript ausgewertet. Deshalb ist es wichtig, dass du hier zueinander passende Daten verwendest oder weisst, wie du das Javascript anpassen musst.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#32 10. März 2021 16:06

Dancer62
Server-Pate
Ort: 26345 Bockhorn, Niedersachsen
Registriert: 08. November 2013
Beiträge: 414

Re: [GELÖST] LISE : Gallery anzeigen (CMSms 2.1.1)

Das Einfügen vom JavaScript hat auf den ersten Blick nichts gebracht. Allerdings bestand das JavaScript bei der Lightbox auch nur aus den Zeilen

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="{$gallery_module_root}/templates/lightbox/js/lightbox.min.js"></script>

Seltsamer Effekt: rufe ich auf besagter Seite 'Gallery' mit weiteren Bildern auf, so werden mir auch die ersten Bilder (für die ich das Template geändert habe) beim Klick darauf genau so angezeigt, wie ich es möchte smile .

Edit: Rufe ich Gallery mit einem Parameter (z.B. img='19') auf, so werden die Bilder in einem neuen Fenster angezeigt, beim Aufruf ohne Parameter werden die Bilder wie gewohnt in einem kleinen Fenster dargestellt.

Lösche ich den Gallery-Aufruf aber wieder, so werden mir die Bilder (beim Klick darauf) wieder in einem neuen Fenster angezeigt. Offensichtlich benötige ich den Gallery-Aufruf zur korrekten Anzeige der Bilder. Aber wie kann ich Gallery aufrufen (oder dafür sorgen, dass er so tut, als ob er aufgerufen worden wäre), ohne dass er mir (andere, ungewollte) Bilder anzeigt ?

Edit_2: Ich hatte erst ein Dummy-Verzeichnis (ohne Bilder) unterhalb von Gallery/ angelegt und das Gallery-Modul dann mit diesem Verzeichnis aufgerufen. Funktionierte zwar, war aber für meine Begriffe nur eine 'Krücke' und deshalb unschön... neutral
Jetzt mit einem Mal habe ich wieder das alte Verhalten - obwohl Gallery aufgerufen wurde. Also scheint es nicht daran zu liegen. Aber woran dann und warum funktionierte es zuerst ??? Ich bin momentan völlig konfus...  hmm

Ich habe hier noch einmal den fraglichen (mittlerweile geänderten) Teil des Templates heruntergeladen:

<!-- items -->
{foreach from=$items item=item}
     <!-- item -->
     <tr>
          {foreach from=$item->fielddefs item=fielddef}
               {if !empty($item->fielddefs) && $fielddef.type == 'SelectFile'}
                   <!-- field definitions -->
                   <td>
                        <div class="item">
                             <div class="item-properties">
                                  <!-- pictures of haircuts -->
                                  <div class="gallery">
                                       <div class="img">
                                            <a class="group" href="{root_url}/uploads/images/Gallery/fotos/frisuren/damen/{$fielddef.value}" data-title="{$image->titlename}{if !empty($image->comment)} &bull; &lt;em&gt;{$image->comment|strip_tags|escape:'html'}&lt;em&gt;{/if}" data-lightbox="cmsmsgallery{$fielddef.title.value}"><img src="{$image->thumb}" alt="{$image->titlename}">
                                                <img src="{root_url}/uploads/images/Gallery/fotos/frisuren/damen/thumb_{$fielddef.value}" alt="{$image->titlename}" />
                                             </a>
                                         </div>
                                    </div>
                                    <div class="galleryclear">
                                         &nbsp;
                                    </div>
                                    <!-- end pictures of haircuts //-->
                                 </div>
                             </div>
                         </td>
                    {elseif $fielddef.type == 'MultiSelect'}
                         <td>
                              {str_replace(',', ',<br />', $item->fielddefs.art.value|cms_escape)}<br />
                              {$item->fielddefs.bemerkung.value|strip_tags|trim}<br />
                         </td>
                         <!-- end field definitions //-->
                     {/if}
                 {/foreach}
             </tr>
             <!-- end item //-->
       {/foreach}
<!-- end items //-->

Edit_3: ich bin jetzt völlig am Ende: ich habe die "Werkseinstellungen" von Gallery wieder hergestellt, Gallery mit dem Dummy-Verzeichnis aufgerufen und - läuft...
Kann mir vielleicht jemand mal helfen und versuchen zu erklären, was hier passiert (ist) ???

Beitrag geändert von Dancer62 (11. März 2021 12:36)


Man ist so alt, wie man sich fühlt...

Offline