在Joomla中使用JParameter

时间:2011-11-09 19:08:31

标签: php joomla

我正在考虑使用JParams存储上次访问的日期 Joomla 1.7.1站点中的某个页面。所以在代码中我做了类似的事情:

$last_run       = $params->get('last_visit', '2000-01-01');
// set last_run to current run time
$params->set('last_visit', $now);

问题显然是last_visit的新设置值 虽然确实设置了,但是没有存储。

有没有办法存储参数,而无需通过数据库 查询?谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用在视图中触发的内容插件来执行此操作。

public function onContentPrepare(...) {
   ...store hit date into table...
}

关于这种方法的好处是你不需要任何核心黑客。

答案 1 :(得分:0)

以下是您的问题的示例解决方案,但请记住这是针对Joomla 1.5

// Get instance of the table object of your component
$table =& JTable::getInstance( 'mytable');
// Set the item, this could be Article ID for example
$table->load($id);
// Load the parameters through JParameter
$params   = new JParameter($table->params);
$params->set($key,$value);
$table->params = $params->toString();
// Save to database
$table->store();

所有这些都可以在插件中完成,如果您不想更改组件的核心,否则如果它是您正在构建的组件,您可以在组件的模型中设置它并从控制器上调用它每次保存。