【问题标题】:How to modify a model in Joomla using a plugin?如何使用插件在 Joomla 中修改模型?
【发布时间】:2014-04-10 15:15:57
【问题描述】:

在 components/com_content/models/article.php 中有一个名为 storeVote 的函数,它存储从 0 到 5 点的投票。这是该函数的第一行:

if ( $rate >= 1 && $rate <= 5 && $pk > 0 )

我为 Joomla 2.5 编写的插件可以存储从 0 到 5 和 0 到 10 的投票,所以我需要将该行修改为:

if ( $rate >= 1 && $rate <= 10 && $pk > 0 )

在安装插件时自动。

我该怎么做?

提前致谢。

警察局

这是我需要在Joomla中实现的代码,但我不知道如何实现,有帮助吗?

$searchString='if ( $rate >= 1 && $rate <= 5 && $pk > 0 )';
$replaceString='if ( $rate >= 1 && $rate <= 10 && $pk > 0 )'; 
$fh = fopen("article.php", 'r+');
$file = file_get_contents('article.php');
$file = str_replace($searchString, $replaceString, $file);
fwrite($fh, $file);
fclose($fh);

【问题讨论】:

    标签: plugins joomla2.5 joomla-extensions


    【解决方案1】:

    一种解决方案是编写一个内容插件,该插件与 onContentPrepare() 方法挂钩,以便在渲染之前根据需要更改内容。请务必注意您的插件相对于其他“内容”插件的订单位置,因为如果不加以考虑,这可能会对预期行为产生不利影响。

    http://docs.joomla.org/J2.5:Creating_a_content_plugin

    【讨论】:

    • 我可以在我的插件文件中添加一个 onContentPrepare() 函数吗?只需一个插件即可完成所有工作
    • 这取决于您现有的插件是否是内容插件。插件有几种不同的“类型”(内容、用户、身份验证、系统等)。只要您现有的插件是内容插件,那么是的,您可以;否则你需要编写一个全新的扩展。
    猜你喜欢
    • 2011-09-04
    • 2013-05-18
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多