Ergebnis 1 bis 18 von 18

Thema: Detail-Link mit Image?

  1. #1
    Contao-Fan Avatar von Doro
    Registriert seit
    21.06.2009.
    Ort
    Ammersbek
    Beiträge
    359

    Standard Detail-Link mit Image?

    Ich würde gerne ein Bild eines items der mod_metamodel_list direkt mit der zugehörigen detailseite verlinken so wie hier http://www.guay.ch/projekte.html, müsste ich da ans Template? oder gibt es einen anderen Weg?

    Gruß Doro

  2. #2
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Auf die Schnelle so in etwa:
    mit
    link: picture_link
    bild: picture
    beschreibung: picture_description

    PHP-Code:
    <figure class="image_container">
    <a class="imagelink" href="<?php echo $arrItem['text']['picture_link']; ?>">
    <?php echo $arrItem['html5']['picture']; ?>
    <?php 
    if ($arrItem['raw']['picture_headline']):?>
    <div class="hover">
    <div class="mm_header_headline">
    <?php echo $arrItem['raw']['picture_headline']; ?>
    </div>
    <?php endif; ?>
    <?php 
    if ($arrItem['raw']['picture_description']):?>
    <div class="mm_header_description">
    <?php echo $arrItem['raw']['picture_description']; ?>
    </div>
    </div>
    <?php endif; ?>
    </a>
    <?php endif; ?> 
    </figure>
    Wenn Du keinen verweisenden, sondern den Detailseitenlink benötigst kannst Du
    PHP-Code:
    <?php echo $arrItem['jumpTo']['url']; ?>
    anstatt
    PHP-Code:
    <?php echo $arrItem['text']['picture_link']; ?>
    einsetzen.


    Gruß
    Hauge

  3. #3
    Contao-Fan Avatar von Doro
    Registriert seit
    21.06.2009.
    Ort
    Ammersbek
    Beiträge
    359

    Standard

    spitze, Hauge ***freu
    ich probiers gleich am WE aus.
    Danke schonmal im Vorraus
    Doro

  4. #4
    Contao-Fan Avatar von Doro
    Registriert seit
    21.06.2009.
    Ort
    Ammersbek
    Beiträge
    359

    Standard

    sorry, aber ich schnall nicht wohin damit?
    hab erstmal ein Attribut Typ "file" hinzugefügt = picture, und überall in den Renderingsettings hinzugefügt.
    Dann bin ich in die Rendereinstellungen in "FE Listenansicht" und habe mir angesehen welches Template für diese Ausgabe gewählt ist
    "mm_attr_file.html5". Beim Betrachten dieses Templates hatte ich nicht so wirklich das Gefühl, dass ich hier richtig bin, mit deinem PHP-Snippet,
    wohin muss es denn?

  5. #5
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Hallo Doro,

    da musst Du Dir ein neues metamodel_prerendered.html5 anlegen...
    metamodel_link_picture oder so...
    Auf die Schnelle so in etwa
    PHP-Code:
    <?php if (count($this->data)): foreach ($this->data as $arrItem): ?>
    <figure class="image_container">
    <a class="imagelink" href="<?php echo $arrItem['text']['picture_link']; ?>">
    <?php echo $arrItem['html5']['picture']; ?>
    <?php 
    if ($arrItem['raw']['picture_headline']):?>
    <div class="hover">
    <div class="mm_header_headline">
    <?php echo $arrItem['raw']['picture_headline']; ?>
    </div>
    <?php endif; ?>
    <?php 
    if ($arrItem['raw']['picture_description']):?>
    <div class="mm_header_description">
    <?php echo $arrItem['raw']['picture_description']; ?>
    </div>
    </div>
    <?php endif; ?>
    </a>
    </figure>
    <?php endforeach; endif;?>
    Geändert von Hauge (09.03.2014 um 12:16 Uhr)

  6. #6
    Contao-Fan Avatar von Doro
    Registriert seit
    21.06.2009.
    Ort
    Ammersbek
    Beiträge
    359

    Daumen hoch die Lösung

    Hallo zusammen,
    Hauge hat mir sehr geholfen, und zwar folgendermassen:

    wie bereits von Hauge beschrieben ein neues metamodel_prerendered.html5 angelegt und in den Rendersettings der FE Listenansicht zugewiesen.
    und dies ist der PHP-Code dazu

    PHP-Code:
    <?php if (count($this->data)): foreach ($this->data as $arrItem): ?>
    <figure class="image_container">
    <a class="imagelink" href="<?php //echo $arrItem['text']['picture_link']; ?><?php echo $arrItem['jumpTo']['url']; ?> ">
    <?php echo $arrItem['html5']['picture']; ?>
    <?php 
    if ($arrItem['raw']['picture_headline']):?>
    <div class="hover">
    <div class="mm_header_headline">
    <?php echo $arrItem['raw']['Titel']; ?>
    </div>
    <?php endif; ?>
    <?php 
    if ($arrItem['raw']['picture_description']):?>
    <div class="mm_header_description">
    <?php echo $arrItem['raw']['picture_description']; ?>
    </div>

    <?php endif; ?>
    </a>
    </figure>
    <?php endforeach; endif;?>
    hat wunderbar funktioniert, so habe ich also meine "Thumbnail"-Liste mit Descriptions über die der User in die Detailansichten springen kann.
    an Hauge, herzlichen Dank nochmal an dieser Stelle
    Doro

  7. #7
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Ich habe jetzt mal versucht nicht das Template "metamodel_prerendered.html5" zu ändern, sondern das Template des Attributes selber, d.h. das Template "mm_attr_file.html5"

    Code:
    <?php if (is_array($this->src)): ?>
    <ul>
    <?php foreach($this->src as $arrFile): 
    $strTitle = ($arrFile['title']) ? $arrFile['title'] : (($arrFile['alt']) ? $arrFile['alt'] : $arrFile['file']);
    $strAlt   = ($arrFile['caption']) ? $arrFile['caption'] : '';
    ?>	
    <li class="<?php echo $arrFile['class']; ?>">
    	<?php if ($this->settings->get('file_showLink')): ?>
    		<?php if ($this->settings->get('file_showImage')): ?>
    			<a class="cboxElement" data-lightbox="<?php echo $arrFile['lb']; ?>" title="<?php echo $strTitle; ?>" href="<?php echo $arrFile['file']; ?>">
    		<?php else: ?>
    			<a title="<?php echo $strTitle; ?>" href="<?php echo $arrFile['url']; ?>">
    		<?php endif; ?>
    	<?php endif; ?>
    				
    	<?php if ($this->settings->get('file_showImage')): ?>
    		<?php if ($arrFile['isGdImage']): ?>
    			<a class="mm_imagelink" href="<?php echo $arrItem['jumpTo']['url']; ?>"><?php echo $this->generateImage($arrFile['src'], $strAlt); ?></a>
    		<?php endif; ?>
    	<?php else: ?>
    		<img src="<?php echo $arrFile['icon']; ?>" alt="<?php echo $strAlt; ?>" /> <?php echo $strTitle; ?> <span class="size"><?php echo $arrFile['sizetext']; ?></span>
    	<?php endif; ?>
    		
    	<?php if ($this->settings->get('file_showLink')): ?>
    		</a>
    	<?php endif; ?>
    </li>
    <?php endforeach; ?>
    </ul>
    <?php endif; ?>
    Meiner Meinung müsste das mit funktionieren, aber mein Link bleibt leer.

    HTML-Code:
    <a class="mm_imagelink" href=""><img src="files/folklore-wiesbaden/2014/content/images/kuenstler/web/egotronic_web_1.jpg" width="700" height="525" alt=""></a>
    Ich habe die Vermutung, daß die Variable $arrItem in dem Template des Attributes einfach nicht zur Verfügung steht. Ist meine Vermutung korrekt und ich kann den Link zu der Detailseite nur in dem Template "metamodel_prerendered.html5" benutzen?
    Geändert von stephangunnar (02.06.2014 um 19:31 Uhr)
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  8. #8
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Ich habe mir jetzt doch mal ein eigenes Template "metamodel_prerendered.html5" gebaut um das Problem zu analysieren. Wenn ich in dem Template den Link mit einem Attribut mit dem Typ "text" baue, erhalte ich einen Link zu meiner Detailansicht.

    HTML-Code:
    <a href="<?php echo $arrItem['jumpTo']['url']; ?>"><?php echo $arrItem['text']['name']; ?></a>
    Wenn ich aber den Link mit einem Attribut mit dem Typ "url" baue, erhalte ich nur nur einen leeren Link, d.h. es wird keine URL zu meiner Detailansicht ausgegeben.

    HTML-Code:
    <a href="<?php echo $arrItem['jumpTo']['url']; ?>"><?php echo $arrItem['html5']['bildweb']; ?></a>
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  9. #9
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Okay, ich habe mir da selbst ein Bein gestellt. Da ich bevor ich das eigene "metamodel_prerendered.html5" Template gebaut habe, das geänderte Template des Attributes nicht wieder zurück geändert hatte funktionierte das mit dem Link nicht. Trotzdem wäre aber für mich interessant, warum das in dem Template des Attributes selber nicht funktioniert, oder nicht funktionieren kann, weil die Variable $arrItem da nicht zur Verfügung steht?
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  10. #10
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    131

    Standard

    Zitat Zitat von Hauge Beitrag anzeigen

    neues metamodel_prerendered.html5 anlegen...
    metamodel_link_picture oder so...
    Auf die Schnelle so in etwa
    PHP-Code:
    <?php if (count($this->data)): foreach ($this->data as $arrItem): ?>
    <figure class="image_container">
    <a class="imagelink" href="<?php echo $arrItem['text']['picture_link']; ?>">
    <?php echo $arrItem['html5']['picture']; ?>
    <?php 
    if ($arrItem['raw']['picture_headline']):?>
    <div class="hover">
    <div class="mm_header_headline">
    <?php echo $arrItem['raw']['picture_headline']; ?>
    </div>
    <?php endif; ?>
    <?php 
    if ($arrItem['raw']['picture_description']):?>
    <div class="mm_header_description">
    <?php echo $arrItem['raw']['picture_description']; ?>
    </div>
    </div>
    <?php endif; ?>
    </a>
    </figure>
    <?php endforeach; endif;?>
    Hi,

    lässt sich auf ähnliche Weise auch ein ganzes Item als klickbarer Verweis definieren ?

    VG

  11. #11
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Das ist sogar einfacher, dafür muß man nur das Template metamodel_prerendered etwas umgestellt werden. Der Link zu einem Item ist alles was zwischen <?php if ($arrItem['jumpTo']['deep']): ?> <?php if ($arrItem['jumpTo']['deep']): ?> und </a> steht.

    D.h. Wenn du dir das Original Template nimmst, einfach
    Code:
    <?php if ($arrItem['jumpTo']['deep']): ?>
    <a href="<?php echo $arrItem['jumpTo']['url']; ?>">
    weiter nach oben setzen, und
    Code:
    <?php echo $this->details; ?>
    löschen, und
    Code:
    </a>
    da stehen lassen wo es ist.

    Das ganze leicht geändete Template sieht dann so aus:

    PHP-Code:
    <?php $strRendersettings = ($this->settings)? 'settings' 'view'?>
    <?php 
    if (count($this->data)): ?>

    <div class="layout_full">

    <?php foreach ($this->data as $arrItem): ?>
    <?php 
    if ($arrItem['jumpTo']['deep']): ?>
    <a href="<?php echo $arrItem['jumpTo']['url']; ?>">
    <div class="item <?php echo $arrItem['class']; ?>">

    <?php foreach ($arrItem['attributes'] as $field => $strName): ?>
    <?php 
    if (($strValue $arrItem[$this->getFormat()][$field]) || ($strValue $arrItem['text'][$field])): ?>
    <div class="field <?php echo $field?>">
        <?php if(!$this->$strRendersettings->get('hideLabels')): ?>
            <div class="label"><?php echo sprintf($GLOBALS['TL_LANG']['MSC']['field_label'], $strName); ?></div>
        <?php endif; ?>
        <div class="value"> <?php echo $strValue?></div>
    </div>
    <?php endif; ?>
    <?php 
    endforeach; ?>
    </a>
    <?php endif; ?>
    </div>
    <?php endforeach; ?>
    </div>
    <?php else: ?>
    <p class="info"><?php echo $this->noItemsMsg?></p>
    <?php endif; ?>
    Geändert von stephangunnar (12.06.2014 um 20:41 Uhr)
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  12. #12
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    131

    Standard

    Hi,

    ich habe Deine Template Version mal eingebunden und stelle Fest dass meine ganzen Formatierungen zerschossen sind als wenn beim Aufbau etwas nicht ordnungsgemäß geschlossen wurde. Ich habe mal eine Einrückung vorgenommen um mehr zu sehen, kann aber kein Fehler erkennen. Hast Du noch ne Idee ?
    Hättest Du auch einen Vorschlag um mit dem Verweis auf eine beliebige relative URL weiterzuleiten ? Dass wäre n Traum. VG

    HTML-Code:
    <?php $strRendersettings = ($this->settings)? 'settings' : 'view'; ?>
    <?php if (count($this->data)): ?>
    	<div class="layout_full">
    		<?php foreach ($this->data as $arrItem): ?>
    			<?php if ($arrItem['jumpTo']['deep']): ?>
    				<a href="<?php echo $arrItem['jumpTo']['url']; ?>">
    					<div class="item <?php echo $arrItem['class']; ?>">
    						<?php foreach ($arrItem['attributes'] as $field => $strName): ?>
    							<?php if (($strValue = $arrItem[$this->getFormat()][$field]) || ($strValue = $arrItem['text'][$field])): ?>
    								<div class="field <?php echo $field; ?>">
    									<?php if(!$this->$strRendersettings->get('hideLabels')): ?>
    										<div class="label"><?php echo sprintf($GLOBALS['TL_LANG']['MSC']['field_label'], $strName); ?></div>
    									<?php endif; ?>
    									<div class="value"> <?php echo $strValue; ?></div>
    								</div>
    							<?php endif; ?>
    						<?php endforeach; ?>
    					</div>
    				</a>
    			<?php endif; ?>
    		<?php endforeach; ?>
    		<?php else: ?>
    		<p class="info"><?php echo $this->noItemsMsg; ?></p>
    	</div>
    <?php endif; ?>

  13. #13
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Zitat Zitat von taktell81 Beitrag anzeigen
    Hi, ich habe Deine Template Version mal eingebunden
    Siehe den Anhang mit dem Vergleich der beiden Codes 15062014.gif. Da hast du zwei DIV´s an die falsche Stelle geschoben. Einfach meinen Code nochmal kopieren.

    Du hattest die Frage mit dem
    Zitat Zitat von taktell81 Beitrag anzeigen
    Verweis auf eine beliebige relative URL
    schon unter dem Thema https://community.contao.org/de/show...e-weiterleiten gestellt, da kannst du doch den Code {{link::<?=$arrItem['raw']['url']['id'];?>}} an der Stelle jetzt einfach in das Template einbauen an der du den Detaillink haben möchtest. Oder meinst du damit etwas anderes?
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  14. #14
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    131

    Standard

    Du hattest die Frage mit dem schon unter dem Thema https://community.contao.org/de/show...e-weiterleiten gestellt, da kannst du doch den Code {{link::<?=$arrItem['raw']['url']['id'];?>}} an der Stelle jetzt einfach in das Template einbauen an der du den Detaillink haben möchtest. Oder meinst du damit etwas anderes?
    Mit meinen Php Kenntnissen komme ich da leider nicht weiter: ich habe das Template so bereinigt, dass es funktioniert (s.u)
    Kann jemand das funktionierende Insert array {{link::<?=$arrItem['raw']['url']['id'];?>}} dort sinnvoll unterbringen, sodass beim Klick auf das Item an die dynamische ID verwiesen wird ? VG
    Zeile6: <a href="<?php echo $arrItem['raw']['url']['id']; ?>"> führt zu keinem sinnvollen Ergebnis


    <?php $strRendersettings = ($this->settings)? 'settings' : 'view'; ?>
    <?php if (count($this->data)): ?>
    <div class="layout_full">
    <?php foreach ($this->data as $arrItem): ?>
    <?php if ($arrItem['jumpTo']['deep']): ?>
    <a href="<?php echo $arrItem['jumpTo']['url']; ?>">
    <div class="item <?php echo $arrItem['class']; ?>">
    <?php foreach ($arrItem['attributes'] as $field => $strName): ?>
    <?php if (($strValue = $arrItem[$this->getFormat()][$field]) || ($strValue = $arrItem['text'][$field])): ?>
    <div class="field <?php echo $field; ?>">
    <?php if(!$this->$strRendersettings->get('hideLabels')): ?>
    <div class="label"><?php echo sprintf($GLOBALS['TL_LANG']['MSC']['field_label'], $strName); ?></div>
    <?php endif; ?>
    <div class="value"> <?php echo $strValue; ?></div>
    </div>
    <?php endif; ?>
    <?php endforeach; ?>
    <!-- </div> rein--> </div>
    </a>
    <?php endif; ?>
    <!-- </div> raus-->
    <?php endforeach; ?>
    </div>
    <?php else: ?>
    <p class="info"><?php echo $this->noItemsMsg; ?></p>
    <?php endif; ?>
    Geändert von taktell81 (17.06.2014 um 15:02 Uhr)

  15. #15
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Ich bin mir nicht sicher ob es funktioniert, weil ich mich noch nie intensiv mit Inserttags beschäftigt habe, aber verwende mal statt
    Code:
    {{link::<?=$arrItem['raw']['url']['id'];?>}}
    den folgenden Inserttag
    Code:
    {{link_open::<?=$arrItem['raw']['url']['id'];?>}}
    Hier kommt dann der Code rein, den du als Link haben möchtest, also der ganze Item
    {{link_close}}
    Weiteres zu Inserttags kannst du unter https://contao.org/de/manual/3.0/man...tml#inserttags lesen.
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  16. #16
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    131

    Standard

    Hi Stephan,

    das funktioniert !!

    Herzlichen Dank für deine Hilfe

  17. #17
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    131

    Standard

    Hi,

    diese Template zum Rendern der FE-Liste nutzt ja nun ein File (Bild) Attribut als Detaillink und nun soll nur das Bildattribut von einem DIV umschlossen werden. Alle weiteren Attribute, sollen ausserhalb liegen. Ist das hier möglich, obwohl mir scheint, dass alle Attribute zusammen als array gerendert werden?

    HTML-Code:
    <?php $strRendersettings = ($this->settings)? 'settings' : 'view'; ?>
    <?php if (count($this->data)): ?>
    
    	<?php foreach ($this->data as $arrItem): ?>
    		<div class="one_half">
    			<?php if ($arrItem['jumpTo']['deep']): ?>
    				{{link_open::<?=$arrItem['raw']['url']['id'];?>}}
    					<div class="item <?php echo $arrItem['class']; ?>">
    						<?php foreach ($arrItem['attributes'] as $field => $strName): ?>
    							<?php if (($strValue = $arrItem[$this->getFormat()][$field]) || ($strValue = $arrItem['text'][$field])): ?>
    								<div class="field <?php echo $field; ?>">
        								<?php if(!$this->$strRendersettings->get('hideLabels')): ?>
            								<div class="label"><?php echo sprintf($GLOBALS['TL_LANG']['MSC']['field_label'], $strName); ?></div>
        								<?php endif; ?>
        								<div class="value"> <?php echo $strValue; ?></div>
    								</div>
    							<?php endif; ?>
    						<?php endforeach; ?>
    					</div>
    				{{link_close}}
    			<?php endif; ?>
    		</div>
    	<?php endforeach; ?>
    
    	<?php else: ?>
    	<p class="info"><?php echo $this->noItemsMsg; ?></p>
    <?php endif; ?>
    Geändert von taktell81 (09.09.2015 um 13:29 Uhr)

  18. #18
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo taktell81,
    mal auf die Schnelle:
    Ein altes Beispiel (catalog) wie man ein Feld extra ausgibt und alle andren normal -> http://de.contaowiki.org/Catalog_Tem...eschreibung.29
    Musst du im Grunde nur etwas umbauen und an MM anpassen, damit das läuft.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •