protected function editpostnow() { if (!$this->load()) { return false; } if ($this->isUserBanned()) { return false; } if ($this->isIPBanned()) { return false; } $this->fields['name'] = JRequest::getString('authorname', $this->msg_cat->name); $this->fields['email'] = JRequest::getString('email', null); $this->fields['subject'] = JRequest::getVar('subject', null, 'POST', 'string', JREQUEST_ALLOWRAW); $this->fields['message'] = JRequest::getVar('message', null, 'POST', 'string', JREQUEST_ALLOWRAW); $this->fields['topic_emoticon'] = JRequest::getInt('topic_emoticon', null); $this->fields['modified_reason'] = JRequest::getString('modified_reason', null); $this->options['attachments'] = 1; $this->options['anonymous'] = JRequest::getInt('anonymous', 0); // This stores above data into session if ($this->tokenProtection()) { return false; } require_once KUNENA_PATH_LIB . '/kunena.posting.class.php'; $message = new CKunenaPosting(); $success = $message->edit($this->id, $this->fields, $this->options); if ($success) { $success = $message->save(); } // Handle errors if (!$success) { $errors = $message->getErrors(); foreach ($errors as $field => $error) { $this->_app->enqueueMessage($field . ': ' . $error, 'error'); } $this->_app->setUserState('com_kunena.postfields', array('catid' => $this->catid, 'fields' => $this->fields, 'options' => $this->options)); $this->redirectBack(); } $mes = $message->parent; if ($this->config->pollenabled) { $polltitle = JRequest::getString('poll_title', 0); $optionsnumbers = JRequest::getInt('number_total_options', ''); $polltimetolive = JRequest::getString('poll_time_to_live', 0); $poll_optionsID = JRequest::getVar('polloptionsID', array(), 'post', 'array'); $optvalue = array(); foreach ($poll_optionsID as $opt) { if (!empty($opt)) { $optvalue[] = $opt; } } //need to check if the poll exist, if it's not the case the poll is insered like new poll if (!$mes->poll_id) { if (!empty($optvalue)) { $this->poll->save_new_poll($polltimetolive, $polltitle, $this->id, $optvalue); } } else { if (empty($polltitle) && empty($poll_optionsID)) { //The poll is deleted because the polltitle and the options are empty $this->poll->delete_poll($this->id); } else { $this->poll->update_poll_edit($polltimetolive, $this->id, $polltitle, $optionsnumbers, $poll_optionsID); } } } $this->_app->enqueueMessage(JText::_('COM_KUNENA_POST_SUCCESS_EDIT')); if ($this->msg_cat->review && !CKunenaTools::isModerator($this->my->id, $this->catid)) { $this->_app->enqueueMessage(JText::_('COM_KUNENA_GEN_MODERATED')); } while (@ob_end_clean()) { } $this->_app->redirect(CKunenaLink::GetMessageURL($this->id, $this->catid, 0, false)); }
protected function replyTopic($row, $catid, $thread, $subject) { if (JRequest::checkToken () == false) { $this->_app->enqueueMessage ( JText::_ ( 'COM_KUNENA_ERROR_TOKEN' ), 'error' ); return false; } $this->isBanned(); $this->verifyCaptcha(); $this->checkFlood(); require_once (KPATH_SITE . '/lib/kunena.posting.class.php'); if (intval ( $thread ) == 0) { $thread = $this->createTopic ( $row, $catid, $subject ); } $message = new CKunenaPosting ( ); $myprofile = KunenaFactory::getUser(); $fields ['name'] = JRequest::getString ( 'name', $myprofile->getName (), 'POST' ); $fields ['email'] = JRequest::getString ( 'email', null, 'POST' ); $fields ['subject'] = $subject; $fields ['message'] = JRequest::getString ( 'message', null, 'POST' ); $success = $message->reply ( $thread, $fields ); if ($success) { $newMessageId = $message->save (); } // Handle errors if (! $success || ! $newMessageId) { $errors = $message->getErrors (); foreach ( $errors as $field => $error ) { $this->_app->enqueueMessage ( $field . ': ' . $error, 'error' ); } return false; } $config = KunenaFactory::getConfig(); $holdPost = $message->get ( 'hold' ); require_once (KPATH_SITE . '/lib/kunena.link.class.php'); $message->emailToSubscribers(false, $config->allowsubscriptions && ! $holdPost, $config->mailmod || $holdPost, $config->mailadmin || $holdPost); if ($holdPost) { $result = JText::_ ( 'PLG_KUNENADISCUSS_PENDING_MODERATOR_APPROVAL' ); } else { $result = JText::_ ( 'PLG_KUNENADISCUSS_MESSAGE_POSTED' ); } // Redirect $uri = JFactory::getURI (); $app = JFactory::getApplication ( 'site' ); $app->redirect ( $uri->toString (), $result ); }
/** * process the plugin, called when form is submitted * * @param object $params * @param object form */ function onBeforeStore(&$params, &$formModel) { jimport('joomla.filesystem.file'); $files[] = COM_FABRIK_BASE . DS . 'components' . DS . 'com_kunena' . DS . 'class.kunena.php'; $define = COM_FABRIK_BASE . DS . 'components' . DS . 'com_kunena' . DS . 'lib' . DS . 'kunena.defines.php'; $files[] = COM_FABRIK_BASE . DS . 'components' . DS . 'com_kunena' . DS . 'lib' . DS . 'kunena.defines.php'; $files[] = COM_FABRIK_BASE . DS . 'components' . DS . 'com_kunena' . DS . 'lib' . DS . 'kunena.link.class.php'; $files[] = COM_FABRIK_BASE . DS . 'components' . DS . 'com_kunena' . DS . 'lib' . DS . 'kunena.link.class.php'; if (!JFile::exists($define)) { JError::raiseError(500, 'could not find the Kunena component'); return false; } require_once $define; foreach ($files as $file) { if (!JFile::exists($file)) { JError::raiseError(500, 'could not find the Kunena file: ' . $file); return false; } require_once $file; } $postfile = KUNENA_PATH_FUNCS . DS . 'post.php'; $w = new FabrikWorker(); if (!JFile::exists($postfile)) { JError::raiseError(500, "cant find post file"); return false; } //new include_once COM_FABRIK_BASE . DS . 'components' . DS . 'com_kunena' . DS . 'lib' . DS . 'kunena.timeformat.class.php'; if (file_exists(KUNENA_ABSTMPLTPATH . '/initialize.php')) { require_once KUNENA_ABSTMPLTPATH . '/initialize.php'; } else { require_once KPATH_SITE . '/template/default/initialize.php'; } // Kunena Current Template Icons Pack if (file_exists(KUNENA_ABSTMPLTPATH . '/icons.php')) { include KUNENA_ABSTMPLTPATH . '/icons.php'; } else { include KUNENA_PATH_TEMPLATE_DEFAULT . DS . 'icons.php'; } $kunena_session = KunenaFactory::getSession(true); //end new $catid = $params->get('kunena_category', 0); $msg = $w->parseMessageForPlaceHolder($params->get('kunena_content'), $formModel->_fullFormData); $subject = $params->get('kunena_title'); $subject = $w->parseMessageForPlaceHolder($subject, $formModel->_fullFormData); include $postfile; $page = new CKunenaPost(); require_once KUNENA_PATH_LIB . DS . 'kunena.posting.class.php'; $message = new CKunenaPosting(); $user =& JFactory::getUser(); $fields['name'] = $user->guest ? 'Annonymous' : $user->get('name'); $fields['email'] = $user->guest ? '*****@*****.**' : $user->get('email'); $fields['subject'] = $subject; $fields['message'] = $msg; $fields['topic_emoticon'] = JRequest::getInt('topic_emoticon', null); $options['attachments'] = 1; $options['anonymous'] = 0; $lang =& JFactory::getLanguage(); $lang->load('com_kunena'); $success = $message->post($catid, $fields, $options); // Handle errors if (!$success) { $errors = $message->getErrors(); foreach ($errors as $field => $error) { JError::raiseNotice(500, "{$field}: {$error}"); return false; } } else { $success = $message->save(); // Handle errors if (!$success) { $errors = $message->getErrors(); foreach ($errors as $field => $error) { JError::raiseNotice(500, "{$field}: {$error}"); return false; } } } }