it-swarm.com.de

So fügen Sie einer mit Ansichten erstellten Tabelle eine CSS-Klasse hinzu

Ich möchte einer Tabelle, die mithilfe von Ansichten erstellt wird, eine CSS-Klasse hinzufügen. Ich habe versucht, "views-view-table.php" in meinem benutzerdefinierten Design zu überschreiben, aber das scheint nicht zu funktionieren. In "views-view-table.php" habe ich die Zeile "<table <?php if ($classes) { print 'class="'. $classes . '" '; } ?><?php print $attributes; ?>>" durch "<table class="responsive"> "und dann den Cache geleert, aber es hat nicht funktioniert. Kann jemand helfen. Danke im Voraus.

7
maaz siddiqui

Dies ist ein alter Beitrag, aber ich würde gerne ein paar Lösungen vorschlagen.

Erstens, und dies beantwortet Ihre Frage möglicherweise nicht direkt, aber Sie können die CSS-Selektoren ändern, mit denen Sie auf die Tabelle abzielen.

Anstatt table.yourclass Zu verwenden, können Sie auch .yourclass table Verwenden. Dies kann erreicht werden, indem eine benutzerdefinierte Klasse für die gesamte Ansicht im Abschnitt erweitert festgelegt wird.

Dies funktioniert natürlich nicht, wenn Sie versuchen, Klassen direkt zum Element hinzuzufügen, wie dies möglicherweise mit Bootstrap erforderlich ist, d. H. table.table.table-striped.

Mit der zweiten Lösung können Sie allen Ihren Tabellen dieselben Klassen hinzufügen. Fügen Sie in Ihrer template.php - Datei Folgendes hinzu:

function THEME_preprocess_views_view_table(&$vars) 
{
    $vars['classes_array'][] = 'table table-striped';
}

Wenn Sie auf eine bestimmte Tabelle abzielen müssen, können Sie auch zuerst die Variable $vars Überprüfen, um den Namen der aufgerufenen Ansicht und Anzeige zu ermitteln, und Ihre Klassen nur auf diejenigen anwenden, auf die Sie abzielen möchten. Ich habe nicht überprüft, aber es ist wahrscheinlich in so etwas wie $vars['view']->current_display Gefunden.

Schließlich ist anzumerken, dass Views tatsächlich benutzerdefinierte Klassen in der Tabelle unterstützt. Die Variablen werden in den Vorlagendateien aufgerufen, es gibt einfach keine Option dafür in der GUI der Ansichten. Dies ist meiner Meinung nach ein Versehen, aber die Entwickler des Moduls scheinen nicht zu planen, es zu beheben. Das heißt, ein Patch dafür existiert ( direkter Link ).

3
Shelton

Sie sollten hierfür keine Vorlagendatei benötigen. Unter der Registerkarte Erweitert> Andere in Ihrer Ansicht gibt es eine CSS-Klassenoption. Sie können es dort hinzufügen und dann die entsprechenden Selektoren zu Ihrem CSS verwenden. Sie können auch hook_preprocess_views_view() verwenden, um die Klasse zur in der Vorlage verwendeten Variablen $classes Hinzuzufügen.

2
sareed

Die Datei, die Sie überschreiben möchten, sollte "views-view-table.tpl.php" sein. Sie haben die ".tpl" vergessen. Verwenden Sie die Option "Erweitert -> Thema: Informationen" auf der Seite "Ansichtskonfiguration", um alle verfügbaren Dateien anzuzeigen, die Sie überschreiben können.

0
Ciprian

Sie thematisieren die Ansicht falsch. Führen Sie die folgenden Schritte aus, um das Thema anzuzeigen:

  1. Wechseln Sie in Ihrer Ansicht zur Registerkarte Erweitert.
  2. Klicken Sie auf Thema: Informationen.
  3. Erstellen Sie die Datei in Ihrem Themenvorlagenverzeichnis mit dem Namen, z. "views-view-table - abc.tpl.php", wenn Ihr Ansichtsname 'abc' lautet, d. h. 'abc' durch den gewünschten Ansichtsnamen ersetzen.
  4. Klicken Sie auf die Schaltfläche "Vorlagendatei erneut scannen" und prüfen Sie, ob der Name der von Ihnen erstellten Datei fett gedruckt wurde oder nicht. Wenn ja, wurde Ihre Ansicht thematisiert. Wenn nicht, ist der Dateiname möglicherweise nicht korrekt. Für weitere Informationen https://drupal.org/node/35297
0
Astha chauhan