2016-06-15 18 views
-1

Hellow!插件重寫Joomla MVC不工作

我必須使用Joomla的網站,我需要重寫MVC組件(com_contact)來添加一個字段到聯繫人窗體。問題是,我跟着這個教程:

https://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core/fr

我安裝了插件,改寫了所需的文件,並將它們在教程說來放置它們,但它不工作時,插件未overidden。

有人可以幫我這個嗎?

------編輯---------

我放棄了第一個教程,我現在努力遵循這一個: https://docs.joomla.org/J3.x:Creating_a_Plugin_for_Joomla/fr

但我的插件多申」工作。這裏是插件的代碼:

/** 
* Prepare form and add my field. 
* 
* @param JForm $form The form to be altered. 
* @param mixed $data The associated data for the form. 
* 
* @return boolean 
* 
* @since <your version> 
*/ 

function onContentPrepareForm($form, $data) 
{ 

    $app = JFactory::getApplication(); 
    $option = $app->input->get('option'); 

    switch ($option) { 

     case 'com_contact': { 
      if ($app->isAdmin()) { 
       JForm::addFormPath(__DIR__ . '/forms'); 
       $form->loadFile('item', false); 
      } 
      return true; 
     } 

    } 
    return true; 
} 
} 
?> 

的contact.xml

<?xml version="1.0" encoding="UTF-8"?> 
<form> 
<fields name="params"> 
    <fieldset name="params" label="PLG_CONTENT_EXAMPLE_FIELDSET_LABEL"> 
     <field 
       name="contact_emaillabel2" 
       type="text" 
       label="PLG_CONTENT_EXAMPLE_CONTACT_EMAILLABEL2" 
     /> 
     <field 
       name="contact_email2" 
       type="text" 
       label="PLG_CONTENT_EXAMPLE_CONTACT_EMAIL2" 
       filter="email" 
     /> 
    </fieldset> 
</fields> 
</form> 

安裝XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<extension version="3.2" type="plugin" group="override"> 
<name>test</name> 
<author>Laurine</author> 
<creationDate>June 2016</creationDate> 
<copyright>Copyright (C) Page Graphique, tous droits réservés</copyright> 
<authorEmail>[email protected]</authorEmail> 
<version>3.2</version> 
<description>Plugin pour surcharger les composants MVC</description> 
<files> 
    <filename>plgoverridetest.php</filename> 
</files> 
<config> 
</config> 
</extension> 

樹狀:

- <Joomla>/.../plugins/override 
    plgoverridetest.php 
    install.xml 
    - forms 
     contact.xml 
+0

你的代碼在哪裏? –

+0

我的代碼如教程中所述, TEMPLATE/code/com_contact/controllers/contact.php 和 TEMPLATE/code/com_contact/models/forms/contact.xml。 –

+0

我嘗試了很多解決方案,比如將contact.xml從表單文件夾中直接拖放到模型文件夾中,將所有自定義com_contact文件夾放在「html」文件夾中而不是代碼中,將文件從「控制器」和「模型」文件夾中放出。 。 –

回答

0

您可以檢查此鏈接。它一定會幫助你https://docs.joomla.org/Adding_custom_fields_to_core_components_using_a_plugin

對於網站的使用情況,您可以使用

case 'com_contact': 
    if ($app->isSite()) 
    { 
     JForm::addFormPath(__DIR__ . '/forms'); 
     $form->loadFile('contact', false); 
    } 
    return true; 

然後你需要編輯模板文件。您可以從該鏈接獲得詳細信息。

+0

這是我已經遵循的教程,我無法讓它工作=/ –

+0

@Amanite Laurine我將爲您創建一個。 –

+0

你很好,但你不必這樣做,如果你沒有時間,我只是想知道我的插件出了什麼問題^^ –

0

爲了覆蓋聯繫表單,您需要創建一個'內容'插件,上面的插件是'覆蓋',這樣它就不會被聯繫人組件觸發。

此外,在您的代碼$form->loadFile('item', false);是錯誤的,因爲您要加載的xml文件是'contact.xml',因此您的代碼應該是$form->loadFile('contact', false);

我剛剛完成了一個插件的開發,該插件添加了許多字段,如手機,網站,公司,文件上傳,新聞稿,幷包括關閉默認字段,如果需要的話。如果您使用他們的CRM,它也會將信息發送到HubSpot。

現在的事情是,爲了使用這些額外的字段,你需要創建一個'聯繫'插件,當表單被提交併觸發插件觸發'onSubmitContact($ data)'時觸發,我創建了一個'自定義回覆'插件爲此目的。

您需要記住使用自定義回覆插件時,您必須在管理組件中的聯繫人選項上選擇「自定義回覆」選項。

另外,我已經創建了基於表單的工作方式,而不是在多個表單上具有相同的字段,您可以獨立修改每個表單。

+0

嗨德里克,我期待創建一個插件來改變自定義答覆。你在github上發佈了你的插件嗎? – Eduardo

+0

嗨愛德華,還沒有,該計劃是在我們的網站創建一個會員資格,以便我們可以繼續添加更多的功能,並繼續支持插件和未來的發展,隨時給我發一封電子郵件:derek * at * adonis 。媒體。 –