2014-10-26 57 views
0

我的自定義組件必須調用核心內容組件,並在#__content表中創建具有適當值的條目。當我在文章管理器中添加新文章時,我只需要提供一個標題作爲必填字段值,其他值將自動創建。我想在我的自定義組件中假裝這個。如何在我的自定義組件中的joomla 2.5中調用核心內容組件?

+0

很抱歉,但我在努力理解你想在這裏實現什麼。你能否詳細解釋一下你的代碼? – Lodder 2014-10-26 22:31:43

+0

我想通過我的自定義組件創建一個虛擬的有效文章(內容表條目)。我插入到表#_content值title,alias,state,introtext,catid等中,但不知道如何添加其他依賴項(如asset_id)。所以我想通過我的自定義組件添加一篇文章,只給出值'標題'。 (對不起,我現在無法添加編碼) – Mathuvathanan 2014-10-26 22:43:27

回答

0

不是直接更新數據庫表,而是從com_content加載ContentModelArticle並使用該模型創建新文章。這將爲您生成alias,根據View Access執行ACL等所有操作,並讓任何系統或內容插件查看文章並執行任何操作。

ContentModelArticleJModelAdmin延伸,所以你可以使用它的->save($data)方法。其中$dataarray的內容綁定到save()方法中新的ContentModelArticle

因此,一個基本的例子是:

// Create our data with some sample code 
$data['title'] = 'My Title'; 
$data['catid'] = 10;   /* NB. this is just an example category Id obviously you'll need to provide a suitable catid for your site */ 
$data['articletext'] = 'Starting text...'; /* From memory you can't have an empty article.*/ 

// Get the Article model 
$articleModel = $this->getModel('Article', 'ContentModel', array()); 

// Then save it: 
$articleModel->save($data); 

很明顯,你可以填入你想要儘可能多的領域,包括state,​​,publish_downcreate_by和許多其他的 - 只是看的結構數據庫#__content中的內容表來查看各個列及其類型。

注意:這是未經測試的代碼,只是輸入到瀏覽器。自從我做了任何2.x的東西以來,這也是一段時間。

最後,這個問題是關於Joomla具體的實施細節,你可能會得到一個更好的結果,如果你試着問上the Joomla Q&A StackExhange site

+0

我明白了,但 我正在加載模型 'JLoader :: import('article',JPATH_ADMINISTRATOR。DS''components'。DS。'com_content' DS''models');' 在我的組件中創建一篇新文章。 但是,article.php模型調用 'require_once JPATH_COMPONENT_ADMINISTRATOR。'/ helpers/content.php';' 和JPATH_COMPONENT_ADMINISTRATOR指向我自己的組件 如何解決此問題? – Mathuvathanan 2014-10-27 09:26:46