2014-04-12 53 views
0

運行的Joomla 3.3.0-dev的的Joomla 3.x的標籤失敗

我下面貼here有關添加標籤支持的第三方組件的信息。

我已經添加了內容類型的#__content_types表並修改了我的table文件是這樣的:

class MycomponentTableElement extends JTable 
{ 
    public $tagsHelper = null; // failed when protected and public 

    public function __construct(&$_db) 
    { 
     parent::__construct('#__mycomponent', 'id', $_db); 
     // Add Joomla tags 
     JObserverMapper::addObserverClassToClass('JTableObserverTags', 'MycomponentTableElement', array('typeAlias' => 'com_mycomponent.element')); 
     //$this->_observers = new JObserverUpdater($this); JObserverMapper::attachAllObservers($this); // failed with or without this line 
    } 

我加了標籤字段中edit模板,它的工作fine--但是當我保存一個對象我得到以下錯誤:

Save failed with the following error: Unknown column 'tagsHelper' in 'field list' 

我錯過了什麼?沒有其他步驟(除了前端步驟!)所提及的。似乎我需要修改模型,但該信息不適用。

感謝

+0

也許這是因爲測試版本? 而我沒有看到您在該鏈接中發佈的代碼。 –

+0

它看起來像一個SQL錯誤。您是否試圖將某些內容保存到數據庫中的「tagsHelper」列中?在使用JHelperTags類時,可能在代碼中的某處出現混亂。 –

+0

@ HungTran--謝謝,但這就是要點。 Joomla的標籤助手無法解析/保存標籤。沒有'tagsHelper'列,也不應該有一個。 – user101289

回答

0

此頁面需要複製編輯」,這是真的!

我也遵循初始步驟中頁

  • 描述註冊爲擴展視圖(多個)
  • 添加「觀察方式」的擴展表類(ES)
  • 一個「內容類型」
  • 添加「標籤字段」來擴展編輯表單

但是,爲了使現場工作標籤上自定義擴展,我需要明確設定表單字段值鑑於後端的文件:

$tagsHelper = new JHelperTags; 

$this->form= $this->get('Form'); 

$this->form->setValue('tags', null, $tagsHelper->getTagIds($this->item->id, 'com_custom.viewname')); 

以這種方式在編輯頁面上似乎都能正常工作..當然存在更好更乾淨的方法,但直到doc頁面不會更新,這可以幫助別人!

0

1-添加標記字段到你的XML格式文件或編輯模板文件

2-修改#__content_types表文件:

function __construct(&$db) 
    { 
     parent::__construct('#__ir_products', 'id', $db); 
     JTableObserverTags::createObserver($this, array('typeAlias' => 'com_itemreview.product')); 
    } 

3-修改模型文件的getItem功能:

public function getItem($pk = null) 
    { 
     $item = parent::getItem($pk); 

     if (!empty($item->id)) 
     { 
      $item->tags = new JHelperTags; 
      $item->tags->getTagIds($item->id, 'com_yourcomponent.yourmodel'); 
     } 
     return $item; 
    }