<?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 {
    $uniqueid = trim(get_parameter_value($params,'uniqueid'));
    if( !$uniqueid ) throw new CmsException($this->Lang('error_insufficientparams'));

    $user = nms_utils::get_userinfo(array('uniqueid'=>$params['uniqueid']));
    if( $user['userid'] < 1 ) throw new CmsException($this->Lang('error_usernotfound'));

    // delete membership from all public lists.
    $sql = "SELECT A.listid FROM ".NMS_LIST_TABLE." A, ". NMS_LISTUSER_TABLE." B
            WHERE A.listid = B.listid AND A.public = 1 AND B.userid = ?";
    $q2 = "DELETE FROM ".NMS_LISTUSER_TABLE." WHERE userid = ? AND listid = ?";
    $publiclists = $db->GetArray($sql,array($user['userid']));
    if( is_array($publiclists) && count($publiclists) ) {
        foreach( $publiclists as $row ) {
            $dbresult2 = $db->Execute( $q2, array( $user['userid'], $row['listid'] ));
        }
    }

    $smarty->assign('userinfo',$user);
    $smarty->assign('username',$user['username']);
    $smarty->assign('email',$user['email']);
    $fielddefs = nms_fielddef::load_all();
    if( is_array($fielddefs) && count($fielddefs) ) $smarty->assign('fields',$fielddefs);

    $parms = array( 'userid' => $user['userid'], 'email'=>$user['email'], 'username'=>$user['username'] );
    $this->SendEvent('OnUnsubscribe',$parms);
    $this->Audit($user['userid'],$this->GetName(),$user['email'].' Unsubscribed from public lists');

    if( $this->GetPreference('unsubscribe_deletes',0) ) {
        // check if the user is still in any lists (even private ones)
        $query = 'SELECT count(listid) AS count FROM '.NMS_LISTUSER_TABLE.' WHERE userid = ?';
        $tmp = $db->GetOne($query,array($user['userid']));

        if( !$tmp ) {
            // no lists left.
            $parms = array('userid'=>$user['userid']);
            $this->DeleteEmail($id,$parms,$returnid);
        }
    }
}
catch( Exception $e ) {
    \cge_utils::log_exception( $e );
    $smarty->assign('error',1);
    $smarty->assign('message',$e->GetMessage());
}

echo $this->ProcessTemplateFromDatabase('post_unsubscribe_text');
