2014-09-01 131 views
0

我想注册用户,但他们应该能够使用相同的电子邮件地址注册,他们将使用为其生成的用户名登录,所以电子邮件不是重要。如何以及在哪里可以解除或处理代码以不检查数据库“用户表:对于重复的电子邮件地址允许用户使用相同的电子邮件地址注册3

+1

电子邮件地址来保证唯一性。你不关心这个? – isherwood 2014-09-01 14:36:47

+0

为什么你想这样做?什么是目的和好处?除了独一无二之外,与用户取得联系,发送凭证提醒等方式并不容易...... – Sbpro 2014-09-01 15:51:34

+0

你做了什么研究? – Elin 2014-09-01 18:10:18

回答

0

您可以使用隐藏的电子邮件字段为注册页面创建覆盖,并随机填写该字段生成的电子邮件地址。

创建一个文件夹/模板/ your_template中/ HTML/com_users /注册

将文件复制/components/com_users/views/registration/tmpl/default.php它。

更换这个文件的内容与你想要使用的表格一致 生成表格动态地,所以你可以尝试去你的网站在你的浏览器中的现有注册页面,并复制html源代码来获取表单的基本结构。然后你可以修改它。

0

重要的是不要更改Joomla核心代码,否则在更新后您的更改将丢失或页面可能崩溃。 实现这个Joomla插件。

由用户创建用于现有的电子邮件地址检查在位于libraries\joomla\table\user.php

在本次检查中的Joomla代码段中的Joomla用户表的代码被执行的时候了!

 // Check for existing email 
     $query->clear() 
      ->select($this->_db->quoteName('id')) 
      ->from($this->_db->quoteName('#__users')) 
      ->where($this->_db->quoteName('email') . ' = ' . $this->_db->quote($this->email)) 
      ->where($this->_db->quoteName('id') . ' != ' . (int) $this->id); 
     $this->_db->setQuery($query); 
     $xid = (int) $this->_db->loadResult(); 

     if ($xid && $xid != (int) $this->id) 
     { 
      $this->setError(JText::_('JLIB_DATABASE_ERROR_EMAIL_INUSE')); 

      return false; 
     } 

下一个步骤是创建一个插件*并向user.php文件复制到插件目录:251 - 3.4.3稳定可以在线237之间找到。有你评论上面提到的部分的代码,所以它不会被执行。此外,您需要一个额外的php和xml文件(XML安装文件)以及您的插件的文件名(您可以选择名称)。 在PHP文件,你指的是调整user.php文件:

<?php 

    // no direct access 
    defined('_JEXEC') or die; 

    // Replace core JTableUser with override version 
    include_once JPATH_ROOT.'/plugins/system/<name_of_your_plugin>/user.php'; 

在你的XML安装文件你把描述你的插件需要的信息,它包含的文件:

<?xml version="1.0" encoding="utf-8"?> 
<extension version="3.0" type="plugin" group="system"> 
    <name><![CDATA[name_of_the_plugin]]></name> 
    <author><![CDATA[author]]></author> 
    <creationDate>date</creationDate> 
    <copyright><![CDATA[copyright]]></copyright> 
    <authorEmail><![CDATA[email]]></authorEmail> 
    <authorUrl><![CDATA[url]]></authorUrl> 
    <version><![CDATA[version]]></version> 
    <license><![CDATA[licencse]]></license> 
    <description>PLG_SYSTEM_NAME_OF_YOUR_PLUGIN_DESCRIPTION</description> 

    <files> 
     <filename plugin="name_of_the_plugin">name_of_the_plugin.php</filename> 
     <filename>index.html</filename> 
     <filename>user.php</filename> 
    </files> 

    <languages folder="language"> 
     <language tag="en-GB">en-GB.plg_system_name_of_the_plugin.ini</language> 
    </languages> 

    <config> 
    </config> 

</extension> 

现在可以安装/激活该插件和用户将能够使用相同的电子邮件地址。

*关于如何创建为Joomla插件的信息可以在Joomla官方文档中找到:https://docs.joomla.org/J3.x:Creating_a_Plugin_for_Joomla

相关问题