/**
  * 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);
 }