コード例 #1
0
ファイル: filter.php プロジェクト: ForAEdesWeb/AEW1
 function countReceivers($listids, $filters, $mailid = 0)
 {
     if (empty($listids)) {
         return 0;
     }
     JPluginHelper::importPlugin('acymailing');
     $this->dispatcher = JDispatcher::getInstance();
     $query = new acyQuery();
     JArrayHelper::toInteger($listids);
     $query->from = '#__acymailing_listsub as listsub';
     $query->join[] = '#__acymailing_subscriber as sub ON sub.subid = listsub.subid';
     $query->where[] = 'listsub.listid IN (' . implode(',', $listids) . ') AND listsub.status=1';
     $config = acymailing_config();
     if ($config->get('require_confirmation')) {
         $query->where[] = 'sub.confirmed = 1';
     }
     $query->where[] = 'sub.enabled = 1 AND sub.accept = 1';
     if ($this->onlynew && !empty($mailid)) {
         $query->leftjoin[] = '#__acymailing_userstats as userstats ON sub.subid = userstats.subid AND userstats.mailid = ' . intval($mailid);
         $query->where[] = 'userstats.subid IS NULL';
     }
     if (!empty($filters['type'])) {
         foreach ($filters['type'] as $num => $oneType) {
             if (empty($oneType)) {
                 continue;
             }
             $this->dispatcher->trigger('onAcyProcessFilter_' . $oneType, array(&$query, $filters[$num][$oneType], $num));
         }
     }
     return $query->count();
 }
コード例 #2
0
ファイル: fields.php プロジェクト: utopszkij/lmp
 private function _getDataFromDB($field, $valueField, $titleField)
 {
     $tableName = acymailing_secureField($field->options['tableName']);
     $dbName = acymailing_secureField($field->options['dbName']);
     $whereCond = !empty($field->options['whereCond']) ? $field->options['whereCond'] : '';
     $whereOp = !empty($field->options['whereOperator']) ? $field->options['whereOperator'] : '';
     $whereValue = !empty($field->options['whereValue']) ? $field->options['whereValue'] : '';
     $orderByField = !empty($field->options['orderField']) ? acymailing_secureField($field->options['orderField']) : '';
     $orderByValue = !empty($field->options['orderValue']) ? acymailing_secureField($field->options['orderValue']) : '';
     if ($dbName == 'current') {
         $this->database->setQuery('SELECT DATABASE()');
         $dbName = $this->database->loadResult();
     }
     $query = 'SELECT `' . $valueField . '`, `' . $titleField . '` FROM `' . $dbName . '`.`' . $tableName . '`';
     $query .= ' WHERE `' . $valueField . '`<>\'\' AND `' . $titleField . '`<>\'\'';
     if (!empty($whereValue) && !empty($whereCond)) {
         $filterClass = acymailing_get('class.filter');
         $queryClass = new acyQuery();
         $query .= ' AND ' . $queryClass->convertQuery($tableName, $whereCond, $whereOp, $whereValue);
     }
     $query .= ' GROUP BY `' . $valueField . '`, `' . $titleField . '`';
     $query .= !empty($orderByField) ? ' ORDER BY `' . $orderByField . '` ' . $orderByValue : '';
     try {
         $this->database->setQuery($query);
         $res = $this->database->loadObjectList();
     } catch (Exception $e) {
         acymailing_display($e->getMessage(), 'error');
         $res = array();
     }
     return $res;
 }