function store() { $db = $this->getDBO(); $table = $db->nameQuote('#__om_rooms'); JRequest::checkToken() or jexit('Invalid Token'); $cid = JRequest::getVar('id', 0, 'post'); $requestData = JRequest::getVar('jform', array(), 'post'); if (!is_numeric($requestData["number_of_participants"])) { $requestData["number_of_participants"] = 0; } $data = $requestData; if ($requestData["is_public"] == 'True') { $requestData["is_public"] = 1; } else { $requestData["is_public"] = 0; } if ($cid) { /* Обновляем данные */ $sql = 'UPDATE ' . $table . ' SET ' . $db->nameQuote('name') . ' = ' . $db->quote($requestData['name']) . ', ' . $db->nameQuote('roomtype_id') . ' = ' . $db->quote($requestData['roomtype_id']) . ', ' . $db->nameQuote('comment') . ' = ' . $db->quote($requestData['comment']) . ', ' . $db->nameQuote('number_of_participants') . ' = ' . $db->quote($requestData['number_of_participants']) . ', ' . $db->nameQuote('is_public') . ' = ' . $db->quote($requestData['is_public']) . ', ' . $db->nameQuote('appointment') . ' = ' . $db->quote($requestData['appointment']) . ', ' . $db->nameQuote('is_moderated_room') . ' = ' . $db->quote($requestData['is_moderated_room']) . ', ' . $db->nameQuote('room_validity') . ' = ' . $db->quote($requestData['room_validity']) . ', ' . $db->nameQuote('date_type') . ' = ' . $db->quote($requestData['date_type']) . ', ' . $db->nameQuote('time_type') . ' = ' . $db->quote($requestData['time_type']) . ', ' . $db->nameQuote('duration') . ' = ' . $db->quote($requestData['duration']) . ', ' . $db->nameQuote('repeat_type') . ' = ' . $db->quote($requestData['repeat_type']) . ', ' . $db->nameQuote('weekday_type') . ' = ' . $db->quote($requestData['weekday_type']) . ' ' . 'WHERE ' . $db->nameQuote('id') . ' = ' . $db->quote($cid); $omRoomManagament = new openmeetingsRoomManagament(); $room_id = $omRoomManagament->updateRoomWithModeration($data); //Make sure the Openmeetings Room was succsefully created if ($room_id < 1) { throw new Exception('Could not login User to OpenMeetings, check your OpenMeetings Module Configuration'); return false; } } else { /* Создаем новую запись */ $omRoomManagament = new openmeetingsRoomManagament(); $room_id = $omRoomManagament->createRoomWithModeration($data); //$data['room_id'] = $room_id; $data->room_id = $room_id; //Make sure the Openmeetings Room was succsefully created if ($room_id < 1) { throw new Exception('Could not login User to OpenMeetings, check your OpenMeetings Module Configuration'); return false; } $sql = 'INSERT INTO ' . $table . ' (`id`, `name`, `room_id`, `owner`, `roomtype_id`, `comment`, `number_of_participants`, `is_public`, `appointment`, `is_moderated_room`, `room_validity`, `date_type`, `time_type`, `duration`, `repeat_type`, `weekday_type`) VALUES (' . '0, ' . $db->quote($requestData['name']) . ', ' . $db->quote($room_id) . ', ' . $db->quote($requestData['owner']) . ', ' . $db->quote($requestData['roomtype_id']) . ', ' . $db->quote($requestData['comment']) . ', ' . $db->quote($requestData['number_of_participants']) . ', ' . $db->quote($requestData['is_public']) . ', ' . $db->quote($requestData['appointment']) . ', ' . $db->quote($requestData['is_moderated_room']) . ', ' . $db->quote($requestData['room_validity']) . ', ' . $db->quote($requestData['date_type']) . ', ' . $db->quote($requestData['time_type']) . ', ' . $db->quote($requestData['duration']) . ', ' . $db->quote($requestData['repeat_type']) . ', ' . $db->quote($requestData['weekday_type']) . ')'; } $db->setQuery($sql); if (!$db->query()) { throw new Exception($db->getErrorMsg()); } $db->setQuery('DELETE FROM #__om_rooms_users WHERE `om_room_id` = ' . $db->quote($room_id)); if (!$db->query()) { throw new Exception($db->getErrorMsg()); } foreach ($requestData['owners'] as $value) { $tuples[] = '(' . $db->quote($room_id) . ", " . $db->quote($value) . ')'; } if (count($tuples)) { $db->setQuery('INSERT INTO #__om_rooms_users VALUES ' . implode(', ', $tuples)); if (!$db->query()) { throw new Exception($db->getErrorMsg()); } } }