public function saveAction() {

if ($data = $this->getRequest()->getPost()) {

//var_dump($data);exit;

 

$model = Mage::getModel('blog/post');

if(isset($data['tags'])){

if($this->getRequest()->getParam('id')){

$model->load($this->getRequest()->getParam('id'));

$originalTags = explode(",", $model->getTags());

}else{

$originalTags = array();

}

$tags = preg_split("/[, ]+/s*/i", $data['tags'], -1, PREG_SPLIT_NO_EMPTY);

$commonTags = array_intersect($tags,$originalTags);

$removedTags = array_diff($originalTags, $commonTags);

$addedTags = array_diff($tags, $commonTags);

if(count($tags)){

$data['tags'] = trim(implode(',', $tags));

}else{

$data['tags'] = '';

}

//var_dump($tags);die();

 

}

$model->setData($data)

->setId($this->getRequest()->getParam('id'));

try {

if ($this->getRequest()->getParam('created_time') == NULL) {

$model->setCreatedTime(now())

->setUpdateTime(now());

} else {

$model->setUpdateTime(now());

}

if ($this->getRequest()->getParam('user') == NULL) {

$model->setUser(Mage::getSingleton('admin/session')->getUser()->getFirstname() . " " . Mage::getSingleton('admin/session')->getUser()->getLastname())

->setUpdateUser(Mage::getSingleton('admin/session')->getUser()->getFirstname() . " " . Mage::getSingleton('admin/session')->getUser()->getLastname());

} else {

$model->setUpdateUser(Mage::getSingleton('admin/session')->getUser()->getFirstname() . " " . Mage::getSingleton('admin/session')->getUser()->getLastname());

}

//var_dump($model->getData());exit;

$model->save();

/* recount affected tags */

if(isset($data['stores'])){

$stores = $data['stores'];

}else{

$stores = array(null);

}

$affectedTags = array_merge($addedTags, $removedTags);

foreach($affectedTags as $tag){

foreach($stores as $store){

if(trim($tag)){

Mage::getModel('blog/tag')->loadByName($tag, $store)->refreshCount();

}

}

}

Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('blog')->__('Post was successfully saved'));

Mage::getSingleton('adminhtml/session')->setFormData(false);

 

if ($this->getRequest()->getParam('back')) {

$this->_redirect('*/*/edit', array('id' => $model->getId()));

return;

}

$this->_redirect('*/*/');

return;

            } catch (Exception $e) {

                Mage::getSingleton('adminhtml/session')->addError($e->getMessage());

                Mage::getSingleton('adminhtml/session')->setFormData($data);

                $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));

                return;

            }

        }

        Mage::getSingleton('adminhtml/session')->addError('Unable to find post to save');

        $this->_redirect('*/*/');

}