| Server IP : 180.180.241.3 / Your IP : 216.73.216.35 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/app/Controller/ |
Upload File : |
<?php
ini_set('memory_limit', '-1');
App::uses('AppController', 'Controller');
/**
* People Controller
*
* @property Person $Person
* @property PaginatorComponent $Paginator
*/
class PeopleController extends AppController {
// all actions require log in
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->deny();
}
// @todo - use JOINs, enjoy.
private function __getCommonConditions(&$conditions, &$joins) {
$keyword = '';
if ( isset($this->params->query['filter_keyword'])
&& !empty($this->params->query['filter_keyword']) ) {
$keyword = $this->params->query['filter_keyword'];
$keywordValue = sprintf('%%%s%%', $keyword);
$searchInFields = array(
'name', 'eng_name', 'short_name', 'eng_short_name',
'address1', 'address2', 'postal_code', 'telephone1',
'telephone2', 'telephone3', 'fax', 'email', 'url',
'work_level', 'objective', 'publish');
$keywordCondition = array();
foreach ( $searchInFields as $field ) {
$keywordCondition['Person.' . $field . ' LIKE'] = $keywordValue;
}
$conditions['OR'] = $keywordCondition;
}
$this->set('keyword', $keyword);
$searchByPosition = 0;
$positionId = 0;
$positionJoin = array(
'alias' => 'IJ_PeoplePosition',
'table' => 'people_positions',
'type' => 'LEFT',
'conditions' => array(
'`Person`.`id` = `IJ_PeoplePosition`.`person_id`',
)
);
if ( isset($this->params->query['search_by_position'])
&& !empty($this->params->query['search_by_position'])
&& ((int)$this->params->query['search_by_position'] == 1) ) {
$searchByPosition = 1;
if (isset($this->params->query['position_id'])
&& !empty($this->params->query['position_id']) ) {
$positionId = $this->params->query['position_id'];
// $conditions['OR']['Person.position_id'] = $positionId;
$positionJoin = array(
'alias' => 'IJ_PeoplePosition',
'table' => 'people_positions',
'type' => 'INNER',
'conditions' => array(
'`Person`.`id` = `IJ_PeoplePosition`.`person_id`',
'`IJ_PeoplePosition`.`position_id` = ' . $positionId
)
);
} // if position_id
}
$joins[] = $positionJoin;
$this->set('search_by_position', $searchByPosition);
$this->set('position_id', $positionId);
$topicId = 0;
$subtopicId = 0;
$subtopics = array();
if ( isset($this->params->query['topic_id'])
&& !empty($this->params->query['topic_id']) ) {
$topicId = (int)$this->params->query['topic_id'];
$subtopics = $this->Person->Subtopic->find('list',
array(
'conditions' => array('topic_id' => $topicId)
));
if ( isset($this->params->query['subtopic_id'])
&& !empty($this->params->query['subtopic_id']) ) {
// selected a subtopic
$subtopicId = (int)$this->params->query['subtopic_id'];
$joins[] = array(
'alias' => 'IJ_PeopleTopic',
'table' => 'people_subtopics',
'type' => 'INNER',
'conditions' => array(
'`Person`.`id` = `IJ_PeopleTopic`.`person_id`',
'`IJ_PeopleTopic`.`subtopic_id` = ' . $subtopicId
)
);
} else {
// all subtopics in selected topic_id
$joins[] = array(
'alias' => 'IJ_PeopleSubtopic',
'table' => 'people_subtopics',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleSubtopic`.`person_id` = `Person`.`id`'
)
);
$joins[] = array(
'alias' => 'IJ_SubtopicTopic',
'table' => 'subtopics',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleSubtopic`.`subtopic_id` = `IJ_SubtopicTopic`.`id`'
)
);
$joins[] = array(
'alias' => 'TopicsSubtopics',
'table' => 'topics',
'type' => 'INNER',
'conditions' => array(
'`IJ_SubtopicTopic`.`topic_id` = `TopicsSubtopics`.`id`',
'`TopicsSubtopics`.`id` = ' . $topicId
)
);
}
}
$this->set('topic_id', $topicId);
$this->set('subtopic_id', $subtopicId);
$this->set('subtopics', $subtopics);
$targetId = 0;
if ( isset($this->params->query['target_id'])
&& !empty($this->params->query['target_id']) ) {
$targetId = (int)$this->params->query['target_id'];
$joins[] = array(
'alias' => 'IJ_PeopleTarget',
'table' => 'people_targets',
'type' => 'INNER',
'conditions' => array(
'`Person`.`id` = `IJ_PeopleTarget`.`person_id`',
'`IJ_PeopleTarget`.`target_id` = ' . $targetId
),
);
}
$this->set('target_id', $targetId);
$organizationId = 0;
if ( isset($this->params->query['organization_id'])
&& !empty($this->params->query['organization_id']) ) {
$organizationId = (int)$this->params->query['organization_id'];
$joins[] = array(
'alias' => 'IJ_organization',
'table' => 'organizations_targets',
'type' => 'INNER',
'conditions' => array(
'`Person`.`organization_id` = `IJ_organization`.`organization_id`',
'`IJ_organization`.`organization_id` = ' . $organizationId
),
);
}
// print_r($organizationId);exit();
$this->set('organization_id', $organizationId);
// search from address, defaults to person's actual address
$addressType = 'address';
if ( isset($this->params->query['address_type'])
&& !empty($this->params->query['address_type']) ) {
$addressType = $this->params->query['address_type'];
}
$this->set('address_type', $addressType);
// region, province, district
$regionId = 0;
$provinceId = 0;
$districtId = 0;
$provinces = array();
$districts = array();
if ( isset($this->params->query['region_id'])
&& !empty($this->params->query['region_id']) ) {
$regionId = (int)$this->params->query['region_id'];
// set list values for province_id field in the view
$this->loadModel('Province');
$provinces = $this->Province->find('list',
array(
'conditions' => array('region_id' => $regionId)
));
// select region and province
if ( isset($this->params->query['province_id'])
&& !empty($this->params->query['province_id']) ) {
$provinceId = (int)$this->params->query['province_id'];
$districts = $this->Person->District->find('list',
array(
'conditions' => array('District.province_id' => $provinceId)
));
// specific district
if ( isset($this->params->query['district_id'])
&& !empty($this->params->query['district_id']) ) {
$districtId = (int)$this->params->query['district_id'];
if ( $addressType == 'address' ) {
$conditions['AND']['Person.district_id'] = $districtId;
} else {
// all people that have $districtId in districts_people table
$joins[] = array(
'alias' => 'IJ_PeopleDistrict',
'table' => 'districts_people',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleDistrict`.`person_id` = `Person`.`id`',
'`IJ_PeopleDistrict`.`district_id` = ' . $districtId
)
);
}
} else {
// all districts in selected province
if ( $addressType == 'address' ) {
$joins[] = array(
'alias' => 'IJ_PeopleDistrict',
'table' => 'districts',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleDistrict`.`id` = `Person`.`district_id`',
'`IJ_PeopleDistrict`.`province_id` = ' . $provinceId
)
);
} else {
$joins[] = array(
'alias' => 'IJ_PeopleDistrict',
'table' => 'districts_people',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleDistrict`.`person_id` = `Person`.`id`'
)
);
$joins[] = array(
'alias' => 'IJ_District',
'table' => 'districts',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleDistrict`.`district_id` = `IJ_District`.`id`',
'`IJ_District`.`province_id` = ' . $provinceId
)
);
}
}
} else {
// select only region, search in all districts in all provinces in selected region
// all districts in selected province
if ( $addressType == 'address' ) {
$joins[] = array(
'alias' => 'IJ_PeopleDistrict',
'table' => 'districts',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleDistrict`.`id` = `Person`.`district_id`'
)
);
$joins[] = array(
'alias' => 'IJ_DistrictProvince',
'table' => 'provinces',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleDistrict`.`province_id` = `IJ_DistrictProvince`.`id`',
'`IJ_DistrictProvince`.`region_id` = ' . $regionId
)
);
} else {
// search in พื้นที่การทำงาน
$joins[] = array(
'alias' => 'IJ_PeopleDistrict',
'table' => 'districts_people',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleDistrict`.`person_id` = `Person`.`id`'
)
);
$joins[] = array(
'alias' => 'IJ_District',
'table' => 'districts',
'type' => 'INNER',
'conditions' => array(
'`IJ_PeopleDistrict`.`district_id` = `IJ_District`.`id`'
)
);
$joins[] = array(
'alias' => 'IJ_Province',
'table' => 'provinces',
'type' => 'INNER',
'conditions' => array(
'`IJ_District`.`province_id` = `IJ_Province`.`id`',
'`IJ_Province`.`region_id` = ' . $regionId
)
);
}
}
}
$this->set('region_id', $regionId);
$this->set('province_id', $provinceId);
$this->set('district_id', $districtId);
$this->set('provinces', $provinces);
$this->set('districts', $districts);
$joined = '';
$joinedTo = '';
if ( isset($this->params->query['joined'])
&& !empty($this->params->query['joined'])) {
$joined = $this->params->query['joined'];
$dateConditions = array(
'Person.joined >= ?' => array($joined)
);
if ( isset($this->params->query['joined_to'])
&& !empty($this->params->query['joined_to']) ) {
$joinedTo = $this->params->query['joined_to'];
$dateConditions = array(
'Person.joined BETWEEN ? AND ?' => array(
$joined, $joinedTo
)
);
}
$conditions['OR'] = $dateConditions;
}
$this->set('joined', $joined);
$this->set('joined_to', $joinedTo);
//add condition title by 2017
$title='';
if ( isset($this->params->query['title'])
&& !empty($this->params->query['title']) ) {
$title = $this->params->query['title'];
$keywordTitleValue = sprintf('%%%s%%', $title);
$keywordTitleCondition = array();
$keywordTitleCondition['Person.title LIKE'] = $keywordTitleValue;
$conditions['OR'] = $keywordTitleCondition;
}
$this->set('title', $title);
//add condition firstname by 2017
$firstname='';
if ( isset($this->params->query['firstname'])
&& !empty($this->params->query['firstname']) ) {
$firstname = $this->params->query['firstname'];
$keywordFirstnameValue = sprintf('%%%s%%', $firstname);
$keywordFirstnameCondition = array();
$keywordFirstnameCondition['Person.firstname LIKE'] = $keywordFirstnameValue;
$conditions['OR'] = $keywordFirstnameCondition;
}
$this->set('firstname', $firstname);
//add condition lastname by 2017
$lastname='';
if ( isset($this->params->query['lastname'])
&& !empty($this->params->query['lastname']) ) {
$lastname = $this->params->query['lastname'];
$keywordLastnameValue = sprintf('%%%s%%', $lastname);
$keywordLastnameCondition = array();
$keywordLastnameCondition['Person.lastname LIKE'] = $keywordLastnameValue;
$conditions['OR'] = $keywordLastnameCondition;
}
$this->set('lastname', $lastname);
//add condition eng title by 2017
$eng_title='';
if ( isset($this->params->query['eng_title'])
&& !empty($this->params->query['eng_title']) ) {
$eng_title = $this->params->query['eng_title'];
$keywordEngTitleValue = sprintf('%%%s%%', $eng_title);
$keywordEngTitleCondition = array();
$keywordEngTitleCondition['Person.eng_title LIKE'] = $keywordEngTitleValue;
$conditions['OR'] = $keywordEngTitleCondition;
}
$this->set('eng_title', $eng_title);
//add condition eng firstname by 2017
$eng_firstname='';
if ( isset($this->params->query['eng_firstname'])
&& !empty($this->params->query['eng_firstname']) ) {
$eng_firstname = $this->params->query['eng_firstname'];
$keywordEngFirstnameValue = sprintf('%%%s%%', $eng_firstname);
$keywordEngFirstnameCondition = array();
$keywordEngFirstnameCondition['Person.firstname LIKE'] = $keywordEngFirstnameValue;
$conditions['OR'] = $keywordEngFirstnameCondition;
}
$this->set('eng_firstname', $eng_firstname);
//add condition eng lastname by 2017
$eng_lastname='';
if ( isset($this->params->query['eng_lastname'])
&& !empty($this->params->query['eng_lastname']) ) {
$eng_lastname = $this->params->query['eng_lastname'];
$keywordEngLastnameValue = sprintf('%%%s%%', $eng_lastname);
$keywordEngLastnameCondition = array();
$keywordEngLastnameCondition['Person.lastname LIKE'] = $keywordEngLastnameValue;
$conditions['OR'] = $keywordEngLastnameCondition;
}
$this->set('eng_lastname', $eng_lastname);
}
/**
* admin_index method
*
* @return void
*/
public function admin_index() {
$conditions = array();
$joins = array();
$this->__getCommonConditions($conditions, $joins);
//Set status for query
if ( !isset($this->params->query['status']) ) {
$this->params->query['status'] = 1;
}
$conditions['Person.is_activated'] = array($this->params->query['status']);
$this->Paginator->settings['conditions'] = $conditions;
$this->Paginator->settings['joins'] = $joins;
$this->Paginator->settings['group'] = 'Person.id';
$this->Person->recursive = 1;
$this->set('people', $this->Paginator->paginate());
$this->_setListValues(array('Organization', 'Type', 'Topic', 'Position', 'Target', 'Region'));
$this->set('topicTitle', __('เครือข่ายบุคคล'));
}
/**
* Add person detail
*
* @author Ting <3musketeersteam@gmail.com>
* @since 17 October 2013
* @modify 2014-03-06 - Mike - Added Nation Wide option
*/
public function admin_add() {
if ($this->request->is('post')) {
$this->Person->create();
// if nation wide option is selected, we have to add all the districts of the database to the array
if( $this->request->data['Person']['is_nationwide'] ) {
unset( $this->request->data['DistrictM2M']['DistrictM2M'] );
$this->loadModel( 'District' );
$districts = $this->District->find( 'all', array(
'recursive' => -1,
'fields' => array( 'id' )
) );
// convert to array with index starting at 0, 1, 2, ...
$this->request->data['DistrictM2M']['DistrictM2M'] = Set::extract( '/District/id', $districts );
} else if( !empty( $this->request->data['PersonProvinceWide']['PersonProvinceWide'] ) ) {
// At least one province has been selected as `province wide`
$this->loadModel( 'District' );
$districts = $this->District->find( 'all', array(
'recursive' => -1,
'fields' => array( 'id' ),
'conditions' => array(
'District.province_id' => $this->request->data['PersonProvinceWide']['PersonProvinceWide'],
)
) );
$districts = Set::extract( '/District/id', $districts );
// convert to array with index starting at 0, 1, 2, ...
$this->request->data['DistrictM2M']['DistrictM2M'] = array_merge(
(array) $this->request->data['DistrictM2M']['DistrictM2M'],
$districts );
$provinceswide = $this->request->data['PersonProvinceWide']['PersonProvinceWide'];
// we don't want cakephp to insert some wrong data in the table, we do it ourself
unset( $this->request->data['PersonProvinceWide']['PersonProvinceWide'] );
}
// take care of the people_positions entries
if( !empty( $this->request->data['PersonPosition']['PersonPosition'] ) ) {
$peoplePositions = $this->request->data['PersonPosition'];
// we don't want cakephp to insert some wrong data in the table, we do it ourself
unset( $this->request->data['PersonPosition'] );
}
//add createdby new by 2017
$this->request->data['Person']['createdby']=$this->Session->read('Auth.User.username');
$this->request->data['Person']['name']=$this->request->data['Person']['title'].$this->request->data['Person']['firstname']." ".$this->request->data['Person']['lastname'];
if(!empty($this->request->data['Person']['eng_title'])||!empty($this->request->data['Person']['eng_firstname'])||!empty($this->request->data['Person']['eng_lastname'])){
$this->request->data['Person']['eng_name']=$this->request->data['Person']['eng_title'].$this->request->data['Person']['eng_firstname']." ".$this->request->data['Person']['eng_lastname'];
}
if( $this->request->data['Person']['is_nationwide'] ) {
}
if ( !$this->Person->save($this->request->data) ) {
$this->Session->setFlash(__('ไม่สามารถบันทึกข้อมูลเครือข่ายบุคคลได้ กรุณาลองใหม่อีกครั้ง'), 'flash-fail');
$this->redirect(array('action' => 'index'));
}
//Find last id of `Person` that we just insert.
$orgId = $this->Person->getLastInsertID();
if( isset( $provinceswide ) && !empty( $provinceswide ) ) {
// insert all the provinces in the table `organizations_provinces_wide`
foreach( ( array )$provinceswide as $province ) {
$this->Person->PersonProvinceWide->create();
$this->Person->PersonProvinceWide->save( array(
'person_id' => $orgId,
'province_id' => $province,
) );
}
}
if( isset( $peoplePositions ) && !empty( $peoplePositions ) ) {
$nPeoplePositions = count( $peoplePositions['PersonPosition'] );
for( $i = 0; $i < $nPeoplePositions; $i++ ) {
$this->Person->PeoplePosition->create();
$this->Person->PeoplePosition->save( array(
'person_id' => $orgId,
'position_id' => $peoplePositions['PersonPosition'][$i],
'start' =>$peoplePositions['PersonPositionStart'][$i],
'end' =>$peoplePositions['PersonPositionEnd'][$i],
) );
}
}
try {
$this->__handleUploadPhoto( $orgId );
} catch ( Exception $e ) {
$this->Session->setFlash( $e->getMessage(), 'flash-fail' );
return;
}
$this->Session->setFlash(__('บันทึกข้อมูลเครือข่ายบุคคลสำเร็จ'), 'flash-success');
$this->redirect(array('action' => 'index'));
}
//Find another relation for add organization.
$models = array( 'Offer', 'Action', 'Role', 'Organization' );
foreach( $models as $model ) {
$this->set( strtolower( Inflector::pluralize($model) ) , $this->Person->{$model}->find('list'));
}
$this->loadModel( 'Position' );
$this->set( 'positions' , $this->Position->find('list', array('conditions' => array( 'Position.is_activated' => 1 ))));
// $this->Person->Role->find('first');
$this->loadModel('Topic');
$this->set('topics', $this->Topic->find('list'));
$this->set('targetList', $this->Person->Target->find('list'));
$this->loadModel('Member');
$this->set('members', $this->Member->find('list'));
$this->set('districts', array());
$this->set('provinces', $this->Person->District->Province->find('list'));
$this->set('topicTitle', __('เพิ่มข้อมูลเครือข่ายบุคคล'));
$this->loadModel('Organization');
// $nameOrganization=str_replace('"', '',$this->Organization->find('list',array('fields'=>'Organization.name')));
// $idOrganization=$this->Organization->find('list',array('fields'=>'Organization.id'));
// $strNameor =array($idOrganization, $nameOrganization);
$Organizations = $this->Organization->find( 'all', array(
'conditions' => array('Organization.is_activated' => 1),
'recursive' => -1,
'fields' => array( 'id' ,'name') ) );
$i=0;
foreach($Organizations as $Organization){
$response[$i]['id']="".$Organization['Organization']['id']."";
$response[$i]['value']="".str_replace('"', '', $Organization['Organization']['name'])."";
$i++;
}
$strNameor=json_encode($response);
// $this->set('nameor', $nameor);
/* foreach($Organizations as $Organization) {
$strNameor +=$Organization['Organization']['name']. '|' .$Organization['Organization']['id'] . "\n";
}*/
// $strNameor='"'.implode('","',str_replace('"', '', $nameor)).'"';
$this->set('nameor',$strNameor);
}
/**
* admin_edit method
*
* @throws NotFoundException if not found any data.
* @param string $id id of person
* @author Ting <3musketeersteam@gmail.com>
* @since 18 October 2013
* @modify 2014-03-06 - Mike - Added Nation Wide option
* @modify 2014-03-21 - Mike - Relation between People and Position changed
*
*/
public function admin_edit( $id = null ) {
if ( !$this->Person->exists($id) ) {
throw new NotFoundException(__('ไม่พบข้อมูลเครือข่ายบุคคล'));
}
if ( $this->request->is('post') || $this->request->is('put') ) {
$this->Person->id = $id;
// delete previous entries in table `people_provinces_wide`
$this->Person->PersonProvinceWide->deleteAll( array(
'PersonProvinceWide.person_id' => $id,
) );
// if nation wide option is selected, we have to add all the districts of the database to the array
if( $this->request->data['Person']['is_nationwide'] ) {
unset( $this->request->data['DistrictM2M']['DistrictM2M'] );
$this->loadModel( 'District' );
$districts = $this->District->find( 'all', array(
'recursive' => -1,
'fields' => array( 'id' )
) );
// convert to array with index starting at 0, 1, 2, ...
$this->request->data['DistrictM2M']['DistrictM2M'] = Set::extract( '/District/id', $districts );
} else if( !empty( $this->request->data['PersonProvinceWide']['PersonProvinceWide'] ) ) {
// At least one province has been selected as `province wide`
// debug( $this->request->data['PersonProvinceWide']['PersonProvinceWide'] ); return;
$this->loadModel( 'District' );
$districts = $this->District->find( 'all', array(
'recursive' => -1,
'fields' => array( 'id' ),
'conditions' => array(
'District.province_id' => $this->request->data['PersonProvinceWide']['PersonProvinceWide'],
)
) );
$districts = Set::extract( '/District/id', $districts );
// convert to array with index starting at 0, 1, 2, ...
$this->request->data['DistrictM2M']['DistrictM2M'] = array_merge(
(array) $this->request->data['DistrictM2M']['DistrictM2M'],
$districts );
// insert all the provinces in the table `organizations_provinces_wide`
foreach( ( array )$this->request->data['PersonProvinceWide']['PersonProvinceWide'] as $province ) {
$this->Person->PersonProvinceWide->create();
$this->Person->PersonProvinceWide->save( array(
'person_id' => $id,
'province_id' => $province,
) );
}
// we don't want cakephp to insert some wrong data in the table, we do it ourself
unset( $this->request->data['PersonProvinceWide']['PersonProvinceWide'] );
}
// take care of the people_positions entries
$this->Person->PeoplePosition->deleteAll( array( 'person_id' => $id ) );
if( !empty( $this->request->data['PersonPosition']['PersonPosition'] ) ) {
$nPeoplePositions = count ( $this->request->data['PersonPosition']['PersonPosition'] );
for( $i = 0; $i < $nPeoplePositions; $i++ ) {
if( isset( $this->request->data['PersonPosition']['PersonPosition'][$i] ) ) {
$this->Person->PeoplePosition->create();
$this->Person->PeoplePosition->save( array(
'person_id' => $id,
'position_id' => $this->request->data['PersonPosition']['PersonPosition'][$i],
'start' =>$this->request->data['PersonPosition']['PersonPositionStart'][$i],
'end' =>$this->request->data['PersonPosition']['PersonPositionEnd'][$i],
) );
}
}
// we don't want cakephp to insert some wrong data in the table, we do it ourself
unset( $this->request->data['PersonPosition'] );
}
//add modifiedby new by 2017
$this->request->data['Person']['modifiedby']=$this->Session->read('Auth.User.username');
$this->request->data['Person']['name']=$this->request->data['Person']['title'].$this->request->data['Person']['firstname']." ".$this->request->data['Person']['lastname'];
if(!empty($this->request->data['Person']['eng_title'])||!empty($this->request->data['Person']['eng_firstname'])||!empty($this->request->data['Person']['eng_lastname'])){
$this->request->data['Person']['eng_name']=$this->request->data['Person']['eng_title'].$this->request->data['Person']['eng_firstname']." ".$this->request->data['Person']['eng_lastname'];
}
if ( !$this->Person->save($this->request->data) ) {
$this->Session->setFlash(__('ไม่สามารถแก้ไขข้อมูลเครือข่ายบุคคลได้ กรุณาลองใหม่อีกครั้ง'), 'flash-fail');
$this->redirect(array('action' => 'index'));
}
//If user need to add `specail memeber`.
// if ( isset($this->request->data['Person']['ismou']) && $this->request->data['Person']['ismou'] == 1 ) {
// //Save `specail memeber` with `start` and `end`
// $this->Person->PeopleMembership->create();
// $this->Person->PeopleMembership->save(array(
// 'person_id' => $id,
// 'member_id' => $this->request->data['Person']['member_id'],
// 'start' => $this->request->data['Person']['mou_start'],
// 'end' => $this->request->data['Person']['mou_end']
// ));
// }
try {
$this->__handleUploadPhoto( $id );
} catch ( Exception $e ) {
// @todo - update this message to thai
$this->Session->setFlash( __( 'The person has been saved but there was an error with the photo: ' ) . $e->getMessage(), 'flash-fail' );
$this->redirect(array('action' => 'index'));
}
$this->Session->setFlash(__('บันทึกข้อมูลเครือข่ายบุคคลสำเร็จ'), 'flash-success');
$this->redirect(array('action' => 'index'));
}
$options = array('conditions' => array('Person.' . $this->Person->primaryKey => $id));
$this->request->data = $this->Person->find('first', $options);
//Find another relation for add organization.
// $models = array( 'Offer', 'Action', 'Role', 'Organization', 'Position' );
$models = array( 'Offer', 'Action', 'Role', 'Organization' );
foreach( $models as $model ) {
$this->set( strtolower( Inflector::pluralize($model) ) , $this->Person->{$model}->find('list', array('conditions' => array( $model . '.is_activated' => 1 ))));
}
$this->loadModel( 'Position' );
$positions = $this->Position->find('list', array('conditions' => array( 'Position.is_activated' => 1 )));
$this->set( 'positions', $positions );
// $this->Person->Role->find('first');
$this->loadModel('Topic');
$this->set('topics', $this->Topic->find('list'));
$this->set('targetList', $this->Person->Target->find('list'));
$this->set('districts', array());
$provinces = $this->Person->District->Province->find('list');
$this->set( 'provinces', $provinces );
//Find province by district
//@TODO : Should we creat new function for this i think we will use many times.
$this->Person->District->recursive = 0;
$provinceExists = $this->Person->District->findById($this->request->data['Person']['district_id']);
$this->set('province_exists', $provinceExists);
//Get all district depending on province's id.
if ( isset($provinceExists['Province']['name'])) {
$districts = $this->Person->District->find('list', array('conditions' => array('District.province_id' => $provinceExists['Province']['id'])));
} else {
$districts = array();
}
$provinceswide = $this->Person->PersonProvinceWide->find( 'list', array(
'fields' => array( 'PersonProvinceWide.province_id', 'PersonProvinceWide.person_id' ),
'conditions' => array(
'PersonProvinceWide.person_id' => $id,
),
'order' => array( 'PersonProvinceWide.province_id' ),
) );
foreach( $provinceswide as $kProvWide => $vProvWide ) {
$provinceswide[$kProvWide] = $provinces[$kProvWide];
}
//Try to make data for mutil checkbox
$models = array(
'districtm2ms' => 'DistrictM2M',
'subtopics' => 'Subtopic',
'targets' => 'Target',
);
foreach( $models as $kModel => $vModel ) {
$$kModel = array();
foreach( $this->request->data[$vModel] as $vData ) {
if( ( $kModel != 'districtm2ms' ) || ( !isset( $provinceswide[$vData['province_id']] ) ) ) {
${$kModel}[$vData['id']] = $vData['name'];
}
}
}
$this->loadModel('Member');
$this->set('members', $this->Member->find('list'));
$this->Person->PeopleMembership->recursive = 1;
$peopleMember = $this->Person->PeopleMembership->findByPersonId($id);
$this->set('people_member', $peopleMember);
$this->set(compact('districts', 'districtm2ms', 'subtopics', 'provinceswide', 'targets', 'peoplePositions'));
$this->set('topicTitle', __('แก้ไขข้อมูล: ') . $this->request->data['Person']['name']);
// build the url for the photos
$photosUrl = 'people/' . $id;
$this->set( 'photos_url', $photosUrl );
$this->loadModel('Organization');
$Organizations = $this->Organization->find( 'all', array(
'conditions' => array('Organization.is_activated' => 1),
'recursive' => -1,
'fields' => array( 'id' ,'name') ) );
$i=0;
foreach($Organizations as $Organization){
$response[$i]['id']="".$Organization['Organization']['id']."";
$response[$i]['value']="".str_replace('"', '', $Organization['Organization']['name'])."";
$i++;
}
$strNameor=json_encode($response);
$this->set('nameor',$strNameor);
}
/**
* admin_delete method
*
* @throws NotFoundException
* @param string $id
* @return void
*/
public function admin_delete($id = null) {
$this->Person->id = $id;
if (!$this->Person->exists()) {
throw new NotFoundException(__('Invalid person'));
}
$this->request->onlyAllow('get', 'delete', 'post');
if ($this->Person->delete()) {
$this->Session->setFlash(__('The person has been deleted.'));
} else {
$this->Session->setFlash(__('The person could not be deleted. Please, try again.'));
}
return $this->redirect(array('action' => 'index'));
}
/**
* acvtivate itams from inactivated.
*
* @param int $id person's id
* @author Ting <3Musketeersteam@gmail.com>
* @since 27 January 2014
*/
public function admin_active($id = null) {
$this->Person->id = $id;
if (!$this->Person->exists()) {
throw new NotFoundException(__('ไม่พบเครือข่ายบุคคล'));
}
$this->request->onlyAllow('get', 'delete', 'post');
if ($this->Person->activate()) {
$this->Session->setFlash(__('เปิดใช้งานเครือข่ายบุคคลเรียบร้อยแล้ว'), 'flash-success');
} else {
$this->Session->setFlash(__('ไม่สามารถเปิดการใช้งานเครือข่ายบุคคล'), 'flash-fail');
}
return $this->redirect(array('action' => 'index'));
}
/**
* Remove Member from People table.
* > Remove Member data from Member table.
* > Take old Member data to Member Histoy table.
*
* @param int $id person id
* @return JSON
* @author Ting <3musketeersteam@gmail.com>
* @since 18 October 2013
*/
public function admin_memberDelete( $id = null, $memberId = null ) {
$this->autoRender = false;
if ( $id == 0 && $memberId == 0 ) {
return json_encode(false);
}
//Delete old MOU data
$peopleMemberId = $this->Person->PeopleMembership->findByMemberIdAndPersonId($memberId, $id, array('fileds' => 'id'));
$this->Person->PeopleMembership->id = $peopleMemberId['PeopleMembership']['id'];
if ( !$this->Person->PeopleMembership->delete() ) {
return json_encode(false);
}
return json_encode(true);
}
private function __handleUploadPhoto( $id ) {
$destinationFolder = WWW_ROOT . 'img' . DS . 'people' . DS . $id . DS;
// delete photo?
if( isset( $this->request->data['Person']['delete_photo'] ) ) {
foreach( $this->request->data['Person']['delete_photo'] as $delPhoto ) {
$photoName = $this->Person->Photo->find( 'first', array(
'conditions' => array(
'id' => $delPhoto,
'model' => 'person',
),
'fields' => array( 'id', 'name' ),
) );
// delete file
@unlink( $destinationFolder . $photoName['Photo']['name'] );
// delete record from db
$this->Person->Photo->delete( $photoName['Photo']['id'] );
}
}
// is there a new photo to upload?
if( $this->request->data['Person']['photo']['error'] == UPLOAD_ERR_OK ) {
$filePhoto = $this->request->data['Person']['photo'];
$type = @getimagesize( $filePhoto['tmp_name'] );
$newName = $filePhoto['name'];
if( ( $type == false ) || !in_array( $type[2], Configure::read( 'image_types_allowed' ) ) ) {
throw new Exception( __( 'the type of the image is not allowed.' ) );
}
// does the destination folder exist?
if( !file_exists( $destinationFolder ) && !is_dir( $destinationFolder ) ) {
mkdir( $destinationFolder, 0755, true );
}
if( !is_uploaded_file( $filePhoto['tmp_name'] ) || !move_uploaded_file( $filePhoto['tmp_name'], $destinationFolder . $newName ) ) {
throw new Exception( __( 'the system cannot access your uploaded file.' ) );
}
// Delete existing photo from db and File system
$existingPhoto = $this->Person->Photo->find( 'first', array(
'conditions' => array(
'model' => 'person',
'fk_id' => $id,
),
'recursive' => -1
) );
if( !empty( $existingPhoto ) ) {
// delete old photo if different name (otherwise it should have been overwritten by `move_uploaded` function)
if( $newName != $existingPhoto['Photo']['name'] ) {
@unlink( $destinationFolder . $existingPhoto['Photo']['name'] );
}
$this->Person->Photo->delete( $existingPhoto['Photo']['id'] );
}
$this->Person->Photo->create();
$this->Person->Photo->save( array(
'fk_id' => $id,
'model' => 'person',
'name' => $newName,
) );
} // if photo uploaded
} // __handleUploadPhoto
// don't let the name fool you. this one is for frontend filters
private function __getCommonFilterConditions(&$conditions, &$joins) {
// @todo - hopefully i can make this more generic & use with both org and person
$modelName = $this->modelClass;
if ( isset($this->params->query['keyword'])
&& !empty($this->params->query['keyword']) ) {
$keyword = $this->params->query['keyword'];
$keywordValue = sprintf('%%%s%%', $keyword);
$searchInFields = array(
'name',
'eng_name',
'short_name',
'eng_short_name',
'address1',
'address2',
'postal_code',
'telephone1',
'telephone2',
'telephone3',
'fax',
'email',
'url',
'work_level',
'objective',
'publish'
);
$keywordCondition = array();
foreach ( $searchInFields as $field ) {
$keywordCondition[ $modelName . '.' . $field . ' LIKE'] = $keywordValue;
}
$conditions['OR'] = $keywordCondition;
$this->request->data[$modelName]['keyword'] = $keyword;
}
// รหัสเครือข่าย
if ( isset($this->params->query['id'])
&& !empty($this->params->query['id']) ) {
$id = (int)$this->params->query['id'];
$conditions['AND'][$modelName . '.id'] = $id;
$this->request->data[$modelName]['id'] = $id;
}
// ประเภทเครือข่าย
if ( isset($this->params->query['type_id'])
&& !empty($this->params->query['type_id']) ) {
$typeId = (int)$this->params->query['type_id'];
$joins[] = array(
'alias' => 'IJ_PersonType',
'table' => 'people_types',
'type' => 'INNER',
'conditions' => array(
'`Person`.`id` = `IJ_PersonType`.`person_id`',
'`IJ_PersonType`.`type_id` = ' . $typeId
),
);
$this->request->data[$modelName]['type_id'] = $typeId;
}
// ประเภทสิทธิหลัก
$subtopics = array();
if ( isset($this->params->query['topic_id'])
&& !empty($this->params->query['topic_id']) ) {
$topicId = (int)$this->params->query['topic_id'];
$subtopics = $this->{$modelName}->Subtopic->find('list',
array(
'conditions' => array('topic_id' => $topicId)
));
$this->request->data[$modelName]['topic_id'] = $topicId;
if ( isset($this->params->query['subtopic_id'])
&& !empty($this->params->query['subtopic_id']) ) {
// selected a subtopic
$subtopicId = (int)$this->params->query['subtopic_id'];
$joins[] = array(
'alias' => 'IJ_PersonTopic',
'table' => 'people_subtopics',
'type' => 'INNER',
'conditions' => array(
'`Person`.`id` = `IJ_PersonTopic`.`person_id`',
'`IJ_PersonTopic`.`subtopic_id` = ' . $subtopicId
)
);
$this->request->data[$modelName]['subtopic_id'] = $subtopicId;
} else {
// all subtopics in selected topic_id
$joins[] = array(
'alias' => 'IJ_PersonSubtopic',
'table' => 'people_subtopics',
'type' => 'INNER',
'conditions' => array(
'`IJ_PersonSubtopic`.`person_id` = `Person`.`id`'
)
);
$joins[] = array(
'alias' => 'IJ_SubtopicTopic',
'table' => 'subtopics',
'type' => 'INNER',
'conditions' => array(
'`IJ_PersonSubtopic`.`subtopic_id` = `IJ_SubtopicTopic`.`id`'
)
);
$joins[] = array(
'alias' => 'IJ_TopicSubtopic',
'table' => 'topics',
'type' => 'INNER',
'conditions' => array(
'`IJ_SubtopicTopic`.`topic_id` = `IJ_TopicSubtopic`.`id`',
'`IJ_TopicSubtopic`.`id` = ' . $topicId
)
);
}
}
$this->set('subtopics', $subtopics);
// เป้าหมาย
if ( isset($this->params->query['target_id'])
&& !empty($this->params->query['target_id']) ) {
$targetId = (int)$this->params->query['target_id'];
$joins[] = array(
'alias' => 'IJ_PersonTarget',
'table' => 'people_targets',
'type' => 'INNER',
'conditions' => array(
'`Person`.`id` = `IJ_PersonTarget`.`person_id`',
'`IJ_PersonTarget`.`target_id` = ' . $targetId
),
);
$this->request->data[$modelName]['target_id'] = $targetId;
}
// จังหวัดที่ตั้ง
$locationDistricts = array();
if ( isset($this->params->query['province_id'])
&& !empty($this->params->query['province_id']) ) {
$provinceId = (int)$this->params->query['province_id'];
$locationDistricts = $this->{$modelName}->District->find('list',
array(
'conditions' => array('District.province_id' => $provinceId)
));
$this->request->data[$modelName]['province_id'] = $provinceId;
// selected a district
if ( isset($this->params->query['district_id'])
&& !empty($this->params->query['district_id']) ) {
$districtId = (int)$this->params->query['district_id'];
$conditions['AND'][$modelName . '.district_id'] = $districtId;
$this->request->data[$modelName]['district_id'] = $districtId;
} else {
// all districts in selected province
$joins[] = array(
'alias' => 'IJ_PersonDistrict',
'table' => 'districts',
'type' => 'INNER',
'conditions' => array(
'`IJ_PersonDistrict`.`id` = `Person`.`district_id`'
)
);
$joins[] = array(
'alias' => 'IJ_DistrictProvince',
'table' => 'provinces',
'type' => 'INNER',
'conditions' => array(
'`IJ_PersonDistrict`.`province_id` = `IJ_DistrictProvince`.`id`',
'`IJ_DistrictProvince`.`id` = ' . $provinceId
)
);
}
}
$this->set('location_districts', $locationDistricts);
// พื้นที่การทำงาน
$workDistricts = array();
if ( isset($this->params->query['work_province_id'])
&& !empty($this->params->query['work_province_id']) ) {
$workProvinceId = (int)$this->params->query['work_province_id'];
$workDistricts = $this->{$modelName}->District->find('list',
array(
'conditions' => array('District.province_id' => $workProvinceId)
));
$this->request->data[$modelName]['work_province_id'] = $workProvinceId;
// selected a district
if ( isset($this->params->query['work_district_id'])
&& !empty($this->params->query['work_district_id']) ) {
$workDistrictId = (int)$this->params->query['work_district_id'];
$this->request->data[$modelName]['work_district_id'] = $workDistrictId;
$joins[] = array(
'alias' => 'IJ_DistrictPerson',
'table' => 'districts_people',
'type' => 'INNER',
'conditions' => array(
'`Person`.`id` = `IJ_DistrictPerson`.`person_id`',
'`IJ_DistrictPerson`.`district_id` = ' . $workDistrictId
)
);
} else {
// all districts in selected work_province
$joins[] = array(
'alias' => 'IJ_DistrictPerson',
'table' => 'districts_people',
'type' => 'INNER',
'conditions' => array(
'`Person`.`id` = `IJ_DistrictPerson`.`person_id`'
)
);
$joins[] = array(
'alias' => 'IJ_DistrictWorkProvince',
'table' => 'districts',
'type' => 'INNER',
'conditions' => array(
'`IJ_DistrictWorkProvince`.`id` = `IJ_DistrictPerson`.`district_id`'
)
);
$joins[] = array(
'alias' => 'IJ_ProvinceWorkDistrict',
'table' => 'provinces',
'type' => 'INNER',
'conditions' => array(
'`IJ_ProvinceWorkDistrict`.`id` = `IJ_DistrictWorkProvince`.`province_id`',
'`IJ_ProvinceWorkDistrict`.`id` = ' . $workProvinceId
)
);
}
}
$this->set('work_districts', $workDistricts);
}
// เครือข่ายบุคคล page - frontend
public function index() {
// @todo - can i juse $this->admin_index() ?
$conditions = array();
$joins = array();
$this->__getCommonConditions($conditions, $joins);
$conditions['Person.is_activated'] = array(0, 1);
$this->Paginator->settings['conditions'] = $conditions;
$this->Paginator->settings['joins'] = $joins;
$this->Paginator->settings['group'] = 'Person.id';
$this->Paginator->settings['contain'] = array('Activity');
// this is supposed to be 0 like org controller
// i already add Activity in contain but it doesn't show up
// maybe it's late night already
$this->Person->recursive = 1;
$this->set('people', $this->Paginator->paginate());
$this->_setListValues(array('Organization', 'Type', 'Topic', 'Position', 'Target', 'Region'));
$this->set('topicTitle', __('เครือข่ายบุคคล'));
}
// เครือข่ายบุคคลรับเรื่องร้องเรียน page - frontend
public function index_member() {
$conditions = array();
$conditions['AND']['Person.member_id !='] = 0;
$joins = array();
$this->__getCommonFilterConditions($conditions, $joins);
// this has the same filter conditions with index action
// plus member dates fields
// start date
if ( isset($this->params->query['start_date'])
&& !empty($this->params->query['start_date']) ) {
$startDate = $this->params->query['start_date'];
$joins[] = array(
'alias' => 'IJ_PersonMember',
'table' => 'members',
'type' => 'INNER',
'conditions' => array(
'`Person`.`member_id` = `IJ_PersonMember`.`id`',
'`IJ_PersonMember`.`started` = "' . $startDate . '"'
)
);
$this->request->data['Person']['start_date'] = $startDate;
}
// end date
if ( isset($this->params->query['end_date'])
&& !empty($this->params->query['end_date']) ) {
$endDate = $this->params->query['end_date'];
$joins[] = array(
'alias' => 'IJ_PersonMemberEnd',
'table' => 'members',
'type' => 'INNER',
'conditions' => array(
'`Person`.`member_id` = `IJ_PersonMemberEnd`.`id`',
'`IJ_PersonMemberEnd`.`ended` = "' . $endDate . '"'
)
);
$this->request->data['Person']['end_date'] = $endDate;
}
$this->Paginator->settings['conditions'] = $conditions;
$this->Paginator->settings['joins'] = $joins;
$this->set('people', $this->Paginator->paginate('Person'));
$this->_setListValues(array('Type', 'Province', 'Topic', 'Target'));
$this->set('topicTitle', __('เครือข่ายบุคคลรับเรื่องร้องเรียน'));
}
/**
* Get all information of people
*
* @param integer $id person's id
* @author Ting <3musketeersteam@gmail.com>
* @since 6 October 2013
*/
public function view( $id = null ) {
if ( !$this->Person->exists($id) ) {
throw new NotFoundException(__('ไม่พบข้อมูลเครือข่ายบุคคล'));
}
// build the url for the photos
$photosUrl = 'people/' . $id;
$this->set( 'photos_url', $photosUrl );
$this->loadModel('Province');
$provinces = $this->Province->find('list');
$this->set('provinces', $provinces);
$people = $this->Person->findById($id);
// for the case that province-wide work area is selected from a province(s)
// we display provinces and also districts in work_area
$workAreas = array();
if (!empty($people['PersonProvinceWide'])) {
foreach ($people['PersonProvinceWide'] as $w) {
// put the province_id as a key for later convinient comparison.
// we don't really need array keys in the view
$workAreas[$w['province_id']] = __('จังหวัด') . $provinces[$w['province_id']];
}
$workProvinces = array_keys($workAreas);
foreach ($people['DistrictM2M'] as $d) {
if (!in_array($d['province_id'], $workProvinces)) {
$workAreas[] = $d['name'];
}
}
}
// put them in $organization so it is available in pdf view also.
$people['work_areas'] = $workAreas;
$this->set('people', $people);
$this->set('topicTitle', __('แสดงข้อมูลเครือข่ายบุคคล'));
$this->loadModel('Position');
$positions = $this->Position->find('list');
$this->set('positions', $positions);
if ( isset($this->params->ext) && $this->params->ext == 'pdf') {
$this->_renderPdf(
array_merge($people, array('Province' => $provinces), array( 'Position' => $positions ) ),
'/People/pdf/view'
);
}
}
public function admin_export() {
Configure::write('debug',0); // just in case
$this->autoRender = false; // thanks, but no.
$modelName = $this->modelClass;
$conditions = array();
$joins = array();
$this->__getCommonConditions($conditions, $joins);
// Find fields needed without recursing through associated models
$data = $this->{$modelName}->find('all',
array(
'conditions' => $conditions,
// 'joins' => $joins,
'order' => $modelName . '.id ASC',
'recursive' => -1
));
// Define column headers for CSV file, in same array format as the data itself
$headers = array(
$modelName => array(
'id' => __('รหัส'),
// 'type' => __('ประเภทเครือข่ายบุคคล'),
'organization_' => __('สังกัดเครือข่ายองค์กร'),
'name' => __('ชื่อเครือข่าย'),
// 'position' => __('สถานะที่เกี่ยวข้องกับ กสม.'),
'eng_name' => __('ชื่อเครือข่ายบุคคลภาษาอังกฤษ'),
'short_name' => __('ชื่อย่อเครือข่ายบุคคล'),
'eng_short_name' => __('ชื่อย่อเครือข่ายภาษาอังกฤษ'),
'fax' => __('โทรสาร'),
'email' => __('อีเมล์องค์กร'),
'url' => __('เว็บไซต์'),
'telephone1' => __('หมายเลขโทรศัพท์ 1'),
'telephone2' => __('หมายเลขโทรศัพท์ 2'),
'founded' => __('วันที่เป็นสมาชิก'),
'joined' => __('วันที่เริ่มเป็นสมาชิก'),
'address' => __('ที่อยู่'),
'province' => __('จังหวัด'),
'district' => __('อำเภอ'),
'postal_code' => __('รหัสไปรษณีย์'),
'work_level' => __('หมายเหตุ'),
'objective' => __('ผลงานที่ผ่านมา'),
'publish' => __('ประวัติโดยย่อ'),
'target' => __('กลุ่มเป้าหมาย'),
'subtopic' => __('ประเภทสิทธิ'),
'position' => __('สถานะที่เกี่ยวข้องกับ กสม.'),
// 'position_start' => __('วันที่ได้รับตำแหน่ง'),
// 'position_end' => __('วันสิ้นสุดตำแหน่ง'),
'work_districts' => __('พื้นที่การทำงาน'),
'created' => __('วันที่เพิ่มข้อมูล'),
'modified' => __('แก้ไขล่าสุด')
)
);
$this->loadModel( 'Position' );
$positions = $this->Position->find( 'list' );
foreach ( $data as &$d ) {
// many to many - join the names together
// $offers = array();
// if ( isset($d['Offer']) ) {
// foreach( $d['Offer'] as $offer ) {
// $offers[] = $offer['name'];
// }
// }
// $actions = array();
// if ( isset($d['Action']) ) {
// foreach( $d['Action'] as $action ) {
// $actions[] = $action['name'];
// }
// }
$targets = array();
if ( isset($d['Target']) ) {
foreach( $d['Target'] as $target ) {
$targets[] = $target['name'];
}
}
$subtopics = array();
if ( isset($d['Subtopic']) ) {
foreach( $d['Subtopic'] as $subtopic ) {
$subtopics[] = $subtopic['name'];
}
}
$workDistricts = array();
if ($d['Person']['is_nationwide']) {
$workDistricts = __('ทั่วประเทศ');
} else if ( isset($d['DistrictM2M']) ) {
foreach( $d['DistrictM2M'] as $work ) {
$workDistricts[] = $work['name'];
}
$workDistricts = implode(',', $workDistricts);
}
$province = $this->Person->District->Province->find('first',
array(
'conditions' => array(
'Province.id' => $d['District']['province_id']
),
'recursive' => -1,
'fields' => array('name')
));
$peoplePositions = array();
if(isset($d['PeoplePosition'])){
foreach( $d['PeoplePosition'] as $personPosition ) {
$peoplePosition= $positions[$personPosition['position_id']] . ' (' . $personPosition['start'];
if( $personPosition['end'] != NULL ) {
$peoplePosition .= ' - ' . $personPosition['end'];
}
$peoplePosition .= ')';
$peoplePositions[] = $peoplePosition;
}
}
$d = array(
$modelName => array(
'id' => $d['Person']['id'],
// 'type' => $d['Type'][0]['name'],
'organization' => $d['Organization']['name'],
'name' => $d['Person']['name'],
// 'position' => $d['Position']['name'],
'eng_name' => $d['Person']['eng_name'],
'short_name' => $d['Person']['short_name'],
'eng_short_name' => $d['Person']['eng_short_name'],
'fax' => $d['Person']['fax'],
'email' => $d['Person']['email'],
'url' => $d['Person']['url'],
'telephone1' => $d['Person']['telephone1'],
'telephone2' => $d['Person']['telephone2'],
'founded' => $d['Person']['founded'],
'joined' => $d['Person']['joined'],
'address' => $d['Person']['address1'],
'province' => $province['Province']['name'],
'district' => $d['District']['name'],
'postal_code' => $d['Person']['postal_code'],
'work_level' => $d['Person']['work_level'],
'objective' => $d['Person']['objective'],
'publish' => $d['Person']['publish'],
'target' => implode(',', $targets),
'subtopic' => implode(',', $subtopics),
'position' => implode( ',', $peoplePositions ),
// 'position' => $d['Position']['name'],
// 'position_start' => $d['Person']['position_start'],
// 'position_end' => $d['Person']['position_end'],
'work_districts' => $workDistricts,
'created' => $d['Person']['created'],
'modified' => $d['Person']['modified']
)
);
}
$this->set('model', $modelName);
if ( $this->request->params['ext'] == 'csv' ) {
// Add headers to start of data array
array_unshift($data, $headers);
// Make the data available to the view (and the resulting CSV file)
$this->set(compact('data'));
$this->render('/Elements/csv/admin_export', false);
} else {
$this->set('topicTitle', __('เครือข่ายบุคคล'));
$this->set(compact('data'));
$this->_renderPdf($data, 'admin_export');
}
}
}