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
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
Auf die Schnelle so in etwa:
mit
link: picture_link
bild: picture
beschreibung: picture_description
Wenn Du keinen verweisenden, sondern den Detailseitenlink benötigst kannst DuPHP-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>
anstattPHP-Code:
<?php echo $arrItem['jumpTo']['url']; ?>
einsetzen.PHP-Code:
<?php echo $arrItem['text']['picture_link']; ?>
Gruß
Hauge
spitze, Hauge ***freu
ich probiers gleich am WE aus.
Danke schonmal im Vorraus
Doro
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?
Hallo Doro,
da musst Du Dir ein neues metamodel_prerendered.html5 anlegen...
metamodel_link_picture oder so...
Auf die Schnelle so in etwaPHP-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)
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
hat wunderbar funktioniert, so habe ich also meine "Thumbnail"-Liste mit Descriptions über die der User in die Detailansichten springen kann.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;?>
an Hauge, herzlichen Dank nochmal an dieser Stelle
Doro
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"
Meiner Meinung müsste das mit funktionieren, aber mein Link bleibt leer.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; ?>
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?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>
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)
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.
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['text']['name']; ?></a>
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)
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)
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
weiter nach oben setzen, undCode:<?php if ($arrItem['jumpTo']['deep']): ?> <a href="<?php echo $arrItem['jumpTo']['url']; ?>">
löschen, undCode:<?php echo $this->details; ?>
da stehen lassen wo es ist.Code:</a>
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)
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; ?>
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 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)
Mit meinen Php Kenntnissen komme ich da leider nicht weiter: ich habe das Template so bereinigt, dass es funktioniert (s.u)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?
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)
Ich bin mir nicht sicher ob es funktioniert, weil ich mich noch nie intensiv mit Inserttags beschäftigt habe, aber verwende mal statt
den folgenden InserttagCode:{{link::<?=$arrItem['raw']['url']['id'];?>}}
Weiteres zu Inserttags kannst du unter https://contao.org/de/manual/3.0/man...tml#inserttags lesen.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}}
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)
Hi Stephan,
das funktioniert !!
Herzlichen Dank für deine Hilfe
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)
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 in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen