diff --git a/composer.json b/composer.json index 63b08fe..7f063be 100644 --- a/composer.json +++ b/composer.json @@ -13,5 +13,10 @@ "email": "sha@shadoll.com" } ], + "autoload": { + "psr-4": { + "shadoll\\": "lib" + } + } "minimum-stability": "dev" } diff --git a/sLetter.php b/sLetter.php deleted file mode 100644 index 7855055..0000000 --- a/sLetter.php +++ /dev/null @@ -1,190 +0,0 @@ - - * @package shadoll/sLetter - * @version 18.2.12 - * - */ - -namespace shadoll; - -use Mailgun\Mailgun; - -class sLetter{ - - public $error = false; - public $status = ""; - - private $sender = "mail"; - private $header = ""; - private $message = ""; - private $subject = ""; - - private $language = "ua"; - private $lang = []; - - private $fromMail = ""; - private $fromName = ""; - private $toMail = ""; - private $senderIP = null; - - public $fields = null; - private $logoUri = ""; - - function __construct(){ - $this->setLang(require_once(__DIR__."/lng/".$this->language.".php")); - } - - function setData($data,$return=false){ - if(empty($data) || !is_array($data)) - return $return?$this->fields:$this; - - if(is_null($this->fields)) - $this->fields = []; - - foreach($data as $key=>$val) - if(!empty($val)) - $this->fields[$key] = is_string($val)?trim(stripslashes($val)):$val; - - return $return?$this->fields:$this; - } - - function setLang($data,$return=false){ - if(empty($data) || !is_array($data)) - return $return?$this->lang:$this; - - if(is_null($this->lang)) - $this->lang = []; - - foreach($data as $key=>$val) - if(!empty($val)) - $this->lang[$key] = is_string($val)?trim(stripslashes($val)):$val; - - return $return?$this->lang:$this; - } - - function set($data){ - if(!empty($data) && is_array($data)) - foreach($data as $key=>$val) - if(!empty($key) && !empty($val)) - $this->{$key} = is_string($val)?trim(stripslashes($val)):$val; - return $this; - } - - function get($val){ - if(property_exists($this,$val)) - return $this->{$val}; - return null; - } - - function header($return=false){ - $this->header .= "From:".(!empty($this->fromName)?($this->fromName."<".strip_tags($this->fromMail).">"):strip_tags($this->fromMail))."\r\n"; - $this->header .= "Reply-To: ".strip_tags($this->fromMail)."\r\n"; - $this->header .= "MIME-Version: 1.0\r\n"; - $this->header .= "Content-Type: text/html;charset=utf-8 \r\n"; - - return $return?$this->header:$this; - } - - function message($return=false){ - $this->message .= ""; - - if(!empty($this->logoUri)) - $this->message .= "logo"; - - $this->message .= "

".$this->subject."

\r\n"; - - foreach($this->fields as $name=>$val){ - if(!empty($val)){ - $this->message .= "

".(array_key_exists($name,$this->lang)?$this->lang[$name]:$name).": ".$val."

\r\n"; - } - } - - $this->message .= ""; - - return $return?$this->message:$this; - } - - function detect($return=false){ - if(!empty($this->senderIP)){ - $query = @unserialize(file_get_contents('http://ip-api.com/php/'.$this->senderIP)); - if($query && $query['status'] == 'success'){ - - - $this->setData([ - 'senderIP' => $this->senderIP, - 'flag' => "", - 'country' => $query['country'], - 'region' => $query['regionName'], - 'city' => $query['city'], - 'provider' => $query['isp'], - ]); - } - } - return $return?$this->fields:$this; - } - - function validate($data,$return=false){ - if(!empty($data) && is_array($data)) - foreach($data as $val) - if(empty($val)){ - $this->error = true; - $this->status = "Empty value"; - } - - return $return?$this->error:$this; - } - - function subject($return=false){ - if(empty($this->subject)) - $this->subject = (array_key_exists("subject",$this->lang)?$this->lang["subject"]:"Message from")." ".$_SERVER['SERVER_NAME']; - - return $return?$this->subject:$this; - } - - function sendMail($return=false){ - $this->header(); - - $status = @mail($this->toMail, $this->subject(true), $this->message, $this->header); - - - return $return?$status:$this; - } - - function sendMailgun($return=false){ - $mg = new Mailgun($this->mailgun_apikey); - - $status = $mg->sendMessage($this->mailgun_domain, array( - 'from' => !empty($this->fromName)?($this->fromName."<".strip_tags($this->fromMail).">"):strip_tags($this->fromMail), - 'to' => $this->toMail, - 'subject' => $this->subject(true), - 'html' => $this->message, - )); - - return $return?$status:$this; - } - - function send($return=false){ - if($this->error===false){ - if(empty($this->message)) - $this->message(); - - if(!empty($this->sender)){ - $method = "send".ucfirst($this->sender); - - if(method_exists($this,$method)) - $status = $this->{$method}(true); - - } - } - else - $status = ""; - - return $return?$status:$this; - } - - function state(){ - echo json_encode(['success'=>!$this->error,'message'=>$this->status,'answer'=>'']); - } -}