add_aggregation.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. // Lisa kanded saldode display'dele views_aggregator SUM summeerimine.
  3. // Saldo = field_deebet - field_kreedit, summeeritud kõigilt ridadelt.
  4. use Drupal\views\Entity\View;
  5. $view = View::load('kanded');
  6. if (!$view) {
  7. echo "kanded view puudub\n";
  8. return;
  9. }
  10. $displays = $view->get('display');
  11. $update = [
  12. 'page_liikmemaksud_saldod' => ['title' => 'Liikmemaksude saldod'],
  13. 'page_projektid_saldod' => ['title' => 'Projektide saldod'],
  14. ];
  15. foreach ($update as $id => $meta) {
  16. if (!isset($displays[$id])) {
  17. echo "skip $id (puudub)\n";
  18. continue;
  19. }
  20. // Vaheta stiil views_aggregator'iks, summeeri deebet/kreedit.
  21. $displays[$id]['display_options']['title'] = $meta['title'];
  22. $displays[$id]['display_options']['style'] = [
  23. 'type' => 'views_aggregator_plugin_style_table',
  24. 'options' => [
  25. 'grouping' => [],
  26. 'columns' => [
  27. 'field_date' => 'field_date',
  28. 'field_kirjeldus' => 'field_kirjeldus',
  29. 'field_deebet' => 'field_deebet',
  30. 'field_kreedit' => 'field_kreedit',
  31. ],
  32. 'default' => 'field_date',
  33. 'info' => [
  34. 'field_date' => [
  35. 'sortable' => false, 'default_sort_order' => 'asc', 'align' => '', 'separator' => '', 'empty_column' => false,
  36. 'has_aggr' => true, 'aggr' => ['views_aggregator_group_and_compress' => 'views_aggregator_group_and_compress'], 'aggr_par' => '',
  37. 'has_aggr_column' => false, 'aggr_column' => 'views_aggregator_first', 'aggr_par_column' => '',
  38. ],
  39. 'field_kirjeldus' => [
  40. 'sortable' => false, 'default_sort_order' => 'asc', 'align' => '', 'separator' => '', 'empty_column' => false,
  41. 'has_aggr' => true, 'aggr' => ['views_aggregator_group_and_compress' => 'views_aggregator_group_and_compress'], 'aggr_par' => '',
  42. 'has_aggr_column' => false, 'aggr_column' => 'views_aggregator_first', 'aggr_par_column' => '',
  43. ],
  44. 'field_deebet' => [
  45. 'sortable' => false, 'default_sort_order' => 'asc', 'align' => '', 'separator' => '', 'empty_column' => false,
  46. 'has_aggr' => false, 'aggr' => ['views_aggregator_first' => 'views_aggregator_first'], 'aggr_par' => '',
  47. 'has_aggr_column' => true, 'aggr_column' => 'views_aggregator_sum', 'aggr_par_column' => '',
  48. ],
  49. 'field_kreedit' => [
  50. 'sortable' => false, 'default_sort_order' => 'asc', 'align' => '', 'separator' => '', 'empty_column' => false,
  51. 'has_aggr' => false, 'aggr' => ['views_aggregator_first' => 'views_aggregator_first'], 'aggr_par' => '',
  52. 'has_aggr_column' => true, 'aggr_column' => 'views_aggregator_sum', 'aggr_par_column' => '',
  53. ],
  54. ],
  55. 'column_aggregation' => [
  56. 'totals_per_page' => 1,
  57. 'totals_row_position' => [1 => 0, 2 => '2'],
  58. 'precision' => 2,
  59. ],
  60. 'override' => true,
  61. 'caption' => '',
  62. 'summary' => '',
  63. 'description' => '',
  64. ],
  65. ];
  66. $displays[$id]['display_options']['defaults']['style'] = false;
  67. echo "uuendatud: $id\n";
  68. }
  69. $view->set('display', $displays);
  70. $view->save();
  71. echo "done\n";