[Gelöst]Views Ergebnisse Zeilenweise auflisten
Eingetragen von xhowiexo (14)
am 18.08.2011 - 15:18 Uhr in
am 18.08.2011 - 15:18 Uhr in
Views gibt mir als Ausgabe Namen aus der Datenbank aus.
In Wiews kann man unter Format auswählen, wie man die Ergebnisse angezeigt bekommen möchte. Nun möchte ich meine Ergebnisse gerne Zeilenweise hintereinander ausgeben, also so:
user1, user2, user3, user4, user5, user6,
user7, user8, user9, user10, user11, user12,
user13, usw...
also immer die ganze Zeile voll und dann zur nächsten.
Leider gibt es als Format Auswahl nur Grid, html list, jump menu, slideshow, Tabelle und unformatted list.
Weiss jemand wir ich die Results (user) Zeilenweise ausgeben kann?
Danke
- Anmelden oder Registrieren um Kommentare zu schreiben
Dazu gibst Du die User
am 18.08.2011 - 15:24 Uhr
Dazu gibst Du die User unformatiert aus. Der rest passiert über CSS indem Du den einzelnen Elementen aus dem View ein float: left; gibst. Der Browser füllt dann die Zeile solange auf, wie Platz dort ist und bricht dann um.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Leider muss ich eine
am 18.08.2011 - 16:18 Uhr
Leider muss ich eine Möglichkeit auswählen, da bereits eine ausgewählt ist, unformatiert geht eben nicht.
ich habe hier die views-view-unformatted.tpl.php die wohl dafür verantwortlich ist, jedes Ergebniss in eine Zeile zu stellen.
Viellecht reicht es wenn man diese php anpasst, ich weiss aber nicht wie:
<?php
/**
* @file views-view-unformatted.tpl.php
* Default simple view template to display a list of rows.
*
* @ingroup views_templates
*/
?>
<?php if (!empty($title)): ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
<div class="<?php print $classes_array[$id]; ?>">
<?php print $row; ?>
</div>
<?php endforeach; ?>
xhowiexo schrieb Leider muss
am 18.08.2011 - 16:49 Uhr
Leider muss ich eine Möglichkeit auswählen, da bereits eine ausgewählt ist, unformatiert geht eben nicht.
Respekt! Das liest sich doch mal schlüssig.
PS: Wenn Du "diese php angepasst hast" ... dann lass uns das Ergebnis bitte hier wissen.
Drupal 7 Screencasts in deutsch!
Nimm einen spezielleren
am 18.08.2011 - 16:55 Uhr
Nimm einen spezielleren Template File etwa views-view-unformatted--<viewname hier>--page.tpl.php. Dazu kopierst Du den views-view-unformatted.tpl.php File auf den neuen Namen um. In der Schleife
<?php foreach ($rows as $id => $row): ?>
<div class="<?php print $classes_array[$id]; ?>">
<?php print $row; ?>
</div>
<?php endforeach; ?>
Setzt Du jetzt eine eigene Klasse, statt der von Views vorgesehenen. Damit wird die Zeile
<div class="<?php print $classes_array[$id]; ?>">
zu<div class="DeineKlasse-hier">
.In Deiner CSS-Datei setzt Du dann die Anweisung
div.DeineKlasse-hier { float: left; }
Damit solltest Du Deine Zeilen (User) nebeneinander bekommen.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Thoor, vielleicht habe ich
am 18.08.2011 - 17:38 Uhr
Thoor, vielleicht habe ich mich da etwas undeutlich ausgedrückt, sorry.
Es gibt 5 Möglichkeiten in Views die Ergebisse zu formatieren: Unformatted (bereits asugewählt), Grid, HTML List, Jump Menu, Tabelle.
Die Anzeige unformatiert auszugeben geht nicht. Keine der 5 Formatierungen gibt die Ergebnisse wie gewü nscht in einer Zeile nacheinander aus.
Hier die einzelnen tpl.php Dateien:
unformatted
<?php if (!empty($title)): ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
<div class="<?php print $classes_array[$id]; ?>">
<?php print $row; ?>
</div>
<?php endforeach; ?>
grid
<?php if (!empty($title)) : ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<table class="<?php print $class; ?>"<?php print $attributes; ?>>
<tbody>
<?php foreach ($rows as $row_number => $columns): ?>
<tr class="<?php print $row_classes[$row_number]; ?>">
<?php foreach ($columns as $column_number => $item): ?>
<td class="<?php print $column_classes[$row_number][$column_number]; ?>">
<?php print $item; ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
html list
<?php print $wrapper_prefix; ?>
<?php if (!empty($title)) : ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<?php print $list_type_prefix; ?>
<?php foreach ($rows as $id => $row): ?>
<li class="<?php print $classes_array[$id]; ?>"><?php print $row; ?></li>
<?php endforeach; ?>
<?php print $list_type_suffix; ?>
<?php print $wrapper_suffix; ?>
Tabelle
<table <?php if ($classes) { print 'class="'. $classes . '" '; } ?><?php print $attributes; ?>>
<?php if (!empty($title)) : ?>
<caption><?php print $title; ?></caption>
<?php endif; ?>
<thead>
<tr>
<?php foreach ($header as $field => $label): ?>
<th <?php if ($header_classes[$field]) { print 'class="'. $header_classes[$field] . '" '; } ?>>
<?php print $label; ?>
</th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php foreach ($rows as $count => $row): ?>
<tr class="<?php print implode(' ', $row_classes[$count]); ?>">
<?php foreach ($row as $field => $content): ?>
<td <?php if ($field_classes[$field][$count]) { print 'class="'. $field_classes[$field][$count] . '" '; } ?><?php print drupal_attributes($field_attributes[$field][$count]); ?>>
<?php print $content; ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
-------------------------------------------------------------------------------------
@ Werner, danke für die Anleitung. Folgendes habe ich gemacht:
den original code der views-view-unformatted.tpl.php:
<?php if (!empty($title)): ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
<div class="<?php print $classes_array[$id]; ?>">
<?php print $row; ?>
</div>
<?php endforeach; ?>
geändert in:
<?php if (!empty($title)): ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<div class="rowonly">
<?php print $row; ?>
</div>
<?php endforeach; ?>
und in die css des views modules folgendes ergänzt:
div.rowonly { float: left; }
Mit dem folgenden Ergebnis:
User1User2User3User4...
Ist schon mal Prima! Jetzt müsste noch irgendwie einen Separator dazwischen.
Dann solltest Du Dich mal
am 18.08.2011 - 20:42 Uhr
Dann solltest Du Dich mal eingehend mit CSS befassen. Einen Abstand nach recht bekommst Du mit margin-right einen Trennstrich z .b mit border-right: 2px solid black.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
ich würde gerne ein Komma als
am 19.08.2011 - 14:52 Uhr
ich würde gerne ein Komma als Separator haben...
Das ist dann allerdings etwas
am 19.08.2011 - 15:11 Uhr
Das ist dann allerdings etwas schwieriger. Du mußt im View das Komma mit ausgeben mittels "Rewrite the output of this field" Und dabei hinter dem Feld ein Koma ausgeben aber das Komma in span-Tags packen. Soweit ich mich erinnere gibt der View eine Klasse "last" beim letzten Element des Views mit aus und Du kannst dann im CSS mit
.last span { display: none; }
das letzte Komma ausblenden.Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Du könntest das Komma auch
am 19.08.2011 - 15:22 Uhr
Du könntest das Komma auch wie folgt einblenden -> http://css-tricks.com/6555-css-content/
Drupal 7 Screencasts in deutsch!
Lieber Werner, Wenn ich
am 19.08.2011 - 18:41 Uhr
Lieber Werner,
Wenn ich Rewrite the output of this field" benutze, dann überschreibt er lediglich die Werte nur aber fügt nichts dazu.
Hinter dem Feld ein Komma ausgeben und in Span Tags packen.... wie mache ich das? Kannst du mir ein kleines Beispiel geben, was ich ich wo in welches Feld eingeben muss?
Dankeschön schon mal, auch für deine Geduld.
das würde gehen, aber leider
am 19.08.2011 - 18:43 Uhr
@ Thoor
das würde gehen, aber leider sind pseudo-klassen nicht mit allen Browsern kompatibel. Ich glaube ich werde es letztendlich mit einem klitzekleinen Bild regeln müssen.
Trotzdem vielen lieben Dank
Das ist doch ganz einfach, da
am 19.08.2011 - 18:49 Uhr
Das ist doch ganz einfach, da Du beim rewrite auch HTML-Code mit eingeben kannst. Außerdem gibt es für alle bereits aufgezeigten Felder einschließlich des aktuellen Ersetzungstokens in eckigen Klammern (kannst Du Dir anzeigen lassen). Also gibst Du bei Rewrite-Feld ein
[Ersetzungstoken für das aktuelle Feld]<span>, </span>
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Yipppieeee, das ist es!!!
am 19.08.2011 - 19:46 Uhr
Yipppieeee, das ist es!!! Vielen Dank an alle insbesondere an Werner (du hast echt Ahnung)!
Du bist aber leicht zu
am 19.08.2011 - 22:19 Uhr
Du bist aber leicht zu beeindrucken :-). Dann markiere bitte noch diesen Thread als gelöst ([gelöst] vor den ersten Titel im Thread setzen)
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *