/**
  * Constructor.
  *
  * @param   Registry  $config  The config object.
  *
  * @throws  \RuntimeException
  */
 public function __construct(Registry $config)
 {
     // Set the configuration file path for the application.
     $file = JPATH_ROOT . '/etc/config.json';
     // Verify the configuration exists and is readable.
     if (!is_readable($file)) {
         throw new \RuntimeException('Configuration file does not exist or is unreadable.');
     }
     // Load the configuration file into an object.
     $configObject = json_decode(file_get_contents($file));
     if ($configObject === null) {
         throw new \RuntimeException('Unable to parse the configuration file.');
     }
     $config->loadObject($configObject);
     // No sure.. defined('JDEBUG') || define('JDEBUG', ($config->get('debug.system') || $config->get('debug.database')));
     $this->config = $config;
 }
 /**
  * Class constructor.
  *
  * @param   string  $path  Path to the config file.
  *
  * @since   1.0
  * @throws  \RuntimeException
  */
 public function __construct($path)
 {
     // Set the configuration file path for the application.
     $file = JPATH_CONFIGURATION . '/config.json';
     // Verify the configuration exists and is readable.
     if (!is_readable($file)) {
         throw new \RuntimeException('Configuration file does not exist or is unreadable.');
     }
     // Load the configuration file into an object.
     $configObject = json_decode(file_get_contents($file));
     if ($configObject === null) {
         throw new \RuntimeException(sprintf('Unable to parse the configuration file %s.', $file));
     }
     $config = new Registry();
     $config->loadObject($configObject);
     $this->config = $config;
 }
 /**
  * Constructor.
  *
  * @param   Registry  $config  The config object.
  *
  * @since   1.0
  * @throws  \RuntimeException
  */
 public function __construct(Registry $config)
 {
     // Check for a custom configuration.
     $type = trim(getenv('JTRACKER_ENVIRONMENT'));
     $name = $type ? 'config.' . $type : 'config';
     // Set the configuration file path for the application.
     $file = JPATH_ROOT . '/etc/' . $name . '.json';
     // Verify the configuration exists and is readable.
     if (!is_readable($file)) {
         throw new \RuntimeException('Configuration file does not exist or is unreadable.');
     }
     // Load the configuration file into an object.
     $configObject = json_decode(file_get_contents($file));
     if ($configObject === null) {
         throw new \RuntimeException(sprintf('Unable to parse the configuration file %s.', $file));
     }
     $config->loadObject($configObject);
     defined('JDEBUG') || define('JDEBUG', $config->get('debug.system') || $config->get('debug.database'));
     $this->config = $config;
 }
Example #4
0
 /**
  * Create a configuration object
  *
  * @param   string  $file       The path to the configuration file.
  * @param   string  $type       The type of the configuration file.
  * @param   string  $namespace  The namespace of the configuration file.
  *
  * @return  Registry
  *
  * @see     Registry
  * @since   11.1
  */
 protected static function createConfig($file, $type = 'PHP', $namespace = '')
 {
     if (is_file($file)) {
         include_once $file;
     }
     // Create the registry with a default namespace of config
     $registry = new Registry();
     // Sanitize the namespace.
     $namespace = ucfirst((string) preg_replace('/[^A-Z_]/i', '', $namespace));
     // Build the config name.
     $name = 'JConfig' . $namespace;
     // Handle the PHP configuration type.
     if ($type == 'PHP' && class_exists($name)) {
         // Create the JConfig object
         $config = new $name();
         // Load the configuration values into the registry
         $registry->loadObject($config);
     }
     return $registry;
 }
 /**
  * Method to delete one or more overrides.
  *
  * @param   array  $cids  Array of keys to delete.
  *
  * @return  integer Number of successfully deleted overrides, boolean false if an error occured.
  *
  * @since		2.5
  */
 public function delete($cids)
 {
     // Check permissions first.
     if (!JFactory::getUser()->authorise('core.delete', 'com_languages')) {
         $this->setError(JText::_('JLIB_APPLICATION_ERROR_DELETE_NOT_PERMITTED'));
         return false;
     }
     jimport('joomla.filesystem.file');
     require_once JPATH_COMPONENT . '/helpers/languages.php';
     $filterclient = JFactory::getApplication()->getUserState('com_languages.overrides.filter.client');
     $client = $filterclient == 0 ? 'SITE' : 'ADMINISTRATOR';
     // Parse the override.ini file in oder to get the keys and strings.
     $filename = constant('JPATH_' . $client) . '/language/overrides/' . $this->getState('filter.language') . '.override.ini';
     $strings = LanguagesHelper::parseFile($filename);
     // Unset strings that shall be deleted
     foreach ($cids as $key) {
         if (isset($strings[$key])) {
             unset($strings[$key]);
         }
     }
     foreach ($strings as $key => $string) {
         $strings[$key] = str_replace('"', '"_QQ_"', $string);
     }
     // Write override.ini file with the left strings.
     $registry = new Registry();
     $registry->loadObject($strings);
     $reg = $registry->toString('INI');
     $filename = constant('JPATH_' . $client) . '/language/overrides/' . $this->getState('filter.language') . '.override.ini';
     if (!JFile::write($filename, $reg)) {
         return false;
     }
     $this->cleanCache();
     return count($cids);
 }
    /**
     * Test the Joomla\Registry\Registry::loadObject method.
     *
     * @return  void
     *
     * @covers  Joomla\Registry\Registry::loadObject
     * @since   1.0
     */
    public function testLoadObject()
    {
        $object = new stdClass();
        $object->foo = 'testloadobject';
        $registry = new Registry();
        $result = $registry->loadObject($object);
        // Checking result is self that we can chaining
        $this->assertEquals($result, $registry, '$result should be $registry self that support chaining');
        // Test getting a known value.
        $this->assertThat($registry->get('foo'), $this->equalTo('testloadobject'), 'Line: ' . __LINE__ . '.');
        // Test that loadObject will auto recursive merge
        $registry = new Registry();
        $object1 = '{
			"foo" : "foo value",
			"bar" : {
				"bar1" : "bar value 1",
				"bar2" : "bar value 2"
			}
		}';
        $object2 = '{
			"foo" : "foo value",
			"bar" : {
				"bar2" : "new bar value 2"
			}
		}';
        $registry->loadObject(json_decode($object1));
        $registry->loadObject(json_decode($object2));
        $this->assertEquals($registry->get('bar.bar2'), 'new bar value 2', 'Line: ' . __LINE__ . '. bar.bar2 shuould be override.');
        $this->assertEquals($registry->get('bar.bar1'), 'bar value 1', 'Line: ' . __LINE__ . '. bar.bar1 should not be overrided.');
    }
Example #7
0
 /**
  * Method to save the form data.
  *
  * @param   array    $data             The form data.
  * @param   boolean  $opposite_client  Indicates whether the override should not be created for the current client.
  *
  * @return  boolean  True on success, false otherwise.
  *
  * @since   2.5
  */
 public function save($data, $opposite_client = false)
 {
     $app = JFactory::getApplication();
     require_once JPATH_COMPONENT . '/helpers/languages.php';
     jimport('joomla.filesystem.file');
     $client = $app->getUserState('com_languages.overrides.filter.client', 0);
     $language = $app->getUserState('com_languages.overrides.filter.language', 'en-GB');
     // If the override should be created for both.
     if ($opposite_client) {
         $client = 1 - $client;
     }
     // Return false if the constant is a reserved word, i.e. YES, NO, NULL, FALSE, ON, OFF, NONE, TRUE
     $blacklist = array('YES', 'NO', 'NULL', 'FALSE', 'ON', 'OFF', 'NONE', 'TRUE');
     if (in_array($data['key'], $blacklist)) {
         $this->setError(JText::_('COM_LANGUAGES_OVERRIDE_ERROR_RESERVED_WORDS'));
         return false;
     }
     $client = $client ? 'administrator' : 'site';
     // Parse the override.ini file in oder to get the keys and strings.
     $filename = constant('JPATH_' . strtoupper($client)) . '/language/overrides/' . $language . '.override.ini';
     $strings = LanguagesHelper::parseFile($filename);
     if (isset($strings[$data['id']])) {
         // If an existent string was edited check whether
         // the name of the constant is still the same.
         if ($data['key'] == $data['id']) {
             // If yes, simply override it.
             $strings[$data['key']] = $data['override'];
         } else {
             // If no, delete the old string and prepend the new one.
             unset($strings[$data['id']]);
             $strings = array($data['key'] => $data['override']) + $strings;
         }
     } else {
         // If it is a new override simply prepend it.
         $strings = array($data['key'] => $data['override']) + $strings;
     }
     foreach ($strings as $key => $string) {
         $strings[$key] = str_replace('"', '"_QQ_"', $string);
     }
     // Write override.ini file with the strings.
     $registry = new Registry();
     $registry->loadObject($strings);
     $reg = $registry->toString('INI');
     if (!JFile::write($filename, $reg)) {
         return false;
     }
     // If the override should be stored for both clients save
     // it also for the other one and prevent endless recursion.
     if (isset($data['both']) && $data['both'] && !$opposite_client) {
         return $this->save($data, true);
     }
     return true;
 }
Example #8
0
<?php

/**
 * Part of Ezset project.
 *
 * @copyright  Copyright (C) 2015 {ORGANIZATION}. All rights reserved.
 * @license    GNU General Public License version 2 or later;
 */
defined('_JEXEC') or die;
use Joomla\Registry\Registry;
$configDistFile = new SplFileInfo(INSTALL_ROOT . '/../configuration.dist.php');
$configFile = new SplFileInfo(INSTALL_ROOT . '/../configuration.php');
include_once $configDistFile->getPathname();
$config = new Registry();
$config->loadObject(new JConfig());
$options = $this->input->getVar('install');
$options['select'] = false;
$options['driver'] = $config->get('driver');
$db = JDatabaseDriver::getInstance($options);
try {
    // Create
    $db->setQuery('CREATE DATABASE IF NOT EXISTS ' . $db->qn($options['database']) . ' CHARACTER SET = "utf8"')->execute();
    $db->select($options['database']);
    // Import
    $sql = new SplFileInfo(JPATH_BASE . '/ezset-sql-backup.sql');
    $queries = file_get_contents($sql->getPathname());
    $queries = $db->splitSql($queries);
    foreach ($queries as $query) {
        $db->setQuery($query)->execute();
    }
    $config->set('host', $options['host']);
Example #9
0
 /**
  * @testdox  The Registry can load an object
  *
  * @covers   Joomla\Registry\Registry::bindData
  * @covers   Joomla\Registry\Registry::loadObject
  */
 public function testAnObjectCanBeLoaded()
 {
     $object = new \stdClass();
     $object->foo = 'testloadobject';
     $registry = new Registry();
     $result = $registry->loadObject($object);
     $this->assertSame($registry->loadObject($object), $registry, 'The loadObject() method should return $this');
     $this->assertSame('testloadobject', $registry->get('foo'), 'The object\'s data should be correctly loaded.');
 }
Example #10
0
 /**
  * Create a configuration object
  *
  * @param   string  $file       The path to the configuration file.
  * @param   string  $type       The type of the configuration file.
  * @param   string  $namespace  The namespace of the configuration file.
  *
  * @return  Registry
  *
  * @see     Registry
  * @since   11.1
  * @deprecated  5.0  Use the configuration object within the application.
  */
 protected static function createConfig($file, $type = 'PHP', $namespace = '')
 {
     JLog::add(sprintf('%s() is deprecated. The configuration object should be read from the application.', __METHOD__), JLog::WARNING, 'deprecated');
     if (is_file($file)) {
         include_once $file;
     }
     // Create the registry with a default namespace of config
     $registry = new Registry();
     // Sanitize the namespace.
     $namespace = ucfirst((string) preg_replace('/[^A-Z_]/i', '', $namespace));
     // Build the config name.
     $name = 'JConfig' . $namespace;
     // Handle the PHP configuration type.
     if ($type == 'PHP' && class_exists($name)) {
         // Create the JConfig object
         $config = new $name();
         // Load the configuration values into the registry
         $registry->loadObject($config);
     }
     return $registry;
 }