app/Http/Controllers/EditMediaController.php
public function createMediaObjectAction(ServerRequestInterface $request, Tree $tree): ResponseInterface
    {
        $note                = $request->get('note');
        $title               = $request->get('title');
        $type                = $request->get('type');
        $privacy_restriction = $request->get('privacy-restriction', '');
        $edit_restriction    = $request->get('edit-restriction', '');

        // Tidy whitespace
        $type  = trim(preg_replace('/\s+/', ' ', $type));
        $title = trim(preg_replace('/\s+/', ' ', $title));

        // Convert line endings to GEDDCOM continuations
        $note = str_replace([
            "\r\n",
            "\r",
            "\n",
        ], "\n1 CONT ", $note);

        $file = $this->uploadFile($request, $tree);

        if ($file === '') {
            return response(['error_message' => I18N::translate('There was an error uploading your file.')], 406);
        }

        $gedcom = "0 @@ OBJE\n" . $this->createMediaFileGedcom($file, $type, $title);

        if ($note !== '') {
            $gedcom .= "\n1 NOTE " . preg_replace('/\r?\n/', "\n2 CONT ", $note);
        }

        if (in_array($privacy_restriction, self::PRIVACY_RESTRICTIONS, true)) {
            $gedcom .= "\n1 RESN " . $privacy_restriction;
        }

        if (in_array($edit_restriction, self::EDIT_RESTRICTIONS, true)) {
            $gedcom .= "\n1 RESN " . $edit_restriction;
        }

        $record = $tree->createMediaObject($gedcom);

        // Accept the new record to keep the filesystem synchronized with the genealogy.
        FunctionsImport::acceptAllChanges($record->xref(), $record->tree());

        return response([
            'id'   => $record->xref(),
            'text' => view('selects/media', [
                'media' => $record,
            ]),
            'html' => view('modals/record-created', [
                'title' => I18N::translate('The media object has been created'),
                'name'  => $record->fullName(),
                'url'   => $record->url(),
            ]),
        ]);
    }
public function createMediaObjectAction(ServerRequestInterface $request, Tree $tree): ResponseInterface
    {
        $note                = $request->get('note');
        $title               = $request->get('title');
        $type                = $request->get('type');
        $privacy_restriction = $request->get('privacy-restriction', '');
        $edit_restriction    = $request->get('edit-restriction', '');

        // Tidy whitespace
        $type  = trim(preg_replace('/\s+/', ' ', $type));
        $title = trim(preg_replace('/\s+/', ' ', $title));

        // Convert line endings to GEDDCOM continuations
        $note = str_replace([
            "\r\n",
            "\r",
            "\n",
        ], "\n1 CONT ", $note);

        $file = $this->uploadFile($request, $tree);

        if ($file === '') {
            return response(['error_message' => I18N::translate('There was an error uploading your file.')], 406);
        }

        $gedcom = "0 @@ OBJE\n" . $this->createMediaFileGedcom($file, $type, $title);

        if ($note !== '') {
            $gedcom .= "\n1 NOTE " . preg_replace('/\r?\n/', "\n2 CONT ", $note);
        }

        if (in_array($privacy_restriction, self::PRIVACY_RESTRICTIONS, true)) {
            $gedcom .= "\n1 RESN " . $privacy_restriction;
        }

        if (in_array($edit_restriction, self::EDIT_RESTRICTIONS, true)) {
            $gedcom .= "\n1 RESN " . $edit_restriction;
        }

        $record = $tree->createMediaObject($gedcom);

        // Accept the new record to keep the filesystem synchronized with the genealogy.
        FunctionsImport::acceptAllChanges($record->xref(), $record->tree());

        return response([
            'id'   => $record->xref(),
            'text' => view('selects/media', [
                'media' => $record,
            ]),
            'html' => view('modals/record-created', [
                'title' => I18N::translate('The media object has been created'),
                'name'  => $record->fullName(),
                'url'   => $record->url(),
            ]),
        ]);
    }
public function createMediaObjectAction ( ServerRequestInterface $ request , Tree $ tree ) : ResponseInterface { $ note = $ request -> get ( 'note' ) ; $ title = $ request -> get ( 'title' ) ; $ type = $ request -> get ( 'type' ) ; $ privacy_restriction = $ request -> get ( 'privacy-restriction' , '' ) ; $ edit_restriction = $ request -> get ( 'edit-restriction' , '' ) ; // Tidy whitespace $ type = trim ( preg_replace ( '/\s+/' , ' ' , $ type ) ) ; $ title = trim ( preg_replace ( '/\s+/' , ' ' , $ title ) ) ; // Convert line endings to GEDDCOM continuations $ note = str_replace ( [ "\r\n" , "\r" , "\n" , ] , "\n1 CONT " , $ note ) ; $ file = $ this -> uploadFile ( $ request , $ tree ) ; if ( $ file === '' ) { return response ( [ 'error_message' => I18N :: translate ( 'There was an error uploading your file.' ) ] , 406 ) ; } $ gedcom = "0 @@ OBJE\n" . $ this -> createMediaFileGedcom ( $ file , $ type , $ title ) ; if ( $ note !== '' ) { $ gedcom .= "\n1 NOTE " . preg_replace ( '/\r?\n/' , "\n2 CONT " , $ note ) ; } if ( in_array ( $ privacy_restriction , self :: PRIVACY_RESTRICTIONS , true ) ) { $ gedcom .= "\n1 RESN " . $ privacy_restriction ; } if ( in_array ( $ edit_restriction , self :: EDIT_RESTRICTIONS , true ) ) { $ gedcom .= "\n1 RESN " . $ edit_restriction ; } $ record = $ tree -> createMediaObject ( $ gedcom ) ; // Accept the new record to keep the filesystem synchronized with the genealogy. FunctionsImport :: acceptAllChanges ( $ record -> xref ( ) , $ record -> tree ( ) ) ; return response ( [ 'id' => $ record -> xref ( ) , 'text' => view ( 'selects/media' , [ 'media' => $ record , ] ) , 'html' => view ( 'modals/record-created' , [ 'title' => I18N :: translate ( 'The media object has been created' ) , 'name' => $ record -> fullName ( ) , 'url' => $ record -> url ( ) , ] ) , ] ) ; }
Process a form to create a new media object.

@param ServerRequestInterface $request
@param Tree                   $tree

@return ResponseInterface
Process a form to create a new media object .