Tuesday, 6 August 2013

Magento image upoad filename doesn't save in database

Magento image upoad filename doesn't save in database

hoping you can help.
I'm fairly new to php but trying to learn quickly.
I am trying to add an additional image upload field to a gallery
extension. The code for the extension controller is below. I've added an
extra column to the database called galpic_popup_image with the same
values as the existing galpic_image column.
I've managed to get the upload working, so images are saved on the server,
however it isn't saving the filename in the database and therefore I can't
call it on the frontend.
Any help will be greatly appreciated
class ParadoxLabs_Gallery_Adminhtml_GalleryController extends
Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
$this->loadLayout();
$this->_setActiveMenu('cms/gallery');
$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Gallery'),
Mage::helper('adminhtml')->__('Gallery'));
$this->renderLayout();
}
public function editAction()
{
$this->loadLayout();
$this->_setActiveMenu('cms/gallery');
$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Gallery'),
Mage::helper('adminhtml')->__('Gallery'));
$this->_addContent($this->getLayout()->createBlock('gallery/adminhtml_gallery_edit'));
$this->renderLayout();
}
public function newAction()
{
$this->editAction();
}
public function saveAction()
{
if ( $this->getRequest()->getPost() ) {
// Image uploading code modified from http://is.gd/gS8p3
if(isset($_FILES['image']['name']) &&
(file_exists($_FILES['image']['tmp_name'])))
{
try{
$uploader = new Varien_File_Uploader('image');
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
$uploader->setAllowRenameFiles(false);
$uploader->setFilesDispersion(false);
$path = Mage::getBaseDir('media') . DS . 'p_gallery' .
DS ;
$uploader->save($path, $_FILES['image']['name']);
$data['image'] =
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA)
. 'p_gallery/'. $_FILES['image']['name'];
}catch(Exception $e){}
}
else
{
if(isset($data['fileinputname']['delete']) &&
$data['fileinputname']['delete'] == 1){
$data['image_main'] = '';
}
else{
unset($data['image']);
}
}
if(isset($_FILES['popup_image']['name']) &&
(file_exists($_FILES['popup_image']['tmp_name'])))
{
try{
$uploader = new Varien_File_Uploader('popup_image');
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
$uploader->setAllowRenameFiles(false);
$uploader->setFilesDispersion(false);
$path = Mage::getBaseDir('media') . DS . 'p_gallery' .
DS ;
$uploader->save($path, $_FILES['popup_image']['name']);
$popupdata['popup_image'] =
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA)
. 'p_gallery/'. $_FILES['popup_image']['name'];
}catch(Exception $e){}
}
else
{
if(isset($popupdata['fileinputname']['delete']) &&
$popupdata['fileinputname']['delete'] == 1){
$popupdata['popup_image_main'] = '';
}
else{
unset($popupdata['popup_image']);
}
}
try {
if( intval($this->getRequest()->getParam('id')) == 0 ) {
// New
$model = Mage::getModel('gallery/gallery')
->setGalpicId (
$this->getRequest()->getParam('id') )
->setGalpicStore(
$this->getRequest()->getParam('store') )
->setGalpicDate ( date('Y-m-d', time()) )
->setGalpicName (
$this->getRequest()->getParam('name') )
->setGalpicImage( $data['image']
)
->setGalpicPopupImage( $popupdata['popup_image']
)
->save();
}
else { // Edit
$model = Mage::getModel('gallery/gallery')
->setGalpicId (
$this->getRequest()->getParam('id') )
->setGalpicStore(
$this->getRequest()->getParam('store') )
->setGalpicName (
$this->getRequest()->getParam('name') )
->setGalpicImage( $data['image']
)
->setGalpicPopupImage( $popupdata['popup_image']
)
->save();
}
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Galpic
was successfully saved'));
$this->_redirect('*/*/');
return;
} catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
$this->_redirect('*/*/edit', array('id' =>
$this->getRequest()->getParam('id')));
return;
}
}
$this->_redirect('*/*/');
}
public function deleteAction()
{
if( $this->getRequest()->getParam('id') > 0 ) {
try {
$model = Mage::getModel('gallery/gallery');
$model->setGalpicId($this->getRequest()->getParam('id'))
->delete();
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Galpic
was successfully deleted'));
$this->_redirect('*/*/');
} catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
$this->_redirect('*/*/edit', array('id' =>
$this->getRequest()->getParam('id')));
}
}
$this->_redirect('*/*/');
}
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('cms/gallery');
}
}
And here is the form used to capture the data:
class ParadoxLabs_Gallery_Block_Adminhtml_Gallery_Edit_Form extends
Mage_Adminhtml_Block_Widget_Form
{
protected function _prepareLayout()
{
parent::_prepareLayout();
if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) {
$this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
}
}
protected function _prepareForm()
{
$form = new Varien_Data_Form(array(
'enctype' => 'multipart/form-data',
'id' => 'edit_form',
'action' => $this->getUrl('*/*/save', array('id' =>
$this->getRequest()->getParam('id'))),
'method' => 'post',
));
$fieldset = $form->addFieldset('gallery_form', array(
'legend' => Mage::helper('gallery')->__('Galpic'),
'class' => 'fieldset-wide'
)
);
$fieldset->addField('galpic_name', 'text', array(
'name' => 'name',
'label' => Mage::helper('gallery')->__('Name'),
'class' => 'required-entry',
'required' => true,
));
$fieldset->addField('galpic_image', 'image', array(
'name' => 'image',
'label' => Mage::helper('gallery')->__('Image'),
'class' => 'required-entry',
'required' => true,
));
$fieldset->addField('galpic_popup_image', 'image', array(
'name' => 'popup_image',
'label' => Mage::helper('gallery')->__('Popup Image'),
'class' => 'required-entry',
'required' => true,
));
$fieldset->addField('galpic_store', 'select', array(
'name' => 'store',
'label' => Mage::helper('core')->__('Store View'),
'title' => Mage::helper('core')->__('Store View'),
'required' => true,
'values' =>
Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false,
true),
));
if (Mage::registry('gallery')) {
$form->setValues(Mage::registry('gallery')->getData());
}
$form->setUseContainer(true);
$this->setForm($form);
return parent::_prepareForm();
}
}

No comments:

Post a Comment