增強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();?>">
補丁下載鏈接:https://www.kuaipan.cn/file/id_5552585259880364.html
PS:補丁裏隻包含幾個php文件,數據庫字段的話要自己添加,容許我偷懶下吧
最後更新:2017-04-02 06:52:21