Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plugins 如何使用插件修改Joomla中的模型?_Plugins_Joomla2.5_Joomla Extensions - Fatal编程技术网

Plugins 如何使用插件修改Joomla中的模型?

Plugins 如何使用插件修改Joomla中的模型?,plugins,joomla2.5,joomla-extensions,Plugins,Joomla2.5,Joomla Extensions,在components/com_content/models/article.php中,有一个名为storeVote的函数,用于存储0到5分的投票。这是该函数的第一行: if ( $rate >= 1 && $rate <= 5 && $pk > 0 ) 如果($rate>=1&&$rate 0) 我正在为Joomla 2.5编程的插件可以存储0到5和0到10的投票,因此我需要将该行修改为: if ( $rate >= 1 &&

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

if ( $rate >= 1 && $rate <= 5 && $pk > 0 )
如果($rate>=1&&$rate 0)
我正在为Joomla 2.5编程的插件可以存储0到5和0到10的投票,因此我需要将该行修改为:

if ( $rate >= 1 && $rate <= 10 && $pk > 0 )
如果($rate>=1&&$rate 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);
$searchString='if($rate>=1&&$rate 0)';
$replaceString='if($rate>=1&&$rate 0)';
$fh=fopen(“article.php”,“r+”);
$file=file_get_contents('article.php');
$file=str_replace($searchString,$replaceString,$file);
fwrite($fh,$file);
fclose($fh);

一种解决方案是编写一个内容插件,该插件钩住onContentPrepare()方法,在呈现之前根据需要修改内容。一定要注意你的插件相对于其他“内容”插件的顺序,因为如果不考虑,这可能会对预期行为产生不利影响


我可以将onContentPrepare()函数添加到插件文件中吗?为了只使用一个插件完成所有工作,这取决于您现有的插件是否为内容插件。插件有几种不同的“类型”(内容、用户、身份验证、系统等)。只要你现有的插件是一个内容插件,那么是的,你可以;否则,您将需要编写一个全新的扩展。