我正在考虑使用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的新设置值 虽然确实设置了,但是没有存储。
有没有办法存储参数,而无需通过数据库 查询?谢谢
答案 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();
所有这些都可以在插件中完成,如果您不想更改组件的核心,否则如果它是您正在构建的组件,您可以在组件的模型中设置它并从控制器上调用它每次保存。