当前位置: 首页 > article >正文

20241127 给typecho文章编辑附件 添加视频 图片预览

Typecho在写文章时,如果一次性上传太多张图片可能分不清哪张,因为附件没有略缩图,无法实时阅览图片,给文章插入图片时很不方便。

 编辑admin/file-upload.php
大约十八行的位置
一个while 循环里面,这是在进行html元素更新操作,在合适的位置插入视频或者图片标签即可.
最终成为这样

<?php while ($attachment->next()): ?>
    <li data-cid="<?php $attachment->cid(); ?>" data-url="<?php echo $attachment->attachment->url; ?>" data-image="<?php echo $attachment->attachment->isImage ? 1 : 0; ?>"><input type="hidden" name="attachment[]" value="<?php $attachment->cid(); ?>" />
    
    <!-- 视频,图片预览 -->
    <?php if($attachment->attachment->isImage==1): ?>
    <img src="<?php echo $attachment->attachment->url; ?>" width="80%"></src><br/>
    <?php endif; ?>
    <?php if ($attachment->attachment->mime == "video/mp4"): ?>
    <video src="<?php echo $attachment->attachment->url; ?>" width="100%" controls="true"></video><br/>
    <?php endif; ?>

    <a class="insert" title="<?php _e('点击插入文件'); ?>" href="###"><?php $attachment->title(); ?></a>
        <div class="info">
            <?php echo number_format(ceil($attachment->attachment->size / 1024)); ?> Kb
            <a class="file" target="_blank" href="<?php $options->adminUrl('media.php?cid=' . $attachment->cid); ?>" title="<?php _e('编辑'); ?>"><i class="i-edit"></i></a>
            <a href="###" class="delete" title="<?php _e('删除'); ?>"><i class="i-delete"></i></a>
        </div>
    </li>
<?php endwhile; ?>

当然仅仅是这里还不够,还有admin/file-upload-js.php需要修改,原理差不多
大约103行,额外追加一点代码

function fileUploadComplete (id, url, data) {
    let media = ''
    if(data.type==="png"){
        media=' <img src='+data.url+' width="80%"></src><br/>'
    }else if(data.type==="mp4"){
       media=' <video src='+data.url+' width="80%" controls="true"></video><br/>'
    }
    var li = $('#' + id).removeClass('loading').data('cid', data.cid)
        .data('url', data.url)
        .data('image', data.isImage)
        .html('<input type="hidden" name="attachment[]" value="' + data.cid + '" />'
        + media
            + '<a class="insert" target="_blank" href="###" title="<?php _e('点击插入文件'); ?>">' + data.title + '</a><div class="info">' + data.bytes
            + ' <a class="file" target="_blank" href="<?php $options->adminUrl('media.php'); ?>?cid=' 
            + data.cid + '" title="<?php _e('编辑'); ?>"><i class="i-edit"></i></a>'
            + ' <a class="delete" href="###" title="<?php _e('删除'); ?>"><i class="i-delete"></i></a></div>')
        .effect('highlight', 1000);
        
    attachInsertEvent(li);
    attachDeleteEvent(li);
    updateAttacmentNumber();

    if (!completeFile) {
        completeFile = data;
    }
}


http://www.kler.cn/a/412441.html

相关文章:

  • 【Vue】Ego商城项目跟做
  • 2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现
  • 4.STM32之通信接口《精讲》之IIC通信---软件实现IIC《深入浅出》面试必备!
  • 【WEB开发.js】getElementById :通过元素id属性获取HTML元素
  • 【排版教程】Word、WPS 分节符(奇数页等) 自动变成 分节符(下一页) 解决办法
  • Windows下安装FreeSurfer教程
  • HTTPS的单向认证和双向认证是什么?有什么区别?
  • Flink 中 JDBC Connector 使用详解
  • WPF ItemsControl控件
  • 【深度学习|目标跟踪】StrongSort 详解(以及StrongSort++)
  • 浏览器缓存与协商缓存
  • 深入理解HTML基本结构:构建现代网页的基石
  • CSDN设置成黑色背景(谷歌 Edge)
  • 手机实时提取SIM卡打电话的信令声音-智能拨号器的双SIM卡切换方案
  • JS-对象-05-DOM
  • vue页面成绩案例(for渲染表格/删除/添加/统计总分/平均分/不及格显红色/输入内容去首尾空格trim/输入内容转数字number)
  • <<WTF-Solidity>>学习笔记(part 9-12)
  • 减速电机的减速比是什么意思?
  • 软件测试丨Pytest 第三方插件与 Hook 函数
  • ffmpeg 预设的值 加速
  • git源码安装
  • 集合卡尔曼滤波(EnKF)的三维滤波(模拟平面定位)例程,带逐行注释
  • Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”
  • mysql window安装(学习使用)
  • 数据库编程(sqlite3)
  • 深度神经网络模型压缩学习笔记二:离线量化算法和工具、实现原理和细节