Esempio n. 1
0
 /**
  * updateForumFromTopic
  *
  * @param	Xcforum_TopicsObject  $obj
  *
  * @param	array  $attributes
  *
  * @return	Xcforum_ForumsObject
  **/
 public function updateForumFromTopic($obj, $attributes, $opt)
 {
     // called from Posts.class.php
     // TODO: 権限エラー(?)が出るが書き込みは完了している
     $_forum_id = $obj->get('forum_id');
     //adump($_topic_id);
     if (!empty($_forum_id) && (int) $_forum_id > 0) {
         $forum = $this->get($_forum_id);
         //adump($opt);
         foreach ($attributes as $key => $value) {
             $forum->set($key, $value);
         }
         if ($opt['post_countup'] === true) {
             $forum->set('forum_posts_count', (int) $forum->get('forum_posts_count') + 1);
         }
         if ($opt['topic_countup'] === true) {
             $forum->set('forum_topics_count', (int) $forum->get('forum_topics_count') + 1);
         }
         //adump($forum);
         // update topic information
         if ($forum instanceof Xcforum_ForumsObject) {
             if ($this->insert($forum, true) === true) {
                 //die;
                 return $this->get($_forum_id);
             }
         }
     }
     return NULL;
 }
Esempio n. 2
0
 /**
  * updateTopicFromPost
  *
  * @param	Xcforum_PostObject  $obj
  *
  * @param	array  $attributes
  *
  * @return	Xcforum_TopicsObject
  **/
 public function updateTopicFromPost($obj, $attributes)
 {
     // called from Posts.class.php
     $_topic_id = $obj->get('topic_id');
     //adump($_topic_id);
     if (!empty($_topic_id) && (int) $_topic_id > 0) {
         $topic = $this->get($_topic_id);
     } else {
         // add new topic
         $topic = new Xcforum_TopicsObject();
         //$topic->set('forum_id', $forum_id);
         $topic->set('topic_title', $obj->get('subject'));
         $topic->set('topic_first_post_id', $obj->get('post_id'));
         $topic->set('topic_first_post_time', $obj->get('post_time'));
     }
     foreach ($attributes as $key => $value) {
         $topic->set($key, $value);
     }
     //adump($topic);
     // update post information
     //$topic->set('topic_last_post_id', $obj->get('post_id'));
     //$topic->set('topic_last_post_time', $obj->get('post_time'));
     $topic->set('topic_posts_count', (int) $topic->get('topic_posts_count') + 1);
     if ($topic instanceof Xcforum_TopicsObject) {
         if ($this->insert($topic, true) === true) {
             $inserted_id = (int) $this->db->getInsertId();
             $tp_id = $inserted_id > 0 ? $inserted_id : $_topic_id;
             $topic->set('topic_id', $tp_id);
             return $topic;
         }
     }
     return NULL;
 }