2013-09-24 35 views
1

我正在開發擴展,使用原生Joomla類別。我想在類別編輯器中添加一個額外的參數,僅在編輯我的擴展的類別時使用。添加類別參數

問題: 是否有可能沒有覆蓋的Joomla核心文件?

回答

1

修訂

是的,這也可以沒有黑客的核心文件來完成。

您可以爲管理員com_categories組件創建一個模板覆蓋。

複製這個文件:

administrator/components/com_categories/views/category/tmpl/edit.php 

在這條道路(您需要創建相應的目錄):

administrator/templates/bluestork/html/com_categories/category/edit.php 

在這個新的文件,你可以工作的所有你的魔法。

如果你需要的東西更先進的,你可以使用一個插件,允許您覆蓋模型和部件的任何其他部分:Plugin Override

+0

謝謝Emilian,我知道ho這樣做,但我想知道是否有一種方法可以在不修改Joomla核心的情況下覆蓋參數。 – di3sel

+0

嗨,請查看我的更新答案,以獲得更高級的解決方案,從而可以覆蓋模型。 –

+0

再次感謝Emilian,但我能夠找到一個本地解決方案,下面檢查出它:) – di3sel

2

那麼實際上無眠之夜後,我能找到一個優雅的原生解。 不幸的Joomla開發者並沒有記錄它,但現在看來,在擴展創建文件: /administrator/components/com_YourName/models/forms/category.xml,並添加有一個字段「attribs」,它會自動出現在您的擴展分類經理。 category.xml的 示例代碼瀏覽:

<?xml version="1.0" encoding="utf-8"?> 
<form> 
    <fields name="attribs"> 
     <fieldset name="attribs" label="Group settings"> 
      <field name="group_id" type="list" default="" label="Select group:"> 
       <option value=""></option> 
       <option value="1">Group 1</option> 
       <option value="2">Group 2</option> 
       <option value="3">Group 3</option> 
      </field> 
     </fieldset> 
    </fields> 
</form> 
+0

這適用於您自己的組件,而不是內置的Joomla! 「類別」組件。你的問題是Joomla!內置組件。 –

+0

其實如果你讀過這個問題,那是爲了我自己的組件,它使用了原生Joomla! 1.6+類別。 由於Joomla 1.6你不必編寫自己的類別控制,你可以使用Joomla類別。 – di3sel

2

以前的答案(新的XML文件)非常接近,但不會在的Joomla 3.x的工作相當爲了使它工作,我不得不改變域元素的name屬性爲「PARAMS」如下:

<?xml version="1.0" encoding="utf-8"?> 
<form> 
    <fields name="params"> 
     <fieldset name="basic" label="Group settings"> 
      <field name="group_id" type="list" default="" label="Select group:"> 
       <option value=""></option> 
       <option value="1">Group 1</option> 
       <option value="2">Group 2</option> 
       <option value="3">Group 3</option> 
      </field> 
     </fieldset> 
    </fields> 
</form> 

這種方式,自定義選項顯示的類別編輯屏幕的選項標籤。另外,如果您的組件中有多個類別的類別(例如,「com_mycomponent.mycategorytype」),則需要創建XML文件「category.mytype.xml」的名稱。