add_kanded_displays.php 6.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. // Loo täiendavad page display'd + menüülingid D7 struktuuri alusel.
  3. // Töötab otse config API-ga (Views display lisamine programmiliselt on keeruline,
  4. // seega kasutame lihtsamaid path-idega page display-sid YAML kaudu).
  5. use Drupal\Component\Serialization\Yaml;
  6. // 1. "kanded" vaatele lisa page display'd: liikmemaksud, projektid, tegevuskulud, saldod.
  7. $view = \Drupal::entityTypeManager()->getStorage('view')->load('kanded');
  8. if ($view) {
  9. $displays = $view->get('display');
  10. // kanded/liikmemaksud -> kande_tyyp=6 (liikmemaks)
  11. $displays['page_liikmemaksud'] = [
  12. 'id' => 'page_liikmemaksud',
  13. 'display_title' => 'Liikmemaksude kanded',
  14. 'display_plugin' => 'page',
  15. 'position' => 2,
  16. 'display_options' => [
  17. 'path' => 'kanded/liikmemaksud',
  18. 'filters' => [
  19. 'status' => ['id' => 'status', 'table' => 'node_field_data', 'field' => 'status', 'entity_type' => 'node', 'entity_field' => 'status', 'plugin_id' => 'boolean', 'value' => '1', 'group' => 1, 'expose' => ['operator' => '']],
  20. 'type' => ['id' => 'type', 'table' => 'node_field_data', 'field' => 'type', 'entity_type' => 'node', 'entity_field' => 'type', 'plugin_id' => 'bundle', 'value' => ['kanne' => 'kanne'], 'expose' => ['operator_limit_selection' => false, 'operator_list' => []]],
  21. 'field_kande_tyyp_target_id' => ['id' => 'field_kande_tyyp_target_id', 'table' => 'node__field_kande_tyyp', 'field' => 'field_kande_tyyp_target_id', 'relationship' => 'none', 'group_type' => 'group', 'admin_label' => '', 'entity_type' => 'node', 'entity_field' => 'field_kande_tyyp', 'plugin_id' => 'taxonomy_index_tid', 'operator' => 'or', 'value' => [6 => 6], 'group' => 1, 'exposed' => false, 'expose' => ['operator_id' => '', 'label' => '', 'description' => '', 'use_operator' => false, 'operator' => '', 'operator_limit_selection' => false, 'operator_list' => [], 'identifier' => '', 'required' => false, 'remember' => false, 'multiple' => false, 'remember_roles' => ['authenticated' => 'authenticated', 'anonymous' => 0, 'administrator' => 0]], 'is_grouped' => false, 'group_info' => ['label' => '', 'description' => '', 'identifier' => '', 'optional' => true, 'widget' => 'select', 'multiple' => false, 'remember' => 0, 'default_group' => 'All', 'default_group_multiple' => [], 'group_items' => []], 'vid' => 'kanne', 'type' => 'select', 'limit' => true, 'error_message' => false],
  22. ],
  23. 'defaults' => ['filters' => false],
  24. ],
  25. ];
  26. $displays['page_projektid'] = [
  27. 'id' => 'page_projektid',
  28. 'display_title' => 'Projektide kanded',
  29. 'display_plugin' => 'page',
  30. 'position' => 3,
  31. 'display_options' => [
  32. 'path' => 'kanded/projektid',
  33. 'filters' => [
  34. 'status' => ['id' => 'status', 'table' => 'node_field_data', 'field' => 'status', 'entity_type' => 'node', 'entity_field' => 'status', 'plugin_id' => 'boolean', 'value' => '1', 'group' => 1, 'expose' => ['operator' => '']],
  35. 'type' => ['id' => 'type', 'table' => 'node_field_data', 'field' => 'type', 'entity_type' => 'node', 'entity_field' => 'type', 'plugin_id' => 'bundle', 'value' => ['kanne' => 'kanne'], 'expose' => ['operator_limit_selection' => false, 'operator_list' => []]],
  36. 'field_kande_tyyp_target_id' => ['id' => 'field_kande_tyyp_target_id', 'table' => 'node__field_kande_tyyp', 'field' => 'field_kande_tyyp_target_id', 'relationship' => 'none', 'group_type' => 'group', 'admin_label' => '', 'plugin_id' => 'taxonomy_index_tid', 'operator' => 'or', 'value' => [8 => 8], 'group' => 1, 'exposed' => false, 'expose' => ['operator_id' => '', 'label' => '', 'description' => '', 'use_operator' => false, 'operator' => '', 'operator_limit_selection' => false, 'operator_list' => [], 'identifier' => '', 'required' => false, 'remember' => false, 'multiple' => false, 'remember_roles' => ['authenticated' => 'authenticated', 'anonymous' => 0, 'administrator' => 0]], 'is_grouped' => false, 'group_info' => ['label' => '', 'description' => '', 'identifier' => '', 'optional' => true, 'widget' => 'select', 'multiple' => false, 'remember' => 0, 'default_group' => 'All', 'default_group_multiple' => [], 'group_items' => []], 'vid' => 'kanne', 'type' => 'select', 'limit' => true, 'error_message' => false],
  37. ],
  38. 'defaults' => ['filters' => false],
  39. ],
  40. ];
  41. $displays['page_tegevuskulud'] = [
  42. 'id' => 'page_tegevuskulud',
  43. 'display_title' => 'Tegevuskulude kanded',
  44. 'display_plugin' => 'page',
  45. 'position' => 4,
  46. 'display_options' => [
  47. 'path' => 'kanded/tegevuskulud',
  48. 'filters' => [
  49. 'status' => ['id' => 'status', 'table' => 'node_field_data', 'field' => 'status', 'entity_type' => 'node', 'entity_field' => 'status', 'plugin_id' => 'boolean', 'value' => '1', 'group' => 1, 'expose' => ['operator' => '']],
  50. 'type' => ['id' => 'type', 'table' => 'node_field_data', 'field' => 'type', 'entity_type' => 'node', 'entity_field' => 'type', 'plugin_id' => 'bundle', 'value' => ['kanne' => 'kanne'], 'expose' => ['operator_limit_selection' => false, 'operator_list' => []]],
  51. 'field_kande_tyyp_target_id' => ['id' => 'field_kande_tyyp_target_id', 'table' => 'node__field_kande_tyyp', 'field' => 'field_kande_tyyp_target_id', 'relationship' => 'none', 'group_type' => 'group', 'admin_label' => '', 'plugin_id' => 'taxonomy_index_tid', 'operator' => 'or', 'value' => [29 => 29], 'group' => 1, 'exposed' => false, 'expose' => ['operator_id' => '', 'label' => '', 'description' => '', 'use_operator' => false, 'operator' => '', 'operator_limit_selection' => false, 'operator_list' => [], 'identifier' => '', 'required' => false, 'remember' => false, 'multiple' => false, 'remember_roles' => ['authenticated' => 'authenticated', 'anonymous' => 0, 'administrator' => 0]], 'is_grouped' => false, 'group_info' => ['label' => '', 'description' => '', 'identifier' => '', 'optional' => true, 'widget' => 'select', 'multiple' => false, 'remember' => 0, 'default_group' => 'All', 'default_group_multiple' => [], 'group_items' => []], 'vid' => 'kanne', 'type' => 'select', 'limit' => true, 'error_message' => false],
  52. ],
  53. 'defaults' => ['filters' => false],
  54. ],
  55. ];
  56. // saldod -> sama mis liikmemaksud/projektid, aga ilma (lihtsustatud).
  57. $displays['page_liikmemaksud_saldod'] = [
  58. 'id' => 'page_liikmemaksud_saldod',
  59. 'display_title' => 'Liikmemaksude saldod',
  60. 'display_plugin' => 'page',
  61. 'position' => 5,
  62. 'display_options' => [
  63. 'path' => 'kanded/liikmemaksud/saldod',
  64. 'filters' => $displays['page_liikmemaksud']['display_options']['filters'],
  65. 'defaults' => ['filters' => false],
  66. ],
  67. ];
  68. $displays['page_projektid_saldod'] = [
  69. 'id' => 'page_projektid_saldod',
  70. 'display_title' => 'Projektide saldod',
  71. 'display_plugin' => 'page',
  72. 'position' => 6,
  73. 'display_options' => [
  74. 'path' => 'kanded/projektid/saldod',
  75. 'filters' => $displays['page_projektid']['display_options']['filters'],
  76. 'defaults' => ['filters' => false],
  77. ],
  78. ];
  79. $view->set('display', $displays);
  80. $view->save();
  81. echo "kanded displays lisatud\n";
  82. }
  83. echo "done\n";