/** * * Function to get the activity status and activity sectors information for dashboard. * @param Array $activities */ public function getActivityAttribs($activities) { $model = new Model_Wep(); $sectors = array(); $iatiStatuses = $model->getRowsByFields('ActivityStatus', 'lang_id', 1); $status = array(); foreach ($activities as $activity) { //Preapare sector data. $sectorData = $model->listAll('iati_sector', 'activity_id', $activity['id']); if ($sectorData) { foreach ($sectorData as $sectorValue) { if (!$sectorValue['@vocabulary'] || $sectorValue['@vocabulary'] == 3) { if (!$sectorValue['@code']) { continue; } $sectorName = $model->fetchValueById('Sector', $sectorValue['@code'], 'Name'); if (strlen($sectorName) > 35) { $sectorName = substr($sectorName, 0, 32) . "..."; } } else { $sectorName = $sectorValue['text']; if (strlen($sectorName) > 35) { $sectorName = preg_replace('/ \\w+$/', '', substr($sectorName, 0, 32)); $sectorName .= "…"; } } if ($sectorName) { $sectors[] = $sectorName; } } } //Prepare activity status data. $statusData = $model->listAll('iati_activity_status', 'activity_id', $activity['id']); if ($statusData) { foreach ($statusData as $statusValue) { $status[$statusValue['@code']] += 1; } } else { $status['unknown'] += 1; } } foreach ($iatiStatuses as $iatiStatus) { $iatiStatus['count'] = $status[$iatiStatus['Code']]; $activityStatus[] = $iatiStatus; } if ($status['unknown']) { $activityStatus[] = array('Name' => 'Status Unspecified', 'count' => $status['unknown']); } $output = array(); $output['status'] = $activityStatus; $output['sector'] = array_unique($sectors); return $output; }
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']; }
public static function getActivityInfo($activityId) { $model = new Model_Wep(); $activityInfo = $model->listAll('iati_activity', 'id', $activityId); if (empty($activityInfo)) { return false; } $activity = $activityInfo[0]; $activity['@xml_lang'] = $model->fetchValueById('Language', $activityInfo[0]['@xml_lang'], 'Code'); $activity['@default_currency'] = $model->fetchValueById('Currency', $activityInfo[0]['@default_currency'], 'Code'); $iati_identifier_row = $model->getRowById('iati_identifier', 'activity_id', $activityId); $activity['iati_identifier'] = $iati_identifier_row['text']; $activity['activity_identifier'] = $iati_identifier_row['activity_identifier']; $title_row = $model->getRowById('iati_title', 'activity_id', $activityId); $activity['iati_title'] = $title_row['text']; return $activity; }
public function downloadXmlAction() { $name = $this->_getParam('name'); $identity = Zend_Auth::getInstance()->getIdentity(); $obj = new Iati_Core_Xml(); if ($name == 'Activity') { $wepModel = new Model_Wep(); $activities = $wepModel->listAll('iati_activities', 'account_id', $identity->account_id); $activities_id = $activities[0]['id']; $activityArray = $wepModel->listAll('iati_activity', 'activities_id', $activities_id); $index = 0; foreach ($activityArray as $key => $activity) { $activity_array[$index] = $activity['id']; $index++; } $xmlOutput = $obj->generateXml($name, $activity_array); $filename = 'iati_activity'; } elseif ($name == 'Organisation') { $organisationModelObj = new Model_Organisation(); $organisationId = $organisationModelObj->checkOrganisationPresent($identity->account_id); $organisationIds = explode(',', $organisationId); $xmlOutput = $obj->generateXml($name, $organisationIds); $filename = 'iati_organisation_data'; } else { exit('Invalid name for download.'); } header('Content-Type: text/xml'); header('Content-Disposition: attachment;filename=' . $filename . '.xml'); echo $xmlOutput; exit; }