简体   繁体   English

如何在joomla中通过数据库修改模板参数

[英]How to modify template params via database in joomla

I want to modify the current template params via database outside joomla framework. 我想通过joomla框架之外的数据库修改当前模板参数。 I managed to set the 'preset' param, but I can't write it back to the database. 我设法设置'预设'参数,但我无法将其写回数据库。 Here is my code. 这是我的代码。

Thanks a lot 非常感谢

// Initialize The Joomla Framework
// -----------------------------------------------------------------------------------
define('_JEXEC', 1);

// this is relative to the current script, so change this according to your environment
define('JPATH_BASE', '/home/kristof/public_html/joomla1'); 
define('DS', DIRECTORY_SEPARATOR);

// Require Joomla libraries
require_once(JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once(JPATH_BASE . DS . 'includes' . DS . 'framework.php');
require_once(JPATH_CONFIGURATION . DS . 'configuration.php');
require_once(JPATH_LIBRARIES . DS . 'joomla' . DS . 'database' . DS . 'database.php');
require_once(JPATH_LIBRARIES . DS . 'import.php');
// -----------------------------------------------------------------------------------

$app = JFactory::getApplication('site');
$template = $app->getTemplate(true);
$param=$template->params->set('preset','preset3');
$template = JFactory::getApplication('site')->getTemplate();
    $db = JFactory::getDBO();
    $sql = "select params from #__template_styles where template = ".$db->quote($template);
    $db->setQuery($sql);
    $params = json_decode($db->loadResult());
    $params->PARAM_NAME= PARAM_VALUE;

    $sql = "update #__template_styles set params = ".$db->quote(json_encode($params))." where template = ".$db->quote($template);
    $db->setQuery($sql);
    return $db->query();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM