Как использовать значение поля представлений drupal как Javascript Переменная - PullRequest
0 голосов
/ 29 января 2020

Я установил представления в Drupal 7, которые выводят значение поля, но я не знаю, как передать это значение поля для использования в качестве переменной в Javascript.

I знаю, что для узлов я мог бы просто сделать:

function MYMODULE_node_view($node, $view_mode, $langcode) {
  if ($view_mode == 'full') {
    $setting = array('MYMODULE' => array('currentNid' => $node->nid));
    $node->content['#attached']['js'][] = array(
      'data' => $setting,
      'type' => 'setting',
    );
  }
} 

и затем в Javascript: var currentNid = Drupal.settings.MYMODULE.currentNid;

Я действительно хочу знать, как это сделать с полями представлений.

1 Ответ

0 голосов
/ 03 марта 2020

Я публикую это решение на тот случай, если кому-то понадобится его в будущем.

MODULE.module

function MODULE_preprocess_views_view_fields(&$vars) {
  if ($vars['view']->name == 'VIEW_NAME' && $vars['view']->current_display == 
'DISPLAY_NAME') {
    //dpm($vars); use the devel module to expose available variable
  $myVar = $vars['fields']['uid']->content;
  drupal_add_js(array('MODULE' => array('mykey' => $myVar)), array('type' => 'setting'));
  drupal_add_js(drupal_get_path('module', 'MODULE') . '/MODULE.js');
  }
}

MODULE. JS

(function ($) {
Drupal.behaviors.MODULE = {
attach: function(context,settings) {

$(document).ready(function() {
    alert(settings.MODULE.mykey);
});
}}})(jQuery);
...