JUDownloadFrontHelperLanguage::loadLanguageFile("com_judownload.custom"); if (JUDownloadHelper::isJoomla3x()) { JHtml::_('script', 'system/core.js', false, true); } $app = JFactory::getApplication(); $task = $app->input->get('task'); switch ($task) { case 'captcha': $namespace = $app->input->getString('captcha_namespace', ''); JUDownloadFrontHelperCaptcha::captchaSecurityImages($namespace); exit; break; case 'rawdata': $field_id = $app->input->getInt('field_id', 0); $doc_id = $app->input->getInt('doc_id', 0); $fieldObj = JUDownloadFrontHelperField::getField($field_id, $doc_id); JUDownloadHelper::obCleanData(); $fieldObj->getRawData(); exit; break; case 'cron': JUDownloadFrontHelperMail::sendMailq();
<label class="control-label col-sm-2" for="inputEmail"> <?php echo JText::_('COM_JUDOWNLOAD_EMAIL'); ?> <span style="color: red">*</span> </label> <div class="col-sm-10"> <input type="text" class="required email" name="jform[email]" value="" id="inputEmail" size="32"/> </div> </div> <div class="form-group"> <label for="security_code" class="control-label col-sm-2"> <?php echo JText::_('COM_JUDOWNLOAD_CAPTCHA'); ?><span style="color: red">*</span> </label> <div class="col-sm-10"> <?php echo JUDownloadFrontHelperCaptcha::getCaptcha(false, null, false); ?> </div> </div> <div class="form-group"> <label class="control-label col-sm-2"></label> <div class="col-sm-10"> <button class="btn btn-default btn-primary" onclick="Joomla.submitbutton('subscribe.save')"> <?php echo JText::_('COM_JUDOWNLOAD_SUBMIT'); ?> </button> <button class="btn btn-default" onclick="Joomla.submitbutton('subscribe.cancel')"> <?php echo JText::_('COM_JUDOWNLOAD_CANCEL'); ?> </button> </div> </div>
public function addComment() { JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); $user = JFactory::getUser(); $model = $this->getModel(); $rootComment = JUDownloadFrontHelperComment::getRootComment(); $data = $_POST; $documentId = $data['doc_id']; $params = JUDownloadHelper::getParams(null, $documentId); $parentId = $data['parent_id']; $model->setSessionCommentForm($documentId); if (strlen($data['title']) < 6) { $this->setError(JText::_('COM_JUDOWNLOAD_COMMENT_INVALID_TITLE')); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } if (strlen($data['guest_name']) < 1) { $this->setError(JText::_('COM_JUDOWNLOAD_COMMENT_INVALID_NAME')); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } if (isset($data['guest_email'])) { if (!preg_match('/^[\w\.-]+@[\w\.-]+\.[\w\.-]{2,6}$/', $data['guest_email'])) { $this->setError(JText::_('COM_JUDOWNLOAD_COMMENT_INVALID_EMAIL')); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } } if (isset($data['website'])) { if (!preg_match('/^(https?:\/\/)?([\w\.-]+)\.([\w\.-]{2,6})([\/\w \.-]*)*\/?$/i', $data['website'])) { $this->setError(JText::_('COM_JUDOWNLOAD_COMMENT_INVALID_WEBSITE')); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } } if (isset($data['comment_language'])) { $langArray = JHtml::_('contentlanguage.existing'); $langKey = array_keys($langArray); array_unshift($langKey, '*'); if (!in_array($data['comment_language'], $langKey)) { $this->setError(JText::_('COM_JUDOWNLOAD_COMMENT_INVALID_LANGUAGE')); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } } $minCharacter = $params->get('min_comment_characters', 20); $maxCharacter = $params->get('max_comment_characters', 1000); $comment = $data['comment']; $comment = JUDownloadFrontHelperComment::parseCommentText($comment, $documentId); $comment = strip_tags($comment); $commentCharacter = strlen($comment); if ($commentCharacter < $minCharacter || $commentCharacter > $maxCharacter) { $this->setError(JText::_('COM_JUDOWNLOAD_COMMENT_INVALID_COMMENT')); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } $showCaptcha = JUDownloadFrontHelperPermission::showCaptchaWhenComment($documentId); if ($showCaptcha) { $validCaptcha = JUDownloadFrontHelperCaptcha::checkCaptcha(); if (!$validCaptcha) { if ($parentId == $rootComment->id) { $form = '#judl-comment-form'; } else { $form = '#comment-reply-wrapper-' . $parentId; } $this->setError(JText::_('COM_JUDOWNLOAD_INVALID_CAPTCHA')); $this->setMessage($this->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId . $form, false)); return false; } } if ($user->get('guest')) { if (!$model->checkNameOfGuest($documentId)) { $this->setError(JText::_('COM_JUDOWNLOAD_YOU_ARE_NOT_AUTHORIZED_TO_COMMENT_ON_THIS_DOCUMENT')); $this->setMessage($model->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } if (!$model->checkEmailOfGuest()) { $this->setMessage($model->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } } if ($parentId == $rootComment->id) { $canComment = JUDownloadFrontHelperPermission::canComment($documentId, $data['guest_email']); if (!$canComment) { $this->setError(JText::_('COM_JUDOWNLOAD_YOU_ARE_NOT_AUTHORIZED_TO_COMMENT_ON_THIS_DOCUMENT')); $this->setMessage($this->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } } elseif ($parentId > 0 && $parentId != $rootComment->id) { $canReplyComment = JUDownloadFrontHelperPermission::canReplyComment($documentId, $parentId); if (!$canReplyComment) { $this->setError(JText::_('COM_JUDOWNLOAD_YOU_ARE_NOT_AUTHORIZED_TO_REPLY_THIS_COMMENT')); $this->setMessage($this->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } } else { $this->setError(JText::_('COM_JUDOWNLOAD_INVALID_DATA')); $this->setMessage($this->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } $dataValid = array(); if ($parentId == $rootComment->id) { $canRateDocument = JUDownloadFrontHelperPermission::canRateDocument($documentId); if ($canRateDocument) { $dataValid = $this->validateCriteria($data, $parentId); if (!$dataValid) { $this->setError(JText::_('COM_JUDOWNLOAD_INVALID_RATING_VALUE')); $this->setMessage($this->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } } } $requiredPostNames = array('title', 'guest_name', 'guest_email', 'comment', 'parent_id', 'doc_id'); if ($params->get('website_field_in_comment_form', 0) == 2) { array_push($requiredPostNames, 'website'); } if ($parentId == $rootComment->id && $params->get('filter_comment_language', 0)) { array_push($requiredPostNames, 'comment_language'); } foreach ($requiredPostNames AS $requiredPostName) { if (trim($data[$requiredPostName]) == '') { $this->setError(JText::_('COM_JUDOWNLOAD_INVALID_INPUT_DATA')); $this->setMessage($this->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_item . '&id=' . $documentId, false)); return false; } } $acceptedPostNames = array('title', 'guest_name', 'guest_email', 'language', 'website', 'comment', 'parent_id', 'doc_id', 'subscribe'); if ($params->get('website_field_in_comment_form', 0) == 2 || $params->get('website_field_in_comment_form', 0) == 1) { array_push($acceptedPostNames, 'website'); } if ($params->get('filter_comment_language', 0)) { array_push($acceptedPostNames, 'comment_language'); } foreach ($acceptedPostNames AS $acceptedPostName) { if (isset($data[$acceptedPostName])) { $dataValid[$acceptedPostName] = $data[$acceptedPostName]; } } $newCommentId = $model->saveComment($dataValid); if (!$newCommentId) { $this->setError($model->getError()); $this->setMessage($this->getError(), 'error'); $redirectUrl = JRoute::_(JUDownloadHelperRoute::getDocumentRoute($documentId), false); $this->setRedirect($redirectUrl); return false; } $session = JFactory::getSession(); $timeNow = JFactory::getDate()->toSql(); $timeNowStamp = strtotime($timeNow); $sessionCommentOnDocumentTime = 'judl-commented-' . $documentId; $sessionCommentTime = 'judl-commented'; $session->set($sessionCommentOnDocumentTime, $timeNowStamp); $session->set($sessionCommentTime, $timeNowStamp); $session->clear('judownload_commentform_' . $documentId); $this->setMessage(JText::_('COM_JUDOWNLOAD_ADD_COMMENT_SUCCESSFULLY')); $redirectUrl = JRoute::_(JUDownloadHelperRoute::getDocumentRoute($documentId) . '#comment-item-' . $newCommentId, false); $this->setRedirect($redirectUrl); return true; }
public function PHPValidate($values) { $app = JFactory::getApplication(); if ($app->isAdmin()) { return true; } if (($values === "" || $values === null) && !$this->isRequired()) { return true; } $showCaptcha = false; JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_judownload/models'); $modelDocument = JModelLegacy::getInstance('Document', 'JUDownloadModel'); if (is_object($this->doc)) { $documentId = $this->doc->id; } else { $documentId = 0; } if (($modelDocument->getDocumentSubmitType($documentId) == 'submit' && $this->canSubmit()) || ($modelDocument->getDocumentSubmitType($documentId) == 'edit' && $this->canEdit()) ) { $showCaptcha = true; } if ($showCaptcha) { $captchaId = $app->input->getString($this->getId() . "_captcha_namespace", ""); if (!JUDownloadFrontHelperCaptcha::checkCaptcha($captchaId, $values)) { $message = (string) $this->params->get('invalid_message'); if ($message) { return JText::sprintf($message, $this->getCaption(true)); } else { return JText::sprintf('COM_JUDOWNLOAD_FIELD_VALUE_IS_INVALID', $this->getCaption(true)); } } } return true; }
<input type="text" class="required" name="jform[username]" value="" id="inputUsername" size="32"/> </div> </div> <div class="control-group"> <label class="control-label" for="inputEmail"> <?php echo JText::_('COM_JUDOWNLOAD_EMAIL'); ?> <span style="color: red">*</span> </label> <div class="controls"> <input type="text" class="required email" name="jform[email]" value="" id="inputEmail" size="32"/> </div> </div> <?php echo JUDownloadFrontHelperCaptcha::getCaptcha(); ?> <div class="form-group"> <label class="control-label col-sm-2"></label> <div class="col-sm-10"> <button type="button" class="btn btn-default btn-primary" onclick="Joomla.submitbutton('subscribe.save')"> <?php echo JText::_('COM_JUDOWNLOAD_SUBMIT'); ?> </button> <button type="button" class="btn btn-default" onclick="Joomla.submitbutton('subscribe.cancel')"> <?php echo JText::_('COM_JUDOWNLOAD_CANCEL'); ?> </button> </div> </div> <div>
{ ?> <div class="comment-row"> <label class="comment-subscribe-lbl" for="comment-reply-subscribe-<?php echo $this->commentObj->id ?>"> <input name="subscribe" id="comment-reply-subscribe-<?php echo $this->commentObj->id ?>" class="comment-subscribe" type="checkbox" value="1"/> <?php echo JText::_('COM_JUDOWNLOAD_COMMENT_SUBSCRIBE'); ?> </label> </div> <?php } if (JUDownloadFrontHelperPermission::showCaptchaWhenComment($this->item->id)) { echo JUDownloadFrontHelperCaptcha::getCaptcha(true); } ?> </div> <div class="comment-form-submit clearfix"> <button type="button" class="btn btn-default btn-primary" onclick="Joomla.submitbutton('document.addComment', 'judl-comment-reply-form-<?php echo $this->commentObj->id; ?>');"><?php echo JText::_('COM_JUDOWNLOAD_SUBMIT'); ?> </button> <input type="reset" name="reply-reset" class="btn btn-default" value="<?php echo JText::_('COM_JUDOWNLOAD_RESET'); ?>"> </div> <div> <input type="hidden" name="task" value=""/> <input type="hidden" name="parent_id" value="<?php echo $this->commentObj->id; ?>"/> <input type="hidden" name="doc_id" value="<?php echo $this->item->id; ?>"/>
public static function checkCaptcha($namespace = null, $captcha = '') { if (!$namespace) { $namespace = JFactory::getApplication()->input->getString('captcha_namespace', ''); } if (!$captcha) { $captcha = JFactory::getApplication()->input->getString('security_code', ''); } if ($captcha && $namespace) { $secureImage = JUDownloadFrontHelperCaptcha::initCaptcha($namespace); if ($secureImage->check($captcha, true) == true) { return true; } } return false; }