energine
[ class tree: energine ] [ index: energine ] [ all elements ]

Source for file RestorePassword.class.php

Documentation is available at RestorePassword.class.php

  1. <?php
  2. /**
  3.  * Содержит класс RestorePassword
  4.  *
  5.  * @package energine
  6.  * @subpackage user
  7.  * @author dr.Pavka
  8.  * @copyright Energine 2006
  9.  * @version $Id$
  10.  */
  11.  
  12. //require_once('core/modules/share/components/DataSet.class.php');
  13. //require_once('core/framework/Mail.class.php');
  14.  
  15. /**
  16.  * Форма восстановления пароля
  17.  *
  18.  * @package energine
  19.  * @subpackage user
  20.  * @author dr.Pavka
  21.  */
  22. class RestorePassword extends DataSet {
  23.     /**
  24.      * Конструктор класса
  25.      *
  26.      * @param string $name 
  27.      * @param string $module 
  28.      * @param Document $document 
  29.      * @param array $params 
  30.      * @access public
  31.      */
  32.     public function __construct($name$moduleDocument $document,  array $params null{
  33.         parent::__construct($name$module$document,  $params);
  34.         $this->setDataSetAction('send');
  35.     }
  36.  
  37.     /**
  38.      * Переопределен параметр active
  39.      *
  40.      * @return int 
  41.      * @access protected
  42.      */
  43.  
  44.     protected function defineParams({
  45.         $result array_merge(parent::defineParams(),
  46.         array(
  47.         'active'=>true,
  48.         ));
  49.         return $result;
  50.     }
  51.     /**
  52.      * Отправляет новый пароль на указанный email
  53.      *
  54.      * @return void 
  55.      * @access protected
  56.      */
  57.  
  58.     protected function send({
  59.         $this->document->componentManager->getComponentByName('breadCrumbs')->addCrumb();
  60.         if ($component $this->document->componentManager->getComponentByName('textBlockRestorePassword')) {
  61.              $component->disable();
  62.          }
  63.         if (!isset($_POST['u_name'])) {
  64.             $message $this->translate('ERR_NO_U_NAME');
  65.         }
  66.         else {
  67.             $uName $_POST['u_name'];
  68.             $UID simplifyDBResult($this->dbh->select('user_users''u_id'array('u_name'=>$uName))'u_id'true);
  69.             if (!$UID{
  70.                 $message $this->translate('ERR_NO_U_NAME');
  71.             }
  72.             else {
  73.                 $password User::generatePassword();
  74.                 $this->dbh->modify(QAL::UPDATE'user_users'array('u_password'=>sha1($password))array('u_id'=>$UID));
  75.                 $mailer new Mail();
  76.                 $mailer->setFrom($this->getConfigValue('mail.from'))->
  77.                     setSubject($this->translate('TXT_SUBJ_RESTORE_PASSWORD'))->
  78.                     setText($this->translate('TXT_BODY_RESTORE_PASSWORD'),compact('password'))->
  79.                     addTo($uName);
  80.                 $message $this->translate('MSG_PASSWORD_SENT');
  81.                 try {
  82.                     $mailer->send();
  83.                 }
  84.                 catch (Exception $e{
  85.                     $message $e->getMessage();
  86.                 }
  87.             }
  88.         }
  89.         $this->prepare();
  90.         $messageField new Field('restore_password_result');
  91.         $messageField->setData($message);
  92.         $this->getData()->addField($messageField);
  93.     }
  94. }
В создании документации нам помог: phpDocumentor