aboutsummaryrefslogtreecommitdiff
path: root/h-source/Application/Models/TalkModel.php
diff options
context:
space:
mode:
authorAntonio Gallo <tonicucoz@gmail.com>2011-01-26 03:05:35 +0000
committerAntonio Gallo <tonicucoz@gmail.com>2011-01-26 03:05:35 +0000
commitf51c3d89d5118e45914a1de7f6bdb03dd559e32e (patch)
treec76ee67ddb62723503711175e406442b72c55103 /h-source/Application/Models/TalkModel.php
parent1ddc3583a205edd248a53fcf65e3fbad3664f85f (diff)
added mail notifications for talk messages
Diffstat (limited to 'h-source/Application/Models/TalkModel.php')
-rw-r--r--h-source/Application/Models/TalkModel.php57
1 files changed, 55 insertions, 2 deletions
diff --git a/h-source/Application/Models/TalkModel.php b/h-source/Application/Models/TalkModel.php
index d6d935b..e29e073 100644
--- a/h-source/Application/Models/TalkModel.php
+++ b/h-source/Application/Models/TalkModel.php
@@ -20,14 +20,16 @@
if (!defined('EG')) die('Direct access not allowed!');
-class TalkModel extends NorepeatModel {
+class TalkModel extends Model_Tree {
public function __construct() {
$this->_tables = 'talk';
$this->_idFields = 'id_talk';
$this->_where=array(
- 'id_hard' => 'talk'
+ 'id_hard' => 'talk',
+ 'has_confirmed' => 'regusers',
+ '-deleted' => 'regusers',
);
$this->orderBy = 'talk.id_talk desc';
@@ -41,6 +43,57 @@ class TalkModel extends NorepeatModel {
parent::__construct();
}
+ public function insert()
+ {
+ if (parent::insert())
+ {
+ if (strcmp($this->values['id_hard'],0) !== 0)
+ {
+ $clean['id_hard'] = (int)$this->values['id_hard'];
+ $clean['created_by'] = (int)$this->values['created_by'];
+
+ $hard = new HardwareModel();
+ $users = $hard->select('username,e_mail')
+ ->where(array('id_hard'=>$clean['id_hard'],'has_confirmed'=>0,'deleted'=>'no'))
+ ->toList('regusers.username','regusers.e_mail')
+ ->send('Boxes');
+
+ $talkUsers = $this->select('username,e_mail')
+ ->from('talk inner join regusers')
+ ->on('talk.created_by = regusers.id_user')
+ ->where(array('id_hard'=>$clean['id_hard'],'has_confirmed'=>0,'-deleted'=>'no'))
+ ->toList('regusers.username','regusers.e_mail')
+ ->send();
+
+ $allUsers = array_merge($users,$talkUsers);
+
+ $userObj = new UsersModel();
+ $myName = $userObj->getUser($clean['created_by']);
+
+ $arrayE = new ArrayExt();
+ $fusers = $arrayE->subsetComplementary($allUsers,$myName);
+
+ //remove users that do not want the email notification
+ $inString = "'".implode("','",array_keys($fusers))."'";
+ $profile = new ProfileModel();
+ $ffusers = $profile->select('username,e_mail')
+ ->from('regusers inner join profile')
+ ->on('regusers.id_user = profile.created_by')
+ ->where(array('send_notification'=>'yes','username'=>"in($inString)"))
+ ->toList('regusers.username','regusers.e_mail')
+ ->send();
+
+ $ffusers = array_flip($ffusers);
+
+ //send the notice
+ Account::sendTalkNotice($myName,$ffusers,$clean['id_hard']);
+
+ header('Refresh: 0;url=http://'.DOMAIN_NAME.$_SERVER['REQUEST_URI']);
+ exit;
+ }
+ }
+ }
+
public $formStruct = array(
'entries' => array(
'title' => array(),