Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Views Ausgabe teilen.

Eingetragen von d4rk1 (117)
am 06.06.2011 - 23:36 Uhr in
  • Views
  • Drupal 7.x

Hallo Freunde,

hat schon mal einer die Views-Ausgabe in einer tpl geteilt?
6 Kasten werden bei mir ausgegeben in 2 Spalten je 3 Kasten.

Ich möchte quasy erst 3 Anzeigen dann in tpl was reinschreiben dann wieder 3 Anzeigen.
Hat da jemand ne Snipet oder ne Rat?

MFG

<?php if (!empty($title)) : ?>
  <h3><?php print $title; ?></h3>
<?php endif; ?>
<table class="views-view-grid"<?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]; ?>">
                  <div class="spacer">
            <?php print $item; ?>
                  </div>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
  </tbody>
</table>

‹ (gelöst)Mit einer View verschiedenen Inhalt ausgeben [gelöst] Filtermöglichkeit einer Node-Liste nach Taxonomy und Datum ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,ich füge mit einem

Eingetragen von Ionit (1802)
am 07.06.2011 - 00:52 Uhr

Hallo,

ich füge mit einem Minimodul, nach dem 8ten Row eines Views einen Werbelink ein.

Das könntest Du auch für Dein Problem nutzen.

<?php
function MEIN_MODULNAME_preprocess_views_view_unformatted(&$vars) {
  if (
$vars['view']->name == 'MEIN_VIEWNAME' && $vars['view']->current_display == 'page_1') {
   
$rows = $vars['rows'];
   
// Position of ad in listing.
   
$ad_position = min(8, count($rows)); // nach dem 8ten Row soll der Link eingefüht werden. Bei Dir muss dort eine 3 rein.
   
$classes = $vars['classes'];
   
$rows_new = array();
   
$classes_new = array();
    for (
$i = 0; $i < $ad_position; $i++) {
     
$rows_new[] = $rows[$i];
     
$classes_new[] = $classes[$i];
    }
   
// Add ad.
   
$rows_new[] = t(l('Mein Werbetext', 'urlzurwerbeseite', array('attributes' => array('target' => '_blank')))); // Hier kommt Dein Text(was auch immer) rein
   
$classes_new[] = 'view-affili-ad';
    for (
$i = $ad_position; $i < count($rows); $i++) {
     
$rows_new[] = $rows[$i];
     
$classes_new[] = $classes[$i];
    }
   
$vars['rows'] = $rows_new;
   
$vars['classes'] = $classes_new;
  }
}
?>

Gruß Matthias

  • Anmelden oder Registrieren um Kommentare zu schreiben

re.

Eingetragen von d4rk1 (117)
am 07.06.2011 - 09:35 Uhr

Danke dir, probier ich aus!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du könntest Dir Teile des

Eingetragen von Ionit (1802)
am 07.06.2011 - 12:12 Uhr

Du könntest Dir Teile des obigen Codes auch so umbiegen, dass Du ihn dann direkt in Dein tpl-File einfügst, dort die rows countest und danach den ensprechenden Text/Link/wasauchimmer einfügst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

re

Eingetragen von d4rk1 (117)
am 07.06.2011 - 12:56 Uhr

Irgendwie klappt das mit dem Mini-Module nicht... und ich bin leider nicht so der php professional

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hast Du die Function korrekt

Eingetragen von Ionit (1802)
am 07.06.2011 - 13:22 Uhr

Hast Du die Function korrekt mit dem Namen Deines Moduls versehen?

Wenn ja ....

Hast Du den korrekten Viewnamen verwendet und eingefügt?

Wenn ja ....

Was für einen View nutzt Du? Seite, Block, Attachment/Anhang?

  • Anmelden oder Registrieren um Kommentare zu schreiben

<?phpfunction

Eingetragen von d4rk1 (117)
am 07.06.2011 - 14:08 Uhr

<?php
function teiler_preprocess_views_view_unformatted(&$vars) {
  if (
$vars['view']->name == 'auflistung_unternehmen' && $vars['view']->current_display == 'page_1') {
   
$rows = $vars['rows'];
   
// Position of ad in listing.
   
$ad_position = min(3, count($rows)); // nach dem 8ten Row soll der Link eingefüht werden. Bei Dir muss dort eine 3 rein.
   
$classes = $vars['classes'];
   
$rows_new = array();
   
$classes_new = array();
    for (
$i = 0; $i < $ad_position; $i++) {
     
$rows_new[] = $rows[$i];
     
$classes_new[] = $classes[$i];
    }
   
// Add ad.
   
$rows_new[] = t(l('Mein Werbetext', 'urlzurwerbeseite', array('attributes' => array('target' => '_blank')))); // Hier kommt Dein Text(was auch immer) rein
   
$classes_new[] = 'view-affili-ad';
    for (
$i = $ad_position; $i < count($rows); $i++) {
     
$rows_new[] = $rows[$i];
     
$classes_new[] = $classes[$i];
    }
   
$vars['rows'] = $rows_new;
   
$vars['classes'] = $classes_new;
  }
}
?>

views-view-grid--auflistung-unternehmen--block.tpl <-- meine tpl

Modul hab ich teiler genannt und ich verwende Design Raster für ein Block.

Danke dir.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn Du einen Block

Eingetragen von Ionit (1802)
am 07.06.2011 - 14:26 Uhr

Wenn Du einen Block verwendest muss "page_1" durch "block_1" ersetzt werden - vorausgesetzt es ist der erste Block im View. Wenn Du mehrere Blöcke im View verwendest, musst Du die Numerierung anpassen "block_2" "block_3" (was auch immer). Fahre einfach mal mit der Maus (im linken Views-Menü - wo "standard/Seite/Block" steht) über den Block, dann siehst Du die richtige Nummer.

<?php
if ($vars['view']->name == 'auflistung_unternehmen' && $vars['view']->current_display == 'block_1')
?>

So müsste es funktionieren.

Nochwas - der PHP-End-Tag ?> wird im Modul nicht gesetzt - also löschen!

Gruß Matthias

  • Anmelden oder Registrieren um Kommentare zu schreiben

re

Eingetragen von d4rk1 (117)
am 07.06.2011 - 14:49 Uhr

Hi,

hab ein Denkfehler gehabt... bzw läuft unter "Design unformatiert" 1a. wenn ich aber Raster anmache gehts net mehr.

# # #
hier rein
# # #

views_view_unformatted <-- gibts auch sowas mit tabellen?

MFG

  • Anmelden oder Registrieren um Kommentare zu schreiben

Klick doch einfach mal auf

Eingetragen von Ionit (1802)
am 07.06.2011 - 14:53 Uhr

Klick doch einfach mal auf "Darstellung" in Deinem View. Da kannst Du "Tabelle" auswählen. Dazu kannst Du Dir dann das entsprechende tpl-File anlegen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

hi

Eingetragen von d4rk1 (117)
am 07.06.2011 - 15:30 Uhr

ich meine das die Funktion nur auf "_preprocess_views_view_unformatted(&$vars)" geht,
wenn ich in meiner View als Design -> Raster oder Tabelle anklicke geht die Funktion nicht mehr.

Danke im Vorraus

ach ja unformatet funkt ja sehr gut.. nur bekomme eine Fehlermeldung

Notice: Undefined offset: 6 in include() (Zeile 14 von sites\all\modules\views\theme\views-view-unformatted.tpl.php).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann musst Du Dir den Aufbau

Eingetragen von Ionit (1802)
am 07.06.2011 - 15:46 Uhr

Dann musst Du Dir den Aufbau der preprocess-Funktion anschauen und entsprechend umschreiben.

Zur Fehlermeldung kann ich leider nichts sagen!

Edit:
Habs nicht ausprobiert aber lass doch einfach mal "unformatted" weg und schau ob es dann klappt.

_preprocess_views_view(&$vars)

  • Anmelden oder Registrieren um Kommentare zu schreiben

re

Eingetragen von d4rk1 (117)
am 07.06.2011 - 17:58 Uhr

Leider geht net... haste das mit D7 probiert?
Danke dir für die Hilfe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ach Mist. Du nutzt ja Drupal

Eingetragen von Ionit (1802)
am 07.06.2011 - 19:28 Uhr

Ach Mist. Du nutzt ja Drupal 7. Dazu kann ich leider nichts sagen da ich nur 6 nutze. Die API hat sich ja teilweise verändert. Da musst Du mal nachsehen wie da die preprocess-function verwendet wird.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 3 Tagen 15 Stunden
  • Inzwischen sind wir bei
    vor 2 Wochen 8 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 1 Tag
  • melde mich mal wieder, da ich
    vor 9 Wochen 5 Tagen
  • Hey danke
    vor 9 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 1 Tag
  • In der entsprechenden View
    vor 11 Wochen 1 Tag

Statistik

Beiträge im Forum: 250237
Registrierte User: 20466

Neue User:

  • StevenEness
  • ocvk2810
  • marouane.blel

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 41 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association