예제 #1
0
 function get($key)
 {
     $value = parent::get($key);
     if ($key === 'content' && $_REQUEST['view'] == 'Detail') {
         return Vtiger_Functions::removeHtmlTags(array('link', 'style', 'a', 'img', 'script'), decode_html($value));
     }
     if ($key === 'uid' || $key === 'content') {
         return decode_html($value);
     }
     return $value;
 }
예제 #2
0
 public function showEmailsList($srecord, $smodule, $Config, $type)
 {
     $return = [];
     $adb = PearDatabase::getInstance();
     $widgets = $this->modules_email_actions_widgets;
     $queryParams = [];
     if ($widgets[$smodule]) {
         $ids = [];
         $result = $adb->pquery('SELECT ossmailviewid FROM vtiger_ossmailview_relation WHERE crmid = ? AND `deleted` = ? ORDER BY `date` DESC LIMIT ' . $Config['widget_limit'], [$srecord, 0]);
         while ($row = $adb->fetch_array($result)) {
             $ids[] = $row['ossmailviewid'];
         }
         if (count($ids) == 0) {
             return [];
         }
         $queryParams[] = $ids;
         if ($type != 'all') {
             $ifwhere = ' AND type = ?';
             $queryParams[] = $type;
         }
         $query = 'SELECT vtiger_ossmailview.* FROM vtiger_ossmailview INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_ossmailview.ossmailviewid';
         $query .= ' WHERE ossmailviewid IN (' . generateQuestionMarks($ids) . ')' . $ifwhere;
         $currentUser = Users_Record_Model::getCurrentUserModel();
         $moduleName = 'OSSMailView';
         $instance = CRMEntity::getInstance($moduleName);
         $securityParameter = $instance->getUserAccessConditionsQuerySR($moduleName, $currentUser);
         if ($securityParameter != '') {
             $query .= $securityParameter;
         }
         $query .= ' ORDER BY ossmailviewid DESC LIMIT ' . $Config['widget_limit'];
         $result = $adb->pquery($query, $queryParams, true);
         while ($row = $adb->fetch_array($result)) {
             $from = $this->findRecordsById($row['from_id']);
             $to = $this->findRecordsById($row['to_id']);
             $return[$row['ossmailviewid']]['id'] = $row['ossmailviewid'];
             $return[$row['ossmailviewid']]['date'] = $row['date'];
             $return[$row['ossmailviewid']]['subject'] = '<a href="index.php?module=OSSMailView&view=preview&record=' . $row['ossmailviewid'] . '" target="' . $Config['target'] . '"> ' . $this->limit_text($row['subject']) . '</a>';
             $return[$row['ossmailviewid']]['attachments'] = $row['attachments_exist'];
             $return[$row['ossmailviewid']]['from'] = $from == '' && $from ? $from : $this->limit_text($row['from_email']);
             $return[$row['ossmailviewid']]['to'] = $to == '' && $to ? $to : $this->limit_text($row['to_email']);
             $return[$row['ossmailviewid']]['type'] = $row['type'];
             $return[$row['ossmailviewid']]['body'] = Vtiger_Functions::removeHtmlTags(array('link', 'style', 'a', 'img', 'script', 'head', 'base'), decode_html($row['content']));
         }
     }
     return $return;
 }
예제 #3
0
 public function showEmailsList($srecord, $smodule, $config, $type, $filter = 'All')
 {
     $return = [];
     $adb = PearDatabase::getInstance();
     $widgets = $this->modules_email_actions_widgets;
     $queryParams = [];
     if ($widgets[$smodule]) {
         $ids = [];
         $relatedID = [];
         if ($filter == 'All' || $filter == 'Contacts') {
             $result = $adb->pquery('SELECT vtiger_contactdetails.contactid FROM vtiger_contactdetails ' . 'INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_contactdetails.contactid ' . 'WHERE vtiger_contactdetails.parentid = ? AND vtiger_crmentity.deleted = ?', [$srecord, 0]);
             while ($row = $adb->fetch_array($result)) {
                 $relatedID[] = $row['contactid'];
             }
         }
         if ($filter != 'Contacts') {
             $relatedID[] = $srecord;
         }
         $query = 'SELECT ossmailviewid FROM vtiger_ossmailview_relation WHERE crmid IN(' . implode(',', $relatedID) . ') AND `deleted` = ? ORDER BY `date` DESC';
         if ($config['widget_limit'] != '') {
             $query .= ' LIMIT ' . $config['widget_limit'];
         }
         $result = $adb->pquery($query, [0]);
         while ($row = $adb->fetch_array($result)) {
             $ids[] = $row['ossmailviewid'];
         }
         if (count($ids) == 0) {
             return [];
         }
         $queryParams[] = $ids;
         if ($type != 'All') {
             $ifwhere = ' AND type = ?';
             $queryParams[] = $type;
         }
         $query = 'SELECT vtiger_ossmailview.* FROM vtiger_ossmailview INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_ossmailview.ossmailviewid';
         $query .= ' WHERE ossmailviewid IN (' . generateQuestionMarks($ids) . ')' . $ifwhere;
         $currentUser = Users_Record_Model::getCurrentUserModel();
         $moduleName = 'OSSMailView';
         $instance = CRMEntity::getInstance($moduleName);
         $securityParameter = $instance->getUserAccessConditionsQuerySR($moduleName, $currentUser);
         if ($securityParameter != '') {
             $query .= $securityParameter;
         }
         $query .= ' ORDER BY ossmailviewid DESC';
         if ($config['widget_limit'] != '') {
             $query .= ' LIMIT ' . $config['widget_limit'];
         }
         $result = $adb->pquery($query, $queryParams, true);
         while ($row = $adb->fetch_array($result)) {
             $from = $this->findRecordsById($row['from_id']);
             $from = $from && $from != '' ? $from : $row['from_email'];
             $to = $this->findRecordsById($row['to_id']);
             $to = $to && $to != '' ? $to : $row['to_email'];
             $content = Vtiger_Functions::removeHtmlTags(['link', 'style', 'a', 'img', 'script', 'base'], decode_html($row['content']));
             $return[] = ['id' => $row['ossmailviewid'], 'date' => $row['date'], 'firstLetter' => strtoupper(Vtiger_Functions::textLength(trim(strip_tags($from)), 1, false)), 'subject' => '<a href="index.php?module=OSSMailView&view=preview&record=' . $row['ossmailviewid'] . '" target="' . $config['target'] . '"> ' . $row['subject'] . '</a>', 'attachments' => $row['attachments_exist'], 'from' => $from, 'to' => $to, 'url' => 'index.php?module=OSSMailView&view=preview&record=' . $row['ossmailviewid'], 'type' => $row['type'], 'teaser' => Vtiger_Functions::textLength(trim(preg_replace('/[ \\t]+/', ' ', strip_tags($content))), 100), 'body' => $content];
         }
     }
     return $return;
 }