joomla5.1 腾讯云存储tencentcloud_cos与joomla图片的对接,自定义字段云存储路径的处理

1,腾讯云提供了一些开源平台的图片存储插件,可以在插件库中查看
https://gitee.com/organizations/Tencent-Cloud-Plugins/projects

2,joomla与腾讯云存储对接机制,就是在内容/分类上传图片/视频/语音/文档时,上传云存储,然后返回对应的访问路径。(如果上传的路径有相关文件夹要创建,会自动创建)

3,tencentcloud-joomla-plugin-cos 【Joomla】腾讯云对象存储(COS)插件
插件存的问题:
(1),提交时,joomla内容管理/分类管理,涉及到的图片都会上传,但api接口返回时,这些图片路径没有组合成云存储路径。只对images,text,introtext 基础字段进行了处理。
如果是扩展字段则没处理。在配置中新增一个要处理的自定义字段配置项,对里面的字段进行图片/视频/文档等云存储路径的处理。

自定义字段云存储路径的处理

自定义字段类型:editor ,subform,media 处理的方式是不一样的,需要根据自定义自段存储格式来处理。
subform类型字段格式:一个视频图及对应的视频封面图片,可以上传多个视频。
{“row0”:{“field68”:{“imagefile”:“/static/video/4eb03761c97246cb9b30fc8883c181ce.mp4”,“alt_text”:“”},“field89”:{“imagefile”:“images/ffc6e668132840cfafa7d4432716076a.jpeg”,“alt_text”:“”}},“row1”:{“field68”:{“imagefile”:“/static/video/f9fded311b2f40c982ec60521ec474fd.mp4”,“alt_text”:“”},“field89”:{“imagefile”:“images/ffc6e668132840cfafa7d4432716076a.jpeg”,“alt_text”:“”}}}

media类型字段格式:一张图片
{“imagefile”:“/static/logo/b91a3b1e7adb4773b4a9496094a6cca3.jpg”,“alt_text”:“”}

editor类型字段格式:一段内容,包含图片/视频/文档路径 直接进行替换

替换方法:

    private function replaceImageUrl($text, $cos_options)
    {
        if (empty($text)) {
            return $text;
        }
        preg_match_all('/<a[^>]+href=([\'"])(?<href>.+?)\1[^>]*>/i', $text, $hrefResult);
        preg_match_all('/<img[^>]+src=([\'"])(?<src>.+?)\1[^>]*>/i', $text, $srcResult);

        $result = array_merge($hrefResult['href'], $srcResult['src']);
        if (empty($result)) {
            return $text;
        }

        $ciUrl = (new TencentcloudCosAction())->getCiRule();
        foreach ($result as $link) {
            $replaceString = $cos_options['remote_url'] . "/" . ltrim($link, '/');
            if (isset($cos_options['cloud_infinite']) && $cos_options['cloud_infinite'] === 1) {
                $replaceString .= "?" . $ciUrl;
            }

            $text = str_replace($link, $replaceString, $text);
        }
        return $text;
    }
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值