Exemplo n.º 1
0
 public static function createEvent($user_id, $event_id, $data)
 {
     $db = JO_Db::getDefaultAdapter();
     $rows = self::describeTable('events');
     //$user_info_get = self::getUser($user_id);
     //$created = WM_Date::format($user_info_get['created'], 'yy-mm-dd H:i:s');
     $update = array();
     $avatar = '';
     $followers = false;
     foreach ($rows as $row) {
         if (array_key_exists($row, $data)) {
             if ($row == 'avatar') {
                 if ($data[$row]) {
                     JO_Session::clear('upload_avatar');
                     $avatar = $data[$row];
                 } else {
                     //$update[$row] = $data[$row];
                 }
             } else {
                 $update[$row] = $data[$row];
                 if ($row == 'compartir' && $data[$row] == 'followers') {
                     $followers = true;
                 }
                 if ($row == 'date_event') {
                     $fecha = str_replace("/", "-", $data[$row]);
                     $update[$row] = WM_Date::format($fecha, 'yy-mm-dd H:i:s');
                 }
             }
         }
     }
     if (!$update) {
         if (!$avatar) {
             return false;
         }
     }
     $user_data = "";
     if ($event_id) {
         $user_data = Model_Events::getEventUser((string) $user_id, $event_id);
         if (!$user_data) {
             $db->insert('events', $update);
             $event_id = $db->lastInsertId();
             if ($followers) {
                 $users = Model_Users::getUsers(array('filter_following_user_id' => (string) $user_id));
                 if ($users) {
                     foreach ($users as $key => $user) {
                         Model_History::addHistory($user['user_id'], Model_History::CREATE_EVENT, $event_id);
                         //self::FollowEvent($event_id, $user['user_id']);
                     }
                 }
             }
             if (!$event_id) {
                 return false;
             }
         } else {
             $result = $db->update('events', $update, array('user_id = ' . (string) $user_id . ' AND event_id = ' . (string) $event_id));
             if ($followers) {
                 $users = Model_Users::getUsers(array('filter_following_user_id' => (string) $user_id));
                 if ($users) {
                     foreach ($users as $key => $user) {
                         Model_History::addHistory($user['user_id'], Model_History::CREATE_EVENT, $event_id);
                         //self::FollowEvent($event_id, $user['user_id']);
                     }
                 }
             }
             if (!$result) {
                 return false;
             }
         }
     } else {
         $db->insert('events', $update);
         $event_id = $db->lastInsertId();
         if ($followers) {
             $users = Model_Users::getUsers(array('filter_following_user_id' => (string) $user_id));
             if ($users) {
                 foreach ($users as $key => $user) {
                     Model_History::addHistory($user['user_id'], Model_History::CREATE_EVENT, $event_id);
                     //self::FollowEvent($event_id, $user['user_id']);
                 }
             }
         }
         if (!$event_id) {
             return false;
         }
     }
     if ($avatar) {
         ///// upload images
         //error_log("Vamos a subir la imagen");
         $front = JO_Front::getInstance();
         $request = JO_Request::getInstance();
         $upload_model = Helper_Pin::formatUploadModule(JO_Registry::get('default_upload_method'));
         $upload_model_file = $front->getModuleDirectoryWithDefault($request->getModule()) . '/' . $front->classToFilename($upload_model);
         if (!file_exists($upload_model_file)) {
             $upload_model = Helper_Pin::formatUploadModule('locale');
             $upload_model_file = $front->getModuleDirectoryWithDefault($request->getModule()) . '/' . $front->classToFilename($upload_model);
         }
         $image = false;
         if (file_exists($upload_model_file)) {
             //error_log("EXISTE FILE");
             $image = call_user_func(array($upload_model, 'uploadEventImage'), $avatar, $event_id);
         }
         if ($image) {
             //error_log("EXISTE FILE");
             $result = $db->update('events', array('avatar' => $image['image'], 'store' => $image['store'], 'height' => $image['height'], 'width' => $image['width'], 'last_action_datetime' => new JO_Db_Expr('NOW()')), array('user_id = ' . (string) $user_id . ' AND event_id = ' . (string) $event_id));
             if ($user_data) {
                 if ($user_data['avatar']) {
                     if ($user_data['avatar'] != $image['image']) {
                         call_user_func(array(Helper_Pin::formatUploadModule($user_data['store']), 'deleteEventImage'), $user_data);
                     }
                 }
             }
         }
     }
     return true;
 }