Home 技術関連情報 Joomla Joomla! 1.5で同じメールアドレスのユーザーを登録可能にする
Joomla! 1.5で同じメールアドレスのユーザーを登録可能にする PDF 印刷 Eメール
作者 熊川 勝   
2008年07月 03日(木曜日) 09:30

Joomla! 1.5で同一のメールアドレスを登録可能にする

●登録を可能にする修正を加える

次のファイルに手を加えます 

/libraries/joomla/database/table/user.php

 

user.phpの下記部分を削除またはコメントアウトします。 

// check for existing email
$query = 'SELECT id'
    . ' FROM #__users '
    . ' WHERE email = '. $this->_db->Quote($this->email)
    . ' AND id != '. (int) $this->id
    ;
$this->_db->setQuery( $query );
$xid = intval( $this->_db->loadResult() );
if ($xid && $xid != intval( $this->id )) {
    $this->setError( JText::_( 'WARNREG_EMAIL_INUSE' ) );
    return false;
}

この修正で同一のメールアドレスが登録可能になります。

 

●パスワード忘れの複数メール送信に対応

上記の修正で、同一のメールアドレスが登録できる様になりましたが、このままですと、

パスワードが分からなくなった場合などに対処できません。

その部分の修正も必要となります。

 

次のファイルに手を加えます 

/components/com_user/models/reset.php

 

reset.phpの次の部分を修正します

function requestReset($email)

{
    // (~省略~)

    // 下記部分を削除またはコメントアウト 

    //  // Check the results
    //  if (!($id = $db->loadResult()))
    //  {
    //   $this->setError(JText::_('COULD_NOT_FIND_USER'));
    //   return false;
    //  }

    // 代わりに下記のコードを追加(残りの部分をこのループで囲う)

    $users = $db->loadResultArray();
    foreach ($users as $id)
    {
        // (~省略~) 

    }

    return true;
}

この修正で、同一のメールアドレスを持つユーザーに対して、ユーザーの件数分メールが送信されます。

 

●ユーザー名忘れの複数メール送信に対応

パスワード同様にユーザー名忘れにも対応します

 

次のファイルに手を加えます 

/components/com_user/models/remind.php

 

remind.phpの次の部分を修正します

function remindUsername($email)
{
    // (~省略~)

    // SQLのパラメータを修正する 

    //  $db->setQuery('SELECT username FROM #__users WHERE email = '.$db->Quote($email), 0, 1);
    $db->setQuery('SELECT username FROM #__users WHERE email = '.$db->Quote($email));

    // 下記の部分を削除またはコメントアウトする

    //  // Get the username
    //  if (!($username = $db->loadResult()))
    //  {
    //   $this->setError(JText::_('COULD_NOT_FIND_EMAIL'));
    //   return false;
    //  }

    // 代わりに下記のコードを追加(残りの部分をこのループで囲う)

    $users = $db->loadResultArray();
    foreach ($users as $username)
    {
        // (~省略~) 

    }

    return true;
}

この修正で、同一のメールアドレスを持つユーザーに対して、ユーザーの件数分メールが送信されます。

LAST_UPDATED2
 
HSB WebSite - フリーITエンジニア 熊川のWebSite -, Powered by Joomla! and designed by SiteGround web hosting