4aef704e |
1 | <?php |
2 | /* |
3 | +--------------------------------------------------------------------+ |
4 | | CiviCRM version 4.5 | |
5 | +--------------------------------------------------------------------+ |
6 | | Copyright CiviCRM LLC (c) 2004-2014 | |
7 | +--------------------------------------------------------------------+ |
8 | | This file is a part of CiviCRM. | |
9 | | | |
10 | | CiviCRM is free software; you can copy, modify, and distribute it | |
11 | | under the terms of the GNU Affero General Public License | |
12 | | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. | |
13 | | | |
14 | | CiviCRM is distributed in the hope that it will be useful, but | |
15 | | WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
17 | | See the GNU Affero General Public License for more details. | |
18 | | | |
19 | | You should have received a copy of the GNU Affero General Public | |
20 | | License and the CiviCRM Licensing Exception along | |
21 | | with this program; if not, contact CiviCRM LLC | |
22 | | at info[AT]civicrm[DOT]org. If you have questions about the | |
23 | | GNU Affero General Public License or the licensing of CiviCRM, | |
24 | | see the CiviCRM license FAQ at http://civicrm.org/licensing | |
25 | +--------------------------------------------------------------------+ |
26 | */ |
27 | |
28 | /** |
29 | * |
30 | * @package CRM |
31 | * @copyright CiviCRM LLC (c) 2004-2014 |
32 | * $Id$ |
33 | * |
34 | */ |
35 | |
36 | /** |
37 | * Class CRM_Mailing_BAO_MailingAB |
38 | */ |
39 | class CRM_Mailing_BAO_MailingAB extends CRM_Mailing_DAO_MailingAB { |
40 | |
41 | /** |
42 | * class constructor |
43 | */ |
44 | function __construct() { |
45 | parent::__construct(); |
46 | } |
47 | |
48 | /** |
49 | * Construct a new mailingab object |
50 | * |
51 | * @params array $params Form values |
52 | * |
53 | * @param $params |
54 | * @param array $ids |
55 | * |
56 | * @return object $mailingab The new mailingab object |
57 | * @access public |
58 | * @static |
59 | */ |
60 | public static function create(&$params, $ids = array()) { |
61 | $transaction = new CRM_Core_Transaction(); |
62 | |
63 | $mailingab = self::add($params, $ids); |
64 | |
65 | if (is_a($mailingab, 'CRM_Core_Error')) { |
66 | $transaction->rollback(); |
67 | return $mailingab; |
68 | } |
69 | $transaction->commit(); |
fd843187 |
70 | return $mailingab; |
4aef704e |
71 | } |
72 | |
73 | /** |
74 | * function to add the mailings |
75 | * |
76 | * @param array $params reference array contains the values submitted by the form |
77 | * @param array $ids reference array contains the id |
78 | * |
79 | * @access public |
80 | * @static |
81 | * |
82 | * @return object |
83 | */ |
84 | static function add(&$params, $ids = array()) { |
85 | $id = CRM_Utils_Array::value('mailingab_id', $ids, CRM_Utils_Array::value('id', $params)); |
86 | |
87 | if ($id) { |
88 | CRM_Utils_Hook::pre('edit', 'MailingAB', $id, $params); |
89 | } |
90 | else { |
91 | CRM_Utils_Hook::pre('create', 'MailingAB', NULL, $params); |
92 | } |
93 | |
94 | $mailingab = new CRM_Mailing_DAO_MailingAB(); |
95 | $mailingab->id = $id; |
96 | $mailingab->domain_id = CRM_Utils_Array::value('domain_id', $params, CRM_Core_Config::domainID()); |
97 | |
98 | $mailingab->copyValues($params); |
99 | |
100 | $result = $mailingab->save(); |
101 | |
102 | if ($id) { |
103 | CRM_Utils_Hook::post('edit', 'MailingAB', $mailingab->id, $mailingab); |
104 | } |
105 | else { |
106 | CRM_Utils_Hook::post('create', 'MailingAB', $mailingab->id, $mailingab); |
107 | } |
108 | |
109 | return $result; |
110 | } |
111 | |
112 | |
113 | /** |
114 | * Delete MailingAB and all its associated records |
115 | * |
116 | * @param int $id id of the mail to delete |
117 | * |
118 | * @return void |
119 | * @access public |
120 | * @static |
121 | */ |
122 | public static function del($id) { |
123 | if (empty($id)) { |
124 | CRM_Core_Error::fatal(); |
125 | } |
126 | |
127 | CRM_Utils_Hook::pre('delete', 'MailingAB', $id, CRM_Core_DAO::$_nullArray); |
128 | |
129 | $dao = new CRM_Mailing_DAO_MailingAB(); |
130 | $dao->id = $id; |
131 | $dao->delete(); |
132 | |
133 | CRM_Core_Session::setStatus(ts('Selected mailing has been deleted.'), ts('Deleted'), 'success'); |
134 | |
135 | CRM_Utils_Hook::post('delete', 'MailingAB', $id, $dao); |
136 | } |
4aef704e |
137 | } |