2013-01-16 54 views
1

这是我在stackoverflow上的第一篇文章!我是一名mediawiki用户,我试图修改code以扩展Autoincrement,所以不是输出1,2,3而是创建text1,text2,text3(文本只是在前面的一些词)扩展通常会创建的编号)。从函数中返回2个值

我试着改变Autoincrement.php文件,以便

function wfGroupHookSwitch(&$parser, &$varCache, &$index, &$ret) { 
    if ($index === 'group') 
     $ret = ++$this->mCount; // No formatNum() just like url autonumbering 

    return true; 
} 

看起来像

function wfGroupHookSwitch(&$parser, &$varCache, &$index, &$ret, &$text) { 
    if ($index === 'group') 
     $text = 'sometexthere'; 
     $ret = ++$this->mCount; // No formatNum() just like url autonumbering 

    return true; 
} 

但尽管所有我尝试了变化,似乎没有任何工作完全正确。我是一个完全新手在PHP,所以我只是想知道,什么是这样做的正确方法?

+0

我不知道这个扩展,但如果你只需要添加一个参数,什么都不会发生外,因为代码的其余部分将不知道你的&$文本参数什么。事实上,这甚至可能会在其他地方破坏代码。 – Dehalion

+1

您如何尝试将文本前置到像$ ret ='sometexthere'这样的$ ret变量中。 ++ $这 - > mCount;'。如果$ ret被视为字符串或稍后在代码中打印,则这应该起作用。 – Dehalion

+0

工作,谢谢! (还有,正如我刚才提到的这是我的第一篇文章,所以我是新来的stackoverflow的做事方式。有什么办法我应该关闭这个问题或选择一个最好的答案?) –

回答

0

有没有必要建立一个自定义的扩展来做到这一点。我会建议得到

变量: http://www.mediawiki.org/wiki/Extension:Variables

和ParserFunctions:与此内容自动增量:

<includeonly>{{#if: {{#var:AutoincrementVariable}}|{{#vardefineecho:AutoincrementVariable|{{#expr:{{#var:AutoincrementVariable}} + 1}} }}|{{#vardefineecho:AutoincrementVariable|1}} }}</includeonly> 

用法示例和输出重复模板调用看起来应该 http://www.mediawiki.org/wiki/Help:Extension:ParserFunctions

创建模板如:

SomeText{{Autoincrement}} 
SomeText{{Autoincrement}} 
SomeText{{Autoincrement}} 

产生

SomeText1 
SomeText2 
SomeText3