有誰知道如何以編程方式正確地向數據庫插入新的內容類別? 對於類別表中的每個帖子,還有一個帖子保存在資產表中,並且設置了lft和rgt。 是否有任何原生Joomla類可以用來代替普通SQL?如何在Joomla 2.5中添加類別
2
A
回答
0
您也許可以在category.php文件中使用save()。
文件位置:root\administrator\components\com_categories\models\category.php
它節省了提供給它的表單數據!
JOS_assets表用於存儲創建的每個資產的ACL。
如果在編程式創建類別時未更新此表,則將應用默認ACL。之後當您在管理面板中打開並保存該類別時,ACL將會更新,正如核心Joomla!應該已經更新一樣。
雖然您可以非常輕鬆地創建SQL查詢並更新資產表。一旦你在phpmyadmin中打開表格的內容就很容易理解。
2
請僅使用本地類,這些類將爲您無縫地處理。只要你添加類別,整個事情將被自動處理。看看任何核心組件,看看如何。
使用sql更新資產表並不容易,它都是非常特別的管理和複雜的外鍵系列表的一部分。
擴展JTable或JTableContent來處理這個問題。
1
這是我爲此創建的一個函數,在一些挖掘&實驗之後。
它使用核心類,所以它需要訪問它們(對我來說它基本上是Joomla組件的一部分)。
心靈,它是爲Joomla 3,爲Joomla 2.5之前,您需要更改JModelLegacy到JModel。
function createCategory($name, $parent_id, $note)
{
JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_categories/tables');
$cat_model = JModelLegacy::getInstance('Category', 'CategoriesModel');
$data = array (
'id' => 0,
'parent_id' => $parent_id,
'extension' => 'com_content',
'title' => $name,
'alias' => '',
'note' => $note,
'description' => '',
'published' => '1',
'access' => '1',
'metadesc' => '',
'metakey' => '',
'created_user_id' => '0',
'language' => '*',
'rules' => array(
'core.create' => array(),
'core.delete' => array(),
'core.edit' => array(),
'core.edit.state' => array(),
'core.edit.own' => array(),
),
'params' => array(
'category_layout' => '',
'image' => '',
),
'metadata' => array(
'author' => '',
'robots' => '',
),
);
if(!$cat_model->save($data))
{
return NULL;
}
$categories = JCategories::getInstance('Content');
$subcategory = $categories->get($cat_model->getState("category.id"));
return $subcategory;
}
2
下面是一些代碼,我只是鞭打在一起,只是使用JTableCategory
類,所以可以簡單地用正面或管理方的Joomla
$table = JTable::getInstance('category');
$data = array();
// name the category
$data['title'] = $title;
// set the parent category for the new category
$data['parent_id'] = $parent_id;
// set what extension the category is for
$data['extension'] = $extension;
// Set the category to be published by default
$data['published'] = 1;
// setLocation uses the parent_id and updates the nesting columns correctly
$table->setLocation($data['parent_id'], 'last-child');
// push our data into the table object
$table->bind($data);
// some data checks including setting the alias based on the name
if ($table->check()) {
// and store it!
$table->store();
// Success
} else {
// Error
}
你自然會想要得到的數據片正確設置,但這些是設置的核心部分。
相關問題
- 1. 如何在joomla中的項目中添加mutilple類別2.5
- 2. 的Joomla 2.5添加父別名體類
- 3. Joomla 2.5 joomshopping類別模板
- 4. joomla 2.5類別崩潰
- 5. 在Joomla 2.5中,如何在「列出所有類別」佈局中添加類別圖像和標題
- 6. Joomla 2.5 +如何在url中顯示類別
- 7. 在Joomla中自動添加新類別
- 8. 如何添加「無效」類形成元素的Joomla 2.5
- 9. 如何在joomla 2.5註冊表單中添加額外字段?
- 10. 如何在joomla 3和2.5中添加額外的字段?
- 11. 如何在joomla 2.5中向用戶programmaticaly添加註釋?
- 12. 如何在Joomla 2.5中添加樣式到JCE編輯器?
- 13. 如何在Joomla中添加tinymce! 2.5組件
- 14. 如何在Joomla 2.5中添加滑動橫幅
- 15. 如何在Joomla 2.5中添加新的模塊位置?
- 16. 添加JS中的Joomla 2.5插件
- 17. Joomla 2.5:如何從URL中刪除父類別?
- 18. 遷移類別/部分到joomla 2.5
- 19. Joomla 2.5!無法使用類別字段
- 20. 如何在joomla 2.5中創建joomla用戶組2.5
- 21. 如何的Joomla 2.5
- 22. 如何的Joomla 2.5
- 23. Joomla 2.5首頁別名
- 24. 在K2組件上添加自定義字段類型joomla 2.5
- 25. 如何爲joomla 2.5中的聯繫人添加多個圖像?
- 26. 添加資料圖片提交joomla 2.5
- 27. Joomla 2.5 - 爲iPad添加自定義CSS
- 28. Joomla 2.5添加選項組到文章
- 29. Joomla 2.5顯示文章/類別不完整的添加/編輯表單
- 30. Joomla 2.5在博客視圖中顯示子類別圖像
請不要這樣做。應始終不要直接觸摸資產表,只能通過使用具有資產字段的表進行修改。管理嵌套集合並非一帆風順。 – Elin 2013-02-21 22:43:02