Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework»





НазваниеПояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework»
страница18/22
Дата публикации19.08.2014
Размер1.73 Mb.
ТипПояснительная записка
100-bal.ru > Информатика > Пояснительная записка
1   ...   14   15   16   17   18   19   20   21   22

2 Модуль рассылки писем

2.1 Форма редактирования рассылки




/****************************************************************************

Description: форма редактирования рассылки

Author: Potapenko Vladimir

Created: 22.04.2013

Version: 1.0.0
Changes info:

= 22.04.2013 (Potapenko Vladimir): создан

****************************************************************************/

class OFormViewMailSender extends OForm

{

/**

* Таблица в БД с пользователями

*

* @var string

*

*/

public $UsersTable;

/**

* Поле с именем получателя

*

* @var string

*

*/

public $NameField;

/**

* Поле с адресом получателя

*

* @var string

*

*/

public $MailField;

protected $RecipientsForm;

public function __construct($_name, $_parent, $_users_table="", $_name_field="",

$_mail_field="")

{

parent::__construct($_name, $_parent);

$this->UsersTable=$_users_table;

$this->NameField=$_name_field;

$this->MailField=$_mail_field;

$this->CreateFromXML(ProjectPath()."forms/mail_sender/LayoutOFormMailsender.xml");

$this->RecipientsForm=new OFormRecipients("mailer_recipients", $this, $_users_table,

$_name_field, $_mail_field);

$this->RecipientsForm->ReturnToEdit="Edit_TO";

$this->IconSrc="images/icons/wand__plus.png";

}

protected function BeforeGenerate()

{

parent::BeforeGenerate();

$this->FillListBoxTemplates();

}

public function Work()

{

$this->ShowModal();

}

protected function ButtonAddRecipients_OnClick()

{

$this->RecipientsForm->SetCenterPosition();

$this->RecipientsForm->ShowModal();

}

protected function FillListBoxTemplates()

{

Fill_ListBox($this->ListBox_TEMPLATE, "table_mailer_templates", "ID", "NAME");

}

protected function UseTemplate()

{

if($this->ListBox_TEMPLATE->Enable)

{

$this->ListBox_TEMPLATE->Enable=false;

$this->Edit_BODY->Value="";

AddToChangedComponents($this->Edit_BODY);

}

else

{

$this->ListBox_TEMPLATE->Enable=true;

if($this->ListBox_TEMPLATE->Value == null)

{

$ds = new ODBDataSet("", $this, GetConnection("MainDBConnection"));

$QueryText = "SELECT ID FROM table_mailer_templates LIMIT 1";

$ds->Open($QueryText);

if($ds->RowCount > 0)

{

$this->ListBox_TEMPLATE->Value = $ds->GetFieldValue("ID");

$this->LoadMailTemplate();

}

}

else

{

$this->LoadMailTemplate();

}

}

AddToChangedComponents($this->ListBox_TEMPLATE);

}

public function LoadMailTemplate()

{

$template=GetRESULT("SELECT BODY AS RESULT FROM table_mailer_templates

WHERE ID=".$this->ListBox_TEMPLATE->Value);

$this->Edit_BODY->Value=$template;

AddToChangedComponents($this->Edit_BODY);

}

protected function ButtonAddTemplate_OnClick()

{

$save_template=new OFormSaveAsTemplate("OFormSaveAsTemplate",

$_SESSION["WorkSpace"]->MainForm, $this->Edit_BODY->Value);

$save_template->SetCenterPosition();

$save_template->ShowModal();

}

protected function ButtonSend_OnClick()

{

$files=array();

$files_list=$this->Files->GetFiles();

$files_cnt=$files_list->Count();

for($i=0; $i<$files_cnt; $i++)

{

$files[]=$files_list->Item($i);

}

$files=implode(",", $files);

$_str=$this->Edit_TO->Value;

$mails=explode(",", $_str);

$cnt=count($mails);

GetConnection("MainDBConnection")->sql_query(

"INSERT INTO table_mailer_history (MAILS, NAME, BODY, FILES, CNT)

VALUES

('".$this->Edit_TO->Value."', '".$this->Edit_SUBJECT->Value."',

'".$this->Edit_BODY->Value."', '$files', $cnt)");

$history_id=GetConnection("MainDBConnection")->sql_insert_id();

for($i=0; $i<$cnt; $i++)

{

if(strpos($mails[$i], "<")===false)

{

$mails[$i]="<".$mails[$i].">";

}

$mail=new OString($this, trim($mails[$i]));

$address=trim($mail->CutTextBetween("<", ">"));

$mail->Replace("<", "");

$mail->Replace(">", "");

if($this->is_email($address))

{

$name=trim($mail->Text);

$body=$this->SetTags($this->Edit_BODY->Value,

$this->RecipientsForm->CurrentRecipients[$address]);

$subject=$this->SetTags($this->Edit_SUBJECT->Value,

$this->RecipientsForm->CurrentRecipients[$address]);

$this->AddToQueue($address, $subject, $name, $body, $files, $history_id);

}

}

$this->SendGlobalEvent("database_data_changed", "table_mailer_history");

$this->Close();

}

public function AddToQueue($_address, $_subject, $_name, $_body, $_files="", $_history_id=-1)

{

GetConnection("MainDBConnection")->sql_query(

"INSERT INTO table_mailer_queue (EMAIL, SUBJECT, NAME, BODY, FILES, HISTORY_ID)

VALUES

('$_address', '".$_subject."', '$_name', '".$_body."', '$_files', $_history_id)");

}

/**

* подстановка тэгов в строку

*

* @param string $_body текст

* @param array $_recipients_info массив $_recipients_info=>array(FIELDNAME=>VALUE)

* @return string текст с подставленными тэгами

*

*/

public function SetTags($_body, $_recipients_info)

{

if($this->UsersTable!="" && $this->MailField!="")

{

$_body=$this->SetTagsFromDB($_body, $_recipients_info);

}

else

{

foreach($_recipients_info as $FieldName=>$val)

{

if(is_string($val))

$_body=str_replace("{".$FieldName."}", $val, $_body);

}

}

return $_body;

}

/**

* подстановка значений из бд

*

* @param string $_body текст

* @param array $_recipients_info значения (адрес и имя)

* @return string текст

*

*/

public function SetTagsFromDB($_body, $_recipients_info)

{

$query="SELECT * FROM ".$this->UsersTable."

WHERE ".$this->MailField."='".$_recipients_info['MAIL']."'";

$ds = new ODBDataSet("", $this, GetConnection("MainDBConnection"));

if($ds->Open($query) && $ds->RowCount>0)

{

foreach ($ds->ColumnInfo->Items as $col_info)

{

$FieldName = $col_info->Name;

$FieldValue = $ds->GetFieldValue($FieldName);

$_body=str_replace("{".$FieldName."}", $FieldValue, $_body);

}

}

else

{

$_body=str_replace("{".$this->NameField."}", $_recipients_info['NAME'], $_body);

$_body=str_replace("{".$this->MailField."}", $_recipients_info['MAIL'], $_body);

}

return $_body;

}

public function is_email($email){

$p = '/^[a-z0-9!#$%&*+-=?^_`{|}~]+(\.[a-z0-9!#$%&*+-=?^_`{|}~]+)*';

$p.= '@([-a-z0-9]+\.)+([a-z]{2,3}';

$p.= '|info|arpa|aero|coop|name|museum|mobi)$/ix';

return preg_match($p, $email);

}

}
?>


1   ...   14   15   16   17   18   19   20   21   22

Похожие:

Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к курсовому проекту по дисциплине «Разработка...
Курсовой проект содержит: страниц –19, источников – 5, рисунков – 6, таблиц – 2
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к дипломному проекту На тему: ≪Разработка виртуального...
На тему: ≪Разработка виртуального стенда для изучения методик построения vpn соединений≫
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к курсовому проекту по дисциплине «Разработка...
Курсовой проект содержит: страниц – 22, источников – 8, рисунков – 9, таблиц – 1
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconДипломному проекту На тему: «Проектирование и разработка автоматизированной...
Охватывают различные подразделения, начиная с приема больного в стационаре и заканчивая его выпиской. В медицинских учреждениях работает...
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к дипломному проекту На тему: ≪Разработка виртуальной...
На тему: ≪Разработка виртуальной среды для освоения протоколов распределенной аутентификации и авторизации пользователей≫
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к курсовому проекту по дисциплине «Разработка сапр»
Целью работы является разработка и реализация библиотеки элементов «Отвертка» на базе системы компас 3D, с использованием методов...
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к курсовому проекту по дисциплине: «Разработка сапр»
Целью данной работы является разработка и реализация модуля к сапр «Зубчатая передача с пересекающимися осями колес» на базе системы...
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к дипломному проекту «Совместное моделирование...
Лирования, описан инструментарий, базовые идеи и принципы. Осуществлен выбор существующих программных средств и произведена интеграция...
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к курсовой работе по дисциплине «Разработка...
Курсовой проект содержит: страниц –20, источников – 5, рисунков – 6, таблиц – 2
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к курсовой работе по дисциплине «Разработка...
Курсовой проект содержит: страниц –22, источников – 5, рисунков – 6, таблиц – 2
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к дипломному проектированию на тему: «Исследование...
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к курсовой работе по дисциплине «Разработка...
Курсовая работа содержит: страниц – 20, источников – 8, рисунков – 7, таблиц – 2
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к дипломной работе На тему: «Разработка системы...
На тему: «Разработка системы автоматизации функций формирования scorm совместимых метаданных для информационных ресурсов»
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к дипломному проекту на тему: «Изучение роли...
«Изучение роли температурных эффектов при оформлении и защите выпускной квалификационной работы»
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconПояснительная записка к курсовому проекту "разработка технологического...
Цель курсового проекта  систематизировать и закрепить теоретические знания, полученные при изучении данного курса
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы на основе Mayral Framework» iconДипломному проекту На тему: Прогнозирование безотказности современных...
Охватывает вопросы конструирования, исследования и принципов применения интегральных микросхем


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск