Esempio n. 1
0
 /**
  * Entry point for the script
  *
  * @return  void
  *
  * @since   2.5.1
  */
 public function doExecute()
 {
     // Merge the default translation with the current translation
     $lang = JFactory::getLanguage();
     $lang->load('lib_j2xml', JPATH_SITE, null, false, false) || $lang->load('lib_j2xml', JPATH_ADMINISTRATOR, null, false, false) || $lang->load('lib_j2xml', JPATH_SITE, null, true) || $lang->load('lib_j2xml', JPATH_ADMINISTRATOR, null, true);
     $filename = $this->input->get('f', null, '');
     if (!$filename) {
         echo "Usage /usr/bin/php /path/to/site/cli/j2xml.php -f j2xml_file.xml";
         exit(1);
     }
     if (!file_exists($filename)) {
         echo "File {$filename} not found";
         exit(1);
     }
     JLog::addLogger(array('text_file' => 'j2xml.php', 'extension' => 'com_j2xml'), JLog::ALL, array('lib_j2xml', 'cli_j2xml'));
     JLog::addLogger(array('logger' => 'echo', 'extension' => 'com_j2xml'), JLOG::ALL & ~JLOG::DEBUG, array('lib_j2xml', 'cli_j2xml'));
     if (!($data = implode(gzfile($filename)))) {
         $data = file_get_contents($filename);
     }
     libxml_use_internal_errors(true);
     $xml = simplexml_load_string($data);
     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:
                     $this->out(sprintf('%d - %s at line %d', $error->message, $error->line, 'message'));
                     break;
                 case LIBXML_ERR_ERROR:
                     $this->out(sprintf('%d - %s at line %d', $error->message, $error->line, 'notice'));
                     break;
                 case LIBXML_ERR_FATAL:
                     $this->out(sprintf('%d - %s at line %d', $error->message, $error->line, 'error'));
                     break;
             }
         }
         libxml_clear_errors();
         exit(0);
     }
     if (!$xml) {
         $this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'), 'error');
         exit(0);
     }
     $dispatcher = JDispatcher::getInstance();
     JPluginHelper::importPlugin('j2xml');
     $results = $dispatcher->trigger('onBeforeImport', array('cli_j2xml', &$xml));
     if (!$xml) {
         $this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'), 'error');
     } elseif (strtoupper($xml->getName()) != 'J2XML') {
         $this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'), 'error');
     } elseif (!isset($xml['version'])) {
         $this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'), 'error');
     } else {
         jimport('eshiol.j2xml.importer');
         $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);
         if ($xmlVersionNumber == 120500) {
             set_time_limit(120);
             $params = JComponentHelper::getParams('com_j2xml');
             J2XMLImporter::import($xml, $params);
         } else {
             $this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_NOT_SUPPORTED', $xmlVersion), 'error');
         }
     }
 }
Esempio n. 2
0
 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'];
             break;
         case 2:
             if (!($filename = JRequest::getVar('j2xml_url'))) {
                 $app->enqueueMessage(JText::_('COM_J2XML_MSG_UPLOAD_ERROR'), 'error');
                 return false;
             }
             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;
             }
             break;
         default:
             $app->enqueueMessage(JText::_('COM_J2XML_MSG_UPLOAD_ERROR'), 'error');
             return false;
     }
     if (!($data = implode(gzfile($filename)))) {
         $data = file_get_contents($filename);
     }
     $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;
     }
     $dispatcher = JDispatcher::getInstance();
     JPluginHelper::importPlugin('j2xml');
     $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');
         }
     } else {
         $app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'), 'error');
     }
     $this->setRedirect('index.php?option=com_j2xml');
 }
Esempio n. 3
0
 function import()
 {
     // Check for request forgeries
     JRequest::checkToken() or jexit('Invalid Token');
     JLog::addLogger(array('logger' => 'messagequeue'), JLOG::ALL, array('j2xml'));
     $app = JFactory::getApplication('administrator');
     $msg = '';
     $db = JFactory::getDBO();
     $date = JFactory::getDate();
     $now = $date->toSQL();
     $params = JComponentHelper::getParams('com_j2xml');
     libxml_use_internal_errors(true);
     //Retrieve file details from uploaded file, sent from upload form:
     $file = JRequest::getVar('file_upload', null, 'files', 'array');
     if ($file['name']) {
         $filename = $file['tmp_name'];
     } else {
         $params = JComponentHelper::getParams('com_j2xml');
         $root = $params->get('root');
         if (!$root) {
             $root = $_SERVER['DOCUMENT_ROOT'];
         }
         if (strrpos($root, DS) === strlen($root) - 1) {
             $root = substr($root, strlen($root) - 1);
         }
         $filename = $root . JRequest::getVar('remote_file', null);
         $filename = str_replace('/', DS, $filename);
     }
     if (!($data = implode(gzfile($filename)))) {
         $data = file_get_contents($filename);
     }
     $data = substr($data, strpos($data, '<?xml version="1.0" encoding="UTF-8" ?>'));
     $data = self::stripInvalidXml($data);
     if (!defined('LIBXML_PARSEHUGE')) {
         define(LIBXML_PARSEHUGE, 524288);
     }
     // Syahrul Sazli Shaharir
     $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;
     }
     $dispatcher = JDispatcher::getInstance();
     JPluginHelper::importPlugin('j2xml');
     $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') {
         $app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'), 'error');
     } elseif (!isset($xml['version'])) {
         $app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'), 'error');
     } else {
         jimport('eshiol.j2xml.importer');
         $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);
         if ($xmlVersionNumber == 120500) {
             set_time_limit(120);
             $params = JComponentHelper::getParams('com_j2xml');
             J2XMLImporter::import($xml, $params);
         } else {
             $app->enqueueMessage(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_NOT_SUPPORTED', $xmlVersion), 'error');
         }
     }
     $this->setRedirect('index.php?option=com_j2xml');
 }