2015-07-02 5 views
1

Я пытаюсь вставить круг D3 на базовую страницу Drupal 7, но он отображается в неправильном разделе страницы - ниже нижнего колонтитула. См. Здесь: http://www.thedata.co/circlepackzoom10. Я пробовал разные темы, но не имеет значения.Drupal 7 + D3 - вставлять визуализацию окружного пакета на странице

Я использую метод php include с фильтром PHP: <?php include './sites/thedata.co/files/html/circle_packZoom-10.html';.

Я могу встроить D3-диаграмму в тело узла, так что это может быть сделано в некоторых случаях.

Использование Chrome, консоль JS определяет область содержимого как: <div class="field-item odd" property="content:encoded">. Также не работает с Firefox.

Вот полный код: http://jsfiddle.net/cajmcmahon/9a5xaovv/

var pack = d3.layout.pack() 
    .size([r, r]) 
    .children(function(d) { 
     return d.values; // accessor for children 
    }) 
    .value(function(d) { 
     return d.values; // accessor for values 
    }); 

//Declare SVG attributes 
var svg = d3.select("body").append("svg") 
    .attr("width", w) 
    .attr("height", w) 
    .append("g") 
    .attr("transform", "translate(" + (w - r)/2 + "," + (w - r)/2 + ")"); 

Любой любая идея, как поместить его в основной области содержимого узла? Благодарю.

ответ

1

Выберите элемент, в который вы хотите поместить диаграмму вместо выбора «body» в d3.select («body»). Append («svg»).

что-то вроде:

d3.select('#divID').append('svg') ... etc 

Поскольку этот метод просто присоединяет его к элементу тела веб-сайта.

+0

Спасибо! Это заставило меня идти в правильном направлении. Drupal theming немного сложнее (много гнездящихся). Я попробовал «div # main-content» и «div # node-content», но, похоже, не работал. Я использую «var svg = d3.select (« div # article-47 »). Append (« svg »), которые попадают в правильное положение, но это означает необходимость пересмотреть код, если я хочу вставить на другую страницу , Думаю, это вызов Drupal. Я отправлю обратно, если я получу общесистемное решение, то есть может быть встроено в любую страницу. –

+1

, вам может потребоваться добавить небольшую задержку в код d3, так как drupal может занять некоторое время для построения DOM. –

+0

Спасибо. Раньше я этого не пробовал. Я посмотрю, смогу ли я его отсортировать. –

Смежные вопросы