/** * Add weblink * * @access public * @param void * @return null */ function add_weblink() { if (logged_user()->isGuest()) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $file_data = array_var($_POST, 'webpage'); $file = new ProjectFile(); if (!is_array(array_var($_POST, 'webpage'))) { // set layout for modal form if (array_var($_REQUEST, 'modal')) { $this->setLayout("json"); tpl_assign('modal', true); } } if (is_array(array_var($_POST, 'webpage'))) { try { $type = ProjectFiles::TYPE_WEBLINK; $file->setType($type); $file->setFilename(array_var($file_data, 'name')); $file->setFromAttributes($file_data); $url = array_var($file_data, 'url', ''); if ($url && strpos($url, ':') === false) { $url = $this->protocol . "://" . $url; $file->setUrl($url); } DB::beginWork(); $file->save(); $revision = new ProjectFileRevision(); $revision->setFileId($file->getId()); $revision->setRevisionNumber($file->getNextRevisionNumber()); $revision->setFileTypeId(FileTypes::getByExtension('webfile')->getId()); $revision->setTypeString($file->getUrl()); $revision->setRepositoryId('webfile'); $revision_comment = array_var($file_data, 'revision_comment', lang('initial versions')); $revision->setComment($revision_comment); $revision->save(); $member_ids = json_decode(array_var($_POST, 'members')); //link it! $object_controller = new ObjectController(); $object_controller->add_subscribers($file); $object_controller->add_to_members($file, $member_ids); $object_controller->link_to_new_object($file); $object_controller->add_subscribers($file); $object_controller->add_custom_properties($file); DB::commit(); ApplicationLogs::createLog($file, ApplicationLogs::ACTION_ADD); flash_success(lang('success add webpage', $file->getObjectName())); ajx_current("back"); if (array_var($_REQUEST, 'modal')) { evt_add("reload current panel"); } // Error... } catch (Exception $e) { DB::rollback(); flash_error($e->getMessage()); ajx_current("empty"); } } tpl_assign('file', $file); tpl_assign('file_data', $file_data); }