Ejemplo n.º 1
0
 /**
  *
  * 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;
 }
Ejemplo n.º 2
0
 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'];
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
 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;
 }