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('*/*/');
}