No Drupal 6, uma visualização pode ser incorporada em um nó da seguinte maneira:
$viewName = 'LatestNews';
print views_embed_view($viewName);
Isso não funciona no drupal 7. Qual é a função para incorporar visualizações no drupal 7?
No Drupal 6, uma visualização pode ser incorporada em um nó da seguinte maneira:
$viewName = 'LatestNews';
print views_embed_view($viewName);
Isso não funciona no drupal 7. Qual é a função para incorporar visualizações no drupal 7?
Respostas:
No Drupal 7, você pode usar esse código.
Para uma página de visualização
print views_embed_view('name_of_view','page_1', $node->nid);
Para um bloco de visualização
print views_embed_view('faculty_core','block_1', $node->nid);
Para exibir uma exibição em um modelo de nó, use o seguinte código.
// Load the view.
$view = views_get_view('machine_name_of_view');
// Set the active display.
$view->set_display('your_view_display_name');
// Set any needed argument.
$view->set_arguments(array(arg(0), arg(1)));
// Execute the view.
$view->execute();
// Render the view.
print $view->render();
pre_execute()
antes de usar execute()
.
Por que não:
print views_embed_view($view_machine_name, $view_display_name, $arg1, $arg2);
onde $ arg, $ arg2, etc são opcionais.
Ou use o módulo Viewfield para incorporar uma vista como um campo.
Uma solução é usar o Panelizer para substituir o conteúdo do respectivo nó.
Digamos, por exemplo, que você tenha várias páginas únicas que precisam de uma visualização anexada.
1) Você pode usar o tipo de conteúdo da página ou talvez criar um novo tipo de conteúdo que será especificamente exibido em painel.
2) Ative o Panelizer para esse tipo de conteúdo, configure-o como "Permitir opção de exibição por registro" para que você possa configurar vários monitores do panelizer que serão personalizados para cada página da página. (cada exibição do painelizador pode ter seu próprio conjunto de visualizações anexado)
3) A partir daqui, você simplesmente cria uma visualização (eu gosto de usar os painéis de conteúdo para isso) e a adiciona à exibição de conteúdo do Panelizer de sua escolha.
Isso permite reutilizar um único tipo de conteúdo que realmente não precisa de seu próprio conjunto de campos, mas pode ser usado para fazer referência a outras entidades (como um campo) ou a vistas de referência.
Jogue no módulo Parágrafos e você terá um tipo de conteúdo de Canivete suíço. Falando nisso, seria um nome perfeito para o tipo de conteúdo personalizado usado para esse fim ... Hmm ....
Vamos apenas mencionar que o primeiro parâmetro é o nome da exibição, o segundo nome de exibição e depois disso você pode passar os parâmetros de filtro contextual.
Para que "$ node-nid", o terceiro parâmetro dependa da sua visualização ... o que ele espera do primeiro filtro contextual - id não precisa ser id do nó. Obviamente, você não está limitado a um parâmetro - passe quantos você tiver na exibição ... ou nenhum se sua exibição não tiver filtros contextuais.
Um módulo Drupal 7 e 8 muito configurável é o views_field_formatter, que permite incorporar uma visualização como formatador de campos