增强AW_Blog插件之后台文章编辑新增一图片字段

简介:

上一次讲了给AW_Blog插件后台文章列表添加分类栏,今天继续来加强AW_Blog,给每个文章新增一个独立的图片字段。为什么要新加一个字段呢,文章内容里不是也可以添加图片吗?这是因为某些情况下,独立的图片字段是必需的,如果要把AW_Blog当做一个简单的CMS来用的话,如下图:

这里跟文章相关的图片,如果没有独立的图片字段,那就只能想办法从文章内容中抓取图片出来,不仅难度很高(专业CMS都有这个功能),而且无法保证图片比例的一致性,这时候有一个单独的图片字段的话就可以针对性的上传要显示的图片。

打开AW_Blog_Block_Manage_Blog_Edit_Form文件,给表单添加一个属性,表示该表单接受文件上传

  protected function _prepareForm()
  {
      $form = new Varien_Data_Form(array(
                                      'id' => 'edit_form',
                                      'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
                                      'method' => 'post',
                                      'enctype' => 'multipart/form-data'
                                   )
      );

      $form->setUseContainer(true);
      $this->setForm($form);
      return parent::_prepareForm();
  }

打开AW_Blog_Block_Manage_Blog_Edit_Tab_Form文件,新增需要添加的表单项

。。。。。。。。。。。
        		$fieldset->addField('blog_image', 'image', array(
        			'name' 	=> 'blog_image',
        			'label' => $this->__('图片'),
        			'title' => $this->__('图片'),
        			'note' 	=> $this->__('上传新闻列表或其他地方会用到的图片'),
        		));
。。。。。。。。。。。。。。

打开AW_Blog_Manage_BlogController文件,在saveAction里添加处理文件上传的代码

       if ($data = $this->getRequest()->getPost()) {
        //上传图片
         if(isset($_FILES['blog_image']['name']) and (file_exists($_FILES['blog_image']['tmp_name']))) {
              try {
              $uploader = new Varien_File_Uploader('blog_image');
              $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png')); // or pdf or anything
              
              $uploader->setAllowRenameFiles(true);
              

              $uploader->setFilesDispersion(false);
              
              $path = Mage::getBaseDir('media') . DS ;
              
              $uploader->save($path, $_FILES['blog_image']['name']);
              
              $data['blog_image'] = $uploader->getUploadedFileName();
              
              }catch(Exception $e) {
              
              }
        }else{
            if(isset($data['blog_image']['delete']) && $data['blog_image']['delete'] == 1)
            $data['blog_image'] = '';
            else
            unset($data['blog_image']);
        
        }

。。。。。。。。。。。。
当然还有一个最重要的,就是在数据库的aw_blog表中新增一个字段来保存图片的路径

后台显示效果如下:


前台在模板文件中调用该图片的方式,在适当的位置加入类似下面的代码:

<img src="<?php echo $this->getUrl('media').$post->getBlogImage();?>">

补丁下载链接:http://www.kuaipan.cn/file/id_5552585259880364.html

PS:补丁里只包含几个php文件,数据库字段的话要自己添加,容许我偷懒下吧得意

目录
相关文章
|
NoSQL fastjson Redis
自定义限流注解@RateLimiter
自定义限流注解@RateLimiter
300 2
|
运维 前端开发 数据处理
浅谈领域驱动在前端的应⽤
领域驱动是⼀种思想,不仅可以应⽤于软件开发,也没有绝对的开发规范,适合⾃⼰的业务和团队背景就好,我们不是为了应⽤⽽应⽤,⽽是为了解决问题。
|
12月前
|
机器学习/深度学习 自然语言处理 计算机视觉
KAN结合Transformer,真有团队搞出了解决扩展缺陷的KAT
【10月更文挑战第15天】Transformer模型在深度学习中广泛应用,但其扩展性存在局限。为此,研究人员提出了Kolmogorov-Arnold Transformer(KAT)模型,通过引入理性基函数、Group KAN和方差保持初始化等创新设计,显著提升了模型的性能和扩展性。实验结果显示,KAT在图像识别、目标检测和语义分割任务中均表现出色,但在计算成本和训练资源方面仍有改进空间。
327 1
|
存储 缓存 分布式计算
Spark cache()与unpersist()使用位置
Spark在执行过程中是懒加载模式,RDD转换仅仅是构建DAG描述而不执行,只有遇到action算子才会真正的运行
128 9
|
移动开发 安全 数据挖掘
(文章复现)梯级水光互补系统最大化可消纳电量期望短期优化调度模型matlab代码
参考文献: [1]罗彬,陈永灿,刘昭伟等.梯级水光互补系统最大化可消纳电量期望短期优化调度模型[J].电力系统自动化,2023,47(10):66-75.
|
SQL 数据挖掘 Serverless
SQL 窗口函数简直太厉害啦!复杂数据分析的超强利器,带你轻松攻克数据难题,快来一探究竟!
【8月更文挑战第31天】在数据驱动时代,高效处理和分析大量数据至关重要。SQL窗口函数可对一组行操作并返回结果集,无需分组即可保留原始行信息。本文将介绍窗口函数的分类、应用场景及最佳实践,助您掌握这一强大工具。例如,在销售数据分析中,可使用窗口函数计算累计销售额和移动平均销售额,更好地理解业务趋势。
382 0
|
XML Dubbo Java
【Dubbo3高级特性】「框架与服务」 Nacos作为注册中心-服务分组及服务分组聚合实现
【Dubbo3高级特性】「框架与服务」 Nacos作为注册中心-服务分组及服务分组聚合实现
445 0
|
Linux
linux centos6.8系统配置网络yum源
linux centos6.8系统配置网络yum源
881 0
全国计算机技术与软件专业技术资格(水平)考试-2023 年上半年 软件设计师 上午试卷(答案对照)
全国计算机技术与软件专业技术资格(水平)考试-2023 年上半年 软件设计师 上午试卷(答案对照)
309 0