Как данные из Вьюхи использовать для меток на Яндекс карте
В футоре вьюхи создаём Подвал: Глобальный: Нефильтрованный текст или ещё чего.
Туда пишем:
<div id="map"></div>
Данные берутся из вьюхи. Но есть и модуль - vjuha.
Например.
А в Модуле создаём Хук:
<?php
function vjuha_views_post_render(\Drupal\views\ViewExecutable $view, &$output, \Drupal\views\Plugin\views\cache\CachePluginBase $cache) {
$current_path = \Drupal::service('path.current')->getPath();
if($current_path == '/uuu'){
$t = '
{
"type": "FeatureCollection",
"features": [';
$i=0;
foreach($view->result as $r) {
$v = $r->_entity->body->value;
if ($i<5) $ik ='islands#redDeliveryIcon';
else $ik = 'islands#greenAutoIcon';
//$ik = 'islands#greenAutoIcon';
$k= $r->_entity->nid->value;
$t .= <<<JJJ
{"type": "Feature", "id": $i, "geometry": {"type": "Point", "coordinates": [$v]}, "properties": {"balloonContentHeader": "<font size=3><b><a target='_blank' href='/node/$k'>Здесь может быть ваша ссылка</a></b></font>", "balloonContentBody": "<p><a target='_blank' href='/node/$k'>$k</a></p><p>Ваше имя: <input name='login'></p><p><em>Телефон в формате 2xxx-xxx:</em><input></p><p><input type='submit' value='Отправить'></p>", "balloonContentFooter": "<font size=1>Информация предоставлена: </font> <strong>этим балуном</strong>", "clusterCaption": "Нода <strong>$k </strong>", "hintContent": "<strong>$k</strong>"}, "options": {"preset": "$ik"}},
JJJ;
++$i;
}
$t = rtrim($t, ',');
$t .='
]
}';
//print $t;
$output['rrr'] = ['#markup' => 'rrrrrrrrrr'];
$output['#attached']['drupalSettings']['myname'] = $t; // Отправляем метки в JS файл
$output['#attached']['library'][] = 'vjuha/vjuha'; // Подключаем этот JS файл
\Drupal::messenger()->addError('Сработала Вьюха');
//foreach($output as $k=>$v) print $k; print_r( $output['#view']); exit;
}
}
По моему вообще не важно где. В любом отдельном или не отдельном модуле
В файле vjuha.libraries.yml:
vjuha:
css:
base:
vjuha.css: {}
js:
"https://api-maps.yandex.ru/2.1/?apikey=df4d6dde-5649-4c58-81f6-9002379db... {type: external}
vjuha.js: {}
dependencies:
- core/drupal
- core/jquery
- core/once
