You've already forked joomla_test
							
							
		
			
	
	
		
			197 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			197 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | /** | ||
|  |  * @version		$Id: user.php 1812 2013-01-14 18:45:06Z lefteris.kavadas $ | ||
|  |  * @package		K2 | ||
|  |  * @author		JoomlaWorks http://www.joomlaworks.net | ||
|  |  * @copyright	Copyright (c) 2006 - 2013 JoomlaWorks Ltd. All rights reserved. | ||
|  |  * @license		GNU/GPL license: http://www.gnu.org/copyleft/gpl.html | ||
|  |  */ | ||
|  | 
 | ||
|  | // no direct access
 | ||
|  | defined('_JEXEC') or die; | ||
|  | 
 | ||
|  | jimport('joomla.application.component.model'); | ||
|  | 
 | ||
|  | JTable::addIncludePath(JPATH_COMPONENT.DS.'tables'); | ||
|  | 
 | ||
|  | class K2ModelUser extends K2Model | ||
|  | { | ||
|  | 
 | ||
|  |     function getData() | ||
|  |     { | ||
|  |         $cid = JRequest::getInt('cid'); | ||
|  |         $db = JFactory::getDBO(); | ||
|  |         $query = "SELECT * FROM #__k2_users WHERE userID = ".$cid; | ||
|  |         $db->setQuery($query); | ||
|  |         $row = $db->loadObject(); | ||
|  |         if (!$row) | ||
|  |         { | ||
|  |             $row = JTable::getInstance('K2User', 'Table'); | ||
|  |         } | ||
|  |         return $row; | ||
|  |     } | ||
|  | 
 | ||
|  |     function save() | ||
|  |     { | ||
|  | 
 | ||
|  |         $mainframe = JFactory::getApplication(); | ||
|  |         jimport('joomla.filesystem.file'); | ||
|  |         require_once (JPATH_COMPONENT.DS.'lib'.DS.'class.upload.php'); | ||
|  |         $row = JTable::getInstance('K2User', 'Table'); | ||
|  |         $params = JComponentHelper::getParams('com_k2'); | ||
|  | 
 | ||
|  |         if (!$row->bind(JRequest::get('post'))) | ||
|  |         { | ||
|  |             $mainframe->redirect('index.php?option=com_k2&view=users', $row->getError(), 'error'); | ||
|  |         } | ||
|  | 
 | ||
|  |         $row->description = JRequest::getVar('description', '', 'post', 'string', 2); | ||
|  |         if ($params->get('xssFiltering')) | ||
|  |         { | ||
|  |             $filter = new JFilterInput( array(), array(), 1, 1, 0); | ||
|  |             $row->description = $filter->clean($row->description); | ||
|  |         } | ||
|  |         $jUser = JFactory::getUser($row->userID); | ||
|  |         $row->userName = $jUser->name; | ||
|  | 
 | ||
|  |         if (!$row->store()) | ||
|  |         { | ||
|  |             $mainframe->redirect('index.php?option=com_k2&view=users', $row->getError(), 'error'); | ||
|  |         } | ||
|  | 
 | ||
|  |         //Image
 | ||
|  |         if ((int)$params->get('imageMemoryLimit')) | ||
|  |         { | ||
|  |             ini_set('memory_limit', (int)$params->get('imageMemoryLimit').'M'); | ||
|  |         } | ||
|  | 
 | ||
|  |         $file = JRequest::get('files'); | ||
|  | 
 | ||
|  |         $savepath = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'users'.DS; | ||
|  | 
 | ||
|  |         if ($file['image']['error'] == 0 && !JRequest::getBool('del_image')) | ||
|  |         { | ||
|  |             $handle = new Upload($file['image']); | ||
|  |             if ($handle->uploaded) | ||
|  |             { | ||
|  |                 $handle->file_auto_rename = false; | ||
|  |                 $handle->file_overwrite = true; | ||
|  |                 $handle->file_new_name_body = $row->id; | ||
|  |                 $handle->image_resize = true; | ||
|  |                 $handle->image_ratio_y = true; | ||
|  |                 $handle->image_x = $params->get('userImageWidth', '100'); | ||
|  |                 $handle->Process($savepath); | ||
|  |                 $handle->Clean(); | ||
|  |             } | ||
|  |             else | ||
|  |             { | ||
|  |                 $mainframe->redirect('index.php?option=com_k2&view=users', $handle->error, 'error'); | ||
|  |             } | ||
|  |             $row->image = $handle->file_dst_name; | ||
|  |         } | ||
|  | 
 | ||
|  |         if (JRequest::getBool('del_image')) | ||
|  |         { | ||
|  | 
 | ||
|  |             $current = JTable::getInstance('K2User', 'Table'); | ||
|  |             $current->load($row->id); | ||
|  |             if (JFile::exists(JPATH_ROOT.DS.'media'.DS.'k2'.DS.'users'.DS.$current->image)) | ||
|  |             { | ||
|  |                 JFile::delete(JPATH_ROOT.DS.'media'.DS.'k2'.DS.'users'.DS.$current->image); | ||
|  |             } | ||
|  |             $row->image = ''; | ||
|  |         } | ||
|  | 
 | ||
|  |         if (!$row->check()) | ||
|  |         { | ||
|  |             $mainframe->redirect('index.php?option=com_k2&view=user&cid='.$row->id, $row->getError(), 'error'); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (!$row->store()) | ||
|  |         { | ||
|  |             $mainframe->redirect('index.php?option=com_k2&view=users', $row->getError(), 'error'); | ||
|  |         } | ||
|  | 
 | ||
|  |         $cache = JFactory::getCache('com_k2'); | ||
|  |         $cache->clean(); | ||
|  | 
 | ||
|  |         switch(JRequest::getCmd('task')) | ||
|  |         { | ||
|  |             case 'apply' : | ||
|  |                 $msg = JText::_('K2_CHANGES_TO_USER_SAVED'); | ||
|  |                 $link = 'index.php?option=com_k2&view=user&cid='.$row->userID; | ||
|  |                 break; | ||
|  |             case 'save' : | ||
|  |             default : | ||
|  |                 $msg = JText::_('K2_USER_SAVED'); | ||
|  |                 $link = 'index.php?option=com_k2&view=users'; | ||
|  |                 break; | ||
|  |         } | ||
|  |         $mainframe->redirect($link, $msg); | ||
|  |     } | ||
|  | 
 | ||
|  |     function getUserGroups() | ||
|  |     { | ||
|  | 
 | ||
|  |         $db = JFactory::getDBO(); | ||
|  |         $query = "SELECT * FROM #__k2_user_groups"; | ||
|  |         $db->setQuery($query); | ||
|  |         $rows = $db->loadObjectList(); | ||
|  |         return $rows; | ||
|  |     } | ||
|  | 
 | ||
|  |     function reportSpammer() | ||
|  |     { | ||
|  |         $mainframe = JFactory::getApplication(); | ||
|  |         $params = JComponentHelper::getParams('com_k2'); | ||
|  |         $id = (int)$this->getState('id'); | ||
|  |         if (!$id) | ||
|  |         { | ||
|  |             return false; | ||
|  |         } | ||
|  |         $user = JFactory::getUser(); | ||
|  |         if ($user->id == $id) | ||
|  |         { | ||
|  |             $mainframe->enqueueMessage(JText::_('K2_YOU_CANNOT_REPORT_YOURSELF'), 'error'); | ||
|  |             return false; | ||
|  |         } | ||
|  |         $db = JFactory::getDBO(); | ||
|  | 
 | ||
|  |         // Unpublish user comments
 | ||
|  |         $db->setQuery("UPDATE #__k2_comments SET published = 0 WHERE userID = ".$id); | ||
|  |         $db->query(); | ||
|  |         $mainframe->enqueueMessage(JText::_('K2_USER_COMMENTS_UNPUBLISHED')); | ||
|  | 
 | ||
|  |         // Unpublish user items
 | ||
|  |         $db->setQuery("UPDATE #__k2_items SET published = 0 WHERE created_by = ".$id); | ||
|  |         $db->query(); | ||
|  |         $mainframe->enqueueMessage(JText::_('K2_USER_ITEMS_UNPUBLISHED')); | ||
|  | 
 | ||
|  |         // Report the user to http://www.stopforumspam.com/
 | ||
|  |         // We need the IP for this, so the user has to be a registered K2 user
 | ||
|  |         $spammer = JFactory::getUser($id); | ||
|  |         $db->setQuery("SELECT ip FROM #__k2_users WHERE userID=".$id, 0, 1); | ||
|  |         $ip = $db->loadResult(); | ||
|  |         if ($ip && function_exists('fsockopen') && $params->get('stopForumSpamApiKey')) | ||
|  |         { | ||
|  |             $data = "username=".$spammer->username."&ip_addr=".$ip."&email=".$spammer->email."&api_key=".$params->get('stopForumSpamApiKey'); | ||
|  |             $fp = fsockopen("www.stopforumspam.com", 80); | ||
|  |             fputs($fp, "POST /add.php HTTP/1.1\n"); | ||
|  |             fputs($fp, "Host: www.stopforumspam.com\n"); | ||
|  |             fputs($fp, "Content-type: application/x-www-form-urlencoded\n"); | ||
|  |             fputs($fp, "Content-length: ".strlen($data)."\n"); | ||
|  |             fputs($fp, "Connection: close\n\n"); | ||
|  |             fputs($fp, $data); | ||
|  |             fclose($fp); | ||
|  |             $mainframe->enqueueMessage(JText::_('K2_USER_DATA_SUBMITTED_TO_STOPFORUMSPAM')); | ||
|  |         } | ||
|  | 
 | ||
|  |         // Finally block the user
 | ||
|  |         $db->setQuery("UPDATE #__users SET block = 1 WHERE id=".$id); | ||
|  |         $db->query(); | ||
|  |         $mainframe->enqueueMessage(JText::_('K2_USER_BLOCKED')); | ||
|  |         return true; | ||
|  |     } | ||
|  | 
 | ||
|  | } |