Current File : /home/pacjaorg/public_html/km/administrator/components/com_djclassifieds/models/profile.php
<?php
/**
 * @package DJ-Classifieds
 * @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
 * @license http://www.gnu.org/licenses GNU/GPL
 * @author url: http://dj-extensions.com
 * @author email: contact@dj-extensions.com
 */

defined('_JEXEC') or die;

class DJClassifiedsModelProfile extends DJClassifiedsAdminModel
{
	protected $form_name = 'profile';

	public function __construct($config = array())
	{
		$config['event_after_save'] = 'onDJClassifiedsModelAdminAfterSave';
		$config['event_after_delete'] = 'onDJClassifiedsModelAdminAfterDelete';
		parent::__construct($config);
	}

	public function getTable($type = 'Profiles', $prefix = 'DJClassifiedsTable', $config = array())
	{
		return JTable::getInstance($type, $prefix, $config);
	}

	public function getForm($data = array(), $loadData = true)
	{
		// Get the form.
		$form = $this->loadForm('com_djclassifieds.'.$this->form_name, $this->form_name, array('control' => 'jform', 'load_data' => $loadData));
		if (empty($form)) {
			return false;
		}

		return $form;
	}

	protected function loadFormData()
	{
		$app = JFactory::getApplication();
		$data = JFactory::getApplication()->getUserState('com_djclassifieds.edit.'.$this->form_name.'.data', array());

		if (empty($data)) {
			$data = $this->getItem();
			if(empty($data)){
				$data = new stdClass();
			}

			$user_id = !empty($data->user_id) ? $data->user_id : $app->input->get('user_id');
			
			if($user_id){
				$jprofile = JFactory::getUser($user_id);

				$data->avatar = $this->getAvatar();
				$data->user_id = $jprofile->id;
				$data->name = $jprofile->name;
				$data->username = $jprofile->username;
				$data->email = $jprofile->email;

				$askmessages = $this->getAskMessages($user_id);
				$askmessages_subform_arr = array();
				foreach($askmessages as $key => $askmessage){
					$askmessages_subform_arr['askmessages'.$key] = array(
						'askmessage_id' => $askmessage->id,
						'askmessage_user' => $askmessage->user_from ? ($askmessage->u_name ? $askmessage->u_name.' ('.$askmessage->user_from.')' : $askmessage->user_from) : JText::_('COM_DJCLASSIFIEDS_OPTION_GUEST'),
						'askmessage_date' => $askmessage->date,
						'askmessage_message' => $askmessage->message.($askmessage->custom_fields ? PHP_EOL.PHP_EOL.str_replace('<br />', PHP_EOL, $askmessage->custom_fields) : '')
					);
				}
				$data->askmessages = $askmessages_subform_arr;

				$data->disabled_emails = !empty($data->disabled_emails) ? explode(',', $data->disabled_emails) : array();
			}
		}

		return $data;
	}

	protected function prepareTable($table)
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();

		$id = $app->input->getArray()['jform']['user_id'];
		$table->user_id = $id;
		
		$query = $db->getQuery(true);
		$query->select('*')->from('#__djcf_profiles')->where('user_id='.$id);
		$db->setQuery($query);
		$old = $db->loadObject();

		/*
		if($old->group_id != $table->group_id){
			if($old->group_id){
				$query = $db->getQuery(true);
				$query->select('*')->from('#__djcf_fields_groups')->where('id='.$old->group_id);
				$db->setQuery($query);
				$prev_group = $db->loadObject();
				if($prev_group->groups_assignment){
					$ug_arr = explode(',', $prev_group->groups_assignment);
					foreach($ug_arr as $ug){
						JUserHelper::removeUserFromGroup($id, $ug);
					}
				}
			}
			if($table->group_id){
				$query = $db->getQuery(true);
				$query->select('*')->from('#__djcf_fields_groups')->where('id='.$table->group_id);
				$db->setQuery($query);
				$new_group = $db->loadObject();
				if($new_group->groups_assignment){
					$ug_arr = explode(',', $new_group->groups_assignment);
					foreach($ug_arr as $ug){
						JUserHelper::addUserToGroup($id, $ug);
					}
				}
			}
		}
		*/

		if($table->verified && (!$old || !$old->verified)){
			$this->changeUserGroupOnVerify($id);					
		}

		if(($table->region_id || $table->address) && (($table->latitude=='0.000000000000000' && $table->longitude=='0.000000000000000') || (!$table->latitude && !$table->longitude))){
			if($table->post_code){
				$loc_coord = DJClassifiedsGeocode::getLocationPostCode($table->post_code, $table->address, $table->region_id);
			}else{
				$loc_coord = DJClassifiedsGeocode::getLocation($table->address, $table->region_id);
			}

			if(!empty($loc_coord)){
				$table->latitude = $loc_coord['lat'];
				$table->longitude = $loc_coord['lng'];
			}
		}

		$table->group_id = $table->group_id ? $table->group_id : 0;
		$table->region_id = $table->region_id ? $table->region_id : 0;

		$table->disabled_emails = $table->disabled_emails ? implode(',', $table->disabled_emails) : '';
	}

	function changeUserGroupOnVerify($user_id)
	{
		$app = JFactory::getApplication();
		$par = JComponentHelper::getParams('com_djclassifieds');
		$user = Jfactory::getUser($user_id);

		$verify_ug_map = $par->get('verify_ug_map');
		if($verify_ug_map){
			foreach($verify_ug_map as $ug_map){
				$before_match = false;
				if(!$ug_map->ug_before){
					$before_match = true;
				}else{
					foreach($ug_map->ug_before as $ug_before){
						if(in_array($ug_before, $user->groups)){
							$before_match = true;
							JUserHelper::removeUserFromGroup($user_id, $ug_before);
							$app->enqueueMessage(JText::sprintf('COM_DJCLASSIFIEDS_USER_X_REMOVED_FROM_USER_GROUP_Y', $user_id, $ug_before), 'success');
						}
					}
				}

				if($before_match){
					foreach($ug_map->ug_after as $ug_after){
						if(!in_array($ug_after, $user->groups)){
							JUserHelper::addUserToGroup($user_id, $ug_after);
							$app->enqueueMessage(JText::sprintf('COM_DJCLASSIFIEDS_USER_X_ADDED_TO_USER_GROUP_Y', $user_id, $ug_after), 'success');
						}
					}
				}
			}
		}
	}

	function getAvatar()
	{
		$db = JFactory::getDBO();
		$app = JFactory::getApplication();
		$user_id = $app->input->get('user_id', '0');

		$query = "SELECT * FROM #__djcf_images WHERE item_id=".$user_id." AND type='profile'";
		$db->setQuery($query);
		$avatar = $db->loadObject();

		if($avatar){
			$thumb_path = $avatar->path.$avatar->name.'_ths.'.$avatar->ext;
			$avatar->image_path = file_exists(JPATH_ROOT.$thumb_path) ? $thumb_path : $avatar->path.$avatar->name.'.'.$avatar->ext;
		}

		return $avatar;
	}

	function getAskMessages($user_id)
	{
		$db = JFactory::getDBO();
		$query = "SELECT a.*, u.name as u_name "
				."FROM #__djcf_profiles_msg a "
				."LEFT JOIN #__users u ON a.user_from=u.id "
				."WHERE a.user_to=".$user_id." "
				."ORDER BY a.date DESC";
		$db->setQuery($query);
		$askmessages = $db->loadObjectList();

		return $askmessages;
	}
}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

Site will be available soon. Thank you for your patience!