| Server IP : 54.36.91.62 / Your IP : 216.73.217.112 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/bordeaux/components/com_community/controllers/ |
Upload File : |
<?php
/**
* @copyright (C) 2013 iJoomla, Inc. - All rights reserved.
* @license GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html)
* @author iJoomla.com <webmaster@ijoomla.com>
* @url https://www.jomsocial.com/license-agreement
* The PHP code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript *are NOT GPL, and are released under the IJOOMLA Proprietary Use License v1.0
* More info at https://www.jomsocial.com/license-agreement
*/
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Table\Table;
use Joomla\CMS\Uri\Uri;
// no direct access
defined('_JEXEC') or die('Restricted access');
class CommunityRegisterinviteController extends CommunityBaseController
{
public function display($cacheable = false, $urlparams = false)
{
$this->registerinvite();
}
public function registerinvite()
{
$my = CFactory::getUser();
if ($my->id != 0) {
$mainframe = Factory::getApplication();
$mainframe->redirect(CRoute::_('index.php?option=com_community&view=frontpage', false));
}
//run this silently to clean up the 'left-over' temp user.
$rModel = CFactory::getModel('register');
$rModel->cleanTempUser();
$view = $this->getView('registerinvite');
echo $view->get('registerinvite');
}
public function registerinvite_save()
{
// Get required system objects
$mainframe = Factory::getApplication();
$jinput = $mainframe->input;
$config = CFactory::getConfig();
$post = $jinput->post->getArray();
$view = $this->getView('registerinvite');
// If user registration is not allowed, show 403 not authorized unless invitation only is enabled
$usersConfig = ComponentHelper::getParams('com_users');
if ($usersConfig->get('allowUserRegistration') == '1' && !$config->get('invite_only_request')) {
//show warning message
$this->addWarning(Text::_('COM_COMMUNITY_REQUEST_INVITE_DISABLED'));
echo $view->get('registerinvite');
return;
}
//perform forms validation before continue further.
$errMsg = $this->_validateRequestInvite($post);
if (count($errMsg) > 0) {
//validation failed. show error message.
foreach ($errMsg as $err) {
$mainframe->enqueueMessage($err, 'error');
}
$this->registerinvite();
return false;
}
// @rule: check with recaptcha
$recaptcha = new BaseCCaptchaHelper();
if (!$recaptcha->getCaptcha()->verify()) {
Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_RECAPTCHA_MISMATCH'), 'error');
$this->registerinvite();
return false;
}
$registerintiveTable = Table::getInstance('RegisterInvite', 'CommunityTable');
$registerintiveTable->name = $post['jsname'];
$registerintiveTable->email = $post['jsemail'];
$registerintiveTable->reason = $post['jsreason'];
$registerintiveTable->status = 0;
$registerintiveTable->actionby = 0;
if ($registerintiveTable->store()) {
// send notification email to super user
$modelRegister = $this->getModel('register');
// Load Super Administrator email list
$rows = $modelRegister->getSuperAdministratorEmail();
//send to superadmin
$sitename = $mainframe->get('sitename');
foreach ($rows as $row) {
if ($row->sendEmail) {
$email = $row->email;
$templateFile = 'email.request.registerinvite';
$templateFile .= $config->get('htmlemail') ? '.html' : '.text';
$tmpl = new CTemplate();
$tmpl->set('displayName', $post['jsname']);
$tmpl->set('sitename', $sitename);
$tmpl->set('reason', $post['jsreason']);
$content = $tmpl->fetch($templateFile);
$params = new CParameter('');
$params->set('url', Uri::root() . 'administrator/index.php?option=com_community&view=pendinginvites');
$mailq = CFactory::getModel('Mailq');
$mailq->add(
$email,
Text::sprintf('COM_COMMUNITY_REQUEST_PENDING_INVITE_EMAIL_SUBJECT', $sitename),
$content,
$templateFile,
$params,
0,
'etype_request_invite'
);
}
}
// success page
$mainframe->redirect(CRoute::_('index.php?option=com_community&view=registerinvite&task=registerinvitesuccess', false));
}
}
public function registerinvitesuccess()
{
$view = $this->getView('registerinvite');
echo $view->get(__FUNCTION__);
}
/**
* Validate request invitation form
*/
private function _validateRequestInvite($post = array())
{
//check the user infor
$mainframe = Factory::getApplication();
$config = CFactory::getConfig();
$errMsg = array();
$data = array();
if (!empty($post)) {
//manual array_walk to trim
foreach ($post as $key => $value) {
if (is_array($value)) {
$data[$key] = $value; // dun do anything here.
} else {
$data[$key] = CStringHelper::trim($value);
}
} //end of
}
if (empty($data['jsname'])) {
$errMsg[] = Text::_('COM_COMMUNITY_FIELD_ENTRY') . ' \'' . Text::_(
'COM_COMMUNITY_NAME'
) . '\' ' . Text::_('COM_COMMUNITY_IS_EMPTY');
}
if (empty($data['jsemail'])) {
$errMsg[] = Text::_('COM_COMMUNITY_FIELD_ENTRY') . ' \'' . Text::_(
'COM_COMMUNITY_EMAIL'
) . '\' ' . Text::_('COM_COMMUNITY_IS_EMPTY');
}
if (empty($data['jsreason'])) {
$errMsg[] = Text::_('COM_COMMUNITY_FIELD_ENTRY') . ' \'' . Text::_(
'COM_COMMUNITY_REQUEST_INVITE_REASON_FIELD'
) . '\' ' . Text::_('COM_COMMUNITY_IS_EMPTY');
}
return $errMsg;
}
}