Your IP : 216.73.217.47


Current Path : /home/azimutno/www/demo/administrator/components/com_j2xml/controllers/
Upload File :
Current File : /home/azimutno/www/demo/administrator/components/com_j2xml/controllers/cpanel.php

<?php
/**
 * @version		3.3.150 administrator/components/com_j2xml/controllers/cpanel.php
 *
 * @package		J2XML
 * @subpackage	com_j2xml
 * @since		1.5.3
 *
 * @author		Helios Ciancio <info@eshiol.it>
 * @link		http://www.eshiol.it
 * @copyright	Copyright (C) 2010-2015 Helios Ciancio. All Rights Reserved
 * @license		http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL v3
 * J2XML is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 */
 
// no direct access
defined('_JEXEC') or die('Restricted access.');

class J2xmlControllerCpanel extends JControllerAbstract
{
	/**
	 * Custom Constructor
	 */
	function __construct( $default = array())
	{
		parent::__construct($default);
	}

	public function display($cachable = false, $urlparams = false)
	{
		JRequest::setVar('view', 'cpanel');
		JRequest::setVar('layout', 'default');
		parent::display($cachable, $urlparams);
	}

	/**
	 * Removes invalid XML
	 *
	 * @access public
	 * @param string $value
	 * @return string
	 */
	static function stripInvalidXml($value)
	{
	    $ret = "";
	    $current;
	    if (empty($value)) 
	    {
	        return $ret;
	    }
	
	    $length = strlen($value);
	    for ($i=0; $i < $length; $i++)
	    {
	        $current = ord($value{$i});
	        if (($current == 0x9) ||
	            ($current == 0xA) ||
	            ($current == 0xD) ||
	            (($current >= 0x20) && ($current <= 0xD7FF)) ||
	            (($current >= 0xE000) && ($current <= 0xFFFD)) ||
	            (($current >= 0x10000) && ($current <= 0x10FFFF)))
	        {
	            $ret .= chr($current);
	        }
	        else
	        {
	            $ret .= " ";
	        }
	    }
	    return $ret;
	}
	
	function import()
	{
		// Check for request forgeries
		JRequest::checkToken() or jexit('Invalid Token');
		
		$app = JFactory::getApplication('administrator');
		$msg='';
		$db = JFactory::getDBO();
		$date = JFactory::getDate();
		$now = $date->toSQL();
		$params = JComponentHelper::getParams('com_j2xml');
		$this->setRedirect('index.php?option=com_j2xml');
		libxml_use_internal_errors(true);

		$filetype = JRequest::getVar('j2xml_filetype', 1);
		switch (JRequest::getVar('j2xml_filetype', 1)) {
			case 1:
				//Retrieve file details from uploaded file, sent from upload form:
				$file = JRequest::getVar('j2xml_local', null, 'files', 'array');
				if(!isset($file))
				{
					$app->enqueueMessage(JText::_('COM_J2XML_MSG_UPLOAD_ERROR'),'error');
					return false;
				} 
				elseif($file['error'] > 0)
				{
					$app->enqueueMessage(JText::_('COM_J2XML_MSG_UPLOAD_ERROR'),'error');
					return false;
				}
				$filename = $file['tmp_name'];
				$extn = end(explode(".", $file['name']));
				break;
			case 2:
				if (!($filename = JRequest::getVar('j2xml_url')))
				{
					$app->enqueueMessage(JText::_('COM_J2XML_MSG_UPLOAD_ERROR'),'error');
					return false;
				}
				$extn = end(explode(".", $filename));
				break;
			case 3:
				if ($filename = JRequest::getVar('j2xml_server', null))
					$filename = JPATH_ROOT.'/'.$filename;
				else 
				{
					$app->enqueueMessage(JText::_('COM_J2XML_MSG_UPLOAD_ERROR'),'error');
					return false;
				}
				$extn = end(explode(".", $filename));
				break;
			default:
				$app->enqueueMessage(JText::_('COM_J2XML_MSG_UPLOAD_ERROR'),'error');
				return false;
		}		
		if (!($data = implode(gzfile($filename))))
		{
			$data = file_get_contents($filename);
		}

		$dispatcher = JDispatcher::getInstance();
		JPluginHelper::importPlugin('j2xml');

		$results = $dispatcher->trigger('onContentPrepareData', array('com_j2xml.cpanel', &$data));

		$data = substr($data, strpos($data, '<?xml version="1.0" encoding="UTF-8" ?>'));
		$data = self::stripInvalidXml($data);
		if (!defined('LIBXML_PARSEHUGE'))
			define(LIBXML_PARSEHUGE, 524288);
		$xml = simplexml_load_string($data, 'SimpleXMLElement', LIBXML_PARSEHUGE);
		
		if (!$xml)
		{
			$errors = libxml_get_errors();
			foreach ($errors as $error) {
				$msg = $error->code.' - '.$error->message.' at line '.$error->line;
				switch ($error->level) {
					default:
					case LIBXML_ERR_WARNING:
						$app->enqueueMessage($msg,'message');
						break;
					case LIBXML_ERR_ERROR:
						$app->enqueueMessage($msg,'notice');
						break;
					case LIBXML_ERR_FATAL:
						$app->enqueueMessage($msg,'error');
						break;
				}
			}
			libxml_clear_errors();
			$this->setRedirect('index.php?option=com_j2xml');	
		}
		
		if (!$xml)
		{
			$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
			return false;
		}
		
		$results = $dispatcher->trigger('onBeforeImport', array('com_j2xml.cpanel', &$xml));
		
		if (!$xml)
			$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
		elseif (strtoupper($xml->getName()) == 'J2XML')
		{
			if(!isset($xml['version']))
   				$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
			else 
			{
				jimport('eshiol.j2xml.importer');
				jimport('eshiol.j2xml.version');
				
				$xmlVersion = $xml['version'];
				$version = explode(".", $xmlVersion);
				$xmlVersionNumber = $version[0].substr('0'.$version[1], strlen($version[1])-1).substr('0'.$version[2], strlen($version[2])-1); 
				
				$j2xmlVersion = J2XMLVersion::$DOCVERSION;
				$version = explode(".", $j2xmlVersion);
				$j2xmlVersionNumber = $version[0].substr('0'.$version[1], strlen($version[1])-1).substr('0'.$version[2], strlen($version[2])-1); 
				
				if (($xmlVersionNumber == $j2xmlVersionNumber) || ($xmlVersionNumber == "120500")) 
				{
					//set_time_limit(120);
					$params = JComponentHelper::getParams('com_j2xml');
					$j2xml = new J2XMLImporter();
					$j2xml->import($xml,$params);
				}
				elseif ($xmlVersionNumber == 10506)
				{
					$app->enqueueMessage(JText::sprintf('COM_J2XML_MSG_FILE_FORMAT_J2XML15', $xmlVersion),'error');
				}
				else
					$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_NOT_SUPPORTED', $xmlVersion),'error');
			}	
		}
		elseif (strtoupper($xml->getName()) == 'RSS')
		{
			$namespaces = $xml->getNamespaces(true);
			if (isset($namespaces['wp']))
				if ($generator = $xml->xpath('/rss/channel/generator'))
					if (preg_match("/http:\/\/wordpress.(org|com)\//", (string)$generator[0]) != false)
					{
						$xml->registerXPathNamespace('wp', $namespaces['wp']);
						if (!($wp_version = $xml->xpath('/rss/channel/wp:wxr_version')))
							$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
						else if ($wp_version[0] == '1.2')
							$app->enqueueMessage(JText::_('COM_J2XML_MSG_FILE_FORMAT_J2XMLWP'),'error');
						else if ($wp_version[0] == '1.1')
							$app->enqueueMessage(JText::_('COM_J2XML_MSG_FILE_FORMAT_J2XMLWP'),'error');
						else
							$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
					}
					else
						$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
				else
					$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
			else
				$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
		}
		elseif (strtoupper($xml->getName()) == 'HTML')
		{
			$app->enqueueMessage(JText::_('COM_J2XML_MSG_FILE_FORMAT_J2XMLHTML'),'error');
		}
		else
			$app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
		$this->setRedirect('index.php?option=com_j2xml');	
	}

	function clean()
	{
		// Check for request forgeries
		JSession::checkToken('get') or die(JText::_('JINVALID_TOKEN'));
//		$params = JComponentHelper::getParams('com_j2xml');
//		$hostname = JFactory::getURI()->getHost();
		if (
//				($params->get('deveopment') &&
//				($hostname == 'localhost') &&
				(JRequest::getCmd('d3v3l0p', '0') === '1') 
		)
		{
			jimport('eshiol.j2xml.importer');
			
			J2XMLImporter::clean();
			$app = JFactory::getApplication('administrator');
			$app->enqueueMessage(JText::_('COM_J2XML_MSG_CLEANED','info'));
		}
		$this->setRedirect('index.php?option=com_j2xml');	
	}
}