Visman 4 лет назад
Родитель
Сommit
49204fa185
2 измененных файлов с 40 добавлено и 5 удалено
  1. 19 4
      app/Models/Pages/Post.php
  2. 21 1
      app/Models/Poll/Model.php

+ 19 - 4
app/Models/Pages/Post.php

@@ -195,10 +195,6 @@ class Post extends Page
             $topic->last_post      = $now;
             $topic->sticky         = $v->stick_topic ? 1 : 0;
             $topic->stick_fp       = $v->stick_fp ? 1 : 0;
-#           $topic->poll_type   = ;
-#           $topic->poll_time   = ;
-#           $topic->poll_term   = ;
-#           $topic->poll_kol    = ;
 
             $this->c->topics->insert($topic);
         }
@@ -244,6 +240,25 @@ class Post extends Page
         if ($createTopic) {
             $topic->forum_id      = $forum->id;
             $topic->first_post_id = $post->id;
+
+            if (
+                '1' == $this->c->config->b_poll_enabled
+                && $v->poll_enable
+            ) {
+                $topic->poll_type  = 1;
+                $topic->poll_time  = $now;
+                $topic->poll_term  = $v->poll['hide_result'] ? $this->c->config->i_poll_term : 0;
+#                $topic->poll_votes = ;
+
+                $poll = $this->c->polls->create([
+                    'tid'      => $topic->id,
+                    'question' => $v->poll['question'],
+                    'answer'   => $v->poll['answer'],
+                    'type'     => $v->poll['type'],
+                ]);
+
+                $this->c->polls->insert($poll);
+            }
         }
 
         // обновление данных в теме и разделе

+ 21 - 1
app/Models/Poll/Model.php

@@ -13,7 +13,7 @@ use RuntimeException;
 class Model extends DataModel
 {
     /**
-     * Получение родительской темы
+     * Возвращает родительскую тему
      */
     protected function getparent(): Topic
     {
@@ -29,4 +29,24 @@ class Model extends DataModel
 
         return $topic;
     }
+
+    /**
+     * Устанавливает родительскую тему
+     */
+    protected function setparent(Topic $topic): void
+    {
+        if ($topic->id < 1) {
+            throw new RuntimeException('Parent has a bad id');
+        }
+
+        if (
+            $this->tid > 0
+            && $this->tid !== $topic->id
+        ) {
+            throw new RuntimeException('Alien parent');
+        }
+
+        $this->tid = $topic->id;
+    }
+
 }