403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/HostingSpaces/admin/chatme24.com/wwwroot/administration/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/HostingSpaces/admin/chatme24.com/wwwroot/administration//massmail.php
<?php
/* (C) Websplosion LLC, 2001-2021

IMPORTANT: This is a commercial software product
and any kind of using it must agree to the Websplosion's license agreement.
It can be found at http://www.chameleonsocial.com/license.doc

This notice may not be removed from the source code. */

include("../_include/core/administration_start.php");

class CAdminMailMass extends CHtmlList {

    var $message_send = '';
	var $message_error = '';
    var $table = 'massmail';
    var $tableAlias = 'm';
    var $fields = array(
        'id',
        'subject',
        'text',
        'for',
        'languages',
        'date',
        'status',
    );
    var $m_sql_order = 'id DESC';
    var $usersFilter = array();

    function action()
    {
        global $g;

        $cmd = get_param('cmd', '');
        $lang = get_param_array('language');

        if ($cmd == 'send') {
            $whereLang = '';
            if (count($lang) > 0) {
                $whereLangParts = array();
                foreach ($lang as $language => $value) {
                    if($lang == 'default') {
                        $whereLangParts[] = "''";
                    }
                    $whereLangParts[] = to_sql($language);
                }
                $whereLangValue = implode(',', $whereLangParts);
                if ($whereLangValue != '') {
                    $whereLang = ' AND lang IN (' . $whereLangValue . ')';
                }
            }

            $subject = get_param('subject', '');
            $text = get_param('text', '');
            $to = trim(get_param('to', ''));

            $toPartners = get_param('partners', '');
            $toUsers = get_param('users', '');
            $toOther = get_param('other', '');

            if ($to != '') {
                if(Common::validateEmail($to)) {
                    send_mail($to, $g['main']['info_mail'], $subject, $text);
                    $this->message_send = l('sent');
                } else {
                    $this->message_send = l('Specific email is incorrect');
					$this->message_error = $this->message_send;
                }
            } elseif($whereLang == '') {
                $this->message_send = l('Please choose languages');
				$this->message_error = $this->message_send;
            } else {

                if($toPartners == '1' || $toUsers == '1' || $toOther == '1') {

                    $send_partners = 0;
                    if(!$toUsers && !$toOther) {
                        $send_partners = 1;
                    }

                    $usersFilter = array();

                    if($toUsers == '1') {
                        $usersFilter['paid'] = get_param('paid');
                        $usersFilter['orientation'] = get_param_array('orientation');
                        $usersFilter['date_register_from'] = get_param('date_register_from');
                        $usersFilter['date_register_to'] = get_param('date_register_to');
                        $usersFilter['last_visit_from'] = get_param('last_visit_from');
                        $usersFilter['last_visit_to'] = get_param('last_visit_to');
                        $usersFilter['age_from'] = get_param('age_from');
                        $usersFilter['age_to'] = get_param('age_to');
                    }

                    $row = array(
                        'subject' => $subject,
                        'text' => $text,
                        'users' => $toUsers,
                        'other' => $toOther,
                        'partners' => $toPartners,
                        'languages' => $whereLangValue,
                        'date' => time(),
                        'users_filter' => json_encode($usersFilter),
                    );

                    $id = get_param('id');
                    if($id) {
                        DB::update($this->getTable(), $row, '`id` = ' . to_sql($id));
                        $this->message_send = l('Mail is updated.');
                    } else {
                        DB::insert($this->getTable(), $row);
                        $this->message_send = l('Mail is added.');
                    }

                }
            }
        }

        $id = get_param('id');
        $where = 'id = ' . to_sql($id);

        if ($cmd == 'delete') {
            DB::delete($this->getTable(), $where);
        }
        if ($cmd == 'start') {
            DB::update($this->getTable(), array('status' => 0, 'emails_sent' => 0), $where);
        }
        if ($cmd == 'stop') {
            DB::update($this->getTable(), array('status' => 1), $where);
        }

        if($cmd == 'update') {
            $items = new CAdminConfig('config_fields', '');
            $items->setModule('massmail');
            $items->action();
        }
    }

    function parseBlock(&$html)
    {
        global $g;
        global $p;

		$isTmplModern = Common::isAdminModer();
		if ($isTmplModern) {
			if ($this->message_error) {
				$html->setvar("message_error", $this->message_error);
			} else {
				$html->setvar("message_send", $this->message_send);
			}
		} else {
			$html->setvar("message_send", $this->message_send);
		}

        $html->setvar("to", get_param("to", ""));

        $cmd = get_param('cmd');
        $id = get_param('id');

        $massmail = null;

        if($cmd == 'view') {
            $massmail = DB::one($this->getTable(), 'id = ' . to_sql($id));
            if($massmail) {
                if($massmail['users_filter']) {
                    $this->usersFilter = json_decode($massmail['users_filter'], true);
                }
                if(isset($massmail['languages'])) {
                    $massmailLanguages = explode(',', $massmail['languages']);
                    foreach($massmailLanguages as $language) {
                        $_POST['language'][trim($language, "'")] = 1;
                    }
                }
            }
            $html->setvar('edit_id', $id);
        }

        $html->setvar("massmail_subject", htmlspecialchars(get_param('subject', $massmail['subject'])));
        $html->setvar("massmail_text", get_param("text", $massmail['text']));

        $receiverTypes = array(
            'users',
            'other',
            'partners',
        );

        foreach($receiverTypes as $receiverType) {
            if(get_param($receiverType, isset($massmail[$receiverType]) ? $massmail[$receiverType] : 0)) {
                $html->setvar($receiverType . '_checked', 'checked');
            }
        }

        $language = loadLanguageAdmin();

        $paid = $this->getUsersFilterValue('paid');
        if($paid === '1') {
            $html->setvar('paid_checked', 'checked');
        } elseif ($paid === '0') {
            $html->setvar('free_checked', 'checked');
        }

        if (UserFields::isActive('orientation')) {
            $orientation = get_param_array('orientation');

            $this->parseChecks($html, 'SELECT id, title FROM const_orientation', $this->getUsersFilterValue('orientation'), 2, 0, 'orientation', 'orientation', $language);
        }

        $html->setvar('date_register_from', $this->getUsersFilterValue('date_register_from'));
        $html->setvar('date_register_to', $this->getUsersFilterValue('date_register_to'));
        $html->setvar('last_visit_from', $this->getUsersFilterValue('last_visit_from'));
        $html->setvar('last_visit_to', $this->getUsersFilterValue('last_visit_to'));

        $html->setvar("age_from_options", n_options($g['options']['users_age'], $g['options']['users_age_max'], $this->getUsersFilterValue('age_from'), true));
		$html->setvar("age_to_options", n_options($g['options']['users_age'], $g['options']['users_age_max'], $this->getUsersFilterValue('age_to'), true));

        $lang = get_param_array('language');

        $langs = Common::listLangs();

        if ($langs) {
            foreach ($langs as $file => $title) {
                $html->setvar('language_value', $file);
                $html->setvar('language_title', $title);

                $languageChecked = '';

                if (isset($lang[$file]) && $lang[$file] == 1) {
                    $languageChecked = 'checked';
                }

                $html->setvar('language_checked', $languageChecked);
                $html->parse('language');
            }
        }

        $lang = Common::getOption('administration', 'lang_value');
        $langTinymceUrl =  $g['tmpl']['url_tmpl_administration'] . "js/tinymce/langs/{$lang}.js";
        if (!file_exists($langTinymceUrl)) {
            $lang = 'default';
        }
        $html->setvar('lang_vw', $lang);

        parent::parseBlock($html);
    }

	function onItem(&$html, $row, $i, $last)
	{
		$this->m_field['date'][1] = date('Y-m-d H:i:s', $row['date']);

        $forItems = array();

        $forItemsList = array('users', 'other', 'partners');
        foreach($forItemsList as $value) {
            if($row[$value]) {
                $forItems[] = l($value);
            }
        }

        $languagesItems = explode(',' , $row['languages']);
        foreach($languagesItems as $key => $value) {
            $value = trim($value, "'");
            if($value == 'default') {
                $value = 'language_default';
            }
            $languagesItems[$key] = l($value);
        }

        $this->m_field['for'][1] = implode(', ', $forItems);
        $this->m_field['languages'][1] = implode(', ', $languagesItems);

		$html->setvar('id', $row['id']);
		$html->setvar('emails_sent', $row['emails_sent']);

		if($row['status']==0) {
			$status = l('sending');
			$html->parse('stop', false);
			$html->setblockvar('start', '');
		}
		if($row['status']==1) {
			$status = l('stop');
			$html->parse('start', false);
			$html->setblockvar('stop', '');
		}
		if($row['status']==2) {
			$status = l('sent');
			$html->parse('start', false);
			$html->setblockvar('stop', '');
		}

		$this->m_field['status'][1] = $status;

        if ($i % 2 == 0) {
            $html->setvar("class", 'color');
            $html->setvar("decl", '_l');
            $html->setvar("decr", '_r');
        } else {
            $html->setvar("class", '');
            $html->setvar("decl", '');
            $html->setvar("decr", '');
        }

	}

    public function translation($field, $value, $lang = null)
    {

        static $tmpl = null;
        if(!$tmpl) {
            $tmpl = Common::getOption('name', 'template_options');
        }
        if ($lang === null ) {
            $lang = loadLanguageAdmin();
        }

        $keys = array($tmpl . '_' . $field . '_' . $value, $field . '_' . $value, $value);
        return lCascade($value, $keys, $lang);
    }

	function parseChecks(&$html, $sql, $activeValues, $num_columns = 1, $add = 0, $p = "", $field = null, $lang = null)
	{
		if (DB::query($sql))
		{
            if(!is_array($activeValues)) {
                $activeValues = array();
            }

            if ($field === null ) {
                $field = $p;
            }
            if ($lang === null ) {
                $lang = loadLanguageAdmin();
            }

            $html->setvar($p . '_field_title', l($field, $lang));

			$i = 0;
			$total_checks = DB::num_rows();
			$in_column = ceil(($total_checks + $add) / $num_columns);

			while ($row = DB::fetch_row())
			{
				$i++;

				$html->setvar($p . "_id", $row[0]);
                //echo $row['title'] . '<br>';
                $value = $this->translation($field, $row['title'], $lang);
				$html->setvar($p . "_title", $value);
				if (in_array($row[0], $activeValues)) {
					$html->setvar("checked", " checked");
				} else {
					$html->setvar("checked", "");
				}
				$html->parse($p, true);
			}
			$html->parse($p . "s", true);
			$html->setblockvar($p, "");
			DB::free_result();
		}
	}

    function getUsersFilterValue($param, $defaultValue = '')
    {
        $value = get_param($param, isset($this->usersFilter[$param]) ? $this->usersFilter[$param] : $defaultValue);
        return $value;
    }
}

$page = new CAdminMailMass("massmail", $g['tmpl']['dir_tmpl_administration'] . "massmail.html");

$items = new CAdminConfig("config_fields", $g['tmpl']['dir_tmpl_administration'] . "_config.html");
$items->setModule('massmail');
$page->add($items);

$header = new CAdminHeader("header", $g['tmpl']['dir_tmpl_administration'] . "_header.html");
$page->add($header);
$footer = new CAdminFooter("footer", $g['tmpl']['dir_tmpl_administration'] . "_footer.html");
$page->add($footer);

$page->add(new CAdminPageMassMail());

include("../_include/core/administration_close.php");

Youez - 2016 - github.com/yon3zu
LinuXploit