1: <?php
2: /*****************************************************************************************
3: * X2Engine Open Source Edition is a customer relationship management program developed by
4: * X2Engine, Inc. Copyright (C) 2011-2016 X2Engine Inc.
5: *
6: * This program is free software; you can redistribute it and/or modify it under
7: * the terms of the GNU Affero General Public License version 3 as published by the
8: * Free Software Foundation with the addition of the following permission added
9: * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10: * IN WHICH THE COPYRIGHT IS OWNED BY X2ENGINE, X2ENGINE DISCLAIMS THE WARRANTY
11: * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12: *
13: * This program is distributed in the hope that it will be useful, but WITHOUT
14: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15: * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16: * details.
17: *
18: * You should have received a copy of the GNU Affero General Public License along with
19: * this program; if not, see http://www.gnu.org/licenses or write to the Free
20: * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21: * 02110-1301 USA.
22: *
23: * You can contact X2Engine, Inc. P.O. Box 66752, Scotts Valley,
24: * California 95067, USA. or at email address contact@x2engine.com.
25: *
26: * The interactive user interfaces in modified source and object code versions
27: * of this program must display Appropriate Legal Notices, as required under
28: * Section 5 of the GNU Affero General Public License version 3.
29: *
30: * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31: * these Appropriate Legal Notices must retain the display of the "Powered by
32: * X2Engine" logo. If the display of the logo is not reasonably feasible for
33: * technical reasons, the Appropriate Legal Notices must display the words
34: * "Powered by X2Engine".
35: *****************************************************************************************/
36:
37: class MobileViewEventAction extends MobileAction {
38:
39: public function run ($id) {
40: $formModel = new EventCommentPublisherFormModel;
41: $profile = Yii::app()->params->profile;
42: $model = $this->controller->lookUpModel ($id, 'Events');
43: $this->controller->dataUrl = Yii::app()->request->url;
44:
45: if ($model->checkPermissions ('view')) {
46: if (isset ($_POST['EventCommentPublisherFormModel'])) {
47: $formModel->setAttributes ($_POST['EventCommentPublisherFormModel']);
48: if (isset ($_FILES['EventCommentPublisherFormModel'])) {
49: $model->photo = CUploadedFile::getInstance ($model, 'photo');
50: }
51: if ($formModel->validate ()) {
52: $event = new Events;
53: $event->setAttributes (array (
54: 'visibility' => X2PermissionsBehavior::VISIBILITY_PUBLIC,
55: 'user' => $profile->username,
56: 'type' => 'structured-feed',
57: 'associationType' => 'Events',
58: 'associationId' => $id,
59: 'text' => $formModel->text,
60: 'photo' => $formModel->photo
61: ), false);
62: if ($event->save ()) {
63: $formModel->text = '';
64: if (!isset ($_FILES['EventCommentPublisherFormModel'])) {
65: } else {
66: Yii::app()->end ();
67: }
68: } else {
69: throw new CHttpException (
70: 500, implode (';', $event->getAllErrorMessages ()));
71: }
72: }
73: }
74:
75: $dataProvider = new CActiveDataProvider ('Events', array(
76: 'criteria' => array(
77: 'order' => 'timestamp ASC',
78: 'condition' =>
79: "type in ('comment', 'structured-feed') AND
80: associationType='Events' AND associationId=$id",
81: ),
82: 'pagination' => array (
83: 'pageSize' => 30,
84: )));
85: $this->controller->render (
86: $this->pathAliasBase.'views.mobile.viewEvent', array (
87: 'model' => $model,
88: 'dataProvider' => $dataProvider,
89: 'formModel' => $formModel,
90: )
91: );
92: } else {
93: $this->controller->denied ();
94: }
95: }
96:
97: }
98:
99: ?>
100: