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

Active class zu Views Linkliste hinzufügen

Eingetragen von ThuleNB (380)
am 08.08.2017 - 10:20 Uhr in
  • Views
  • Drupal 7.x oder neuer

Hallo Community,

ich habe eine View erstellt, mit der ich drei Links darstelle, die sich immer auf einen bestimmten Node beziehen (Kontextfilter im Einsatz). Den Output der Felder steuere ich über "Ergebnisse überschreiben".

Technisch funktioniert alles, was ich mit der View erreichen wollte. Nun versuche ich, den aktuell aufgerufenen Link (Seite) hervorzuheben. Ich weiß, dass Drupal hierfür die Klasse "active" vorsieht. Ich weiß auch, dass eine unformatierte Liste mit Links diese Klasse automatisch hinzufügt. Das Ergebnis meiner View ist jedoch immer = 1. Die drei Links ergeben sich aus den drei Feldern, die in der View als Reihen (rows) gesehen werden. Wenn ich also eine unformatierte HTML-Liste auswähle, dann habe ich 1 List-Item. Daher funktioniert die eingebettete Logik in meinem Fall nicht.

Hat von euch jemand eine Idee, wie ich die "active" Klasse trotzdem in meine Links bekomme? Ich habe gelesen, dass es über PHP gehen kann. Ich habe nur leider keine bis wenig Programmierkenntnisse. Habt ihr eine Idee wie ich das angehen könnte?

VG Thomas

‹ Kontext-Filter in View (Block) Views: Beiträge ausblenden auf denen der aktuelle User referenziert ist ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe versucht, das mit

Eingetragen von ThuleNB (380)
am 09.08.2017 - 07:27 Uhr

Ich habe versucht, das mit einem eigenen Modul zu lösen. Wie gesagt, ich habe wenig Programmierkenntnisse, deshalb ist das wahrscheinlich ziemlich falsch:

<?php
/**
Function to add .active class to view mode switcher links
*/

function active_class_preprocess_views_view_fields($vars){

  if (
$vars['view']->name == "vm_switcher"){

    if(
$nothing['href'] == $current_path()){
    
$vars['fields']['nothing']->content = '<div class="active">' . $vars['fields']['nothing']->content . '</div>';
    }

    }

  }
?>

Mein View hat den maschinenlesbaren Namen = vm_switcher
Das globale Textfeld des View hat den Namen = nothing

Hat von euch jemand mehr PHP-Erfahrung als ich und sieht, was bei meinem Ansatz alles falsch ist?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,Du musst vars per

Eingetragen von Hyp1 (1463)
am 09.08.2017 - 10:13 Uhr

Hallo,

Du musst vars per Referenz (&$vars) nicht per Value ($vars) in die Funktion übergeben
https://stackoverflow.com/questions/6406894/difference-between-call-by-v...
Du kannst die $vars auch ausgeben lassen, wenn Du devel installiert hast:

function active_class_preprocess_views_view_fields(&$vars){
dpm($vars);
}

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Hilfe. Ich habe

Eingetragen von ThuleNB (380)
am 09.08.2017 - 12:25 Uhr

Danke für die Hilfe. Ich habe das versucht, aber es funktioniert leider nicht. Vielleicht habe ich es aber auch nicht richtig verstanden. Ich habe nur das "&" vor $vars in der Funktion gesetzt. Müsste das reichen? Oder kann ich noch weitere Infos geben, die bei der Fehlerfindung hilfreiche wären.
Sorry für die amateurhafen Fragen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Installier mal das devel

Eingetragen von Hyp1 (1463)
am 09.08.2017 - 13:14 Uhr

Installier mal das devel Modul

<?php
/**
Function to add .active class to view mode switcher links
*/

function active_class_preprocess_views_view_fields(&$vars){
dpm($vars); //um zu sehen was vars tatsächlich enthallt
 
if ($vars['view']->name == "vm_switcher"){

    if(
$nothing['href'] == $current_path()){
    
$vars['fields']['nothing']->content = '<div class="active">' . $vars['fields']['nothing']->content . '</div>';
    }

    }

  }
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ohne es zu verstehen, aber

Eingetragen von ThuleNB (380)
am 09.08.2017 - 14:17 Uhr

Ohne es zu verstehen, aber das kommt raus:

Zitat:

... (Array, 21 elements)

view (Object) view
$...['view']
db_table (String, 10 characters ) views_view
base_table (String, 4 characters ) node
base_field (String, 3 characters ) nid
name (String, 18 characters ) view_mode_switcher
vid (String, 2 characters ) 38
description (String, 77 characters ) Erlaubt das Wechseln zwischen den einzelnen Vie...
tag (String, 7 characters ) default
human_name (String, 18 characters ) View Mode Switcher
core (String, 1 characters ) 7
api_version (NULL)
disabled (NULL)
editing (Boolean) FALSE
args (Array, 1 element)
$...['view']->args
0 (String, 6 characters ) luckau
use_ajax (Boolean) FALSE
result (Array, 1 element)
0 (Object) stdClass
current_page (NULL)
items_per_page (NULL)
offset (NULL)
total_rows (NULL)
exposed_raw_input (Array, 0 elements)
old_view (Array, 1 element)
0 (Boolean) FALSE
parent_views (Array, 0 elements)
is_attachment (Boolean) FALSE
current_display (String, 11 characters ) vm_switcher
query (Object) views_plugin_query_default
table_queue (Array, 2 elements)
node (Array, 4 elements)
alias (String, 4 characters ) node
table (String, 4 characters ) node
relationship (String, 4 characters ) node
join (NULL)
field_data_field_name_der_kommune (Array, 5 elements)
table (String, 33 characters ) field_data_field_name_der_kommune
num (Integer) 1
alias (String, 33 characters ) field_data_field_name_der_kommune
join (Object) views_join
relationship (String, 4 characters ) node
tables (Array, 1 element)
node (Array, 2 elements)
relationships (Array, 1 element)
node (Array, 4 elements)
where (Array, 2 elements)
1 (Array, 3 elements)
0 (Array, 3 elements)
having (Array, 0 elements)
group_operator (String, 3 characters ) AND
orderby (Array, 0 elements)
groupby (Array, 0 elements)
fields (Array, 3 elements)
nid (Array, 3 elements)
field_data_field_name_der_kommune_node_entity_type (Array, 3 elements)
view_name (Array, 3 elements)
header (Array, 0 elements)
distinct (Boolean) FALSE
has_aggregate (Boolean) FALSE
get_count_optimized (Boolean) FALSE
pager (Object) views_plugin_pager_none
current_page (NULL)
total_items (Integer) 1
view (Object) view
∞ (Recursion)
display (Object) views_display
handler (Object) vbfb_plugin_display_block
display_options (Array, 1 element)
db_table (String, 13 characters ) views_display
vid (String, 2 characters ) 38
id (String, 11 characters ) vm_switcher
display_title (String, 5 characters ) Block
display_plugin (String, 5 characters ) block
position (String, 1 characters ) 2
plugin_type (String, 5 characters ) pager
plugin_name (String, 4 characters ) none
options (Array, 2 elements)
offset (String, 1 characters ) 0
items_per_page (Integer) 0
definition (Array, 13 elements)
title (String, 22 characters ) Alle Elemente anzeigen
help (String, 50 characters ) Anzeigen aller Elemente, die diese Ansicht filtert
handler (String, 23 characters ) views_plugin_pager_none
help topic (String, 10 characters ) pager-none
uses options (Boolean) TRUE
type (String, 5 characters ) basic
module (String, 5 characters ) views
theme path (String, 29 characters ) sites/all/modules/views/theme
theme file (String, 9 characters ) theme.inc
path (String, 31 characters ) sites/all/modules/views/plugins
file (String, 27 characters ) views_plugin_pager_none.inc
parent (String, 6 characters ) parent
name (String, 4 characters ) none
is_plugin (Boolean) TRUE
field_aliases (Array, 2 elements)
node (Array, 1 element)
(Array, 2 elements)
tags (Array, 0 elements)
no_distinct (NULL)
pure_distinct (Boolean) FALSE
view (Object) view
∞ (Recursion)
display (NULL)
plugin_type (String, 5 characters ) query
plugin_name (String, 11 characters ) views_query
options (Array, 6 elements)
disable_sql_rewrite (Boolean) FALSE
distinct (Boolean) FALSE
pure_distinct (Boolean) FALSE
slave (Boolean) FALSE
query_comment (String, 0 characters )
query_tags (Array, 0 elements)
definition (Array, 10 elements)
title (String, 11 characters ) SQL Abfrage
help (String, 68 characters ) Abfrage generiert und mithilfe der Drupal-Daten...
handler (String, 26 characters ) views_plugin_query_default
module (String, 5 characters ) views
theme path (String, 29 characters ) sites/all/modules/views/theme
theme file (String, 9 characters ) theme.inc
path (String, 31 characters ) sites/all/modules/views/plugins
file (String, 30 characters ) views_plugin_query_default.inc
parent (String, 6 characters ) parent
name (String, 11 characters ) views_query
is_plugin (Boolean) TRUE
base_table (String, 4 characters ) node
base_field (String, 3 characters ) nid
count_field (Array, 4 elements)
table (String, 4 characters ) node
field (String, 3 characters ) nid
alias (String, 3 characters ) nid
count (Boolean) TRUE
display_handler (Object) vbfb_plugin_display_block
∞ (Recursion)
display (Array, 2 elements)
default (Object) views_display
vm_switcher (Object) views_display
style_plugin (Object) views_plugin_style_default
row_tokens (Array, 1 element)
0 (Array, 7 elements)
row_plugin (Object) views_plugin_row_fields
view (Object) view
∞ (Recursion)
display (Object) views_display
∞ (Recursion)
plugin_type (String, 3 characters ) row
plugin_name (String, 6 characters ) fields
options (Array, 4 elements)
inline (Array, 3 elements)
separator (String, 0 characters )
hide_empty (Integer) 0
default_field_elements (Integer) 1
definition (Array, 15 elements)
title (String, 6 characters ) Felder
help (String, 49 characters ) Die Felder mit einer optionalen Vorlage anzeigen.
handler (String, 23 characters ) views_plugin_row_fields
theme (String, 17 characters ) views_view_fields
uses fields (Boolean) TRUE
uses options (Boolean) TRUE
type (String, 6 characters ) normal
help topic (String, 16 characters ) style-row-fields
module (String, 5 characters ) views
theme path (String, 29 characters ) sites/all/modules/views/theme
theme file (String, 9 characters ) theme.inc
path (String, 31 characters ) sites/all/modules/views/plugins
file (String, 27 characters ) views_plugin_row_fields.inc
parent (String, 6 characters ) parent
name (String, 6 characters ) fields
is_plugin (Boolean) TRUE
view (Object) view
∞ (Recursion)
display (Object) views_display
∞ (Recursion)
plugin_type (String, 5 characters ) style
plugin_name (String, 7 characters ) default
options (Array, 5 elements)
grouping (Array, 0 elements)
row_class (String, 0 characters )
default_row_class (Integer) 1
row_class_special (Integer) 1
uses_fields (Boolean) FALSE
definition (Array, 17 elements)
title (String, 19 characters ) Unformatierte Liste
help (String, 33 characters ) Zeigt die Zeilen nacheinander an.
handler (String, 26 characters ) views_plugin_style_default
theme (String, 22 characters ) views_view_unformatted
uses row plugin (Boolean) TRUE
uses row class (Boolean) TRUE
uses grouping (Boolean) TRUE
uses options (Boolean) TRUE
type (String, 6 characters ) normal
help topic (String, 17 characters ) style-unformatted
module (String, 5 characters ) views
theme path (String, 29 characters ) sites/all/modules/views/theme
theme file (String, 9 characters ) theme.inc
path (String, 31 characters ) sites/all/modules/views/plugins
file (String, 30 characters ) views_plugin_style_default.inc
parent (String, 6 characters ) parent
name (String, 7 characters ) default
is_plugin (Boolean) TRUE
rendered_fields (Array, 1 element)
0 (Array, 4 elements)
render_tokens (Array, 1 element)
0 (Array, 7 elements)
style_options (Array, 4 elements)
grouping (Array, 0 elements)
row_class (String, 0 characters )
default_row_class (Integer) 1
row_class_special (Integer) 1
override_url (NULL)
override_path (NULL)
base_database (NULL)
field (Array, 5 elements)
∞ (Recursion)
argument (Array, 2 elements)
sort (Array, 0 elements)
filter (Array, 2 elements)
relationship (Array, 0 elements)
header (Array, 0 elements)
footer (Array, 0 elements)
empty (Array, 0 elements)
table (String, 10 characters ) views_view
type (String, 6 characters ) Normal
export_type (Integer) 1
executed (Boolean) TRUE
built (Boolean) TRUE
build_info (Array, 6 elements)
attachment_before (String, 0 characters )
attachment_after (String, 0 characters )
dom_id (String, 32 characters ) a70b8d4f12af5b5d7ece9fb78420b4f4
relationships_fixed (Boolean) TRUE
localization_plugin (Object) i18nviews_plugin_localization_i18nstrings
inited (Boolean) TRUE
build_sort (Boolean) TRUE
plugin_name (String, 7 characters ) default
build_time (Float) 0.002000093460083
execute_time (Float) 0.00067496299743652
row_index (Integer) 0
options (Array, 4 elements)
inline (Array, 3 elements)
separator (String, 0 characters )
hide_empty (Integer) 0
default_field_elements (Integer) 1
row (Object) stdClass
field_alias (String, 0 characters )
theme_hook_original (String, 17 characters ) views_view_fields
theme_hook_suggestions (Array, 0 elements)
zebra (String, 4 characters ) even
id (Integer) 2
directory (String, 23 characters ) sites/all/modules/views
classes_array (Array, 1 element)
attributes_array (Array, 0 elements)
title_attributes_array (Array, 0 elements)
content_attributes_array (Array, 0 elements)
title_prefix (Array, 0 elements)
title_suffix (Array, 0 elements)
user (Object) stdClass
db_is_active (Boolean) TRUE
is_admin (Boolean) TRUE
logged_in (Boolean) TRUE
is_front (Boolean) FALSE
fields (Array, 3 elements)
nothing (Object) stdClass
nothing_1 (Object) stdClass
nothing_2 (Object) stdClass

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, wenn du dort Daten

Eingetragen von Hyp1 (1463)
am 09.08.2017 - 21:15 Uhr

Hi,

wenn du dort Daten abfragen kannst, die so aussehen, bist Du schon mal auf dem richtigen Weg:

if ($vars['view']->name == "vm_switcher"){

    if($nothing['href'] == $current_path()){
     $vars['fields']['nothing']->content = '<div class="active">' . $vars['fields']['nothing']->content . '</div>';
    }

    }

  }

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi nochmal,übrigens ist der

Eingetragen von Hyp1 (1463)
am 10.08.2017 - 21:36 Uhr

Hi nochmal,

übrigens ist der view Name "view_mode_switcher" und nicht "vm_switcher", wie oben im dump zu lesen ist!
demzufolge müsste die Abfrage
if ($vars['view']->name == "vm_switcher"){
eigentlich
if ($vars['view']->name == "view_mode_switcher"){
lauten.

Gruss

Robert

PS: vm_switcher heisst wohl das Display(steht auch im dump) ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 1 Tag
  • Hey danke
    vor 1 Woche 2 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 19 Stunden
  • Da scheint die Terminologie
    vor 2 Wochen 22 Stunden
  • Kannst doch auch alles direkt
    vor 2 Wochen 5 Tagen
  • In der entsprechenden View
    vor 2 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 5 Tagen
  • gelöst
    vor 5 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 9 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