Em / admin / people, quero ocultar o nome de exibição (ou seja, o nome de exibição não deve aparecer na lista de usuários), mas apenas para uma função específica.
No meu arquivo .module, tentei os seguintes ganchos:
function hook_views_data_alter(array &$data) {
kint($data['users']);die;
}
function hook_views_pre_render(\Drupal\views\ViewExecutable $view) {
if($view->id() == 'myview'){
print_r($view->result);die;
// kint($value->_entity->get('title')->value);
}
}
function hook_views_post_render(\Drupal\views\ViewExecutable $view) {
if ($view->id() == 'viewid') {
// Set the view title.
$field_name = $view->getFields();
}
}
function hook_field_views_data_views_data_alter(array &$data, \Drupal\field\FieldStorageConfigInterface $field) {
$field_name = $field->getName();
echo 'hjsjhwd';
print_r($field_name);die;
}
Nenhum deles me ajudou. Pensei em obter os campos da visualização "usuário" e depois disso a desabilitarei para uma função específica. Mas na lista de visualizações, o campo Nome ainda está aparecendo. Como posso ocultá-lo para uma função específica?
Existe alguma maneira de conseguir isso?
display name
em / admin / page, quero ocultar essa coluna em particular. Pode ser Se eu ocultar o campo, essa coluna também será ocultada para minha função específica.Respostas:
A maneira mais eficiente seria usar hook_views_pre_view (), que permite alterar uma View no início do processo, ou seja, antes de qualquer consulta ser criada / executada e antes de qualquer renderização. Você pode remover o manipulador de campo 'nome' da Visualização com base na lógica desejada.
Esta solução pressupõe que você só esteja interessado em atender a este caso de uso muito específico - remova o campo somente dessa Visualização específica. Os usuários ainda poderão ver os Nomes para exibição dos usuários em outras áreas do site.
fonte
$views->id() ===
?$views->id()
? Deveria ser$view->id()
?if (empty(array_intersect($userRoles, $userRolesAllowed)))
. Mais informações emarray_intersect
Você pode ocultar os campos usando hook_entity_field_access , pode ocultar os campos com base na conta do usuário (a função é uma de suas propriedades), a operação e a entidade que contêm o campo.
Você também pode usar o módulo Permissões de campo para ocultar um campo de determinadas funções.
fonte
Quando você precisar excluir o cabeçalho da tabela <td> e também as linhas <td>, poderá usar o template_preprocess_views_view_table
Nota: Para qualquer necessidade como essa, tente não usar mais de dois ganchos para atender às suas necessidades. Desde Drupal sempre fará o que quiser usando um ou dois ganchos não mais.
Atualização: para o Drupal 7 também usando o mesmo nome de gancho neste URL template_preprocess_views_view_table
fonte
Use o módulo Permissões do campo Views . Não é necessário código personalizado!
O suporte para funções foi adicionado há cerca de um mês.
fonte