concrete/src/Editor/LinkAbstractor.php
public static function translateFromEditMode($text)
    {
        $app = Application::getFacadeApplication();
        $entityManager = $app->make(EntityManagerInterface::class);
        $resolver = $app->make(ResolverManagerInterface::class);
        $appUrl = Application::getApplicationURL();

        $text = preg_replace(
            [
                '/{CCM:BASE_URL}/i',
            ],
            [
                $appUrl,
            ],
            $text
        );

        //page links...
        $text = preg_replace(
            '/{CCM:CID_([0-9]+)}/i',
            $appUrl . '/' . DISPATCHER_FILENAME . '?cID=\\1',
            $text
        );

        //images...
        $dom = new HtmlDomParser();
        $r = $dom->str_get_html($text, true, true, DEFAULT_TARGET_CHARSET, false);
        if (is_object($r)) {
            foreach ($r->find('concrete-picture') as $picture) {
                $fID = $picture->fid;

                $attrString = "";
                foreach ($picture->attr as $attr => $val) {
                    if (!in_array($attr, self::$blackListImgAttributes)) {
                        $attrString .= "$attr=\"$val\" ";
                    }
                }

                $picture->outertext = '<img src="' . $resolver->resolve([
                        '/download_file',
                        'view_inline',
                        $fID
                    ]) . '" ' . $attrString . '/>';
            }

            $text = (string) $r->restore_noise($r);
        }

        // now we add in support for the links
        $text = static::replacePlaceholder(
            $text,
            '{CCM:FID_([0-9]+)}',
            function ($fID) use ($resolver) {
                if ($fID > 0) {
                    return $resolver->resolve(['/download_file', 'view_inline', $fID]);
                }
            }
        );

        //file downloads...
        $text = static::replacePlaceholder(
            $text,
            '{CCM:FID_DL_([0-9]+)}',
            function ($fID) use ($resolver) {
                if ($fID > 0) {
                    return $resolver->resolve(['/download_file', 'view', $fID]);
                }
            }
        );

        return $text;
    }
public static function translateFromEditMode($text)
    {
        $app = Application::getFacadeApplication();
        $entityManager = $app->make(EntityManagerInterface::class);
        $resolver = $app->make(ResolverManagerInterface::class);
        $appUrl = Application::getApplicationURL();

        $text = preg_replace(
            [
                '/{CCM:BASE_URL}/i',
            ],
            [
                $appUrl,
            ],
            $text
        );

        //page links...
        $text = preg_replace(
            '/{CCM:CID_([0-9]+)}/i',
            $appUrl . '/' . DISPATCHER_FILENAME . '?cID=\\1',
            $text
        );

        //images...
        $dom = new HtmlDomParser();
        $r = $dom->str_get_html($text, true, true, DEFAULT_TARGET_CHARSET, false);
        if (is_object($r)) {
            foreach ($r->find('concrete-picture') as $picture) {
                $fID = $picture->fid;

                $attrString = "";
                foreach ($picture->attr as $attr => $val) {
                    if (!in_array($attr, self::$blackListImgAttributes)) {
                        $attrString .= "$attr=\"$val\" ";
                    }
                }

                $picture->outertext = '<img src="' . $resolver->resolve([
                        '/download_file',
                        'view_inline',
                        $fID
                    ]) . '" ' . $attrString . '/>';
            }

            $text = (string) $r->restore_noise($r);
        }

        // now we add in support for the links
        $text = static::replacePlaceholder(
            $text,
            '{CCM:FID_([0-9]+)}',
            function ($fID) use ($resolver) {
                if ($fID > 0) {
                    return $resolver->resolve(['/download_file', 'view_inline', $fID]);
                }
            }
        );

        //file downloads...
        $text = static::replacePlaceholder(
            $text,
            '{CCM:FID_DL_([0-9]+)}',
            function ($fID) use ($resolver) {
                if ($fID > 0) {
                    return $resolver->resolve(['/download_file', 'view', $fID]);
                }
            }
        );

        return $text;
    }
public static function translateFromEditMode ( $ text ) { $ app = Application :: getFacadeApplication ( ) ; $ entityManager = $ app -> make ( EntityManagerInterface :: class ) ; $ resolver = $ app -> make ( ResolverManagerInterface :: class ) ; $ appUrl = Application :: getApplicationURL ( ) ; $ text = preg_replace ( [ '/{CCM:BASE_URL}/i' , ] , [ $ appUrl , ] , $ text ) ; //page links... $ text = preg_replace ( '/{CCM:CID_([0-9]+)}/i' , $ appUrl . '/' . DISPATCHER_FILENAME . '?cID=\\1' , $ text ) ; //images... $ dom = new HtmlDomParser ( ) ; $ r = $ dom -> str_get_html ( $ text , true , true , DEFAULT_TARGET_CHARSET , false ) ; if ( is_object ( $ r ) ) { foreach ( $ r -> find ( 'concrete-picture' ) as $ picture ) { $ fID = $ picture -> fid ; $ attrString = "" ; foreach ( $ picture -> attr as $ attr => $ val ) { if ( ! in_array ( $ attr , self :: $ blackListImgAttributes ) ) { $ attrString .= "$attr=\"$val\" " ; } } $ picture -> outertext = '<img src="' . $ resolver -> resolve ( [ '/download_file' , 'view_inline' , $ fID ] ) . '" ' . $ attrString . '/>' ; } $ text = ( string ) $ r -> restore_noise ( $ r ) ; } // now we add in support for the links $ text = static :: replacePlaceholder ( $ text , '{CCM:FID_([0-9]+)}' , function ( $ fID ) use ( $ resolver ) { if ( $ fID > 0 ) { return $ resolver -> resolve ( [ '/download_file' , 'view_inline' , $ fID ] ) ; } } ) ; //file downloads... $ text = static :: replacePlaceholder ( $ text , '{CCM:FID_DL_([0-9]+)}' , function ( $ fID ) use ( $ resolver ) { if ( $ fID > 0 ) { return $ resolver -> resolve ( [ '/download_file' , 'view' , $ fID ] ) ; } } ) ; return $ text ; }
Takes a chunk of content containing abstracted link references,
and expands them to urls suitable for the rich text editor.
Takes a chunk of content containing abstracted link references and expands them to urls suitable for the rich text editor .