2013-01-16 104 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