Guten Morgen,
ich verwende das tpl simpletable und möchte, dass der Details link nur angezeigt wird. Wenn auch das Feld "einsatzbeschreibung" (feldtyp: langtext) ausgefüllt wurde.
Jem. eine Idee?
gruß und einen guten start in den tag
unix_agent
Guten Morgen,
ich verwende das tpl simpletable und möchte, dass der Details link nur angezeigt wird. Wenn auch das Feld "einsatzbeschreibung" (feldtyp: langtext) ausgefüllt wurde.
Jem. eine Idee?
gruß und einen guten start in den tag
unix_agent
Na, dann mach das doch *g*
Hier mal wieder der Hinweis zum Template bearbeiten: http://de.contaowiki.org/Catalog_Templates_anpassen
Grob gesagt:
Lass in der Liste auch das Feld 'einsatzbeschreibung' ausgeben. Im Template sorgst du dann dafür das der Inhalt nicht ausgegeben wird. Dort prüfst du dann ob da Inhalt drinn ist und lässt dann bei bedarf den Link zu Details erzeugen.
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."
moin, danke für die schnelle antwort.
Mein template sieht momentan folgendermaßen aus:
wie muss die if-abfrage aussehen und wo füge ich sie ein? Desweiteren blende ich nun wie die "einsatzbeschreibung" aus?PHP-Code:
<?php if (count($this->entries)): ?>
<table class="layout_simpletable" summary="Catalog Items" cellspacing="0" cellpadding="5">
<thead class="header">
<tr>
<?php list($field, $heading) = each($this->entries); ?>
<?php foreach ($heading['data'] as $field=>$data): ?>
<?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
<th class="field <?php echo $field; ?>"><?php echo $data['label']; ?></th>
<?php endif; ?>
<?php endforeach; ?>
</tr>
</thead>
<tbody class="body<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>">
<?php foreach ($this->entries as $entry): ?>
<tr class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>">
<?php foreach ($entry['data'] as $field=>$data): ?>
<?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
<td class="field <?php echo $field; ?>"><?php if (strlen($data['value'])): ?>
<?php echo $data['value']; ?>
<?php endif; ?>
</td>
<?php endif; ?>
<?php endforeach; ?>
<?php if ($entry['showLink'] && $entry['link']): ?>
<td class="link"><div class="link"><?php echo $entry['link']; ?></div></td>
<?php endif; ?>
<?php if ($entry['linkEdit']): ?>
<td class="edit"><div class="linkEdit"><?php echo $entry['linkEdit']; ?></div></td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else: ?>
<?php if ($this->condition): ?>
<div class="condition"><?php echo $this->condition; ?></div>
<?php else: ?>
<p class="info">There are no entries matching your search.</p>
<?php endif; ?>
<?php endif; ?>
Problem gelöst.
Danke.
ABERPHP-Code:
<?php if (count($this->entries)): ?>
<table class="layout_simpletable" summary="Catalog Items" cellspacing="0" cellpadding="5">
<thead class="header">
<tr>
<?php list($field, $heading) = each($this->entries); ?>
<?php foreach ($heading['data'] as $field=>$data): ?>
<?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
<th class="field <?php echo $field; ?>"><?php echo $data['label']; ?></th>
<?php endif; ?>
<?php endforeach; ?>
</tr>
</thead>
<tbody class="body<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>">
<?php foreach ($this->entries as $entry): ?>
<tr class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>">
<?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
<td class="field einsatzdatum">
<?php echo $entry['data']['einsatzdatum']['value']; ?>
</td>
<td class="field einsatzart">
<?php echo $entry['data']['einsatzart']['value']; ?>
</td>
<td class="field strasse">
<?php echo $entry['data']['strasse']['value']; ?>
</td>
<?php endif; ?>
<?php if ($entry['data']['einsatzbeschreibung']['value'] && $entry['link']): ?>
<td class="link"><div class="link"><?php echo $entry['link']; ?></div></td>
<?php endif; ?>
<?php if ($entry['linkEdit']): ?>
<td class="edit"><div class="linkEdit"><?php echo $entry['linkEdit']; ?></div></td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else: ?>
<?php if ($this->condition): ?>
<div class="condition"><?php echo $this->condition; ?></div>
<?php else: ?>
<p class="info">There are no entries matching your search.</p>
<?php endif; ?>
<?php endif; ?>
Um das Label Einsatzbeschreibung auszublenden bin ich nun so vorgegangen
Das Problem ist, dass er mir nun alles 4x anzeigt. Ich kriege die schleife einfach nicht raus.PHP-Code:
<thead class="header">
<tr>
<?php list($field, $heading) = each($this->entries); ?>
<?php foreach ($heading['data'] as $field=>$data ): ?>
<?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
<th class="field einsatzdatum"><?php echo $heading['data']['einsatzdatum']['label'] ?></th>
<th class="field einsatzart"><?php echo $heading['data']['einsatzart']['label'] ?></th>
<th class="field strasse"><?php echo $heading['data']['strasse']['label'] ?></th>
<?php endif; ?>
<?php endforeach; ?>
</tr>
</thead>
Geändert von unix_agent (06.10.2010 um 14:46 Uhr)
Hallo unix_agent,
wenn du nicht alles automatisch ausgeben lassen willst, sondern alles selbst bestimmen willst (so wie in deinem Code) musst du das foreach entfernen und die Ausgaben anpassen:
<?php foreach ($heading['data'] as $field=>$data ): ?>
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."
Wollte mich hier nur kurz anhängen, weil ich gerade vor demselben Problem stand. Allerdings mit dem catalog_simple template und mit "Standard-Link überschreiben" angehakt. Und dank MacKPs stets freundlicher Hilfe zur Selbsthilfe hab ich mich auch brav durch den Code gequält.
Ausgangssituation: ich möchte, dass alle Katalogeinträge in der Katalogliste mit ihrem Titel (und sonst nix) aufscheinen, aber nur jene, die mit Inhalt befüllt sind, mit einem Link zur Detailansicht versehen sind. Habe dazu im Katalog ein Checkbox-Feld mit dem Namen "details" angelegt. Wenn das angehakt ist, ist der Titel in der Listenansicht verlinkt, wenn nicht, erscheint der Titel nur als Text.
Ob das jetzt super-elegant ist, weiss ich nicht (Anmerkungen oder Korrekturen sind natürlich willkommen). Bei mir funktionierts jedenfalls und vielleicht hilfts auch anderen weiter.Code:<div class="layout_simple"> <?php foreach ($this->entries as $entry): ?> <?php if($entry['data']['details']['value']):?> // hier wird abgefragt, ob meine Checkbox details angehakt ist <div class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>"> <div class="value"><?php echo $entry['data']['Titel']['value']; ?></div> // hier wird der Titel mit Link ausgegeben </div> <?php else: ?> <div class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>"> <div class="value"><?php echo $entry['data']['Titel']['raw']; ?></div> // hier wird der Titel als reiner Text ausgegeben </div> <?php endif;?> <?php endforeach; ?> </div>
LG
Sonja
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen