public function updateActivityHash($activity_id) { $activityClassobj = new Iati_Aidstream_Element_Activity(); $activityData = $activityClassobj->fetchData($activity_id, false); unset($activityData['Activity']['@last_updated_datetime']); $new_hash = sha1(serialize($activityData)); $data['activity_id'] = $activity_id; $data['hash'] = $new_hash; $has_hash = $this->getByActivityId($activity_id); if ($has_hash) { if ($has_hash['hash'] === $new_hash) { return false; } else { $this->updateHashByActivityId($data); return true; } } else { $this->insert($data); return true; } }
public function duplicateActivityAction() { $identity = Zend_Auth::getInstance()->getIdentity(); $activityId = $this->_getParam('activity_id'); if (!$activityId) { $this->_helper->FlashMessenger->addMessage(array('error' => "No id provided.")); $this->_redirect('wep/view-activities'); } $activityClassObj = new Iati_Aidstream_Element_Activity(); $activityModel = new Model_Activity(); $wepModel = new Model_Wep(); $activities = $wepModel->listAll('iati_activities', 'account_id', $identity->account_id); $activities_id = $activities[0]['id']; $activityData = $activityClassObj->fetchData($activityId, false); $form = new Form_Wep_IatiIdentifier('add', $identity->account_id); $form->add('add', $identity->account_id); $form->populate(array('reporting_org' => $activityData['Activity']['ReportingOrg']['@ref'])); if ($data = $this->getRequest()->getPost()) { if (!$form->isValid($data)) { $form->populate($data); } else { $iatiIdentifier = array(); $iatiIdentifier['iati_identifier'] = $data['iati_identifier_text']; $iatiIdentifier['activity_identifier'] = $data['activity_identifier']; $newActivityId = $activityModel->duplicateActivity($activities_id, $activityId, $activityData['Activity'], $iatiIdentifier); } if ($newActivityId) { $this->_helper->FlashMessenger->addMessage(array('message' => "Activity duplication successful. View duplicated \n <a href='{$this->view->baseUrl()}/activity/view-activity-info/?activity_id={$newActivityId}'>activity</a>.")); $this->_redirect('/wep/view-activities'); } else { $this->_helper->FlashMessenger->addMessage(array('error' => 'Activity duplication failed.')); $this->_redirect('/wep/view-activities'); } } $this->view->form = $form; $this->view->activity_info = $activityData['Activity']; }