2014-09-01 127 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

相關問題