/application/libraries/profile_class.php

https://github.com/brownjohnf/Peace-Corps-App · PHP · 166 lines · 129 code · 23 blank · 14 comment · 14 complexity · 88186cd0e51bd422115b8180d1c8b1da MD5 · raw file

  1. <?php
  2. # Copyright (c) 2011, John F. Brown This file is
  3. # licensed under the Affero General Public License version 3 or later. See
  4. # the COPYRIGHT file.
  5. if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  6. class Profile_class
  7. {
  8. public function __construct() {
  9. $this->ci =& get_instance();
  10. $this->ci->load->model('people_model');
  11. }
  12. public function view($url)
  13. {
  14. if (is_numeric($url))
  15. {
  16. $query = array('where' => array('people.id' => $url), 'limit' => 1);
  17. }
  18. elseif ($url != '')
  19. {
  20. $names = $this->ci->uri->segment(3);
  21. $names_array = explode('-', trim($names));
  22. $query = array('where' => array('lname like' => urldecode($names_array[0]), 'fname like' => '%'.urldecode($names_array[1]).'%'), 'limit' => 1);
  23. }
  24. else
  25. {
  26. return false;
  27. die();
  28. }
  29. // get profile info
  30. if (! $result = $this->ci->people_model->selectUsers($query)) {
  31. return false;
  32. die();
  33. }
  34. //print_r($result);
  35. // assign values to return array
  36. $return['fname'] = $result['fname'];
  37. $return['full_name'] = $result['fname'].'&nbsp;'.$result['lname'];
  38. $return['url_name'] = url_title($result['lname'].'-'.$result['fname'], 'dash', true);
  39. $return['group'] = $result['group_label'];
  40. $return['project'] = $result['project'];
  41. $return['focus'] = $result['focus'];
  42. $return['email1'] = $result['email1'];
  43. $return['phone1'] = $result['phone1'];
  44. $return['email2'] = $result['email2'];
  45. $return['phone2'] = $result['phone2'];
  46. $return['stage_name'] = $result['stage_name'];
  47. $return['sector_name'] = $result['sector_name'];
  48. $return['local_name'] = $result['local_name'];
  49. $return['site_name'] = $result['site_name'];
  50. $return['region_name'] = $result['region_name'];
  51. $return['blog_name'] = $result['blog_name'];
  52. $return['blog_address'] = prep_url($result['blog_address']);
  53. $return['blog_description'] = $result['blog_description'];
  54. $return['id'] = $result['id'];
  55. $return['cos'] = date('d M Y', $result['cos']);
  56. if (isset($result['fb_id']) && is_numeric($result['fb_id'])) {
  57. $return['social'][] = anchor('http://facebook.com/profile.php?id='.$result['fb_id'], 'Facebook', array('target' => '_blank'));
  58. $return['profile_photo'] = 'http://graph.facebook.com/'.$result['fb_id'].'/picture?type=large';
  59. } elseif (isset($result['fb_id']) && is_string($result['fb_id'])) {
  60. $return['social'][] = anchor('http://facebook.com/'.$result['fb_id'], 'Facebook', array('target' => '_blank'));
  61. $return['profile_photo'] = 'http://graph.facebook.com/'.$result['fb_id'].'/picture?type=large';
  62. } else {
  63. $return['profile_photo'] = base_url().'img/blank.png';
  64. }
  65. return $return;
  66. }
  67. public function edit($data)
  68. {
  69. $this->ci->load->model(array('volunteer_model', 'people_model'));
  70. $input['id'] = $data['id'];
  71. $input['fname'] = $data['fname'];
  72. $input['lname'] = $data['lname'];
  73. $input['gender'] = $data['gender'];
  74. $input['project'] = $data['project'];
  75. $input['email1'] = $data['email1'];
  76. $input['email2'] = $data['email2'];
  77. $input['phone1'] = $data['phone1'];
  78. $input['phone2'] = $data['phone2'];
  79. $input['address'] = $data['address'];
  80. $input['blog_address'] = $data['blog_address'];
  81. $input['blog_name'] = $data['blog_name'];
  82. $input['blog_description'] = $data['blog_description'];
  83. // clean out any empty values
  84. foreach ($input as $key => $value)
  85. {
  86. if ($value == '')
  87. {
  88. $input[$key] = null;
  89. }
  90. }
  91. // update the people entry, or die
  92. if (! $this->ci->people_model->update($input)) {
  93. die('Failed to update people table. Check your data and try again. [002]');
  94. }
  95. unset($input);
  96. $input['focus'] = $data['focus'];
  97. $input['local_name'] = $data['local_name'];
  98. $input['user_id'] = $data['id'];
  99. // clean out any empty values
  100. foreach ($input as $key => $value)
  101. {
  102. if ($value == '')
  103. {
  104. $input[$key] = null;
  105. }
  106. }
  107. // update the volunteers entry, or die
  108. if (! $success = $this->ci->volunteer_model->update($input, 'user_id')) {
  109. die('Failed to update volunteers table. Check your data and try again. [002]');
  110. }
  111. return $data['id'];
  112. }
  113. public function blank_form()
  114. {
  115. $data['id'] = null;
  116. $data['fname'] = null;
  117. $data['lname'] = null;
  118. $data['gender'] = null;
  119. $data['project'] = null;
  120. $data['email1'] = null;
  121. $data['email2'] = null;
  122. $data['phone1'] = null;
  123. $data['phone2'] = null;
  124. $data['address'] = null;
  125. $data['blog_address'] = null;
  126. $data['blog_name'] = null;
  127. $data['blog_description'] = null;
  128. $data['focus'] = null;
  129. $data['local_name'] = null;
  130. return $data;
  131. }
  132. public function full_form($id)
  133. {
  134. // fetch the user data
  135. $page = $this->ci->people_model->selectUsers(array('fields' => 'people.id, people.fname, people.lname, people.gender, people.project, people.email1, people.email2, people.phone1, people.phone2, people.address, people.blog_address, people.blog_name, people.blog_description, volunteers.focus, volunteers.local_name', 'where' => array('people.id' => $id), 'limit' => 1));
  136. // fetch empty dataset
  137. $blank_data = $this->blank_form();
  138. // merge the two, to create a populated set of data, with list options
  139. $data = array_merge($blank_data, $page);
  140. //print_r($data);
  141. return $data;
  142. }
  143. }