Guest User

Untitled

a guest
Jan 12th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. /**
  2. * Допустим, новости хранятся в таблице article с полями id, title, views и year
  3. */
  4. class Article extends yiibaseModel //yiidbActiveRecord
  5. {
  6. // Я добавил поля в модель и наследовал yiibaseModel потому, что не работаю с бд
  7. public $id;
  8. public $title;
  9. public $views;
  10. public $year;
  11.  
  12. public static function tableName()
  13. {
  14. return "article";
  15. }
  16. }
  17.  
  18. /**
  19. * $articles = Article::find()
  20. * // Сортируем по году и ID
  21. * ->orderBy(['year' => SORT_DESC, 'id' => SORT_ASC])
  22. * // Массив будет такого вида: [2017 => [Article, Article, ....], 2018 => [...]]
  23. * ->indexBy('year')
  24. * ->all();
  25. */
  26.  
  27. // У меня такой таблиц нет, я просто эмулирую выборку
  28.  
  29. $articles = [
  30. 2016 => [
  31. new Article([
  32. 'id' => 1,
  33. 'title' => "Test title",
  34. 'views' => 100500,
  35. 'year' => 2016
  36. ]),
  37. new Article([
  38. 'id' => 2,
  39. 'title' => "Test title 2",
  40. 'views' => 1000,
  41. 'year' => 2016
  42. ]),
  43. new Article([
  44. 'id' => 3,
  45. 'title' => "Title for 3",
  46. 'views' => 200,
  47. 'year' => 2016
  48. ]),
  49. ],
  50. 2017 => [
  51. new Article([
  52. 'id' => 4,
  53. 'title' => "Test title 2017",
  54. 'views' => 100500,
  55. 'year' => 2017
  56. ]),
  57. new Article([
  58. 'id' => 5,
  59. 'title' => "Test title 2017 2",
  60. 'views' => 0,
  61. 'year' => 2017
  62. ]),
  63. new Article([
  64. 'id' => 6,
  65. 'title' => "Title for 2017 3",
  66. 'views' => 800,
  67. 'year' => 2017
  68. ]),
  69. ]
  70. ];
  71.  
  72. <div class="ThisDay-default-index">
  73. <div class="form-group thisday-butt">
  74. <div class="col-md-2">
  75. <button type="submit" class="btn btn-default">Далее</button>
  76. </div>
  77. </div>
  78. <p class="thisday-time">Выберите ключевые новости
  79. 12 Января из прошлого:</p>
  80. <?php
  81. $form = yiiwidgetsActiveForm::begin([
  82. 'options' => [
  83. 'class' => 'thisday-content',
  84. ],
  85. ]); ?>
  86. <div class="thisday-container">
  87. <div class="horizontal-scroll-wrapper">
  88. <?php foreach ($articles as $year => $yearArticles): ?>
  89. <div class="control-group">
  90. <h3><?= $year ?></h3>
  91.  
  92. <?php foreach ($yearArticles as $article): ?>
  93.  
  94. <?= $form->field($article, 'id[' . $year . '][]')->radio([
  95. 'label' => apphelpersHtml::encode($article->title)
  96. . apphelpersHtml::tag('div', '', ['class' => 'control__indicator'])
  97. . apphelpersHtml::tag('span', $article->views, ['class' => 'control-views-count']),
  98. 'labelOptions' => [
  99. 'encode' => false,
  100. 'class' => 'control control--radio',
  101. ],
  102. ]); ?>
  103. <?php endforeach; ?>
  104. </div>
  105. <?php endforeach; ?>
  106. </div>
  107. </div>
  108. <?php yiiwidgetsActiveForm::end(); ?>
  109. </div>
Add Comment
Please, Sign In to add comment