<?php
#-------------------------------------------------------------------------
# Module: Newsletter Made Simple
#        (c) to 2008 by Paul Lempkepf
#        (c) 2008 and on by Robert Campbell (calguy1000@cmsmadesimple.org)
#
#  An addon module for CMS Made Simple to provide a flexible
#  mailing list solution.
#
#-------------------------------------------------------------------------
# CMSMS - CMS Made Simple is (c) 2005 by Ted Kulp (wishy@cmsmadesimple.org)
# Visit the CMSMS Homepage at: http://www.cmsmadesimple.org
#
#-------------------------------------------------------------------------
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# However, as a special exception to the GPL, this software is distributed
# as an addon module to CMS Made Simple.  You may not use this software
# in any Non GPL version of CMS Made simple, or in any version of CMS
# Made simple that does not indicate clearly and obviously in its admin
# section that the site was built with CMS Made simple.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Or read it online: http://www.gnu.org/licenses/licenses.html#GPL
#
#-------------------------------------------------------------------------
#END_LICENSE
if( !isset($gCms) ) exit;

try {
  if( isset($params['email']) ) {
    // send the email to the user.
    $email = trim(get_parameter_value($params,'email'));
    if( !$email || !$this->_isValidEmail($email,0) ) throw new CmsException($this->Lang('error_invalidemail'));

    $userinfo = nms_utils::get_userinfo(array('email'=>$email));
    if( $userinfo['userid'] < 1 ) {
      $this->_DisplayErrorPage( $id, $params, $returnid, $this->Lang('error_emailnotfound'));
      return;
    }

    $smarty->assign('userinfo',$userinfo);
    $smarty->assign('username',$userinfo['username']);
    $smarty->assign('email',$userinfo['email']);
    $smarty->assign('usersettings_url', $this->_cleanLink($this->create_url( $id, 'usersettings', $returnid, array('uniqueid'=>$userinfo['uniqueid']))));
    $smarty->assign('unsubscribe_url', $this->_cleanLink($this->create_url( $id, 'unsubscribe', $returnid, array('uniqueid'=>$userinfo['uniqueid']))));

    $mailer = new \cms_mailer;
    $mailer->SetSubject($this->GetPreference('usersettings_subject'));
    $mailer->IsHTML($this->GetPreference('usersettings_email_html'));
    $bodyText = $this->ProcessTemplateFromDatabase('usersettings_email_body');
    $mailer->SetBody($bodyText);
    $mailer->AddAddress($userinfo['email']);
    $mailer->SetCharSet($this->GetPreference('message_charset'));
    $mailer->SetFromName($this->GetPreference('admin_name'));
    $mailer->SetFrom($this->GetPreference('admin_email'));
    if( !$mailer->Send() ) {
      audit('',$this->GetName(),'Problem sending email to '.$userinfo['email']);
      nms_utils::user_adderror($userinfo['userid']);
      throw new CmsException($this->Lang('error_send',$userinfo['email'],$mailer->GetErrorInfo()));
    }

    // display some meaningful text on the front end
    echo $this->ProcessTemplateFromDatabase('usersettings_text');
    return;
  }
}
catch( Exception $e ) {
  $smarty->assign('error',1);
  $smarty->assign('message',$e->GetMessage());
}

// this is the form that prompts the user for their email address.
$smarty->assign('formstart',$this->CGCreateFormStart($id, 'usersettings_email', $returnid, array('nms_usersettings'=>1)));
$smarty->assign('formend',$this->CreateFormEnd());
echo $this->ProcessTemplateFromDatabase('usersettings_form');

#
# EOF
#
?>