Active class zu Views Linkliste hinzufügen
am 08.08.2017 - 10:20 Uhr in
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
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich habe versucht, das mit
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?
Hallo,Du musst vars per
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
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Danke für die Hilfe. Ich habe
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.
Installier mal das devel
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>';
}
}
}
?>
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Ohne es zu verstehen, aber
am 09.08.2017 - 14:17 Uhr
Ohne es zu verstehen, aber das kommt raus:
... (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
Hi, wenn du dort Daten
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
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hi nochmal,übrigens ist der
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) ;-)
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)