Esempio n. 1
0
	/**
	 * @param array|object $array
	 * @param string       $ignore
	 * @param string       $prefix
	 * @return boolean
	 */
	public function bind( $array, $ignore = '', $prefix = null )
	{
		$bind					=	parent::bind( $array, $ignore, $prefix );

		if ( $bind ) {
			$data				=	array();

			foreach ( $this as $k => $v ) {
				switch ( $k ) {
					case 'user_id':
						$k		=	'userid';
						break;
					case 'category':
						$k		=	'catid';
						break;
					case 'date':
						$k		=	'time';
						$v		=	Application::Date( $v, 'UTC' )->getTimestamp();
						break;
					case 'published':
						$k		=	'hold';
						$v		=	( $v == 1 ? 0 : 1 );
						break;
				}

				$data[$k]		=	$v;
			}

			$bind				=	$this->_post->bind( $data, explode( ' ', $ignore ), false );
		}

		return $bind;
	}
Esempio n. 2
0
	public function newTopic($fields=array(), $user=null) {
		kimport ('kunena.forum.topic');
		kimport ('kunena.forum.message');

		$catid = $this->getNewTopicCategory()->id;
		$user = KunenaUserHelper::get($user);
		$message = new KunenaForumMessage();
		$message->catid = $catid;
		$message->name = $user->getName('');
		$message->userid = $user->userid;
		$message->ip = $_SERVER ["REMOTE_ADDR"];
		$message->hold = $this->review ? (int)!$this->authorise ('moderate', $user, true) : 0;
		$message->bind($fields, array ('name', 'email', 'subject', 'message'));

		$topic = new KunenaForumTopic();
		$topic->category_id = $catid;
		$topic->hold = $message->hold;
		$topic->bind($fields, array ('subject','icon_id'));

		$message->setTopic($topic);
		return array($topic, $message);
	}
Esempio n. 3
0
 /**
  * @param array|bool $fields
  * @param mixed  $user
  * @param array|null  $safefields
  *
  * @return KunenaForumMessage
  */
 public function newReply($fields = array(), $user = null, $safefields = null)
 {
     $user = KunenaUserHelper::get($user);
     $category = $this->getCategory();
     $message = new KunenaForumMessage();
     $message->setTopic($this);
     $message->parent = $this->first_post_id;
     $message->thread = $this->id;
     $message->catid = $this->category_id;
     $message->name = $user->getName('');
     $message->userid = $user->userid;
     $message->subject = $this->subject;
     $message->ip = !empty($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : '';
     if ($this->hold) {
         // If topic was unapproved or deleted, use the same state for the new message
         $message->hold = $this->hold;
     } else {
         // Otherwise message is either unapproved or published depending if the category is moderated or not
         $message->hold = $category->review ? (int) (!$category->authorise('moderate', $user, true)) : 0;
     }
     if ($fields === true) {
         $user = KunenaUserHelper::get($this->first_post_userid);
         $text = preg_replace('/\\[confidential\\](.*?)\\[\\/confidential\\]/su', '', $this->first_post_message);
         $message->message = "[quote=\"{$user->getName($this->first_post_guest_name)}\" post={$this->first_post_id}]" . $text . "[/quote]";
     } else {
         if ($safefields) {
             $message->bind($safefields);
         }
         if ($fields) {
             $message->bind($fields, array('name', 'email', 'subject', 'message'), true);
         }
     }
     return $message;
 }
Esempio n. 4
0
 /**
  * @param array  $fields
  * @param mixed  $user
  * @param array  $safefields
  *
  * @return array
  */
 public function newTopic(array $fields = null, $user = null, array $safefields = null)
 {
     $catid = isset($safefields['category_id']) ? $safefields['category_id'] : $this->getNewTopicCategory($user)->id;
     $user = KunenaUserHelper::get($user);
     $message = new KunenaForumMessage();
     $message->catid = $catid;
     $message->name = $user->getName('');
     $message->userid = $user->userid;
     $message->ip = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
     $message->hold = $this->review ? (int) (!$this->authorise('moderate', $user, true)) : 0;
     if ($safefields) {
         $message->bind($safefields);
     }
     if ($fields) {
         $message->bind($fields, array('name', 'email', 'subject', 'message'), true);
     }
     $topic = new KunenaForumTopic();
     $topic->category_id = $catid;
     $topic->hold = KunenaForum::TOPIC_CREATION;
     if ($safefields) {
         $topic->bind($safefields);
     }
     if ($fields) {
         $topic->bind($fields, array('subject', 'icon_id'), true);
     }
     $message->setTopic($topic);
     return array($topic, $message);
 }