Joomla - PHP注册脚本

时间:2014-03-02 18:22:32

标签: php android web-services joomla registration

我有一个登录和注册脚本,可以从android和iOS进行身份验证。 注册码工作,我可以注册表单应用程序,我可以看到用户进入joomla数据库。 问题是,在Joomla门户网站中我使用激活邮件,当我从脚本创建用户时,我收到了错误的邮件。 邮件具有以下对象:COM_USERS_EMAIL_ACCOUNT_DETAILS和此文本:COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY。

这是注册脚本:

<?php
if( $_POST["name"] || $_POST["email"] || $_POST["username"] || $_POST["password"] ){
     define( '_JEXEC', 1 );
     define('JPATH_BASE', dirname(__FILE__) );
     define( 'DS', DIRECTORY_SEPARATOR );

     require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
     require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

     $app = JFactory::getApplication('site');
     $app->initialise();
     require_once(JPATH_BASE.DS.'components'.DS.'com_users'.DS.'models'.DS.'registration.php');

     $model = new UsersModelRegistration();
     jimport('joomla.mail.helper');
     jimport('joomla.user.helper');

     $username = $_POST['username'];
     $name = $_POST['name'];
     $email =  $_POST['email'];
     $password =  $_POST['password'];
     $block = '0';
     $sendEmail = '1';
     $activation = '';
     $data = array( 'username' => $username,
     'name' => $name,
     'email1' => $email,
     'password1' => $password, // First password field
     'password2' => $password, // Confirm password field
     'sendEmail' => $sendEmail,
     'activation' => $activation,
     'block' => 0 );
      echo $model->register($data);
}
?>

如果我强制“激活”阵营Joomla用激活码覆盖。与block和sendEmail相同。

如何禁用邮件(仅限应用程序)或发送正确的邮件?

谢谢!

1 个答案:

答案 0 :(得分:3)

由于您使用的是用户模型来保存记录,因此很难不发送电子邮件。您可能需要编写自己的代码来保存用户或扩展和覆盖模型。

更简单的方法是确保加载了com_users语言文件,因此这些大写字符串将被替换为正确的文本,如下所示:

$lang = JFactory::getLanguage();
$extension = 'com_users';
$base_dir = JPATH_SITE;
$language_tag = 'en-GB';
$reload = true;
$lang->load($extension, $base_dir, $language_tag, $reload);

我把它放在加载模型的require_once之后,你应该好好去。