Esempio n. 1
0
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();
Esempio n. 2
0
			<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>
Esempio n. 3
0
	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;
	}
Esempio n. 4
0
	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;
	}
Esempio n. 5
0
				<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; ?>"/>
Esempio n. 7
0
	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;
	}