%PDF- %PDF-
Direktori : /home/lightco1/www/administrator/components/com_poweradmin/libraries/joomlashine/config/ |
Current File : /home/lightco1/www/administrator/components/com_poweradmin/libraries/joomlashine/config/config.php |
<?php /** * @version $Id$ * @package JSNPoweradmin * @subpackage item * @author JoomlaShine Team <support@joomlashine.com> * @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved. * @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html * * Websites: http://www.joomlashine.com * Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html */ // No direct access to this file defined('_JEXEC') or die('Restricted access'); jimport('joomla.registry.registry'); class JSNConfig{ /** * * Return global JSNConfig object * * @return: Object */ public static function getInstance() { static $instances; if (!isset($instances)) { $instances = array(); } if (empty($instances['JSNConfig'])) { $instance = new JSNConfig(); $instances['JSNConfig'] = &$instance; } return $instances['JSNConfig']; } /** * * This function to helper save configs for the component * * @param: (Number) ($componentId) is id of component in extension table * @param: (string) ($componentName) is name of component * @param: (Array) ($config) is array store key and value to save * @return: Save to the database table */ public static function extension( $extension_name, $configs = Array() ) { // Import files used for Joomla 3.2 JSNFactory::import('plugins.system.jsnframework.libraries.joomlashine.version.version', 'site'); // Import files for Joomla 3.2 if (JSNVersion::isJoomlaCompatible('3.2')) { JSNFactory::import('components.com_config.model.cms', 'site'); JSNFactory::import('components.com_config.model.form', 'site'); } $extension_name = JString::strtolower( JString::trim( $extension_name ) ); $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select("params"); $query->from("#__extensions"); $query->where("name = " . $db->quote( $extension_name )); $db->setQuery($query); $paramsString = $db->loadResult(); if ( !empty($paramsString) ){ $jParams = new JRegistry(); //$jParams = new JParameter(); $jParams->loadObject(json_decode($paramsString)); $params = $jParams->toArray(); foreach( $configs as $k => $val ){ $params[$k] = (string) $val; } $query->clear(); $query->select("extension_id"); $query->from("#__extensions"); $query->where("name=".$db->quote(JString::strtolower($extension_name))); $db->setQuery($query); $ext_id = $db->loadResult(); JSNFactory::import('components.com_config.model.component'); $config = new ConfigModelComponent(); $config->save(Array( 'params' => $params, 'id' => $ext_id, 'option' => $extension_name )); return true; } return false; } /** * * This function to helper save config for article * * @param: (Number) ($articleId) is id of article in content table * @param: (Array) ($options) is array setting need to change the config * @return: Save to table of database */ public static function article( $aId, $options ) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select("attribs"); $query->from("#__content"); $query->where("id = " . $db->quote( $aId )); $db->setQuery($query); $paramsString = $db->loadResult(); if ( !empty($paramsString) ){ if ( !class_exists('JRegistry') ){ JSNFactory::import('libraries.joomla.registry.registry', 'site'); } $jParams = new JRegistry(); $jParams->loadObject(json_decode($paramsString)); $params = $jParams->toArray(); foreach( $options as $k => $val ){ $params[$k] = (string) $val; } $jParams->loadArray( $params ); $query->clear(); $query->update("#__content"); $query->set("attribs = " . $db->quote( $jParams->toString('JSON'), false ) ); $query->where("id = " . $db->quote( $aId )); $db->setQuery($query); $db->query(); return true; } return false; } /** * Version J1.5 * * This function to helper save config for menu item * * @param: (Number) ($mId) is id of menuitem in menu table * @param: (Array) ($options) is array setting need to change the config * @return: Save to table of database */ public static function menuitem( $mId, $options ) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select("params"); $query->from("#__menu"); $query->where("id = " . $db->quote( $mId )); $db->setQuery($query); $paramsString = $db->loadResult(); if ( !empty($paramsString) ){ $jParams = new JRegistry(); //$jParams = new JParameter(); $jParams->loadObject(json_decode($paramsString)); $params = $jParams->toArray(); foreach( $options as $k => $val ){ $params[$k] = (string) $val; } $jParams->loadArray( $params ); $query->clear(); $query->update("#__menu"); $query->set("params = " . $db->quote( $jParams->toString('JSON'), false ) ); $query->where("id = " . $db->quote( $mId )); $db->setQuery($query); $db->query(); return true; } return false; } /** * * Save params for specific component * * @param Number $id * @param String $tableName name of table to store params * @param Array $options params to store * @param String $idAlias alias of ID field in DB * @param String $paramAlias alias of params field in DB * @return bool * */ public static function saveExtParams($id, $tableName, $options, $idAlias = 'id' ,$paramAlias = 'params') { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select($paramAlias); $query->from($tableName); $query->where($idAlias . " = " . (int)$id ); $db->setQuery($query); $paramsString = $db->loadResult(); if ( !empty($paramsString) ){ $jParams = new JRegistry(); //$jParams = new JParameter(); $jParams->loadObject(json_decode($paramsString)); $params = $jParams->toArray(); foreach( $options as $k => $val ){ $params[$k] = (string) $val; } $jParams->loadArray( $params ); $query->clear(); $query->update($tableName); $query->set($paramAlias ." = " . $db->quote( $jParams->toString('JSON'), false ) ); $query->where($idAlias . " = " . (int)$id); $db->setQuery($query); $db->query(); return true; } return false; } /** * * Get params of menu item * * @param Number $id */ public static function getMenuParams($id) { $menuSite = JMenu::getInstance('site'); $Item = $menuSite->getItem($id); if ( isset($Item->params)){ if ( $Item->params instanceof JRegistry ){ return $Item->params; } } $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select("params"); $query->from("#__menu"); $query->where("id = " . $db->quote( $id )); $db->setQuery($query); $paramsString = $db->loadResult(); $jParams = new JRegistry(); $jParams->loadObject(json_decode($paramsString)); return $jParams; } /** * * Megre menu params * * @param String $menuid * @param JRegistry $params */ public static function &megreMenuParams($menuid, &$params, $itemAttribs = null, $component = "com_content") { if ( $params instanceof JRegistry){ $menuParams = self::getMenuParams($menuid); if ( $menuParams instanceof JRegistry && $params instanceof JRegistry ){ $arrs = $menuParams->toArray(); $globalParams = JComponentHelper::getParams( $component ); foreach($arrs as $key => $val){ if ($val != ''){ if( $val == 'use_article'){ if($itemAttribs && isset($itemAttribs->{$key})){ if( $itemAttribs->{$key} == null || $itemAttribs->{$key} == '' ){ $val = $globalParams->get($key); }else{ $val = $itemAttribs->{$key}; } } } $params->set($key, $val); } } } } return $params; } /** * * Megre global params * * @param String $componentName * @param JRegistry $params */ public static function megreGlobalParams( $componentName, &$params, $forcheck = false ) { if ( $params instanceof JRegistry){ $comParams = JComponentHelper::getParams( $componentName ); if ( $comParams instanceof JRegistry && $params instanceof JRegistry ){ $arrs = $comParams->toArray(); foreach($arrs as $key => $val){ if ( $params->get($key) == ''){ $params->set($key, $val); if ($forcheck){ $params->set($key.'_useglobal', true); } } } } } } }